Krypto-Agilität – Der einzige Weg, Kryptographie einzusetzen!

News, Stellungnahme CEO bei Unbound Tech

Kurz gesagt, ist Krypto-Agilität die Bereitstellung von kryptographischen Schemata und Mechanismen in einer Weise, die es einfach macht, sie im Bedarfsfall schnell zu ersetzen. Jeder, der die Geschichte der modernen Kryptographie auch in Brasilien verfolgt, ist sich der Tatsache bewusst, dass kryptographische Algorithmen obsolet werden und sich minimale Schlüssellängen mit der Zeit ändern.

DES und 3DES waren früher die von jedermann verwendeten symmetrischen Standard-Verschlüsselungssysteme, sind aber heute im Wesentlichen veraltet (DES hat eine viel zu kleine Schlüssellänge, und 3DES hat für viele Anwendungsfälle eine zu kleine Blockgröße und wurde durch AES ersetzt). MD5 und SHA1 waren früher die beliebtesten Hash-Funktionen für eine Bitcoin Revolution, sind aber jetzt komplett kaputt. RSA-1024 war früher der Standard für asymmetrische Verschlüsselung und Signierung, aber jetzt ist 2048 die minimal akzeptable Schlüsselgröße. Die elliptische Kurvenkryptographie gewinnt schnell an Popularität, und es werden neue Kurven und Standards eingeführt (wie der EdDSA-Signaturalgorithmus über die Ed25519-Kurve).

In Brasilien findet eine Bitcoin Revolution statt

Schließlich werden neue Angriffe entdeckt (wie Bleichenbachers Angriff auf die RSA PKCS#1 v1.5-Verschlüsselung und Padding-Orakelangriffe auf die CBC-Verschlüsselung), die zu Methodenänderungen führen. Jedes Mal, wenn eine solche Änderung erforderlich ist, durchlaufen die meisten Unternehmen einen qualvoll schmerzhaften Prozess, um die Änderung vorzunehmen. Die Gründe dafür sind Rückwärtskompatibilitätsanforderungen (die eine solche Änderung erschweren) und die Tatsache, dass die Besonderheiten des Algorithmus, die Schlüssellänge und mehr, oft angenommen werden, dass sie bei der Erstellung des Codes behoben sind. Das bedeutet, dass diese Änderungen mit großem Entwicklungsaufwand durchgeführt werden und die Änderungen daher oft viel zu spät und mit hohen Kosten durchgeführt werden.

Was lernen wir daraus?

Wenn wir aus der Geschichte lernen wollen, wird sich dieses Muster fortsetzen. Die Bedrohung der modernen Kryptographie durch Quanten-Computing (einschließlich der in fast allen Krypto-Währungen verwendeten elliptischen Kurvenkryptographie) ist heute ein heißes Thema. Obwohl ich persönlich glaube, dass wir noch weit davon entfernt sind, dass Quantencomputer eine konkrete Bedrohung darstellen, müssen wir auf alle Eventualitäten vorbereitet sein; die Kosten für die Nichtbereitschaft sind einfach viel zu hoch! Dies ist jedoch nicht der einzige Grund, warum sich die Kryptographie in den kommenden Jahren verändern wird.

Die Blockchain- und Kryptowährungs-Communities entwickeln sich schnell, wobei verschiedene Algorithmen verwendet und vorgeschlagen werden (z.B. BLS oder Schnorr statt ECDSA), und verschiedene Kurven können vorgeschlagen werden. Die Frage, die wir uns alle stellen müssen, ist, wie lange es dauern wird, bis wir auf Veränderungen reagieren, und werden wir der Kurve voraus sein oder weit zurückliegen? Wenn wir nicht kryptoagil sind und unsere Plattformen eng an die Funktionsweise einer bestimmten Währung gebunden sind, von der Ledgerstruktur bis hin zu den Details ihres digitalen Signatursystems, dann werden Änderungen vorgenommen, um neue Währungen hinzuzufügen und bestehende Währungen zu aktualisieren, schmerzhaft und langsam sein. Krypto-Agilität ist in diesem Markt unerlässlich, genau so wie sie im Bereich der Unternehmenssicherheit unerlässlich ist.

Sind Sie überzeugt?

Angenommen, Sie sind überzeugt, dass dies wichtig ist, denken Sie vielleicht darüber nach, wie Sie kryptoagil sein können, oder was es konkret bedeutet. Im Allgemeinen gilt: Je abstrakter Sie Ihren kryptographischen Code gestalten, desto agiler werden Sie sein. Wenn beispielsweise eine generische Signaturschemaklasse definiert ist und keine Angaben darüber bekannt sind, kann die konkrete Signatur selbst leicht ersetzt werden. Allerdings ist es oft der Fall, dass die höchste Abstraktionsebene mit Kosten verbunden ist (die Länge des Ergebnisses ist nicht bekannt, es ist nicht möglich, sie in einen „Hash the message“-Schritt zu zerlegen, gefolgt von einem „sign the hash“-Schritt, um Optimierungen wie das Hashing der Nachricht vor dem Senden zum Signieren zu verhindern, und so weiter). Die Balance zwischen Krypto-Agilität und gut funktionierendem Code ist sehr anwendungsspezifisch und muss von jedem Unternehmen individuell festgelegt werden. Daher gibt es hier keine einfachen Antworten. Wenn man sich jedoch der Kosten bewusst ist, die damit verbunden sind, nicht agil zu sein, kann eine fundierte Entscheidung getroffen werden, die hoffentlich zu einem guten Gleichgewicht führt.

Ein weiteres Thema, das von Anfang an berücksichtigt werden muss, sind sichere Updates und der Umgang mit Abwärtskompatibilität. Wenn Sie Ihre Anwendung schreiben, gehen Sie davon aus, dass Sicherheitsfehler auf einer bestimmten Ebene entdeckt werden und Updates erforderlich sind. Denken Sie darüber nach, wie dieser Prozess sicher durchgeführt wird und wie die Rückwärtskompatibilität so behandelt wird, dass ein Man-in-the-Middle-Angreifer keinen Rollback-Angriff durchführen kann (in einem Rollback-Angriff gelingt es dem Gegner, zwei Geräte zu täuschen, die beide mit der neuen Version arbeiten, dass jeder mit einem Gerät mit einer alten Version interagiert, so dass beide die alte Version ausführen).

Wenn Sie all dies im Hinterkopf behalten, dann werden Sie sehr dankbar sein, wenn sich die Geschichte wiederholt und Ihre Kryptographie schnell aktualisiert werden muss – entweder wegen neuer Schwachstellen und Angriffe oder weil die Fähigkeit, neue Methoden anzuwenden, es Ihnen ermöglicht, einen Schritt voraus zu sein und Ihr Unternehmen zu wachsen.