Die p≡p foundation, eine Schweizer Stiftung, die sich die vollautomatische Ende-zu-Ende-Verschlüsselung von Textkommunikation ("Privacy by Default", vgl. White Paper [1]) auf die Fahnen schreibt, veröffentlicht heute das erste unabhängige Code-Audit [2] (Signatur des Berichts [3]).

Bei diesem Verfahren wird der Quellcode systematisch analysiert, wobei der Fokus bei p≡p darauf liegt, sicherheitskritische Programmierfehler in der p≡p engine zu finden. Doch auch andere Fehler, welche die Funktionalität und Stabilität des Programms negativ beeinträchtigen können, werden durch ein solches Code-Audit aufgedeckt und in der Folge behoben. Die p≡p engine ist die kritischste Komponente von p≡p und die Schnittstelle zu den eingesetzten kryptografischen Bibliotheken. Im Kern koordiniert die p≡p engine die automatische Schlüsselverwaltung, die Ver- und Entschlüsselung, sowie die Signatur und den Transport von Textnachrichten für jede p≡p-basierte Software. Aller Quellcode der verschiedenen Komponenten von p≡p ist unter der freien Softwarelizenz GNU GPL v3 [4] öffentlich zugänglich und kann von allen gelesen, kommentiert und weiterverwendet werden. [5][6]

Im Fall von p≡p ist die deutsche IT-Sicherheitsunternehmung SektionEins GmbH beauftragt, Code-Audits durchzuführen. Das Code-Audit der p≡p engine startete bereits im August 2015 mit einem ersten Review der knapp 10'000 Zeilen C-Code und ging im Sommer 2016 in die intensivste Phase. Zuletzt wurde die p≡p engine in v0.8.0 [7] (Signatur des Codes seitens SektionEins [8]) auditiert. Dabei wird der Programmiercode von unabhängigen Experten durchgesehen, welche auf ernste oder mögliche Sicherheitsrisiken hinweisen. Diese Anmerkungen werden dann von den Programmierern bei p≡p bearbeitet und die Resultate wiederum von den Experten überprüft. Dieser Vorgang wird so lange wiederholt bis keine Fehler oder Risiken mehr gefunden werden. "Das bietet keine hundertprozentige Garantie für fehlerfreien Code. Nur haben wir und die Experten von SektionEins das Menschenmögliche gemacht, Schnitzer auszumerzen", sagt Hernâni Marques, Mitglied im Stiftungsrat und Pressesprecher der Stiftung.

Sieben Fehler mit der Bewertung "mittel", vier mit der Bewertung "hoch", und eine ganze Reihe weiterer Fehler wurden von SektionEins gefunden. "Die meisten der gefundenen Fehler waren von der üblichen Sorte: Speicherallokation und -deallokation, Fehlerbehandlung und ähnliches. Diese sind leicht zu reparieren, können aber zu grösseren Sicherheitsproblemen, wie beispielsweise Buffer-Overflows oder Memoryleaks führen", sagt Krista Grothoff vom p≡p-Entwicklerteam. "Das Audit hat sich definitiv gelohnt! Die Forscher haben auch allgemeine Fragen des Designs aufgeworfen, die nicht direkt ein Problem darstellten, aber potenzielle Quellen der Verwirrung sein können oder mögliche Probleme im zukünftigen Entwicklungsprozess bewirken können."

"Selbstverständlich wurden die gefundenen Fehler unverzüglich bearbeitet und zeitnah ein Update der Software an die bestehenden Nutzer herausgegeben", ergänzt Hernâni Marques. "Die p≡p Stiftung hat SektionEins beauftragt, bei jedem Release eine erneute Prüfung durchzuführen." Die Resultate werden auch in der Zukunft veröffentlicht, so dass alle sich ein umfassendes Bild über die Qualität der Codebasis machen können.

Der permanente Code-Audit-Prozess der p≡p engine stellt indes erst den Anfang einer ganzen Reihe weiterer Codeprüfungen dar: Zur Zeit werden die p≡p adapter von SektionEins auf Sicherheitsrisiken überprüft. Danach folgen Code-Audits der p≡p-Apps und -Add-ons.

Update 2016-10-18: Der verlinkte Bericht (mit neuer Signatur) ist jetzt in Version 0.2e statt 0.2d vorhanden, aus folgendem Grund und mit folgender Änderung: "Clarified pEp legal entities on the front page and appended a notes section with all addresses." (dt. "Klarstellung der verschiedenen rechtlichen pEp-Entitäten auf der Frontseite und Hinzufügen einer Vermerk-Sektion mit allen Anschriften.")

Kontakt: Hernâni Marques
E-Mail: hernani.marques@pep.foundation
(GPG-Key hernani.marques@pep.foundation_pubkey.asc: 3173 3E0C 598D 3A1C F709 55D6 CB57 3865 2768 F7E9)
Tel: +41 79 945 48 85 (ENG, FRA, GER, ITA, POR)

[1] https://pep.foundation/docs/pEp-whitepaper.pdf (PDF)
[2] https://pep.foundation/docs/code-audits/2016-report-pepengine-v0.2e.pdf
(PDF)
[3a] https://pep.foundation/docs/code-audits/2016-report-pepengine-v0.2e.pdf.asc
[3b] https://pep.foundation/docs/code-audits/2016-code-audit-pep-engine-0.2e--signature-readme.txt
[4] https://www.gnu.org/licenses/gpl-3.0.de.html
[5] https://cacert.pep.foundation/trac/browser / https://cacert.pep.foundation/dev/ (CAcert cert)
[6] https://letsencrypt.pep.foundation/trac/browser / https://letsencrypt.pep.foundation/dev/ (Let's Encrypt cert)
[7] https://pep.foundation/docs/code-audits/pEpEngine-d80a4c0d77e4.tar.bz2
[8a] https://pep.foundation/docs/code-audits/pEpEngine-d80a4c0d77e4.tar.bz2.asc
[8b] https://pep.foundation/docs/code-audits/2016-code-audit-pep-engine-0.2e--signature-readme.txt