Sicherheitsmail II: mutt und S/MIME

In Anbetracht der geringen Popularität von OpenPGP und der weiterhin wogenden Debatte um digitale Abschnorchelprogramme wende ich mich schweren Herzens S/MIME zu. Auf den ersten Blick sind die verschiedenen Erscheinungsformen eines X.509-Zertifikates etwas verwirrend: Wenn man etwa aus einem privaten Schlüssel im PKCS#12-Format (key.p12) und einem öffentlichen Schlüssel in einem binären DER-Format (cert.crt) ein gemeinsames Bundle im PEM-Format erstellen oder ein solches Bundle wieder trennen möchte, kann man einige schöne Stunden mit der Manpage von OpenSSL einplanen (oder einige Sekunden mit der Google-Suche).

Ansonsten ist die Einrichtung von S/MIME besonders einfach: Falls mutt mit S/MIME-Unterstützung kompiliert wurde, kopiert man lediglich den Inhalt von share/docs/mutt/samples/smime.rc nach .muttrc, transferiert die Sammlung von Certificate Authorities aus share/doc/mutt/samples/ca-bundle.crt nach ~/.smime/ca-bundle.crt (natürlich nicht, ohne sich vorher sämtliche Fingerprints persönlich von vertrauenswürdigen Menschen bestätigen zu lassen) und beschafft sich (z.B. über StartCom) ein geeignetes Zertifikat.

Die Installation eines Zertifikates (smime_keys add_p12 cert.p12) ist nur dann ein Problem, wenn man testweise mit einem self-signed root certificate hantiert oder mit einem Zertifikat, das von einer selbst generierten Certificate Authority stammt (auch wenn man diese CA mit smime_keys add_root ca.crt der Liste der vertrauenswürdigen CAs hinzugefügt hat). Außerdem unterschlägt smime_keys list alle Zertifikate in ~/.smime/certificates, für die kein privater Schlüssel in ~/.smime/keys vorliegt. Das mit mutt gelieferte Perl-Skript smime_keys scheint also nicht ganz frei von Bugs zu sein. Das nehme ich aber nicht allzu übel, solange meine Nachrichten ordentlich signiert werden.

Größere Verwirrung kann entstehen, wenn man statt des bewährten Firefox die Kombination von Safari und Keychain Access auf einem Mac nutzt, um ein per Browser beantragtes Zertifikat lokal zu speichern: Keychain Access exportiert nämlich ausschließlich das individuelle Zertifikat ohne die zugehörige Zertifikatskette, so dass smime_keys konsequent das fehlende root bzw. intermediate certificate moniert.

Was bleibt? Die nagende Furcht, dass die NSA über eine Kopie meines kostenlosen StartCom-Zertifikates verfügt und meine nächste Geburtstagseinladung trotz Signatur manipulieren kann. Deshalb arbeite ich sicherheitshalber weiter an einem großen und eng gewobenen Web of Trust und weise hiermit noch einmal ausdrücklich auf meinen öffentlichen PGP-Schlüssel hin.