Повторне використання паролів є надзвичайно проблематичним. Сумно, що люди не знають про пов’язані з цим ризики для своїх акаунтів і даних. Зловмисники використовують електронні адреси та паролі з попередніх витоків, аби отримати доступ до інших сайтів. Менеджери паролів, що генерують випадкові паролі, є ідеальним захистом від таких атак, створюючи унікальні паролі для кожного сайту. Але що робити з усіма старими паролями? Ми щойно випустили нову функцію, яка дозволяє користувачам перевірити свої паролі у великій базі даних за допомогою haveibeenpwned.com. Завдяки цьому новому інструменту можна перевірити свої паролі у наборі даних, що містить майже 5 мільярдів акаунтів з паролями.
Сервіс Pwned Passwords був створений у серпні 2017 року після того, як NIST опублікував рекомендації спеціально про перевірку паролів користувачів на наявність у попередніх витоках даних. Опис мотивації цих рекомендацій і способів використання цих даних у додатках наведений у блозі Introducing 306 Million Freely Downloadable Pwned Passwords. У лютому 2018 року було випущено версію 2 сервісу з понад півмільярдом паролів, для кожного тепер ще й вказано, скільки разів його було виявлено.
(Джерело: https://haveibeenpwned.com/Passwords)
Невелике відео, яке краще демонструє, як це працює. API показує прогрес аналізу. Оскільки це безкоштовний сервіс, ми поважаємо обмеження на частоту запитів і не хочемо завдати шкоди, тому обмежуємо частоту запитів до одного разу на 1,5 секунди.
На першому етапі всі секрети, що містять ваші паролі, завантажуються з сервера. На другому етапі кожен секрет розшифровується у вашому браузері, після чого створюється sha1-хеш пароля. Sha1-хеш має довжину 160 біт (40 символів у шістнадцятковому форматі). Хеш розбивається на префікс (5 шістнадцяткових символів) і суфікс (35 шістнадцяткових символів). Префікс надсилається до API haveibeenpwned.com, який перевіряє свою базу даних і повертає список суфіксів. Клієнт порівнює суфікс вашого пароля із отриманими і визначає, чи був пароль скомпрометований. Це ефективний спосіб пошуку у базі паролів без фактичної передачі самого пароля (або навіть слабких похідних) і відомий як k-анонімізація.