Original-URL des Artikels: https://www.golem.de/news/bernstein-gegen-microsoft-die-suche-nach-neuen-kurven-1412-110935.html    Veröffentlicht: 04.12.2014 09:38    Kurz-URL: https://glm.io/110935

Bernstein gegen Microsoft

Die Suche nach neuen Kurven

Die Kryptographie-Arbeitsgruppe der IETF will neue elliptische Kurven standardisieren. Curve25519 von Daniel Bernstein gilt als Favorit, doch Microsoft-Techniker sträuben sich dagegen.

Die Kryptographie-Arbeitsgruppe der IETF (CRFG) diskutiert seit einigen Monaten engagiert über die Zukunft verschlüsselter Verbindungen im Netz. Man will bei der CRFG neue elliptische Kurven standardisieren, doch bislang gibt es keine Einigkeit darüber, welche Kurven künftig eingesetzt werden sollen. Viele würden gerne die Kurve Curve25519 von Daniel Bernstein, der auch unter seinem Kürzel DJB bekannt ist, standardisieren. Doch insbesondere Techniker von Microsoft sind mit Bernsteins Vorschlag unzufrieden.

Nist-Kurven stammen von der NSA

Die bisher verwendeten Standardkurven von der US-Behörde Nist sind in Verruf geraten. Die Nist-Kurven wurden von einem Mitarbeiter der NSA entwickelt. Bei der Spezifizierung der Kurven wurden einige Parameter aus Zahlenfolgen generiert, die nirgends erklärt werden. Zwar konnte bislang niemand eine Schwäche der Nist-Kurven nachweisen, aber es steht zumindest der Verdacht im Raum, dass die Kurven so gewählt wurden, dass sie eine Hintertür enthalten. Nach der NSA-Affäre gab es daher in der TLS-Arbeitsgruppe den Wunsch, neue Algorithmen auf Basis elliptischer Kurven zu spezifizieren. So erhielt die Kryptographie-Arbeitsgruppe den Arbeitsauftrag, neue Kurven zu standardisieren.

Curve25519 wurde bereits 2005 von Daniel Bernstein entwickelt. Anders als bei den Nist-Kurven sollte hierbei möglichst wenig Spielraum bei der Wahl der Kurve bleiben. Bernsteins Vorgehensweise dabei war, bestimmte Kriterien für eine sichere und schnelle Kurve zu definieren und anschließend die erste Kurve auszuwählen, die den entsprechenden Kriterien entspricht. Dabei sollte es möglichst wenig Spielraum für mögliche Manipulationen geben und das Verfahren so gestaltet sein, dass es von anderen Personen nachvollzogen werden kann und diese bei derselben Kurve landen.

Textsecure, OpenSSH und GnuPG nutzen Curve25519

Curve25519 ist zwar bislang kein offizieller Standard, aber es gibt schon jetzt zahlreiche kryptographische Anwendungen, die auf diese Kurve setzen, darunter etwa die Messenger Textsecure und Pond, OpenSSH und seit kurzem auch GnuPG. Eigentlich hatten sich viele erhofft, dass man sich relativ schnell darauf einigen könnte, Curve25519 zu standardisieren. Außerdem soll eine weitere, größere Kurve spezifiziert werden. Mit 255 Bit bietet Curve25519 zwar bereits einen hohen Sicherheitsstandard, für zukunftssichere Anwendungen sollte jedoch auch eine Kurve mit mehr als 500 Bit standardisiert werden.

Doch aus der schnellen Standardisierung wurde nichts. Ein Team von Microsoft-Kryptographen brachte einen eigenen Vorschlag in die TLS-Arbeitsgruppe ein, die sie als Nums-Kurven bezeichneten. Nums steht für "Nothing up my Sleeves" und hat im Grunde dasselbe Ziel wie Curve25519: ein klar definierter Generierungsprozess, bei dem es möglichst wenig Spielraum für Manipulationen geben sollte. Doch die Microsoft-Techniker definierten andere Kriterien als Bernstein und kamen somit zu unterschiedlichen Ergebnissen. Für größere Bitlängen haben inzwischen verschiedene Teams unabhängig voneinander eine Kurve namens E-521 berechnet und mit dieser ist inzwischen auch Microsoft einverstanden.

Brainpool, Nums oder Curve25519

