Getrandom: Glibc 2.25 bekommt endlich besseren Zufall

Die Standard-C-Bibliothek des GNU-Projekts hat endlich Wrapper für die Linux-Systemaufrufe Getrandom und Getentropy - mehr als zwei Jahre nach deren Einführung. Neu sind außerdem Funktionen für Strings, Mathe-Operationen und ein starker Schutz vor Stack-Überläufen.

Artikel veröffentlicht am ,
Die C-Bibliothek des GNU-Projekts kann zuverlässige Zufallszahlen erzeugen.
Die C-Bibliothek des GNU-Projekts kann zuverlässige Zufallszahlen erzeugen. (Bild: Yoni Lerner, flickr.com/CC-BY 2.0)

Mit der aktuellen Version 2.25 der Standard-C-Bibliothek des GNU-Projekts (Glibc) können Programmierer erstmals über Wrapper auf die zwei Linux-Systemaufrufe getrandom() und getentropy() zugreifen. Diese sind wegen Problemen entstanden, welche die OpenBSD-Entwickler beim Erstellen ihres OpenSSL-Forks LibreSSL im Sommer 2014 entdeckt haben. Die Kernel-Community hat die Neuerung vergleichsweise schnell schon wenige Monate darauf in Linux eingepflegt.

Bessere Zufallszahlen in Linux

Stellenmarkt
  1. Systemadministrator*in (m/w/d)
    Universitätsmedizin der Johannes Gutenberg-Universität Mainz, Mainz
  2. Anforderungsmanager / Product Support im Bereich IT - Produkt Nelos (m/w/d)
    L-Bank, Karlsruhe
Detailsuche

Die beiden bisher verwendeten virtuellen Geräte /dev/random und /dev/urandom für das Generieren von Zufallszahlen hatten die LibreSSL-Entwickler kritisiert: Ein Zugriff auf diese Geräte benötige Dateisystemoperationen, die manchmal scheitern könnten, etwa wenn keine Filehandles mehr zur Verfügung stünden. Außerdem sei das Dateisystem /dev nicht immer gemountet, so könnte man beispielsweise eine sogenannte Chroot-Umgebung ohne Dev-Dateisystem betreiben. Mit dem Systemaufruf getrandom() sollen diese Probleme behoben worden sein. Die Lösung gibt es bereits bei OpenBSD, sie wurde von den Entwicklern von LibreSSL für Linux gefordert.

Der neue Systemaufruf schließt eine weitere Lücke: Das virtuelle Gerät /dev/random liefert nur dann Zufallszahlen, wenn dem System genügend Entropie zur Verfügung steht, und kann somit in manchen Situationen eine Software blockieren. Urandom produziert hingegen immer Zufallszahlen - auch dann, wenn diese möglicherweise unsicher sind. Der neue Systemaufruf umgeht diese Probleme, indem er erst dann Zufallszahlen liefert, wenn der Pseudorandom Number Generator (PRNG) mit 128 Bit Entropie gestartet wurde.

Der erste Patch für diese Systemaufruf-Wrapper in Glibc ist Anfang 2016 vorgestellt worden. Die Community pflegte ihn aber nicht direkt ein, da sie lieber auf standardisierte Schnittstellen setze, statt betriebssystemspezifische Schnittstellen zu unterstützen. Das Magazin LWN.net erklärt die Details zu dieser Diskussion.

Stack-Smashing-Protector kann genutzt werden

Golem Akademie
  1. Linux-Shellprogrammierung
    2.-5. November 2021, online
  2. Elastic Stack Fundamentals - Elasticsearch, Logstash, Kibana, Beats
    26.-28. Oktober 2021, online
  3. Linux-Systeme absichern und härten
    8.-10. November 2021, online
Weitere IT-Trainings

Ebenfalls für die Sicherheit von Anwendungen relevant ist die Unterstützung des sogenannten Stack-Smashing-Protectors (SSP). Dabei handelt es sich um eine Compiler-Option, die es ermöglichen soll, Überläufe des Stapelspeichers zu erkennen beziehungsweise zu verhindern. Der korrekte Umgang damit erfordert allerdings einige weitere tiefgreifende Kenntnisse. Mit Hilfe der aus OpenBSD stammenden Funktion explicit_bzero() können besonderes schützenswerte Datenbereiche nach deren Nutzung sicher gelöscht werden.

Mit Glibc 2.25 lassen sich darüber hinaus per Funktionsaufruf Gleitkommazahlen in Strings umwandeln. Stark ausgebaut hat das Team auch die verfügbaren mathematischen Operationen, um etwa Werte auf die nächste Ganzzahl zu runden oder die totale Ordnung von Zahlwerten zu überprüfen.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed


Aktuell auf der Startseite von Golem.de
Astro
Amazons erster Roboter kostet 1.500 US-Dollar

Astro heißt der erste Roboter von Amazon. Es ist eine Art rollender Echo Show mit Schwerpunkt auf Videoüberwachung.

Astro: Amazons erster Roboter kostet 1.500 US-Dollar
Artikel
  1. Amazon Alexa: Neuer Echo Show mit Personenerkennung wird aufgehängt
    Amazon Alexa
    Neuer Echo Show mit Personenerkennung wird aufgehängt

    Amazon erfindet den Echo Show neu: Der Echo Show 15 hat ein besonders großes Display und kann Personen erkennen.

  2. Cupra Urban Rebel: VW-Tochter kündigt Elektrorenner für 25.000 Euro an
    Cupra Urban Rebel
    VW-Tochter kündigt Elektrorenner für 25.000 Euro an

    Autobauer Cupra bringt mit dem Urban Rebel ein günstiges Elektroauto für all jene auf den Markt, denen der ID.Life von VW zu langweilig ist.

  3. Blink Video Doorbell: Amazon stellt Videotürklingel für 60 Euro vor
    Blink Video Doorbell
    Amazon stellt Videotürklingel für 60 Euro vor

    Amazon hat eine Videotürklingel unter dem Blink-Label vorgestellt. Sie soll vor allem mit einem günstigen Preis überzeugen.

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Daily Deals • Echo Show 15 249,99€ • eero 6 Wifi 6 System 3er-Pack 299€ • Saturn-Aktion: Win 10-Laptop oder PC kaufen, kostenloses Upgrade auf Win 11 erhalten • Bosch Professional & PC-Spiele von EA günstiger • Alternate (u. a. Asus TUF Gaming-Monitor 23,8" FHD 165Hz 179,90€) • 6 UHDs kaufen, nur 4 bezahlen [Werbung]
    •  /