Ланцюжок хешів
Ланцюжок хешів — результат послідовного застосування криптографічної хеш-функції до деякої стрічки. В комп'ютерній безпеці ланцюжок хешів використовується для генерації послідовності одноразових паролів по одному ключу або паролю. Ланцюжки хешів використовуються для реалізації невідмовності шляхом застосування до даних для запису хронології їх існування.
Визначення
Ланцюжок хешів — результат послідовного застосування криптографічної хеш-функції до рядка .
Наприклад,
дає ланцюжок хешів довжини 4, що часто позначається як
Застосування
Леслі Лампорт[1] запропонував використовувати ланцюжки хешів в якості схеми захисту пароля в небезпечному оточенні. Сервер, до якого потрібно надавати автентифікацію, може зберігати ланцюжок хешів замість незашифрованого пароля, запобігаючи таким чином крадіжці пароля під час передачі на сервер або безпосередньо з сервера. Наприклад, сервер починає з зберігання запису , яка надається користувачем. Коли користувач бажає автентифікуватися, він посилає на сервер рядок . Сервер обчислює рядок і переконується в збігу із збереженим на сервері записом. Після цього сервер зберігає запис для подальшої автентифікації.
Зловмисник, що перехопив при зверненні до сервера не зможе відтворити і передати на сервер початок ланцюжка, оскільки тепер сервер очікує . Завдяки властивості незворотності криптографічних хеш-функцій зловмисник не зможе звернути хеш-функцію і отримати початок ланцюжка. У цьому прикладі користувач може автентифікуватися 1000 разів до того моменту, коли ланцюжок буде вичерпаний. Щоразу значення хешу передається різне, тому перехоплення одного хешу не дозволить провести повторну ідентифікацію.
Бінарні ланцюжки хешів
Бінарні ланцюжки хешів зазвичай використовуються разом з хеш-деревами. Бінарний ланцюжок хешів приймає на вхід значення пари хешів, склеює їх і застосовує хеш-функцію до отриманого рядку, утворюючи, таким чином, третій хеш.
На діаграмі зображено хеш-дерево, що складається з 8 листових вузлів та ланцюгів хешів для третього аркуша. Для того, щоб відновити хеш-ланцюжок, в доповнення до самих хеш-значень потрібно знати порядок конкатенації (праворуч або ліворуч, 1 або 0).
Дивись також
- Виклик-відповідь (автентифікація)
- Одноразовий пароль