Security Lab

EPIC FAIL LinkedIn

EPIC FAIL LinkedIn
Буквально неделю назад на PHDays обсуждали с Solar Designer'ом, как компании должны защищать хэши паролей своих пользователей, если вдруг случится компрометация.

И вот, с пылу с жару -- шесть с половиной миллионов хэшей пользователей LinkedIn.

Мы пока не знаем, как именно и через какую уязвимость у LinkedIn утекли хэши паролей (nb: как публичная компания, LinkedIn должна будет опубликовать security breach incident report). Но просто удивительно, как наплевательски эти ребята отнеслись к защите самих хэшей от взлома. Для хэширования паролей в LinkedIn использовался алгоритм SHA-1 без соли. Это плохо по трем причинам:
- Отсутствие соли позволяет использовать заранее подготовленные "радужные таблицы" (rainbow tables) для взлома
- SHA-1 хорошо распараллеливается на GPU
- Linkedin не использовала никаких механизмов усиления ключа, а просто хэширование пароля "в лоб"

Если бы LinkedIn использовала механизм для усиления ключа (key stretching), например, PBKDF2, то взлом хэшей был бы существенно затруднен. Основная идея таких механимов: использование соли и многократный "проход" по функции, что затрудняет взлом: с солью посчитать хэши заранее не удастся, и, например, 1000 вычислений хэша (как рекомендуется в том же PBKDF2) потребует больше ресурсов, чем одно вычисление. В идеале к этому еще можно добавить выбор хэш-функции, которую трудно распараллелить на GPU, например, bcrypt.

Просто не верится, что у LinkedIn не было даже "соли". Кстати, хэша своего пароля я в базе не нашел ;-(
security
Alt text

Ваша приватность умирает красиво, но мы можем спасти её.

Присоединяйтесь к нам!

Anton Karpov

high-tech in low-life