Cryptology Academy · Pelajaran

Kekurangan Entropi & Kesalahan Kunci Lemah

Pelajari bug RNG OpenSSL di Debian dan kegagalan keacakan nyata lainnya.

Pelajaran 3 dari 413 langkah

Kekurangan Entropi & Kesalahan Kunci Lemah adalah pelajaran Cryptology Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Cryptology Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Cryptology Academy mencakup 4 pelajaran total.

Apa Itu Kekurangan Entropi

Kekurangan entropi terjadi ketika sistem tidak memiliki masukan tak terduga yang cukup untuk memberikan nilai awal pada CSPRNG. Hal ini terjadi pada perangkat tertanam yang baru dinyalakan, server tervirtualisasi, atau sistem tanpa masukan pengguna. Keluaran RNG menjadi dapat diprediksi.

Bug OpenSSL Debian (CVE-2008-0166)

Pada 2006, pengembang Debian menghapus baris yang ditandai oleh Valgrind: MD_Update(&m, buf, j). Baris ini adalah sumber entropi. Akibatnya: OpenSSL di Debian hanya diberi nilai awal menggunakan PID (maksimal 32.768 nilai). Semua kunci yang dibuat pada 2006–2008 berada dalam kumpulan 32.768 kemungkinan.

Dampak Bug Debian

Kunci RSA, DSA, dan ECDSA, kunci host SSH, sertifikat TLS, serta kunci VPN SSL yang dibuat pada sistem Debian/Ubuntu selama 2006–2008 telah disusupi. Sistem yang terdampak: Debian Etch, Debian Lenny, Ubuntu 7.04–8.04. Daftar hitam diterbitkan; sertifikat dicabut.

Masalah RNG Mesin Virtual

Mesin virtual dapat dikloning dengan keadaan disk yang identik. Jika kedua mesin virtual menghasilkan kunci dari keadaan CSPRNG yang sama, keduanya menghasilkan kunci yang sama. Hipervisor kini menyuntikkan entropi melalui VirtIO RNG atau tabel ACPI, tetapi mesin virtual yang dikonfigurasi dengan buruk masih menghadapi risiko ini saat dinyalakan.

Sistem Tertanam dan IoT

Perangkat IoT (perute, kamera) sering membuat kunci SSH/TLS saat pertama kali dinyalakan, sebelum mengumpulkan entropi. Penelitian menemukan jutaan perangkat berbagi beberapa ribu pasangan kunci RSA karena semuanya menggunakan nilai awal dari keadaan penyalaan dengan entropi rendah.

Serangan GCD terhadap Kunci RSA

Lenstra dkk. (2012) mengumpulkan 11,7 juta sertifikat TLS dan menghitung GCD berpasangan. Ditemukan 12.720 kunci RSA yang berbagi faktor prima—artinya kedua kunci dapat difaktorkan sepenuhnya. Sebanyak 0,2% dari seluruh kunci publik berhasil dipecahkan. Penyebabnya: entropi saat penyalaan tidak memadai.

Penggunaan Ulang Nonce dalam ECDSA

ECDSA memerlukan nonce acak k yang unik untuk setiap tanda tangan. Jika k digunakan ulang (atau lemah), kunci privat dapat segera dipulihkan: d = (s1-s2)^{-1} * (z1-z2) * k / (r1-r2) mod n. PS3 milik Sony menggunakan k=constant—semua permainan dapat ditandatangani dengan kunci yang dipulihkan.

Bug Dompet Bitcoin Android (2013)

Java SecureRandom pada Android 4.x diberi nilai awal dari waktu sistem dalam kondisi tertentu. Beberapa aplikasi dompet Bitcoin membuat tanda tangan dengan nonce k yang sama sehingga kunci privat bocor. Jutaan dolar dicuri. Google memperbaiki implementasi SecureRandom.

Mendeteksi Kunci Lemah

Alat: ssh-vulnkey (memeriksa terhadap daftar hitam kunci lemah Debian), badkeys (memeriksa sertifikat TLS untuk faktor prima yang diketahui lemah), serta algoritme GCD-batch untuk audit kunci RSA secara massal. Log Certificate Transparency memungkinkan analisis pada skala populasi.

Mitigasi

Gunakan getrandom(GRND_RANDOM) saat pertama kali membuat kunci. Baca dari /dev/urandom setelah menunggu pemberian nilai awal pertama (periksa /proc/sys/kernel/random/entropy_avail > 128). Gunakan RNG perangkat keras (RDRAND) sebagai entropi tambahan. Jangan pernah membuat kunci saat pertama kali dinyalakan tanpa jeda.

Persistensi Berkas Nilai Awal

Pertahankan keadaan CSPRNG di antara proses mulai ulang: simpan 32 byte dari /dev/urandom ke berkas nilai awal saat dimatikan; baca dan masukkan kembali saat dinyalakan. Ini menyediakan kesinambungan entropi di antara penyalaan dingin. Linux melakukan hal ini secara otomatis; sistem tertanam sering kali tidak.

Pemeriksaan Singkat

Apa penyebab utama bug entropi OpenSSL Debian?

Rangkuman

Kekurangan entropi menyebabkan kunci yang dapat diprediksi. Pembobolan nyata: OpenSSL Debian (nilai awal hanya berupa PID), serangan GCD pada IoT, penggunaan ulang nonce ECDSA PS3, serta dompet Bitcoin Android. Selalu gunakan entropi OS sebagai sumber nilai awal; audit pembuatan kunci pada sistem tertanam dengan cermat. Berikutnya: membuat kunci, nonce, dan IV dengan aman.

Gratis untuk memulai

Belajar Cryptology Academy dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
67
Pelajaran
261

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Kekurangan Entropi & Kesalahan Kunci Lemah” gratis?

Ya — teks lengkap “Kekurangan Entropi & Kesalahan Kunci Lemah” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Cryptology Academy, upgrade ke CoddyKit PRO. Kursus Cryptology Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Kekurangan Entropi & Kesalahan Kunci Lemah”?

Pelajari bug RNG OpenSSL di Debian dan kegagalan keacakan nyata lainnya. Kamu berlatih Cryptology Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Cryptology Academy?

Tidak diperlukan pengalaman sebelumnya. Cryptology Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Kekurangan Entropi & Kesalahan Kunci Lemah” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Cryptology Academy ini?

Ya. Setiap pelajaran Cryptology Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Keacakan Sejati vs Keacakan Semu
  2. PRNG yang Aman secara Kriptografis
  3. Kekurangan Entropi & Kesalahan Kunci Lemah
  4. Membangkitkan Kunci, Nonce & IV dengan Aman
← Kembali ke Cryptology Academy