Wpis z mikrobloga

Kolejny odcinek na temat bezpieczeństwa stron internetowych w ramach #od0dopentestera
Dzisiaj w cyklu OWASP Top 10 o ekspozycji wrażliwych danych czyli o wydobyciu przez atakującego informacji, których nie powinien posiadać.
A jest ich wbrew pozorom całkiem sporo: począwszy od numerów kart kredytowych, haseł do konta czy też adresu email.
Różne są ryzyka związane z wyciekiem różnych danych.
I tak jeżeli wyciekną numery kart możemy stracić pieniądze a email może zostać użyty w kampaniach złośliwego oprogramowania.

Ważnym punktem jest szyfrowanie - chodzi tutaj głównie o protokół https.
Ciasteczka mogą mieć ustawioną flagę Secure, która sprawia, że ich zawartość nie będzie przesłana jeżeli używamy nieszyfrowanego połączenia.

Nie zapominajmy również o aplikacjach na urządzenia mobilne, które to komunikują się naszymi endointami API.
Tutaj kluczowym jest sprawdzanie poprawności certyfikatu.
W przypadku stron - jest za to odpowiedzialna przeglądarka.
W aplikacji to programista musi użyć odpowiednich funkcji.

W różnych językach programowania są różne funkcję generujące dane pseudo losowe - czyli takie oparte na ziarnie.
Jeżeli posiadamy wartość początkową - algorytmy te są deterministyczne - to znaczy, ze zwracają te same dane wyjściowe dla tych samych danych wejściowych.
Przykładem niech będzie funkcja Random w #java i mój filmik na temat odzyskania tak wygenerowanej wartości.

Oczywistym wydaje się fakt, aby nie przechowywać haseł w tak zwanym plaintext a w formie haszy z solą.
Sól to dodatkowy, losowy ciąg, który łączony jest z hasłem przesłanym przez użytkownika.
I to z całego takiego ciągu generuje się hasz - czyli wynik funkcji jednokierunkowej i porównuje się go z tym, zapisanym w bazie.

W przypadku szyfrowania - nie wystarczy używać sprawdzonych bibliotek, należy to również robić w prawidłowy sposób.
Tutaj koronnym przykładem jest AES w trybie ECB.
Szyfry blokowe bowiem operują na blokach danych - gdzie dane wejściowe są podzielone na bloki równej długości.
Tylko, że jeżeli w szyfrowanej wiadomości znajdują się jakieś regularności - na przykład powtarzalne ciągi, to ta sama struktura może się uwidocznić w zaszyfrowanych danych.

Subskrybuj kanał na YouTube
Masz pytanie na temat bezpieczeństwa? Zadaj je na grupie od 0 do pentestera na Facebooku.
Jeżeli chcesz być wołany dodaj się do Mirkolisty.

#programowanie #security #informatyka #it #nauka #technologia #ciekawostki #gruparatowaniapoziomu #bezpieczenstwo #webdev #programista15k
KacperSzurek - Kolejny odcinek na temat bezpieczeństwa stron internetowych w ramach #...
  • 20
  • Odpowiedz
  • Odpowiedz
@KacperSzurek w jaki sposób użycie AES w trybie ECB pozwala na cokolwiek poza ustaleniem, że powtórzył się blok danych? Natomiast ślepe wierzenie sprawdzonym bibliotekom może prowadzić do poważnych problemów - vide przykład Sony i słabego generatora pseudolosowego.
  • Odpowiedz
@Czerwonykaktus: Wyobraź sobie, że firma z jakiegoś powodu szyfruje hasła w trybie ECB zamiast je hashować. Następuje wyciek i masz dostęp do całej bazy zaszyfrowanych haseł. Znajdujesz rekord ze swoimi danymi.
Wiesz że Twoje hasło to 'passwordpassword'. W bazie występuje jako hex
24e67d8f49d92832f3963883121efdc6

Znajdujesz ten sam string w bazie i trafiasz np. na taki rekord
24e67d8f49d92832f3963883121efdc6bae2229046520bd49ad4702dfd729f19

Wiesz że hasło tego użytkownika zaczyna się od passwordpassword, i to jest podatność.

Taki
  • Odpowiedz
