Windows Server 2008 R2 Active Directory Zertifikatdienste 1/3 - Grundlagen und Einrichtung

Zertifikate sind ein Mittel um die Echtheit und Glaubwürdigkeit von miteinander kommunizierenden Computern zu verifizieren. Ohne zuverlässig sicherstellen zu können, dass Computer in internen oder externen Netzwerken vertrauenswürdige Teilnehmer eines Datenaustauschs sind, wäre zum Beispiel auch keine sichere Kommunikation im Internet möglich. Um diese Sicherheit herzustellen, werden Public-Key-Infrastrukturen (PKIs) verwendet.

Grundlagen

Zuerst ein paar Grundlagen zum Thema Verschlüsselung: Eine PKI stellt den Clients in einem Netzwerk Zertifikate und Schlüssel zur Verfügung, die diese nutzen können um sich gegenseitig eindeutig zu identifizieren. Normalerweise wird mit einer asymmetrischen PKI gearbeitet, d.h. es werden 2 Schlüssel verwendet: 1 öffentlicher und 1 privater Schlüssel.

Der öffentliche Schlüssel kann nur verschlüsseln, aber nicht entschlüsseln. Dieser Schlüssel kann z.B. von einer Firma an beliebige Klienten ausgegeben werden, die der Firma verschlüsselte Daten senden möchten. Auf diese Weise kann selbst ein Hacker, der es schafft den privaten Schlüssel zu stehlen, keine Entschlüsselung der Daten vornehmen. Der private Schlüssel, der in der Lage ist die Daten zu entschlüsseln, wird zugriffsgeschützt auf einem Server innerhalb der Firma aufbewahrt.

Einzige Ausnahme ist eine digitale Signatur. Hier ist es gerade gewünscht, dass jeder Empfänger in der Lage ist, die Signatur zu lesen, aber es muss verhindert werden, dass die Signatur gefälscht wird. Deshalb wird bei einer digitalen Signatur der private, geschützte Schlüssel verwendet um die Signatur zu erstellen, und der öffentliche Schlüssel wird herausgegeben und verwendet um die Echtheit der Signatur und damit die Echtheit des Datenpakets zu verifizieren.

PKIs verwenden dafür i.d.R. bekannte Internet-Verschlüsselungsstandards wie TLS oder SSL.

Anwendung

Unter Windows werden bei jeder Verschlüsselung Zertifikate lokal generiert. Das geht ganz einfach mit einem Rechtsklick auf eine Datei -> Eigenschaften -> Erweitert -> Komprimierungs- und Verschlüsselungsattribute. Verschlüsselte Dateien können aber nur wieder entschlüsselt werden, wenn das Zertifikat vorhanden ist. Ein anderer Rechner im Netzwerk wird nicht in der Lage sein, eine lokal verschlüsselte Datei zu lesen.

Zum Glück können Zertifikate aber auch über die Active Directory Certificate Services bereitgestellt werden. Hier werden die Zertifikate von einer zentralen Stelle bereitgestellt und Nutzer in der Domäne können diese beantragen (oder über das sogenannte Auto-Enrollment automatisch beziehen). So ist jeder Teilnehmer im Netzwerk im Besitz der Zertifikate und es kann gemeinsam auf verschlüsselte Dateien zugegriffen werden. Auch kann das Zertifikat so zentral gesichert und wiederhergestellt werden. Liegt es lokal, leben und sterben alle verschlüsselten Dateien zusammen mit der Hardware des Computers auf dem das Zertifikat generiert wurde.

Installation

Richtet man unter Windows eine Zertifizierungsstelle (CA) ein, muss man sich entscheiden ob dies eine Eigenständige- (Standalone) oder Unternehmens- (Enterprise) CA sein. Der Unterschied ist, dass die Enterprise CA in das Active Directory integriert ist und so einige zusätzliche Features bietet. Diesen Weg werden wir hier gehen.

Es ist also nötig zuerst auf einem Domain Controller ein Active Directory zu installieren und dann einen zweiten Server dieser Domäne hinzuzufügen. Da wir das aber in den vorhergegangenen Artikeln alles schon behandelt haben, können wir hier direkt in die Zertifikatsdienste einsteigen. Im Folgenden arbeiten wir nur auf dem zweiten Server, der unser Zertifizierungsserver werden soll.

  1. Öffne den Server-Manager und füge eine erste Rolle hinzu.
  2. Wähle jetzt die Active Directory Zertifikatsdienste und als Rollendienste die Zertifizierungsstelle aus.
  3. Im darauffolgenden Assistenten wähle Unternehmen und Stammzertifizierungsstelle.
  4. Lass dann einen neuen privaten Schlüssel erstellen. Hier kannst du einen Kryptografiedienstanbieter, eine Schlüssellänge und einen Hashalgorithmus auswählen. Voreingestellt ist i.d.R. RSA#Microsoft Software Key Storage Provider und 2048bit. Als Hashwert kannst du dann sha1 verwenden.
  5. Akzeptiere dann die Vorschläge für die Namen, stelle eine Gültigkeitsdauert für die Zertifikate ein und verwende die Standardverzeichnisse für Datenbank und Protokolle.

Konfiguration

Um ein eigenes Zertifikat über die Active Directory Certificate Services vorzubereiten, öffnest du Server Manager -> Active Directory Zertifikatsdienste -> Zertifikatsvorlagen. Hier werden dir jetzt viele unterschiedliche Zertifikate angezeigt, die prinzipiell von den Clients angefordert werden können. Um zu sehen wie diese konfiguriert sind reicht ein Doppelklick auf den Namen.

Du wirst dabei bemerken, dass die Vorlagen sich nicht editieren lassen. Dazu musst du zuerst deine eigene Kopie einer Vorlage erstellen und diese dann entsprechend deiner Wünsche anpassen.

  1. Mach einen Rechtsklick auf eine Vorlage die dir gefällt und klicke auf Doppelte Vorlage. Ich nehme Basis-EFS, da wir eine Dateisystem-Verschlüsselung demonstrieren wollen (EFS steht für Encrypting File System).
  2. Jetzt musst du dich zuerst für eine Abwärtskompatibilität entscheiden. Ich wähle hier Server 2008, da sich in meinem Netzwerk keine älteren Server befinden.
  3. Dann kannst du deine Anpassungen vornehmen. Zwei Einstellungen gibt es, die wir hier machen können.
    • Eine davon befindet sich im Reiter Abgelöste Vorlagen. Wenn du dort auf Hinzufügen klickst, kannst du eine alte Zertifikatsvorlage auswählen, die du mit deiner neuen Vorlage ablösen möchtest. Die alte ist danach nicht mehr gültig, bzw. verweist automatisch auf deine neue Vorlage.
    • Die andere Einstellung ist im Reiter Sicherheit. Hier müssen wir Benutzer oder Benutzergruppen hinzufügen und diesen die Erlaubnis erteile, das Zertifikat zu registrieren. Das Recht Automatisch registrieren ist vorerst nicht nötig. Dazu kommen wir später.
  4. Anschließend kannst du den Dialog speichern. Das Zertifikat erscheint jetzt unter dem gegebenen Namen ebenfalls unter Zertifikatsvorlagen.

Das Zertifikat ist jetzt zwar vorbereitet, aber noch nicht verfügbar für unsere Domäne. Dazu musst du erneut im Server Manager -> Rollen auf Active Directory Zertifikatsdienste klicken und dann nicht die Zertifikatsvorlagen, sondern den Namen deiner Zertifizierungsstelle anklicken. Hier findest du jetzt einen Ordner der auch Zertifikatvorlagen heisst. Wenn du den öffnest, findet sich dort eine deutlich kleinere Auswahl an Zertifikaten, und unseres ist noch nicht dabei.

Das ist auf den ersten Blick etwas verwirrend, macht aber im Grunde genommen Sinn. Prinzipiell kann eine Windows Server Instanz ja mehrere CAs betreiben. Wir müssen also noch definieren, welche CA unser Zertifikat auch anbieten soll. Wir machen dafür einen Rechtsklick in den Ordner und wählen Neu -> Auszustellenden Zertifikatsvorlage. Jetzt sehen wir wieder alle Zertifikate aus dem vorherigen Schritt und können daraus unseres auswählen.

Zertifikate anfordern

