20 Grundlagen der PKI und Asymmetrische Verschlüsselung

Die Public Key Infrastructure (PKI) ist ein Framework, das asymmetrische Verschlüsselung verwendet, um sichere Kommunikation zu ermöglichen. Bei der asymmetrischen Verschlüsselung gibt es zwei Schlüssel: einen privaten Schlüssel (Private Key), der geheim bleibt, und einen öffentlichen Schlüssel (Public Key), der frei zugänglich ist. Nachrichten, die mit dem Public Key verschlüsselt werden, können nur mit dem Private Key entschlüsselt werden und umgekehrt.

PKI bietet Integrität, Vertraulichkeit und Authentifizierung, indem sie es ermöglicht, Nachrichten sicher zu signieren und zu verschlüsseln.

20.1 Public Key für den Zugang zu GitLab

GitLab nutzt ein Public Key-basiertes Authentifizierungssystem, um sichere Zugriffe auf das Repository zu ermöglichen. Benutzer generieren ein Schlüsselpaar (Public und Private Key) und hinterlegen den Public Key in ihrem GitLab-Account. Wenn sich der Benutzer verbindet, wird der Public Key gegen den hinterlegten Schlüssel abgeglichen, und nur der Besitzer des passenden Private Keys erhält Zugang.

20.2 Erstellung eines Key-Pairs und SSH Agent

Die Erstellung eines Key-Pairs kann mit Tools wie ssh-keygen erfolgen. Hier wird ein Public-Private-Key-Pair generiert:

ssh-keygen -t rsa -b 4096

Der Public Key wird in GitLab hochgeladen, während der Private Key sicher auf dem System bleibt. Der SSH Agent kann verwendet werden, um den Private Key für eine Sitzung im Speicher zu behalten und sich automatisch bei Systemen anzumelden.

20.3 Base64-Encoding und PEM-Format

Base64-Encoding wird verwendet, um binäre Daten in Text umzuwandeln, der sicher übertragen und in Textform gespeichert werden kann. Dies ist besonders nützlich für das Clipboard und Protokolle, die nur textbasierte Daten akzeptieren. Das PEM-Format (Privacy-Enhanced Mail) nutzt Base64-Encoding und spezielle Header, um Schlüssel und Zertifikate in einer plattformunabhängigen Form zu speichern.

20.4 Verwendung des Clipboards für Public Key

Da Base64-Encoding textbasiert ist, können Public Keys einfach über das Clipboard kopiert und in GitLab eingefügt werden. GitLab bietet in den Benutzereinstellungen eine einfache Möglichkeit, den Public Key zu hinterlegen, um ihn für SSH-Authentifizierungen zu verwenden.