Daniel J. Bernstein: Ein langweiliger C-Compiler für bessere Crypto
Der Kryptograph Daniel J. Bernstein fordert einen C-Compiler mit klar definierter Semantik, der kein undefiniertes Verhalten von Code erlaubt. Das soll das Schreiben und Überprüfen von Code klar vereinfachen und somit bessere Kryptographie ermöglichen.

In einer E-Mail schlägt der Kryptograph Daniel J. Bernstein, besser bekannt als DJB, die Schaffung eines langweiligen C-Compilers vor. Denn zurzeit enthalte der C-Standard für bestimmte Situationen sehr viel undefiniertes und unspezifiziertes Verhalten. Der von DJB geforderte Compiler böte für eben all jene Situationen aber eine "sorgfältig erstellte Semantik", die beibehalten werde.
Laut Bernstein änderten sowohl Clang als auch GCC zurzeit vollkommen willkürlich das Verhalten derartiger nichtdefinierter Programme. Dem aktuellen Standard zufolge müssten jedoch sämtliche tatsächlich vorkommende C-Programme als nichtdefiniert gelten. Darüber hinaus würden neue Compiler-Optimierungen oft neue Sicherheitslücken in dem Objektcode produzieren. Das heißt, selbst derzeit durchgeführte Code-Überprüfungen mit positivem Abschluss könnten durch künftige Optimierungen am Compiler wieder zunichtegemacht werden.
Der von DJB nun ersonnene Compiler sollte diese Probleme eben vermeiden, was besonders wichtig für kryptographische Funktionen sei. Der klare Fokus auf Vorhersagbarkeit sollte es dementsprechend erleichtern, Code zu schreiben, diesen zu überprüfen und zudem auch formal verifizieren zu können. Der Kryptograph vermutet, dass solch ein Compiler schnell viele Nutzer finden würde.
In der Vergangenheit hatte Bernstein wiederholt die Position vertreten, nicht allein die Programmierer für Fehler in Programmen zu beschuldigen, sondern stattdessen Algorithmen und nun eben auch Werkzeuge so zu erstellen, dass diese schon von vornherein eine möglichst große Sicherheit bieten.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Ich glaube, es ist an der Zeit, noch einmal den Unterschied zwischen Assembler und...
Selbst wenn das war wäre (was es nicht ist) ist das ja nicht das Problem der Sprache...
Deswegen ist es aber nicht weniger ein Bug. Da sind noch ganz andere Bugs drinnen. Immer...
"gcc -O0"? Jedes Tool hat sowieso eine build-pipeline wo man default-compiler-flags...