Projekt Ägypten: TechnologieDiese Seite vermittelt einen Überblick. Im CVS befinden sich technische Details (englisch).
Plug-In Container/Plug-Ins * GpgSM * GpgAgent * DirMngr * PinEntry Schlüsselerzeugung * Signieren * Signaturprüfung * Verschlüsselung * Entschlüsselung Plug-In Container/Plug-InsDie Plug-Ins für S/MIME und OpenPGP umfassen jeweils eine vereinfachte API zur Durchführung der gewünschten Krypto-Funktionen. Für die Aufrufe der Basis-API (mit GpgME bereitgestellt) werden die in den Plug-Ins gehaltenen Konfigurationseinstellungen berücksichtigt (z.B. sende komplette Zertifikatskette: ja/nein). Das jeweilige Mail-Programm stellt alle Benutzerdialoge für diese Einstellungen zur Verfügung und läd/speichert sie aus den für das jeweilige Mail-Programm spezifischen Konfigurationsdateien.
Der Plug-In Container stellt die API der Plug-Ins innerhalb des
Mail-Programms zur Verfügung. Er ist spezifische für jedes Programm
und umfasst die Benutzerdialoge für Konfiguration.
Private Schlüssel werden durch GpgSM nicht benutzt; es delegiert vielmehr die Signier- und Entschlüsselungsoperation an den GpgAgent. Diese Delegation bezieht sich bei Entschlüsselung lediglich auf den Session-Key, die symmetrische Entschlüsselung wird hier durchgeführt. Das Modul ist in der Lage Datenströme beliebiger Länge zu verschlüsseln und bietet ein Kommandozeilenschnittstelle, die der von GnuPG weitgehend entspricht. GpgSM ist auch zur Generierung von Schlüsseln und verwandter Nachrichten zuständig. Die Schlüsselgenerierung selbst wird wie üblich an GpgAgent delegiert, so daß dieser den privaten Schlüssel direkt in seiner PSE speichern kann.
Neben den geforderten Algorithmen wird auch AES implementiert
werden. Da er in der Spezifikation noch nicht aufgeführt ist, wird
seine Verwendung allerdings erst durch eine besondere
Konfigurationsoption freigeschaltet.
Die Schnittstelle dieses Moduls ist so ausgelegt, dass dieses Modul
vollständig in ein Hardware Modul ausgegliedert werden kann.
Im Rahmen des Projektes wird PIN Entry als qt-, gtk- und Text-Variante implementiert. Eventuell wird es in Zukunft duch eine einfachere Version, die direkt auf dem benutzten grafischen Fenster-System (X11) aufsetzt, ergänzt. Dies würde eine Code-überprüfung vereinfachen. Funktionsweise und DatenflußSchlüsselerzeugungNeue Schlüssel werden über das Konfigurationsmodul von KMail erzeugt, welches hierzu GpgSM mit der Schlüsselerzeugung beauftragt. GpgSM gibt dies an GpgAgent weiter, der die sicherheitskritischen Operationen durchführt und den privaten Schlüssel in der PSE abstellt. Über einen weiteren Dialog kann eine Zertifizierungsanfrage erstellt sowie weitere Schlüsselverwaltungsfunktionen durchgeführt werden.SignierenDie zu signierende Nachricht (bzw. das MIME-Objekt) wird zusammen mit der Identifikation des zur aktuellen Rolle gehörenden Zertifikats an GpgSM gegeben, welches die Signatur berechnet. Da zur Erzeugung der Signatur der private Schlüssel notwendig ist, wird die grundlegende Signaturoperation nicht direkt von GpgSM durchgeführt sondern an GpgAgent delegiert. Hierbei werden allerdings lediglich die absolut notwendigen Parameter sowie der Hash der Nachricht weitergegeben (optional kann auch der Hash von GpgAgent berechnet werden und die Nachricht durch einen speziellen Viewer angezeigt werden; dies ist aber nicht sinnvoll, solange GpgAgent nicht auf externer Hardware ausgeführt wird).GpgAgent wird in seiner PSE nach dem privaten Key suchen, eine PIN von dem PIN-Entry Modul erfragen und dann die Signatur erzeugen. Der PKCS-1 Wert wird dann an GpgSM weitergegeben der dann die signierte Nachricht aufbaut.
Nach Rückgabe an das MUA-Plug-in wird dieses entscheiden, ob die
Nachricht verschlüsselt werde soll und dies entsprechend dem oben
geschilderten Verfahren durchführen. Soll es nicht verschlüsselt
werden, so wird die signierte Nachricht direkt versendet, wobei
je nach Konfiguration Zertifikate mitgesendet werden.
Der Signatur-Status sowie alle verfügbaren Metainformationen werden an
das MUA-Plug-in zurückgegeben, welches den Status der Signatur
entsprechend anzeigt.
Es wird dafür gesorgt, dass alle notwendigen Zertifikate in der durch
GpgSM gepflegten Datenbank vorhanden sind. Die zu verschlüsselnde
Nachricht (bzw. das Attachment) wird zusammen mit den internen
Identifikationsnummern (fingerprints) der Zertifikate an GpgSM
weitergegeben, welches dann die Verschlüsselung vornimmt und das
verschlüsselte Objekt zurückgibt. Das neue Objekt wird nun
wieder in einen MIME Kontext eingebunden und versendet.
|
VerweiseÄgypten2 ProjektKMail Mutt GnuPG Sphinx Intevation g10 Code Klarälvdalens Datakonsult Bundesamt für Sicherheit in der Informationstechnik KontaktDas Projekt-Team kann über diverse Mailing-Listen erreicht werden:gpa-dev (technische Koordination) kmail (KMail) gnupg-devel (GnuPG Entwicklung) Projekt-Koordination: <bernhard@intevation.de> <jan@intevation.de> |
Seite zuletzt geändert: $Date: 2004-04-06 18:26:43 $
(C) Intevation,
Zitat und Verteilung des vollständigen Seiteninhaltes
ist über jedes Medium gestattet, solange dieser Hinweis erhalten bleibt.