eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plFinanseGrupypl.biznes.bankiHakerzy zaatakowali mobilne aplikacje największych polskich bankówRe: Hakerzy zaatakowali mobilne aplikacje największych polskich banków
  • 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.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1