RSA ist ein etablierter und sicherer kryptografischer Algorithmus zur Ver- und Entschlüsselung von Daten. Der Algorithmus ermöglicht die sichere Übertragung sensibler Daten über das Internet. Trotz bekannter Schwachstellen findet RSA weiterhin Anwendung, etwa bei digitalen Signaturen zur Authentifizierung von Nachrichtenquellen.
Dieser Artikel erklärt RSA, die Funktionsweise und die wichtigsten Anwendungen. Außerdem erläutert er Sicherheitslücken von RSA und Möglichkeiten zur Risikominderung.
Splunk wurde von Forrester, Gartner® und IDC als Leader im SIEM-Bereich ausgezeichnet – und darauf sind wir stolz. Ladet euch den neuesten Magic Quadrant herunter, um die Gründe dafür zu erfahren. Report abrufen →
Erfahrt mehr über die Sicherheitsprodukte und -lösungen von Splunk:
Bei Rivest Shamir Adleman (RSA) handelt es sich um einen bekannten Public-Key- bzw. asymmetrischen Verschlüsselungsalgorithmus. RSA schützt sensible Daten durch Ver- und Entschlüsselung mittels privatem und öffentlichem Schlüsselpaar.
RSA wurde 1977 von Ron Rivest, Adi Shamir und Leonard Adleman am Massachusetts Institute of Technology entwickelt und nach deren Initialen benannt.
RSA verwendet ein privates und öffentliches Schlüsselpaar. Der private Schlüssel bleibt geheim und ist nur dem Hersteller des Schlüsselpaars bekannt, während der öffentliche Schlüssel allen zugänglich ist. Zur Verschlüsselung dient wahlweise der öffentliche oder private Schlüssel, während der jeweils andere bei der Entschlüsselung zum Einsatz kommt.
Dies macht RSA zu einem der meistbenutzten Verschlüsselungsverfahren weltweit. Die rechnerische Komplexität von RSA führt allerdings zu vergleichsweise geringer Effizienz und hohem Ressourcenbedarf. Deshalb eignet sich RSA nicht zur Verschlüsselung großer Nachrichten oder Dateien.
(Lest unser Grundlagenwissen über AES, einen weiteren gängigen Verschlüsselungsstandard.)
RSA basiert auf der Faktorisierung großer Ganzzahlen. Zunächst müsst ihr für das Schlüsselpaar zwei große, schwer zu faktorisierende Primzahlen wählen. Die Primzahlen müssen dafür zufällig gewählt werden und sich deutlich unterscheiden. Die beiden gewählten Primzahlen werden beispielsweise als p und q bezeichnet.
Der Algorithmus berechnet dann deren Produkt, bezeichnet als n = p * q. Die Werte p und q bleiben geheim, während n, das als Maßeinheit (Modulus) für die öffentlichen und privaten Schlüssel zum Einsatz kommt, öffentlich gemacht werden muss.
Anschließend wird die Carmichael-Funktion mit p und q berechnet und die Ganzzahl e als öffentlicher Exponent gewählt. Danach erfolgt die Berechnung von d als privater Exponent.
Der öffentliche Schlüssel besteht aus dem Paar (n, e), der private aus (n, d).
RSA findet Anwendung in diversen Bereichen der Informationssicherheit und Kryptografie. Zu den häufigsten Anwendungen zählen:
Bei der digitalen Signatur handelt es sich um eine Technik, mit der der Empfänger einer Nachricht deren Authentizität, Integrität und Unverfälschtheit überprüfen kann. Das beweist, dass die Nachricht während der Übertragung unverändert blieb.
Bei der Erstellung digitaler Signaturen erzeugt der Absender zunächst einen Hash-Wert der Nachricht mithilfe einer kryptografischen Hash-Funktion. Anschließend erfolgt die Signierung durch Anwendung des RSA-Algorithmus mit dem privaten Schlüssel, wodurch die digitale Signatur entsteht. Der Empfänger kann dann mit dem öffentlichen Schlüssel des Absenders den RSA-Algorithmus auf die digitale Signatur anwenden.
Zusätzlich lässt sich die Signatur durch Abgleich mit dem aus der Nachricht erzeugten Hash-Wert verifizieren.
Das RSA-Verfahren findet breite Anwendung in digitalen Zertifikaten wie SSL-Zertifikaten. Diese Zertifikate dienen der Identitätsprüfung von Personen oder Organisationen hinter Websites.
Digitale Zertifikate nutzen RSA zur Verschlüsselung der digitalen Signatur des Zertifikatausstellers, die sich mit dessen öffentlichem Schlüssel prüfen lässt. Das digitale Zertifikat enthält Informationen wie Domainnamen und die Organisation hinter der Website. Es belegt deren Identität gegenüber den Nutzern.
RSA verschlüsselt die Kommunikation zwischen zwei Parteien über unsichere Netzwerke wie das Internet. RSA kommt beispielsweise mit Transport Layer Security (TLS) für sichere Verbindungen zwischen Webservern und Browsern zum Einsatz. RSA unterstützt zudem die sichere E-Mail-Kommunikation durch Ver- und Entschlüsselung von Nachrichten.
Das Verfahren kommt auch in virtuellen privaten Netzwerken (VPNs) zum Einsatz. VPNs nutzen TLS für den Handshake zwischen zwei kommunizierenden Parteien, die Informationen austauschen. Der TLS-Handshake verwendet den RSA-Algorithmus zur Authentifizierung beider beteiligten Parteien.
Ein weiterer Anwendungsfall von RSA ist der sichere Schlüsselaustausch zwischen zwei Parteien, die zuvor keinen geheimen Schlüssel ausgetauscht haben. Die beteiligten Parteien erzeugen ein Paar aus öffentlichem und privatem Schlüssel mittels RSA-Algorithmus.
Sender und Empfänger verfügen dann über denselben symmetrischen Schlüssel für die sichere Kommunikation.
Der RSA-Algorithmus lässt sich bei Einhaltung der Empfehlungen nur schwer knacken. In den letzten Jahren wurden jedoch mehrere RSA-Schwachstellen entdeckt. Diese Schwachstellen sind:
Seitenkanalangriffe zielen auf Schwachstellen bei der Datenverarbeitung eines Computersystems (wie Programmausführungszeit, Stromverbrauch und elektromagnetische Abstrahlung) statt direkt auf Software oder Code.
Ein Angreifer kann beispielsweise Informationen aus der elektromagnetischen Strahlung eines Computers während kryptografischer Operationen gewinnen.
Energieanalyse und Timing-Angriffe zählen zu den häufigsten Seitenkanalangriffen auf RSA-Verschlüsselung:
Angreifer können aus diesen Daten den geheimen RSA-Schlüssel ableiten. Deshalb sollten geeignete Maßnahmen gegen Seitenkanalangriffe eingeleitet werden.
Die Sicherheit des RSA-Algorithmus basiert im Wesentlichen auf großen, schwer zu faktorisierenden Primzahlen für die Schlüsselerzeugung. Die Faktorisierung des Produkts zweier großer Primzahlen gestaltet sich mit zunehmender Schlüssellänge schwieriger.
Die Schlüssellänge sollte mit steigender Rechenleistung zunehmen. Leistungsstarke Computer können große Zahlen relativ leicht und schnell faktorisieren. Dadurch gelingt es, kürzere Schlüssel schneller zu knacken.
Der früher empfohlene 1024-Bit-RSA-Schlüssel gilt heute als unsicher und ist nicht mehr gültig. Daher ist es am besten, eine Schlüssellänge von mindestens 2048 Bit für RSA zu verwenden.
Bei Primzahlschwächen unterscheidet man zwischen Zufälligkeit und Nähe.
Die Zufälligkeit von Primzahlen. Der RSA-Algorithmus hängt von der Erzeugung zufälliger Primzahlen bei der Schlüsselgenerierung ab. Diese werden dann multipliziert, um den öffentlichen und den privaten Schlüssel zu erzeugen.
Angenommen, die Organisation verwendet einen schwachen Zufallszahlengenerator oder einen Algorithmus, der leicht vorhersehbare oder leicht zu beeinflussende Zufallszahlen erzeugt. In diesem Fall können Angreifer das Muster der Primzahlerzeugung erraten und die Schlüssel leicht faktorisieren.
Die Nähe von Primzahlen. Die Sicherheit des RSA-Schlüssels gerät auch in Gefahr, wenn die beiden verwendeten Primzahlen zu nahe beieinanderliegen oder eine zu klein ist. In solchen Fällen können Angreifer die Faktoren des RSA-Modulus leicht bestimmen, die Verschlüsselung knacken und an den privaten Schlüssel herankommen.
Verlorene, gestohlene oder kompromittierte Schlüssel ermöglichen Angreifern direkten Zugriff und das Entschlüsseln von Nachrichten mit dem zugehörigen öffentlichen Schlüssel. Deshalb müssen Schlüssel sorgfältig verwaltet werden, um solche Schwachstellen zu vermeiden.
Bei Störungsangriffen handelt es sich um Attacken, bei denen Angreifer absichtlich die Hardware oder Software stören, die zur Implementierung der kryptografischen Anwendung dient. Ein Angreifer kann beispielsweise einen Laser-Fehlerinjektionsangriff oder einen gezielt herbeigeführten Bit-Flip verwenden, um Fehler in kryptografischen Funktionen zu verursachen. Dadurch können schwächere Schlüssel mit vorhersehbaren Werten entstehen, was die Sicherheit des Systems beeinträchtigt.
RSA-Implementierungen können für Störungsangriffe anfällig sein, falls es keine geeigneten Gegenmaßnahmen gibt.
Zur Abschwächung von RSA-Schwachstellen stehen mehrere Möglichkeiten zur Verfügung.
RSA ist ein weitverbreiteter kryptografischer Algorithmus, der 1977 eingeführt wurde. Der Algorithmus verwendet öffentliche und private Schlüsselpaare zur Ver- und Entschlüsselung von Daten. Obwohl RSA in verschiedenen Anwendungen zum Einsatz kommen kann, eignet er sich aufgrund seiner rechnerischen Komplexität nicht für die Verschlüsselung großer Nachrichten oder Dateien. RSA erzeugt digitale Signaturen und Zertifikate für sichere Authentifizierung, Kommunikation, Webzugriff, E-Mail-Nachrichten und Schlüsselaustausch.
RSA weist verschiedene Schwachstellen auf, darunter Seitenkanalangriffe, ungeeignete Schlüssellängen, Schwächen bei Primzahlen, störungsbasierte Angriffe und Risiken durch gestohlene oder verlorene Schlüssel. Bei der Verwendung von RSA für kryptografische Anwendungen müsst ihr die beschriebenen Empfehlungen berücksichtigen.
Ihr habt einen Fehler entdeckt oder eine Anregung? Bitte lasst es uns wissen und schreibt eine E-Mail an ssg-blogs@splunk.com.
Dieser Beitrag spiegelt nicht zwingend die Position, Strategie oder Meinung von Splunk wider.
Weltweit führende Unternehmen verlassen sich auf Splunk, ein Cisco-Unternehmen, um mit unserer Plattform für einheitliche Sicherheit und Observability, die auf branchenführender KI basiert, kontinuierlich ihre digitale Resilienz zu stärken.
Unsere Kunden vertrauen auf die preisgekrönten Security- und Observability-Lösungen von Splunk, um ihre komplexen digitalen Umgebungen ungeachtet ihrer Größenordnung zuverlässig zu sichern und verbessern.