Ein Client hat jetzt die Möglichkeit Zertifikate anzufordern.

  1. Um das zu testen, erstelle auf dem Domain Controller im Active Directory einen User namens JamesBrown und logge dich mit diesem auf einem Client Rechner in der Domäne ein. Stelle außerdem sicher, dass James Brown auf dem Zertifizierungsserver das Recht bekommen hat unser neues Zertifikat zu registrieren.
  2. Öffne jetzt die Microsoft Management Konsole (über Start -> Programme durchsuchen oder Start -> Ausführen einfach mmc eintippen und Enter drücken) und füge über Datei einen Snap-in hinzu.
  3. In der Auswahlliste doppelklick Zertifikate und klick dann auf OK.
  4. In der Verzeichnisstruktur die sich jetzt links zeigen sollte, steht oben der noch leere Ordner "Eigene Zertifikate".
  5. Mit einem Rechtsklick darauf und dann Alle Aufgaben -> Neues Zertifikat anfordern kann jetzt ein Assistent durchlaufen werden, der einem alle verfügbaren Zertifikate auswählbar macht.
  6. Am Ende einfach das eigene Zertifikat auswählen und den Assistenten abschließen.
  7. Und schon ist man offiziell zertifiziert und kann Daten verschlüsseln und entschlüsseln.

Dass das auch funktioniert, kann man sehr schön mit einem Nutzer ohne Zertifikat demonstrieren.

  1. Erstelle auf dem Domain Controller ein Verzeichnis auf das du deinen Clients Lese- und Schreibzugriff gibst (z.B. als gemeinsames Netzlaufwerk) und generiere in diesem Ordner eine neue Textdatei namens geheim.txt.
  2. Anschließend klickst du rechts auf die Datei -> Eigenschaften -> Erweitert und setzt einen Haken bei "Inhalt verschlüsseln um Daten zu schützen".
  3. Jetzt wechsel auf einen Client Rechner und log dich mit JamesBrown ein. JamesBrown hat ja bereits ein Zertifikat bezogen. Falls nicht, hole das jetzt nach, denn Nutzer ohne Zertifikat haben keinen Zugriff.
  4. Wenn du jetzt in den gemeinsamen Ordner gehst und versuchst die Textdatei zu öffnen wird dir aber trotzdem der Zugriff verweigert. Warum? James Brown hat zwar jetzt ein Zertifikat, dieses Zertifikat wurde aber nicht bei der Verschlüsselung der Datei berücksichtigt und kann demnach auch keine Entschlüsselung vornehmen. Sonst könnte ja jeder, der irgendein Zertifikat besitzt alles entschlüsseln.
  5. Wechsel in den Domain Controller, klick erneut rechts auf die Datei -> Eigenschaften -> Erweitert.
  6. Jetzt ist der Button Details nicht mehr ausgegraut. Klicke darauf und schon kannst du die Berechtigungen hinzufügen. Die Verschlüsselung wird jetzt so abgeändert, dass der Public Key des Zertifikates von James Brown ebenfalls einbezogen ist.
  7. Wenn du jetzt versuchst mit JamesBrown die Datei zu öffnen, solltest du den unverschlüsselten Inhalt angezeigt bekommen.

EFS ist für sich nochmal ein eigenes Thema, hier gibt es noch viele weitere Einstellmöglichkeiten und auch wichtige Dinge, die man bedenken muss, bevor man anfängt wie verrückt alles zu verschlüsseln. Aber daran lässt sich relativ schnell die Bedeutung von Zertifikaten und deren Rolle im Bereich Sicherheit demonstrieren.

<-- Zurück | Weiter -->

Kommentare

Wassup, еu acesse ѕeu blog ԁiário . Seu escrita
estilo é espirituoso, manter -ѕe! http://dl4.pl/4dzdz

I need to to thank you for this wonderful read!!

I definitely loved every bit of it. I've got you saved as a favorite to check out new
things you post…

Here is my homepage; diesel bug treatment (Jacques) https://dieselbugtreatment.wordpress.com/

My name is Bob (26 years old) and my hobbies are Auto audiophilia and
Seashell Collecting. http://www.totalbeauty.com/community/members/gajendlane373