Тема: Шлях на криптографічну вершину
Отже, взявшись за одну цікаву справу, мушу визнати, що мені поки що бракує знань та досвіду в криптографії.
Якщо конкретніше, проблема стосується механізму підтвердження автентичності користувача. Поки що я це уявляю приблизно таким чином:
Нехай у нас є служба автентифікації (СА), сторонні сайти (С1, С2 і т.д.), користувачі (К1, К2 і т.д.). Кожен з користувачів має свій обліковий запис на форумі (Ф). СА може пересилати будь-кому з користувачів повідомлення, які інші користувачі не бачитимуть (вважатимемо, що ПП на форумі є каналом зв'язку, достатньо надійним для цього).
Кожен сайт отримує від СА свій індивідуальний відкритий ідентифікатор сайту (ІС) та секретний код (СК) (які СА заносить у себе в таблицю ІС:СК).
Якщо користувач К1 пише на сайті С1 повідомлення від свого імені, то після цього С1 передає до СА (безпосередньо чи через користувача) наступні дані: ІС, ім'я користувача (ІК), ідентифікатор входу (ІВ — в ролі якого може виступати дата й час входу користувача, номер повідомлення тощо). Отримавши ІС, ІК та ІВ, служба автентифікації знаходить у себе в таблиці СК, що відповідає заданому ІС, й на основі СК, ІК та ІВ генерує хеш-суму Х (напр., за алгоритмом md5 або sha-3).
Далі СА пересилає користувачеві з заданим ім'ям форумне приватне повідомлення з посиланням для входу, яке веде на сайт С1 і містить ІС, ІК, ІВ та Х. При переході за цим посиланням, сайт С1 обчислює хеш-суму на основі СК, ІК та ІВ за тим же алгоритмом, що й СА. Якщо хеш-суми збігаються, сайт вважає, що користувач є тим, за кого себе видає, і його вхід підтверджується.
Отже, які є очевидні недоліки в цій послідовності дій, які я поки що не бачу? Якщо ви зловмисник, що намагається розмістити на сайті повідомлення від імені іншого користувача, то якою буде ваша послідовність дій?