staging.inyokaproject.org

Was die Meerkatze so lebhaft macht: Ein Blick auf den Kernel

ubuntu_logo.png

Ein halbes Jahr haben die Ubuntu-Entwickler damit zugebracht, das lebhafte Meerkätzchen groß zu ziehen. Was das Äffchen so antreibt, zeigt ein Blick auf seine inneren Werte.

Im Oktober letzten Jahres trat das fabelhafte Einhorn mit dem Linux-Kernel 3.16 an. Vivid Vervet wird über drei Versionen zu Linux 3.19 springen und damit einige Neuerungen aufweisen können. Über die interessantesten davon folgt hier nun ein Überblick.

Auf dem Schirm

Bereits seit einiger Zeit können Userspace-Anwendungen wie Fenstermanager oder Spiele direkt auf den Speicher von Intel-Grafikchips zugreifen, um Inhalte wie Texturen oder Fenster bereitzustellen. Da der Weg über den Grafiktreiber umgangen und die anzuzeigenden Inhalte direkt dem Grafikprozessor zugeführt werden, läuft dieser Weg nun etwas schneller ab und belastet das System – konkret den Speicherbus – weniger.

Dies galt bislang nur für Grafikhardware aus dem Hause Intel. Die eigentliche Neuerung ist, dass nun auch AMD/ATI-Chips davon profitieren. Zudem müssen Anwendungen auch entsprechend angepasst sein, um diese speziellen Funktionen auch nutzen zu können.

Mit Sicherheit

Vivid Vervet wird einen Schritt nach vorne darstellen, wenn es um die Erzeugung von Zufallszahlen geht. Diese sind die Grundlage für alles, was mit Verschlüsselung zu tun hat, seien es nun HTTPS-Verbindungen, E-Mail- oder Datenträger-Verschlüsselung. Bislang stellt /dev/random Zufallszahlen unter Linux zur Verfügung, zumindest solange genügend „Zufallsquellen“ wie beispielsweise Signale von Eingabegeräten zur Verfügung stehen. /dev/urandom liefert auch darüber hinaus nicht mehr ganz so zufällige Zahlen, die dann allerdings nicht mehr auf unvorhersehbaren Einflüssen aufbauen. Ist der Eimer mit den guten Zufallszahlen also leer, kommen vorhersehbare Zahlen zum Einsatz und schwächen so jeglichen darauf aufbauenden Sicherheitsmechanismus. Der neue Funktionsaufruf getrandom() kann angewiesen werden, erst Zufallszahlen zu liefern, wenn der Pool einen Mindestfüllstand erreicht hat. Außerdem gibt er sie direkt an den aufrufenden Prozess zurück und umgeht damit eine weitere bisher mögliche Angriffsmethode, bei der Anwendungen der Zugriff auf /dev/urandom verwehrt wird und sie dann gänzlich ohne Zufall arbeiten müssen. Letztlich muss der neue Funktionsaufruf auch von Entwicklern genutzt werden, um tatsächlich für mehr Sicherheit zu sorgen.

Noch nicht nutzbar, aber dennoch bemerkenswert ist die Unterstützung für Intels „Memory Protection Extensions (MPX)“. Diese Erweiterung der x86-Architektur soll Speicherüberläufe verhindern, die von bösartigen Prozessen gerne zur Ausweitung ihrer Berechtigungen genutzt werden. Allerdings wird MPX erst mit Intels Skylake-Prozessoren eingeführt, die jedoch noch nicht am Markt erhältlich sind. Das Bemerkenswerte dabei ist, dass die Intel-Entwickler hier sehr frühzeitig entsprechende Patches in den Linux-Kernel eingebracht haben und Linux somit von Anfang an von den neuen Sicherheitsfunktionen dieser Prozessoren profitieren kann.

Kleinigkeiten

Unter Linux können nun auch die von Apple-Notebooks bekannten Thunderbolt-Schnittstellen angesteuert werden, hierfür haben Intel- und Apple-Entwickler einen Treiber in den Kernel eingebracht. Und wer einen Spiele-Controller der Xbox One sein Eigen nennt, kann diesen nun auch unter Ubuntu nutzen.

Quellen

Veröffentlicht von mfm | 23. April 2015 13:15 | Kategorie: Rund um Ubuntu | # Fehler im Artikel melden

Bordi

Avatar von Bordi
1 23. April 2015 17:36

Wieder mal ein Punkt für Intel. 👍

ingo2

Avatar von ingo2
2 23. April 2015 18:42

Bislang stellt /dev/random Zufallszahlen unter Linux zur Verfügung, zumindest solange genügend Zufallsquellen“ wie beispielsweise Signale von Eingabegeräten zur Verfügung stehen. /dev/urandom liefert auch darüber hinaus nicht mehr ganz so zufällige Zahlen, die dann allerdings nicht mehr auf unvorhersehbaren Einflüssen aufbauen.

2 kurze Fragen:

  • war bisher denn /dev/random nicht sicher?

  • Dem Tewxt entnehme ich, daß die neue Funktion nur /dev/urandom betrifft?

mfm

Avatar von mfm
3 23. April 2015 19:25

@2: Die Antwort ist kein Zweizeiler:

  1. /dev/random liefert grundsätzlich gute Zufallszahlen, aber wenn die „aufgebraucht“ sind liefert es gar nix mehr und damit werden Prozesse blockiert ober arbeiten eben ohne Zufall.

  2. Nein - getrandom() ist ein Systemaufruf, den ein Prozess ebenso durchführt wie einen Zugriff aufs Dateisystem. /dev/urandom wird weiterhin bestehen bleiben, denn die Entwickler müssen ja die neue Funktion auch erst einmal in ihre Programme einbauen. Außerdem lässt sich /dev/urandom sehr einfach nutzen - man kann zB mittels dd einfach Werte rauskopieren um beispielsweise eine Test-Datei zu erstellen:

1
dd bs=1M count=10 if=/dev/urandom of=~/testfile

ingo2

Avatar von ingo2
4 23. April 2015 20:00

Dank für die Info!

War mir nicht ganz klar, was getrandom() nun ersetzen/verbessern sollte. Daß /dev/urandom nicht so gute, dafür aber sehr schnell und viele Zufallszahlen liefert, ist ja bekannt.