Zijkanaalaanval
omdat zijkanaalaanvallen afhankelijk zijn van de relatie tussen informatie die via een zijkanaal wordt uitgezonden (gelekt) en de geheime gegevens, vallen tegenmaatregelen in twee hoofdcategorieën: (1) elimineer of verminder de vrijgave van dergelijke informatie en (2) elimineer de relatie tussen de gelekte informatie en de geheime gegevens, dat wil zeggen, maak de gelekte informatie niet gerelateerd, of liever niet gecorreleerd, aan de geheime gegevens, meestal door middel van een vorm van randomisatie van de versleutelde tekst die de gegevens transformeert op een manier die ongedaan kan worden gemaakt nadat de cryptografische operatie (bijvoorbeeld decryptie) is voltooid.
in de eerste categorie zijn displays met speciale afscherming om elektromagnetische emissies te verminderen, waardoor de gevoeligheid voor STORMAANVALLEN wordt verminderd, nu in de handel verkrijgbaar. Het conditioneren en filteren van stroomleidingen kan helpen bij het ontmoedigen van stroombewakingsaanvallen, hoewel dergelijke maatregelen voorzichtig moeten worden gebruikt, omdat zelfs zeer kleine correlaties kunnen blijven bestaan en de veiligheid in gevaar kunnen brengen. Fysieke behuizingen kunnen het risico verminderen van heimelijke installatie van microfoons (om akoestische aanvallen tegen te gaan) en andere microbewakingsapparatuur (tegen CPU-stroom-of warmtebeeldaanvallen).
een andere tegenmaatregel (nog steeds in de eerste categorie) is het storen van het uitgezonden kanaal met ruis. Bijvoorbeeld, een willekeurige vertraging kan worden toegevoegd om timing aanvallen af te schrikken, hoewel tegenstanders kunnen compenseren voor deze vertragingen door middel van meerdere metingen (of, meer in het algemeen, het gebruik van meer metingen in de analyse). Naarmate de hoeveelheid ruis in het zijkanaal toeneemt, moet de tegenstander meer metingen verzamelen.
een andere tegenmaatregel onder de eerste categorie is het gebruik van software voor beveiligingsanalyse om bepaalde klassen van zijkanaalaanvallen te identificeren die kunnen worden gevonden tijdens de ontwerpstadia van de onderliggende hardware zelf. Timing aanvallen en cache aanvallen zijn beide identificeerbaar via bepaalde commercieel beschikbare security analyse software platforms, die het mogelijk maken voor het testen van de aanval kwetsbaarheid zelf te identificeren, evenals de effectiviteit van de architectonische verandering om de kwetsbaarheid te omzeilen. De meest uitgebreide methode om deze tegenmaatregel te gebruiken is het creëren van een veilige ontwikkeling levenscyclus voor hardware, die het gebruik van alle beschikbare security analyse platforms in hun respectieve stadia van de hardware ontwikkeling levenscyclus omvat.
in het geval van timing-aanvallen tegen doelen waarvan de rekentijden worden gekwantiseerd in discrete klokcyclusaantallen, is een effectieve tegenmaatregel om de software te ontwerpen als isochrone, dat wil zeggen om in een exact constante tijd te draaien, onafhankelijk van geheime waarden. Dit maakt timing aanvallen onmogelijk. Dergelijke tegenmaatregelen kunnen in de praktijk moeilijk te implementeren zijn, omdat zelfs individuele instructies op sommige CPU ‘ s een variabele timing kunnen hebben.
een gedeeltelijke tegenmaatregel tegen eenvoudige vermogensaanvallen, maar geen differentiële vermogensanalyseaanvallen, is om de software zo te ontwerpen dat het “PC-secure” is in het “program counter security model”. In een PC-secure programma is het uitvoerpad niet afhankelijk van geheime waarden. Met andere woorden, alle voorwaardelijke branches zijn alleen afhankelijk van publieke informatie.(Dit is een meer beperkende voorwaarde dan isochrone code, maar een minder beperkende voorwaarde dan branch-vrije code.) Hoewel multiply operaties meer vermogen dan NOP op vrijwel alle CPU ‘ s trekken, voorkomt het gebruik van een constant uitvoeringspad dat dergelijke operatie-afhankelijke vermogensverschillen (verschillen in macht van het kiezen van een branch boven een andere) lekken van geheime informatie.Op architecturen waar de instructieuitvoeringstijd niet data-afhankelijk is, is een PC-secure programma ook immuun voor timing aanvallen.
een andere manier waarop code niet-isochrone kan zijn, is dat moderne CPU ‘ s een geheugencache hebben: toegang tot niet vaak gebruikte informatie leidt tot een grote timing boete, het onthullen van enige informatie over de frequentie van het gebruik van geheugenblokken. Cryptografische code ontworpen om cache aanvallen te weerstaan pogingen om geheugen te gebruiken in slechts een voorspelbare manier (zoals toegang tot alleen de invoer, uitgangen en programma gegevens, en dit te doen volgens een vast patroon). Bijvoorbeeld, data-afhankelijke tabel lookups moet worden vermeden omdat de cache zou kunnen onthullen welk deel van de lookup tabel werd geopend.
andere partiële tegenmaatregelen proberen de hoeveelheid informatie die wordt gelekt door gegevensafhankelijke vermogensverschillen te verminderen.Sommige operaties gebruiken een vermogen dat gecorreleerd is aan het aantal 1 bits in een geheime waarde.Het gebruik van een constante-gewicht code (zoals het gebruik van Fredkin gates of dual-rail codering) kan het lekken van informatie over het Hammen gewicht van de geheime waarde te verminderen, hoewel exploiteerbare correlaties waarschijnlijk blijven, tenzij de balancering is perfect. Dit “evenwichtige ontwerp” kan worden benaderd in software door het manipuleren van zowel de gegevens en de aanvulling samen.
verschillende “veilige CPU’ s “zijn gebouwd als asynchrone CPU’ s; ze hebben geen wereldwijde tijdreferentie. Terwijl deze CPU ‘ s waren bedoeld om timing en macht aanvallen moeilijker te maken, later onderzoek bleek dat de timing variaties in asynchrone circuits zijn moeilijker te verwijderen.
een typisch voorbeeld van de tweede categorie (decorrelatie) is een techniek die bekend staat als verblinden. In het geval van RSA-decryptie met secret exponent d {\displaystyle d}
en overeenkomstige encryptie exponent e {\displaystyle e}
en modulus m {\displaystyle m}
, de techniek is als volgt van toepassing (voor de eenvoud wordt de modulaire reductie met m in de formules weggelaten): voor het decoderen, dat is, voor de berekening van het resultaat van y d {\displaystyle y^{d}}
voor een bepaalde cijfertekst y {\displaystyle y}
het systeem kiest een willekeurig getal r {\displaystyle r}
en versleuteld met de publieke exponent e {\displaystyle e}
verkrijgen van r e {\displaystyle r^{e}}
. Vervolgens wordt de decodering is gedaan op het ⋅ r e {\displaystyle y\cdot r^{e}}
te verkrijgen ( y ⋅ r e ) d = y d ⋅ e r ⋅ d = y d ⋅ r {\displaystyle {(y\cdot r^{e})}^{d}=y^{d}\cdot r^{e\cdot d}=y^{d}\cdot r}
. Aangezien het decoderingssysteem R {\displaystyle r}
koos , kan het zijn inverse modulo m {\displaystyle m}
berekenen om de factor R {\displaystyle r}
in het resultaat en verkrijg y d {\displaystyle y^{d}}
, het werkelijke resultaat van de decryptie. Voor aanvallen die het verzamelen van side-channel informatie van operaties met gegevens gecontroleerd door de aanvaller, verblinden is een effectieve tegenmaatregel, omdat de werkelijke operatie wordt uitgevoerd op een gerandomiseerde versie van de gegevens, waarover de aanvaller geen controle of zelfs kennis heeft.
een meer algemene tegenmaatregel (in die zin dat het effectief is tegen alle zijkanaalaanvallen) is de maskerende tegenmaatregel. Het principe van maskeren is om te voorkomen dat elke gevoelige waarde y {\displaystyle y}
direct wordt gemanipuleerd, maar eerder het delen ervan manipuleren: een verzameling variabelen (genaamd” shares”) y 1 , . . . , y d {\displaystyle y_{1},…, y_{d}}
zodanig dat y = y 1 ⊕ . . . ⊕ y d {\displaystyle y=y_{1}\oplus …\oplus y_{d}}
(waarbij ⊕ {\displaystyle \ oplus }
de XOR-bewerking is). Een aanvaller moet alle waarden van de shares herstellen om zinvolle informatie te krijgen.
onlangs werd white-box modellering gebruikt om een generische tegenmaatregel te ontwikkelen tegen zowel EM als power side-channel aanvallen. Om de effecten van de hogere Metaallagen in een IC die als efficiëntere antennes werken te minimaliseren, is het idee om de crypto-kern in te bedden met een signature suppression circuit, lokaal gerouteerd binnen de lagere Metaallagen, wat leidt naar zowel power als em side-channel aanval immuniteit.