KI: Kriptografi dalam Dunia Nyata

From OnnoWiki
Revision as of 15:00, 22 January 2026 by Onnowpurbo (talk | contribs) (Created page with "Pada tahap ini, kita berhenti membicarakan kriptografi sebagai rumus matematika dan mulai memperlakukannya sebagai alat kerja harian. Di dunia nyata, hampir semua engineer, sy...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Pada tahap ini, kita berhenti membicarakan kriptografi sebagai rumus matematika dan mulai memperlakukannya sebagai alat kerja harian. Di dunia nyata, hampir semua engineer, sysadmin, dan developer tidak pernah menghitung kriptografi secara manual—yang mereka lakukan adalah menggunakan library yang benar, dengan cara yang benar. Kriptografi di sini diposisikan sebagai alat perlindungan data, bukan sebagai mystical black box. Jika digunakan dengan benar, kriptografi membuat sistem aman, tahan bocor, dan terpercaya. Namun jika digunakan salah, ia justru bisa memberi rasa aman palsu (false sense of security). Tujuan pertemuan ini sederhana namun krusial: setelah selesai, pembaca mampu mengenkripsi, melakukan hashing, dan menyimpan password dengan aman menggunakan Python. Kriptografi dalam Dunia Nyata (Tanpa Ribet) Kriptografi modern bukan tentang “bagaimana algoritma bekerja”, melainkan: Kapan harus hashing Kapan harus encryption Bagaimana menyimpan dan mengelola key Bagaimana tidak membuat kesalahan fatal Sebagian besar kebocoran data di dunia bukan karena algoritmanya lemah, tetapi karena: developer salah pakai, konfigurasi asal jalan, atau copy-paste kode tanpa paham konteks. Kriptografi yang salah = tidak ada kriptografi sama sekali. Hashing — Bukan untuk Disimpan Balik Hashing adalah proses mengubah data menjadi nilai tetap (fixed-length) yang tidak bisa dikembalikan ke bentuk awal. Ini satu arah (one-way). Hashing bukan enkripsi, dan ini penting untuk diingat. Hashing digunakan untuk: password verifikasi integritas file fingerprint data Hashing tidak digunakan untuk: menyimpan data pribadi yang perlu dibaca ulang menyimpan nomor KTP, email, atau alamat Contoh sederhana: Password: ✅ hash File upload check: ✅ hash Nomor KTP: ❌ jangan hash, enkripsi Hal penting yang WAJIB diingat: Jangan pernah pakai MD5 atau SHA1 Gunakan algoritma modern seperti bcrypt, scrypt, atau argon2 Password tidak pernah disimpan. Yang disimpan hanyalah hasil hash-nya. Encryption — Saat Data Harus Bisa Dibaca Lagi Jika hashing bersifat satu arah, encryption (enkripsi) bersifat dua arah. Artinya: data enkripsi → aman saat disimpan data dekripsi → bisa dibaca kembali Encryption digunakan untuk: data pribadi (PII) token API key data sensitif di database backup Encryption selalu melibatkan kunci (key). Jika key bocor, maka data ikut bocor. Jenis encryption yang umum dipakai: Symmetric encryption (satu key) cepat cocok untuk database Asymmetric encryption (public & private key) cocok untuk komunikasi dan distribusi key Dalam praktik sehari-hari, AES adalah pilihan standar dan aman. Key Management — Bagian yang Paling Sering Diabaikan Sebagus apapun algoritma kriptografi, jika key disimpan sembarangan, semuanya percuma. Kesalahan umum: key ditulis langsung di source code key di-commit ke GitHub key disimpan dalam file tanpa proteksi satu key dipakai untuk semua data Prinsip dasar key management: Key ≠ password Key tidak pernah di-hardcode Key disimpan di environment variable atau secret manager Key bisa diganti (rotasi) Key adalah kunci rumah digital Anda. Menaruhnya di depan pintu sama saja mengundang pencuri. Kesalahan Umum Kriptografi (Ini yang Paling Sering Terjadi) Bagian ini penting karena 99% masalah keamanan berasal dari sini, bukan dari algoritma. Kesalahan yang sering dilakukan: Menggunakan algoritma lama (MD5, SHA1) Enkripsi tanpa authentication Reuse key untuk banyak fungsi Menyimpan password dalam bentuk plaintext Menganggap encoding (Base64) sebagai enkripsi ❌ Perlu ditegaskan: Base64 ❌ bukan enkripsi Hash ❌ bukan untuk data pribadi Encryption ❌ bukan untuk password Jika satu prinsip ini dipahami, 80% kesalahan kripto sudah terhindari.