Welche Zertifikate benötige ich?
Verschlüsselt drucken durch Zertifikataustausch
Wie finde ich passende Zertifikate?
Wie generiere ich Zertifikate?
Welche Schlüssellänge gilt als sicher?
Welche Zertifikate benötige ich?
Beim Senden von Druckaufträgen von der ThinPrint Engine zum ThinPrint Client ist eine Verschlüsselung mit Transport Layer Security (TLS 1.x) und mit Secure Socket Layer (SSL 3.0) möglich. Hierzu benötigen Sie drei verschiedene Zertifikate.
- für Client-Rechner:
- ein Zertifikat, das zur Serverauthentifizierung geeignet ist
- für zentrale Druckserver:
- ein Zertifikat, das zur Serverauthentifizierung geeignet ist
- das dazugehörige Ausstellerzertifikat, das von einer Stamm- oder Zwischenzertifizierungsstelle stammt
Die Server-Zertifikate werden vom Ausstellerzertifikat (von einer Stamm- oder Zwischenzertifizierungsstelle) unterschrieben. Ein Server-Zertifikat wird auf dem Rechner oder dem ThinPrint Hub installiert, auf dem der ThinPrint Client läuft. Ein anderes Server-Zertifikat und das Ausstellerzertifikat installieren Sie auf dem zentralen Druckserver. Die Verschlüsselung wird jeweils pro ThinPrint Port eingestellt.
Auf dem Zertifikat-Server wird eine Stammzertifizierungsstelle (Certification Authority) eingerichtet und ein Stammzertifikat erzeugt. Anschließend können Server-Zertifikate vom Zertifikat-Server angefordert werden.
Das Stammzertifikat kann per Download angefordert oder importiert und dann an alle Server einer Farm verteilt werden.
Sie können den Zertifikat-Server selbst aufsetzen oder Zertifikate von einer offiziellen Stammzertifizierungsstelle erwerben. Die Stammzertifikate der bekannten Zertifizierungsstellen sind in der Regel bereits im Betriebssystem integriert und müssen nicht importiert werden. In diesem Fall müssen nur Server-Zertifikate beim entsprechenden Anbieter angefordert werden.
Verschlüsselt drucken durch Zertifikataustausch
Der Druckauftrag wird komprimiert und danach verschlüsselt von der ThinPrint Engine an den ThinPrint Client gesendet, und zwar unabhängig davon, welches Protokoll verwendet wird: TCP/IP, ICA oder RDP. Das heißt, die ThinPrint-Verschlüsselung erfolgt unabhängig von und gegebenenfalls zusätzlich zur Verschlüsselung des virtuellen Kanals (ICA/RDP). Bei ThinPrint wird der einzelne Druckauftrag verschlüsselt, während bei Sitzungen auf Terminal-Servern oder virtuellen Desktops der (ICA/RDP-) Kanal verschlüsselt sein kann.
Besonders sinnvoll ist die ThinPrint-Verschlüsselung, wenn Daten über TCP/IP übertragen werden, zum Beispiel wenn zentrale Druckserver zum Einsatz kommen. Druckaufträge werden vom zentralen Druckserver verschlüsselt und vom ThinPrint Client entschlüsselt.
Die Verschlüsselung verhindert:
- dass Dritte mithören
- dass Druckdaten an den falschen Empfänger geschickt werden
Ein Druckauftrag soll nicht zum falschen Client gelangen. Das heißt, dass hier der Client beweisen muss, dass er berechtigt ist, Druckdaten vom Server zu empfangen. Dies wird durch das Zertifikat gewährleistet, das vom Aussteller-Zertifikat unterschrieben wurde.
Die folgende Grafik veranschaulicht die Server-Client-Kommunikation (genannt Handshaking), die der Übertragung eines verschlüsselten Druckauftrags vorausgeht. Dabei ist die Kommunikation vereinfacht dargestellt; der Schwerpunkt liegt auf dem Einsatz der Zertifikate.
Ablauf der Server-Client-Kommunikation, um verschlüsselt zu drucken (vereinfacht)
Der Server kündigt dem Client einen verschlüsselten Druckauftrag an. Der Client antwortet und teilt mit, ob er die Verschlüsselung entgegennehmen kann und welche kryptografischen Algorithmen er versteht (z.B. TLS 1.2). Dann sendet der Server sein Server-Zertifikat und seinerseits eine Liste der Algorithmen, die er versteht. Das Server-Zertifikat des zentralen Druckservers ist nur für das sogenannte Handshaking nötig, wo Client und Server sich authentifizieren. Außerdem fordert der Server das Zertifikat vom ThinPrint Client an. Der Client sendet daraufhin sein Zertifikat mit dem öffentlichen Schlüssel. Der Server prüft, ob dieses Zertifikat vom Aussteller- oder Stammzertifikat unterschrieben ist.
Der Server erzeugt nun einen Sitzungsschlüssel. Dies ist ein temporärer Schlüssel, der für jeden Druckauftrag neu erzeugt wird und nach Ankunft des Druckauftrags keine Gültigkeit mehr hat. Dieser Schlüssel wird aus verschiedenen Zufallszahlen gebildet, die Client und Server erzeugen. Der Server verschlüsselt diesen Sitzungsschlüssel mit dem öffentlichen Schlüssel, den ihm der Client geschickt hat. Der Client wiederum kann den Sitzungsschlüssel mithilfe seines privaten Schlüssels entschlüsseln (asymmetrische Verschlüsselung). Mit dem erzeugten Sitzungsschlüssel wird ab jetzt der gesamte Druckdaten-Verkehr verschlüsselt. Dies beginnt bereits mit der Ankündigung der Pakete, die gesendet werden sollen, und den Header-Informationen.
Wie finde ich passende Zertifikate?
Um an die notwendigen Zertifikate zu gelangen, gibt es drei Möglichkeiten:
- Zertifikate selbst generieren (im Folgenden beschrieben)
- Zertifikate bei einer Zertifizierungsstelle kaufen
- eigene Zertifizierungsstelle beantragen
Sie können Zertifikate bei einer der bekannten Zertifizierungsstellen kaufen. Für größere Firmen lohnt es sich möglicherweise, eine eigene (Unter-)Zertifizierungsstelle zu beantragen, damit weitere Zertifikate selbständig generiert und signiert werden können.
Wir empfehlen Möglichkeit 1, nämlich die Zertifikate selbst zu generieren. Neben der Kostenersparnis ist dies auch sicherer. Denn ein Zertifikat, das sich schon im Stammverzeichnis des Browsers befindet, kann eine Sicherheitslücke darstellen. In diesem Verzeichnis befinden sich bei den bekannten aktuellen Betriebssystemen standardmäßig mehrere Dutzend Zertifikate. Sobald eine sichere Verbindung aufgebaut werden soll, prüft der Server, ob das empfangene Zertifikat von ihm unterschrieben ist. Und da alle Clients, die ein von dieser Zertifizierungsstelle unterschriebenes Zertifikat enthalten, diese Anforderungen erfüllen, könnte auch ein unberechtigter Client Daten von einem fremden Server empfangen. Dazu müsste dieser Client allerdings auch einen TCP-Port für verschlüsselte Druckaufträge verwenden. Das Umlenken der Druckaufträge auf den falschen Client würde darüber hinaus eine Manipulation des Servers erfordern.
Aus diesem Grund empfehlen wir, Zertifikate selbst zu generieren.
Wie generiere ich Zertifikate?
Die Zertifikate basieren auf dem X.509-Standard. Um sie zu erzeugen, gibt es verschiedene Tools, zum Beispiel OpenSSL oder die Zertifikatdienste von Microsoft. Erzeugen Sie ein Stammzertifikat und ein Server-Zertifikat. Letzteres liegt (bei OpenSSL) in der Regel als .pem- oder .der-Datei vor, muss vom Stammzertifikat unterschrieben werden und anschließend ins Format .p12, .pfx oder .crt umgewandelt werden – oder in ein anderes Dateiformat, das von Windows verstanden wird. Bei Erzeugung des Zertifikats geben Sie die Verschlüsselungstiefe an.
Dann erzeugen Sie analog zum ersten Server-Zertifikat so viele Zertifikate, wie sie für Ihre Umgebung benötigen – z. B. ein Zertifikat pro Server und ein allgemeines für alle Client-Rechner. Je mehr Zertifikate Sie einsetzen, desto sicherer wird die Übertragung. Rein technisch benötigen Sie für ThinPrint minimal zwei Zertifikate: das Aussteller- und/oder Stammzertifikat und ein Server-Zertifikat, das Sie sowohl auf den zentralen Druckservern als auch auf den Clients verwenden können, wobei dieses vom Ausstellerzertifikat signiert sein muss.
Hinweis! In einer produktiven Umgebung empfehlen wir zur Erhöhung der Sicherheit:
- für jeden zentralen Druckserver und/oder ThinPrint Client ein individuelles Zertifikat zu generieren
- das Zertifikat jeweils direkt auf dem betreffenden Server oder Client vom Zertifikatserver anzufordern und hierbei die Option Mark keys as exportable deaktiviert zu lassen
- eine Schlüssellänge von mindestens 2048 zu verwenden
- den Hash-Algorithmus SHA256 oder einen höheren zu verwenden.
Welche Schlüssellänge gilt als sicher?
Wenn Sie Zertifikate selbst erstellen oder kaufen, spielt die Verschlüsselungstiefe eine Rolle für die Sicherheit. Je länger der Schlüssel, desto höher ist der Aufwand für Unbefugte, ihn zu entschlüsseln.
TLS und SSL kombinieren bei der Verschlüsselung symmetrische und asymmetrische Verschlüsselungsverfahren, die unterschiedliche Schlüssellängen erfordern. Symmetrisch bedeutet, dass Sender und Empfänger denselben Schlüssel benutzen, bei der asymmetrischen Verschlüsselung nehmen sie unterschiedliche.
Der Sitzungsschlüssel (session key), mit dem die Druckdaten verschlüsselt werden, ist ein symmetrischer Schlüssel. Hier wird zur Zeit eine Schlüssellänge von 128 als sicher angenommen.
Der Sitzungsschlüssel wiederum wird asymmetrisch verschlüsselt und so zusammen mit den Druckdaten übertragen. Für diese Übermittlung wird zur Zeit eine Länge von 2048 als sicher angenommen. Entschlüsselt wird diese Nachricht mit dem privaten Schlüssel des Clients, der auf dem Client-Rechner im Zertifikatspeicher bei der Zertifikat-Erzeugung hinterlegt wurde.