Większe bezpieczeństwo w OpenSSH dzięki ASCII-Art

Zapamiętanie ciągu 16 heksadecymalnych liczb nie jest łatwym wyczynem, trudno też zauważyć, że pojawiły się w nim jakieś zmiany.

By rozwiązać ten problem, wykorzystując fakt, że ludzie lepiej rozpoznają obrazki niż ciągi liczb, zespół OpenBSD dodał do narzędzia OpenSSH możliwość wizualizacji kluczy SSH jako obrazków ASCII-art.

Pomysł wykorzystania takiej metody odróżniania od siebie kluczy kryptograficznych pojawił się po raz pierwszy w artykule Adriana Perriga i Dawn Songa z 1999 roku, pod tytułem „Hash Visualization: a New Technique to improve Real-World Security”.

żadnych reklam, sama wiedza.

Zarejestruj się na BEZPŁATNY NEWSLETTER i raz w tygodniu otrzymuj najważniejsze wiadmości
ze świata IT, nowych technologii i kryptowalut.

Bez reklam.

  1. Awatar bartku
    bartku

    No nie wiem, ja chyba prędzej zapamiętam klucz w heksach niż obrazek i jaki znak jest na jakim miejscu.

    1. Awatar xahil
      xahil

      Tu raczej chodzi o szybkie sprawdzenie czy jest poprawny, niz o zapamietywanie.

      Porownywanie 2 obrazkow powinno byc latwiejsze, chociazby tak na pierwszy rzut oka, niz 2 liczb heksadecymalnych.

      1. Awatar Maciej Mrozowski
        Maciej Mrozowski

        skądże – zwykle i tak człowiek patrzy na kilka pierwszych i ostatnich znaków jak porównuje wzrokiem

        1. Awatar xahil
          xahil

          No, wlasnie latwiej sfalszowac "dlugi" napis (gdzie jak sam przyznajesz sprawdza sie tylko poczatek i koniec), niz skompikowany wzorek.

          Bo duzo latwiej zauwazyc, ze 2 "obrazki" nie pasuja.

          przykladowe "obrazki"
          http://rrr.thetruth.de/wp-content/uploads/2008/07…

  2. Awatar Paweł Zdziarski
    Paweł Zdziarski

    co to jest "liczba heksadecymalna"?

    1. Awatar Sławek
      Sławek

      Liczba w zapisie heksadecymalnym 😉 . Czyli taka reprezentacja liczby, gdzie każdy znak odpowiada potędze 16 zależnej od swojej pozycji z prawej strony, przemnożonej razy swoją wartość. Przy tym wszelkie literki alfabetu do f odpowiadają wartości 9 + pozycja_wystąpienia_znaku_w_alfabecie_łacińskim.

    2. Awatar tomko222
      tomko222

      liczba w zapisie szesnastkowym (hex)

    3. Awatar wiktorw
      wiktorw

      "16 heksadecymalnych liczb" to np. ciąg pokazany w podlinkowanym artykule:

      3b:fa:d7:79:c0:69:7a:12:66:84:8e:f5:16:73:65:82

      Liczby te są w powyższym przykładzie rozdzielone dwukropkami. Autorzy akurat mieli na myśli bajty, składające się z dwóch heksadecymalnych cyfr (każda o 16 możliwych wartościach: 0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f).

      Inna sprawa, czy obrazek ASCCI-art faktycznie jest czytelniejszy dla porównania niż np. porównywanie w edytorze dwóch linii pod sobą przy czcionce o stałej szerokości:

      <code>

      3b:fa:d7:79:c0:69:7a:12:66:84:8e:f5:16:73:65:82

      3b:fa:d7:79:c0:69:7a:12:56:84:8e:f5:16:73:65:82

      *–[ RSA 2048]—-*

      | . |

      | E . o |

      | . + |

      | o + . |

      | +So = . |

      | . ..* = |

      | o+ = o |

      | . .+ + . |

      | …. o . |

      *—————–*

      *–[ RSA 2048]—-*

      | . |

      | E . o |

      | . + |

      | o + . |

      | +So = . |

      | . . * = |

      | o+ = o |

      | . .+ + . |

      | …. o . |

      *—————–*

      </code>

      Do uważnych: w obu kluczach coś jest zmienione. W którym lepiej to widać?

      1. Awatar CeCeron
        CeCeron

        W ciągu znaków wystarczyło mi pół sekundy, ASCII-Art koło 3 sekund. Dla mnie więc nie bardzo to dziala. Z drugiej strony sądzę, że obrazek łatwiej zapamiętać.

        1. Awatar Maciej Piechotka
          Maciej Piechotka

          Podobne rezultaty.

        2. Awatar Mieszko Kaczmarczyk
          Mieszko Kaczmarczyk

          W ciągu znalazłem od razu – a w rysunku dopiero po dłuższej chwili.

        3. Awatar krzy
          krzy

          Pomysł jest bardzo dobry.

          Implementacja na razie kiepska, ale to się powinno dać dopracować. Moim zdaniem problem jest w tym, aby przekształcenie klucz->rysunek uzględniało (jakoś) psychologię postrzegania obrazu.

        4. Awatar rorio
          rorio

          Też jakoś szybciej poszło mi z tekstem, ale to chyba wina utraty formatowania;) Pomysł ciekawy:)

      2. Awatar bartku
        bartku

        Oczywiście, że w przypadku ciągu liczb.

      3. Awatar Rsh
        Rsh

        Jak to się mówi, "psy szczekają, a karawana jedzie dalej". Obrazek jest niczym innym jak prostym graficznym hashem właściwego klucza, można czasem pomyśleć zamiast pisać durnowate "dowody".

      4. Awatar Adawo
        Adawo

        W ciągu liczb bo oba ciągi liczb można naraz "objąć" wzrokiem, z obrazkiem jest dużo ciężej …

        1. Awatar norbert_ramzes
          norbert_ramzes

          Ale tam jest zmieniona tylko jedna "cyferka" z 6 na 5 a w większości przypadków klucze znacznie się różnią.

          Tak czy siak: "malutki błąd i d… zbita" 🙂

      5. Awatar haael
        haael

        Ale w tej metodzie chodzi o to, że jak zmienisz jeden bit w kluczu, to obrazek będzie zupełnie inny. Chyba, że powstanie jakaś nowa metoda generowania dwóch kluczy dających identyczne obrazki.

        1. Awatar szatox (ktoś)
          szatox (ktoś)

          jak w kluczu zmienisz jeden bit to jego odcisk palca (hash) też będzie zupełnie inny. I nie ważne czy używa md5, sha1, sha256 czy innych. Te funkcje są tworzone z założeniem, że zmiana 1 bitu wejściowego powinna zmieniać około połowy bitów wyjściowych – dzięki temu nie można wnioskować o danych wejściowych na podstawie hasha. (nie dotyczy sum kontrolnych służących do odzyskiwania danych z uszkodzonych nośników/plików/pakietów/innych)

        2. Awatar dzikus
          dzikus

          Jakoś chinczykom od dawna nie przeszkadza to w tworzeniu całkowicie różnych treści o tej samej sumie md5 (tzw. kolizje).

        3. Awatar uhaha
          uhaha

          Jeszcze poczytaj sobie czemu jest to zupelnie nieuzyteczne w praktyce

      6. Awatar krzy
        krzy

        Hm, właśnie zrozumiałem o co chodzi.

        Ten eksperyment jest źle zaprojektowany. W kluczu RSA nie można po prostu zmienić jednego bitu.

        Pomysł opiera się zdaje się na tym, że w realistycznym scenariuszu ataku man-in-the-middle klucz podstawiony przez napastnika będzie zupełnie inny od oryginalnego. Zatem wygenerowany rysunek też będzie zupełnie inny. Oczywiście jest teoretycznie możliwe wygenerowanie podobnego (w sensie rysunku) klucza, ale jest to bardzo trudne (=kosztowne obliczeniowo).

        A znacznie prościej jest zapamiętać jak wygląda (choćby ogólnie) rysunek niż klucz.

      7. Awatar Lupinek
        Lupinek

        W obu tak samo 😉

      8. Awatar totalnaMasakra
        totalnaMasakra

        Ja też szybciej znalazłem różnicę w ciągu…

        Ale tak się spytam, te obrazki są wygenerowane na podstawie kluczy czy autor po prostu przedstawił dwa podobne rysunki nie mające nic wspólnego z liczbami wyżej?

        1. Awatar wiktorw
          wiktorw

          Nie, oczywiście, skróty kluczy tekstowych i obrazkowych nie mają ze sobą nic wspólnego. No, może poza pierwszymi z nich – skopiowałem z podlinkowanego artykułu wersję tekstową i semigraficzną, po czym zmieniłem w każdym po jednym znaczku. W rzeczywistości jest to nierealne, dla różnych skrótów generowane są znacząco inne obrazki.

          To był tylko taki eksperyment – sam byłem ciekaw czy rezultaty innych czytelników LN będą podobne jak moje (odpowiedź: tak, dwie linie tekstu porównuje się szybciej).

      9. Awatar Botnet Server 2007
        Botnet Server 2007

        W Twoim przyĸładzie w kluczu. W ich przykładach w obrazku.

      10. Awatar gotar
        gotar

        Eksperyment ciekawy, ale zupełnie bezcelowy.

        1. fingerprintów nie porównuje się jeden pod drugim – jeśli miałbym go już kopiować i wklejać, to od razu w grepa i nic nie muszę porównywać. Tu chodzi o porównanie np. z wydrukiem, SMS-em albo w ogóle bez wzorca, tylko z pamięci.

        2. w przypadku ataków nie zmienia się jeden znak, tylko praktycznie całość. Ja choćbym kilka razy dziennie widział odciski swoich serwerów (a nie patrzę w ogóle), to i tak nie zapamiętam nawet pierwszych dwóch znaków. Jak mi się będzie wyświetlał jakiś obrazek, to w przypadku ataku zobaczę, że 'coś' jest inaczej.

        1. Awatar vampire
          vampire

          Jezeli wczesniej laczyles sie z maszyna, to klient OpenSSH Ci sam powie, ze klucz sie zmienil.

          Jak to Twoje pierwsze polaczenie, to obojetnie czy bedzie to obrazek czy hash to i tak roznicy nie rozpoznasz, bo nie masz z czym porownac.

        2. Awatar gotar
          gotar

          Jeśli wcześniej się łączyłem Z TEGO SAMEGO KONTA NA TYM SAMYM KOMPUTERZE. Wyobraź sobie, że niektórzy ludzie korzystają czasem z ssh z innych miejsc.

  3. Awatar coyote01
    coyote01

    Jeśli zmieni się jeden bit w danych na podstawie których wyliczony został skrót to ponad 90% skrótu ulega zmianie, jeśli 90% obrazka się zmieni to nie powinno być problemu z zauważeniem różnicy.

  4. Awatar batwing
    batwing

    Nikt przecież nie mówi o całkowitym zastąpieniu, tylko o możliwości wyboru

  5. Awatar Fazer
    Fazer

    Gdyby obrazki były obok siebie, a nie pod sobą, łatwiej byłoby wychwycić różnice.

    1. Awatar wojtekm
      wojtekm

      Tak, wystarczy umieć zezować, pamięta ktoś jeszcze zabawy ze stereogramami? Jak obrazek będze płaski to wszytsko będzie OK ;-).

  6. Awatar jarek
    jarek

    Łłłiii, ja myslalem, ze to bedzie jakos bardziej wypasnie.

    Na przyklad ascii art pokazujacy niewinna krowke pasaca sie na lace.

    A jak jest man in the middle to zamiast krowki jest np. grozny

    pirat z drewniana noga.

  7. Awatar Sadhu
    Sadhu

    No dobra ale gdzie można pobrać patcha żeby wypróbować to w praktyce?

  8. Awatar głodny
    głodny

    Dla mnie oba rysunki wyglądają prawie identycznie z tym że na pierwszym obrazku kobieta coś zakrywa a na drugim już jest kompletnie naga.

    1. Awatar norbert_ramzes
      norbert_ramzes

      A no rzeczywiście. To pewnie teraz wszyscy admini będą się bawić w zmianę kluczy 😉

      1. Awatar Mieszko Kaczmarczyk
        Mieszko Kaczmarczyk

        Ja już wymieniłem.

      2. Awatar xd
        xd

        Tak. I kilka kluczy zostanie uznanych za trendy, bo będą miały fajne obrazki i będzie ich używać połowa komputerów na świecie.

        Może nawet jakiś serwis powstanie umożliwiający za SMSa ściągnięcie klucza o danym obrazku podobnie jak teraz tapety na komórki. To by był bajer 🙂

  9. Awatar Botnet Server 2007
    Botnet Server 2007

    Można by to rozwinąć np. generować kolor.

    1. Awatar vampire
      vampire

      tylko po co?

      Klient SSH sam porownuje klucze przy kazdym polaczeniu (klucz z obecnej sesji i z poprzedniej).

      1. Awatar gotar
        gotar

        Po raz kolejny udowadniasz tylko, że używasz jednego komputera. Przyjmij do wiadomości, że nie każdy tak ma – ja używam na codzień 3 w domu, do tego ok. 4 służbowych i przynajmniej czasem 3 u znajomych. Jak doliczę do tego fakt, że czasem loguję się POMIĘDZY serwerami (czyli ok. 30 maszyn do łączenia każda z każdą), nie zawsze jest sens przełączać się na swoje konto, a czasem wypadnie konieczność zalogowania się z czegoś zupełnie obcego (kafejka, przypadkowe komputery i laptopy), to musiałbym chyba swoje ~/.ssh/known_hosts trzymać w jakimś repozytorium gita.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *