tice.de websiteproductions tice.de websiteproductions Main address:Julius-Ludowieg-Str. 84 21073 Hamburg, Germany Tel:+49 172 418 76 98E-mail:blog@tice.de
Wie funktioniert Verschlüsselung mit SSL (https)? | CMS Hamburg

Wie funktioniert Verschlüsselung mit SSL (https)?

Montag, 23. Dezember 2013


Vielleicht hat der ein oder andere schon einmal gehört, dass die moderne gesicherte Datenübertragung im Internet mittels Primzahlen gemacht wird. Zu sehen ist dies in der Regel in der Adresszeile des Browsers am https bzw. einem Schloss-Symbol (of auch in grün). Doch wie genau funktioniert das eigentlich?



Zunächst muss der Betreiber einer Webseite ein SSL-Zertifikat erwerben. Dieses bekommt er von einer der zertifizierten Stellen (z.B. GlobalSign Organization Validation CA über den Provider). Diese werden mit den Browserupdates beim Client installiert. Die Herausgeber dieser Zertifikate sind besonders unter Beobachtung, da Fehler die hier passieren auch für die Browserhersteller von Bedeutung sind.

Die Schritte im Einzelnen:

Schlüssel
  • Generieren eines Schlüsselpaares für den Webserver
  • Zertifizierung des Webservers nach Prüfung durch die CA (Certificate Authority*)
  • Verteilen des CA-Zertifikates auf alle Browser

Asymmetrischer Verbindungsaufbau
  • Aufbau der Verbindung https://... auf Port 443
  • Übertragen des Webserver-Zertifikats zum Browser
  • Prüfen der Signatur des Zertifikats anhand des von der CA hinterlegten Schlüssels, bei Erfolg ist die Identität des Webservers festgestellt
  • Generieren eines temporären Sitzungsschlüssels (durch Browser)
  • Senden des Schlüssels in einer nur für den Webserver lesbaren Art
  • Entschlüsseln des Sitzungsschlüssels (vom Server)

RSA Verschlüsselung durch Primzahlen
  1. Nachricht verschlüsseln: Die Nachricht wird in eine Ziffernfolge verwandelt, zum Beispiel mit A=11, B=12, .... Die Art der Transformation ist für die Sicherheit des Verfahrens irrelevant, sie dient nur der Möglichkeit diese per Algorhythmus zu verschlüsseln. Z.B. über eine solche Tabelle:

    · 0 1 2 3 4 5 6 7 8 9
    1 · A B C D E F G H I
    2 J K L M N O P Q R S
    3 T U V W X Y Z a b c
    4 d e f g h i j k l m
    5 n o p q r s t u v w
    6 x y z . , : ; ' "
    7 ! @ # $ % ^ & * - +
    8 ( ) [ ] { } ? / < >
    9 0 1 2 3 4 5 6 7 8 9

    So wird aus der Zeichenkette cms-hamburg.de die Ziffernfolge 3949557844374938575443634041.

  2. RSA-Schlüssel bilden: Wir nehmen zwei grosse Primzahlen p und q und bilden das Produkt N = p * q. Dann wählen wir eine zu φ(N)=(p-1)*(q-1) teilerfremde natürliche Zahl c > 1 und bestimmen ein natürliches d mit der Eigenschaft, dass c * d ≡ 1 (mod φ(N)). Nach Vorraussetzung ist die Kongruenz eindeutig mod φ(N) lösbar. Jetzt haben wir einen öffentlichen Schlüssel*: (c, N) mit dem man Nachrichten chiffriert, und einen geheimen Schlüssel: (d, N) mit dem man die chiffrierte Nachrichten dechriffiert.

    *z.B. 256 Byte : DD 35 1D F2 20 54 26 1A D0 EF A5 6F 81 76 59 70 DC E7 F4 D4 03 24 1F 24 0E 9D 22 9F D4 27 32 7A 2B 7C EE 8B E3 61 62 38 17 AF B4 4B 7A 9F 67 21 1C 2D 95 54 BA 79 BA B6 C4 F2 0D 21 74 17 67 74 E2 B1 64 08 99 60 78 FB 67 C2 4B F7 27 8D 6F 36 76 CF 31 8C E5 F1 06 D7 DC 57 0E 5B AC EE CE 2D AB AA A9 70 2F 02 86 C8 B1 D0 08 07 95 EA 2A EC D1 9E E4 36 5C 3B A6 36 B5 43 8B AB F7 8E 3E 00 1B FF 85 59 6B 62 01 8D 82 E8 4A BA 38 B3 E0 C3 F4 6D 19 A7 EA 05 DD 84 67 C2 66 C7 24 02 ...

  3. RSA-Chiffrieren: A. möchte B. eine Nachricht x senden. A. nimmt den öffentlichen Schlüssel (c, N) von B. und sendet: y ≡ xc mod N

  4. RSA-Dechiffrieren: B. erhält von A. die verschlüsselte Nachricht y. B. nimmt seinen geheimen Schlüssel (d, N) und bildet: x ≡ yd mod N

    Jeder, der d kennt, kann die Nachricht lesen. Dafür muss man aber φ(N)=(p-1)*(q-1) kennen, d.h. die Primzahlen p und q kennen. Das RSA-Verfahren gilt in sofern als sicher, weil eine Primfaktorzerlegung von Zahlen mit hinreichend grossen Primfaktoren nach dem aktuellen Stand zahlentheoretischer Forschung und der aktuellen Computer-Technologie i.a. eine Programmlaufzeit von Millionenen von Jahren haben kann.

* Diese öffentlichen Stellen (z.B. die Bundesnetzagentur) bestätigen lediglich die öffentlichen Schlüssel zusammen mit dessen Herausgeber über Browserzertifikate.

Was heißt φ (Phi)?

Die Eulersche Phi-Funktion gibt für jede natürliche Zahl n an, wie viele zu n teilerfremde natürliche Zahlen es gibt, die nicht größer als n sind.

z.B. ist die Zahl 6 zu genau zwei der sechs Zahlen von 1 bis 6 teilerfremd (nämlich zu 1 und zu 5), also ist Phi(6) = 2.
Die Zahl 13 ist als Primzahl zu jeder der zwölf Zahlen von 1 bis 12 teilerfremd (aber natürlich nicht zu 13), also ist Phi(13) = 12.

Was heißt RSA?

Die Buchstabenkombination geht auf die drei Mathematiker Ronald L. Rivest, Adi Shamir und Leonard Adleman zurück die 1978 dieses spezielle Verfahren der Primzahlkombination zur Verschlüsselung entwickelt haben.

Was heißt SSL?

SSL (Secure Sockets Layer) heute weiterentwickelt als TLS (Transport Layer Security) bezeichnet, ist das Übertragungsverfahren, bei dem eine zertifikatsbasierte Authentifizierung zum Standard gehört. Die Vertrauenswürdigkeit der Zertifizierungsstelle ist dabei entscheidend, da im Prinzip sonst trotz Bestätigung der Datenverkehr mitgelesen werden kann.


Quellen:
http://primzahlen.zeta24.com/de/rsa_algorithmus_primzahlen_kryptographie.php
https://www.softed.de/fachthema/https.aspx
http://de.wikipedia.org/wiki/Eulersche_Phi-Funktion

Buchtipp: Die Musik der Primzahlen







Kommentar eingeben:







8 7 4 6 6 b ☞