Deweloperzy Debiana dołożyli do dystrybuowanej przez siebie wersji OpenSSL dziurę która powodowała że klucze kryptograficzne tworzone przez ich oprogramowanie są łatwe do odgadnięcia.
Co najlepsze, deweloperzy ci myśleli że poprawiają błąd w oryginalnych bibliotekach.
Gromy się na nich za to posypały.
Mnie się wydaje że wina leży jednak po stronie deweloperów OpenSSL a nie Debiana. Dlaczego?
Dziura o której mowa, opiera się o nieinicjowanie fragmentu pamięci. Oryginalne OpenSSL wykorzystuje to że jej zawartość jest pseudolosowa. Debianowcy poprawili to, inicjując ten fragment pamięci. Zrobili to, ponieważ używanie niezaincjalizowanej pamięci jest źródłem wielu błędów i w 99.999999% przypadków błędem popełnionym przez programistę. Ba, niektóre języki nie pozwalają używać niezaicjalizowanych zmiennych (C#) właśnie dlatego że to częsty (i zazwyczaj trudny do znalezienia) błąd. Istnieją specjalne programy analizujące kody źródłowe w celu wyłapania właśnie takich błędów.
Dlatego deweloperzy OpenSSLa bezwzględnie powinni dodać w kodzie odpowiednie komentarze krzyczące głośno: TO NIE BŁĄD, MY TO ROBIMY SPECJALNIE. To że tego nie zrobili to ciężki grzech, zaniedbanie i normalnie brak słów.
Oczywiście deweloperzy Debiana też zawinili. Taka poprawka powinna zostać popchnięta do deweloperów OpenSSL, aby ci mogli ją włączyć do własnego kodu, lub (w tym przypadku) odrzucić i wytłumaczyć co i jak. Tym niemniej jest to przewinienie znacznie mniejszego kalibru od tego co zrobili deweloperzy OpenSSL.
Parafrazując pewnego znanego łysola: KOMENTARZE, KOMENTARZE, KOMENTARZE!!!


Komentarze