Zertifikate für's Drucken generieren

492 views 0

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 Zer­tifikate.

  • 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 Zwi­schenzertifizierungsstelle) unterschrieben. Ein Server-Zertifikat wird auf dem Rech­ner 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üs­selung wird jeweils pro ThinPrint Port eingestellt.

Auf dem Zertifikat-Server wird eine Stammzertifizierungsstelle (Certification Authority) eingerichtet und ein Stammzertifikat erzeugt. Anschließend können Ser­ver-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 offizi­ellen Stammzertifizierungsstelle erwerben. Die Stammzertifikate der bekannten Zer­tifizierungsstellen sind in der Regel bereits im Betriebssystem integriert und müssen nicht importiert werden. In diesem Fall müssen nur Ser­ver-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 Pro­tokoll verwendet wird: TCP/IP, ICA oder RDP. Das heißt, die ThinPrint-Verschlüsse­lung erfolgt unabhängig von und gegebenenfalls zusätzlich zur Verschlüsselung des virtuellen Kanals (ICA/RDP). Bei ThinPrint wird der einzelne Druckauftrag verschlüs­selt, 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 unter­schrieben 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 ant­wortet 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 Ser­ver-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 Sitzungs­schlü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üs­seln (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-Informatio­nen.

Wie finde ich passende Zertifikate?

Um an die notwendigen Zertifikate zu gelangen, gibt es drei Möglichkeiten:

  1. Zertifikate selbst generieren (im Folgenden beschrieben)
  2. Zertifikate bei einer Zertifizierungsstelle kaufen
  3. 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ön­nen.

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 aufge­baut werden soll, prüft der Server, ob das empfangene Zertifikat von ihm unterschrie­ben 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 aller­dings auch einen TCP-Port für verschlüsselte Druckaufträge verwenden. Das Umlen­ken der Druckaufträge auf den falschen Client würde darüber hinaus eine Manipula­tion 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 ver­schiedene 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 umgewan­delt 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 Über­tragung. 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 die­ses 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 asymmetri­sche 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 wer­den, 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 zusam­men 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 pri­vaten Schlüssel des Clients, der auf dem Client-Rechner im Zertifikatspeicher bei der Zertifikat-Erzeugung hinterlegt wurde.

Previous Page
Next Page

War dies hilfreich?