Difference between revisions of "KI: Kriptografi dalam Dunia Nyata"
Onnowpurbo (talk | contribs) |
Onnowpurbo (talk | contribs) |
||
| Line 91: | Line 91: | ||
* Encryption ❌ bukan untuk password | * Encryption ❌ bukan untuk password | ||
Jika satu prinsip ini dipahami, 80% kesalahan kripto sudah terhindari. | Jika satu prinsip ini dipahami, 80% kesalahan kripto sudah terhindari. | ||
| + | |||
| + | ==Pranala Menarik== | ||
| + | |||
| + | * [[Keamanan Informasi: Kuliah]] | ||
Latest revision as of 15:12, 22 January 2026
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.