Übertragen von S/MIME Zertifikaten zu Microsoft Intune

In einer modernen vernetzten Welt ist die vertrauliche Übermittlung von Nachrichten im Unternehmensumfeld essentiell für geschäftlichen Erfolg. Trotz ihres Alters ist die E-Mail weiterhin aus der modernen Unternehmenskommunikation nicht wegzudenken. Ihre Nutzung hat sich im Lauf der Jahrzehnte allerdings deutlich gewandelt.

So ist es heutzutage üblich, geschäftliche E-Mails auch auf mobilen Endgeräten wie Smartphones und Tablets lesen und schreiben zu können. Solche Endgeräte werden üblicherweise mittels Mobile Device Management (MDM) Systemen wie Microsoft Intune verwaltet.

Für die Veschlüsselung von E-Mail Nachrichten verwenden Unternehmen üblicherweise den Secure / Multipurpose Internet Message Extensions (S/MIME) Standard und stellen ihren Benutzern hierfür entsprechende Zertifikate zur Verfügung. Wie kommen diese nun in skalierbarer Weise auf die Endgeräte der Benutzer?

Grundlagen

Der nachfolgend beschriebene Prozess verwendet exzessiv die Grundkonzepte der Public Key Infrastruktur (PKI). Zum Verständnis sollte der Leser somit die Grundlagen von Public Key Infrastrukturen (PKI) verinnerlicht haben.

Die wichtigsten Aspekte ist nachfolgend kurz zusammengefasst:

PKI basiert auf dem Konzept der asymmetrischen Kryptographie. Hierbei werden immer zueinander gehörende Schlüsselpaare (genannt öffentlicher und privater Schlüssel) eingesetzt. Die Grundidee ist, dass der eine Schlüssel das entschlüsseln kann, was der andere verschlüsselt hat.

Funktionsweise von S/MIME

  1. Bei der Ausstellung des S/MIME Zertifikats hat die Zertifizierungsstelle dieses (und somit den öffentlichen Schlüssel des Benutzers) in dessen Benutzerobjekt im Active Directory angehängt. Dieses Attribut wird in die globale Adressliste (GAL) von Microsoft Exchange übertragen.
  2. Der Absender (Bob) fragt nun das S/MIME Zertifikat (den öffentlichen Schlüssel) des Empfängers (Alice) in der globalen Adressliste an.
  3. Mittels des öffentlichen Schlüssels des Empfängers verschlüsselt der Absender die Nachricht und sendet diese anschließend an den Empfänger.
  4. Der Empfänger der Nachricht ist nun in der Lage, die Nachricht mithilfe seines privaten Schlüssels zu entschlüsseln.

Werden S/MIME Zertifikate zur Verschlüsselung von E-Mails eingesetzt, muss (im Gegensatz zu reinen Signatur-Zertifikaten) somit auf jedem Endgerät der gleiche private Schlüssel vorliegen.

Viele Zertifikate und Schlüssel im Spiel

Im nachfolgenden Prozess kommen sehr viele Zertifikate und Schlüsselpaare zum Einsatz, daher soll nachfolgende Übersicht für ein wenig Klarheit sorgen:

Zertifikat/SchlüsselBeschreibung
S/MIME Zertifikat (des Benutzers)Ermöglicht dem Benutzer, verschlüsselte E-Mails zu entschlüsseln. Dieses Zertifikat soll per Intune auf sein verwaltetes Endgerät gebracht werden.
Zertifizierungsstellen-Austausch-ZertifikatWird für die Transportverschlüsselung bei der Archivierung des privaten Schlüssels des S/MIME Zertifikats verwendet.
Schlüsselwiederherstellungs-Agenten-ZertifikatWird für die Archivierung des privaten Schlüssels des S/MIME Zertifikats in der Zertifizierungsstellen-Datenbank verwendet. Beim Archivieren wird der öffentliche Schlüssel verwendet, beim Wiederherstellen der private.
Zertifikat des Intune Certificate ConnectorWird verwendet, um die Passwörter der S/MIME Zertifikate im PKCS#12 Format vor Upload zu Intune zu verschlüsseln. Somit ist gewährleistet, dass Intune keine Kenntnis über die Passwörter und entsprechend keinen Zugriff auf die privaten Schlüssel der S/MIME Zertifikate der Benutzer hat.
Geräte-Schlüssel (Device Key)Ein Schlüsselpaar, welchem es dem verwalteten Endgerät ermöglicht verschlüsselte Daten zu erhalten und zu entschlüsseln.

