Serangan wektu minangka kelas canggih saka serangan saluran sisih sing ngeksploitasi variasi ing wektu sing dibutuhake kanggo sistem kanggo nglakokake algoritma kriptografi utawa operasi sensitif liyane. Variasi kasebut bisa diukur lan dianalisis kanggo nyimpulake informasi sensitif, kayata kunci kriptografi, sandhi, utawa data rahasia liyane. Prinsip dhasar ing mburi serangan wektu yaiku input utawa negara sing beda saka sistem bisa nyebabake wektu eksekusi sing beda, sanajan bedane mung sawetara menit. Kanthi ngukur wektu eksekusi kasebut kanthi teliti, panyerang bisa ngumpulake informasi sing cukup kanggo mbangun maneh data sing sensitif.
Ing konteks sistem kriptografi, serangan wektu utamane kuat amarga akeh algoritma kriptografi sing melu operasi sing wektu eksekusi bisa gumantung marang kunci rahasia utawa plaintext sing diproses. Contone, nimbang operasi kriptografi sing prasaja kayata eksponensial modular, sing umum digunakake ing kriptografi kunci publik (contone, RSA). Wektu sing ditindakake kanggo nindakake eksponensial modular bisa beda-beda adhedhasar jumlah bit sing disetel dadi 1 ing eksponen. Yen panyerang bisa ngukur wektu sing ditindakake kanggo nindakake sawetara eksponensial modular kanthi input sing beda-beda, bisa uga bisa nyimpulake bit saka eksponen rahasia.
Salah sawijining serangan wektu sing paling wiwitan lan paling kondhang dituduhake dening Paul Kocher ing taun 1996 marang implementasi RSA lan Diffie-Hellman. Kocher nuduhake yen kanthi ngukur wektu sing ditindakake kanggo algoritma kasebut kanggo nindakake operasi kunci pribadi, bisa disimpulake kunci pribadi. Serangan kasebut nggunakake kasunyatan manawa operasi tartamtu ing algoritma, kayata multiplikasi modular, njupuk wektu sing beda-beda gumantung saka nilai input.
Conto klasik liyane saka serangan wektu yaiku serangan ing algoritma AES (Advanced Encryption Standard). AES minangka algoritma enkripsi kunci simetris sing nyakup sawetara operasi substitusi, permutasi, lan campuran. Ing sawetara implementasine, wektu sing ditindakake kanggo ngakses memori utawa nindakake operasi tartamtu bisa gumantung marang nilai kunci rahasia lan plaintext. Kanthi ngukur kanthi ati-ati wektu sing ditindakake kanggo ngenkripsi plainteks sing beda-beda, panyerang bisa nyimpulake informasi babagan kunci rahasia.
Kanggo ngerti cara kerja serangan wektu kanthi rinci, nimbang langkah-langkah ing ngisor iki sing biasane melu nglakokake serangan wektu:
1. Ukur Ukur: Panyerang bola-bali ngirim input sing beda menyang sistem target lan ngukur wektu sing ditindakake kanggo sistem kanggo nanggapi. Pangukuran iki kudu tepat lan mbutuhake timer resolusi dhuwur utawa hardware khusus kanggo entuk akurasi sing dibutuhake.
2. Pengumpulan Data: Penyerang ngumpulake akeh pangukuran wektu sing cocog karo input sing beda. Luwih akeh pangukuran sing diklumpukake, luwih akurat panyerang bisa nyimpulake informasi sensitif.
3. Analisis statistik: Penyerang nganalisa data wektu sing diklumpukake nggunakake metode statistik kanggo ngenali pola utawa korélasi antarane nilai input lan wektu eksekusi. Analisis iki bisa mbukak informasi babagan kahanan internal sistem, kayata nilai kunci rahasia utawa data sensitif liyane.
4. Ekstraksi Kunci: Adhedhasar analisis statistik, panyerang mbangun maneh informasi sensitif. Langkah iki bisa uga kalebu ngrampungake persamaan matematika utawa nggunakake teknik pembelajaran mesin kanggo nyimpulake data rahasia.
Kanggo nggambarake langkah-langkah kasebut kanthi conto konkrit, nimbang serangan wektu ing fungsi mbandhingake tembung sandhi. Akeh sistem nggunakake fungsi sing mbandhingake sandhi sing diwenehake pangguna karo sandhi sing disimpen kanggo otentikasi pangguna. Implementasine naif saka fungsi kasebut bisa mbandhingake karakter sandhi miturut karakter lan bali sanalika ora cocog ditemokake. Iki tegese wektu sing ditindakake kanggo mbandhingake rong tembung sandhi bisa beda-beda gumantung saka jumlah karakter sing cocog ing wiwitan tembung sandhi. Panyerang bisa ngeksploitasi variasi wektu iki kanggo nyimpulake tembung sandhi sing bener saben karakter.
Contone, umpamane tembung sandhi sing disimpen yaiku "securepassword". Penyerang bisa miwiti kanthi ngirim tembung sandhi "a" lan ngukur wektu sing ditindakake kanggo mbandhingake. Yen mbandhingake cepet, panyerang ngerti yen karakter pisanan dudu 'a'. Penyerang banjur nyoba "b", "c", lan sateruse, nganti dheweke nemokake karakter sing rada suwe kanggo mbandhingake, nuduhake pertandhingan. Panyerang banjur pindhah menyang karakter kapindho lan mbaleni proses, pungkasanipun reconstructing kabeh sandi.
Kanggo nyuda serangan wektu, sawetara cara bisa ditindakake:
1. Algoritma Konstan-Wektu: Ngleksanakake algoritma kriptografi lan operasi sensitif liyane kanthi cara sing njamin wektu eksekusi pancet preduli saka nilai input. Iki bisa dadi tantangan nanging penting kanggo nyegah serangan wektu.
2. Telat Acak: Introduksi telat acak ing eksekusi operasi sensitif kanggo nyamarke informasi wektu. Nanging, pendekatan iki bisa uga kurang efektif marang panyerang sing bisa rata-rata wektu tundha acak sajrone pirang-pirang pangukuran.
3. Teknik Buta: Gunakake teknik blinding kanggo acak input menyang operasi kriptografi, dadi angel kanggo panyerang kanggo hubungan wektu eksekusi karo nilai input tartamtu.
4. Penanggulangan Hardware: Gunakake countermeasures adhedhasar hardware, kayata co-prosesor kriptografi khusus, sing dirancang kanggo nolak serangan wektu kanthi nyedhiyakake eksekusi wektu sing terus-terusan utawa langkah-langkah protèktif liyane.
5. Kode Auditing lan Testing: Audit lan uji kode kanthi rutin kanggo kerentanan wektu, utamane ing implementasi kriptografi. Piranti lan teknik otomatis bisa mbantu ngenali bocor wektu potensial.
Serangan wektu nyoroti pentinge nimbang kerentanan saluran sisih ing desain lan implementasi sistem aman. Nalika algoritma kriptografi asring dianalisis kanggo kekuatan matematika, keamanan praktis uga gumantung ing rincian implementasine lan potensial kanggo serangan saluran sisih. Pangembang lan profesional keamanan kudu waspada kanggo ngatasi kerentanan kasebut kanggo njamin kekokohan sistem kriptografi.
Pitakonan lan jawaban anyar liyane babagan serangan wektu CPU:
- Apa sawetara tantangan lan trade-off sing ana ing implementasine mitigasi hardware lan piranti lunak nglawan serangan wektu nalika njaga kinerja sistem?
- Apa peran prediktor cabang ing serangan wektu CPU, lan kepiye para panyerang bisa ngapusi kanggo bocor informasi sensitif?
- Kepiye pemrograman wektu konstan bisa nyuda risiko serangan wektu ing algoritma kriptografi?
- Apa eksekusi spekulatif, lan kepiye carane menehi kontribusi marang kerentanan prosesor modern kanggo serangan wektu kaya Spectre?
- Apa serangan wektu?