SlideShare a Scribd company logo
1 of 35
amichalczyk@future-processing.com
vizzdoom@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 uwierzytelniania
Atakowanie haseł

Porady
METODY UWIERZYTELNIANIA

Kontrola dostępu do zasobu
1. Identyfikacja
2. Uwierzytelnianie
3. Autoryzacja

Nie masz uprawnień
do tego pliku
METODY UWIERZYTELNIANIA

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 zostad zmienione, blokując dostęp do usługi
METODY UWIERZYTELNIANIA

Inne metody uwierzytelniania
• Hasła jednorazowe („co wiem” „co mam”)

• Karty magnetyczne i inteligentne („co mam”)
• Metody biometryczne („czym jestem”)
METODY UWIERZYTELNIANIA

Przechowywanie haseł
• Plaintext

• Szyfrowanie
METODY UWIERZYTELNIANIA

Hashowanie
Przechowywanie wartości
bezpiecznej funkcji hashującej
METODY UWIERZYTELNIANIA

Bezpieczna funkcja hashująca
• Jednokierunkowośd
na podstawie wyjścia nie możemy określid wejścia
0
fb1093febd19a969
4e5c89e911546bd9

seticxE ytilauQ

classicHash("Quality Excites");
md5("Quality Excites");

badHash("Quality Excites");
METODY UWIERZYTELNIANIA

Bezpieczna funkcja hashująca
• Wysoka odpornośd na kolizje
bardzo trudna generacja tego samego wyjścia
przy użyciu dwóch różnych wejśd

classicHash("Vizzdoom");
//2
classicHash("Ale ma kota"); //2
METODY UWIERZYTELNIANIA

Bezpieczna funkcja hashująca
• Duża zmiennośd wyjścia
duża różnica wyjśd przy bardzo podobnych wejściach

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
http://www.flickr.com/photos/spyder01/sets/72157621929408408/detail/
http://img.wallpaperstock.net:81/car-crash-3d-wallpapers_25856_1600x1200.jpg

http://www.flickr.com/photos/spyder01/sets/72157621929408408/detail/
ATAKOWANIE HASEŁ

Atak offline
•

Atak na skrót kryptograficzny

•

Bruteforce / Dictionary / Hybrid …

•

Bardzo szybki
o

CPU

o

GPU

o

Przetwarzanie rozproszone
0-9
a-z
a-z 0-9

A-Z a-z
ATAKOWANIE HASEŁ

Zasada pierwsza
• Kontroluj szybkośd
 Wielokrotne hashowanie
for (i=0 ; i < 1000 ; i++)
$pass = hashFunc($pass);
ATAKOWANIE HASEŁ

Zasada druga
• Posól hasła


Dodaj losowy ciąg do hasła



Jeden użytkownik – jedna sól

a`zYHdYHdZ~qwertyU7YHdfv+Hd^&%YHd34d9xl__a`zZ~
ATAKOWANIE HASEŁ

BCrypt
# Python py-bcrypt library
import 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
ATAKOWANIE HASEŁ

Funkcje o zmiennym koszcie obliczeniowym
• BCrypt
• PBKDF2

• Scrypt
• Phpass

• …
Metody uwierzytelniania
Atakowanie haseł

Porady
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&lt;3+you
PORADY
Dla QA
• Weryfikuj metody przechowywania haseł
 Czy hasła są hashowane?
 Czy hasła mogą mied dowolną długośd i dowolne znaki?

• Testuj bezpieczeostwo 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!)
Dziękuję za uwagę

https://www.future-processing.com/fp-security-consulting

amichalczyk@future-processing.com
vizzdoom@gmail.com

Źródła:
„Kompendium bezpieczeostwa haseł – Atak i obrona”
http://vizzdoom.net/2013/02/kompendium-bezpieczenstwa-hasel-atak-i-obrona/

More Related Content

More from Future Processing

DPTO_QA w świecie wartości biznesowych.pdf
DPTO_QA w świecie wartości biznesowych.pdfDPTO_QA w świecie wartości biznesowych.pdf
DPTO_QA w świecie wartości biznesowych.pdfFuture Processing
 
DPTO_Hello_Clean_Architekture.pdf
DPTO_Hello_Clean_Architekture.pdfDPTO_Hello_Clean_Architekture.pdf
DPTO_Hello_Clean_Architekture.pdfFuture Processing
 
