Tydsberekeningaanvalle is 'n gesofistikeerde klas sykanaalaanvalle wat die variasies in die tyd wat dit neem vir 'n stelsel uitbuit om kriptografiese algoritmes of ander sensitiewe bewerkings uit te voer. Hierdie variasies kan gemeet en ontleed word om sensitiewe inligting af te lei, soos kriptografiese sleutels, wagwoorde of ander vertroulike data. Die fundamentele beginsel agter tydsberekening van aanvalle is dat verskillende insette of toestande van 'n stelsel kan lei tot verskillende uitvoeringstye, selfs al is die verskille min. Deur hierdie uitvoeringstye noukeurig te meet, kan 'n aanvaller genoeg inligting versamel om die sensitiewe data te rekonstrueer.
In die konteks van kriptografiese stelsels is tydsberekening aanvalle veral kragtig omdat baie kriptografiese algoritmes bewerkings behels waarvan die uitvoeringstyd kan afhang van die geheime sleutel of die gewone teks wat verwerk word. Oorweeg byvoorbeeld 'n eenvoudige kriptografiese operasie soos modulêre eksponensiëring, wat algemeen gebruik word in publieke sleutel kriptografie (bv. RSA). Die tyd wat dit neem om modulêre eksponensiëring uit te voer, kan wissel op grond van die aantal bisse wat op 1 in die eksponent gestel is. As 'n aanvaller die tyd kan meet wat dit neem om verskeie modulêre eksponensiasies met verskillende insette uit te voer, kan hulle moontlik die stukkies van die geheime eksponent aflei.
Een van die vroegste en bekendste tydsberekeningaanvalle is deur Paul Kocher in 1996 teen RSA en Diffie-Hellman-implementerings gedemonstreer. Kocher het getoon dat dit moontlik was om die private sleutel af te lei deur die tyd wat hierdie algoritmes neem om private sleutelbewerkings uit te voer, te meet. Die aanval het gebruik gemaak van die feit dat sekere bewerkings binne die algoritmes, soos modulêre vermenigvuldiging, verskillende hoeveelhede tyd geneem het, afhangende van die insetwaardes.
Nog 'n klassieke voorbeeld van 'n tydsberekening aanval is die aanval op die AES (Advanced Encryption Standard) algoritme. AES is 'n simmetriese sleutel-enkripsie-algoritme wat verskeie rondtes van vervanging, permutasie en mengbewerkings behels. In sommige implementerings kan die tyd wat dit neem om toegang tot geheue te verkry of sekere bewerkings uit te voer, afhang van die waardes van die geheime sleutel en die gewone teks. Deur die tyd wat dit neem om verskillende gewone tekste te enkripteer noukeurig te meet, kan 'n aanvaller inligting oor die geheime sleutel aflei.
Om te verstaan hoe tydsberekening aanvalle in detail werk, oorweeg die volgende stappe wat tipies betrokke is by die uitvoering van 'n tydsberekening aanval:
1. Metingsfase: Die aanvaller stuur herhaaldelik verskillende insette na die teikenstelsel en meet die tyd wat dit neem vir die stelsel om te reageer. Hierdie metings moet presies wees en kan hoë-resolusie tydtellers of gespesialiseerde hardeware vereis om die nodige akkuraatheid te bereik.
2. Data-insameling: Die aanvaller versamel 'n groot aantal tydsberekeningmetings wat ooreenstem met verskillende insette. Hoe meer metings ingesamel word, hoe meer akkuraat kan die aanvaller die sensitiewe inligting aflei.
3. Statistiese analise: Die aanvaller ontleed die versamelde tydsberekeningsdata met behulp van statistiese metodes om patrone of korrelasies tussen die insetwaardes en die uitvoeringstye te identifiseer. Hierdie ontleding kan inligting oor die interne toestand van die stelsel openbaar, soos die waardes van geheime sleutels of ander sensitiewe data.
4. Sleutel onttrekking: Op grond van die statistiese ontleding rekonstrueer die aanvaller die sensitiewe inligting. Hierdie stap kan die oplossing van wiskundige vergelykings behels of die gebruik van masjienleertegnieke om die geheime data af te lei.
Om hierdie stappe met 'n konkrete voorbeeld te illustreer, oorweeg 'n tydsberekening aanval op 'n wagwoordvergelykingsfunksie. Baie stelsels gebruik funksies wat gebruiker-verskafde wagwoorde vergelyk met gestoorde wagwoorde om gebruikers te staaf. 'n Naïewe implementering van so 'n funksie kan die wagwoorde karakter vir karakter vergelyk en terugkeer sodra 'n wanpassing gevind word. Dit beteken dat die tyd wat dit neem om twee wagwoorde te vergelyk kan wissel na gelang van die aantal ooreenstemmende karakters aan die begin van die wagwoorde. 'n Aanvaller kan hierdie tydsberekeningvariasie ontgin om die korrekte wagwoord een karakter op 'n slag af te lei.
Gestel byvoorbeeld die gestoorde wagwoord is "securepassword". 'n Aanvaller kan begin deur die wagwoord "a" te stuur en die tyd wat dit vir die vergelyking neem, te meet. As die vergelyking vinnig is, weet die aanvaller dat die eerste karakter nie 'a' is nie. Die aanvaller probeer dan "b", "c", ensovoorts, totdat hulle 'n karakter kry wat effens langer neem om te vergelyk, wat 'n passing aandui. Die aanvaller beweeg dan aan na die tweede karakter en herhaal die proses, en herkonstrueer uiteindelik die hele wagwoord.
Om tydsberekening aanvalle te versag, kan verskeie teenmaatreëls aangewend word:
1. Konstante-tyd algoritmes: Implementeer kriptografiese algoritmes en ander sensitiewe bewerkings op 'n manier wat konstante uitvoeringstyd verseker ongeag die insetwaardes. Dit kan uitdagend wees, maar is noodsaaklik om tydsberekening van aanvalle te voorkom.
2. Willekeurige vertragings: Stel ewekansige vertragings in die uitvoering van sensitiewe operasies in om die tydsberekeninginligting te verbloem. Hierdie benadering kan egter minder effektief wees teen aanvallers wat die ewekansige vertragings oor baie metings kan gemiddelde.
3. Verblindingstegnieke: Gebruik verblindende tegnieke om die insette na kriptografiese bewerkings ewekansig te maak, wat dit moeilik maak vir aanvallers om uitvoeringstye met spesifieke invoerwaardes te korreleer.
4. Hardeware teenmaatreëls: Gebruik hardeware-gebaseerde teenmaatreëls, soos toegewyde kriptografiese medeverwerkers, wat ontwerp is om tydsberekeningaanvalle te weerstaan deur konstante-tyduitvoering of ander beskermende maatreëls te voorsien.
5. Kodeouditering en -toetsing: Oudit en toets kode gereeld vir tydsberekening kwesbaarhede, veral in kriptografiese implementerings. Outomatiese gereedskap en tegnieke kan help om potensiële tydsberekeninglekkasies te identifiseer.
Tydsberekening van aanvalle beklemtoon die belangrikheid daarvan om sykanaal-kwesbaarhede in die ontwerp en implementering van veilige stelsels in ag te neem. Terwyl kriptografiese algoritmes dikwels ontleed word vir hul wiskundige sterkte, hang hul praktiese sekuriteit ook af van die implementeringsbesonderhede en die potensiaal vir sykanaalaanvalle. Ontwikkelaars en sekuriteitspersoneel moet waaksaam wees om hierdie kwesbaarhede aan te spreek om die robuustheid van kriptografiese stelsels te verseker.
Ander onlangse vrae en antwoorde t.o.v SVE tydsberekening aanvalle:
- Wat is sommige van die uitdagings en afwegings wat betrokke is by die implementering van hardeware- en sagtewareversagtings teen tydsberekeningsaanvalle terwyl stelselwerkverrigting gehandhaaf word?
- Watter rol speel die takvoorspeller in SVE-tydberekeningaanvalle, en hoe kan aanvallers dit manipuleer om sensitiewe inligting uit te lek?
- Hoe kan konstante-tyd-programmering help om die risiko van tydsberekening van aanvalle in kriptografiese algoritmes te verminder?
- Wat is spekulatiewe uitvoering, en hoe dra dit by tot die kwesbaarheid van moderne verwerkers vir tydsberekening van aanvalle soos Spectre?
- Wat is 'n tydsberekening aanval?