Skip to content

CCNT-hacklab/Kryptography

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Studi Kasus Terpadu: Membangun Aplikasi Voting Aman dengan Kriptografi

Studi kasus integrasi konsep dan alat kriptografi untuk merancang aplikasi secure voting, menjamin kerahasiaan pemilih, integritas suara, auditabilitas (hasil dapat diverifikasi), dan ketersediaan sistem. Proyek ini melibatkan kolaborasi Frontend Developer, Backend Developer, dan System Engineer (DevSecOps) dalam penerapan kriptografi.

Tujuan Proyek

Rancang sistem voting yang:

  • Menjamin kerahasiaan suara pemilih.
  • Memastikan integritas suara agar tidak dimanipulasi.
  • Mendukung auditabilitas untuk verifikasi hasil.
  • Menjamin ketersediaan sistem meskipun ada serangan.

Peran dan Tanggung Jawab dalam Konteks Kriptografi

1. Peran Frontend Developer

Frontend Developer fokus pada (UI)(UX), serta memastikan data sensitif diproses dengan aman sebelum dikirim ke backend.

Tanggung Jawab Utama

  • Pra-pemrosesan Data Sensitif: Mengenkripsi data pemilih (misalnya, pilihan suara) di sisi klien menggunakan library JavaScript (contoh: AES) sebelum dikirim ke backend.
  • Manajemen Kunci Lokal (Opsional): Menyimpan kunci kriptografi di browser atau aplikasi mobile dengan aman (misalnya, di local storage terenkripsi atau keychain perangkat).
  • Kepatuhan Protokol Jaringan: Memastikan semua komunikasi API menggunakan HTTPS/TLS, bukan HTTP biasa.

Keterkaitan Materi

  • Enkripsi Data Pemilih dengan AES: Mengenkripsi suara atau data pribadi di sisi klien sebelum pengiriman.
  • Konsep URL Encoding: Meng-encode data sensitif dengan benar jika dikirim sebagai bagian dari URL untuk mencegah kebocoran.

2. Peran Backend Developer

Backend Developer membangun logika inti aplikasi, mengelola database, dan menyediakan secure API.

Tanggung Jawab Utama

  • Penanganan Enkripsi/Dekripsi Data: Menerima data terenkripsi dari frontend, mendekripsinya untuk pemrosesan, dan mengenkripsi kembali untuk penyimpanan (data at-rest) menggunakan AES-256.
  • Manajemen Kunci Aplikasi: Menghasilkan dan menyimpan kunci enkripsi (misalnya, kunci AES) dengan aman, misalnya melalui Key Management System (KMS) atau Hardware Security Module (HSM).
  • Implementasi Fungsi Hash: Menggunakan SHA-256 untuk menghasilkan hash setiap suara atau transaksi guna memastikan integritas.
  • Validasi Keamanan Data: Memverifikasi tanda tangan digital atau integritas data dari frontend.
  • API Security: Menerapkan otentikasi dan otorisasi yang kuat untuk API.

Keterkaitan Materi

  • Enkripsi Data Pemilih dengan AES: Mengenkripsi dan mendekripsi data pemilih untuk pemrosesan dan penyimpanan.
  • Validasi Integritas dengan SHA-256: Menghasilkan dan memverifikasi hash suara.
  • Konsep Enkripsi Simetris dan Asimetris: Menggunakan keduanya untuk keamanan data dan komunikasi.

3. Peran System Engineer (DevSecOps)

System Engineer memastikan infrastruktur aman dan praktik kriptografi terbaik diterapkan di seluruh siklus pengembangan dan operasi.

Tanggung Jawab Utama dalam Kriptografi

  • Konfigurasi Infrastruktur Aman: Konfigurasi server web (misalnya, Nginx) untuk menggunakan TLS 1.3 dengan cipher suites untuk mengelola sertifikat SSL/TLS menggunakan OpenSSL atau Certbot.
  • Manajemen Kunci Tingkat Infrastruktur: Integrasi solusi seperti AWS KMS atau HSM untuk melindungi kunci privat server dan kunci aplikasi.
  • Keamanan Data At-Rest (Disk): Enkripsi volume disk (misalnya, dengan LUKS di Linux) untuk melindungi data meskipun server disusupi secara fisik.
  • Isolasi Aplikasi: Penerapan arsitektur microservices dengan prinsip Zero-Trust, menggunakan mTLS untuk komunikasi antar-layanan.
  • Audit dan Monitoring Keamanan: Penggunaan Wireshark untuk analisis lalu lintas jaringan dan memverifikasi enkripsi. Melakukan simulasi serangan (brute-force atau pengujian kerentanan) untuk mendeteksi celah keamanan.
  • Pembaruan Keamanan: Pastikan perangkat lunak dan firmware selalu diperbarui untuk mencegah serangan seperti Meltdown/Spectre.
  • Desain Skalabilitas dan Ketahanan: Pastikan operasi kriptografi tidak menjadi bottleneck dan sistem tetap tersedia saat diserang.

Keterkaitan Materi

  • Overview Tools: Menggunakan Python, OpenSSL, dan Wireshark untuk konfigurasi, troubleshooting, dan analisis keamanan.
  • Pertukaran Kunci dengan RSA + OpenSSL: Mengkonfigurasi TLS/HTTPS di server.
  • Kriptografi dalam Keamanan Jaringan: Menerapkan TLS 1.3 dan mengelola cipher suites.
  • Hardware Security (TPM, HSM, SGX): Mengintegrasikan solusi keamanan perangkat keras.
  • Zero-Trust: Mendesain komunikasi antar-layanan yang aman.
  • Simulasi Enkripsi Data di AWS KMS: Mengelola kunci di lingkungan cloud.
  • Docker Container dengan Enkripsi Volume: Mengamankan data persisten di kontainer.
  • Side-channel Attack: Memahami risiko dan menerapkan mitigasi pada level perangkat keras.
  • Seluruh Studi Kasus Aplikasi Voting: Mengkoordinasikan semua aspek keamanan sistem.

Kesimpulan

Studi kasus ini menunjukkan bagaimana Frontend Developer, Backend Developer, dan System Engineer bekerja sama untuk membangun aplikasi secure voting menggunakan prinsip kriptografi. Dengan integrasi enkripsi simetris (AES), hash (SHA-256), enkripsi asimetris (RSA/TLS), dan praktik DevSecOps seperti Zero-Trust dan enkripsi volume, sistem ini dapat menjamin kerahasiaan, integritas, auditabilitas, dan ketersediaan. Setiap peran memainkan bagian penting dalam memastikan keamanan dari sisi klien, backend, hingga infrastruktur.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages