Analysen des Crypto- und IPSec-Codes von OpenBSD haben bislang keine Hinweise geliefert, dass das System Backdoors zum Belauschen verschlüsselter VPN-Verbindungen enthält. Die OpenBSD-Entwickler hatten die Analysen begonnen, um Vorwürfe von Gregory Perry, ehemals Technik-Chef des Krypto-Herstellers Netsec, zu prüfen. Perry hatte in einer Mail an den OpenBSD-Gründer Theo de Raadt die Entwickler Jason Wright und andere beschuldigt, Hintertüren in den IPSec-Stack eingebaut zu haben. De Raadt hatte Perrys Mail veröffentlicht und die Vorwürfe zur Diskussion gestellt.

In einer weiteren Mail schreibt de Raadt nun, dass Netsec zwar offenbar für das FBI Hintertüren programmiert habe, dieser als "Spende" verteilte Code es nach seiner Ansicht aber nicht in den OpenBSD-Code geschafft habe. De Raadts Mail versucht zudem die Rolle der beschuldigten Entwickler Jason Wright und Angelos Keromytis zu klären. Beide sollen für Netsec gearbeitet haben, [Update]wobei de Raadt nach eigenen Angaben bislang nicht bekannt war, dass das Unternehmen für das FBI tätig war. [/Update]

Anhand der Revisionsverwaltung lässt sich im Nachhinein aber feststellen, welcher Entwickler an welchen Codeteilen gearbeitet hat. Demnach hat Wright hauptsächlich Treiber programmiert und mit dem OpenBSD Crypto Framework (OCF) nichts zu tun gehabt. Allerdings habe er an Teilen des IPSec-Stacks gearbeitet. Wright selbst hat die Vorwürfe, Hintertüren in den OpenBSD-Code eingebaut zu haben, in einer Mail bestritten. De Raadt beklagt allerdings, dass Wright selbst keine Stellung zu seiner Arbeit bei Netsec bezieht.

Statt Wright gerät jetzt offenbar mehr Angelos Keromytis in den Mittelpunkt des Interesses, der laut de Raadt quasi der Architekt und führende Entwickler des IPSec-Stack von OpenBSD war. Keromytis soll aber erst später bei Netsec angeheuert haben. Während dieser Zeit habe das Konzept unsicherer Initalisierungsvektoren Eingang in den OpenBSD-Code gefunden, das später aber wieder entfernt wurde. Kurz darauf wurden jedoch Padding-Oracle-Schwachstellen bekannt, mit der sich verschlüsselte Daten ohne Kenntnis eines Schlüssels entschlüsseln lassen. Die Schwachstelle wurde seinerzeit zumindest im Crypto-Layer beseitigt.

Bei den aktuellen Audits hat man aber laut de Raadt zwei Bugs gefunden. So sei die (CBC-)Padding-Oracle-Schwachstelle in Zusammenhang mit Initalisierungsvektoren offenbar nicht in den Netzwerktreibern beseitigt worden, man gehe aber von einem Versehen aus. Der andere Fehler betrifft eine Anweisung in einem Hardwaretreiber. Daneben erwähnt de Raadt ein Problem im Subsystem zur Zufallszahlenerzeugung, auf das er jedoch nicht näher eingeht.

De Raadts Aussagen dürften zwar Anhänger von OpenBSD und darauf aufbauender Projekte zunächst beruhigen, von einer Entwarnung kann jedoch noch keine Rede sein. Weiterhin gibt es zu viele Ungereimtheiten. Ob sich zudem durch wenige Tage Codereview geschickt eingebaute Hintertüren entdecken lassen, ist fraglich. Eine wie zuletzt im Quellcode von ProFTPD eingebaute Backdoor mit dem auffälligen Passwort "HELP ACIDBITCHEZ" (sic!) dürfte bei FBI-gesteuerten Manipulationen kaum Einsatz finden.

Wie gut sich Schadcode verstecken lässt, zeigt der Underhanded C Contest aus 2008 sehr anschaulich: Dort galt es, eine Bilddatei zu manipulieren, ohne dass dies auch bei genauer Betrachtung des Quellcodes zu entdecken ist. Der Code des Gewinners, Mr. Meacham, war so gut, dass nicht einmal die Veranstalter des Wettbewerbs schlüssig beschreiben konnten, wie er arbeitet – der Entwickler musste die Erklärung später selbst in seinem Blog liefern.

Selbst wenn sich letztlich bestätigt, dass OpenBSD frei von Nachschlüsseln und Hintertüren ist, bleibt ein schaler Nachgeschmack: Bei wievielen anderen Open-Source- und Closed-Source-Projekten waren staatliche Stellen mit ihren Manipulationen erfolgreich? (dab)