Fragen? Antworten! Siehe auch: Alternativlos
Der Grund ist: Weil ich die Details von OpenSSL noch nicht genügend verstehe. Die APIs sind hochkomplex und undurchsichtig. Alleine OpenSSL anzuwenden ist schon ein Kampf gegen Windmühlen. Ich frickel jetzt seit Monaten immer mal wieder an dem OpenSSL-Interface von gatling herum und der negotiated immer noch nicht die Cipher-Suites, die ich eigentlich haben will.
So eine SSL-Library ist an sich schon hochkomplex. Da werden Kombinationen aus Verfahren und Extensions verhandelt, und OpenSSL implementiert sie so gut wie alle. Ich überlege ja seit ein paar Jahren, selber mal eine SSL-Library zu schreiben. Nicht damit ich am Ende eine SSL-Library habe, sondern weil ich dann sicher sein kann, dass ich die Details verstanden habe.
Fakt ist: Das ist alles nicht so einfach, und ein Audit bringt nur was, wenn man auch die Details verstanden hat. Sonst findet man nur die offensichtlichen Fehler. Wie sich jetzt herausstellt, wäre auch das hilfreich gewesen. Fair enough. Das war vorher nicht so klar. OpenSSL hatte an sich immer einen recht guten Track Record. Die Bugs in OpenSSL waren eher so Sachen wie Timing-Angriffe, Side-Channel-Probleme, kryptographische Designprobleme.
Ich könnte da jetzt ein bisschen auditieren, wahrscheinlich ein paar Bugs finden. Die könnte man dann fixen. Ein Kunde würde sich darüber freuen. Aber meinem Anspruch an einen Audit von kritischer Infrastruktur würde das nicht genügen. Wäre damit wirklich was geholfen? Mein Ziel bei meiner Software ist immer, dass ich nachts ruhig schlafen kann, weil ich nicht darüber nachdenken muss, ob da gerade jemand meinen Server aufmacht. Dieses Niveau an Vertrauen werde ich bei OpenSSL nicht mit einem Audit auf meinem aktuellen Kenntnisstand von den TLS- und Krypto-Details erreichen können. Damit ist aber auch klar, dass ich eigentlich nicht mehr OpenSSL einsetzen möchte, sondern etwas vertrauenswürdigeres. Und dann erscheint es mir ein besseres Investment meiner Zeit, wenn ich an meiner eigenen SSL-Library hacke.
Das ist aber so viel Aufwand, dass ich dann lieber an einem anderen Problem herumhacke, das auch auf der Liste steht, und schneller ein Erfolgserlebnis liefert.