• IT-Karriere:
  • Services:

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.

Artikel veröffentlicht am ,
DJB wünscht sich einen langweiligen C-Compiler.
DJB wünscht sich einen langweiligen C-Compiler. (Bild: Wikimedia/Ordercrazy/CC0 1.0)

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.

Stellenmarkt
  1. Regierungspräsidium Darmstadt, Darmstadt
  2. ATLAS TITAN Mitte GmbH, Wuppertal

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.

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


Anzeige
Hardware-Angebote

bombinho 26. Dez 2015

Ich glaube, es ist an der Zeit, noch einmal den Unterschied zwischen Assembler und...

Vermithrax 24. Dez 2015

Selbst wenn das war wäre (was es nicht ist) ist das ja nicht das Problem der Sprache...

/mecki78 23. Dez 2015

Deswegen ist es aber nicht weniger ein Bug. Da sind noch ganz andere Bugs drinnen. Immer...

YoungManKlaus 22. Dez 2015

"gcc -O0"? Jedes Tool hat sowieso eine build-pipeline wo man default-compiler-flags...

picaschaf 22. Dez 2015

Die Dereferenzierung des 0 Pointers ist an sich kein Problem, täglich Brot bei jedem...


Folgen Sie uns
       


    •  /