[Eisfair] Certs: Sektionen im server.pem

Juergen Edner juergen at eisfair.org
Sa Feb 27 19:18:44 CET 2016


Hallo Marcus,

>>> Was ist, wenn man ds server.pem an einem anderen Rechner importiert,
>>> damit gerät doch auch der Private-Key auf einen anderen Rechner.
>>
>> Korrekt. Aber wieso solltest Du den Key auf einen anderen Rechner tun?
>> Normalerweise macht man einen Key pro Dienst oder vielleicht auch einen
>> Key pro Rechner, aber den Key auf einen anderen Rechner kopieren geht
>> normalerweise nicht, weil ja der common name gleich dem hostname sein
>> muss.

ich denke Du vermischt hier zwei Dinge, einmal die Absicherung
eines Verbindungsweges mit Hilfe eines Zertifikates und einmal
die Bereitstellung eines abgesicherten Dienstes auf einem Server.

Wenn Du eine einen eisfair-Server als lokale CA konfiguriert hast,
dann generiert er wie erforderlich die Zertifikatsdateien inklusive
des benötigten Schlüssels, dem Diffie Hellman-Parametern und dem
Zertifikat selbst um einen Dienst in Deinem lokalen Netz damit
betreiben zu können.
Diese Zertifikatsdateien gibst Du niemals direkt aus der Hand oder
kopierst Sie auf einen anderen Server, es sei denn dies machst Du
bewusst weil Du die Kontrolle über diesen entfernten Server hast
und ein Zertifikat für den Betrieb eines Dienstes benötigst.
In diesem Fall spielt es aus meiner Sicht keine Rolle, ob der
Schlüssel auf dem CA-Rechner oder auf einem anderen Rechner in Deinem
Netz abgespeichert wird. Ich bevorzuge eine zentrale Ablage, da dann
die Datensicherung  einfacher ist.

Falls Du als CA, von einer x-beliebigen Person eine Aufforderung zum
Signieren eines Zertifkates erhältst, oder eine solche Zertifikats-
anfrage auf einem anderen Server selbst erzeugt hast, so wird Dir
nur die CSR-Datei ohne Schlüssel zugesandt. Diese CSR-Datei
unterschreibst Du und die generierte Zertifikatsdatei enthält in
diesem Fall auch keinen Schlüssel.

> Wenn ich mir das Zertifikat eines Provider-Mailserver hole, importiere ich
> ja auch ein pem auf dem eis.
>
> Bei exim muss man genau dieses tun, um eine verschlüsselte Verbindung zu
> initiieren; nur wenn der lokal gespeicherte Schlüssel mit dem vom Provider
> übermittelten Zertifikats übereinstimmt, kommt eine Verbindung zustande.

Wie zuvor geschrieben, Du vermischt hier zwei Dinge. Wenn Du Daten
an einen entfernten Rechner sendest, reicht es dessen Zertifikat zu
kennen, wogegen der entfernte Rechner aber den privaten Schlüssel
benötigt um die Daten _entschlüsseln_ zu können.
Gleiches gilt für Dienste die Du auf Deinem eisfair-Server bereit
stellst. Wenn ein anderer Rechner eine Verbindung zu diesem Server
aufbauen soll, benötigt er nur das Zertifikat, welches beim
Verbindungsaufbau bekannt gemacht wird. Den privaten Schlüssel
benötigt nur die lokale Instanz des Dienstes um die Daten
entschlüsseln zu können.

> fetchmail vergleicht das über den Fingerprint; habe aber noch nie
> ausprobiert, ob man nun das Serverzertifikat wieder löschen könnte.

Dies ist noch eine andere Stufe der Sicherheit. Durch das zusätzliche
Prüfen des Fingerprints, wird nur ein einziges Zertifikat vom entfernten
Rechner für einen Verbindungsaufbau akzeptiert und ansonsten die
Verbindung beendet. Der Großteil aller abgesicherten Verbindungen im
Internet arbeitet aber ohne diese Sicherheitsstufe.

Durch die Verwendung eines Fingerprints in Fetchmail, in Kombination mit
einer automatischen Aktualisierung dieses Parameters hebelt quasi
diese Sicherheitsstufe aus, sodass man auch gleich ganz darauf
verzichten kann.

> Ich denke, dass es schon Sinn machen kann, ein Zertifikat - und nichts
> anderes ist ja das server.pem - auf einem Client zu installieren.

Warum muss auf einem Client ein Serverzertifikat eines entfernten
Servers installiert werden? Dies ist üblicherweise nicht notwendig
und wird nur benötigt wenn Du eine Zertifikatskette auf dem Server
prüfen willst.
Wenn Du z.B. das CA-Bundle installiert hast, kannst Du ja auch
problemlos zu allen Servern deren Zertifikate von diesen CA
unterschrieben wurde, eine Verbindung aufbauen. Das Herunterladen
des entfernten Zertifikats ist für den Betrieb üblicherweise nicht
erforderlich, da es beim Verbindungsaufbau bereit gestellt wird.

> Wenn man nun zu diesem Zweck einfach die Zertifikatsdatei komplett mittels
> Datenträger überträgt, steht man nun in der Gefahr private Schlüsselteile
> preiszugeben.

Wie schon geschrieben, dies ist NICHT erforderlich.

> Also ist hier einfach Vorsicht angesagt und vor einem Transfer das pem zu
> bereinigen.

Falls Du es für unbedingt erforderlich hältst ein Zertifikatsdatei
kopieren zu müssen, dann verwende einfach die CSR-Datei, welche nur
das Zertifikat enthält.

Gruß Jürgen
-- 
Mail: juergen at eisfair.org


Mehr Informationen über die Mailingliste Eisfair