AI Assistant
Detail Karya Portofolio

Keamanan Data dengan AES dan API pada 3 Server

Akpil Mauhib Oleh: Akpil Mauhib

Ringkasan Portofolio

Proyek ini mengembangkan sistem tiga server untuk mengamankan data sensitif menggunakan enkripsi AES dan autentikasi API berbasis JWT. Data dienkripsi di Server 3 (Backend), dikirim melalui API Gateway di Server 1, dan disimpan di Server 2 (Database MySQL) dengan pengaturan hak akses yang aman. Sistem ini dirancang untuk menjaga kerahasiaan data dan mencegah ancaman seperti SQL injection, serangan XSS, atau CSRF.

Deskripsi & Detail Proyek

Deskripsi Proyek :

Proyek ini dirancang untuk menerapkan enkripsi data dengan algoritma AES, mengintegrasikan komunikasi antar server melalui API menggunakan Flask, dan menggunakan MySQL sebagai penyimpanan data. 

Sistem terdiri dari tiga server dengan fungsi yang berbeda:

  • Server 1 (API Gateway): Bertindak sebagai penerima data dari klien dan penghubung ke server lain.
  • Server 2 (Database Server): Bertugas menyimpan data ke dalam database MySQL secara aman.
  • Server 3 (Backend Server): Melakukan enkripsi data menggunakan AES sebelum mengirimkan data ke Server 1.

Tujuan Proyek :

  1. Melindungi data yang dikirim antara klien dan server menggunakan enkripsi AES.
  2. Mengamankan komunikasi antar server dengan API.
  3. Mengimplementasikan prinsip-prinsip keamanan siber, termasuk enkripsi data, autentikasi API menggunakan JWT, dan pengaturan akses database yang sesuai.

Langkah-Langkah Implementasi :

1. Persiapan Lingkungan

Server 1 (API Gateway):

  • Menginstal Python dan Flask.
  • Membuat endpoint untuk menerima data dari Server 3 dan meneruskannya ke Server 2.

Server 2 (Database Server):

  • Menginstal MySQL.
  • Membuat tabel untuk menyimpan data.
  • Mengatur hak akses sesuai prinsip keamanan.

Server 3 (Backend Server):

  • Menginstal Python dan Flask.
  • Membuat fungsi enkripsi data menggunakan AES.
  • Membuat fungsi untuk mengirim data terenkripsi ke Server 1.

2. Arsitektur Sistem

  • Server 3 mengirim data terenkripsi ke Server 1.
  • Server 1 memvalidasi permintaan dan meneruskan data ke Server 2.
  • Server 2 menyimpan data ke database dengan menggunakan prepared statements untuk mencegah SQL injection.

3. Implementasi Program

Server 1 (API Gateway) :

Server 2 (Database Server) :

 

SQL untuk Server 2 (Database Server ):

A screen shot of a computer program

Description automatically generated

Server 3 (Backend Server) :

A screen shot of a computer program

Description automatically generated

4. Keamanan

  • AES Encryption: Data dienkripsi di Server 3 sebelum dikirim ke Server 1.
  • JWT (Opsional): Menambahkan token untuk memastikan hanya klien yang terautentikasi dapat mengakses endpoint.
  • Database Security: Hak akses database disesuaikan agar hanya proses tertentu yang dapat mengaksesnya.

5. Pengujian

  • Postman: Menguji endpoint dari Server 1 dan 3 untuk memastikan komunikasi berjalan dengan benar.
  • JMeter: Melakukan stress test pada Server 1 untuk memastikan sistem dapat menangani banyak permintaan secara bersamaan.

Hasil Akhir

  • Data berhasil dienkripsi di Server 3.
  • Data terenkripsi diterima oleh Server 1 dan diteruskan ke Server 2.
  • Server 2 menyimpan data ke dalam database MySQL secara aman.
  • Sistem berhasil diuji dengan Postman dan JMeter, membuktikan bahwa sistem aman dan efisien.

Kesimpulan

Proyek ini menunjukkan implementasi prinsip keamanan data dengan enkripsi AES, komunikasi API yang aman, dan penggunaan database dengan praktik terbaik keamanan. Sistem ini dapat diterapkan pada aplikasi real-world yang membutuhkan perlindungan data dan keamanan tingkat tinggi.