Serangan Waktu: Mengekstrak Kunci dari Waktu Eksekusi
Peragakan serangan waktu cache pada implementasi yang waktu eksekusinya tidak konstan.
Serangan Waktu: Mengekstrak Kunci dari Waktu Eksekusi adalah pelajaran Cryptology Academy gratis di CoddyKit. Ini adalah pelajaran 1 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 Serangan Waktu?
Serangan waktu adalah serangan saluran samping ketika penyerang mengukur berapa lama operasi kriptografi berlangsung untuk menyimpulkan data rahasia. Bahkan perbedaan dalam hitungan nanodetik dapat membocorkan bit kunci.
Mengapa Waktu Eksekusi Membocorkan Rahasia
Percabangan dan akses memori di dalam kode kriptografi sering bergantung pada nilai rahasia. Perulangan yang keluar lebih awal ketika menemukan bit nol berjalan lebih cepat — penyerang mengukur perbedaan tersebut.
Serangan Waktu Tembolok pada AES
Pencarian tabel AES klasik mengakses baris tembolok CPU yang alamatnya bergantung pada bait kunci. Alat seperti Flush+Reload memungkinkan penyerang mengamati baris tembolok mana yang diakses.
Oracle Waktu RSA Bleichenbacher
Serangan Bleichenbacher pada 1998 mengeksploitasi perbedaan waktu dalam validasi pengisi PKCS#1 v1.5. Jutaan teks sandi pilihan dapat memulihkan kunci privat RSA 1024-bit.
Serangan Waktu Jarak Jauh
Bahkan melalui jaringan, perbedaan waktu di bawah satu milidetik dapat diukur dengan sampel yang cukup banyak. Lucky13 mengeksploitasi waktu MAC mode CBC dalam TLS melalui internet.
Mengukur Waktu dalam Python
Gunakan time.perf_counter_ns() untuk resolusi nanodetik. Untuk mendemonstrasikan perbandingan yang rentan:
import time
def vulnerable_compare(a, b):
for x, y in zip(a, b):
if x != y:
return False
return len(a) == len(b)
start = time.perf_counter_ns()
vulnerable_compare(b"secret_key_here", b"wrong_key_xxxxx")
elapsed = time.perf_counter_ns() - start
print(f"Elapsed: {elapsed} ns")Menyimulasikan Oracle Waktu
Oracle waktu mengembalikan apakah suatu tebakan benar AND membocorkan waktu. Kita dapat memulihkan rahasia satu bait demi satu bait dengan mengukur tebakan mana yang memerlukan waktu paling lama sebelum mengembalikan False.
Analisis Statistik Data Waktu
Pengukuran tunggal mengandung banyak derau. Penyerang mengumpulkan ribuan sampel untuk setiap kandidat dan menggunakan pengujian statistik (uji-t, pengujian Welch) untuk membedakan sinyal dari derau.
Serangan Manger pada OAEP
Pada 2001, Manger menunjukkan bahwa bahkan RSA dengan pengisi OAEP membocorkan informasi jika implementasinya membedakan "bait pertama bernilai nol" dari galat lain dengan waktu yang berbeda.
Contoh di Dunia Nyata
OpenSSL, GnuTLS, dan NSS semuanya pernah memiliki CVE serangan waktu. Serangan TLS Lucky13 (CVE-2013-0169) memengaruhi hampir setiap pustaka TLS ketika pengungkapannya dilakukan.
Pemeriksaan Pengetahuan
Teknik statistik apa yang membantu penyerang membedakan sinyal waktu dari derau pengukuran?
Ringkasan Pelajaran
Serangan waktu mengekstrak rahasia kriptografi dengan mengukur perbedaan waktu eksekusi. Serangan ini dapat dilakukan secara lokal (tembolok) atau jarak jauh (jaringan). Analisis statistik memisahkan sinyal dari derau. Perbaikannya adalah kode dengan waktu konstan — yang dibahas dalam pelajaran Penanggulangan.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Serangan Waktu: Mengekstrak Kunci dari Waktu Eksekusi” gratis?
Ya — teks lengkap “Serangan Waktu: Mengekstrak Kunci dari Waktu Eksekusi” 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 “Serangan Waktu: Mengekstrak Kunci dari Waktu Eksekusi”?
Peragakan serangan waktu cache pada implementasi yang waktu eksekusinya tidak konstan. 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 1 dari 4.
Berapa lama pelajaran “Serangan Waktu: Mengekstrak Kunci dari Waktu Eksekusi” 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
- Serangan Waktu: Mengekstrak Kunci dari Waktu Eksekusi
- Analisis Daya: SPA & DPA
- Saluran Samping Elektromagnetik & Akustik
- Penanggulangan: Masking, Blinding & Kode Waktu Konstan