Hoe je veiligheid kunt begrijpen door middel van onduidelijkheid

📅
🕑 3 minuten lezen

Beveiliging is tegenwoordig een behoorlijk belangrijke zaak. Overal waar je kijkt, heeft iemand het over encryptie, beveiligde verbindingen of privégegevens. Het is een beetje vreemd, maar de meeste beveiligingszaken zijn helemaal niet geheim – ze zijn gewoon gebaseerd op het geheim houden van een klein onderdeel, zoals een wachtwoord of sleutel. Moderne encryptie-algoritmen zijn namelijk in principe open boek; iedereen kan de regels inzien. Het magische ingrediënt dat geheim blijft, is de encryptiesleutel. Dat is zo belangrijk omdat de gegevens veilig blijven, zelfs als iedereen weet hoe het systeem werkt. Zo wordt de meeste goede encryptie tegenwoordig opgebouwd, volgens dit oude principe, het Kerckhoffs-principe uit 1883: “Zelfs als iedereen weet hoe de worst wordt gemaakt, blijft de worst veilig zolang de sleutel geheim blijft.”

Veiligheid door onduidelijkheid

Dit idee klinkt in eerste instantie prima. Als niemand de code of methode kent, kunnen ze hem toch niet kraken? Maar in de praktijk is het nogal gebrekkig. Want als je je systeem geheim houdt, is er natuurlijk altijd risico: een hacker, of iemand met fysieke toegang, kan er zo in komen. Denk aan je wifi-wachtwoord of de geheime sleutel van een lokale app: als iemand vastberaden is, komt hij er ooit wel achter. Bovendien maakt het verbergen van het systeem het een nachtmerrie om te onderhouden of te repareren. Je moet alles duidelijk documenteren voor vertrouwde gebruikers, maar die documentatie kan ook in verkeerde handen vallen.

Neem de Caesar-code – ja, die Julius Caesar gebruikte. In feite verschuiven letters met een vast getal. Het is leuk, maar nu volkomen waardeloos. Je hoeft alleen maar elke verschuiving te proberen – er zijn maar 25 mogelijke opties – en boem, het bericht is ontcijferd. Dat is het probleem: vertrouwen op het geheimhouden van de methode is een verloren zaak.

De vijand kent het systeem

Op een gegeven moment zal iedereen met voldoende motivatie je aanpak kraken of begrijpen, vooral als je aanwijzingen of slechte documentatie hebt achtergelaten. Als je beveiliging ervan afhangt dat de methode geheim blijft, is dat een zwakke schakel; zodra die wordt blootgelegd, stort je hele systeem in elkaar. Daarom is het slim om de daadwerkelijke sleutel geheim te houden en tegelijkertijd het systeem zelf transparant en goed getest te maken. Het is veel makkelijker om een ​​sleutel te veranderen dan je hele systeem te herschrijven.

Bovendien draait het ontwerpen van goede cryptografie niet alleen om het hebben van een geheime formule. Het is echt heel moeilijk om het goed te doen, tenzij je een echte expert bent. Als een systeem in elkaar wordt gezet zonder grondige controle, zijn er bijna altijd fouten, soms behoorlijk ernstige. Het mooie van open beveiligingsstandaarden – zoals AES-encryptie – is dat iedereen ze kan beoordelen, verbeteren en er na verloop van tijd op kan vertrouwen.

Afronding

Al met al is vertrouwen op geheimhouding alleen een beginnersfout. De slimmere zet is om systemen te ontwerpen die veilig zijn, zelfs als iedereen weet hoe ze werken. Bewaar de geheime sleutels en zorg ervoor dat je cryptografie gebaseerd is op beproefde standaarden. Zo kun je sleutels eenvoudig verwisselen en kwetsbaarheden verhelpen zonder alles te hoeven herzien. Eerlijk gezegd is het meestal gewoon makkelijker om een ​​klein geheim te bewaren dan om het hele systeem te verbergen. Hopelijk slaapt iemand hierdoor ’s nachts wat beter.

Samenvatting

  • Bij moderne encryptie blijven de meeste gegevens geheim en wordt alleen de geheime sleutel vertrouwd.
  • Veiligheid door onduidelijkheid is riskant en achterhaald.
  • Goede cryptografie is gebaseerd op goed geteste algoritmes en geheime sleutels.
  • Het veranderen van sleutels is veel gemakkelijker dan het hele systeem opnieuw ontwerpen.
  • Goede documentatie is essentieel, maar moet wel veilig zijn voor nieuwsgierige blikken.