SSL (Secure Sockets Layer) ist ein veraltetes Verschlüsselungsprotokoll, das für sichere Kommunikation zwischen Clients (z.B. Webbrowser) und Servern entwickelt wurde. Es wurde durch das modernere und sicherere TLS (Transport Layer Security) ersetzt. Dennoch kann eine Erklärung der SSL-Verschlüsselung und ihrer Komponenten helfen, die Grundlagen der Verschlüsselung und Zertifikate besser zu verstehen.
SSL-Verschlüsselung besteht aus mehreren Phasen und verwendet verschiedene Algorithmen, um die Sicherheit der Kommunikation zu gewährleisten:
-
Handshake: Der Client und der Server tauschen Informationen aus und einigen sich auf die Verschlüsselungsalgorithmen und Schlüssel, die für die Sitzung verwendet werden sollen. In dieser Phase wird auch das SSL-Zertifikat des Servers überprüft.
-
Schlüsselaustausch: Die Parteien einigen sich auf einen gemeinsamen Sitzungsschlüssel, der für die symmetrische Verschlüsselung verwendet wird. Der Schlüsselaustausch kann mit asymmetrischen Verschlüsselungsalgorithmen wie RSA, DH (Diffie-Hellman) oder ECDH (Elliptic Curve Diffie-Hellman) erfolgen.
-
Datenübertragung: Die Kommunikation zwischen Client und Server ist nun verschlüsselt und erfolgt über symmetrische Verschlüsselungsalgorithmen wie AES, 3DES oder RC4 (veraltet und unsicher).
Es gibt unterschiedliche Algorithmen, weil sie verschiedene Sicherheits- und Leistungsmerkmale bieten. Manche Algorithmen bieten eine höhere Verschlüsselungsstärke, benötigen aber auch mehr Rechenleistung, während andere Algorithmen schneller sind, aber weniger sicher. Die Wahl des richtigen Algorithmus hängt von den Sicherheitsanforderungen und der Leistungsfähigkeit der beteiligten Systeme ab.
Die Zertifikatslänge bezieht sich auf die Länge des öffentlichen Schlüssels, der im SSL-/TLS-Zertifikat enthalten ist. Eine längere Schlüssellänge bedeutet im Allgemeinen eine höhere Sicherheit, da sie die Anzahl der möglichen Schlüsselkombinationen erhöht und somit die Zeit, die benötigt wird, um den Schlüssel durch Brute-Force-Angriffe zu knacken. Allerdings kann eine längere Schlüssellänge auch zu einer höheren Rechenbelastung führen. Gängige Schlüssellängen sind 2048 Bit und 3072 Bit, wobei 2048 Bit häufig als ausreichend sicher und gut ausbalanciert in Bezug auf die Leistung angesehen wird.
Der beste Standard hängt von den spezifischen Anforderungen und dem Kontext ab. Im Allgemeinen sollte man SSL vermeiden und stattdessen TLS verwenden, da es sicherer und moderner ist. Bei der Verwendung von TLS sollten Sie die neueste verfügbare Version (TLS 1.3) und die stärksten unterstützten Verschlüsselungsalgorithmen verwenden. Für Zertifikate empfiehlt es sich, mindestens 2048-Bit-Schlüssel zu verwenden, wobei in besonders sicherheitskritischen Umgebungen auch längere Schlüssel in Betracht gezogen werden können.