Користувач сайту Habr з ніком Scratch детально розповів, як зламати сервіс Passport, в якому Telegram пропонує зберігати скани різних документів, що підтверджують особу користувачів.
Passport використовується для авторизації в сервісах, які потребують достовірного підтвердження особи. Він дозволяє один раз завантажити документи, після чого користувачеві може бути надано доступ до сайтів і додатків, що працюють з фінансами і криптовалютою. За словами розробників Telegram, копії документів зберігаються в хмарі в зашифрованому вигляді і передаються з використанням наскрізного шифрування, яке виключає перехоплення файлів. Однак, за словами Scratch, хакери все ж можуть розшифрувати ці файли.
Справа в тому, що в хмару передається хеш від відправлених даних, змішаних з випадковими байтами, зашифрований паролем ключ, додатковий захист «сіль», а також самі зашифровані дані. Цього цілком достатньо для того, щоб розшифрувати файли без необхідності невиправдано довго перебирати комбінації ключів шифрування.
Scratch припустив, як може здійснюватися розшифровка файлів в Telegram методом брутфорса. Зловмисник може брати різні паролі за порядком і за допомогою декількох потужних відеокарт генерувати їхні хеш і сіль, пробуючи підібрати ключ шифрування. За допомогою десяти відеокарт, за підрахунками Scratch, можна перебрати всі можливі комбінації восьмизначних паролів з 94-символьного словника з латинськими літерами і арабськими цифрами приблизно за п’ять днів.
Scratch вважає, що розробники Telegram вибрали невдалий алгоритм хешування, а також не передбачили повноцінний захист Passport від брутфорса. Після трьох невдалих спроб введення пароля Passport блокує вхід в аккаунт на кілька годин, але блокування відбувається не з боку сервера, а на пристрої користувача . Це ускладнює роботу хакерам, хоча і не критично – їм доведеться логінитись в екаунт жертви з декількох пристроїв.
Джерело: internet.ua