-
Data: 2017-12-21 21:33:52
Temat: Re: Hakerzy zaatakowali mobilne aplikacje największych polskich banków
Od: Piotr Gałka <p...@c...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu 2017-12-21 o 16:59, Krzysztof Halasa pisze:
> Owszem. Certyfikat = klucz publiczny (np. karty), podpisany kluczem
> prywatnym (np. banku). Klucz publiczny banku (także na karcie) podpisany
> kluczem prywatnym organizacji płatniczej. Klucz publiczny organizacji -
> na karcie. Tym sposobem karta może podpisać dowolną informację swoim
> kluczem, a terminal - bez udziału banku - może stwierdzić, że podpis
> jest prawidłowy i pochodzi od karty wydanej w ramach organizacji.
Jeżeli klucz publiczny organizacji jest też z karty to według mnie
terminal może jedynie stwierdzić, że wszystkie klucze i podpisy na
karcie są spójne ze sobą. Musi mieć jakąś możliwość zweryfikowania
klucza publicznego organizacji płatniczej. Chyba nie może go pobierać z
karty a powinien mieć z innego pewnego źródła.
>
>> Potem jednak znalazłem błąd (prawie na pewno w HMAC) i napisałem do
>> NIST, że mają źle dobrane wektory testowe bo mi się udało zrobić błąd
>> którego one nie wykrywają i załączyłem moje źródła z wskazaniem gdzie
>> jest błąd. Nic mi nie odpowiedzieli, ale jak sobie po jakimś czasie
>> przypomniałem o tym i zajrzałem na ich stronę to zamiast chyba 3
>> wektorów było już coś koło 10 i chyba wszystkie nowe wyłapywały ten
>> mój błąd :).
>
> Ciekawe. To musiał być jakiś subtelny błąd.
W krypto jak się cokolwiek pomyli to wychodzi totalna kaszana. Błąd był
we fragmencie kodu który nie był wykonywany przy żadnym z wektorów. Tego
jestem pewien. Natomiast nie jestem na 100% pewien czy to było w HMac.
Próbowałem teraz obejrzeć moje źródła, czy mi się przypomni jak to
wyglądało, ale nie. Podejrzane są wszystkie fragmenty if() bo warunek
może nie być spełniony. Kojarzy mi się, że to było pod koniec funkcji,
ale akurat w 2 funkcjach jakie mam w HMac (Init i Finish) widzę tylko
jedno if() i nie pod koniec. Pod koniec jest w funkcji Update mojej
klasy Hash, ale jakby tu był błąd to by wyszło przy innych wektorach
testowych, bo ta Update jest używana przez wszystkie jej klasy pochodne
(Md5, Sha1, Sha256, Sha512). HMac jej używa pośrednio bo dostaje
wskaźnik której funkcji mieszającej ma używać.
Że też sobie nie zostawiłem gdzieś tam komentarza "tu był byk" :(.
Miałbym szansę może dojść do tego, ale musiałbym dużo czasu poświęcić, a
tego akurat wyjątkowo brakuje. Robimy, coś, co musi być jeszcze w tym
roku wysłane i zainstalowane, a my dopiero ustalamy i testujemy
protokoły krypto do tego.
>> Ale jak założymy, że klucz mógł wyciec z banku to dlaczego mamy
>> pewność, że klucz prywatny nie wyciekł w momencie gdy był
>> generowany/dostarczany.
>
> To jest pewien problem. W zastosowaniach niebankowych użytkownik sam
> może wygenerować klucz, ale tu mamy do czynienia z nieprofesjonalistą.
> Tu opiera się to zwykle na procedurach i certyfikatach, co oczywiście
> jest lepsze niż nic, ale może być zawodne.
Niedawno widziałem gdzieś informację, że jakiś scalak od lat używany
chyba do RSA generował średnio 50% kluczy słabych (nie wiem na czym
polegają słabe klucze jak mają z góry narzuconą długość, ale nie znam się).
> Tak czy owak, jeśli serwer ma dostęp, to jego obsługa także ma dostęp,
> a przynajmniej może taki dostęp (być może w drodze "spisku") uzyskać.
> Im bardziej to skomplikowane tym mniejsza szansa na to, że jest
> bezpieczne. Sytuacja, w której klucz jest generowany (poza kartą lub
> przez samą kartę), zapisywany i następnie niszczony (jeśli istniał poza
> kartą) jest lepsza.
Tylko trzeba ufać, że:
- jest faktycznie niszczony,
- jak w datasheet IC piszą, że nie ma funkcji do odczytania
wygenerowanego klucza prywatnego to jej faktycznie nie ma.
Chyba w 2013 odwiedził nas jakiś gość, który chciał nam wcisnąć jakiś
system kart i scalaki do czytników do tego (nie tanie). Potem jeszcze
nas dopadł na Securexie 2014 i był tak namolny, że zgodziliśmy się
usiąść i pogadać. Z rozmowy wychodziło, że karty są na prawdę super.
Tylko, że wszystkie klucze były generowane przez nich i wszystko się
opierało na "Ale my, jak ktoś wykupuje zestaw kart master, to zapominamy
o tych kluczach".
Był bardzo zdziwiony, że nie wykazujemy zainteresowania, bo inne firmy
to wzięły chociaż próbki scalaków i kart.
P.G.
Następne wpisy z tego wątku
- 22.12.17 17:00 J.F.
- 22.12.17 17:12 J.F.
- 23.12.17 01:38 Krzysztof Halasa
- 27.12.17 17:06 Piotr Gałka
- 01.01.18 21:58 Krzysztof Halasa
- 02.01.18 13:58 Piotr Gałka
Najnowsze wątki z tej grupy
- Co nalezy do Cinkciarza, a co do Conotoxia ?
- jak tacy debile
- Konto wspólne w N26.
- Bank z archaicznym uwierzytelnianiem.
- Re: Akumulatorki...
- Usiłuję zapłacić za energetyzację...
- w Polsce jest kryzys
- mBank mKsiegowosc
- gotówkowe zjeby
- Mamy WZROST! O 50% wzrosła ilość kredytów gotówkowych
- Jutro to dziś...
- leć gołombeczku
- PUE ZUS -- administracyjna nuda...
- Prawdziwy/fałszywy bank
- Velo dał mi bezpłatny debet...
Najnowsze wątki
- 2024-12-23 Co nalezy do Cinkciarza, a co do Conotoxia ?
- 2024-12-21 jak tacy debile
- 2024-12-13 Konto wspólne w N26.
- 2024-12-09 Bank z archaicznym uwierzytelnianiem.
- 2024-12-04 Re: Akumulatorki...
- 2024-12-03 Usiłuję zapłacić za energetyzację...
- 2024-11-13 w Polsce jest kryzys
- 2024-11-12 mBank mKsiegowosc
- 2024-11-06 gotówkowe zjeby
- 2024-11-01 Mamy WZROST! O 50% wzrosła ilość kredytów gotówkowych
- 2024-11-01 Jutro to dziś...
- 2024-10-22 leć gołombeczku
- 2024-10-19 PUE ZUS -- administracyjna nuda...
- 2024-10-15 Prawdziwy/fałszywy bank
- 2024-10-13 Velo dał mi bezpłatny debet...