Wie das Zertifikat auf das Smartphone gelangt

Beantragung des S/MIME Zertifikats und Archivierung des privaten Schlüssels

Der hier aufgezeigte Weg der Archivierung von privaten Schlüsseln ist der "klassische" Weg, wie ihn Microsoft einst vorgesehen hat. In modernen Unternehmens-Umgebungen ist nicht sichergestellt, dass jeder Benutzer einen regulären Desktopcomputer mit Active Directory-Mitgliedschaft besitzt. Somit kann es auch Szenarien geben, in welchen die privaten Schlüssel für S/MIME Zertifikate zentral generiert werden. Der Weg für die Bereitstellung in Intune ist prinzipiell aber der gleiche.

  1. Der Benutzer beantragt von einem Windows-Computer aus ein S/MIME Zertifikat. Üblicherweise erfolgt dies per Autoenrollment. Ist die Archivierung privater Schlüssel aktiviert, wird im Zuge der Zertifikatbeantragung der private Schlüssel mit an die Zertifizierungsstelle übertragen (für die Transportverschlüsselung kommt das Zertifikat für Zertifizierungsstellen-Austausch der Zertifizierungsstelle zum Einsatz).
  2. Die Zertifizierungsstelle verschlüsselt nach Ausstellung des S/MIME Zertifikats nun den erhaltenen privaten Schlüssel des Benutzers mit einem oder mehreren Schlüsselwiederherstellungs-Agenten-Zertifikaten (engl. Key Recovery Agent), genauer gesagt mit deren öffentlichen Schlüsseln.

Übertragen der privaten Schlüssel nach Intune

  1. Über eine zielgerichtete Abfrage gegen die Zertifizierungsstellen-Datenbank wird das S/MIME Zertifikat und der verschlüsselte private Schlüssel abgefragt.
  2. Der verschlüsselte private Schlüssel des Benutzers wird mit dem privaten Schlüssel des Schlüsselwiederherstellungs-Agenten-Zertifikats entschlüsselt und in eine PKCS#12 Datei exportiert (auch bekannt als PFX oder P12). Die PKCS#12 Datei enthält das S/MIME Zertifikat des Benutzers und den dazugehörigen privaten Schlüssel und ist mit einem Passwort geschützt.
  3. Die PKCS#12 Datei wird nun mit dem Intune Certificate Connector nach Intune hochgeladen.
  4. Das Passwort der PKCS#12 Datei wird mit dem öffentlichen Schlüssel des Intune Certificate Connector verschlüsselt bevor es zu Intune gesendet wird. Auf diese Weise ist sichergestellt, dass Intune niemals Kenntnis über das Passwort erhalten kann (im Gegensatz beispielsweise zu VMware Workspace One, bei welchem je nach Verteilart dem Mobile Device Management alle Passwörter bekannt sind).

Import des S/MIME Zertifikats auf das Endgerät

  1. Intune überträgt nun die PKCS#12 Datei an das dem Benutzer zugewiesene verwaltete Endgerät. Da weder Intune noch dem Endgerät das Passwort für die Datei bekannt ist, muss dieses nun angefragt werden.
  2. Das Endgerät kontaktiert somit den Intune Certificate Connector. Hierbei sendet es seinen eigenen öffentlichen Schlüssel sowie das verschlüsselte Passwort der PKCS#12 Datei mit.
  3. Der Intune Certificate Connector entschlüsselt das Passwort mit seinem privaten Schlüssel und verschlüsselt es umgehend mit dem öffentlichen Schlüssel des verwalteten Endgerätes, bevor es das Ergebnis an das Endgerät sendet.
  4. Das verwaltete Endgerät kann nun das Passwort mit seinem privaten Schlüssel entschlüsseln und letztendlich die PKCS#12 Datei lokal importieren.
  5. Das verwaltete Endgerät des Benutzers ist jetzt im Besitz des S/MIME Zertifikats und des dazugehörigen privaten Schlüssels.

Konkrete Umsetzung

Auf GitHub habe ich ein Script für das Auslesen, Umschlüsseln und die Übertragung von S/MIME Zertifikaten zu Intune veröffentlicht.

Weiterführende Links:

Externe Quellen

de_DEDeutsch