Das Jahr 2014 beginnt mit der Aufdeckung der schlimmsten GOTO Fehlern in Betriebssystemen.
25. Februar : goto fail : Apple iOS, OS X : SSL-Sicherheitsleck
Diese Lücke besteht angeblich
seit 2012.
if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0)
goto fail;
goto fail;
Quellen:
apple-mac-update-go-fail-ssl-bug ,
new-ios-flaw ,
gotofail.com
4. März : goto cleanup : Linux : “GnuTLS bug”
Diese Lücke besteht angeblich
seit 2005 !

Expertenmeinungen dazu:
“It looks pretty terrible.“
— Matt Green, Johns Hopkins University professor cryptography
“has a lot of side effects.“
— Kenneth White, principal security engineer
Quellen:
Sicherheitsluecke-GnuTLS ,
critical-crypto-bug-linux
Wie lange werden wir noch mit Software Fehlern leben müssen?
Es sind
massive Sicherheitsrisiken! Software steckt in vielen Geräten. Anwender und Hersteller sind betroffen. Die von genervten Anwendern, die eine andere Software oder Geräte vorziehen, bis zu Daten-, Geld- und Imageverlust reichen können. Man denke auch an Bereiche der Personensicherheit und Medizintechnik, wo es auch um Menschenleben gehen kann!
Wie lange werden wir auch noch mit einer
anderen Fehlerquelle der
NULL Ausnahmen (Null Pointer Exception, Null Reference Exception) leben müssen?
“I call it my billion-dollar mistake.
It was the invention of the null reference in 1965.”
— Tony Hoare
Diese Problematik betrifft nahezu alle heute noch verwendeten
älteren Programmiersprachen wie z.B. C, C++, Java, VB.Net, C# ! Der Grund ist der Stammbaum, also die
Abstammung der Programmiersprachen und deren weitergegebenen Konzepte.
Quellen:
Null Pointer ,
Zeiger
Was können wir dagegen tun?
Wie kann man die
Software Qualität in seinen
Wurzeln verbessern?
Indem man für die
Softwareentwicklung eine
Programmiersprache anwendet,
die weder
GOTO noch
NULL benötigt,
die
kapitalen Fehler nicht zulässt und
dabei
den Entwickler aktiv und wachsam
unterstützt,
so z.B. die
immer populärer werdende Programmiersprache
F#,
die hier auf Functional Software .NET das Thema ist.
Nebenbei bemerkt, wer eine TLS Implementation in F# betrachten will, kann dies hier tun “
miTLS A verified reference TLS implementation” und es ist auf den Tag genau ein Jahr her, hier gibt es den F# Quellcode: “5 March 2013 Our paper on TLS security has been accepted at the IEEE Symposium on Security & Privacy. A draft technical report of this work is available from the
download page.”.
Siehe auch
F7: Refinement Types for F#