Difference between revisions of "KI: Kriptografi dalam Dunia Nyata"

From OnnoWiki
Jump to navigation Jump to search
 
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.

Pranala Menarik