Upload
future-processing
View
230
Download
1
Embed Size (px)
DESCRIPTION
Adrian Michalczyk daje receptę na zwiększenie bezpieczeństwa haseł bez utraty użyteczności webaplikacji. Prezentacja z II edycji konferencji Quality Excites.
Citation preview
[email protected]@gmail.com
• Nie Twój interes!
• Nie Twój interes!
• A bo ja wiem?
• Nie Twój interes!
• A bo ja wiem?
• No ba!
Metody uwierzytelnianiaAtakowanie haseł
Porady
Kontrola dostępu do zasobu
1. Identyfikacja
2. Uwierzytelnianie
3. Autoryzacja
METODY UWIERZYTELNIANIA
Nie masz uprawnień
do tego pliku
Informacja uwierzytelniająca
• Coś, o czym podmiot wie
• Coś, co podmiot ma
• Coś, czym podmiot jest
METODY UWIERZYTELNIANIA
Hasło statyczne („co wiem”)
• Najpopularniejsza metoda uwierzytelniania
• Krótki ciąg znaków, często wymyślany przez użytkownika
• Charakterystyczny ciąg, łatwy do przejęcia
• Może zostać zmienione, blokując dostęp do usługi
METODY UWIERZYTELNIANIA
METODY UWIERZYTELNIANIA
• Hasła jednorazowe („co wiem” „co mam”)
• Karty magnetyczne i inteligentne („co mam”)
• Metody biometryczne („czym jestem”)
Inne metody uwierzytelniania
Przechowywanie haseł
• Plaintext
• Szyfrowanie
METODY UWIERZYTELNIANIA
METODY UWIERZYTELNIANIA
HashowaniePrzechowywanie wartości bezpiecznej funkcji hashującej
Bezpieczna funkcja hashująca
• Jednokierunkowość na podstawie wyjścia nie możemy określić wejścia
METODY UWIERZYTELNIANIA
classicHash("Quality Excites");0
md5("Quality Excites");fb1093febd19a9694e5c89e911546bd9
badHash("Quality Excites");seticxE ytilauQ
Bezpieczna funkcja hashująca
• Wysoka odporność na kolizje bardzo trudna generacja tego samego wyjścia przy użyciu dwóch różnych wejść
METODY UWIERZYTELNIANIA
classicHash("Vizzdoom"); //2 classicHash("Ale ma kota"); //2
Bezpieczna funkcja hashująca
• Duża zmienność wyjścia duża różnica wyjść przy bardzo podobnych wejściach
METODY UWIERZYTELNIANIA
md5("Quality Excites"); fb1093febd19a9694e5c89e911546bd9
md5("quality excites");9f2f94e3608854bd3c54963144ee92be
Metody uwierzytelniania
Atakowanie haseł
Porady
ATAKOWANIE HASEŁ
md5("vizzdoom")96daa74aac66d0fa51c9dd6d2dacc37a
sha1("vizzdoom")bfc4231d98b642f656b0c36200e7ba1371a07890
sha3-512("vizzdoom")7c29260cb1f8c09656cab202e0f27f07e9f637da87bc733ecf60a1c0e4261c77
545f1d2b5c5687c2c11032f30ea135be8b762890a1179c43151ae989c358a07a
•szybkość
http://www.flickr.com/photos/spyder01/sets/72157621929408408/detail/
•szybkość
http://www.flickr.com/photos/spyder01/sets/72157621929408408/detail/http://img.wallpaperstock.net:81/car-crash-3d-wallpapers_25856_1600x1200.jpg
Atak offline
• Atak na skrót kryptograficzny
• Bruteforce / Dictionary / Hybrid …
• Bardzo szybki
o CPU
o GPU
o Przetwarzanie rozproszone
ATAKOWANIE HASEŁ
0-9
a-z
a-z 0-9
A-Z a-z
Zasada pierwsza
• Kontroluj szybkość
Wielokrotne hashowanie
ATAKOWANIE HASEŁ
for (i=0 ; i < 1000 ; i++)
$pass = hashFunc($pass);
Zasada druga
• Posól hasła
Dodaj losowy ciąg do hasła
Jeden użytkownik – jedna sól
ATAKOWANIE HASEŁ
a`zYHdYHdZ~qwertyU7YHdfv+Hd^&%YHd34d9xl__a`zZ~
BCrypt
ATAKOWANIE HASEŁ
# Python py-bcrypt libraryimport bcrypt
# Generuj hash z własnoręcznie ustawioną soląbcrypt.hashpw("vizzdoom","$2a$12$1234567890123456789012")
$2a$12$123456789012345678901ueEDm4W8S0bcR7tYCaovy5X64j.wKmA2
# Generuj hash z automatycznie losowaną solą bcrypt.hashpw("vizzdoom",bcrypt.gensalt(12))
$2a$12$ECkVAZC8c3FcL9xWNiQ4l.cl72O5et0PCxhKfR6gGX7Hb7ROTbVBy
Funkcje o zmiennym koszcie obliczeniowym
ATAKOWANIE HASEŁ
• BCrypt
• PBKDF2
• Scrypt
• Phpass
• …
Metody uwierzytelniania
Atakowanie haseł
Porady
Dla programisty
• Hashuj hasła Używaj soli dynamicznych
Hashuj wielokrotnie
BCrypt, PBKDF2, PHPASS
• Ograniczaj użytkownika z dołu, nie z góry!
• I <3 you kontra I%20<3+you
PORADY
Dla QA
• Weryfikuj metody przechowywania haseł
Czy hasła są hashowane?
Czy hasła mogą mieć dowolną długość i dowolne znaki?
• Testuj bezpieczeństwo haseł
Unit Testy
Testy wydajnościowe formatek z hasłami (Denial of Service)
PORADY
Dla użytkownika
• Używaj długich, nieprzewidywalnych haseł
• Używaj osobnych haseł w każdej usłudze
• Włącz podwójne uwierzytelnianie tam, gdzie to możliwe
• Używaj menadżerów haseł (Keepass!)
PORADY
Dziękuję za uwagę
Źródła:„Kompendium bezpieczeństwa haseł – Atak i obrona”
http://vizzdoom.net/2013/02/kompendium-bezpieczenstwa-hasel-atak-i-obrona/
https://www.future-processing.com/fp-security-consulting
[email protected]@gmail.com