Früher dachte ich, dass die Antwortzeit nur etwas mit Geschwindigkeit zu tun hat. Wenn eine App schnell geladen wurde, ging ich davon aus, dass alles perfekt funktionierte. Wenn es langsam war, machte ich das Netzwerk oder den Server verantwortlich. Sicherheit kam mir nie in den Sinn. Das änderte sich, nachdem ich eine Zeit lang Nеwtons Sicherheitsdokumentation gelesen hatte. Ein kleines Detail hat meine Denkweise über Latenz komplett verändert.

Was meine Aufmerksamkeit geweckt hat, war keine neue Funktion und auch keine kühne Behauptung. Es war die Idee, dass die Antwortzeit manchmal Informationen offenbaren kann, die niemals dazu bestimmt waren, preisgegeben zu werden. Ich hatte Latenz immer als Leistungskennzahl betrachtet, aber Newton sieht einen Teil davon auch als Sicherheitsaspekt. Genau dieser Unterschied hat mich verstehen lassen, warum.

Je mehr ich gelesen habe, desto interessanter wurde es. Newton verwendet auditiere Implementierungen in konstanter Zeit für kryptografische Systeme wie secp256k1, Ed25519, X25519 und HPKE. Zuerst dachte ich, es sei nur eine weitere technische Spezifikation, die die meisten Menschen überspringen würden. Aber nachdem ich tiefer eingestiegen bin, wurde mir klar, dass es viel wichtiger ist, als es klingt.

Stell dir eine kryptografische Operation vor, die je nachdem, welchen geheimen Schlüssel sie verwendet, minimal länger dauert. Ein einzelner Zeitunterschied verrät nicht viel, aber wenn jemand diese Operation tausendfach misst, können kleine Unterschiede zu Mustern werden. Diese Muster könnten Informationen offenbaren, die immer privat bleiben sollten. Genau dafür sind Implementierungen in konstanter Zeit gemacht – sie sollen diese Muster entfernen oder deutlich reduzieren.

Ich mochte diesen Ansatz tatsächlich, weil er darauf abzielt, zu verhindern, dass Informationen in Arten austreten, an die die meisten Menschen gar nie denken. Statt sich nur auf starke Verschlüsselung zu verlassen, versucht Newton außerdem sicherzustellen, dass sensible kryptografische Operationen konsistent genug ablaufen, sodass Angreifer nichts Nützliches lernen können, nur indem sie die Ausführungszeit messen.

Doch während ich las, kam mir noch eine andere Frage in den Kopf. Wenn kryptografische Operationen in konstanter Zeit ablaufen, heißt das dann, dass jede Anfrage im Netzwerk auch genau gleich lange fertig sein sollte? Zuerst nahm ich an, die Antwort sei ja. Dann merkte ich, dass das nicht das ist, was kryptografische Sicherheit in konstanter Zeit verspricht.

In der Dokumentation wird erklärt, dass die Gesamtlatenz von viel mehr abhängt als von kryptografischen Berechnungen. Netzwerk-Roundtrips, die Bewertung von Richtlinien, die Anwendungslogik, Autorisierungsprüfungen und das Abrufen von Daten tragen alle zur endgültigen Antwortzeit bei. Selbst wenn der kryptografische Teil konsistent ist, kann die vollständige Anfrage je nachdem, was sie macht, dennoch natürlich länger oder kürzer dauern.

Das bedeutet nicht automatisch, dass sensible Informationen austreten. Es heißt nur, dass verschiedene Aufgaben unterschiedliche Mengen an Arbeit erfordern. Eine Anfrage, die mehrere Richtlinienprüfungen durchführt, wird sich zwangsläufig anders verhalten als eine, die viel einfacher ist. Das ist normales Anwendungsverhalten – kein Hinweis darauf, dass kryptografische Geheimnisse offengelegt werden.

Der Unterschied wurde mir umso klarer, je länger ich darüber nachdachte. Kryptografie in konstanter Zeit schützt die Operationen, die sensibles Schlüsssmaterial verarbeiten. Sie verspricht nicht, dass jede API-Anfrage, jede Richtlinienentscheidung oder jeder Workflow im gesamten Netzwerk in Bezug auf die Antwortzeit identisch wird. Das sind zwei sehr unterschiedliche Sicherheitsfragen.

Eine Frage lautet, ob geheimes kryptografisches Material die Ausführungszeit beeinflussen kann. Die andere fragt, ob jemand, der das Gesamtverhalten einer Anwendung beobachtet, etwas aus den breiteren Latenzmustern lernen könnte. Beide betreffen Timing, aber sie lösen unterschiedliche Probleme.

Eine Sache, die ich zu schätzen wusste, ist, dass Newton nicht zu viel verspricht. Es behauptet nicht, dass jede Anfrage über das Netzwerk immer genau die gleiche Zeit in Anspruch nimmt. Stattdessen erklärt es klar, wovor Implementierungen in konstanter Zeit schützen sollen und wo andere Quellen für Latenz herkommen. Ich finde das ist eine viel realistischere Art, über Sicherheit zu sprechen.

Die wichtigste Erkenntnis für mich ist, dass starke Sicherheit nicht nur darin besteht, zuverlässige kryptografische Algorithmen auszuwählen. Es geht auch darum zu verstehen, wofür jede Sicherheitsschicht zuständig ist. Implementierungen in konstanter Zeit schaffen eine wichtige Grenze um sensible kryptografische Operationen herum, während Anwendungsdesign und Netzwerkarchitektur für alles verantwortlich sind, was um diese herum geschieht.

Je mehr ich darüber nachdachte, desto mehr wurde mir klar, dass diese beiden Gespräche nicht vermischt werden sollten. Das Schützen geheimer Schlüssel durch Kryptografie in konstanter Zeit ist eine Herausforderung. Zu verstehen, was der breitere Lebenszyklus der Anwendung durch Antwortmuster preisgeben könnte, ist eine andere. Beides ist wichtig, aber es sollte getrennt voneinander besprochen werden.

Also kommt immer wieder diese Frage in mir hoch: Wenn kryptografische Berechnungen in konstanter Zeit bereits eine starke Grenze um sensible Schlüsseloperationen aufbauen, sollten Entwickler dann auch mehr Zeit darauf verwenden zu überlegen, was die gesamten Timing-Muster ihrer Anwendung im Laufe der Zeit preisgeben könnten?

@NewtonProtocol $NEWT #Newt