Neben den Vorschlägen Curve25519 und Nums gab es noch Stimmen in der Arbeitsgruppe, die grundsätzlich derartige deterministische Verfahren infrage stellten. Stattdessen sollte man die Kurven besser aus pseudozufälligen Zahlen generieren. Eine Möglichkeit dazu wäre etwa, den Hash einer einfachen Zahl (wie 0 oder 1) als Basis für die Kurvenberechnung zu wählen. Einen derartigen Ansatz haben die Brainpool-Kurven, die von Mitarbeitern des Bundesamts für Sicherheit in der Informationstechnik (BSI) für den deutschen elektronischen Personalausweis entwickelt wurden. Doch an dieser Vorgehensweise gibt es auch einige Kritik: So gibt es bei der Wahl der entsprechenden Pseudozufallszahlen so viele Varianten, dass sie einigen Spielraum für eine mögliche Manipulation bieten.

Wie weit dieser Spielraum geht, zeigt ein ironisches Schriftstück, das im Sommer bei der Rump-Session der Eurocrypt-Konferenz vorgestellt wurde. Ein Team von Kryptographen hatte dort die sogenannten BADA55-Kurven präsentiert. Sie wurden mit ähnlichen Verfahren wie die Nist- und die Brainpool-Kurven erstellt und enthalten alle in ihrer Hexadezimal-Darstellung die Zeichenkette BADA55 (als Anspielung auf den englischen Ausdruck "bad ass").

Die Brainpool-Kurven kamen zwar in der Diskussion auch immer wieder zur Sprache, letztendlich war aber deutlich, dass sich die Mehrzahl einen deterministischen Prozess zur Generierung der Kurven wünschte. Zuletzt rückte die Microsoft-Seite von ihrem eigenen Vorschlag ab und präsentierte eine neue Kurve. Diese lehnte sich stark an Curve25519 an, unterscheidet sich jedoch in einem Parameter von Bernsteins Kurve. Den trug auch Google-Entwickler Adam Langley mit, wobei er betonte, dass dies nur ein Kompromiss sei und ihm eine Standardisierung der originalen Curve25519-Kurve lieber wäre.

Jüngster Microsoft-Vorschlag stand bereits im Curve25519-Paper

Der neue Microsoft-Vorschlag veranlasste Bernstein zu einer langen Antwort. Er hatte die entsprechende Kurve, die Microsoft jetzt zur Standardisierung vorschlägt, bereits 2005 im Original-Paper von Curve25519 erwähnt und verworfen. Er sei allerdings nicht auf die Idee gekommen, dass jemand jemals diese Kurve wiederbeleben wolle, deshalb hatte er damals keine ausführliche Begründung dafür geschrieben. Das holte er jetzt nach. Die Kurve, die er mangels eines anderen Namens als PinkBikeShed bezeichnet, sei zwar deutlich besser als etwa die Nist-Kurven, in bestimmten Situationen könne sie allerdings Schwächen aufweisen, die durch Curve25519 verhindert werden.

Bernsteins pragmatischer Vorschlag: Microsoft hatte im Laufe der Diskussion bereits an den eigenen Kriterien geschraubt und ist so etwa auf die E-521-Kurve gekommen. Daher könnte es einfach ein weiteres Kriterium hinzufügen. Dann würde es ebenfalls bei Curve25519 landen.

Trevor Perrin, einer der Entwickler von Textsecure, spekulierte bereits, dass es Microsoft in erster Linie darum gehe, am Ende behaupten zu können, es hätte etwas zum Standardisierungsprozess beigetragen. Angesichts dessen, dass Curve25519 bereits weit verbreitet sei und der jüngste Microsoft-Vorschlag keine Verbesserung dazu darstelle, sei das aber ein Desaster. In eine ähnliche Richtung argumentiert auch die Kryptographin Alyssa Rowan, die vermutet, dass es Microsoft nur noch darum gehe, das Gesicht zu wahren.  (hab)


Verwandte Artikel:
Verschlüsselung: GnuPG 2.1 bringt Unterstützung für elliptische Kurven   
(06.11.2014, https://glm.io/110368 )
Eingabegerät: Nums verwandelt Macbook-Trackpad in Ziffernblock   
(29.06.2017, https://glm.io/128645 )
Verschlüsselung: TLS 1.3 ist so gut wie fertig   
(16.02.2018, https://glm.io/132828 )
Verschlüsselung: Strato bietet Perfect Forward Secrecy   
(11.02.2014, https://glm.io/104504 )
Schießt Brainpool Raab und Co. ins All?   
(08.12.2000, https://glm.io/11235 )

© 1997–2019 Golem.de, https://www.golem.de/