Легко запомнить отпечатки пальцев для данных? - PullRequest
8 голосов
/ 27 августа 2010

Мне нужно создать отпечатки пальцев для ключей RSA, которые пользователи могут запомнить или, по крайней мере, легко распознать.На ум приходят следующие идеи:

  • Разбейте хеш SHA1 на части, скажем, 4 бита, и используйте их в качестве координат для сплайнов Безье.Нарисуйте сплайны и используйте это изображение в качестве отпечатка пальца.
  • Используйте хэш SHA1 в качестве входных данных для некоторого фрактального алгоритма.Результат должен быть уникальным для данного ввода, то есть выход не может быть сплошным квадратом половину времени.
  • Сопоставить хэш SHA1 с записями в списке слов (как используется в средствах проверки правописания или пароле).списки).Это создаст парольную фразу, состоящую из реальных слов.
  • Вместо списка слов используйте другой большой набор данных, например карты Google (сопоставьте хэш SHA1 для сопоставления координат и используйте область (и) карты в качестве отпечатка пальца).)

Есть еще идеи?Я уверен, что это было реализовано в той или иной форме.

Ответы [ 4 ]

5 голосов
/ 30 августа 2010

OpenSSH содержит что-то подобное, под названием «визуальный ключ хоста». Попробуйте это:

ssh -o VisualHostKey=yes somesshhost

где somesshhost - это какой-то компьютер с запущенным SSH-сервером. Он напечатает «отпечаток» серверного ключа, как в шестнадцатеричном, так и в виде ASCII-изображения, которое может выглядеть следующим образом:

+--[ RSA 2048]----+
|   .+            |
|   + o           |
|  o o +          |
|   + o +         |
|  . o E S        |
|   + * .         |
|    X o .        |
|   . * o         |
|   .o .          |
+-----------------+

Или вот так:

+--[ RSA 1024]----+
|        .*BB+    |
|       . .++o    |
|        = oo.    |
|       . =o+..   |
|        So+..    |
|        ..E.     |
|                 |
|                 |
|                 |
+-----------------+

По-видимому, это связано с методами, описанными в этой статье . OpenSSH с открытым исходным кодом, с BSD-подобной лицензией, поэтому есть вероятность, что вы можете просто повторно использовать их код (похоже, в файле key.c, функция key_fingerprint_randomart()).

2 голосов
/ 23 июня 2015

Для элемента 3 ( записей в списке слов ) см. RFC-1751 - Соглашение для удобочитаемых 128-битных ключей, в котором отмечается, что

Авторы S / Key разработали систему, упрощающую ввод 64-разрядного одноразового пароля для людей.

Их идея состояла в том, чтобы преобразовать пароль в строку маленьких английских слов.Английские слова значительно легче запомнить и напечатать.Авторы S / Key начали со словаря из 2048 английских слов длиной от одного до четырех символов.Пространство, покрытое 64-битным ключом (2 ^ 64), может быть покрыто шестью словами из этого словаря (2 ^ 66), при этом остается место для проверки на четность.Например, одноразовый пароль S / Key с шестнадцатеричным значением:

    EB33 F77E E73D 4053

станет следующими шестью английскими словами:

    TIDE ITCH SLOW REIN RULE MOT

Вы также можете использовать составнойотпечаток пальца для улучшения запоминаемости, например, английские слова, за которыми следует (или предшествует) одно или несколько зависимых от ключа изображений.

Для создания изображения можно использовать такие элементы, как Identicon , Wavatar, MonsterID или Робо Хэш .

Пример:

enter image description here enter image description here

enter image description here enter image description here

TIDE ITCH SLOW

REIN RULE MOT

0 голосов
/ 16 мая 2013

Ваше первое предложение (нарисуйте путь сплайнов для каждых четырех байтов, затем заполните, используя ненулевое правило заполнения ), именно то, что я использую для визуализации в хэш-блот .

0 голосов
/ 12 сентября 2010

Я нашел нечто, называемое случайным искусством, которое генерирует изображение из хеша.Доступна для скачивания реализация на Python: http://www.random -art.org / about /

Также есть статья об использовании случайного искусства для аутентификации: http://sparrow.ece.cmu.edu/~adrian/projects/validation/validation.pdf

Это с 1999 года;Я не знаю, были ли проведены дальнейшие исследования по этому вопросу.

...