In IT-Systemen entscheidet die Wahl kryptografischer Verfahren über Vertraulichkeit, Integrität, Authentizität und oft auch über die Betriebskosten. In der Praxis begegnen Teams einer Mischung aus symmetrischer Verschlüsselung für Datenströme und Speicherverschlüsselung, asymmetrischer Kryptografie für Schlüsselaustausch und Signaturen sowie Hash-Verfahren für Integritätsprüfungen und Passwortspeicherung. Gleichzeitig kursieren widersprüchliche Aussagen zu „Schlüssellängen“, „Bit-Sicherheit“ und vermeintlicher Austauschbarkeit von RSA, ECC und AES, während Implementierungsdetails in TLS, Zertifikaten oder Passwort-Hashing häufig wichtiger sind als der Algorithmusname allein. Leserinnen und Leser stehen damit vor einer konkreten Auswahlfrage: Welche Verfahren sind für welchen Zweck geeignet, welche Parameter gelten als zeitgemäß, wie lassen sich Sicherheitsniveau und Performance realistisch vergleichen und welche typischen Fehlannahmen führen zu riskanten Entscheidungen im Betrieb?

Kryptografische Grundbegriffe: Verschlüsselung, Signatur, Hash und warum Kodierung etwas anderes ist
Kryptografie wird im Alltag oft als Sammelbegriff verwendet, obwohl unterschiedliche Verfahren unterschiedliche Ziele verfolgen. Verschlüsselung schützt Vertraulichkeit, Signaturen sichern Authentizität und Integrität, Hash-Funktionen liefern eindeutige Prüfsummen-Eigenschaften ohne „Entschlüsselbarkeit“. Zusätzlich existiert Kodierung (Encoding) als rein technische Darstellung von Daten, die keine Sicherheitsgarantie liefert. Eine saubere Begriffsabgrenzung verhindert typische Architekturfehler, etwa wenn ein Base64-kodiertes Token fälschlich als „verschlüsselt“ gilt oder wenn ein schneller Hash zur Passwortspeicherung eingesetzt wird.
Verschlüsselung: Vertraulichkeit durch Schlüssel und Betriebsarten
Verschlüsselung transformiert Klartext mithilfe eines Schlüssels in Geheimtext. Nur wer den passenden Schlüssel besitzt (oder bei asymmetrischen Verfahren den passenden privaten Schlüssel), kann wieder auf den Klartext zugreifen. Symmetrische Verfahren wie AES nutzen denselben geheimen Schlüssel für Ver- und Entschlüsselung; sie sind sehr schnell, erfordern aber eine sichere Schlüsselverteilung. Asymmetrische Verfahren wie RSA oder ECC trennen öffentlichen und privaten Schlüssel und eignen sich dadurch für Schlüsselaustausch, Identitäten und Signaturen, sind jedoch rechenintensiver.
In der Praxis hängt die Sicherheit nicht nur vom Algorithmus ab, sondern ebenso von Parametern und Betriebsarten. Bei Blockchiffren entscheidet der Modus über zentrale Eigenschaften: Authenticated Encryption (z. B. AES-GCM oder ChaCha20-Poly1305) liefert Vertraulichkeit und Integrität in einem Konstrukt. Ohne Authentifizierung kann ein Angreifer Inhalte oft manipulieren, selbst wenn er sie nicht lesen kann. Ebenso kritisch sind Initialisierungsvektoren/Nonces: Sie müssen je nach Modus eindeutig und korrekt erzeugt werden; Wiederverwendung kann katastrophale Folgen haben, insbesondere bei GCM.
Digitale Signaturen: Authentizität, Integrität und Nichtabstreitbarkeit
Eine digitale Signatur belegt, dass eine Nachricht (oder ein Dokument) unverändert ist und von einem Besitzer des privaten Schlüssels stammt. Technisch wird dabei üblicherweise nicht der gesamte Inhalt „signiert“, sondern ein Hash des Inhalts; signiert wird dann dieser Hashwert. Verifikation erfolgt mit dem zugehörigen öffentlichen Schlüssel. Signaturen verschlüsseln nicht: Der Inhalt bleibt im Klartext, sofern nicht zusätzlich eine Verschlüsselungsschicht genutzt wird.
Im TLS-Ökosystem signieren Zertifizierungsstellen (CAs) Zertifikate, um Bindungen zwischen Domainnamen und öffentlichen Schlüsseln zu bestätigen. Der Server weist im Handshake nach, dass er den privaten Schlüssel zum Zertifikat besitzt. Moderne TLS-Versionen nutzen für den Schlüsselaustausch typischerweise (EC)DHE für Forward Secrecy; das Zertifikat dient primär der Authentisierung, nicht der direkten Datenverschlüsselung mit RSA. Dadurch bleibt die Vertraulichkeit vergangener Sitzungen auch dann geschützt, wenn der langfristige Serversignaturschlüssel später kompromittiert wird.
Hash-Funktionen: Einweg-Abbildung mit definierten Sicherheitseigenschaften
Kryptografische Hash-Funktionen bilden Eingaben beliebiger Länge auf Ausgaben fester Länge ab. Wichtige Eigenschaften sind Präbildresistenz (aus dem Hash keinen Eingang rekonstruieren), Zweitpräbildresistenz (zu einer gegebenen Nachricht keine andere mit gleichem Hash finden) und Kollisionsresistenz (keine zwei unterschiedlichen Nachrichten mit gleichem Hash finden). Hashes eignen sich für Integritätsprüfungen, Signaturen (als Vorverarbeitung) und als Baustein in Protokollen, ersetzen aber keine Verschlüsselung.
Für Passwortspeicherung gelten andere Anforderungen als für allgemeine Integritäts-Hashes. Schnelle Funktionen wie SHA-256 sind für Passwörter ungeeignet, weil Angreifer Milliarden Kandidaten pro Sekunde testen können. Stattdessen kommen absichtlich langsame, parameterisierbare Verfahren mit Salt zum Einsatz, häufig als Key-Derivation-Function (KDF) oder speziell als Passwort-Hash. Argon2id (Gewinner der Password Hashing Competition) und bcrypt sind gängige Optionen; scrypt ist ebenfalls verbreitet. Entscheidend sind ein eindeutiger Salt pro Passwort und eine Konfiguration, die Kosten für Offline-Angriffe erhöht und sich an neue Hardware anpassen lässt.
Kodierung (Encoding) und Kompression: Transport- und Speicherformate ohne Sicherheitswirkung
Kodierung transformiert Daten, um sie in einem bestimmten Kanal darstellbar zu machen, etwa als ASCII-kompatible Zeichenfolge. Base64, URL-Encoding oder JSON-Escaping sind reversible Darstellungen ohne Geheimnis. Wer die Kodierung kennt, kann die Originaldaten sofort wiederherstellen; ein Schlüssel existiert nicht. Kompression (z. B. DEFLATE, Brotli) reduziert die Größe, hat aber ebenfalls keine kryptografische Schutzfunktion. In Sicherheitskontexten führt die Verwechslung häufig zu Datenlecks, etwa wenn API-Token lediglich base64-kodiert gespeichert oder übertragen werden.
| Begriff | Ziel | Schlüsselmaterial | Rückgängig machbar? | Typische Beispiele |
|---|---|---|---|---|
| Verschlüsselung | Vertraulichkeit (oft zusätzlich Integrität bei AEAD) | Ja (symmetrisch: geheimer Schlüssel; asymmetrisch: privater Schlüssel) | Ja, mit passendem Schlüssel | AES-GCM, ChaCha20-Poly1305; RSA/ECC für Schlüsselaustausch |
| Digitale Signatur | Authentizität und Integrität, ggf. Nichtabstreitbarkeit | Ja (privater Schlüssel zum Signieren, öffentlicher zum Prüfen) | Nicht „rückgängig“; verifizierbar | Ed25519, ECDSA, RSA-PSS |
| Hash | Integrität/Referenzwert, Baustein für Signaturen und Protokolle | Nein (bei reinem Hash); bei HMAC: geheimer Schlüssel | Nein (Einwegfunktion) | SHA-256, SHA-512, SHA-3; HMAC-SHA-256 |
| Kodierung | Darstellung/Transport/Interoperabilität | Nein | Ja, ohne Geheimnis | Base64, URL-Encoding, UTF-8 |
Häufige Missverständnisse und praktische Leitplanken
- „Base64 ist Verschlüsselung“:
Base64ist eine Kodierung; jede Partei kann ohne Schlüssel dekodieren. Geheimhaltung entsteht erst durch Verfahren wieAES-GCModer durch Transportabsicherung viaTLS. - „Hashen entspricht Verschlüsseln“: Ein Hash ist nicht umkehrbar; er schützt keine Vertraulichkeit. Für vertrauliche Daten ist Verschlüsselung erforderlich, für Integrität ein Hash oder besser ein authentifiziertes Konstrukt wie
HMACbzw. AEAD. - Passwortspeicherung mit schnellen Hashes:
SHA-256oderSHA-512ohne KDF sind für Passwörter ungeeignet. Üblich sindArgon2id,bcryptoderscryptmit individuellem Salt; Parameter (Zeit-/Speicheraufwand) müssen regelmäßig überprüft werden. - „Signatur verschlüsselt den Inhalt“: Signaturen belegen Herkunft und Unverändertheit, verbergen aber keinen Inhalt. Vertraulichkeit entsteht erst durch zusätzliche Verschlüsselung oder durch einen geschützten Transportkanal.
- Integrität ohne Authentizität: Ein nackter Hash (z. B.
SHA-256) verhindert keine Manipulation, wenn ein Angreifer den Hash mit austauschen kann. Für Authentizität ist ein geheimer Schlüssel (HMAC) oder eine Signatur notwendig.
Diese Unterscheidungen wirken sich unmittelbar auf Systemdesign aus: Für gespeicherte Daten (Data-at-Rest) zählt Schlüsselverwaltung, Rotationsstrategie und die Trennung von Daten und Schlüsseln. Für Datenübertragung (Data-in-Transit) ist neben starker Kryptografie die korrekte Protokollauswahl entscheidend, etwa TLS mit zeitgemäßen Cipher Suites, verlässlicher Zertifikatsprüfung und abgesicherter Namensvalidierung. Ohne diese Grundlagen bleibt die Diskussion über AES, RSA, ECC oder Hash-Verfahren reine Theorie.
Vergleichstabellen zu AES, RSA, ECC und Hash-Verfahren: Parameter, Sicherheitsniveau, Performance und typische Einsatzfälle
Vergleichstabellen helfen, Kryptoverfahren anhand messbarer Parameter einzuordnen: Sicherheitsniveau (in der Praxis meist als „Bit-Sicherheitsäquivalent“ kommuniziert), typische Schlüssellängen, Performance-Eigenschaften sowie Eignung für Anwendungsfälle wie Datenverschlüsselung, Schlüsselaustausch, Signaturen oder Integritätsprüfungen. Wichtig ist die Trennung zwischen Verfahren zur Vertraulichkeit (Verschlüsselung), zur Authentizität/Integrität (Signaturen, MACs) und reinen Einwegfunktionen (Hashing).
Symmetrisch vs. asymmetrisch vs. Hash: Einordnung in einer Tabelle
Symmetrische Algorithmen wie AES arbeiten mit demselben Geheimnis für Ver- und Entschlüsselung und sind für große Datenmengen sehr schnell. Asymmetrische Verfahren wie RSA und ECC trennen öffentlichen und privaten Schlüssel; sie eignen sich für Schlüsselaustausch und Signaturen, sind jedoch rechenintensiver. Hash-Verfahren wie SHA-2/SHA-3 erzeugen Prüfsummen fester Länge und liefern keine Entschlüsselbarkeit; sie dienen als Baustein für Integrität, Signaturen, Key-Derivation oder Passwort-Hashing (mit speziell dafür vorgesehenen Verfahren).
| Verfahren | Typ | Typische Parameter (Beispiele) | Sicherheitsniveau (grobe Einordnung) | Performance (typisch) | Häufige Einsatzfälle |
|---|---|---|---|---|---|
| AES (z. B. AES-128/192/256) | symmetrisch (Blockchiffre) | Schlüssellänge 128/192/256 Bit; Modus z. B. GCM/CTR/CBC | hoch; abhängig von Schlüssellänge und korrekt gewähltem Modus | sehr hoch; oft hardwarebeschleunigt (AES-NI/ARMv8 Crypto) | Datei-/Datenträgerverschlüsselung, VPN/TLS-Datenkanal, Datenbankfelder |
| RSA | asymmetrisch | Modulus typ. 2048/3072/4096 Bit; Padding z. B. OAEP (KEM/Encryption), PSS (Signaturen) | hoch bei 2048+, höher bei 3072+; stark abhängig von korrektem Padding | mittel bis niedrig; private Operationen deutlich teurer | TLS-Zertifikate (v. a. Signaturen), Signaturen, Legacy-Key-Transport |
| ECC (z. B. P-256, P-384, Ed25519) | asymmetrisch | Kurvenparameter; ECDHE (Schlüsselaustausch), ECDSA/EdDSA (Signaturen) | hoch; bei kleineren Schlüsseln oft RSA-äquivalent | hoch; meist schneller und mit kleineren Schlüsseln als RSA | TLS (ECDHE), moderne Signaturen (Ed25519), mobile/IoT |
| SHA-2 / SHA-3 | Hash | Ausgabe z. B. 256/384/512 Bit | hoch für Integrität; Kollisions-/Präbildresistenz abhängig von Variante | hoch; SHA-256 häufig sehr schnell, SHA-3 je nach Plattform unterschiedlich | Integritätsprüfungen, HMAC, Signaturen (Hashing der Nachricht), KDF-Baustein |
| bcrypt / Argon2id | Passwort-Hashing (speziell) | bcrypt: Cost-Faktor; Argon2id: Speicher/Iterationen/Parallelität | hoch gegen Offline-Angriffe bei korrekt gesetzten Parametern | absichtlich langsam; Argon2id zusätzlich speicherhart | Passwortspeicherung, Password Stretching |
Parameter, die den Sicherheitswert in der Praxis dominieren
Die reine Nennung eines Algorithmus reicht selten. Bei AES entscheidet der Betriebsmodus über Vertraulichkeit und Integrität: Authenticated Encryption (z. B. GCM) verhindert nicht nur Mitlesen, sondern erkennt Manipulation. Bei RSA hängt die Sicherheit im Encryption-Kontext zwingend an sicherem Padding; „RSA ohne OAEP“ gilt als Fehlkonfiguration. Bei ECC beeinflussen Kurvenauswahl, Implementierungsqualität und Side-Channel-Schutz die reale Sicherheit ebenso wie die mathematische Stärke. Für Hash-Verfahren ist die Frage entscheidend, ob Kollisionsresistenz (z. B. für Signaturen) oder Präbildresistenz (z. B. für Integritätsprüfungen) benötigt wird.
- AES-Moduswahl: Für neue Designs gilt
AES-GCModerChaCha20-Poly1305als Standard für AEAD;AES-CBCerfordert zusätzlich einen sicheren MAC (z. B.HMAC-SHA-256) und korrekte Reihenfolge (Encrypt-then-MAC). - Nonce/IV-Disziplin: Bei AEAD ist Wiederverwendung kritisch; in
AES-GCMdarf ein Nonce pro Schlüssel nicht wiederholt werden, da sonst Authentizität und teils Vertraulichkeit kollabieren. - RSA-Padding: Für Verschlüsselung/Key-Encapsulation ist
RSA-OAEPrelevant, für SignaturenRSA-PSS; alte Konstrukte wie „PKCS#1 v1.5 Encryption“ gelten als risikobehaftet und werden in modernen Profilen vermieden. - ECC-Schlüssel und Kurven: Häufige TLS-Kurven sind
secp256r1(P-256) undsecp384r1; für Signaturen istEd25519verbreitet, mit anderen Implementierungseigenschaften als ECDSA. - Hash-Funktion vs. Passwort-Hashing:
SHA-256ist keine geeignete alleinige Passwortspeicherung; für Passwörter sindArgon2idoderbcryptvorgesehen, optional mit systemseitigem Pepper.
Schlüssellängen-Äquivalenz: praxisnahe Orientierung
Für Management-Entscheidungen wird häufig in Sicherheitsäquivalenten gedacht: Symmetrische 128 Bit gelten im Regelfall als sehr robust; 256 Bit dienen oft als zusätzlicher Puffer, etwa bei langfristigen Schutzbedarfen oder konservativen Policies. Asymmetrische Verfahren benötigen deutlich größere Parameter, um ein ähnliches Angriffsbudget zu erfordern. Die verbreitete Faustregel ordnet 3072-Bit-RSA ungefähr in die Nähe von 128-Bit-symmetrischer Sicherheit ein, während P-256 bei ECC oft als vergleichbares Niveau betrachtet wird. Solche Äquivalenzen sind Vereinfachungen: Protokolldetails, Implementierung, Zufallszahlengüte und Side-Channel-Resistenz können den Ausschlag geben.
| Zielniveau (grobe Orientierung) | Symmetrisch | RSA (typisch) | ECC (typisch) |
|---|---|---|---|
| „~128 Bit“ | AES-128 | 3072 Bit | P-256 / Ed25519 (ähnliche Größenordnung) |
| „~192 Bit“ | AES-192 | 7680 Bit | P-384 |
| „~256 Bit“ | AES-256 | 15360 Bit | P-521 (nicht exakt 256 Bit, aber höhere Zielklasse) |
Performance und Einsatzfälle: warum Hybridkryptografie Standard ist
Für große Datenmengen dominiert symmetrische Kryptografie, weil Durchsatz und Latenz planbar bleiben und Hardwarebeschleunigung häufig verfügbar ist. Asymmetrische Kryptografie wird in der Regel nur für den Verbindungsaufbau genutzt: Schlüssel werden authentisiert und ausgetauscht, danach schützt ein symmetrischer Sitzungsschlüssel die Daten. In TLS ist dies als Kombination aus (EC)DHE für Forward Secrecy und AEAD für den Datenkanal etabliert. RSA spielt in Zertifikaten weiterhin eine Rolle, jedoch eher als Signaturalgorithmus des Serverzertifikats als für den eigentlichen Schlüsselaustausch.
- TLS-Schlüsselaustausch: Moderne Konfigurationen setzen auf
ECDHE(oder in aktuellen Deployments auch hybride PQ/TLS-Ansätze, abhängig vom Stack), um Forward Secrecy zu erreichen; der Datenkanal nutzt AEAD wieAES-128-GCModerChaCha20-Poly1305. - Signaturen in Zertifikaten: Häufig sind
RSA-PSSoderECDSAanzutreffen;Ed25519ist in vielen Umgebungen verfügbar, kann aber je nach PKI-Tooling/Client-Mix eingeschränkt sein. - Daten-at-Rest: Für Volume-/Dateiverschlüsselung werden Verfahren wie
AES-XTSeingesetzt; Authentizität muss auf einer höheren Schicht gelöst werden, da XTS keine Integritätsgarantie liefert. - Passwortspeicherung: Parameter werden so gesetzt, dass ein einzelner Hash spürbar Rechenzeit und bei
Argon2idzusätzlich Speicher kostet; typische Stellgrößen sindtime_cost,memory_costundparallelism.
Typische Missverständnisse bei Tabellenvergleichen
Tabellen laden zu Kurzschlüssen ein, die in technischen Reviews regelmäßig auffallen. „Hash = Verschlüsselung“ ist fachlich falsch: Hashes sind nicht umkehrbar und schützen keine Vertraulichkeit. Ebenso ist „längerer Schlüssel = automatisch sicher“ unvollständig, wenn Modus, Nonce-Management oder Padding unsicher sind. Schließlich wird Kodierung (Base64, Hex) häufig fälschlich als Schutzmaßnahme interpretiert; sie ändert nur die Darstellung von Daten.
- Verschlüsselung vs. Kodierung:
Base64undURL-Encodingsind reversible Formatierungen ohne Geheimnis; sie ersetzen keine Verschlüsselung und keine Zugriffskontrolle. - Hash vs. MAC: Ein Hash wie
SHA-256allein belegt keine Authentizität; dafür ist ein Schlüssel nötig, z. B.HMAC-SHA-256oder AEAD (z. B.AES-GCM). - RSA „für Datenverschlüsselung“: RSA wird in Protokollen typischerweise nicht für große Nutzdaten verwendet, sondern für Schlüsselmaterial oder Signaturen; Nutzdaten laufen über symmetrische Sitzungsschlüssel (Hybridkryptografie).
- „AES-256 ist immer besser“: AES-256 erhöht die Schlüsselgröße, kann aber in manchen Implementierungen geringfügig mehr CPU kosten; häufig ist
AES-128-GCMbereits sehr stark, sofern Nonces und Schlüsselrotation korrekt gehandhabt werden.
Praxisbezug: TLS-Zertifikate, Cipher Suites, Schlüsselaustausch und Passwort-Hashing (bcrypt, scrypt, Argon2) richtig einordnen
TLS-Zertifikate: Identität, nicht „Verschlüsselung an sich“
TLS-Zertifikate werden in der Praxis oft mit „der Verschlüsselung“ gleichgesetzt. Technisch stellt ein X.509-Zertifikat jedoch primär eine signierte Identitätsaussage dar: Ein öffentlicher Schlüssel wird mit einem Namen (z. B. DNS:example.org) und Metadaten (Gültigkeitszeitraum, Key Usage, Policies) verknüpft. Die Vertrauenskette entsteht durch Signaturen einer CA bis zu einem Root-Store im Betriebssystem oder Browser. Die eigentliche Vertraulichkeit des Datenstroms liefert erst das Zusammenspiel aus Schlüsselaustausch und symmetrischer Datenverschlüsselung innerhalb der TLS-Sitzung.
Wesentlich ist die Trennung der Rollen: Signaturen in Zertifikaten dienen der Authentizität und Integrität der Identität; die Nutzdaten werden danach mit symmetrischen AEAD-Verfahren (typisch AES-GCM oder ChaCha20-Poly1305) geschützt. Der öffentliche Schlüssel im Zertifikat wird bei TLS 1.3 außerdem nicht mehr direkt für den Schlüsselaustausch genutzt, sondern überwiegend für die Signatur im Handshake; der gemeinsame Sitzungsschlüssel entsteht über (EC)DHE. Dadurch wird Forward Secrecy zum Standard, selbst wenn der private Zertifikatschlüssel später kompromittiert würde.
Cipher Suites und TLS 1.2 vs. TLS 1.3: was wirklich ausgewählt wird
„Cipher Suite“ ist je nach TLS-Version unterschiedlich zu lesen. In TLS 1.2 benennt die Suite typischerweise vier Aspekte gleichzeitig: Schlüsselaustausch (z. B. ECDHE), Authentisierung (z. B. RSA oder ECDSA), Bulk Cipher (z. B. AES-128-GCM) und Hash/PRF. In TLS 1.3 wurde das entkoppelt: Die Suite beschreibt im Kern nur noch das symmetrische AEAD-Verfahren und den Hash für HKDF; Schlüsselaustauschgruppen (z. B. X25519, secp256r1) und Signaturalgorithmen (z. B. rsa_pss_rsae_sha256, ecdsa_secp256r1_sha256) werden separat verhandelt.
In der Praxis bedeutet das: Eine „RSA-Cipher-Suite“ im Sinne von TLS 1.2 kann Schlüsselaustausch ohne Forward Secrecy implizieren (historisch TLS_RSA_WITH_...), während RSA in TLS 1.3 vor allem als Signaturalgorithmus (z. B. RSA-PSS) auftaucht. Moderne Serverkonfigurationen priorisieren ECDHE sowie AEAD und vermeiden CBC-Mode-Altlasten. Für die Kompatibilität mit älteren Clients bleibt TLS 1.2 relevant, die Sicherheitsmechanik ist jedoch komplexer und stärker konfigurationsabhängig.
| Aspekt | TLS 1.2 (Cipher Suite umfasst …) | TLS 1.3 (separat verhandelt / Suite umfasst …) |
|---|---|---|
| Schlüsselaustausch | Teil der Suite (z. B. ECDHE, historisch auch RSA ohne FS) |
Gruppen separat (z. B. X25519, secp256r1); (EC)DHE ist Standard |
| Authentisierung | Teil der Suite (z. B. RSA, ECDSA) |
Signaturalgorithmus separat (z. B. rsa_pss_rsae_sha256, ecdsa_secp256r1_sha256) |
| Datenverschlüsselung | Teil der Suite (z. B. AES_128_GCM) |
Teil der Suite (z. B. TLS_AES_128_GCM_SHA256, TLS_CHACHA20_POLY1305_SHA256) |
| Hash / KDF | PRF-Hash in der Suite; zusätzlich Hash für Signaturen | Hash ist Bestandteil der Suite und wird für HKDF genutzt; Signatur-Hash ist an den Signaturalgorithmus gebunden |
Schlüsselaustausch: ECDHE als Standard, RSA nur noch für Signaturen
Der Schlüsselaustausch in modernen TLS-Setups basiert auf ephemerem Diffie-Hellman, heute meist als ECDHE mit Kurven wie X25519 oder secp256r1. Das Ziel ist ein gemeinsames Geheimnis, das weder über das Zertifikat noch über die übertragenen Handshake-Daten rekonstruierbar ist. Aus diesem Geheimnis leitet TLS mittels HKDF Sitzungsschlüssel ab; anschließend schützen AEAD-Verfahren die Nutzdaten samt Authentizität (integrierter MAC/Tag).
RSA spielt im TLS-Handschlag weiterhin eine Rolle, aber anders als in älteren Modellen: Statt den Pre-Master-Secret mit dem RSA-Zertifikat zu „verschlüsseln“, signiert der Server Handshake-Transkripte, um den Besitz des privaten Schlüssels nachzuweisen. Diese Verschiebung reduziert den Schaden bei späterem Schlüsselverlust, weil vergangene Sitzungen durch Forward Secrecy geschützt bleiben. Entscheidend bleibt eine korrekte Validierung der Zertifikatskette inklusive Hostname-Abgleich und zeitlicher Gültigkeit.
- Typischer TLS-1.3-Datenpfad: (EC)DHE erzeugt ein gemeinsames Geheimnis, daraus leitet
HKDF-SHA256oderHKDF-SHA384Traffic-Keys ab, Nutzdaten laufen überAES-128-GCM/AES-256-GCModerChaCha20-Poly1305. - Forward Secrecy (FS): FS entsteht durch ephemere Schlüssel (DHE/ECDHE). Ein später kompromittierter Zertifikatschlüssel ermöglicht dann keine Entschlüsselung alter Mitschnitte, solange die Endpunkte nicht zusätzlich kompromittiert wurden.
- Signaturen im Handshake: Authentisierung erfolgt über Signaturen (z. B.
ECDSAoderRSA-PSS) auf Handshake-Daten; diese Signaturen ersetzen keine Datenverschlüsselung und sind davon getrennt zu betrachten. - Häufige Fehlannahme: Ein Zertifikat „enthält“ keine geheimen Schlüssel. Es enthält einen öffentlichen Schlüssel und CA-Signaturen; Vertraulichkeit entsteht erst durch die ausgehandelten Sitzungsschlüssel.
Passwort-Hashing: bcrypt, scrypt, Argon2 als Speicherverfahren, nicht als Transport-Sicherheit
Passwörter werden nicht verschlüsselt, sondern als Verifikationswerte gespeichert. Dafür sind absichtlich langsame, parameterisierbare Passwort-Hashfunktionen vorgesehen, die Offline-Angriffe mit GPU/ASIC verteuern. Ein schneller Hash wie SHA-256 ist für Passwörter ungeeignet, weil er pro Sekunde extrem viele Versuche erlaubt; ein Salt allein löst dieses Problem nicht. Bewährte Verfahren sind bcrypt (CPU-hart), scrypt (speicherhart) und Argon2id (kombiniert, heute häufige Empfehlung).
Die Parameterwahl ist integraler Bestandteil der Sicherheit: Bei bcrypt bestimmt der Cost-Faktor die Rechenzeit, bei scrypt und Argon2id kommen Speicher- und Parallelitätsparameter hinzu. Ziel ist eine Verifikationszeit, die im Login-Flow akzeptabel bleibt, aber Offline-Bruteforce klar ausbremst. Zusätzlich bleibt eine serverseitige Schutzschicht sinnvoll, etwa Rate Limiting und bei Bedarf ein Pepper, der getrennt vom Datenbankinhalt verwahrt wird.
| Verfahren | Eigenschaften | Parameter (typisch) | Einordnung |
|---|---|---|---|
bcrypt |
CPU-hart, eingebautes Salt, bewährt; Eingabelänge effektiv begrenzt (Implementierungsdetail) | Cost (z. B. $2b$12$...); Work-Factor skaliert exponentiell |
Gute Baseline, wenn Speicherhärte nicht erforderlich oder schwer umzusetzen ist |
scrypt |
speicherhart, erschwert GPU/ASIC; Parameter erlauben feine Abstimmung | N, r, p plus Salt |
Sinnvoll bei erhöhtem Fokus auf Speicherhärte und vorhandener Ressourcenplanung |
Argon2id |
modern, speicherhart, widerstandsfähig gegen Trade-off-Angriffe; Kombination aus Argon2i/2d | Memory (KiB/MiB), Iterationen, Parallelität, Salt | Häufige Standardempfehlung, wenn Bibliotheken und Betriebsumfeld es sauber unterstützen |
Typische Missverständnisse in produktiven Setups
In der Praxis vermischen sich Begriffe: Kodierung (z. B. Base64) ändert nur die Darstellung von Daten, bietet keine Vertraulichkeit. Hashing ist irreversibel und dient der Integrität (allgemein) oder der Passwortverifikation (spezialisiert). Verschlüsselung ist reversibel und erfordert Schlüsselmanagement. TLS nutzt alle drei Kategorien in unterschiedlichen Rollen: Base64 taucht in PEM-Dateien auf, Hashes in Signaturen und KDFs, Verschlüsselung im Record-Layer.
- Base64 ist keine Sicherheit: Ein in
-----BEGIN CERTIFICATE-----dargestelltes Zertifikat ist lediglich PEM-kodiert; der Inhalt bleibt öffentlich lesbar. - „Passwort verschlüsseln“ ist die falsche Zielsetzung: In Datenbanken sollten Passwörter als Ausgabe von
bcrypt,scryptoderArgon2idmit individuellem Salt liegen; „entschlüsseln“ darf technisch nicht möglich sein. - TLS schützt nicht vor kompromittierten Endpunkten: TLS sichert den Transport. Bei Malware am Client oder Server werden Klartext und Schlüsselmaterial im Prozessspeicher verarbeitet und bleiben angreifbar.
- Zertifikat ersetzt keine Härtung: Ein korrektes Zertifikat verhindert keine schwachen Cipher-Policies, keine fehlenden Updates und keine Fehlkonfigurationen bei Protokollversionen oder Schlüsselgruppen.
Werbung
(**) UVP: Unverbindliche Preisempfehlung
Preise inkl. MwSt., zzgl. Versandkosten
