Electronic Identity Mail Filter

Die Light-Version arbeitet auf reiner X.509-Basis und ist als erster Versuch zu verstehen, Bekanntschaft mit einer einfachen Verschlüsselung zu machen. Das EI-Schema bietet weitere Funktionalitäten. Wir haben uns für eine professionellen E-Mail-Verschlüsselung für einen E-Mail-Filter entschieden und auf eine Anpassung an die verschiedenen E-Mail-Clients und Server verzichtet:

User-Email-Client -> unverschlüsselte/unsignierte Emails ----> SMTP-API EI-Email-Filter

EI-Email-Filter -> Verschlüsselung/Sigantur ----> SMTP_API Internetprovider

EI-Email-Filter ----> POP-API Internetprovider (alle Mails)
EI-Email-Filter -> Entschlüsselung/Signaturprüfung

User-Email-Client ----> POP-API EI-Email-Filter -> unverschlüsselte/unsignierte Emails

Der EI-Email-Filter übernimmt alle Ver- und Entschlüsselungs- und Signaturaufgaben, der Email-Agent auf dem User-Rechner erhält nur unverschlüsselte und unsignierte Emails. Dadurch ist es möglich, alle Email-Clients zu verwenden, also auch solche, die keinerlei Verschlüsselungsmöglichkeiten bieten (WebMail-Clients sind derzeit noch nicht berücksichtigt).

Die Kommunikation mit dem EI-Email-Filter erfolgt verschlüsselt. Da es sich bei dem EI-Email-Client um eine Anwendung handelt, die auf einem Gerät des Users läuft, ist das Problem, dass Provider auf ihren Servern Mails mitlesen können, beseitigt.

Der EI-Email-Filter kann beispielsweise auf einem Raspberry implementiert werden und ist dadurch im lokalen User-Netz immer verfügbar. Sofern das LAN VPN-fähig ist, kann auch von Außen auf den Server zugegriffen werden, so dass auch unterwegs gesichert auf die Daten zugegriffen werden kann. Für nicht VPN-fähige LAN ist eine gesicherte Webdatenbank in Entwicklung.

Mail-Prozessing beim Absenden von Emails

Die Emails werden vom User-Agenten per SMTP an de EI-Mail-Filter übergeben. Der Filter signiert und verschlüsselt die Email. Für die Signatur wird eines der vorkonfigurierten EI-Zertifikate verwendet (Einstellung über –configure). Für die Verschlüsselung können X.509-Zertifikate und EI-Zertifikate genutzt werden.

Voraussetzung für beide Zertifikate:

  • in EI-Zertifikaten ist die Email-Adresse im Feld ‘Owner’ oder im Feld ‘Description’ gelistet, in X.509-Zertifikate ein Subject_DN-Feld mit der Emailadresse definiert,
  • das Zertifikat ist nach EI-Regeln verwendbar.

Für die Empfängerzertifikate gilt zusätzlich in Anlehnung an die allgemeinen EI-Regeln:

  • beim ersten Email-Kontakt (Empfänger-Email-Adresse ist nicht in der Tabelle ‘logging’ gelistet) kann jedes gültige Zertifikat des Empfängers verwendet werden,
  • beim wiederholten Kontakt darf nur ein gültiges Zertifikat der gleichen Familie verwendet werden.

Bei wiederholtem Kontakt werden die Zertifikate des letzten Kontakts verwendet, sofern noch gültig. Bei ungültigen Zertifikaten wird versucht, ein gültiges aus der Datenbank zu ermitteln. Bei der Suche nach Zertifikaten in der Datenbank haben EI-Zertifikate Vorrang vor X.509-Zertifikaten.

Sind gültige Zertifikate vorhanden, wird die Email verschlüsselt, signiert und versendet. Die versandte Mail wird über einen definierten Zeitraum zum Nachweise gespeichert und dann gelöscht. Der Versand wird in der Tabelle ‘logging’ registriert.

