Pięć godzin temu strona główna projektu OpenSSL została podmieniona przez włamywaczy. Efekt wizualny był daleki od spektakularnego – turecka grupa zostawiła jedynie krótką wizytówkę o treści
TurkGuvenligiTurkSec Was Here @turkguvenligi + we love openssl _
Mirror włamania z witryny zone-h sugeruje, że nie doszło do przejęcia wpisów DNS a włamanie faktycznie miało miejsce na serwerze OpenSSL (zgadza się adres IP serwera). Podmienione najwyraźniej były zarówno www.OpenSSL.org jak i www.OpenSSL.net.
Przykład ten pokazuje, jak ważne jest sprawdzanie sygnatur kodu, pobieranego z internetu. Jeśli włamywacze mieli dostęp do strony głównej serwisu, to mogli np. podmienić linki do paczek z oprogramowaniem (dużo prostsze niż hakowanie repozytorium kodu, choć w przypadku OpenSSL wygląda na to, że pliki z kodem źródłowym są na tym samym serwerze) a w nowej wersji oprogramowania umieścić nieprzyjemne niespodzianki (tak jak np. w OpenX przez pół roku). Z tego właśnie powodu wiele projektów podpisuje cyfrowo swoje produkcje i umożliwia weryfikację podpisu za pomocą klucza publicznego. Kradzież klucza prywatnego jest z pewnością dużo poważniejszym przedsięwzięciem niż tylko podmiana strony głównej. Jeśli zatem chcecie mieć bezpieczny system, lepiej sprawdzajcie podpisy.
Komentarze
A co jeśli podmieni się klucz publiczny na stronie i podpisze podmienione binarki za jego pomocą? Użytkownik, który nie miał wcześniej do czynienia z tym oprogramowaniem zaufa kluczowi, który jest na stronie.
dlatego klucz tez moze byc podpisany innym kluczem… putty mial kiedys taka infrastrukture, ze pliki na stronie podpisane kluczem 'zwyklym’, a klucz 'zwykly’ mial podpis klucza 'master’ ktory byl caly czas offline i uzywany tylko do podpisywania innych 'zwyklych’.
jak na stronie ktos by chcial wgrac inny 'zwykly’ to i tak nie bedzie on mial podpisu 'mastera’ :)
Fajne, matematycznie poprawne (tzn. tak, jak cała kryptografia asymetryczna), tylko… kto będzie tyle weryfikacji robił? Ja nie znam nikogo, kto by się bawił w cokolwiek więcej niż jakieś shasum/md5sum (a i to jest już wow-super-duper na tle większości).
Zawsze znajdzie się ktoś, kto zrobi ;)
Innym sposobem może być podawanie samej sumy SHA(ileśtam), a tekst z nią podpisać kluczem przechowywanym offline. Chociaż niewiele to zmienia.