Ein kritischer Fehler im Zufallszahlengenerator betrifft Milliarden von IoT-Geräten

  • In Hardware-Zufallszahlengeneratoren, die in Milliarden von IoT-Geräten (Internet of Things) verwendet werden, wurde eine kritische Schwachstelle entdeckt, durch die Zufallszahlen nicht ordnungsgemäß generiert werden können, was die Sicherheit dieser Geräte untergräbt und sie dem Risiko von Angriffen aussetzt.

    “Es stellt sich heraus, dass diese ‘zufällig’ gewählten Zahlen bei IoT-Geräten nicht immer so zufällig sind, wie man es gerne hätte”, so die Bishop Fox-Forscher Dan Petro und Allan Cecil in einer letzte Woche veröffentlichten Analyse. “In vielen Fällen wählen die Geräte sogar Verschlüsselungsschlüssel von 0 oder schlechter. Dies kann zu einem katastrophalen Zusammenbruch der Sicherheit für jede vorgelagerte Anwendung führen.”

    [Blocked Image: https://thehackernews.com/images/-9r3EBoAeEj4/YMt1nGWkOMI/AAAAAAAA4Qk/feJCltGJrFcMPYuba5Ihr7WgYxNB6oG-gCLcBGAsYHQ/s300-e100/free-ad-7-300.png]

    Die Generierung von Zufallszahlen (Random Number Generation, RNG) ist ein entscheidender Prozess, der mehreren kryptografischen Anwendungen zugrunde liegt, darunter Schlüsselgenerierung, Nonces und Salting. Auf herkömmlichen Betriebssystemen wird er von einem kryptografisch sicheren Pseudozufallszahlengenerator (CSPRNG) abgeleitet, der Entropie aus einer hochwertigen Seed-Quelle verwendet.

    Bei IoT-Geräten wird sie von einem System-on-a-Chip (SoC) bereitgestellt, das eine spezielle Hardware-RNG-Peripherie namens True Random Number Generators (TRNG) beherbergt, die verwendet wird, um die Zufälligkeit von physikalischen Prozessen oder Phänomenen zu erfassen.

    Die Forscher stellten fest, dass die Art und Weise, in der die Peripherie derzeit aufgerufen wird, nicht korrekt ist, und bemerkten das Fehlen von Überprüfungen für Fehlercode-Antworten auf der ganzen Linie, was zu einem Szenario führt, in dem die erzeugte Zufallszahl nicht einfach zufällig und, schlimmer noch, vorhersehbar ist, was zu teilweiser Entropie, nicht initialisiertem Speicher und sogar Krypto-Schlüsseln mit einfachen Nullen führt.

    “Die HAL-Funktion der RNG-Peripherie kann aus verschiedenen Gründen versagen, aber der bei weitem häufigste (und ausnutzbare) Grund ist, dass dem Gerät die Entropie ausgeht”, so die Forscher. “Hardware-RNG-Peripheriegeräte beziehen Entropie aus dem Universum durch eine Vielzahl von Mitteln (z. B. analoge Sensoren oder EMF-Messungen), aber sie verfügen nicht über einen unendlichen Vorrat.

    “Sie sind nur in der Lage, eine bestimmte Anzahl von Zufallsbits pro Sekunde zu erzeugen. Wenn Sie versuchen, die RNG-HAL-Funktion aufzurufen, wenn sie keine Zufallszahlen liefern kann, wird sie fehlschlagen und einen Fehlercode zurückgeben. Wenn das Gerät also versucht, zu viele Zufallszahlen zu schnell zu erhalten, werden die Aufrufe fehlschlagen.”

    [Blocked Image: https://thehackernews.com/images/-hkQDbi8WuFc/YLy9N5FVDyI/AAAAAAAA4BQ/EWc29W968mAbwiuVzSw1vYyepjgzwGHawCLcBGAsYHQ/s728-e100/privileged_728.jpg]

    Das Problem ist einzigartig in der IoT-Landschaft, da ein Betriebssystem fehlt, das typischerweise mit einer Zufalls-API ausgestattet ist (z. B. “/dev/random” in Unix-ähnlichen Betriebssystemen oder BCryptGenRandom in Windows), wobei die Forscher den größeren Entropie-Pool eines CSPRNG-Subsystems hervorheben, wodurch “einzelne Fehlerpunkte unter den Entropiequellen” beseitigt werden.

    Obwohl die Probleme mit Software-Updates behoben werden können, wäre die ideale Lösung für Hersteller und Entwickler von IoT-Geräten, eine CSPRNG-API einzubauen, die aus einer Reihe verschiedener Entropiequellen gespeist wird, und sicherzustellen, dass der Code keine Fehlerbedingungen ignoriert oder Aufrufe an den RNG blockiert, wenn keine Entropie mehr verfügbar ist.

    “Eine der Schwierigkeiten bei dieser Schwachstelle besteht darin, dass es sich nicht um einen einfachen Fall von ‘man hat gezickt, wo man hätte zacken sollen’ handelt, der leicht gepatcht werden kann”, so die Forscher, die die Notwendigkeit der Implementierung von CSPRNG in ein IoT-Betriebssystem betonen. “Um dieses Problem zu beheben, muss eine umfangreiche und komplexe Funktion in das IoT-Gerät integriert werden.

    Fanden Sie diesen Artikel interessant? Folgen Sie THN auf Facebook, Twitter und LinkedIn, um weitere exklusive Inhalte zu lesen, die wir veröffentlichen.

    Einige Teile dieses Artikels stammen aus:
    thehackernews.com