Ist kein eigenes gültiges Zertifikat zu ermitteln, wird die Mail nicht signiert und dem Nutzer eine Nachricht in das Eingangspostfach gestellt. Die Nachricht wird trotzdem versandt. Sofern ein gültiges Empfängerzertifikat vorhanden ist, wird sie verschlüsselt, ansonsten wird sie ohne weitere Prüfungen unverschlüsselt versandt. Ein Eintrag in die Tabelle ‘logging’ erfolgt nicht.

Lässt sich bei Vorliegen eines gültigen eigenen Zertifikats kein gültiges Empfänger-Zertifikat ermitteln, wird vom System ein Zertifikat in einem automatischen Verfahren angefordert. Ist dies erfolgreich, wird die Nachricht verschlüsselt und versandt. Lässt sich auf diesem Weg kein gültiges Zertifikat ermitteln, wird die Nachricht signiert und unverschlüsselt versandt und der Nutzer erhält eine Nachricht in sein Eingangspostfach gestellt.

Verschlüsselung der Emails

Im X.509-Schema werden Email nach dem S/MIME-Standard (PKCS#7) verschlüsselt. Sofern als Empfängerzertifikate nur X.509-Zertifikate zur Verfügung stehen, wird ebenfalls dieser Standard verwendet.

Wenn EI-Zertifikate eingesetzt werden, kommt ein anderes Verschlüsselungssystem zum Einsatz, das auch die kompletten Kopfdaten einer Email, die im S/MIME-Protokoll unverschlüsselt übertragen werden, verschlüsselt. Einer Email ist damit erst nach der Entschlüsselung anzusehen, woher sie wirklich stammt und auf was sie sich bezieht.

Wichtig

Wir betrachten dies als wesentliches neues und zusätzliches Sicherheitsmerkmal.

Der Mailaufbau im Detail:

Subject:EI.Mail-Filter

-----EI.Mail_Encrypted_Data-----  oder   -----EI.Mail_Unencrypted_Data-----
... PEM-codierte Nachricht


Nachricht ::= SEQUENCE {
   oid    OBJECT IDENTIFIER { EI.Mail_Unencrypted_Data | EI.Mail_Encrypted_Data }
   packed CHOICE { Encypted | Unencrypted };
}

Encrypted ::= SEQUENCE {
   cert Certificate,
   data DataPackage
}

Unencrypted ::= DataPackage;

DataPackage ::= SEQUENCE {
   oid   OBJECT IDENTIFIER  { EI.Mail_Signed_Data  |  EI.Mail_Unsigned_Data
   pack  CHOICE { SignedDataPackage | Message }
}

SignedDataPackage ::= SEQUENCE {
   cert       Certificate,
   message    Message
   signature  OCTECT STRING
}

Message ::= OCTET STRING;
}

Anforderung von Zertifikaten

Die Anforderung von Zertifikaten erfolgt durch eine Email, die im ersten Teil einen erklärenden Text enthält, z.B.:

... möchte Ihnen eine verschlüsselte Nachricht zukommen lassen und benötigt dazu Ihre öffentlichen Schlüssel.

Wenn Sie solche nicht besitzen, brauchen Sie auf diese Mail nicht zu antworten. Die Nachricht wird Ihnen in ...
unverschlüsselt zugestellt.

Falls Sie ein X.509-Zertifikat besitzen, antworten Sie auf diese Mail mit einer signierten Email (ohne Änderung
des Textes).

Der Text erklärt Empfängern, die keinen EI-Mail-Filter verwenden, weshalb sie diese Mail erhalten und dass es sich nicht um Spam handelt. Bei Empfänger mit EI-Mail-Filter wird die Nachricht im Mail-Filter abgefangen und automatisch beantwortet.

Im zweiten Teil nach dem Text ist ein PEM-kodiertes ASN.1-Anfrageobjekt mit der Emailadresse des Empfängers enthalten. Diese muss mit der Postfachadresse übereinstimmen. Sofern ein regelkonformes eigenes Zertifikat zur Verfügung steht (es werden wie beim Absender nur die vorkonfigurierten Zertifikate berücksichtigt), wird eine Antwort zurückgesandt, die das Zertifikat enthält. Auch diese Nachricht wird im EI-Filter abgefangen und automatisch verarbeitet.

Beim Empfang wird überprüft, ob in der Warteliste der Emails eine Email an die Adresse vorhanden ist. Ist diese der Fall, wird das Zertifikat in die Datenbank übernommen. Dabei laufen ggf. weitere automatische Vorgänge ab, wenn das Zertifikat nach EI-Schema verifiziert werden muss.

Maileingang

Unverschlüsselte Mail wird ohne weitere Registrierung ins Postfach eingestellt. Desgleichen werden entschlüsselbare, aber nicht signierte Mails behandelt.

Bei signierten und verschlüsselten Mails werden beide Zertifikate überprüft. Sind beide Zertifikate im Rahmen des EI-Mail-Schemas gültig, wird die Kommunikation in der Tabelle ‘logging’ registriert. In den folgenden Fehlerfällen erfolgt keine Registrierung, jedoch eine Kennzeichnung der Mail im Eingangspostfach:

Es existiert kein eigenes Zertifikat

Die Nachricht kann in diesem Fall nicht entschlüsselt werden und wird verschlüsselt mit einem entsprechenden Vermerk zurückgesandt.

Eigenes Zertifikat nicht gültig

Das Zertifikat ist veraltet oder nicht in der Liste der für den Email-Verkehr konfigurierten Zertifikate enthalten. Dem Nachrichtentext wird eine Information vorangestellt. Sofern für den Vorgang ein gültiges eigenes Zertifikat ermittelt werden kann, wird dem Absender eine Nachricht mit dem verwendeten und einem gültigen Zertifikat zugesandt. Die Nachricht enthält keine Bestätigungscodes für die Zertifikate.

Auf der Gegenseite wird kontrolliert, ob das erste Zertifikat bekannt ist und verwendet wurde. Das zweite Zertifikat wird in diesem Fall dem normalen EI-Abgleichverfahren unterworfen (Verifikations-Request).

Fremdes Zertifikat ist zweifelhaft

Das Zertifikat wird dem automatischen Verifikationsverfahren unterworfen. Der Nachrichtentext wird mit einer entsprechenden Zusatzinformation versehen. Der Nutzer kann später in der Zertifikatverwaltung den Verifikationsverlauf prüfen.

Die Emailadresse ist durch eine andere Familie belegt

Der Nachrichtentext wird mit einem entsprechenden Zusatztext versehen, der beide Zertifikate enthält, und an beide Teilnehmer versandt. Der Konflikt ist manuell zu beseitigen.

Sicherheitsüberlegungen

Emails erlauben wesentlich einfacher eine Fälschung als direkte Serverkommunikation, da nicht in die Kommunikationsstrecke eingegriffen werden muss und Antworten unter gewissen Bedingungen auch umgeleitet werden können. Wir haben daher folgende Sicherheitsvorkehrungen getroffen:

  • Zertifikate können nur über das Postfach angefordert werden, dem sie zugeordnet sind. Ein Angreifer kann auf diese Weise nur dann weitere Postfächer des Nutzers in Erfahrung bringen, wenn dieser das Zerifikat auch für mehrere Postfächer verwendet.
  • Die Anforderung wird nicht behandelt, d.h. es ist nicht möglich, durch reine Anforderung unbemerkt ein Zertifikat in die Verwaltung zu schmuggeln.
  • Antworten prüfen, ob Anfragen gestellt wurden. Es ist nicht möglich, durch Antworten auf nicht gestellte Anfragen Zertifikate in die Verwaltung zu schmuggeln.
  • Bei Konflikten können vorhandene und neue Zertifikate echt oder gefäscht sein. Eine automatische Behebung ist aufgrund der Vielzahl der möglichen Fälle nicht zielführend/möglich. Die Nutzer werden informiert und müssen die Kennzeichnung der Datensätze selbst vornehmen.