Beschreibung der VVV-Lösung Anwendungsfälle, Komponenten und Prozesse 24. Januar 2017 Zusammenfassung Dieses Dokument beschreibt das VVV-Verfahren auf Grundlage von „DNS Security Extensions“ (DNSSEC), „DNS-based Authentication of Named Entities (DANE)“ und „DNS Service Resource Records (SRV-RRs)“. Mit VVV können die Sender von verschlüsselten Nachrichten auf einfache Weise Zugang zu vertrauenswürdigen Schlüsseln der gewünschten Empfänger erhalten. Die Betreiber des „Domain Name Systems“ (DNS) senden dazu neben der IP-Adresse weitere verbindliche mit DNSSEC und DANE gesicherte Informationen über die unterstützten Verschlüsselungsverfahren und den zugehörigen Schlüsselverzeichnissen der gefragten Internet-Domain an den anfragenden Nutzer. Um diese Informationen zu nutzen, stellt das VVV-Verfahren Erweiterungen (Plugins) für den Mail-Client Thunderbird und die Mail-Komponente Open-Xchange zur Verfügung. Die VVV-Plugins sorgen dafür, dass die für eine Mail-Kommunikation benötigte Verschlüsselungsverfahren (S/MIME und OpenPGP) und die zugehörigen öffentlichen Schlüssel der Kommunikationspartner automatisch ermittelt werden („Public-Key-Pull-Funktionalität“). Dazu ist ausschließlich die Angabe der jeweiligen Mail-Adresse der Empfänger notwendig. Dieses Dokument beschreibt die VVV-Lösung, insbesondere die Definitionen der Anwendungsfälle, beteiligten Instanzen und Komponenten. Eine detaillierte Definition der technischen Lösung wird in einer separaten Architekturspezifikation erfolgen. Die in diesem Dokument enthaltenen Arbeitsergebnisse sind sorgfältig und unter Zugrundelegung des bekannten Standes der Wissenschaft erstellt worden, stellen jedoch Forschungsansätze dar. Eine Haftung oder Garantie dafür, dass die Arbeitsergebnisse/ Informationen die Vorgaben der aktuellen Rechtslage erfüllen, wird aus diesem Grund nicht übernommen. Gleiches gilt für die Brauchbarkeit, Vollständigkeit oder Fehlerfreiheit, so dass jede Haftung für Schäden ausgeschlossen wird, die aus der Benutzung dieser Arbeitsergebnisse/Informationen entstehen können. Diese Haftungsbeschränkung gilt nicht in Fällen von Vorsatz. 2 Arbeitspaket AP 1 und AP 2 Autoren Peter Fischer (MBX), Ulrich Waldmann (SIT) Mitwirkende Stephan Blazy (PVT), Susan Gonscherowski (ULD), Katharina Lorenz (DRLab) Internes Review 4 Yan Minagawa (MBX) am 17.11.2016 4 Annika Selzer (SIT) am 15.11.2016 Veröffentlichung 4 Ja, auf der Projekt-Webseite. 2 Nein, da Projekt-internes Dokument. Inhaltsverzeichnis Definitionen 1 2 Einführung 10 1.1 1.2 10 10 3.2 Funktionale Anforderungen . . . . . . . . . . . IT-Sicherheits- und Datenschutz-Anforderungen Vertrauensmodell der VVV-Lösung . . . . . . Anforderungen an den DNS-Server . . . . . . . Unterstützung bestimmter Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Veröffentlichung von OpenPGP-Schlüsseln . . . . . . . . . . 3.1.1 DNSSEC/DANE-basiertes Verfahren . . . . . . . . . 3.1.2 Public Key Association (PKA) . . . . . . . . . . . . . 3.1.3 Web Key Service (WKS) . . . . . . . . . . . . . . . . 3.1.4 Privater HKP-Server mit SRV-RRs (Erweitertes HKP) Veröffentlichung von S/MIME-Schlüsseln . . . . . . . . . . . 3.2.1 LDAP-Verzeichnisdienste . . . . . . . . . . . . . . . 3.2.2 Zusammenspiel mehrerer Verzeichnisdienste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4 Veröffentlichung von OpenPGP-Schlüsseln Veröffentlichung von S/MIME-Schlüsseln . VVV-Komponenten . . . . . . . . . . . . . 4.3.1 VVV-Client-Plugin . . . . . . . . . 4.3.2 VVV-Server-Plugin . . . . . . . . . Formate der Resource Records . . . . . . . 12 13 14 17 17 19 Verfahren der VVV-Lösung 4.1 4.2 4.3 5 12 Existierende Verfahren der Schlüsselverteilung 3.1 4 Problemstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . Anwendungsbeispiel . . . . . . . . . . . . . . . . . . . . . . . . . Anforderungen an die VVV-Lösung 2.1 2.2 2.3 2.4 2.5 3 5 19 20 21 22 23 24 25 25 27 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 29 30 31 33 33 Anwendungsfälle der VVV-Lösung 35 5.1 38 40 42 44 46 48 50 51 53 5.2 5.3 UC 0: VVV-Client-Umgebung einrichten . . . . . . . . . . . . . . 5.1.1 UC 0.1: VVV-Client-Plugin installieren . . . . . . . . . . . 5.1.2 UC 0.2: DNSSEC-Schlüssel eines Mail-Anbieters importieren UC 1: Clientseitigen Schlüssel auf Schlüssel-Server veröffentlichen 5.2.1 UC 1.1: Clientseitigen Schlüssel auf dem Client registrieren 5.2.2 UC 1.2: Clientseitigen Schlüssel auf dem Server registrieren 5.2.3 UC 1.3: Schlüssel auf Schlüssel-Server veröffentlichen . . . UC 2: Clientseitig verschlüsselte Mail senden . . . . . . . . . . . . 5.3.1 UC 2.1: Information zu den Schlüssel-Servern finden . . . . 3 5.4 5.5 5.6 5.3.2 UC 2.2: DNSSEC-Signaturen prüfen . . . . . . . . . . . 5.3.3 UC 2.3: Schlüssel finden . . . . . . . . . . . . . . . . . . UC 3: Serverseitig verschlüsselte Mail senden . . . . . . . . . . . UC 4: Veröffentlichte Schlüssel anschauen . . . . . . . . . . . . . UC 5: Clientseitigen Schlüssel auf Schlüssel-Server löschen . . . 5.6.1 UC 5.1: Clientseitigen Schlüssel auf dem Client abmelden 5.6.2 UC 5.2: Clientseitigen Schlüssel auf dem Server abmelden 5.6.3 UC 5.3: Schlüssel auf Schlüssel-Server löschen . . . . . . Literatur 4 . . . . . . . . 55 57 59 61 62 64 65 66 67 Abkürzungen und Definitionen Tabelle 1: Abkürzungen und Definitionen Bezeichnung Bedeutung ASCII American Standard Code for Information Interchange: 7-Bit-Zeichenkodierung für die Kodierung von 128 Zeichen, darunter das lateinischen Alphabet in Groß- und Kleinschreibung, die zehn arabischen Ziffern und einige Sonderzeichen. BIND Berkeley Internet Name Domain Server: Open-Source DNS-Referenzsoftware für die Auflösung von DomainNamen des Domain Name System in Adressen des InternetProtokolls (IP-Adressen). CA Certificate Authority: Zertifizierungsstelle, Teil einer PKI zur Ausgabe von digitalen X.509-Zertifikaten und Sperrlisten. CLI Command-Line Interface: Eingabe für die Steuerung einer Software, die typischerweise im Textmodus abläuft. CRL Certificate Revocation List: Veröffentlichte Sperrliste mit Seriennummern gesperrter X.509-Zertifikate für S/MIME. DANE DNS-Based Authentication of Named Entities: Netzwerkprotokoll, das Informationen der Internet-Domains mit DNSEinträgen verknüpft und per DNSSEC sichert. DNS Domain Name System: Hierarchischer Verzeichnisdienst, der den Namensraum des Internets verwaltet. DNSKEY-RR DNSKEY Resource Record: Enthält den öffentlichen Schlüssel einer DNS-Verwaltungseinheit (Zone) auf dem dafür zuständigen DNS-Server zur Prüfung von DNSSECSignaturen. DNSSEC Domain Name System Security Extensions: Internetstandards, die das Domain Name System (DNS) um Sicherheitsmechanismen zur Gewährleistung der Authentizität und Integrität der im DNS veröffentlichten Daten erweitern. DS-RR Delegation Signer Resource Record: Enthält eine überprüfbare Referenz auf einen DNSKEY-RR einer untergeordneten DNS-Zone und verbindet damit zwei Zonen in der DNSSECVertrauenskette. 5 6 Bezeichnung Bedeutung EDNS Extended DNS: DNS-Protokoll-Erweiterungen, die den Transport von DNS-Daten in UDP-Paketen betreffen und für DNSSEC benötigt werden. E2EE End to End Encryption: Bei einer Ende-zu-EndeVerschlüsselung werden die Mailinhalte direkt beim Mailversender verschlüsselt und erst beim Empfänger wieder entschlüsselt. GnuPG GNU Privacy Guard: Kryptographie-Software zum Ver- und Entschlüsseln von Daten sowie zum Erzeugen und Prüfen elektronischer Signaturen mittels OpenPGP-Standard. Gnu GPL GNU General Public License: Die am weitesten verbreitete Software-Lizenz, die einem gewährt, die Software auszuführen, zu studieren, zu ändern und unter einer kompatiblen Lizenz zu verbreiten. GUI Graphical User Interface: Grafische Benutzerschnittstelle mit der Aufgabe, den Nutzer zu informieren (z. B. über Fehlermeldungen) und ihm mittels grafischer Symbole und Steuerelemente die Bedienung der Anwendung zu ermöglichen. HKP HTTP Keyserver Protocol: Internetstandard, der das Hochladen und Abrufen von öffentlichen OpenPGP-Schlüsseln auf Schlüssel-Servern mittels HTTP definiert. HTTP Hypertext Transfer Protocol: Protokoll zur Übertragung von Anwendungsdaten im Internet. HTTPS Hypertext Transfer Protocol Secure: Protokoll für die Transportverschlüsselung in Form einer zusätzlichen Schicht zwischen HTTP und TCP. IETF Internet Engineering Task Force: Organisation, die sich mit der technischen Gestaltung des Internets, insbesondere mit der Entwicklung von Internetstandards (RFCs) befasst. ITU-T International Telecommunication Union - Telecommunication Standardization Sector: Die ITU ist eine UNSonderorganisation zur Festlegung von technischen Aspekten der Telekommunikation. Die technischen Standards der Unterorganisation ITU-T sind weltweit anerkannt. Bezeichnung Bedeutung LDAP Lightweight Directory Access Protocol: Netzwerkprotokoll zur Abfrage und Änderung von Informationen verteilter Verzeichnisdienste. LDAPS LDAP Secure: Über TLS gesichertes LDAP. MIME Multipurpose Internet Mail Extensions: Internetstandard für Datenformatserweiterungen von Mails. OCSP Online Certificate Status Protocol: Standardisiertes Netzwerkprotokoll, nach dem Anwendungen überprüfen, ob X.509-Zertifikate bereits vor Ende ihres regulären Gültigkeitszeitraums ungültig wurden. OpenPGP Open Pretty Good Privacy: Standard, der das Format für verschlüsselte und signierte Daten und PGP-Schlüssel definiert. OTP One-Time Password: Einmalpasswort zur Authentisierung, das gegen Replay-Angriffe schützt. OX Open-Xchange: Eine Mail- und Groupware-Lösung. PGP Pretty Good Privacy: Programm zur Verschlüsselung und Signatur von Daten mittels Public-Key-Verfahren. PK Public Key: Englisch für öffentlicher Schlüssel. PKA Public Key Association: Auf DNS gegründetes Vertrauensmodell für OpenPGP und selbstsignierte X.509-Zertifikate für S/MIME. PKA-RR Public Key Association Resource Record: DNS-Eintrag, der eindeutig einer Mailadresse zugeordnet ist und Informationen über den öffentlichen OpenPGP- oder S/MIMESchlüssel vorhält, u. a. Fingerprint und URI der Bezugsquelle. PKI Public Key Infrastructure: System aus Zertifizierungsstelle(n), Registrierungsstelle(n), Verzeichnisdienst(en) und Validierungsdienst(en) zur Ausstellung, Verteilung und Prüfung von digitalen X.509-Zertifikaten. PowerDNS Unter der GNU GPL veröffentlichter Nameserver, der verschiedene Datenquellen als Backend nutzen kann. RFC Request for Comments: Reihe von technischen und organisatorischen Internetstandards. 7 8 Bezeichnung Bedeutung RR Resource Record: DNS-Eintrag als grundlegende DNSInformationseinheit. RRSIG-RR Resource Record Signature Resource Record: Enthält die DNSSEC-Signatur für einen Satz von Resource-Records. SHA Secure Hash Algorithm: Gruppe standardisierter kryptologischer Hashfunktionen zur Berechnung eines eindeutigen Prüfwerts für beliebige Daten. S/MIME Secure Multipurpose Internet Mail Extensions: Internetstandard für die Verschlüsselung und das Signieren von MIME-gekapselten Mails. SRV-RR Service Resource Record: DNS-Eintrag über das Angebot IP-basierter Dienste in einer Domain. SST Schnittstelle: Logischer und klar definierter Berührungspunkt einer Software-Komponente für den Austausch von Kommandos und Daten zwischen verschiedenen Prozessen und Komponenten. TCP Transmission Control Protocol: Netzwerkprotokoll zum verbindungsorientierten, paketvermittelnden Datenaustausch im Internet. TLS Transport Layer Security: Protokoll zur Verschlüsselung von Datenübertragungen im Internet. Da an der MailKommunikation viele Zwischenstationen beteiligt sind und TLS jeweils zwischen zwei benachbarten Netzwerkteilnehmern in der Kette aufgebaut wird, liegen die Daten auf den Zwischenstationen unverschlüsselt vor. TLSA Protokoll der DANE-Protokollfamilie zur Sicherung von TLS-Zertifikaten. TLSA-RR TLSA Resource Record: DNS-Eintrag für das TLSAProtokoll zur Absicherung von TLS-Zertifikaten. TOFU Trust On First Use: Ein verbreitetes IT-Sicherheitsprinzip, demgemäß der erste Identitätsnachweis (z. B. mittels Schlüssel und Zertifikat) einer Person oder einer Komponente akzeptiert und als vertrauenswürdig gespeichert wird. UC Use Case: Anwendungsfallbeschreibung eines Teilszenarios der VVV-Lösung ohne Berücksichtigung der technischen Details. Bezeichnung Bedeutung UDP User Datagram Protocol: Netzwerkprotokoll zum minimalen, verbindungslosen Datenaustausch im Internet. URI Uniform Resource Identifier: Standardisiertes Format, das zur Identifizierung von Ressourcen im Internet (z. B. Webseiten, Webdienste, Mail-Adressen) dient. WebAPI Web Application Programming Interface: Eine klar definierte minimale HTTP-Schnittstelle, worüber die Funktionen eines Dienstes anderen Programmen bzw. Diensten zur Verfügung gestellt werden. WKS Web Key Service: Ein RFC-Entwurf von Werner Koch für das Veröffentlichen von OpenPGP-Schlüsseln mittels Mail-Adressen auf Grundlage von Mails und HTTPSVerbindungen zu einem Schlüssel-Server des Mail-Anbieters. X.509 ITU-T-Standard für das Erstellen digitaler Zertifikate, die in einigen kryptographischen Protokollen, beispielsweise in TLS und S/MIME, Verwendung finden. 9 1 Einführung 1.1 Problemstellung Für die Verschlüsselung von Mails müssen sich Nutzer in der Regel zunächst darüber verständigen, welches Verfahren sie dafür verwenden möchten, da die beiden gängigen Verschlüsselungsverfahren S/MIME und PGP/GnuPG hinsichtlich der eingesetzten Zertifikate und zugrunde liegenden Vertrauensmodelle nicht miteinander kompatibel sind. Beide Verfahren sind in der Praxis umständlich und für den Laien schwer zugänglich. Das Verteilen und Finden der für die Verschlüsselung benötigten „Schlüsselinformationen“ (signierte öffentliche Schlüssel für OpenPGP bzw. in Form von X.509-Zertifikaten für S/MIME) der gewünschten Kommunikationspartner ist wenig benutzungsfreundlich, vgl. Abbildung 1. Abbildung 1: VVV-Anwendungsbeispiel: Alice ist ratlos ... 1.2 Anwendungsbeispiel Alice hat mit ihrem Mail-Programm Thunderbird eine Mail an Bob verfasst und möchte diese Mail verschlüsselt absenden, siehe Abbildung 2. Sie gibt dazu lediglich Bobs Mail-Adresse „[email protected]“ ein (Schritt 1). Vor einiger Zeit hat sie das VVV-Client-Plugin für Thunderbird installiert. Sie weiß nicht, welches Verschlüsselungsverfahren (S/MIME oder PGP) Bob verwendet und dass sie zum Verschlüsseln der Mail den öffentlichen Schlüssel von Bob benötigt. Bobs öffentlicher Schlüssel ist im Mail-Programm Thunderbird noch nicht vorhanden. Um diese technischen Details kümmert sich im Hintergrund das VVV-Client-Plugin. Sobald Alice 10 Bobs Mail-Adresse eingegeben hat (Schritt 1), erfragt das VVV-Plugin den DNSServer, der für die Domain „example.com“ (rechter Teil von Bobs Mail-Adresse) zuständig ist, wo Bobs Mail-Anbieter die öffentlichen Schlüssel seiner Kunden veröffentlicht hat (Schritte 2 und 3). Von dort lädt das VVV-Client-Plugin Bobs Schlüssel herunter und übergibt den Schlüssel an Thunderbird (Schritte 4 und 5). Alice klickt auf den Sende-Button, das Mail-Programm Thunderbird verschlüsselt die Mail mit Bobs öffentlichen Schlüssel (Schritt 6) und sendet schließlich die Mail Ende-zuEnde-verschlüsselt an Bob (Schritt 7). Abbildung 2: Anwendungsbeispiel: Alice nutzt VVV. Hintergrundinformation: Bob hatte sich beispielsweise bei der Volksverschlüsselung1 kostenlos ein X.509-Zertifikat für „[email protected]“ besorgt und dieses Zertifikat bei seinem Mail-Anbieter (= Mail-Domain-Inhaber) registriert. Bei der Registrierung des Zertifikats musste Bob gegenüber dem Mail-Anbieter nachweisen, dass er Zugriff auf das Mailkonto hat und im Besitz des privaten Schlüssels ist, der zum öffentlichen Schlüssel im Zertifikat gehört. Dazu hatte der Mail-Anbieter eine verschlüsselte Mail an Bob gesendet, die Bob entschlüsseln und beantworten konnte. Anschließend hat der Mail-Anbieter das Zertifikat auf den LDAP-Server der Domain „example.com“ veröffentlicht. Die Adresse des LDAP-Servers ist auf dem DNSServer hinterlegt und mit einer DNSSEC-Signatur des Mail-Anbieters geschützt. Anhand dieser Signatur kann überprüft werden, dass die Informationen authentisch sind, d. h. dass Bob das Zertifikat einschließlich Mail-Adresse bei seinem Mail-Anbieter registrieren ließ. 1 Initiative „Volksverschlüsselung“ des Fraunhofer SIT: www.volksverschluesselung.de. 11 2 Anforderungen an die VVV-Lösung Eine Übersicht zu den technischen Herausforderungen und aktuellen Verfahren der Mail-Sicherheit, z. B. S/MIME, OpenPGP, DNSSEC und DANE, bietet eine aktuelle Ausgabe der Zeitschrift „The Internet Protocol Journal“ [1]. Die VVV-Lösung soll auf Basis dieser verfügbaren Techniken eine benutzerfreundliche Verteilung von Schlüsselinformationen über einen kryptographisch abgesicherten Verteilungsweg umsetzen und dabei insbesondere die folgenden Anforderungen erfüllen. 2.1 Funktionale Anforderungen • Einfachheit: Für das Auffinden der Schlüssel für PGP und S/MIME durch das VVV-Plugin soll allein die Kenntnis der Mail-Adressen der gewünschten Kommunikationspartner ausreichen. Der Nutzer soll mit seinem gewohnten MailClient Mails empfangen, lesen, senden, verschlüsseln und entschlüsseln. Dem Nutzer soll aber auch klar angezeigt werden, dass ein gefundener Schlüssel tatsächlich der aktuelle Schlüssel des gewünschten Kommunikationspartners ist. • Standards: Es sollen möglichst standardisierte Protokolle und Schnittstellen zum Einsatz kommen, um eine Verbreitung dieser Technik zu fördern. Die Komponenten sollen bevorzugt aus dem Open-Source-Umfeld kommen und eigene Entwicklungen im Quellcode offen gelegt werden. Wichtig ist insbesondere die Interoperabilität der VVV-Lösung zur GnuPG-Komponente und zu den Open-Xchange-Komponenten, auf die die VVV-Lösung angewiesen ist. • Modularität: Die VVV-Lösung soll möglichst modular aufgebaut sein, um die Erweiterbarkeit und Wiederverwendbarkeit der Komponenten zu erhöhen. Dies vereinfacht auch die automatisierte Prüfung mittels Unit-Tests und erhöht die Wartbarkeit. • Zuordenbarkeit: Mit der VVV-Lösung übernehmen Mail-Anbieter die zusätzliche Aufgabe, die öffentlichen Schlüssel der Nutzer im Internet zugänglich zu machen. Vor dem Hochladen der Schlüsselinformationen soll der MailAnbieter verifizieren, dass der Nutzer erstens im Besitz des zugehörigen privaten Schlüssels ist und zweitens die Kontrolle über die Postfächer der zu registrierenden Mail-Adressen hat. Dabei muss sichergestellt werden, dass ein aktuell gültiger Schlüssel eindeutig einer bestimmten Mailadresse zugeordnet ist. 12 2.2 IT-Sicherheits- und Datenschutz-Anforderungen • Privatsphäre: Die VVV-Lösung soll die Privatsphäre der Benutzer respektieren und schützen. So darf es mit dem VVV-Plugin nicht möglich sein, mit unvollständigen Mail-Adressen (mittels Wildcards) nach Schlüsseln und Zertifikaten anderer Nutzer zu suchen. Um zu verhindern, dass Profile über das Nutzerverhalten erstellt werden können, müssen Angriffe, z. B. das Mitlesen und Analysieren des Netzwerkverkehrs, betrachtet, verhindert oder zumindest erschwert werden. Die Server sollen nur die absolut notwendigen Daten vorhalten. • Vertraulichkeit: Die Kommunikation zwischen den VVV-Komponenten und den beteiligten Servern soll mit SSL/TLS transportverschlüsselt sein. Das VVV-Plugin ist jedoch nicht direkt an der Ende-zu-Ende-Verschlüsselung von Mails beteiligt, sondern nur indirekt durch das Hochladen bzw. Beschaffen der dazu notwendigen öffentlichen Schlüssel. Das VVV-Plugin verändert die Einstellungen des Mail-Clients bzw. Mail-Servers so wenig wie möglich, nimmt z. B. keinen Einfluss darauf, ob Mails standardmäßig verschlüsselt werden oder nicht. Das VVV-Plugin kann dem Nutzer Hinweise geben, aber dem MailClient bzw. Mail-Server kein bestimmtes Verhalten vorgeben, wenn beispielsweise zu einer Mail-Adresse der Schlüssel-Server nicht erreicht oder auf einem Schlüssel-Server zu einer Mail-Adresse kein Schlüssel veröffentlicht ist. • Nachweis des Schlüsselbesitzes: Vor dem Hochladen eines öffentlichen Schlüssels soll ein kryptografisch gesichertes Challenge-Response-Verfahren eingesetzt werden, um zu verifizieren, dass der Nutzer tatsächlich im Besitz des zum öffentlichen Schlüssel gehörenden privaten Schlüssels ist. Das VVVPlugin soll dazu die Verwendung des privaten Schlüssels anstoßen, aber nicht selbst ausführen. • Robustheit gegenüber Man-in-the-Middle-Angriffen: Es muss verhindert werden, dass der Mail-Anbieter als „Man-in-the-Middle“ unbemerkt eigene öffentliche Schlüssel mit den Namen der Nutzer veröffentlicht, damit verschlüsselte Mails entschlüsselt und für die Zustellung diese Mails mit den eigentlichen öffentlichen Schlüsseln der Empfängers wieder verschlüsselt. Der Nutzer muss jederzeit überprüfen können, welche Schlüssel in seinem Namen veröffentlicht sind und ob diese mit dem ehemals hoch geladenen Schlüsseln übereinstimmen. Dies könnte auch automatisch durch VVV-Komponenten erfolgen. Jede Änderung des Veröffentlichungsstatus muss allerdings vom betroffenen Nutzer angestoßen worden sein. • Authentizität: Die Authentizität der Informationen muss sichergestellt werden. Es ist darauf zu achten, dass die beteiligten Systeme kryptografisch gesi- 13 chert sind und in einer unterbrechungsfreien Kette von Vertrauensbeziehungen organisiert sind. Die Dienste bzw. deren SSL-Zertifikate müssen durch einen DANE-RR im DNS mittels DNSSEC verifizierbar sein. Da die öffentlichen Schlüssel zur Validierung der DNSSEC-Signaturen bis zum DNS-RootSchlüssel direkt über das DNS-System verteilt werden (was ein kompromittierter DNS-Server nachahmen könnte), sollen die echten öffentlichen Schlüssel der DNS-Root-Zone als Sicherheitsanker in den VVV-Plugins vorinstalliert werden. • Transparenz: Der Nutzer soll über das graphische Benutzeroberfläche des VVV-Plugins Hinweise oder Fehlermeldungen angezeigt bekommen, falls ihm eine Handlungsempfehlung gegeben werden kann oder eine Entscheidung von seiner Seite erforderlich ist (z. B. eine Aufforderung zur Einwilligung vor dem Hochladen eines Schlüssels oder eine Übersicht zur Auswahl, wenn mehrere Schlüssel zur Auswahl stehen). Das VVV-Plugin soll ansonsten die technischen Prozesse weitestgehend im Hintergrund erledigen. Der Nutzer soll beispielsweise so wenig wie möglich mit der Unterscheidung von OpenPGP und S/MIME konfrontiert werden. 2.3 Vertrauensmodell der VVV-Lösung Die VVV-Lösung ergänzt die Prüfverfahren, die mit den Vertrauensmodellen von OpenPGP und S/MIME verbundenen sind, aber ersetzt und integriert diese nicht, siehe Tabelle 2. Die hierarchisch aufgebauten X.509-Zertifikatsketten für S/MIMESchlüssel und die Signaturen (User-IDs) des Web-of-Trust für OpenPGP-Schlüssel sollten daher wie bisher durch die Anwendungsprogramme überprüft werden. 14 Tabelle 2: Einordnung des VVV-Vertrauensmodells Validierung Erläuterung 1. Ebene: DNSSECSignaturen Die VVV-Lösung sichert die Informationen darüber, welcher Schlüssel zu welchem Nutzer gehört, in Form von DNSSEC-signierten Service Records auf dem DNS-Server der Mail-Domain. Diese Service Records geben die authentischen Speicherorte der Zertifikate und Schlüssel an. Die VVV-Plugins prüfen die Authentizität dieser Information durch die Validierung der von den Mail-Anbietern erstellten DNSSEC-Signaturen. Damit bietet die VVVLösung ein automatisches Ermitteln der Schlüssel auf Grundlage des Vertrauens in den Mail-Anbieter. Die Informationsübertragung wird durch kryptografisch gesicherte Dienste (DNSSEC, HTTPS, LDAPS) erbracht. 2. Ebene: Anwendung des privaten Nutzerschlüssels Der Mail-Anbieter überprüft im Rahmen der clientseitigen VVV-Lösung vor dem Hochladen des öffentlichen OpenPGP-Schlüssels bzw. des X.509-Zertifikats für S/MIME die Bindung des Schlüssels an den Nutzer. Der MailServer sendet dazu einen verschlüsselten Verifikationscode an das VVV-Client-Plugin. Der Nutzer lässt den Verifikationscode durch den Mail-Client entschlüsseln und an den Mail-Server zurücksenden. Durch den Zugriff auf das Mail-Konto und auf den privaten Schlüssel hat der Nutzer seine Berechtigung nachgewiesen, den öffentlichen Schlüssel zu veröffentlichen. Alternativ könnte der Mail-Anbieter das Zertifikat mit dem öffentlichen Schlüssel des Nutzers bereits dann akzeptieren, wenn das Zertifikat zum ersten Mal und zum wiederholten Male vom Nutzer präsentiert wird (Prinzip des „Trust On First Use“, TOFU, und Vertrauen durch wiederholte Verwendung). Dies allein ist allerdings fehleranfällig, da der Nutzer ohne Anwendung des privaten Schlüssels ungewollt ein unpassendes Zertifikat hochladen könnte. 15 Validierung Erläuterung 3. Ebene: Signaturen der hierarchischen Zertifikatskette bzw. des Webof-Trust Diese Ebene umfasst die etablierten Vertrauensmodelle der Zertifizierungshierachien und des Web-of-Trust. Diese Ebene liegt nicht im Scope der VVV-Lösung. Die S/MIME-Schlüssel werden von einer Zertifizierungsstelle (CA) signiert. Die Mail-Anwendung des Nutzers kann die Signaturen prüfen und dazu die X.509-Zertifikate der übergeordneten CAs bis hin zum Root-CA-Zertifikat in die Prüfung einbeziehen. Das Root-CA-Zertifikat muss in der Anwendung oder im Betriebssystem vorinstalliert sein oder alternativ vom Nutzer in der Anwendungskonfiguration als vertrauenswürdig gekennzeichnet werden. Die öffentlichen OpenPGP-Schlüssel werden von anderen Kommunikationspartnern im Web-of-Trust in Form von OpenPGP-Zertifikaten mit signierten User-IDs beglaubigt. Mittels der OpenPGP-fähigen Anwendungen können die Nutzer die User-IDs der anderen Nutzer validieren und die Authentizität des Schlüssels und der jeweiligen Identität einschätzen. 4. Ebene: Fingerprint des Schlüssels Auf dieser Ebene erfolgt der Abgleich und die Verifikation der Schlüssel und der zugehörigen Identitäten über einen separaten manuellen Weg. Diese Ebene liegt nicht im Scope der VVV-Lösung. Der Nutzer kann beispielsweise den Hashwert (Fingerprint) des öffentlichen Schlüssels eines Kommunikationspartners auf einem unabhängigen Kommunikationsweg (z. B. persönlich im Gespräch, per Brief oder per WebSeite des Kommunikationspartners) erhalten und diesen Fingerprint vor der Nutzung des Schlüssels manuell überprüfen, um sich persönlich davon zu überzeugen, dass der vorliegende Schlüssel wirklich zu dem im Zertifikat genannten Kommunikationspartner gehört. Die VVV-Lösung baut auf das Vertrauen, das die Nutzer in die Mail-Anbieter und DNS-Infrastrukturanbieter des Internets haben, d. h. das Vertrauen in die Richtigkeit von Mail-Adressen und die korrekte Zustellung von Mails, die Sicherheit der von den Mail-Anbietern angebotenen Registrierungs- und Authentisierungsverfahren (in der Regel Benutzername, Passwort). Würde dieses Vertrauen fehlen, dann müsste das Versenden von Mails insgesamt in Frage gestellt werden. 16 2.4 Anforderungen an den DNS-Server • Standards: Der DNS-Server muss sich an offenen Standards orientieren. • Zuverlässigkeit: Der DNS-Server ist eine zentrale Komponente im Netzwerk. Deshalb sind die Anforderungen an seine Zuverlässigkeit besonders hoch. • Redundanz: Um die Zuverlässigkeit und Performance erhöhen zu können, soll das System redundant ausgelegt werden können. • DNSSEC: Der DNS-Server soll seine Zonen mit DNSSEC absichern können. Weiterhin soll er mit an ihn gerichteten DNSSEC-Anfragen gemäß RFC6944 [2] umgehen können. • DANE: Um die Privatsphäre der Benutzer zu schützen stellen die SchlüsselServer die öffentlichen Schlüssel über SSL gesicherte Protokolle zur Verfügung. Die verwendeten SSL-Zertifikate dieser Dienste werden zusätzlich mittels DANE-DNS-RR nach RFC6698 [3] abgesichert. 2.5 Unterstützung bestimmter Features Feature Argumente und Alternativen Unterstützung von OpenPGP Privat wird mehr OpenPGP als S/MIME verwendet. Für OpenPGP gibt es Erweiterungen (z. B. Enigmail, Mailvelope). Unterstützung von S/MIME Beruflich wird mehr S/MIME als OpenPGP verwendet. Viele Anwendungen haben S/MIME bereits integriert. Plugin für Mozilla Thunderbird Das Thunderbird-Plugin (VVV-Client-Plugin) soll sowohl OpenPGP als auch S/MIME unterstützen. Plugin für OpenXchange Das Open-Xchange-Plugin (VVV-Server-Plugin) soll mindestens OpenPGP unterstützen. Verwaltung öffentlicher Schlüssel Die VVV-Lösung hat die Verwaltung öffentlicher Schlüssel im Fokus. Private Schlüssel werden durch die VVVLösung weder generiert noch verwaltet, auch wenn Firmen für den Zugang zu verschlüsselten Mails üblicherweise die privaten Schlüssel ihrer Mitarbeiter vorhalten. Die Verwaltung privater Schlüssel wird in VVV aber evtl. einer rechtlichen Betrachtung unterzogen. 17 Feature Argumente und Alternativen Verwaltung mehrerer Schlüssel pro Nutzer Für jede Mail-Adresse soll ein OpenPGP-Schlüssel (d. h. ein OpenPGP-Zertifikat mit dem öffentlichen Hauptschlüssel und evtl. vorhandenen Unterschlüsseln für Verschlüsselung, Signatur, Authentisierung) und ein S/MIMESchlüssel (X.509-Zertifikat mit einem öffentlichen Schlüssel für die Verschlüsselung) hinterlegt werden können. Jeder hinterlegte Schlüssel gilt als aktuell und vom Nutzer für die Verwendung autorisiert. Verifikation des Schlüssels mittels HTTPS Gegen eine Mail- mit verschlüsseltem Verifikationscode spricht Folgendes: • Einige Mail-Anbieter verwenden nur ein WebInterface ohne SMTP und IMAP. • Das Postfach des Nutzers könnte überfüllt sein. • Der Nutzer könnte seine Mails mit einem anderen Client mittels POP3 abholen oder auf einen anderen Client umleiten (filtern), so dass das VVV-Plugin bzw. der Mail-Client, in dem der private Entschlüsselungsschlüssel verwendet werden kann, die verschlüsselte Mail gar nicht sehen und entschlüsseln kann. Die Lösung mit HTTPS-Schnittstelle über REST erfordert eine Entschlüsselung des Verifikationscodes mit Hilfe des Plugins mit Zugriff auf den Schlüsselspeicher durch den Mail-Client bzw. die GnuPG-Komponente. Der Nutzer muss neben der Anmeldung zum Postfach ggf. auch das Schlüsselschutz-Passwort eingeben, was dem Nutzer an dieser Stelle unbedingt erklärt werden sollte, siehe UC 1. 18 3 Existierende Verfahren der Schlüsselverteilung 3.1 Veröffentlichung von OpenPGP-Schlüsseln Insbesondere OpenPGP ist für einen durchschnittlich IT-fernen Nutzer nur schwer zu verstehen und nutzbar. In der Regel muss zusätzliche Software (z. B. Enigmail für Mozilla Thunderbird oder Mailvelope für Mozilla Firefox) installiert werden. Die Nutzer müssen sich gegenseitig ihre Schlüssel und Identitätsdaten beglaubigen („Web of Trust“), wobei die dabei erzeugten User-IDs bestenfalls ein höheres Vertrauen in die Herkunft der enthaltenen Signaturen ermöglichen. Die Nutzer können sich die Schlüssel auch direkt gegenseitig mitteilen sowie auf vorhandenen Schlüssel-Servern veröffentlichen. Durch die öffentlichen Schlüssel-Server hat das Konzept von OpenPGP aber einige Sicherheits- und Datenschutzprobleme. So kann z. B. ein Angreifer Schlüssel mit beliebigen Mail-Adressen erstellen und veröffentlichen. Die authentische Herkunft eines Schlüssels ist fraglich und der Nutzer muss manuell eine berechnete Prüfsumme (Fingerprint) zum vorliegenden Schlüssel mit dem Fingerprint vergleichen, den der wahre Schlüsselbesitzer dem Nutzer auf anderem Wege, z. B. telefonisch oder über eine Webseite, mitgeteilt hat. Da die Nutzer die Fingerprints nicht zwangsweise prüfen, sind die damit generierten Signaturen ebenfalls nicht per se vertrauenswürdig. Bei Verlust des privaten Schlüssels hat der Nutzer zudem keine Möglichkeit den öffentlichen Schlüssel auf dem Schlüssel-Server zurückzurufen (d. h. als ungültig zu kennzeichnen). Ein Datenschutzproblem besteht darin, dass die Kommunikationspartner der Nutzer, der „Soziale Graph“, aus den Signaturen der Schlüssel rekonstruiert werden kann. Auch kann das Veröffentlichen des Schlüssels zu einem erhöhten Spam-Aufkommen im Mail-Postfach des Nutzers führen. Es gibt verschiedene Verfahren, um öffentliche OpenPGP-Schlüssel automatisch zu verteilen. Im Rahmen des VVV-Projekts wurden die existierenden Verfahren betrachtet und bewertet, siehe folgende Kapitel. Die hier beschriebenen Verfahren zur automatischen Ermittlung von öffentlichen Schlüsseln setzten ein Vertrauen in den MailAnbieter und seine DNS-Server, Mail-Server und Schlüssel-Server voraus. Um das Vertrauen in die über den Mail-Anbieter veröffentlichten Schlüssel zu erhöhen, könnten die Verfahren zusätzlich über ein öffentliches dezentrales kryptografisch abgesichertes Log-Verzeichnis gesichert werden.2 Die VVV-Lösung wird das bestehende Vertrauensmodell der OpenPGP-Schlüssel nicht verändern, soll aber einen Veröffentlichungsmechanismus verwenden, der ein zusätzliches Vertrauensmodell ermöglicht, welches eine einfache, eindeutige und 2 Ähnlich dem Konzept „Certificate Transparency“, vgl. die Präsentation „Transparent Keyservers – Trust at Scale“ von Gary Belvin. 19 benutzungsfreundliche Zuordnung von öffentlichen Schlüsseln zu den betreffenden Nutzern gestattet. 3.1.1 DNSSEC/DANE-basiertes Verfahren Bei diesem Verfahren werden die öffentlichen OpenPGP-Schlüssel in DNS Resource Records abgelegt3 . Wir haben uns aus folgenden Gründen gegen dieses Verfahren entschieden. 1. Eine Absicherung der Kommunikation mittels TLS und TLSA-RR, um die ggf. verwendeten TLS-Zertifikats abzusichern und damit die Authentizität der DNS Resource Records sicherzustellen, ist nicht Teil des Konzepts. TLS direkt in einem DNS-Resolver zu nutzen, wäre zwar technisch möglich (vgl. RFC7858 [6]), ist aber nicht sehr verbreitet. Als Fallback müsste die Kommunikation daher auch ohne TLS angeboten werden, wodurch es einem Angreifer ermöglicht wird, die unverschlüsselte Fallback-Kommunikation zu erzwingen. 2. Eine Absicherung mittels DNSSEC/DANE ist es zwar möglich, allerdings sind DNS-Anfragen grundsätzlich nicht verschlüsselt und können so von potentiellen Angreifern auf dem Übertragungsweg mitgelesen werden. Dadurch wird die Privatsphäre der Benutzer beeinträchtigt, falls personenbezogene Daten (z. B. die Schlüssel der Nutzer) im DNS gespeichert werden. 3. Der Draft [4] widerspricht der RFC53214 , darin dass die Mailadressen in einer case-sensitiven Schreibweise definiert werden, während die Bezeichner im DNS nach RFC4343 [8] immer case-insensitiv anzugeben sind. In der Praxis hat sich eine case-insensitive Schreibweise der Mailadressen durchgesetzt. Dies wird in dem Draft auch erwähnt, aber es gibt keine zwingende Festlegung, wodurch der Draft uneindeutig ist. 4. Die Bezeichner werden nur aus den führenden 28 Oktetts des SHA-256Hash gebildet, wodurch eine theoretisch höhere Wahrscheinlichkeit von HashKollisionen besteht. 5. Es besteht eine Größenbeschränkung der DNS-Antworten durch die Verwendung des UDP-Protokolls, welche durch die Verwendung von Extended DNS (EDNS)5 aufgehoben werden soll. 6. Bei Verwendung von EDNS können Probleme auf dem Übertragungsweg auftreten, so z. B. Fragmentierung von DNS-Antworten durch alte Firewalls. 3 Siehe auch die IETF-Entwürfe zur Veröffentlichung von OpenPGP-Schlüsseln [4] und von Schlüsseln für S/MIME [5]. 4 Siehe RFC5321 Kap. 2.4 [7], „The local-part of a mailbox MUST BE treated as case sensitive“. 5 Dies wurde erstmals in RFC2671 spezifiziert, aktuell ist RFC6891 [9]. 20 7. Durch große DNS-Requests, wie sie z. B. bei EDNS notwendig sind, ergibt sich ein erhöhtes Potential für DNS-Reflektionsangriffe. Fazit: Das Verfahren lässt in Bezug auf Datenschutz und Sicherheit (einschließlich Verfügbarkeit der Daten) einige Fragen offen. Daher wird die VVV-Lösung dieses Verfahren nicht für die Verteilung von datenschutzrelevanten Informationen (d. h. für die Schlüssel der Nutzer) verwenden, sondern nur für die Veröffentlichung von „Service Resource Records“ (SRV-RRs) mit Informationen über die separaten SchlüsselServer der Mail-Anbieter, vgl. Abschnitt 3.1.4. Die Informationen der SRV-RRs enthalten keine personenbezogenen Daten oder schützenswerten Geheimnisse und können daher auch unverschlüsselt übertragen werden. 3.1.2 Public Key Association (PKA) Bei diesem Verfahren wird für jede Mailadresse ein eigener so genannter „Public Key Association Resource Record“ (PKA-RR) im DNS angelegt.6 Der PKA-RR ist der Form nach ein so genannter „Text Strings Resource Record“ (TXT-RR) mit frei definierbarem Text und enthält neben einer Versionsangabe des Protokolls und dem Fingerprint auch die Web-Adresse (URI) einer Bezugsquelle des öffentlichen OpenPGP-Schlüssels. Die folgenden Überlegungen sprechen allerdings gegen eine Verwendung: 1. Die entsprechenden DNS-RRs sind nicht zwingend mittels DNSSEC/DANE abgesichert (nach Definition), d. h. das Verfahren sieht keine TLSA-RRs vor, um die ggf. verwendeten TLS-Zertifikats abzusichern und damit die Authentizität der DNS-RRs sicherzustellen 2. Das Verfahren wird in der Praxis zwar eingesetzt, hat sich aber nicht weiter durchgesetzt. 3. Die Definition der Schreibweise (Case (In)sensitive) des Local-Part der Mailadressen ist nicht definiert. 4. Auf dem Übertragungsweg ist ein Mitlesen der angeforderten OpenPGPSchlüssel möglich, wodurch die Privatsphäre des Benutzers unterlaufen wird. 5. Das Verfahren ist kein RFC-Standard. Dadurch ist eine flächendeckende Verbreitung sehr schwierig zu erreichen. Fazit: Die oben genannten Gründe sprechen gegen eine Verwendung des Verfahrens in der VVV-Lösung, da das Verfahren einige Sicherheits- und Datenschutzanforderungen nicht erfüllen kann. Die VVV-Lösung muss in jedem Fall eine Absicherung mittels DNSSEC/DANE voraussetzen. 6 Siehe „Public Key Association“ von Werner Koch [10]. 21 3.1.3 Web Key Service (WKS) Hierbei handelt es sich um ein neues Verfahren7 , welches die Schlüssel über eine WebAPI bereitstellt bzw. entgegennimmt. In der aktuellen Form ist die praktische Verwendung des Konzepts sehr eingeschränkt. So sprechen die folgenden Punkte gegen eine Verwendung. 1. Durch den beschriebenen Aufbau muss der Mail-Anbieter die volle Kontrolle über den Web-Server der DNS-Domain besitzen, was in der Praxis i.d.R. nicht der Fall ist.89 2. Der Ablauf des Schlüssel-Uploads ist aus unserer Sicht unvollständig bzw. inkonsistent. Beispielsweise wird der erste Schritt, in dem die Mailadresse zum Schlüssel-Upload ermittelt wird, 10 über eine HTTP-Schnittstelle, während alle weiteren Schritte über SMTP definiert sind. 3. Für den Upload ist das Format des Schlüssels als „amored ASCII“11 definiert, beim Abholen muss der Key allerdings zwingend in der binären Version vorliegen.12 4. Der Widerruf (Sperrung) von Schlüsseln wird zwar erwähnt, ist aber in der RFC bisher nicht definiert. 5. Das Konzept nutzt den eigentlichen WKS nur für den aktuell aktiven Schlüssel. Um Signaturen von alten Schlüsseln zu prüfen, wird auf bestehende HKPServer zurückgegriffen.13 Dadurch entstehen u. U. Lücken im Sicherheitskonzept. 6. Momentan ist die Absicherung des Web-Service (DNSSEC/DANE, Certpinning, CA) nicht klar definiert. Es gibt aber einen TLSA-RR zur Absicherung von verwendeten TLSA-Zertifikaten. 7. Da man sich beim Einreichen des Schlüssels per Mail nicht authentisieren muss, ist es möglich, diesen Dienst für eine Art Mail-Adress-Dossier zu nutzen. 7 Das Verfahren im Draft „OpenPGP Web Key Service“ [11] spezifiziert. Das Problem könnte man mittels entsprechender DNS-Einträge lösen, beispielsweise mittels SRVRRs, die auf separate Server des Mail-Anbieters verweisen. 9 Es gibt wohl Überlegungen dies per HTTP-Weiterleitung zu lösen, dies ist bisher allerdings nicht weiter definiert. 10 Zum Ermitteln der Mailadresse wäre ebenfalls ein DNS-Eintrag besser geeignet, vgl. den zuvor genannten Punkt. 11 Siehe Kap 4.3: „the body part contains the ASCII-armored transferable Public Key Packets as defined in RFC4880“ [12]. 12 Siehe Draft Webservice [11] Kap.3.1: „The server MUST NOT return an ASCII armored version of the key.“ 13 Gemäß mündlicher Gespräche mit W.Koch. 8 22 8. Die Policy sollte auch die unterstützen Schlüsselgrößen angeben. 9. Ist das Postfach voll, funktioniert der Mail-gestützte Prozess nicht. 10. Momentan ist in der RFC keine „Anti-Brute-Force-Strategie“ definiert. 11. Vorteil des WKS-Verfahrens ist die Verifikation des Mail-Accounts durch das Versenden einer Mail. Fazit: Das Verfahren bietet momentan keine Vorteile gegenüber der HKP-Lösung (vgl. nachfolgenden Abschnitt 3.1.4, allerdings ist eine große Verbreitung zu erwarten, da das Verfahren wahrscheinlich als RFC-Standard veröffentlicht wird. So hat das aktuelle GnuPG 2.1 dieses Verfahren bereits implementiert.14 Die VVV-Lösung muss in jedem Fall eine Absicherung mittels DNSSEC/DANE voraussetzen. 3.1.4 Privater HKP-Server mit SRV-RRs (Erweitertes HKP) Dieses Verfahren [13] beschreibt ein „HTTP Keyserver Protocol“ (HKP), das „Service Resource Records“ (SRV-RRs) [14] verwendet, um unter der Mail-Domain Informationen darüber bereitzustellen, wo ein Schlüssel-Server für diese Mail-Domain zu finden ist. Das Verfahren definiert weitere Bedingungen an die Umgebung, um vertrauenswürdige Schlüssel zur Verfügung zu stellen. Im Gegensatz zu verbreiteten HKP-Implentierungen ist keine Synchronisation mit anderen HKP-Servern vorgesehen. Daher werden die Schlüssel-Server dieses Verfahrens „private HKP-Server“ genannt. Eine solche Synchronisation ist in der VVV-Lösung auch nicht erwünscht, da immer nur auf die Schlüssel-Server des jeweiligen Mail-Anbieters zugegriffen werden soll und eine Synchronisation dieser Schlüssel-Server mit anderen HKP-Servern beispielsweise dazu führen könnte, dass die Schlüssel nicht exakt mit dem übereinstimmen, was der Nutzer auf den Schlüssel-Server hochladen ließ. Im Folgenden einige weitere Anmerkungen zu diesem Verfahren. 1. Leider wurde der HKP-Draft aus dem Jahr 2003 nicht bis zu einem RFCStandard ratifiziert. 2. Es wird nur die mit TLS abgesicherte Variante der HKP-Schnittstelle unterstützt. Eine Absicherung der TLS-Zertifikate mittels TLSA-RR ist vorgesehen. 3. Für jede Mail-Domain wird mit dem SRV-RR ein HKP-Server definiert. Dieser DNS-RR ist zwingend erforderlich, um anzuzeigen, dass dieses Verfahren unterstützt wird. 14 Siehe Werner Koch: Key Discovery made simple, https://www.gnupg.org/blog/20160830-web-key-service.html, 30. August 2016. 23 4. Im Gegensatz zu dem originären HKP-Konzept ist keine Synchronisation von HKP-Servern vorgesehen. Fazit: Dieses erweiterte HKP-Verfahren scheint ebenso wie das WKS-Verfahren (siehe Abschnitt 3.1.3) für VVV prinzipiell geeignet. Der Open-Xchange-Server hat eine HKP-Schnittstelle implementiert, die allerdings nicht ganz konform zur Spezifikation ist. Die VVV-Lösung muss in jedem Fall eine Absicherung mittels DNSSEC/DANE voraussetzen. 3.2 Veröffentlichung von S/MIME-Schlüsseln S/MIME wird von den meisten Verschlüsselungsprogrammen unterstützt und verwendet X.509-Zertifikate von hierarchisch organisierten öffentlichen Zertifizierungsstellen („Hierarchische PKI“). Die Nutzer müssen sich vorab ihre Zertifikate mitteilen oder ihre Anwendungen so konfigurieren, dass der richtige Verzeichnisdienst zum Auffinden der gewünschten Zertifikate eingetragen ist. Privatnutzer wissen in der Regel nicht, wie sie Schlüssel erzeugen und wo sie entsprechende Zertifikate für sich beziehen können. Insbesondere wissen sie nicht, wie sie die Zertifikate von gewünschten Kommunikationspartnern erhalten können. Liegen dem Nutzer bereits Zertifikate seiner Kommunikationspartner vor, so ist es zudem schwierig, eindeutig zu überprüfen, ob ein bestimmter Verschlüsselungsschlüssel wirklich zu dem gewünschten Kommunikationspartner gehört. Der Nutzer muss zudem der Instanz, welche das Zertifikat erstellt hat, vertrauen, obwohl es per se nicht klar ist, wie und warum er der digitalen Signatur einer ihm wahrscheinlich unbekannten Zertifizierungsstelle vertrauen sollte. Zurzeit werden Wurzelzertifikate als Vertrauensanker verwendet, mit denen vollständige Zertifikatsketten geprüft werden können. Viele Anwendungen haben solche Wurzelzertifikate integriert. Die Auswahl dieser Vertrauensanker kontrolliert der Nutzer jedoch in der Regel nicht selbst, da dies sehr aufwändig ist und ein Wissen um die dahinter liegenden Konzepte voraussetzt. Wie im Falle von OpenPGP löst die VVV-Lösung auch bei S/MIME nicht das generelle Problem, dass der Bezug von Schlüsseln und Zertifikaten und deren Integration in die Mail-Anwendungen relativ umständlich und benutzungsunfreundlich ist. Zudem verbessert die VVV-Lösung nicht das Vertrauensmodell, das der Nutzung hierarchischer Zertifizierungsketten zugrunde liegt, sondern fügt einen Veröffentlichungsmechanismus hinzu, der ein davon unabhängiges Vertrauensmodell ermöglicht, vgl. Abschnitt 2.3. 24 3.2.1 LDAP-Verzeichnisdienste Die Veröffentlichung von Schlüsselinformationen für S/MIME erfolgt in der Regel über einen LDAP-Verzeichnisdienst und wird mit einen OCSP-Validierungsdienst abgesichert. Gängige Mail-Programme, darunter Microsoft Outlook und Thunderbird, beherrschen das LDAP-Protokoll und sind in der Lage, lokal nicht bekannte Schlüssel automatisch aus einem Verzeichnisdienst abzurufen. Im Idealfall merkt der Nutzer davon nichts. Schwieriger wird die Situation, wenn ein Nutzer einen Verzeichnisdienst konfiguriert hat, zum Beispiel weil er einem Unternehmen angehört, welches über eine eigene PKI mit einem eigenen Verzeichnisdienst verfügt, dann aber nach Zertifikaten von Nutzern sucht, die (wenn überhaupt) in anderen Verzeichnissen stehen. Die Mail-Tools können zwar mehrere Verzeichnisdienste verwalten, aber zu einer Zeit ist nur einer aktiv. Noch komplizierter wird es, wenn der Sender eine Nachricht an mehrere Empfänger schicken will und diese sich in verschiedenen Infrastrukturen befinden, die jeweils einen eigenen Verzeichnisdienst betreiben. Die LDAP-Verzeichnisdienste sind zudem mit Risiken verbunden [15], die wegen des Personenbezugs der abrufbaren Daten dem Datenschutzrecht zuzuordnen sind. So können Verzeichnisdienste u. a. eine Profilbildung über das Nutzerverhalten ermöglichen: Schnell aufeinander folgende Anfragen von einer IP-Adresse können einem Client zugewiesen werden. Dadurch kann sich ein Verzeichnisdienst u. a. merken, welche Personen oder Gruppen von Menschen miteinander kommunizieren. Darüber hinaus können Verzeichnisdienste durch gezielte Massenabfragen für geschäftliche Zwecke, insbesondere für den Mail-Adresshandel, missbraucht werden. Die VVV-Lösung sollte daher technische und organisatorische Maßnahmen implementieren, um gezielten Massenabfragen zu geschäftlichen Zwecken soweit möglich entgegenzuwirken. Dies kann u. a. dadurch realisiert werden, dass nur unter Kenntnis der gesamten Mail-Adresse eine Antwort gegeben wird, d. h. auf eine Anfrage maximal ein Ergebnis zurückgegeben wird, und nach einer geringen Anzahl von Suchanfragen ein Timeout die Weitersuche verzögert. Die Erstellung von Nutzerprofilen muss dagegen nicht unbedingt mit besonderen technischen Maßnahmen unterbunden werden, da in der VVV-Lösung die Mail-Anbieter selbst die LDAP-Dienste betreiben und die Anbieter direkt über die gesendeten und empfangenen Mails das Kommunikationsverhalten der Nutzer kennen. 3.2.2 Zusammenspiel mehrerer Verzeichnisdienste Das „Lightweight Directory Access Protocol“ (LDAP) ist durch die RFCs 4510 bis 4519 definiert. Gängige Mailprogramme, darunter Microsoft Outlook und Thunderbird, beherrschen das Protokoll und sind in der Lage, lokal nicht bekannte Schlüssel automatisch aus dem Verzeichnisdienst abzurufen. Das ist eine recht komfortable 25 Funktion, solange sich die Zertifikate der gewünschten Empfänger in demselben Verzeichnis befinden und dieses Verzeichnis in der Mail-Anwendung konfiguriert wurde. Am besten wäre es, wenn die Mailprogramme mehrere Verzeichnisdienste gleichzeitig benutzen könnten. Ob und wann dies der Fall sein wird, ist ungewiss. Aus einer pragmatischen Sicht ist eine Lösung wünschenswert, die sofort einsetzbar ist. Das LDAP-Protokoll bietet für diesen Zweck zwei Mechanismen, ein dritter Mechanismus kann protokollunabhängig benutzt werden: [15] 1. Referal-Mechanismus: Dieser Mechanismus ermöglicht einem LDAP-Server, der eine Anfrage nicht beantworten will oder kann, eine Menge von „Uniform Ressource Identifiers“ (URIs) zurückzuliefern. Jeder davon verweist auf einen anderen LDAP-Server, der die Anfrage möglicherweise beantworten kann. Es ist die Aufgabe der aufrufenden Anwendung, diesen Hinweisen zu folgen und dabei darauf zu achten, dass sie sich nicht in einer Schleife (A verweist auf B und B verweist auf A) verfängt. 2. Continuation References: Diese ermöglichen einem LDAP-Server, der schon Ergebnisse gefunden hat, auf weitere LDAP-Server hinzuweisen, welche die Ergebnisse erweitern könnten. Auch dieser Hinweis geschieht durch eine Menge von URIs. 3. Chaining-Mechanismus: Dieser Mechanismus ist nicht Bestandteil des LDAP-Protokolls. Er ermöglicht LDAP-Servern, selbständig Anfragen bei anderen Servern zu stellen, wenn sie selbst die Anfrage nicht oder nur teilweise beantworten können. Für den Client ist das transparent. Der Referal-Mechanismus erlaubt den Anwendungen sehr viel Kontrolle, hat aber den Nachteil, dass die korrekte Funktionsweise davon abhängig ist, dass alle Clients, die gelieferten URIs korrekt auswerten. Continuation References kommen nicht in Frage, wenn der Verzeichnisdienst aus Datenschutzgründen so konfiguriert ist, dass er entweder exakt eine Antwort liefert oder gar keine. Der Chaining-Mechanismus hat den Nachteil, dass die aufrufende Anwendung nicht genau weiß, aus welcher Quelle eine Antwort stammt. Diese Transparenz ist jedoch zugleich ein Vorteil, denn sie führt dazu, dass sie client-unabhängig funktioniert. Für die Akzeptanz wäre es aber wichtig, dass sich alle beteiligten Server bezüglich der Qualität ihrer Daten auf einem Niveau befinden. Diese Forderung muss transitiv gelten, denn auch die angefragten Server könnten wiederum andere Server anfragen. Es ist Aufgabe der Server dafür zu sorgen, dass kein Kreisbezug entsteht, bzw. dass ein solcher entdeckt wird. [15] Für die VVV-Lösung ist eine solche Transparenz in jedem Fall nicht erwünscht, da immer die Gefahr besteht, dass dem Nutzer öffentliche Schlüssel und weitere Informationen aus anderen Quellen untergeschoben werden. Zudem ist keiner der oben genannten Mechanismen in der breiten Anwendung, so dass viele LDAP-Verzeichnisse weiterhin Insellösungen ihres jeweiligen Betreibers darstellen. 26 Für die VVV-Lösung wird ein pragmatischer Ansatz gesucht, der möglichst nicht von den Implementierungen bestehender LDAP-Server abhängig ist, sondern ein einheitliches und benutzungsfreundliches Verfahren zum Auffinden öffentlicher S/MIMESchlüssel bietet. Keiner der Mechanismen ist für die VVV-Lösung geeignet, da das VVV-Vertrauensmodell darauf basiert, dass der Mail-Anbieter immer genau einen aktuellen, authentischen Schlüssel des Nutzers vorhält. Dazu bietet sich die Nutzung des „Domain Name System“ (DNS) an, indem der Domain-Inhaber der MailAdresse, also der betreffende Mail-Anbieter, mittels DNSSEC die Adresse des für seine Domain zuständigen LDAP-Servers authentisch veröffentlicht. Authentizität und Vertraulichkeit sind für den Nutzer nur dann gegeben, wenn sichergestellt ist, dass ihm kein falscher öffentlicher Schlüssel eines gewünschten Kommunikationspartners untergeschoben werden kann. Es darf nicht geschehen, dass ein SchlüsselServer fälschlicherweise als nicht erreichbar deklariert wird oder dass dem anfragenden Nutzer fälschlicherweise erklärt wird, der gewünschte Kommunikationspartner habe keinen Schlüssel veröffentlicht. Die VVV-Lösung stellt daher die Suchanfragen nur an solche Schlüssel-Server, die durch die SRV-RRs auf dem zugehörigen DNS-Server nachweislich die Schlüssel-Server des Mail-Anbieters sind. Die oben genannten Mechanismen zum Zusammenspiel mehrerer Verzeichnisdienste sind dazu unnötig, könnten vielmehr die Sicherheit der VVV-Lösung untergraben und dürfen daher im Rahmen der VVV-Lösung nicht verwendet werden. 4 Verfahren der VVV-Lösung 4.1 Veröffentlichung von OpenPGP-Schlüsseln Zur Veröffentlichung von OpenPGP-Schlüsseln wird das im Abschnitt 3.1.4 genannte “Erweiterte HKP“ verwendet. Demgemäß wird ein öffentlicher Schlüssel von einem HKP-Server mittels einer HTTP GET-URL in Form eines HTTP-Dokuments mit eingebettetem OpenPGP-Schlüssel abgerufen. Die Veröffentlichung eines OpenPGPSchlüssels erfolgt mittels HTTP POST-URL. In beiden Fällen liegt der OpenPGPSchlüssel ASCII-kodiert vor, um eine weniger fehleranfällige Übertragung zu ermöglichen. Ein SRV-RR unter der Mail-Domain stellt Informationen darüber bereit, wo ein oder mehrere Schlüssel-Server für diese Mail-Domain zu finden ist. Aufbauend auf den Entwurf des HKP-Protokolls [13] verweist der SRV-RR-Eintrag der VVV-Lösung auf die verschlüsselten Varianten des HKP-Protokolls. Das HKP-Protokoll wird von den Open-Xchange-Komponenten und auch von GnuPG verwendet, wenn auch nicht genau so wie es für VVV benötigt wird. Folgende technische Unterschiede und Erweiterungen zum spezifizierten HKP-Protokoll sind für die VVV-Lösung relevant : 27 1. Es wird das folgende HKPS-Schema verwendet: https://sks.spodhuis. org. 2. Darin wird HKPS mit Port 443 verwendet, was für HTTPs gebräuchlich ist und mit Firewalls keine Probleme gibt. Als Service-Kürzel wird _pgpkey-https verwendet. 3. Die VVV-Lösung sichert das TLS-Zertifikat zur HTTPS-gesicherten Übertragung der SRV-RRs vom DNS-Server mittels DNSSEC/DANE ab. 4. Die VVV-Lösung sichert das TLS-Zertifikat zur HTTPS-gesicherten Übertragung der OpenPGP-Schlüssel vom HKP-Server mittels DNSSEC/DANE ab. Hinweise und offene Fragen: • Ein aktueller vom Nutzer autorisierter Schlüssel wird nicht markiert, sondern gilt allein dadurch als autorisiert, dass er auf dem offiziellen Schlüssel-Server des Mail-Anbieters verfügbar ist. Ein Mail-Anbieter muss also mit den Schreibrechten auf den Schlüssel-Server sehr restriktiv umgehen. Die Definition von Sicherheitsmaßnahmen liegt allerdings außerhalb des VVV-Scopes. • Ein Zurückrufen/ Sperren von öffentlichen OpenPGP-Schlüsseln z. B. bei Verlust oder Kompromittierung, ist nicht Teil der VVV-Lösung. Es reicht, dass der betroffene Schlüssel vom Schlüssel-Server gelöscht wird, um anzuzeigen, dass der Nutzer die Verwendung seines evtl. zuvor veröffentlichten öffentlichen Schlüssels nicht mehr befürwortet. Unabhängig von VVV kann die Sperrung eines öffentlichen Schlüssels mit den herkömmlichen Mechanismen erfolgen: Die Sperrung eines S/MIME-Schlüssels in Form eines Eintrags in eine „Certificate Revocation List“ (CRL) durch die CA, die das Zertifikat ausgestellt hatte, Die Sperrung eines OpenPGP-Schlüssels durch die Veröffentlichung eines Widerrufszertifikats durch den Nutzer auf einem anderen Schlüssel-Server. Die Ermittlung und Auswertung solcher Sperrinformationen würde den Scope von VVV weit überschreiten. • OpenPGP-Schlüssel, die mehrere User-IDs enthalten, stellen kein Problem dar, weil keine Synchronisation mit anderen Schlüssel-Servern stattfindet und dadurch auch keine Differenzen zum ehemals autorisierten Schlüssel auftreten können. • Der Open-Xchange-Server hat bereits eine HKP-Schnittstelle. Diese kann pro Mailadresse nur einen Schlüssel ermitteln. 28 4.2 Veröffentlichung von S/MIME-Schlüsseln Die VVV-Lösung setzt voraus, dass die Nutzer bereits Schlüssel und X.509Zertifikate für S/MIME besitzen oder diese außerhalb der VVV-Lösung in einer entsprechenden Anwendung generieren.15 Über die VVV-Lösung werden die X.509-Zertifikate anderen Nutzern zugänglich gemacht. Dazu muss der Nutzer die Zertifikate aus dem Windows- oder MozillaZertifikatsspeicher exportieren und seinem Mail-Anbieter gemäß der VVV-Lösung über das VVV-Client-Plugin zur Verfügung stellen, siehe Abschnitte 5.2.1 und 5.2.2. Der Mail-Anbieter veröffentlicht die Zertifikate gemäß Abschnitt 5.2.3 mittels LDAP-Protokoll [16]. Folgende Festlegungen zum LDAP-Protokoll sind für die VVV-Lösung notwendig: • Die VVV-Lösung verwendet LDAPS mit Port 636 für das Abrufen von S/MIME-Zertifikaten für S/MIME.16 • Die VVV-Lösung sichert das TLS-Zertifikat zur Kommunikation mit dem LDAP-Server mittels DNSSEC/DANE ab. • Das Auslesen aller auf dem Server veröffentlichter Zertifikats- und Nutzerdaten darf nicht möglich sein. Die Suche nach einem Schlüssel soll ausschließlich mit Angabe einer vollständigen Mail-Adresse möglich sein. Ist in einer Anfrage die Mail-Adresse nicht vollständig angegeben (Wildcard-Anfrage), so soll kein Ergebnis zurück geliefert werden, selbst dann, wenn ein zur Anfrage passender Eintrag vorliegt. Eine Suche auf Basis der namensgebenden Attribute eines Nutzers/Zertifikats wird also nicht zugelassen, so dass keine Auflösung „Name“ nach „Mail-Adresse“ erfolgt. Wildcard- bzw. Teilstring-Suchen werden nicht gestattet. Die Suche anderen Attributen darf nicht möglich sein. 15 Die Nutzer können dazu beispielsweise mit Hilfe der Volksverschlüsselungs-Software für ihre privaten Mail-Adressen kostenlos Schlüssel und Zertifikate für S/MIME beziehen. Die Initiative „Volksverschlüsselung“ des Fraunhofer SIT ist unter www.volksverschluesselung.de erreichbar. Die Volksverschlüsselungs-Software erzeugt lokal auf dem PC des Nutzers drei RSA 2048Schlüsselpaare für Verschlüsselung, Authentisierung und fortgeschrittene Signatur und lässt die öffentlichen Schlüssel online in der Zertifizierungsstelle des Fraunhofer SIT zertifizieren. Anschließend konfiguriert die Volksverschlüsselungs-Software die lokal vorhandenen Mail-Anwendungen (Microsoft Outlook und Windows Life Mail, Mozilla Thunderbird) und Browser (Internet Explorer, Mozilla Firefox, Google Chrome) und deren Zertifikatsspeicher, so dass die Schlüssel und Zertifikate anschließend in den Anwendungen verfügbar sind. In den Anwendungen wird auch der LDAP-Verzeichnisdienst der Volksverschlüsselung konfiguriert. Der LDAP-Verzeichnisdienst der Volksverschlüsselung veröffentlicht mit der Einwilligung des Nutzer das Zertifikat für Verschlüsselung und stellt auch Zertifikatssperrlisten („Certificate Revocation Lists“, CRLs) bereit. Über das „Online Certificate Status Protocol“ (OCSP) kann eine Anwendung, die bereits ein Zertifikat vorliegen hat, online in Erfahrung bringen, ob dieses Zertifikat in der Zwischenzeit gesperrt wurde. 16 Für LDAPS ist bei IANA der Standard-Port 636 registriert, siehe https://www.iana.org/ assignments/service-names-port-numbers/service-names-port-numbers.txt. 29 • Aus technischer Sicht könnten die oben genannten Restriktionen mittels LDAP-Filtern auf das mail-Attribut realisiert werden, z. B.: LDAP FILTER EQUALY ([email protected]). Alle eingehenden Filterterme werden dann auf Filter des mail-Attributs hin untersucht. Ein EQUALYAusgabefilter wird zugelassen, alle anderen Filter (z. B. Filter wie LDAP FILTER SUBSTR (mail=max@*) oder LDAP FILTER PRESENT (mail=*) werden verworfen. Es darf nur ein eindeutiges Ergebnis (maximale Größe der Ergebnismenge = 1) zurückgegeben werden. Somit werden keine Informationen über die intern durchgeführten Operationen oder den Zustand des LDAP-Servers nach außen kommuniziert. 4.3 VVV-Komponenten Der Mail-Client ist aus Nutzersicht die zentrale Komponente der MailKommunikation. Mit dem Mail-Client kann der Nutzer seine Mails abrufen, schreiben, lesen und versenden. Es existieren verschiedene Mail-Clients für verschiedene Betriebssysteme und Plattformen. Grundsätzlich können Mail-Clients und WebMailClients unterschieden werden. Beispiele für weit verbreitete Mail-Clients sind: • Mozilla Thunderbird: Plattformunabhängiger Mail-Client. • Open-Xchange: WebMail-Client des Open-Xchange-Servers. • Microsoft Outlook: Proprietärer Mail-Client für Microsoft Windows und Mac OS. • RoundCube: WebMail-Client mit PHP-Backend. • K9: Mail-Client für Android, der mittels OpenKeyChain auch PGP unterstützt. Die VVV-Lösung soll beispielhaft für den Mail-Client Thunderbird und dem WebClient von Open-Xchange geschaffen werden. Der Nutzer benötigt dazu ein MailPostfach bei seinem Mail-Anbieter. Ein Nutzer schreibt, liest und bearbeitet seine Mails entweder mit dem Mail-Client Thunderbird oder mit dem Web-Client von Open-Xchange. Er besitzt ein grundlegendes Verständnis für das Medium Mail, d. h. dass das Schreiben, Lesen, Senden sowie Empfangen von Mails normale Arbeitsgänge für ihn sind. Zum Versenden einer verschlüsselten Mail muss der Nutzer in seinem Mail-Client „Mail verschlüsseln“ (oder ähnliche Benennung) einstellen und die vollständige Mail-Adresse des gewünschten Kommunikationspartner in das Adressfeld der Mail eintragen. Die VVV-Lösung sorgt für die Beschaffung des für die Verschlüsselung notwendigen öffentlichen Schlüssels des Empfängers von einem SchlüsselServer des betreffenden Mail-Anbieters. 30 Teil der VVV-Lösung ist das frei erhältliche Programm GnuPG, mit dem OpenPGPSchlüssel erstellt und verwaltet werden. GnuPG ist die Verschlüsselungskomponente welche im Hintergrund von Mail-Clients das Ver- und Entschlüsseln mittels OpenPGP unterstützt. GnuPG ist plattformunabhängig und läuft unter Windows, Linux und MAC auf den verbreitetsten Betriebssystemen. Seit der Version 2.1.9 wird der DANE-OPENPGP-Draft von GnuPG unterstützt. Diese Version ist allerdings noch recht neu und liegt momentan den meisten Linux-Distributionen noch nicht bei. Im Folgenden werden die VVV-Komponenten kurz dokumentiert, welche im Rahmen des VVV-Projekts entwickelt werden. 4.3.1 VVV-Client-Plugin Das VVV-Client-Plugin vermittelt zwischen dem Mail-Client (Thunderbird) mit der zugehörigen Kryptokomponente GnuPG und dem VVV-Server-Plugin zum Veröffentlichen und Löschen von veröffentlichten OpenPGP- und S/MIME-Schlüsseln durch den Nutzer. Das Plugin stellt die Anfragen an die von der VVV-Lösung angesprochenen Server (DNS-Server, HKP-Server, LDAP-Server). Es übergibt die ermittelten kryptographischen Schlüssel im Fall von OpenPGP an die GnuPGKomponente und im Fall von S/MIME direkt an den Mail-Client. Das VVV-ClientPlugin bettet sich in den Mail-Client ein, besitzt aber auch eine eigene grafische Benutzeroberfläche („Graphical User Interface“, GUI), um direkte Eingaben des Nutzers und die Anzeige von Informationen (z. B. Fehlermeldungen) zu ermöglichen. Bei der Installation des VVV-Client-Plugins für OpenPGP und S/MIME werden die öffentlich verfügbaren Schlüssel der DNS-Root-Zone17 vorinstalliert, um anschließend dem Plugin in der Anwendung als Sicherheitsanker für die Verifikation der DNSSEC-Signaturen der SRV-RRs und TLSA-RRs zur Verfügung zu stehen, vgl. Anwendungsfall in Abschnitt 5.1. Tabelle 4: Realisierungsmöglichkeiten des VVV-Client-Plugins Feature Entwicklung 17 JavaSript, XML User Interface Language (XUL), Cascading Style Sheets (CSS). Zonenschlüssel der Rootzone: https://www.iana.org/dnssec/files. 31 Aspekt 18 Enigmail Das Thunderbird-Add-on Enigmail 2.0 wird auch eine Autokey-Funktion unterstützen, auf die ein VVV-Addon aufbauen könnte. Wie das geht, zeigt das pEp-Add-on („pretty Easy privacy“),18 das über Web-Service-Aufrufe mit Enigmail kommuniziert. VVVEnigmail Falls die Enigmail-Schnittstelle für VVV nicht passt, könnte für VVV ein neuer Entwicklungszweig („Fork“) erzeugt werden, um ein VVV-spezifisches Enigmail zu entwickeln. Dann müsste dieses aber kontinuierlich mit der aktuellen Enigmail-Entwicklung abgeglichen werden. Wir müssten auch damit umgehen können, dass Nutzer möglicherweise sowohl das originäre Enigmail-Plugin als auch das VVV-Client-Plugin installiert haben. Zusätzlich müsste S/MIME-Funktionalität entwickelt werden. Idealerweise würde das Plugin von OpenPGP und S/MIME abstrahieren. Anbindung GnuPG Das VVV-Client-Plugin könnte einen vom HKP-Server herunter geladenen OpenPGP-Schlüssel direkt der GnuPGKomponente übergeben, d. h. könnte GnuPG über das Command-Line Interface (CLI) ansprechen. Das bedeutet allerdings, dass das Plugin an die Änderungen der CLI laufend angepasst werden muss. DNSResolver Für die wichtigsten Browser und Betriebssysteme existieren Open Source DNSSEC- und DANE-Validatoren19 (Browser Add-ons in C, C++ und JavaScript) unter Windows, Mac OS X und Linux auf Basis der DNS-Bibliothek (in C) von ldns.20 Statdns21 bietet DNS- und DNSSECRessourcen (auch DNSSEC-Tools) an. DNSSEC-Tools22 bietet Tools und C-Bibliotheken. pretty Easy privacy, siehe https://prettyeasyprivacy.com/docs DNSSEC/TLSA Validator, siehe www.dnssec-validator.cz. 20 Stichting NLnet Labs, siehe www.nlnetlabs.nl/projects/ldns. 21 Frederic Cambus: statdns, siehe www.statdns.com/resources. 22 DNSSEC-Tools, siehe www.dnssectools.org/wiki/index.php?title=DNSSEC_Application_Development. 19 32 4.3.2 VVV-Server-Plugin Das VVV-Server-Plugin stellt die VVV-Funktionen für den WebMail-Client der OXSuite zur Verfügung. Die OX-Suite beinhaltet eine eigene serverseitige Kryptokomponente, den OX-Guard, welcher u. a. auch einen Schlüsselspeicher integriert hat. Das Plugin implementiert die im Rahmen der VVV-Lösung entwickelten Protokolle, um die Beschaffung der öffentlichen Schlüssel transparent in die Weboberfläche zu integrieren. OX-Guard veröffentlicht automatisch den öffentlichen Schlüssel des Nutzers. DNSSEC wird durch einen entsprechend eingerichteten DNS-Resolver auf Seiten des Mail-Anbieters umgesetzt. Hinweise und offene Fragen: • Die Veröffentlichung des öffentliche Schlüssels des Nutzers ist nicht optional, sondern wird in jedem Fall durchgeführt, um die Benutzungsfreundlichkeit der VVV-Lösung zu erhöhen. • Denkbar ist die zusätzliche Bereitstellung einer Upload/Publish API, um die clientseitige Schlüsselgenerierung durch den Nutzer im Web-Browser und ein Hochladen auf den Server zu unterstützen. • Mehrere User-IDs in den OpenPGP-Schlüsseln wären nur dann ein Problem, wenn der Schlüssel-Server sich mit anderen HKP-Servern synchronisiert. Wenn das unterstützt werden würde, dann müssten bei hochgeladenen Schlüsseln alle User-IDs verifiziert werden, da es sonst möglich wäre, dem Kommunikationspartner Schlüssel unterzuschieben. 4.4 Formate der Resource Records DNS-Server stellen die Zonen und zugehörige Informationen in Form von „Resource Records“ (RR) öffentlich zur Verfügung. BIND ist der bekannteste DNS-Server und De-Facto-Standard. PowerDNS ist ein flexibler DNS-Server, der mit unterschiedlichen Backends betrieben werden kann. Für die VVV-Lösung werden „Service Resource Records“ (SRV-RR) gemäß RFC6335 [17] benötigt, um innerhalb der VVVLösung die notwendigen Informationen zu den HKP-Servern und LDAP-Servern zur Verfügung zu stellen. Sind ein oder mehrere solcher RRs vorhanden, wird damit zugleich kommuniziert, dass die entsprechenden Verfahren von dem Mail-Anbieter unterstützt werden. Die veröffentlichten Schlüssel werden über das TCP-Protokoll angeboten. SRV-RRs besitzen das folgende Format: _<Service>._<Protocol>.<Name> <TTL> <Class> SRV <Priority> <Weight> <Port> <Target>, wobei die Bezeichner für den 33 Dienst und das Protokoll als Präfix einen Unterstrich („_“) haben, um Namenskollisionen im selben Namensraum zu vermeiden. „Service“ bezeichnet den symbolischen Namen des Dienstes. Für einen HKP-Server (mit OpenPGP-Zertifikaten) heißt der Service „_pgpkey-https‘“, für einen LDAP-Server (mit X.509-Zertifikaten für S/MIME) „ldaps“. Des Weiteren bezeichnet „Protocol“ den symbolischen Namen des zu verwendenden Netzwerkprotokolls und „Name“ die Domain, für die der Resource Record gilt. Die „TTL“ (Time To Live) des Resource Records gibt an, wie viele Sekunden die Namensauflösung gültig bleibt, d. h. in dieser Zeitspanne kann auf das DNS-Caching zurückgegriffen werden. Als „Class“ wird bei SRV-RRs „IN“ als Klasse (für Internet) angegeben. „Priority“ bezeichnet die Priorität, mit der der Server die Anfragen behandelt. „Weight“ gibt die Gewichtung des Eintrags an und wird u. a. für LoadBalancing genutzt, wenn am Ziel-Host-Rechner parallel mit derselben Priorität angefragt wird. „Port Number“ bezeichnet den Port, über den der Server den Dienst anbietet. „Target“ ist der voll qualifizierte Domain-Name des Ziel-Host-Rechners. Die Veröffentlichung der SRV-RRs erfolgt unter der entsprechenden Mail-Domain. Beispielsweise würden für die Mail-Domain maildomain.net die RRs die folgenden Bezeichnungen besitzen: _pgpkey-https._tcp.maildomain.net sowie _ldaps._tcp.maildomain.net. Die RRs sind folgendermaßen formatiert: Listing 1: Muster des SRV-RR für HKP \_pgpkey−https.\_tcp.<Name> <TTL> IN SRV 10 0 443 <Target> Listing 2: Beispiel eines SRV-RR für HKP \_pgpkey−https.\_tcp.maildomain.net 3600 IN SRV 0 0 443 hkp.maildomain.net Listing 3: Muster des SRV-RR für LDAP _ldaps._tcp.<Name> <TTL> IN SRV 0 0 636 <Target> Listing 4: Beispiel eines SRV-RR für LDAP _ldaps._tcp.maildomain.net 3600 IN SRV 0 0 636 ldap.maildomain.net 34 5 Anwendungsfälle der VVV-Lösung Die VVV-Lösung vereinfacht das Verschlüsseln von Mails durch den Nutzer mit OpenPGP oder S/MIME, indem ein VVV-Plugin die Schlüssel der Kommunikationspartner automatisch ermittelt und der Mail-Anwendung zur Verfügung stellt, siehe Abschnitte 5.3 und 5.4. Die Szenarien der Veröffentlichung von Schlüsseln und der clientseitig bzw. serverseitig unterstützten Mailverschlüsselung zeigen die Abbildungen 3, 4 und 5. Abbildung 3: VVV-Szenario der Veröffentlichung von Schlüsseln durch den Client Den Szenarien der Schlüsselveröffentlichung sowie der client- und der serverseitigen Verschlüsselung von Mails liegen aus Sicht des Nutzers mehrere Anwendungsfälle zugrunde, die in den folgenden Abschnitten beschrieben werden. Das Veröffentlichen von Schlüsseln, die auf Serverseite verwaltet werden und das Einstellen der SRVRR für einen HKP-Server (für OpenPGP) und einen LDAP-Server (für S/MIME) sind keine Anwendungsfälle, in denen VVV-Komponenten involviert wären, sondern erfolgen durch einen Administrator des Mail-Anbieters. Hinweise und offene Fragen: • Nach dem derzeitigen HKP-Protokoll kann zu einer Mail-Adresse nicht mehr als ein OpenPGP-Zertifikat auf dem Server hinterlegt werden. Das ist auch nicht nötig. Ein OpenPGP-Zertifikat kann neben dem öffentlichen Hauptschlüssel optional auch mehrere öffentliche Unterschlüssel (für Verschlüsselung, Signatur, Authentisierung) enthalten. 35 Abbildung 4: VVV-Szenario der clientseitigen Verschlüsselung von Mails Abbildung 5: VVV-Szenario der serverseitigen Verschlüsselung von Mails • Für S/MIME macht eigentlich nur die Veröffentlichung des Verschlüsselungszertifikats Sinn, auch wenn es daneben noch Zertifikate für Signatur und Authentisierung geben sollte. Denn beim Signieren einer Mail wird das zugehörige Signaturzertifikat automatisch an die Mail gehängt (zusätzlich auch das Verschlüsselungszertifikat), so dass der Empfänger für die Verifikation der Signatur nicht das Signaturzertifikat suchen muss. Ebenso muss im Kontext einer Client-Authentisierung nicht nach einem Authentisierungszertifikat ge- 36 sucht werden, da ein Authentisierungsprotokoll in der Regel die Übermittlung des Zertifikats durch den Client an den Server mit einschließt. Mail-ClientImplementierungen scheinen ohnehin Probleme mit mehreren veröffentlichten Zertifikaten pro Mail-Adresse zu haben, zumindest hat Mozilla Thunderbird damit ein Problem. • Für das Hochladen eines öffentlichen Schlüssels durch den Nutzer, könnte der Mail-Anbieter zusätzlich ein Web-Interface anbieten. Für ein Hochladen direkt aus dem VVV-Plugin heraus ist eine Web-API mit Anmeldung vorgesehen. Alternativ könnte man hier eine Mail-Schnittstelle wie im Draft [11] beschrieben umsetzen. • Vorausgesetzt dass sich das Unternehmen die privaten Schlüssel der Nutzer vorhalten möchte, wird ein Administrator der Mail-Domain vom Unternehmen damit beauftragt, für die Mitarbeiter sowohl die öffentlichen als auch die privaten Schlüssel zu verwalten. Das Verwalten von privaten Schlüsseln liegt allerdings nicht im Scope des VVV-Projekts. 37 5.1 UC 0: VVV-Client-Umgebung einrichten Tabelle 5: UC 0: VVV-Client-Umgebung einrichten Beschreibung Der Nutzer installiert für den Mail-Client Thunderbird das VVV-Client-Plugin, siehe UC 0.1 in Abschnitt 5.1.1. Anschließend kann der Nutzer DNSSEC-Schlüssel von einem oder mehreren Mail-Anbietern installieren, siehe UC 0.2 in Abschnitt 5.1.2. Beteiligte Komponenten Browser, Mail-Client, VVV-Client-Plugin. Enthaltene Anwendungsfälle UC 0.1, UC 0.2. Vorbedingungen Der Nutzer hat den Mail-Client Thunderbird installiert. Ein Browser ist eingerichtet und hat Zugriff auf das Internet. Ergebnis Das VVV-Client-Plugin ist installiert und bereit zur Veröffentlichung von clientseitigen Schlüsseln. Hinweise und offene Fragen: • Add-ons, beispielsweise Erweiterungen (Extensions) und Plugins, sind technisch gesehen Zip-Archive, die Quellcode-Dateien enthalten und die Dateiendung .xpi besitzen. Dabei kann es sich intern beispielsweise um Text-Dateien (.txt), JavaScript (.js), XUL (.xul), XML (.xml), aber auch um andere handeln. • Bei der Installation des VVV-Client-Plugins für OpenPGP und S/MIME werden die öffentlich verfügbaren Schlüssel der DNS-Root-Zone23 automatisch vorinstalliert, um anschließend dem Plugin in der Anwendung als Sicherheitsanker für die Verifikation der DNSSEC-Signaturen der SRV-RRs und der TLSA-RRs zur Verfügung zu stehen. Um die Sicherheit und Vertraulichkeit der abrufbaren Schlüssel weiter zu erhöhen, können die Benutzer zusätzlich den Schlüssel ihres Mail-Anbieters im VVV-Client-Plugin hinterlegen, siehe UC 0.2 in Abschnitt 5.1.2. 23 Zonenschlüssel der Rootzone: https://www.iana.org/dnssec/files . 38 • Im Falle eines Key-Rollover des Root-Schlüssels muss ein Update des Plugins erfolgen. Das Nachladen eines weiteren oder neuen DNS-Schlüssels eines Mail-Anbieters kann manuell im Plugin angestoßen werden. 39 5.1.1 UC 0.1: VVV-Client-Plugin installieren Tabelle 6: UC 0.1: VVV-Client-Plugin installieren Beschreibung Der Nutzer lädt sich mittels Browser von einem VVVDownload-Server das signierte VVV-Client-Plugin möglichst auf ein lokales Laufwerk (z. B. auf den Desktop) herunter und klickt darauf, um die Installation zu starten. Download und Installation können auch direkt mit dem Thunderbird-Add-ons-Manager erfolgen. Der WindowsInstaller oder Thunderbird überprüft die Signatur des Installationspakets und zeigt dessen Herausgeber an. Das Plugin installiert sich automatisch in den Mail-Client Thunderbird. Beteiligte Komponenten Browser, Mail-Client, VVV-Client-Plugin. Vorbedingungen Der Nutzer hat den Mail-Client Thunderbird installiert. Ein Browser ist eingerichtet und hat Zugriff auf das Internet. Ergebnis Das VVV-Client-Plugin ist installiert. Hinweise und offene Fragen: • Beim Herunterladen von Add-ons werden diese von manchen Browsern (Internet Explorer) irrtümlich entpackt. Beispielsweise können sich Browser am angegebenen „Content-Type“ orientieren, der evtl. vom Download-Server falsch (oder gar nicht) gesetzt ist. Wird die Plugin-Download-Datei z. B. als „text/html“ gekennzeichnet, könnte der Browser versuchen, die Zip-Datei intern direkt intern zu öffnen. Beispiel eines geeigneten HTTP-Headers: Content-Type: application/x-xpinstall, Content-Disposition: attachment; filename=„plugin.xpi“. Ein Entpacken durch den Browser führt jedenfalls dazu, dass die geladenen Dateien für den Thunderbird-Addons-Manager nicht mehr nutzbar sind. Ein unpassendes Entpacken kann man dadurch verhindern, dass man zum Herunterladen Rechtsklick -> Ziel speichern unter ... verwendet. Zum Download sollte Firefox verwendet werden. Download und Installation können auch direkt mit dem Thunderbird-Add-onsManager erfolgen. 40 • Wenn der Windows-Installer nicht startet, liegt es häufig daran, dass die Datei nicht auf ein lokales Laufwerk kopiert wurde, sondern auf ein Netzlaufwerk. Installationsprogramme laufen mit erhöhten Rechten in einem separaten Admin-Kontext und lassen sich daher evtl. nicht direkt von einer NetzwerkFreigabe aus starten. • Für die Installation ist die aktuelle .NET-Umgebung wichtig, d. h. das PluginInstallationspaket bringt die aktuelle Version mit. Die anfängliche SetupAnwendung muss ein natives Programm sein, das keine .NET-Umgebung erfordert. Das Setup prüft, ob die vorliegende .NET-Umgebung aktuell ist, ansonsten wird sie neu installiert. • Damit der Herausgeber des VVV-Client-Plugin vom Installer bzw. von Thunderbird verifiziert werden kann, so dass der Nutzer bei der Installation nicht mit einer irritierenden Sicherheitswarnung konfrontiert wird, sollte das Installationspaket mit einen Schlüssel signiert sein („Code Signing“), der beispielsweise von einer CA wie GlobalSign24 zertifiziert wurde. Das Root-Zertifikat einer solchen CA ist im Zertifikatsspeicher von Microsoft bzw. von Mozilla (Firefox, Thunderbird) vorinstalliert. 24 Code Signing Certificates von GlobalSign, siehe www.globalsign.com/en/code-signingcertificate . Andere Anbieter, siehe https://globalprotec.com/de/anbieter . 41 5.1.2 UC 0.2: DNSSEC-Schlüssel eines Mail-Anbieters importieren Tabelle 7: UC 0.2: DNSSEC-Schlüssel eines Mail-Anbieters importieren Beschreibung Der Nutzer lädt sich mittels VVV-Client-Plugin den öffentlichen DNSSEC-Schlüssel eines beliebigen MailAnbieters herunter. Beteiligte Komponenten VVV-Client-Plugin. Vorbedingungen Der Nutzer hat den gewünschten DNSSEC-Schlüssel eines Mail-Anbieters installiert. Ergebnis Das VVV-Client-Plugin ist bereit zur Veröffentlichung von clientseitigen Schlüsseln. Hinweise und offene Fragen: • Um die Sicherheit und Vertraulichkeit der abrufbaren Schlüssel weiter zu erhöhen, können die Benutzer zusätzlich zu den vorinstallierten DNS-RootSchlüsseln den Schlüssel ihres Mail-Anbieters im VVV-Client-Plugin hinterlegen: (1) Der Mail-Anbieter stellt den Schlüssel der betreffenden DNS-Zone mit einer entsprechenden Anleitung auf einer Website zur Verfügung. (2) Der Nutzer trägt die Adresse dieses Mail-Anbieter-Schlüssels in das VVVClient-Plugin ein. (3) Das VVV-Client-Plugin importiert den Schlüssel, ermittelt die Schlüssel der höheren Domains bis hin zum DNS-Root-Schlüssel. (4) Das VVV-Client-Plugin prüft die Signaturen der importierten Schlüssel und überprüft, dass der ermittelte DNS-Root-Schlüssel mit einem vorinstallierten DNS-Root-Schlüssel übereinstimmt. Das VVV-Client-Plugin weist ggf. auf Unstimmigkeiten hin. Im Negativfall muss der Nutzer darüber aufgeklärt werden, dass es Sicherheitsbedenken gibt. Das Plugin sollte zuvor seine eigene Aktualität überprüfen, muss evtl. aktualisiert werden, um die aktuellen DNS-Root-Schlüssel zu kennen. Dazu soll das Klicken auf ein Update-Button genügen. Das Plugin sollte auch über eine Liste veralteter DNS-Root-Schlüssel verfügen für die Fälle, in denen Mail-Anbieter 42 ihre DNSSEC-Schlüssel nicht schnell genug aktualisieren. In solchen Fällen würde ein Hinweis genügen, ein Abbruch ist nicht notwendig. • Die DNSSEC-Schlüssel in der Kette zwischen dem Schlüssel des MailAnbieters und dem Root-Schlüssel können sich ändern, sollten daher regelmäßig geprüft und ggf. erneut abgerufen werden. Daher werden diese Schlüssel besser nicht im Plugin gespeichert (gecached, importiert). Falls es irgendwo (z. B. im Zertifikatsspeicher des Betriebssystems) die Möglichkeit gibt, die Schlüssel der gesamten Kette einzusehen bzw. zu verwalten, sollten dort nur Schlüssel aufgenommen sein, die der Nutzer manuell und bewusst importiert hat (abgesehen von den DNS-Root-Schlüsseln im VVV-Client-Plugin). • Für die nachfolgenden Anwendungsfälle ist es wichtig, dass lokal im MailClient ein E-Mail-Account eingerichtet ist, zu dem ein Schlüsselpaar für die Mail-Verschlüsselung vorliegt, dessen öffentlicher Teil auf einem SchlüsselServer des Mail-Anbieters veröffentlicht werden kann. Für die Nutzung von OpenPGP-Schlüsseln müssen lokal die Thunderbird-Erweiterung Enigmail und die GnuPG-Komponente installiert sein. Schön wäre es, wenn das Plugin das schon bei der Installation überprüfen könnte. Dabei muss der Nutzer allerdings bereits wissen, ob er OpenPGP nutzen möchte. Das Plugin könnte ihn bei der Entscheidung unterstützen. Aber was wäre, wenn später ein weiteres Verfahren genutzt werden soll? Um das die VVV-Lösung bedienbar und nachvollziehbar zu machen, sollte das Plugin prüfen, ob Enigmail und GnuPG installiert sind, wenn OpenPGP einrichtet und konfiguriert wird. 43 5.2 UC 1: Clientseitigen Schlüssel auf Schlüssel-Server veröffentlichen Tabelle 8: UC 1: Clientseitigen Schlüssel auf Schlüssel-Server veröffentlichen Beschreibung Der Nutzer lässt zu einer bestimmten Mail-Adresse einen öffentlichen Schlüssel (OpenPGP oder S/MIME) auf einem Schlüssel-Server veröffentlichen. Beteiligte Komponenten Mail-Client, GnuPG, VVV-Client-Plugin, VVV-ServerPlugin, HKP-Server, LDAP-Server. Enthaltene Anwendungsfälle UC 1.1, UC 1.2., UC 1.3 Vorbedingungen Nutzer besitzt ein Schlüsselpaar für OpenPGP oder S/MIME. Im Falle von S/MIME muss der öffentliche Schlüssel als X.509-Zertifikat vorliegen. Ergebnis Der Schlüssel ist auf dem HKP-Server bzw. LDAP-Server des Mail-Anbieters veröffentlicht. Hinweise und offene Fragen: • Der Nutzer muss zuvor ein OpenPGP-Schlüsselpaar bzw. ein Schlüsselpaar für S/MIME generiert und zertifiziert haben. Neben einem Mail-Account benötigt der Nutzer dazu für OpenPGP spezielle Komponenten, muss für OpenPGP oder S/MIME u. a. einen ausreichend sicheren Algorithmus und eine entsprechende Schlüssellänge ausgewählt haben. Im Falle von S/MIME kann das Schlüsselpaar durch den Mail-Client selbst erzeugt werden. Der öffentliche Schlüssel kann selbst signiert oder von einer externen Zertifizierungsstelle signiert sein. Der private Schlüssel und das Zertifikat wurden im Schlüsselspeicher des MailClients bzw. der OpenPGP-Komponente (GnuPG) abgelegt. • Der Nutzer muss den Besitz des privaten Schlüssels und den Zugriff auf das Mail-Postfach gegenüber dem Mail-Anbieter nachweisen und lädt über das VVV-Client-Plugin den öffentlichen Schlüssel ggf. mit zugehörigem Zertifikat auf den Mail-Server, siehe UC 1.2 in Abschnitt 5.2.2. Der Mail-Anbieter veröffentlicht den Schlüssel auf dem HKP-Server bzw. LDAP-Server, siehe UC 1.3 in Abschnitt 5.2.3. 44 • Die Schnittstelle einschließlich Authentisierung des Nutzers zum Hochladen und Löschen von OpenPGP- und S/MIME-Schlüsseln sollte näher spezifiziert werden. Weil es viele unterschiedliche Anmeldeverfahren gibt, dürfte aber kein bestimmtes Verfahren vorgeschrieben werden. Im Folgenden werden nur Empfehlungen für die technische Implementierung dieser Anmeldeverfahren gegeben. Das Plugin führt als „Assistent“ den Nutzer durch die notwendigen Schritte. 45 5.2.1 UC 1.1: Clientseitigen Schlüssel auf dem Client registrieren Tabelle 9: UC 1.1: Clientseitigen Schlüssel auf dem Client registrieren Beschreibung Der Nutzer ruft das VVV-Client-Plugin auf, um einen existierenden öffentlichen Schlüssel auszuwählen. Im Fall von OpenPGP wird über den Mail-Client der Schlüssel mit zugehöriger User-ID der GnuPG-Komponente entnommen. Im Fall von S/MIME liest das VVV-Client-Plugin den Schlüssel aus dem Zertifikatsverzeichnis des MailClients. Beteiligte Komponenten VVV-Client-Plugin, Mail-Client, GnuPG. Vorbedingungen Nutzer besitzt ein Schlüsselpaar für OpenPGP oder S/MIME und im Falle von S/MIME ein zugehöriges Zertifikat. Ergebnis Das VVV-Client-Plugin hat den öffentlichen Schlüssel, um ihn im nächsten Schritt (UC 1.2 im Abschnitt 5.2.2) auf den Mail-Server zu laden. Hinweise und offene Fragen: • Das VVV-Client-Plugin greift für den OpenPGP-Schlüssel direkt (evtl. mittels der Funktionen von Enigmail) auf den Keystore von GnuPG zu. Die User-ID soll dabei durch das VVV-Client-Plugin sowohl vor dem Hochladen als auch vor dem Abrufen (siehe UC 2.3 in Abschnitt 5.3.3 auf Korrektheit geprüft werden, d. h. die Signaturen müssen gültig sein und die User-ID muss genau eine Mail-Adresse enthalten, die mit der Mail-Adresse, für die der Nutzer den Zugriff gegenüber dem Mail-Anbieter nachgewiesen hat, übereinstimmt. Die User-ID zusätzlich auf Serverseite zu prüfen, bringt keinen wirklichen Vorteil, da man ohnehin von einem gutwilligen Mail-Anbieter ausgehen muss. Beim Abrufen eines Schlüssels wird erneut geprüft, damit auf Seiten des Nutzers eine Manipulation des Schlüssels auf Serverseite ausgeschlossen werden kann. Die Mechanismen des Web-of-Trust (vgl. die 3. Ebene des Vertrauensmodells in Abschnitt 2.3) werden davon nicht berührt, sind aber nicht mehr entscheidend, da der Mail-Anbieter die entscheidende Rolle im VVV-Vertrauensmodell innehat. 46 • Das VVV-Client-Plugin greift für den S/MIME-Schlüssel direkt auf den Keystore von Thunderbird zu. • Die Qualität des Schlüssels wird durch das Plugin überprüft: Verfahren (OpenPGP oder S/MIME), Algorithmus (RSA, DSA, ElGamal, bestimmte ECCKurven), Schlüssellänge, Schlüsselaufbau (verschiedene User-IDs bei OpenPGP), ... • Das Plugin führt als „Assistent“ den Nutzer durch die folgenden Schritte: 1. Der Nutzer startet das Plugin und wählt „Verschlüsselung einrichten“. 2. Das Plugin sucht nach Mail-Accounts, die im Mail-Client eingerichtet sind, und zeigt sie dem Nutzer zur Auswahl. 3. Der Nutzer wählt eine bestimmte Mail-Adresse aus. 4. Das Plugin ermittelt anhand verfügbarer SRV-RRs der Mail-Domain, ob der Mail-Anbieter des Mail-Accounts Schlüssel auf einem SchlüsselServer veröffentlicht. 5. Das Plugin sucht lokal auf dem PC des Nutzers im Zertifikatsspeicher des Mail-Clients nach öffentlichen Schlüsseln des Nutzers und zeigt sie dem Nutzer an. 6. Der Nutzer wählt einen Schlüssel aus. Wenn kein Schlüssel vorhanden ist, wird das Programm verlassen. Das Plugin soll an dieser Stelle auf die Volksverschlüsselung verweisen, mit deren Hilfe sich der Nutzer Schlüssel generieren und zertifizieren lassen kann. 47 5.2.2 UC 1.2: Clientseitigen Schlüssel auf dem Server registrieren Tabelle 10: UC 1.2: Clientseitigen Schlüssel auf dem Server registrieren Beschreibung Das VVV-Client-Plugin meldet sich mit seinem Mailkonto an und sendet den in UC 1.1 (siehe Abschnitt 5.2.1) ausgewählten Schlüssel an den Mail-Server. Der Mail-Server sendet einen mit dem öffentlichen Schlüssel verschlüsselten Verifikationscode an das VVV-Client-Plugin. Das VVV-Plugin übergibt den verschlüsselten Verifikationscode an den Mail-Client bzw. die GnuPG-Komponte zur Entschlüsselung und sendet anschließend den entschlüsselten Verifikationscode an den Mail-Server zurück. Ist die Verifikation erfolgreich durchgeführt, dann wird der Schlüssel auf dem entsprechenden Server veröffentlicht, siehe UC 1.3 in Abschnitt 5.2.3. Beteiligte Komponenten VVV-Client-Plugin, Mail-Client, Mail-Server. Vorbedingungen Das VVV-Client-Plugin hat den hochzuladenden Schlüssel erhalten, siehe UC 1.1 in Abschnitt 5.2.1. Ergebnis Der Mail-Server hat den öffentlichen Schlüssel und den korrekten Verifikationscode vom VVV-Client-Plugin erhalten. Hinweise und offene Fragen: • Der Nutzer authentisiert sich gegenüber dem Mail-Server über das VVVClient-Plugin mittels HTTPS-Anmeldung. Die Authentisierungsdaten sind wie gewohnt die Mailadresse (Benutzerkonto) und ein Passwort oder OTP-Token. • Ein Nachteil dieses Ablaufs ist, dass der Zugriff auf das Mail-Postfach nicht direkt durch das Versenden einer Mail an die gegebene Mail-Adresse verifiziert wird, sondern implizit nur durch die HTTPS-Anmeldung beim Mail-Anbieter. • Nach einer gewissen Zeit sollte ein begonnener Schlüssel-Upload verworfen werden, falls der Upload nicht bis zum Ende durchgeführt und verifiziert werden kann. Vorschlag: Nach 10 min. werden unvollendete Vorgänge abgebrochen. 48 • Das Plugin führt als „Assistent“ den Nutzer durch die folgenden Schritte: 1. Das Plugin vermittelt die Authentisierung gegenüber dem Mail-Server („HTTP-Session öffnen“). Der Nutzer gibt das Zugangspasswort ein. 2. Das Plugin lädt anschließend den Schlüssel auf den Mail-Server. Der Mail-Server sendet einen verschlüsselten Verifikationscode an das Plugin zurück. 3. Das Plugin übergibt den verschlüsselten Verifikationscode an den MailClient bzw. an GnuPG zur Entschlüsselung und informiert den Nutzer darüber, dass im Hintergrund der private Schlüssel verwendet werden muss und daher eine Passwort-Eingabe nötig wird. 4. Der Nutzer wird durch Client bzw. GnuPG zur Passworteingabe für den privaten Schlüssel aufgefordert, falls der Schlüssel passwortgeschützt ist und noch keine Eingabe des Passworts erfolgt ist. 5. Nach erfolgreicher Passwort-Eingabe entschlüsselt der Mail-Client bzw. die GnuPG-Komponente den Verifikationscode und übergibt ihn unverschlüsselt dem Plugin. 6. Das Plugin sendet den Verifikationcode transportverschlüsselt an den Mail-Server. 49 5.2.3 UC 1.3: Schlüssel auf Schlüssel-Server veröffentlichen Tabelle 11: UC 1.3: Schlüssel auf Schlüssel-Server veröffentlichen Beschreibung Der Schlüssel wird durch den Mail-Server auf dem HKPServer bzw. LDAP-Server veröffentlicht. Beteiligte Komponenten Mail-Server, VVV-Server-Plugin, HKP-Server, LDAPServer. Vorbedingungen Der VVV-Server-Plugin hat den öffentlichen Schlüssel und den korrekten Verifikationscode vom VVV-Client-Plugin erhalten. Ergebnis Der öffentliche Schlüssel des Nutzers ist auf dem HKPServer bzw. LDAP-Server veröffentlicht. Hinweise und offene Fragen: • Im Falle eines serverseitigen Schlüssels ist aus Nutzersicht die Veröffentlichung des Schlüssels kein eigener Schritt sondern wird automatisch im Hintergrund durchgeführt. • Der Schlüssel wird auf dem Schlüssel-Server veröffentlicht. Falls bereits ein Schlüssel gleicher Art vorliegt, wird der Nutzer darüber informiert. Mit Zustimmung des Nutzers wird der bisherige Schlüssel gelöscht und durch den neuen Schlüssel ersetzt. • Eine Rückmeldung an den Nutzer, dass der Schlüssel tatsächlich hochgeladen wurde, ist sinnvoll. Wenn es schnell geht, könnte man eine solche Bestätigung über das Plugin anzeigen. In jedem Fall, insbesondere wenn es mehr Zeit benötigt als man dem Nutzer gerade zumuten kann, sendet der Mail-Server eine Bestätigungsmail an den Nutzer. 50 5.3 UC 2: Clientseitig verschlüsselte Mail senden UC 2: Clientseitig verschlüsselte Mail senden Beschreibung Der Nutzer verfasst in seinem Mail-Client eine Mail, hat „Mail verschlüsseln“ eingestellt und trägt eine MailAdresse in das Empfängerfeld ein. Das VVV-ClientPlugin sucht mit der eingetragenen Mail-Adresse nach dem entsprechenden Schlüssel des Empfängers. Dazu fragt das Plugin das DNS nach der DNS-Server-Adresse der Mail-Domain des Empfängers. Mit der empfangenen Information ruft das Plugin vom DNS-Server des Mail-Anbieters des Empfängers die entsprechenden SRV-RRs der Schlüssel-Server ab. Das Plugin überprüft die DNSSEC-Signaturen der SRV-RRs und fragt die Schlüssel-Server nach den Schlüsseln des Empfängers. Das VVV-Client-Plugin übergibt schließlich mindestens einen Schlüssel des Empfängers an den Mail-Client, der schließlich die Mail verschlüsselt und absendet. Beteiligte Komponenten VVV-Client-Plugin, DNS-Server, HKP-Server, LDAPServer. Enthaltene Anwendungsfälle UC 2.1, UC 2.2, UC 2.3. Vorbedingungen – Ergebnis Mindestens ein Schlüssel des Empfängers wurde ermittelt, Mail konnte verschlüsselt versendet werden. Hinweise und offene Fragen: • Das VVV-Client-Plugin sieht zunächst nach, welches Verschlüsselungsverfahren (OpenPGP oder S/MIME) der Nutzer für die zu sendende Mail ausgewählt hat. Im Mail-Client Thunderbird kann man beide Verfahren parallel konfiguriert haben und nutzen, allerdings nicht innerhalb einer einzelnen Mail. S/MIME wird von Thunderbird direkt unterstützt, OpenPGP durch das zusätzlich installierte Enigmail-Plugin. • Das VVV-Client-Plugin soll Rückmeldung an den Nutzer geben, wenn zu dem gewählte Verschlüsselungsverfahren kein Schlüssel gefunden wird, evtl. kurze Empfehlung, je nach gefundenen Schlüsseln das andere Verfahren einzustellen. Ablauf: 1) Für welche Verfahren gibt es eigene Schlüssel? 2) Unterstützt der 51 Empfänger eines oder mehrere dieser Verfahren (indem entsprechende Schlüssel abrufbar sind)? Falls mehrere Kombinationen existieren, wird das voreingestellte Verfahren verwendet. Wenn die Schlüssel / Verfahren nicht zusammen passen, werden Hinweise gegeben. • Das VVV-Client-Plugin soll in jedem Fall aktiv werden, auch dann, wenn der Mail-Client vor dem Absenden lokal einen Schlüssel finden konnte. Es könnte z. B. sein, dass der lokale Schlüssel nicht mehr aktuell bzw. auf dem Server bereits gelöscht ist. Das Plugin wird bereits vor dem Klicken auf den SendeButton aktiv und könnte dem Nutzer daher rechtzeitig eine Rückmeldung geben, z. B. die Adressen in der Adresszeile entsprechend einfärben (beispielsweise: rot = es wurde kein Schlüssel gefunden; gelb = es wurde lokal ein Schlüssel gefunden, der allerdings nicht auf dem Schlüssel-Server vorhanden ist; grün = Schlüssel wurde auf einem VVV-konformen Schlüssel-Server gefunden). • Im Fall von mehreren Empfängern, die teils nur S/MIME-, teils nur OpenPGPSchlüssel besitzen, soll der Versand abgebrochen und der Nutzer darüber informiert werden. 52 5.3.1 UC 2.1: Information zu den Schlüssel-Servern finden Tabelle 13: UC 2.1: Information zu den Schlüssel-Servern finden Beschreibung Der Mail-Client ruft mit Angabe einer Mail-Adresse und des eingestellten Verschlüsselungsverfahrens (OpenPGP oder S/MIME) das VVV-Client-Plugin bzw. VVVServer-Plugin auf, um einen öffentlichen Schlüssel des Empfängers zu bekommen. Das VVV-Client-Plugin bzw. VVV-Server-Plugin fragt das DNS nach dem DNS-Server des Mail-Anbieters der eingegebenen Mail-Adresse zu den SRV-RRs und den DNSSEC-spezifischen RRs der Schlüssel-Server. Beteiligte Komponenten Mail-Client, VVV-Client-Plugin bzw. VVV-Server-Plugin, DNS-Server. Vorbedingungen Der Nutzer erstellt im Mail-Client eine neue Mail, hat „Nachricht verschlüsseln“ eingestellt und im EmpfängerAdressfeld eine Mail-Adresse eingetragen. Ergebnis Das VVV-Client-Plugin bzw. VVV-Server-Plugin besitzt die SRV-RRs zu den Schlüssel-Servern des Mail-Anbieters der eingegebenen Mail-Adresse. Hinweise und offene Fragen: • Auch wenn der Mail-Client lokal einen öffentlichen Schlüssel des Empfängers hat, muss das VVV-Plugin dennoch auf dem Schlüssel-Server nachsehen, da an keinem Schlüssel ersichtlich ist, ob er aktuell und „VVV-autorisiert“ ist. Das Plugin führt weder eine lokale Schlüsselsuche durch noch speichert es einen gefundenen Schlüssel in einem lokalen Schlüsselspeicher. • Machen die Anwendungen Probleme, wenn ihnen ein abgelaufener Schlüssel vom Server angeboten wird? Besser ist es, einen abgelaufenen Schlüssel anzubieten, als gar nicht verschlüsseln zu können. Der Nutzer soll darüber informiert werden. • Wie wird der DNS-Server des Mail-Anbieters gefunden? Im DNS werden die gesuchten DNS-Server direkt mit beispielsweise dig ns mailbox.org plus dnssec ermittelt. 53 • Soll die Anfrage in jedem Fall alle verfügbaren SRV-RRs zurückliefern? Bei Angabe des gewünschten Verfahrens würde auch eine Server-Adresse (HKPServer oder LDAP-Server) reichen. Allerdings könnte die Frage, welches Verfahren der Empfänger nutzt bzw. eine Gruppe von Empfängern bedienen kann, zu diesem Zeitpunkt noch offen sein, da anschließend vom Nutzer noch weitere Empfänger-Adressen eingetragen werden könnten. • Das Konzept sollte auch vorsehen, dass es mehrere Schlüssel-Server und LDAP-Server geben kann, um großen Mail-Anbietern die Skalierung zu ermöglichen. Im Demonstrator muss dies aber nicht unbedingt realisiert werden. Es geht dabei vor allem um die Lastverteilung im Netzwerk, denn alle Server des gleichen Dienstes müssen denselben Datenbestand haben. Das Plugin soll automatisch die unterstützten Verfahren für den Schlüsseltausch ermitteln, um dem Benutzer das passende Verfahren für eine Auswahl anzubieten und ihn bei der Entscheidung zu unterstützen. Technisch wird dem VVV-Client-Plugin bzw. VVV-Server-Plugin das Verschlüsselungsverfahren über das Vorhandensein eines entsprechenden SRV-RR signalisiert. Die SRV-RR sind verpflichtend25 und mit deren Hilfe signalisiert der Mail-Anbieter, für welche Verfahren er einen SchlüsselServer unter welcher URL bzw. IP zur Verfügung stellt. Die Funktion und das Format sind bei dem jeweiligen Verschlüsselungsverfahren definiert. Die DANE-Spezifikation RFC6698 [3] geht im TLSA-Protokoll davon aus, dass eine TLS-Verbindung zum Server aufgebaut wird und dass der Server beim TLSHandshake sein TLS-Zertifikat übergibt.26 25 26 In den zugrunde liegenden Standards sind diese i.d.R. optional. Siehe https://tools.ietf.org/html/rfc6698#section-2.1 . 54 5.3.2 UC 2.2: DNSSEC-Signaturen prüfen Tabelle 14: UC 2.2: DNSSEC-Signaturen prüfen Beschreibung Das VVV-Client-Plugin bzw. VVV-Server-Plugin validiert die DNSSEC-Signaturen der SRV-RRs für die MailDomain eines Mail-Anbieters und extrahiert nach erfolgreicher Prüfung die Informationen über die Adressen, die Ports und ggf. die Verfahrensversionen der SchlüsselServer. Beteiligte Komponenten VVV-Client-Plugin bzw. VVV-Server-Plugin, DNS-Server in der DNS-Hierarchie. Vorbedingungen Das VVV-Client-Plugin bzw. VVV-Server-Plugin besitzt SRV-RRs (siehe UC 2.1 in Abschnitt 5.3.1), deren Authentizität überprüft werden soll. Ergebnis Das VVV-Client-Plugin bzw. VVV-Server-Plugin hat die Authentizität mindestens einer Schlüssel-Server-Adresse der Mail-Domain geprüft, um im nächsten Schritt dort nach einem Schlüssel zu fragen (siehe UC 2.3 in Abschnitt 5.3.3). Hinweise und offene Fragen: • Die Plugins haben als Vertrauensanker die entsprechenden DNS-RootSchlüssel des eigenen Mail-Anbieters vorinstalliert. Die DNS-Zonen einer Domain sind für die Prüfung der Vertrauenskette über „Delegation Signer Resource Records“ (DS-RRs) verbunden. Die DS-RRs enthalten jeweils den Namen einer untergeordneten Zone und den Hash des öffentlichen Schlüssels (des „Key Signing Keys“) zur Prüfung von „Resource Record Signature Resource Records“ (RRSIG-RRs). Jede Zone kann mehrere DS-RRs für untergeordnete Zonen enthalten und hat jeden DS-RR mit ihrem privaten Zonenschlüssel signiert. • Ein RRSIG-RR enthält die DNSSEC-Signatur über einen Satz von ResourceRecords, z. B. über mehrere SRV-RRs mit Informationen zu den SchlüsselServern der Mail-Domain. Jede DNSSEC-Signatur wird mit dem privaten Zonenschlüssel erstellt. Die Plugins validieren die DNSSEC-Signaturen jeweils mit dem öffentlichen Zonenschlüssel aus dem DNSKEY-RR und überprüfen 55 mittels des übergeordneten DS-RR, dass der öffentliche Zonenschlüssel authentisch und Teil der Vertrauenskette ist. • Sollen die Plugins vollständig DNSSEC-konforme rekursive DNS-Resolver sein, so müssen sie die zur Validierung der DNSSEC-Signaturen notwendigen Resource-Records (DS-RRs, DNSKEY-RRs, RRSIG-RRs, ...) der Vertrauenskette selbst ermitteln und auswerten können und über einen Cache verfügen, der die Ergebnisse speichern kann, siehe RFC4034 [18] und RFC4035 [19]. Die Plugins müssten die DNSSEC-Vertrauenskette von unten nach oben bis zu einem Vertrauensanker durchlaufen. Evtl. bedeutet dies alles einen nicht vertretbaren Implementierungsaufwand und mangelnde Performance, insbesondere wenn die VVV-Lösung später auch von kleineren und mobilen Geräten übernommen werden soll. 56 5.3.3 UC 2.3: Schlüssel finden Tabelle 15: UC 2.3: Schlüssel finden Beschreibung Das VVV-Client-Plugin bzw. VVV-Server-Plugin fragt einen Schlüssel-Server zu einer bestimmten Mail-Adresse nach Schlüsseln und übergibt ggf. die abgerufenen Schlüssel an den Mail-Client bzw. den OX-Mail-Server. Beteiligte Komponenten VVV-Client-Plugin bzw. VVV-Server-Plugin, HKP-Server bzw. LDAP-Server, Mail-Client bzw. OX-Mail-Server. Vorbedingungen Das VVV-Client-Plugin bzw. VVV-Server-Plugin kennt die Adresse mindestens eines HKP-Servers oder LDAP-Servers der Mail-Domain (siehe UC 2.1 in Abschnitt 5.3.1) sowie die Mail-Adresse, zu der ein Schlüssel beschafft werden soll. Ergebnis Das VVV-Client-Plugin bzw. VVV-Server-Plugin hat die Schlüssel des Empfängers vom Schlüssel-Server abgerufen und der betreffenden Mail-Anwendung übergeben. Hinweise und offene Fragen: • Mit einer Anfrage sollen mehrere Schlüssel-Server gefragt werden, d. h. es können mehrere Schlüssel übermittelt werden, damit die Anwendung eine Auswahl treffen kann. Dies ist besonders bei Mail an mehrere Empfänger wichtig, um einen „gemeinsamen Nenner“ der Verschlüsselung ermitteln zu können. • Das VVV-Client-Plugin fügt die abgerufenen Schlüssel NICHT in lokale Schlüsselspeicher ein, sondern überlässt die Entscheidung darüber dem MailClient bzw. OX-Mail-Server. Kein Schlüssel soll automatisch importiert werden (siehe Vertrauensmodell im Abschnitt 2.2), da das VVV-Konzept nicht vorsieht, die Schlüssel im Zertifikat als „VVV-autorisiert“ zu markieren, Eine Markierung z. B. in Form einer speziellen Zertifikatserweiterung würde von keiner unabhängigen Anwendung interpretiert werden. Im Mail-Client Thunderbird werden allerdings empfangene X.509-Zertifikate für S/MIME egal welcher Herkunft automatisch in den lokalen Schlüsselspeicher importiert. • Idealerweise färbt das VVV-Client-Plugin die Empfängeradresse, zu der ein Schlüssel gefunden und übergeben wurde, in der Benutzeroberfläche des MailClients grün bzw. gelb, falls der Mail-Client lokal einen Schlüssel gefunden 57 hat bzw. rot, falls kein Schlüssel gefunden wurde. Allerdings erfordert eine Überprüfung, ob der Mail-Client lokal einen Schlüssel findet, weitere Zugriffe evtl. nicht triviale Zugriffe auf den Mail-Client. 58 5.4 UC 3: Serverseitig verschlüsselte Mail senden Tabelle 16: UC 3: Serverseitig verschlüsselte Mail senden Beschreibung Der Nutzer verfasst in seinem Browser mittels OX-MailClient eine Mail, hat dazu „Mail verschlüsseln“ eingestellt und trägt eine Empfängeradresse ein. Der OX-Guard prüft, ob zu dem Empfänger ein gültiger öffentlicher Schlüssel im Keystore des OX-Guards vorliegt. Ist dies nicht der Fall, prüft der OX-Guard, ob der Mail-Anbieter des Kommunikationspartners ein kompatibles Verfahren zur Schlüsselverteilung unterstützt. Wird ein Verfahren erkannt, dann lädt das VVV-Server-Plugin des OX-Guards den öffentlichen Schlüssel herunter. Dabei gilt wie bei der client-seitigen Verschlüsselung von Mail (siehe UC 2 in Abschnitt 5.3) jeder Schlüssel, der VVV-konform auf einem Schlüssel-Server des Mail-Anbieters veröffentlicht ist, als aktuell und vom betreffenden Nutzer (Schlüsselbesitzer) autorisiert. Falls das VVV-Server-Plugin des OXMail-Servers keinen Schlüssel des Empfängers ermitteln kann, wird der Mailversand abgebrochen und der Benutzter informiert, damit dieser entscheiden kann, wie weiter verfahren werden soll. Wurden für alle Kommunikationspartner Schlüssel ermittelt, wird die Mail serverseitig durch den OX-Guard verschlüsselt. Beteiligte Komponenten OX-Guard, VVV-Server-Plugin, DNS-Server, HKP-Server Enthaltene Anwendungsfälle UC 2.1, UC 2.2, UC 2.3. Vorbedingungen Der Benutzer ist an der OX-Suite angemeldet und hat eine neue Mail erstellt, die verschlüsselt versendet werden soll. Ergebnis Die Schlüssel der Empfänger wurden ermittelt, die Mail konnte verschlüsselt versendet werden. Falls nicht alle notwendigen Schlüssel ermittelt werden konnten, wurde das Versenden abgebrochen, der Nutzer informiert und um Konfliktlösung gebeten. 59 Hinweise und offene Fragen: • Das Generieren eines serverseitigen Schlüsselpaars des Nutzers auf dem MailServer und das Veröffentlichen bzw. Löschen des öffentlichen Schlüssels auf den Schlüssel-Servern liegen nicht im Scope des VVV-Projekts. Die enthaltenen Anwendungsfälle UC 2.1, UC 2.2 und UC 2.3 zum Abrufen von veröffentlichten Schlüsseln sind aber Teil der VVV-Lösung. • Für die Generierung des Schlüsselpaars meldet sich der Nutzer an der OX-Suite an und öffnet die Schlüsselverwaltung des OX-Guard, um ein neues Schlüsselpaar zu erzeugen. Der Benutzer wird bei der Erzeugung von dem OX-Guard durch einen Assistenten unterstützt, in dem z. B. sinnvolle und dem Stand der Technik angepasste Voreinstellungen dem Benutzer empfohlen werden. Die Onlinehilfe des OX-Guards erläutert diesen Vorgang und die Bedeutung der einzelnen Parameter. Weiterführende Hinweise sowie Hintergründe werden in den HowTo’s des Mail-Anbieters näher erläutert. Der OX-Guard veröffentlicht schließlich den öffentlichen Schlüssel auf dem HKP- bzw. LDAP-Server. Der Schlüssel steht anschließend der VVV-Lösung zur Verfügung. • Der OX-Guard ist bei allen serverseitigen Vorgängen involviert, da dort die Schlüssel bekannt sind und entschieden werden kann, ob Schlüssel bereit gestellt werden können. • Es gibt zudem ein konfiguriertes Default-Verfahren, nach dem der OX-Guard versucht, die öffentlichen Schlüssel der Kommunikationspartner zu laden. Ist dies nicht möglich, wird das Versenden abgebrochen und dem Benutzer das Ergebnis angezeigt (z. B.: „Schlüssel für Kontakt 1, aber kein Schlüssel für Kontakt 2 vorhanden.“). Dann wird nach einem anderen Verfahren gefragt und die Schlüsselbeschaffung neu gestartet. Die Rolle des VVV-Server-Plugins in diesem Verfahren muss noch definiert werden. • Der OX-Guard hat eine OpenPGP-Implementierung integriert (Java-KryptoBibliothek „Bouncy Castle“) und verwendet damit die Schlüssel selbstständig ohne GnuPG. 60 5.5 UC 4: Veröffentlichte Schlüssel anschauen Tabelle 17: UC 4: Veröffentlichte Schlüssel anschauen Beschreibung Der Nutzer lässt sich zu einer bestimmten Mail-Adresse die veröffentlichten Schlüssel (OpenPGP oder S/MIME) anzeigen. Die Mail-Adresse kann eine eigene Adresse sein oder die dem Nutzer bekannte Adresse einer anderen Person. Für die Schlüssel können Optionen angezeigt werden, z. B. im Falle der eigenen Schlüssel die Löschung eines bestimmten Schlüssels. Beteiligte Komponenten Mail-Client oder OX-Mail-Client, OX-Mail-Server, VVVClient-Plugin oder VVV-Server-Plugin, HKP-Server, LDAP-Server. Enthaltene Anwendungsfälle UC 2.1, UC 2.2, UC 2.3. Vorbedingungen – Ergebnis Die zu einer Mail-Adresse registrierten Schlüssel werden dem Nutzer im VVV-Client-Plugin oder im OX-MailClient des Browsers angezeigt. Hinweise und offene Fragen: • Dieser Anwendungsfall kann in verschiedenen Zusammenhängen nützlich sein: Zur Übersicht über die registrierten Schlüssel im Vorfeld der Registrierung eines neuen eigenen Schlüssels, siehe UC 1 im Abschnitt 5.2, oder der Löschung eines registrierten eigenen Schlüssels, siehe UC 5 im Abschnitt 5.6. • Ein Schlüsselimport in das lokale Verzeichnis der Mail-Clients bzw. des OXMail-Servers soll nicht durch das VVV-Plugin angeboten werden. Dies wurde in UC 2.3 (Abschnitt 5.3.3) ausgeschlossen. 61 5.6 UC 5: Clientseitigen Schlüssel auf Schlüssel-Server löschen Tabelle 18: UC 5: Clientseitigen Schlüssel auf Schlüssel-Server löschen Beschreibung Der Nutzer lässt zu einer bestimmten Mail-Adresse einen clientseitigen öffentlichen Schlüssel (OpenPGP oder S/MIME) auf einem Schlüssel-Server löschen, d. h. der Nutzer nimmt die Veröffentlichung des Schlüssel zurück unabhängig davon, ob das Schlüsselpaar lokal vorhanden bleibt und vom Nutzer weiterhin verwendet wird. Das VVVClient-Plugin nimmt den Löschwunsch entgegen und informiert den Mail-Server darüber. Der Mail-Server sendet schließlich eine Löschanweisung an den betreffenden Schlüssel-Server. Beteiligte Komponenten Mail-Client, GnuPG, VVV-Client-Plugin, Mail-Server, HKP-Server, LDAP-Server. Enthaltene Anwendungsfälle UC 5.1, UC 5.2, UC 5.3. Vorbedingungen Nutzer hat einen Schlüssel für OpenPGP oder S/MIME veröffentlicht. Ergebnis Der Schlüssel ist auf dem LDAP- oder HKP-Server der Mail-Domain gelöscht worden. Hinweise und offene Fragen: • Der Nutzer muss den Zugriff auf das Mail-Postfach gegenüber dem MailAnbieter durch die gewohnte Anmeldung nachweisen. Dies sollte für die VVVLösung ausreichen, da in vielen Fällen, in denen die Veröffentlichung eines Schlüssels zurückgenommen werden soll, ein Zugriff auf den zugehörigen privaten Schlüssel oder sogar auf den betreffenden PC mehr möglich ist. Der Nutzer besitzt unter Umständen den privaten Schlüssel oder das zugehörige Passwort nicht mehr. Oder der Schlüssel bzw. der gesamte PC des Nutzers ist kompromittiert worden und der Nutzer möchte vielleicht gerade aus diesem Grund den öffentlichen Schlüssel löschen lassen. • Der Mail-Anbieter kann für die allgemeine Anmeldung zum Mail-Postfach bzw. für die spezielle Anmeldung im Fall, dass der Nutzer einen Schlüssel lö- 62 schen möchte, weitere Authentisierungsschritte vorsehen, z. B. eine 2-FaktorAuthentisierung mittels FIDO27 , die Eingabe der Kundennummer, einer Transaktionsnummer oder eines speziellen Passworts oder durch eine „Kreuzauthentisierung‘“ (OpenPGP x S/MIME), bei der ein Nutzer, der beide Verfahren verwendet, die Löschung von einem öffentlichen auf dem Schlüssel-Server mit dem Zugriff auf den jeweils privaten Schlüssel des anderen Verfahrens bestätigt. Die VVV-Lösung fordert aber keine bestimmten Anmeldeprozesse, um keine zusätzlichen Hürden zu errichten. • Im Fall, dass das Mail-Postfach kompromittiert wurde, kann die gesamte Kommunikation des rechtmäßigen Nutzers unterlaufen werden, können beispielsweise Mails gelöscht oder hinzugefügt werden, kann von einem Angreifer ein neues Schlüsselpaar erzeugt und dessen öffentlicher Teil auf dem SchlüsselServer veröffentlicht werden. Allerdings ist davon noch nicht die lokale Entschlüsselung von Mails, die vor dem Angriff verschlüsselt wurden, betroffen. Auch kann der lokale private Schlüssel des rechtmäßigen Nutzers nicht von einem Angreifer ersetzt werden, solange der Angreifer neben dem MailPostfach nicht auch den PC und Schlüsselspeicher des Nutzers kontrolliert. Ob ein Schlüssel veröffentlicht ist und ob es sich ggf. um den rechtmäßigen Schlüssel handelt, kann der Nutzer jederzeit mittels VVV-Client-Plugin überprüfen, siehe UC 4 in Abschnitt 5.5. • Der Mail-Server löscht den Schlüssel auf dem HKP-Server bzw. LDAP-Server. Der Schlüssel soll nicht lokal gelöscht werden. Der Entschlüsselungsschlüssel muss lokal erhalten bleiben, damit ggf. alte verschlüsselte Mails weiterhin gelesen werden können. Der VVV-Anwendungsfall umfasst keine Sperrung (Wideruf) eines Schlüssels oder Zertifikats. Die Sperrung liegt wie die Zertifizierung von Schlüsseln außerhalb des VVV-Scopes. 27 „Fast IDentity Online“ (FIDO), siehe https://fidoalliance.org/specifications/ overview 63 5.6.1 UC 5.1: Clientseitigen Schlüssel auf dem Client abmelden Tabelle 19: UC 5.1: Clientseitigen Schlüssel auf dem Client abmelden Beschreibung Der Nutzer ruft das VVV-Client-Plugin auf, um einen existierenden öffentlichen Schlüssel auf dem Schlüssel-Server löschen zu lassen. Beteiligte Komponenten VVV-Client-Plugin, Mail-Client, GnuPG. Vorbedingungen Nutzer hat einen OpenPGP-Schlüssel oder einen S/MIMESchlüssel, der auf einem Schlüssel-Server veröffentlicht ist. Ergebnis Das VVV-Client-Plugin besitzt die notwendigen Angaben, um im nächsten Schritt (siehe UC 5.2 in Abschnitt 5.6.2) die Informationen für die Löschung des betreffenden Schlüssels an den Mail-Server weiterzugeben. Hinweise und offene Fragen: • Pro Verschlüsselungsverfahren (S/MIME, OpenPGP) wird maximal genau ein aktiver Schlüssel angezeigt. • Wäre es hilfreich oder überhaupt möglich, ggf. beide Schlüssel lokal zur Auswahl zu stellen? Evtl. müsste dazu zunächst auf den Schlüssel-Servern nachgesehen werden, welche Schlüssel dort veröffentlicht sind. Dies ist der weitere Anwendungsfall UC 4 „Veröffentlichte Schlüssel anschauen“ gemäß Abschnitt 5.5. Dies hat den Vorteil, dass der Nutzer nur die betreffende MailAdresse angeben müsste, um alle registrierten Schlüssel zur Auswahl zu bekommen. 64 5.6.2 UC 5.2: Clientseitigen Schlüssel auf dem Server abmelden Tabelle 20: UC 5.2: Clientseitigen Schlüssel auf dem Server abmelden Beschreibung Das VVV-Client-Plugin meldet sich am Mail-Server an und sendet die Angaben über den zu löschenden Schlüssel. Der Mail-Server braucht keinen Verifikationscode an das Postfach des Nutzers zu senden, da der Zugriff bereits mit der Anmeldung verifiziert wurde und der Besitz des privaten Schlüssels nicht mehr vorausgesetzt werden kann. Beteiligte Komponenten Mail-Client, VVV-Client-Plugin, Mail-Server. Vorbedingungen Das VVV-Client-Plugin besitzt die notwendigen Angaben für die Löschung eines bestimmten Schlüssels (siehe UC 5.1 in Abschnitt 5.6.1). Ergebnis Der Mail-Server besitzt die notwendigen Angaben für die Löschung eines bestimmten Schlüssels, um im nächsten Schritt (siehe UC 5.3 in Abschnitt 5.6.3) auf dem entsprechenden Schlüssel-Server den Schlüssel löschen zu lassen. 65 5.6.3 UC 5.3: Schlüssel auf Schlüssel-Server löschen Tabelle 21: UC 5.3: Schlüssel auf Schlüssel-Server löschen Beschreibung Der Mail-Server lässt einen Schlüssel des Nutzers auf dem HKP-Server bzw. LDAP-Server löschen. Beteiligte Komponenten Mail-Server, HKP-Server, LDAP-Server. Vorbedingungen Der Mail-Server hat die notwendigen Angaben zur Löschung des Schlüssels erhalten. Ergebnis Der Schlüssel ist auf dem HKP-Server bzw. LDAP-Server gelöscht. Hinweise und offene Fragen: • Eine Rückmeldung an den Nutzer, dass der Schlüssel tatsächlich gelöscht wurde, ist sinnvoll. Wenn es schnell geht, könnte man dies über das VVV-ClientPlugin durch einen Versuch des Abrufens des Schlüssels durchführen. In jedem Fall, insbesondere wenn es mehr Zeit benötigt als man dem Nutzer zumuten kann, versendet der Mail-Server eine Bestätigungsmail an den Nutzer. 66 Literatur [1] Stallings, William: Comprehensive Internet E-Mail Security. The Internet Protocol Journal, 19(3):2–30, November 2016. [2] Rose, Scott: Applicability Statement: DNS Security (DNSSEC) DNSKEY Algorithm Implementation Status. RFC 6944, Oktober 2015. [3] Schlyter, Jakob und Paul E. Hoffman: The DNS-Based Authentication of Named Entities (DANE) Transport Layer Security (TLS) Protocol: TLSA. RFC 6698, Oktober 2015. [4] Wouters, Paul: Using DANE to Associate OpenPGP public keys with email addresses. Internet-Draft draft-ietf-dane-openpgpkey-12, Internet Engineering Task Force, Mai 2016. Work in Progress. [5] Schlyter, Jakob und Paul E. Hoffman: Using Secure DNS to Associate Certificates with Domain Names For S/MIME. Internet-Draft draft-ietf-dane-smime14, Internet Engineering Task Force, November 2016. Work in Progress. [6] Zhu, Liang, John Heidemann, Duane Wessels, Paul E. Hoffman, Allison Mankin und Zi Hu: Specification for DNS over Transport Layer Security (TLS). RFC 7858, Mai 2016. [7] Klensin, Dr. John C.: Simple Mail Transfer Protocol. RFC 5321, Oktober 2015. [8] 3rd, Donald E. Eastlake: Domain Name System (DNS) Case Insensitivity Clarification. RFC 4343, Oktober 2015. [9] Damas, J., M. Graff und P. Vixie: RFC6891: Extension Mechanisms for DNS (EDNS(0)). RFC 6891, April 2013. [10] Koch, Werner: Public Key Association. Technischer Bericht, Feb 2006. [11] Koch, W.: OpenPGP Web Key Service. Draft Koch-openpgp-webkey-service01, May 2016. [12] Finney, Hal, Lutz Donnerhacke, Jon Callas, Rodney L. Thayer und David Shaw: OpenPGP Message Format. RFC 4880, März 2013. [13] Shaw, David: The OpenPGP HTTP Keyserver Protocol (HKP). InternetDraft draft-shaw-openpgp-hkp-00, Internet Engineering Task Force, März 2003. Work in Progress. [14] Horowitz, Marc: A PGP Public Key Server. Technischer Bericht, Massachusetts Institute of Technology, 1996. Last-Modified: Tue, 19 Nov 1996 05:24:05 GMT. 67 [15] Herfert, Michael, Annika Selzer und Ulrich Waldmann: Laientaugliche Schlüsselgenerierung für die Ende-zu-Ende-Verschlüsselung – Schlüssel für all durch die Volksverschlüsselung. Datenschutz und Datensicherheit – DuD, 05:290–294, 2016. [16] Sermersheim, Jim: Lightweight Directory Access Protocol (LDAP): The Protocol. RFC 4511, Oktober 2015. [17] Cotton, Michelle S., Lars Eggert, Dr. Joseph D. Touch, Magnus Westerlund und Stuart Cheshire: Internet Assigned Numbers Authority (IANA) Procedures for the Management of the Service Name and Transport Protocol Port Number Registry. RFC 6335, Oktober 2015. [18] Rose, Scott, Matt Larson, Dan Massey, Rob Austein und Roy Arends: Resource Records for the DNS Security Extensions. RFC 4034, Oktober 2015. [19] Rose, Scott, Matt Larson, Dan Massey, Rob Austein und Roy Arends: Protocol Modifications for the DNS Security Extensions. RFC 4035, Oktober 2015. 68
© Copyright 2024 ExpyDoc