Difference between revisions of "KI: Kriptografi dalam Dunia Nyata"
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...") |
Onnowpurbo (talk | contribs) |
||
| (One intermediate revision by the same user not shown) | |||
| Line 1: | Line 1: | ||
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. | 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). | 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: | Tujuan pertemuan ini sederhana namun krusial: | ||
| − | setelah selesai, pembaca mampu mengenkripsi, melakukan hashing, dan menyimpan password dengan aman menggunakan Python. | + | setelah selesai, pembaca mampu mengenkripsi, melakukan hashing, dan menyimpan password dengan aman menggunakan Python. |
| − | Kriptografi dalam Dunia Nyata (Tanpa Ribet) | + | |
| + | ==Kriptografi dalam Dunia Nyata (Tanpa Ribet)== | ||
| + | |||
Kriptografi modern bukan tentang “bagaimana algoritma bekerja”, melainkan: | Kriptografi modern bukan tentang “bagaimana algoritma bekerja”, melainkan: | ||
| − | Kapan harus hashing | + | * Kapan harus hashing |
| − | Kapan harus encryption | + | * Kapan harus encryption |
| − | Bagaimana menyimpan dan mengelola key | + | * Bagaimana menyimpan dan mengelola key |
| − | Bagaimana tidak membuat kesalahan fatal | + | * Bagaimana tidak membuat kesalahan fatal |
| + | |||
Sebagian besar kebocoran data di dunia bukan karena algoritmanya lemah, tetapi karena: | Sebagian besar kebocoran data di dunia bukan karena algoritmanya lemah, tetapi karena: | ||
| − | developer salah pakai, | + | * developer salah pakai, |
| − | konfigurasi asal jalan, | + | * konfigurasi asal jalan, |
| − | atau copy-paste kode tanpa paham konteks. | + | * atau copy-paste kode tanpa paham konteks. |
| − | Kriptografi yang salah = tidak ada kriptografi sama sekali. | + | Kriptografi yang salah = tidak ada kriptografi sama sekali. |
| − | Hashing — Bukan untuk Disimpan Balik | + | |
| + | ==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 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 bukan enkripsi, dan ini penting untuk diingat. |
Hashing digunakan untuk: | Hashing digunakan untuk: | ||
| − | password | + | * password |
| − | verifikasi integritas file | + | * verifikasi integritas file |
| − | fingerprint data | + | * fingerprint data |
Hashing tidak digunakan untuk: | Hashing tidak digunakan untuk: | ||
| − | menyimpan data pribadi yang perlu dibaca ulang | + | * menyimpan data pribadi yang perlu dibaca ulang |
| − | menyimpan nomor KTP, email, atau alamat | + | * menyimpan nomor KTP, email, atau alamat |
Contoh sederhana: | Contoh sederhana: | ||
| − | Password: ✅ hash | + | * Password: ✅ hash |
| − | File upload check: ✅ hash | + | * File upload check: ✅ hash |
| − | Nomor KTP: ❌ jangan hash, enkripsi | + | * Nomor KTP: ❌ jangan hash, enkripsi |
Hal penting yang WAJIB diingat: | Hal penting yang WAJIB diingat: | ||
| − | Jangan pernah pakai MD5 atau SHA1 | + | * Jangan pernah pakai MD5 atau SHA1 |
| − | Gunakan algoritma modern seperti bcrypt, scrypt, atau argon2 | + | * Gunakan algoritma modern seperti bcrypt, scrypt, atau argon2 |
| − | Password tidak pernah disimpan. | + | Password tidak pernah disimpan. |
| − | Yang disimpan hanyalah hasil hash-nya. | + | Yang disimpan hanyalah hasil hash-nya. |
| − | Encryption — Saat Data Harus Bisa Dibaca Lagi | + | ==Encryption — Saat Data Harus Bisa Dibaca Lagi== |
Jika hashing bersifat satu arah, encryption (enkripsi) bersifat dua arah. | Jika hashing bersifat satu arah, encryption (enkripsi) bersifat dua arah. | ||
Artinya: | Artinya: | ||
| − | data enkripsi → aman saat disimpan | + | * data enkripsi → aman saat disimpan |
| − | data dekripsi → bisa dibaca kembali | + | * data dekripsi → bisa dibaca kembali |
Encryption digunakan untuk: | Encryption digunakan untuk: | ||
| − | data pribadi (PII) | + | * data pribadi (PII) |
| − | token | + | * token |
| − | API key | + | * API key |
| − | data sensitif di database | + | * data sensitif di database |
| − | backup | + | * backup |
Encryption selalu melibatkan kunci (key). | Encryption selalu melibatkan kunci (key). | ||
Jika key bocor, maka data ikut bocor. | Jika key bocor, maka data ikut bocor. | ||
| + | |||
Jenis encryption yang umum dipakai: | Jenis encryption yang umum dipakai: | ||
| − | Symmetric encryption (satu key) | + | |
| − | cepat | + | * Symmetric encryption (satu key) |
| − | cocok untuk database | + | ** cepat |
| − | Asymmetric encryption (public & private key) | + | ** cocok untuk database |
| − | cocok untuk komunikasi dan distribusi key | + | * Asymmetric encryption (public & private key) |
| − | Dalam praktik sehari-hari, AES adalah pilihan standar dan aman. | + | ** cocok untuk komunikasi dan distribusi key |
| − | Key Management — Bagian yang Paling Sering Diabaikan | + | 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. | Sebagus apapun algoritma kriptografi, jika key disimpan sembarangan, semuanya percuma. | ||
Kesalahan umum: | Kesalahan umum: | ||
| − | key ditulis langsung di source code | + | * key ditulis langsung di source code |
| − | key di-commit ke GitHub | + | * key di-commit ke GitHub |
| − | key disimpan dalam file tanpa proteksi | + | * key disimpan dalam file tanpa proteksi |
| − | satu key dipakai untuk semua data | + | * satu key dipakai untuk semua data |
Prinsip dasar key management: | Prinsip dasar key management: | ||
| − | Key ≠ password | + | * Key ≠ password |
| − | Key tidak pernah di-hardcode | + | * Key tidak pernah di-hardcode |
| − | Key disimpan di environment variable atau secret manager | + | * Key disimpan di environment variable atau secret manager |
| − | Key bisa diganti (rotasi) | + | * Key bisa diganti (rotasi) |
| − | Key adalah kunci rumah digital Anda. | + | |
| − | Menaruhnya di depan pintu sama saja mengundang pencuri. | + | Key adalah kunci rumah digital Anda. |
| − | Kesalahan Umum Kriptografi (Ini yang Paling Sering Terjadi) | + | 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. | Bagian ini penting karena 99% masalah keamanan berasal dari sini, bukan dari algoritma. | ||
Kesalahan yang sering dilakukan: | Kesalahan yang sering dilakukan: | ||
| − | Menggunakan algoritma lama (MD5, SHA1) | + | * Menggunakan algoritma lama (MD5, SHA1) |
| − | Enkripsi tanpa authentication | + | * Enkripsi tanpa authentication |
| − | Reuse key untuk banyak fungsi | + | * Reuse key untuk banyak fungsi |
| − | Menyimpan password dalam bentuk plaintext | + | * Menyimpan password dalam bentuk plaintext |
| − | Menganggap encoding (Base64) sebagai enkripsi ❌ | + | * Menganggap encoding (Base64) sebagai enkripsi ❌ |
Perlu ditegaskan: | Perlu ditegaskan: | ||
| − | Base64 ❌ bukan enkripsi | + | * Base64 ❌ bukan enkripsi |
| − | Hash ❌ bukan untuk data pribadi | + | * Hash ❌ bukan untuk data pribadi |
| − | 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.