Specjaliści z Politechniki Wrocławskiej znaleźli lukę w systemie szyfrowania danych. Twierdzą oni, że nie możemy być pewni, że nasze konta internetowe są bezpieczne.
Koniec bankowości internetowej, czyli ale bzdury
Choć nie jest to nowa wiadomość, to pozwolę sobie na niej trochę poużywać. Fragment ten pochodzi z wiadomości zamieszczonej tutaj, a później bezkrytycznie powtórzonej tu. Czasami zastanawiam się czy nasi dziennikarze dostają jakąś premię za sianie nieuzasadnionej paniki. O przepraszam, sądząc po poziomie merytorycznym wcześniej cytowanych tekstów to dla nich ta panika może być uzasadniona. A jak jest naprawdę? Ruch między serwerem banku a przeglądarką internetową jest szyfrowany, wykorzystywany jest do tego protokół SSLv2, SSLv3 lub TSL1. W zasadzie SSLv2 nie powinien być już wykorzystywany z uwagi na rzeczywiście istniejące w nim słabości. Zresztą jest to temat na zupełnie inną bajkę, zwłaszcza, że jakiś czas temu pojawił się równie sensacyjny raport, który miał pokazać, że banki są źle zabezpieczone... Komentarz będzie innym razem :) W ramach wymienionych protokołów wykorzystywane są różne szyfry symetryczne, o wyborze szyfru decyduje proces negocjacji wykonywany między przeglądarką a serwerem. W założeniu obie strony wybierają najmocniejszy ze wspólnie obsługiwanych szyfrów. Są to szyfry symetryczne, czyli potrzebują jakiegoś klucza. Obie strony klucz taki uzgadniają w jeden z kilku sposobów. Pomijając stare "eksportowe" szyfry klucz ma długość 128 lub więcej bitów, co powoduje, że odgadnięcie go trwa wystarczająco długo, by operacja taka była nieopłacalna. Można jednak wyobrazić sobie taką sytuację, w której jedna ze stron połączenia jest zmodyfikowana w taki sposób, by klucz ustalany był w sposób bardziej przewidywalny. Wystarczy na przykład, by generator liczb pseudolosowych wcale taki bardzo losowy nie był. Wówczas znając jego "szczególne cechy" intruz może w sensownym czasie (a więc takim, w którym może jeszcze czerpać zyski ze złamania klucza) odszyfrowywać zabezpieczone dane. Przeciętny użytkownik nie ma pojęcia o takiej możliwości, a nawet dla tych bardziej zaawansowanych wykrycie takiej sytuacji wcale trywialne nie jest. A teraz przejdźmy do źródła, a więc do strony profesora Mirosława Kutyłowskiego. Poznajemy na niej rozwiązania opisanych problemów, w tym opis rozwiązania "niepełnego". Oto ono: W związku z powyższym, sugerujemy:
- instalowanie oprogramowania co do którego pochodzenia jesteśmy pewni,
- sprawdzanie podpisów elektronicznych producentów oprogramowania pod instalowanym software'em,
- wykonywanie aktualizacji oprogramowania weryfikowaną podpisem elektronicznym producenta oprogramowania,
No i w tej chwili trudno powstrzymać się od uśmiechu pod nosem. Bo prawda jest taka, że jeśli ktoś jest w stanie uruchomić swój kod na twoim komputerze, to TO NIE JEST JUŻ TWÓJ KOMPUTER. Koniec. Kropka. Dowód jest trywialny... Jeśli korzystasz z przeglądarki zmodyfikowanej przez ZŁYCH ludzi, to kleptowirusy (tak, tak, bo to o nie właśnie tutaj chodzi) tak naprawdę są najmniejszym zmartwieniem. Dlaczego? Bo jest jeden mały problem, owszem wcześniej opisany scenariusz z przewidywalnym kluczem szyfrującym jest bardzo interesujący, ma tylko jedną wadę. W dalszym ciągu trzeba być w stanie podsłuchiwać transmisję między klientem i serwerem, a wbrew pozorom to nie jest trywialne. Owszem, może dla małej sieci blokowej, ale dla Internetu jako ogólności już nie. Jeśli już mam możliwość uruchomienia swojego kodu na czyjejś maszynie i chcę temu komuś zrobić COŚ BRZYDKIEGO, to nie będę się bawił w kleptografię, tylko dopiszę fragment kodu, który będzie "dzwonił do domu" i przekazywał interesujące mnie informacje. Owszem, w przeciwieństwie do kleptografii jest to łatwiejsze do wykrycia, ale... ale tak naprawdę bardziej praktyczne. I właśnie tego typu akcji powinni obawiać się klienci banków internetowych, a nie sensacyjnych wiadomości publikowanych przez obdarzonych najwyraźniej nieco zbyt wybujałą, w stosunku do wiedzy merytorycznej, wyobraźnią dziennikarzy.
Nie mogę odpuścić sobie jeszcze zwrócenia uwagi na jeszcze jedną rzecz, którą również w artykułach o bezpieczeństwie bankowości elektronicznej się konsekwentnie pomija. W przypadku większości szanujących się banków (te, które się nie szanują to zagryzają zęby i płacą, choć słyszałem, że nawet one wreszcie poszły po rozum do głowy) mamy dwa etapy: uwierzytelnienia (jak u kogoś usłyszę/zobaczę pojęcie autentykacji, to chyba się wścieknę) oraz autoryzacji transakcji. Sensownie zrobiona autoryzacja transakcji powoduje, że nawet w przypadku, gdy ktoś jest w stanie słuchać ruchu między serwerem i klientem, to NIC nie może zrobić, bo po prostu nie jest w stanie autoryzować żadnej własnej transakcji, może co najwyżej patrzeć co ktoś na swoim koncie robi... Autoryzacja transakcji może być wykonywana przy pomocy haseł jednorazowych, haseł przesyłanych kodem SMS, wskazań tokenu czy podpisu cyfrowego. Nie powinna być wykonywana przy pomocy statycznych haseł. Tak tak, są banki, które tak robią, mało tego, są firmy, które tworzą systemy bankowości elektronicznej i twierdzą, że takie rozwiązanie jest bezpieczne... Sam uważam, że rozwiązaniem najlepszym jest podpis cyfrowy, ponieważ pozostałe rozwiązania nie wiążą do końca parametrów transakcji z wpisanym kodem (można to jednak próbować "naprawić", jak również można te próby naprawiania z kolei starać się obejść). W każdym razie bez możliwości autoryzacji transakcji ktoś może podglądać konto (no wiem, sam wolałbym, by nikt mojego konta nie podglądał, bo po co), ale od tego, do wyczyszczenia konta przez Tych Co Czynią Zło jeszcze kawałek drogi pozostaje...
Jakby ktoś się jeszcze nie zorientował, to w tej chwili jestem złośliwy przede wszystkim w stosunku do dziennikarzy...