[Quality Meetup #20] Michał Górski - Continuous Deployment w chmurze
[Quality Meetup #20] Michał Górski - Continuous Deployment w chmurze[Quality Meetup #20] Michał Górski - Continuous Deployment w chmurze
[Quality Meetup #20] Michał Górski - Continuous Deployment w chmurzeFuture Processing
 
[Quality Meetup #20] Dorota Tadych - Hyperion - wystarczy jeden shake
[Quality Meetup #20] Dorota Tadych - Hyperion - wystarczy jeden shake[Quality Meetup #20] Dorota Tadych - Hyperion - wystarczy jeden shake
[Quality Meetup #20] Dorota Tadych - Hyperion - wystarczy jeden shakeFuture Processing
 
[Quality Meetup #19] Magdalena Drechsler-Nowak - Tester w pułapce myślenia
[Quality Meetup #19] Magdalena Drechsler-Nowak - Tester w pułapce myślenia[Quality Meetup #19] Magdalena Drechsler-Nowak - Tester w pułapce myślenia
[Quality Meetup #19] Magdalena Drechsler-Nowak - Tester w pułapce myśleniaFuture Processing
 
[Quality Meetup #19] Adrian Gonciarz - Testerska ruletka
[Quality Meetup #19] Adrian Gonciarz - Testerska ruletka[Quality Meetup #19] Adrian Gonciarz - Testerska ruletka
[Quality Meetup #19] Adrian Gonciarz - Testerska ruletkaFuture Processing
 
[FDD 2018] Krzysztof Sikora - Jak Service Fabric rozwiąże twoje problemy z mi...
[FDD 2018] Krzysztof Sikora - Jak Service Fabric rozwiąże twoje problemy z mi...[FDD 2018] Krzysztof Sikora - Jak Service Fabric rozwiąże twoje problemy z mi...
[FDD 2018] Krzysztof Sikora - Jak Service Fabric rozwiąże twoje problemy z mi...Future Processing
 
[FDD 2018] Ł. Turchan, A. Hulist, M. Duchnowski - CUDA - results over coffee ...
[FDD 2018] Ł. Turchan, A. Hulist, M. Duchnowski - CUDA - results over coffee ...[FDD 2018] Ł. Turchan, A. Hulist, M. Duchnowski - CUDA - results over coffee ...
[FDD 2018] Ł. Turchan, A. Hulist, M. Duchnowski - CUDA - results over coffee ...Future Processing
 
[FDD 2018] Lech Kalinowski - Prywatny Blockchain
[FDD 2018] Lech Kalinowski - Prywatny Blockchain[FDD 2018] Lech Kalinowski - Prywatny Blockchain
[FDD 2018] Lech Kalinowski - Prywatny BlockchainFuture Processing
 
[FDD 2018] W. Malara, K. Kotowski - Autoenkodery – czyli zalety funkcji F(X)≈X
[FDD 2018] W. Malara, K. Kotowski - Autoenkodery – czyli zalety funkcji F(X)≈X[FDD 2018] W. Malara, K. Kotowski - Autoenkodery – czyli zalety funkcji F(X)≈X
[FDD 2018] W. Malara, K. Kotowski - Autoenkodery – czyli zalety funkcji F(X)≈XFuture Processing
 
[FDD 2018] Jarosław Ogiegło - Ludzie, zabezpieczajcie się! Wprowadzenie do OA...
[FDD 2018] Jarosław Ogiegło - Ludzie, zabezpieczajcie się! Wprowadzenie do OA...[FDD 2018] Jarosław Ogiegło - Ludzie, zabezpieczajcie się! Wprowadzenie do OA...
[FDD 2018] Jarosław Ogiegło - Ludzie, zabezpieczajcie się! Wprowadzenie do OA...Future Processing
 
[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...
[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...
[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...Future Processing
 
[JuraSIC! Meetup] Mateusz Stasch - Monady w .NET
[JuraSIC! Meetup] Mateusz Stasch - Monady w .NET[JuraSIC! Meetup] Mateusz Stasch - Monady w .NET
[JuraSIC! Meetup] Mateusz Stasch - Monady w .NETFuture Processing
 
[QE 2018] Aleksandra Kornecka – Kognitywne podejście do testowania aplikacji ...
[QE 2018] Aleksandra Kornecka – Kognitywne podejście do testowania aplikacji ...[QE 2018] Aleksandra Kornecka – Kognitywne podejście do testowania aplikacji ...
[QE 2018] Aleksandra Kornecka – Kognitywne podejście do testowania aplikacji ...Future Processing
 
[QE 2018] Adam Stasiak – Nadchodzi React Native – czyli o testowaniu mobilnyc...
[QE 2018] Adam Stasiak – Nadchodzi React Native – czyli o testowaniu mobilnyc...[QE 2018] Adam Stasiak – Nadchodzi React Native – czyli o testowaniu mobilnyc...
[QE 2018] Adam Stasiak – Nadchodzi React Native – czyli o testowaniu mobilnyc...Future Processing
 
[QE 2018] Łukasz Gawron – Testing Batch and Streaming Spark Applications
[QE 2018] Łukasz Gawron – Testing Batch and Streaming Spark Applications[QE 2018] Łukasz Gawron – Testing Batch and Streaming Spark Applications
[QE 2018] Łukasz Gawron – Testing Batch and Streaming Spark ApplicationsFuture Processing
 
[QE 2018] Marek Puchalski – Web Application Security Test Automation
[QE 2018] Marek Puchalski – Web Application Security Test Automation[QE 2018] Marek Puchalski – Web Application Security Test Automation
[QE 2018] Marek Puchalski – Web Application Security Test AutomationFuture Processing
 
[QE 2018] Rob Lambert – How to Thrive as a Software Tester
[QE 2018] Rob Lambert – How to Thrive as a Software Tester[QE 2018] Rob Lambert – How to Thrive as a Software Tester
[QE 2018] Rob Lambert – How to Thrive as a Software TesterFuture Processing
 
[QE 2018] Paul Gerrard – Automating Assurance: Tools, Collaboration and DevOps
[QE 2018] Paul Gerrard – Automating Assurance: Tools, Collaboration and DevOps[QE 2018] Paul Gerrard – Automating Assurance: Tools, Collaboration and DevOps
[QE 2018] Paul Gerrard – Automating Assurance: Tools, Collaboration and DevOpsFuture Processing
 
[QE 2018] Arnika Hryszko – Testy, które tworzą się same (prawie)
[QE 2018] Arnika Hryszko – Testy, które tworzą się same (prawie)[QE 2018] Arnika Hryszko – Testy, które tworzą się same (prawie)
[QE 2018] Arnika Hryszko – Testy, które tworzą się same (prawie)Future Processing
 

More from Future Processing (20)

DPTO_QA w świecie wartości biznesowych.pdf
DPTO_QA w świecie wartości biznesowych.pdfDPTO_QA w świecie wartości biznesowych.pdf
DPTO_QA w świecie wartości biznesowych.pdf
 
DPTO_Hello_Clean_Architekture.pdf
DPTO_Hello_Clean_Architekture.pdfDPTO_Hello_Clean_Architekture.pdf
DPTO_Hello_Clean_Architekture.pdf
 
[Quality Meetup #20] Michał Górski - Continuous Deployment w chmurze
[Quality Meetup #20] Michał Górski - Continuous Deployment w chmurze[Quality Meetup #20] Michał Górski - Continuous Deployment w chmurze
[Quality Meetup #20] Michał Górski - Continuous Deployment w chmurze
 
[Quality Meetup #20] Dorota Tadych - Hyperion - wystarczy jeden shake
[Quality Meetup #20] Dorota Tadych - Hyperion - wystarczy jeden shake[Quality Meetup #20] Dorota Tadych - Hyperion - wystarczy jeden shake
[Quality Meetup #20] Dorota Tadych - Hyperion - wystarczy jeden shake
 
[Quality Meetup #19] Magdalena Drechsler-Nowak - Tester w pułapce myślenia
[Quality Meetup #19] Magdalena Drechsler-Nowak - Tester w pułapce myślenia[Quality Meetup #19] Magdalena Drechsler-Nowak - Tester w pułapce myślenia
[Quality Meetup #19] Magdalena Drechsler-Nowak - Tester w pułapce myślenia
 
[Quality Meetup #19] Adrian Gonciarz - Testerska ruletka
[Quality Meetup #19] Adrian Gonciarz - Testerska ruletka[Quality Meetup #19] Adrian Gonciarz - Testerska ruletka
[Quality Meetup #19] Adrian Gonciarz - Testerska ruletka
 
[FDD 2018] Krzysztof Sikora - Jak Service Fabric rozwiąże twoje problemy z mi...
[FDD 2018] Krzysztof Sikora - Jak Service Fabric rozwiąże twoje problemy z mi...[FDD 2018] Krzysztof Sikora - Jak Service Fabric rozwiąże twoje problemy z mi...
[FDD 2018] Krzysztof Sikora - Jak Service Fabric rozwiąże twoje problemy z mi...
 
[FDD 2018] Ł. Turchan, A. Hulist, M. Duchnowski - CUDA - results over coffee ...
[FDD 2018] Ł. Turchan, A. Hulist, M. Duchnowski - CUDA - results over coffee ...[FDD 2018] Ł. Turchan, A. Hulist, M. Duchnowski - CUDA - results over coffee ...
[FDD 2018] Ł. Turchan, A. Hulist, M. Duchnowski - CUDA - results over coffee ...
 
[FDD 2018] Lech Kalinowski - Prywatny Blockchain
[FDD 2018] Lech Kalinowski - Prywatny Blockchain[FDD 2018] Lech Kalinowski - Prywatny Blockchain
[FDD 2018] Lech Kalinowski - Prywatny Blockchain
 
[FDD 2018] W. Malara, K. Kotowski - Autoenkodery – czyli zalety funkcji F(X)≈X
[FDD 2018] W. Malara, K. Kotowski - Autoenkodery – czyli zalety funkcji F(X)≈X[FDD 2018] W. Malara, K. Kotowski - Autoenkodery – czyli zalety funkcji F(X)≈X
[FDD 2018] W. Malara, K. Kotowski - Autoenkodery – czyli zalety funkcji F(X)≈X
 
[FDD 2018] Jarosław Ogiegło - Ludzie, zabezpieczajcie się! Wprowadzenie do OA...
[FDD 2018] Jarosław Ogiegło - Ludzie, zabezpieczajcie się! Wprowadzenie do OA...[FDD 2018] Jarosław Ogiegło - Ludzie, zabezpieczajcie się! Wprowadzenie do OA...
[FDD 2018] Jarosław Ogiegło - Ludzie, zabezpieczajcie się! Wprowadzenie do OA...
 
[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...
[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...
[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...
 
[JuraSIC! Meetup] Mateusz Stasch - Monady w .NET
[JuraSIC! Meetup] Mateusz Stasch - Monady w .NET[JuraSIC! Meetup] Mateusz Stasch - Monady w .NET
[JuraSIC! Meetup] Mateusz Stasch - Monady w .NET
 
[QE 2018] Aleksandra Kornecka – Kognitywne podejście do testowania aplikacji ...
[QE 2018] Aleksandra Kornecka – Kognitywne podejście do testowania aplikacji ...[QE 2018] Aleksandra Kornecka – Kognitywne podejście do testowania aplikacji ...
[QE 2018] Aleksandra Kornecka – Kognitywne podejście do testowania aplikacji ...
 
[QE 2018] Adam Stasiak – Nadchodzi React Native – czyli o testowaniu mobilnyc...
[QE 2018] Adam Stasiak – Nadchodzi React Native – czyli o testowaniu mobilnyc...[QE 2018] Adam Stasiak – Nadchodzi React Native – czyli o testowaniu mobilnyc...
[QE 2018] Adam Stasiak – Nadchodzi React Native – czyli o testowaniu mobilnyc...
 
[QE 2018] Łukasz Gawron – Testing Batch and Streaming Spark Applications
[QE 2018] Łukasz Gawron – Testing Batch and Streaming Spark Applications[QE 2018] Łukasz Gawron – Testing Batch and Streaming Spark Applications
[QE 2018] Łukasz Gawron – Testing Batch and Streaming Spark Applications
 
[QE 2018] Marek Puchalski – Web Application Security Test Automation
[QE 2018] Marek Puchalski – Web Application Security Test Automation[QE 2018] Marek Puchalski – Web Application Security Test Automation
[QE 2018] Marek Puchalski – Web Application Security Test Automation
 
[QE 2018] Rob Lambert – How to Thrive as a Software Tester
[QE 2018] Rob Lambert – How to Thrive as a Software Tester[QE 2018] Rob Lambert – How to Thrive as a Software Tester
[QE 2018] Rob Lambert – How to Thrive as a Software Tester
 
[QE 2018] Paul Gerrard – Automating Assurance: Tools, Collaboration and DevOps
[QE 2018] Paul Gerrard – Automating Assurance: Tools, Collaboration and DevOps[QE 2018] Paul Gerrard – Automating Assurance: Tools, Collaboration and DevOps
[QE 2018] Paul Gerrard – Automating Assurance: Tools, Collaboration and DevOps
 
[QE 2018] Arnika Hryszko – Testy, które tworzą się same (prawie)
[QE 2018] Arnika Hryszko – Testy, które tworzą się same (prawie)[QE 2018] Arnika Hryszko – Testy, które tworzą się same (prawie)
[QE 2018] Arnika Hryszko – Testy, które tworzą się same (prawie)
 

P4ssw0rd Quality Excites!