@Nimrod: jullie onderzoeksrapport ziet er netjes uit en veel zaken worden goed en uitgebreid uitgelegd, ook veel plaatjes, mijn complimenten!
Toch wil ik op een aantal zaken wijzen die ik erg belangrijk vind:
- Het is zinloos om een verbinding te versleutelen als je niet zeker weet met wie je communiceert.
- SSL of TLS werkt prima zonder PKI. PKI helpt je om vast te stellen met wie je communcieert, maar dat kan ook op een andere manier (bijv. door self signed certificaten te gebruiken en die
via een veilige route in de webbrowser(s) te kopiëren of door de SHA1 fingerprint van het certificaat via een andere route door te krijgen en deze te checken).
- Het primaire doel van een gebruiker is dat zij/hij daadwerkelijk communiceert met de bedoelde instantie. De garantie die de combinatie van PKI met SSL/TLS
tracht te geven, is:
A) dat er
ofwel een versleutelde verbinding tot stand komt met "hostname" uit de door de gebruiker ingevoerde https://hostname/pad in de URL balk van de webbrowser (ongeacht het IP adres van de server en/of DNS aanvallen),
ofwel de gebruiker gewaarschuwd wordt. Overigens hoeft de gebruiker niet zelf de hostname in de URL balk met de hostname in het certificaat te vergelijken, dat doet de webbrowser na ontvangst van het certificaat.
B) De gebruiker desgewenst het certificaat kan inspecteren om te zien of de hostname daadwerkelijk van de bedoelde instantie is.
E.e.a. is goed te zien in het plaatje op pagina 23, maar komt in de tekst niet echt uit de verf.
- In de literatuurlijst mag eigenlijk de klassieker (uit 2000, maar nog steeds van toepassing zijnde) "Ten Risks of PKI" (
http://www.schneier.com/paper-pki.html) van C. Ellison and B. Schneier niet ontbreken.
- Rainbow tables bestaan om met MD5 gehaste
wachtwoorden te ontmaskeren (om precies te zijn, een willekeurige equivalent van zo'n wachtwoord te bepalen die toevallig dezelfde MD5 hash oplevert, en waar je dus mee kunt inloggen). Rainbow tables zijn er niet de oorzaak van dat je geen MD5 meer moet gebruiken (je kunt voor elk hash type rainbow tables maken).
De reden om voor
cryptografisch veilige hashes geen MD5 meer te gebruiken is dat het mogelijk is (met veel, doch in de praktijk haalbare, rekenkracht) om delen van een bestaande tekst zo te wijzigen dat deze dezelfde MD5 hash oplevert als de oorspronkelijke tekst (een zogenaamde collission). De verwachting is dat SHA1 binnen een paar jaar ook kan worden gekraakt.
- Het risico van diefstal van een private key van een CA is erg klein, omdat deze in een tamperproof HSM (zie
http://en.wikipedia.org/wiki/Hardware_security_module) hoort te zitten. Voor zover bekend heeft de "ComodoHacker" geen CA private keys van Diginotar kunnen kopieren, wel heeft hij de apparatuur en software bij Diginotar opdracht kunnen geven om certificaten naar keuze te laten ondertekenen.
- Daarentegen is het risico van diefstal van een private key vanaf een webserver vaak groot, omdat deze in de meeste gevallen in een bestandje op de schijf staat. Soms is dit versleuteld, maar omdat de webserver software toegang tot de oversleutelde private key nodig heeft, stelt die versleuteling in de praktijk niet veel voor.
- Het thema revocation (voortijdig intrekken van certificaten) en het feit dat dit niet goed werkt komen geheel niet aan bod.
Nogmaals, ik vind jullie rapport helemaal niet slecht! Ik noem bovenstaande zaken dan ook alleen als aanvulling voor lezers als de TS om een completer beeld te geven.