Community-kontrollierte Sicherungsprozedur
Posted on 2023-07-15 by
Sieben Mitwirkende aus der Kerngruppe und ein Gremiumsmitglied trafen sich in Schottland, dem Geburtsort von F-Droid, zur ersten persönlichen Tagung des F-Droid-Teams. Eine der drängendsten Aufgaben, um die wir uns kümmern mussten, war die Einrichtung einer von den Mitwirkenden kontrollierten Sicherung all unserer Signierschlüssel. Die Anforderungen machten es notwendig, eine langatmige, konsensgelenkte Planungssitzung mit persönlicher Anwesenheit abzuhalten. Wir fanden keine gute Dokumentation zu solch einem Vorgang, so gingen wir hier das Risiko ein und veröffentlichten den allgemeinen Entwurf unseres Prozesses. Dieser Prozess wurde formlos von vielen Leuten mit unterschiedlichen Expertisen auditiert, bevor der öffentliche Schlüssel dazu verwendet wurde, irgendetwas zu verschlüsseln.
F-Droid verwaltet geheime Signierschlüssel für Tausende von Apps. Jemand, der die Kontrolle über diese Schlüssel erlangt, könnte bösartige App-Veröffentlichungen erschaffen, die sich als Aktualisierungen zu erkennen gäben. Obendrein macht es einem Android nicht leicht zu neuen Signierschlüsseln zu wechseln, anders als TLS oder Signal. Somit ist es äußerst wichtig diese Schlüssel zu schützen. Es ist auch sehr wichtig, sie zu sichern, weil das Android OS den Signierschlüssel in Kombination mit der App-ID als den eindeutigen Indentifikator nutzt, der jede einzelne installierte App repräsentiert. Dieses Treffen gab uns die perfekte Gelegenheit ein neues Sicherungsverfahren zu schaffen, das sicherstellt, dass mindestens 4 vertrauenswürdige Mitglieder aus der Community physisch anwesend sein müssen, um die Sicherung aller Schlüssel zu entschlüsseln. Zunächst begannen wir mit den Anforderungen:
- Regelmäßige Sicherungen werden als neue Schlüssel hinzugefügt.
- Starke, bewährte Verschlüsselung für alle Sicherungen.
- Mindestens vier Teilnehmer beim Entschlüsseln.
- Es sollten keine speziellen technischen Kenntnisse erforderlich sein, um Teilnehmer zu werden.
- Die Komponenten sollten physisch quer durch die Zuständigkeitsbereiche verteilt sein.
- Der Zugriff sollte soweit wie möglich minimiert sein (z. B. muss der Betreuer des Signierservers keinen Zugriff auf die Sicherungen haben).
- Geringstmögliches Stressniveau für jeden Teilnehmer.
- Jeder Teilnehmer sollte frei entscheiden, seine Komponente auszuhändigen, wenn dies nötig wird, ohne dabei die Verschlüsselung zu gefährden.
Dann arbeiteten wir aus, wer anwesend war:
- Sieben Hauptmitwirkende.
- Ein Gremiumsmitglied.
- Ein vertrauter externer Zeuge.
- Niemand sonst.
Damit legten wir den Prozess fest:
- Drei Rollen zur physischen Überwachung: Betreiber des Signierservers, Inhaber der verschlüsselten Sicherung und Inhaber eines Passphrasen-Shards.
- Jede Person nimmt nur eine einzige Rolle ein, zum Beispiel haben Shard-Inhaber keinen Zugriff auf Signierschlüssel oder die verschlüsselte Sicherung.
- Der zur Verschlüsselung der Daten verwendete Schlüssel entspricht Public-Key-Kryptographie.
- Der private Schlüssel wurde in einer einmal genutzten, an den Datenspeicher gebundenen, danach verworfenen TAILS-Sitzung generiert.
- Es erfolgte ein Sharding des privaten Schlüssels mittels Shamir’s Secret Sharing.
- Wir verwendeten eine Implementierung von Shamir’s Secret Sharing, die seit über 15 Jahren gewartet wird. Die verwendete Installation wurde als reproduzierbarer Build bestätigt.
- Jedes Shard wurde auf ein Wechselspeichergerät geschrieben, das in einem Laden bar bezahlt gekauft wurde, ohne Vorbestellung oder Registrierung.
- Jedes Wechselspeichergerät mit einem Shard wurde physisch jedem Shard-Inhaber ausgehändigt, um es unter Aufsicht der anderen in einen Sicherheitsumschlag zu packen.
- Sicherungen dürfen nicht über das Internet übertragen werden, nur bei persönlichen Treffen von Menschen, die einander kennen, ausgetauscht werden.
- Alle Beteiligten saßen für die Dauer der Prozedur um einen Tisch. Das Management des Sicherheitsprofils ist bei persönlich geführten Gesprächen drastisch einfacher als bei sicheren Online-Diskussionen.
- Alle Anwesenden waren Beobachter eines jeden Prozessschrittes und bestätigten verbal ihr Einverständnis.
- Der Betreiber des Signierservers und der Inhaber der Sicherungsdaten bestätigten sich gegenseitig die Identitäten über F-Droid-Netzwerke, PGP Web of Trust, und die Überprüfung ihrer behördlich ausgestellten Ausweise.
- Teile mindestens zweier Rechtshoheitsgebiete werden für die Entschlüsselung benötigt: EU, Europa ohne EU, USA.
Ein wichtiger Faktor für verlässliche Sicherungen ist die regelmäßige Aktualisierung. Es kommen kontinuierlich neue Apps hinzu und diese bekommen für gewöhnlich einen neuen Signierschlüssel zugewiesen. So brauchten wir ein System, in dem es einfach ist, die Sicherungsdaten zu aktualisieren, wobei so wenig Leute wie möglich beteiligt sind. Ein Betreiber des Signierservers erhält im persönlichem Austausch mit dem Inhaber der Sicherungen den öffentlichen Schlüssel, um die Sicherungen zu verschlüsseln. Die Inhaber der Sicherungsdaten erhalten die verschlüsselten Sicherungen von einem Betreiber des Signierservers wieder im persönlichen Austausch.
Der Besitz solch wichtiger Geheimnisse verursacht bei den Leuten, die sie besitzen, unvermeidlich Stress. Ein Hauptdesignziel war es , ein Protokoll zu entwickeln, das den vorhandenen Betreibern keinen weiteren Stress hinzufügt. Darüber hinaus hatten wir das Ziel, den individuellen Stress für alle Rollen in diesem Protokoll so gering wie möglich zu halten. Dies macht es möglich, Freiwillige zur Teilnahme zu befähigen, ohne sie zu überfordern.
Zur Wiederherstellung stimmten wir überein, dass sie in einem persönlichen Teffen passieren soll. Der Vorgang erfordert drei Shard-Inhaber, die sich mit einem Inhaber einer verschlüsselten Sicherung treffen, die Ergebnisse müssen dann einem Signierserver-Betreiber übergeben werden. Die Notwendigkeit, sich persönlich zu treffen, könnte den Wiederherstellungsvorgang verzögern, das zusätzliche Vertrauen scheint dies aber wert zu sein. So ist dies das Standardvorgehen. Wir könnten immer noch auf ein partielles Online-Verfahren umstellen, wenn das nötig werden sollte. Dies würde die Zustimmung von fünf Teilnehmern erfordern.
Wir glauben, dies ist eine sichere und verlässliche Sicherungsprozedur für sehr sensible Daten. Wir begrüßen eine weitergehende kritische Untersuchung und planen, die Prozedur falls nötig bei einem zukünftigen Treffen zu verbessern.
(Dieses Treffen wurde durch einen FFDW-DVD-Zuschuss finanziert.)