@humbleham dlaczego zakładasz od razu użycie trybu niezgodnie z jego przeznaczeniem? Nie ma to najmniejszego sensu w ogólnym określaniu czegoś jako mniej bezpieczne. To tak jakbyś mówił, że zamek do drzwi jest do dupy, bo ktoś nie wybudował jednej ze ścian.
  • Odpowiedz
@Czerwonykaktus: Używasz odwrotnej logiki. Przeznaczeniem każdej funkcji szyfrującej jest uniemożliwienie osobie nieznającej klucza odkrycie czystego tekstu na podstawie szyfrogramu. Słabości trybu ECB nie są jego ficzerem.
  • Odpowiedz
@humbleham pozwól, że zacytuję raz jeszcze do czego się odniosłem.

W przypadku szyfrowania - nie wystarczy używać sprawdzonych bibliotek, należy to również robić w prawidłowy sposób. Tutaj koronnym przykładem jest AES w trybie ECB.


Użycie sprawdzonych bibliotek z zaimplementowanym AESem w trybie EBC jest bezpieczne. Wtedy, kiedy używamy go zgodnie z jego przeznaczeniem. Wy próbujecie dowieść, że tryb CBC jest w jakiś sposób lepszy, a jest po prostu inny. Służy do czego
  • Odpowiedz
@Czerwonykaktus: Zastosowanie ECB nie jest zdefiniowane przez jego twórców. Definiowane jest przez jego słabości. CBC nie posiada słabości które ma ECB, więc prawdziwe jest stwierdzenie że jest lepszy.
A funkcje szyfrujące nie zapewniają integralności. Do szyfrowania można dodać funkcję podpisu jak np. HMAC który wykorzystuje jednostronne skróty.
  • Odpowiedz
@Kryptonim_Janusz dlaczego mam się powoływać na cokolwiek, jesteśmy w internecie. Szyfrowanie uwierzytelnione mówi Ci to coś? A kto jest twórcą ECB? To jest tylko tryb pracy. Każdy szyfr blokowy może w nim działać. I fakt, wykorzystanie trybów pracy jest definiowane przez ich słabości, ale też i przez mocne strony.
  • Odpowiedz
@Czerwonykaktus:
"dlaczego mam się powoływać na cokolwiek, jesteśmy w internecie"
Bo mówisz nieprawdę z pełnym przekonaniem

"Szyfrowanie uwierzytelnione mówi Ci to coś?"
Wytłumaczyłem Ci jak działa uwierzytelnianie szyfrogramu. Podpisywanie wiadomości i szyfrowanie to dwa inne procesy i opierają się na innych algorytmach. Jasne można je łączyć, ale to nie oznacza że samo szyfrowanie zapewnia integralność. Wystarczy spojrzeć na diagramy https://en.wikipedia.org/wiki/Authenticated_encryption

"A kto jest twórcą ECB?"
NIST

"To jest tylko tryb pracy.
  • Odpowiedz
@humbleham szyfrowanie uwierzytelnione DAWNIEJ realizowano za pomocą dwóch algorytmów. Nawet na podesłanej Wikipedii piszą o potrzebie połączenia i rozpisaniu tym samym nowego konkursu Caesar. Główna wada AESa GCM? Podwójny przebieg. Rozwiązanie? Szyfrowanie i uwierzytelnienie NARAZ.

NIST jest ośrodkiem standaryzacyjnym. Nie można powiedzieć, że stworzył ECB - ten tryb pracy jest najbardziej intuicyjny i powstał setki lat temu. Oni go tylko ustandaryzowali.

Mocnymi stronami ECB może być łatwość w implementacji, mniejsza zajętość układu,
  • Odpowiedz
@humbleham i jeszcze jedno. Nie mówię nieprawdy, tylko wytykam Ci błędy w rozumowaniu, a to dwie różne rzeczy. Robię to z pełnym przekonaniem, bo jestem świadom swojej wiedzy i braków.
  • Odpowiedz
@humbleham a czym innym jest szyfr cezara jeśli nie nieświadomym użyciem ecb? Czyli elektronicznej książki kodowej. Czy zwykłej książki kodowej. Czyli odzwierciedleniem jednego bloku w inny blok? Przypominam, że na matematykę można spojrzeć z wielu kierunków.
  • Odpowiedz