Почему старая функция пароля mysql считается небезопасной - PullRequest
3 голосов
/ 16 августа 2011

Я знаю, что старая функция пароля mysql (до 4.1) считается небезопасной, но я не знаю почему.Каковы конкретные причины, по которым он считается небезопасным?

Ответы [ 2 ]

3 голосов
/ 16 августа 2011

В соответствии с документами MySQL о хешировании паролей :

Механизм хеширования паролей был обновлен в MySQL 4.1 для обеспечения большей безопасности и снижения риска перехвата паролей.

Я не уверен, что это означает что-то дополнительное, «уменьшая риск перехвата паролей» или просто означает, что их сложнее взломать, но главное отличие заключается в размеререзультирующий хеш.

До версии 4.1 размер хеша составлял 16 байт.
Начиная с 4.1+ размер хеша составлял 41 байт (* + 40 байт).

A16-байтовый хеш довольно мал и его легко найти для коллизий по сравнению с большими хэш-функциями.Обычно считается, что MD5 имеет недостаточную прочность и дает вдвое больше - 32 байта.Для сравнения, 16 байтов в основном жалкие.Для сравнения:

pre-4.1 MySQL PASSWORD:  16 bytes  
                   MD5:  32 bytes
                 SHA 1:  40 bytes
   4.1+ MySQL PASSWORD:  41 bytes (40 bytes, prepended with an asterisk)
               SHA-256:  64 bytes
               SHA-512: 128 bytes

Новая схема хэширования паролей находится на одном уровне с SHA-1, что немного лучше, чем MD5, но все же недостаточно надежна, чтобы ее можно было рекомендовать для паролей.

1 голос
/ 07 ноября 2011

Согласно: Взлом старого пароля MySQL

Используя старый формат пароля, создается 16-байтовый хэш, например:

6f8c114b58f2ce9e

Для того же пароля хеш MySQL4.1 имеет длину 41 байт:

* 6C8989366EAF75BB670AD8EA7A7FC1176A95CEF4

На первый взгляд может показаться, что этот дополнительный уровень безопасности с помощью новых паролей может быть неважно. Тем не менее, источник код был выпущен под общей лицензией Creative, которая позволяет очень быстрый взлом старого пароля MySQL.

Пароль "a @ 4 ~ 1b" имеет хэш 2c28061c5bda971d.

Используя программу взлома, упомянутую выше, этот пароль может быть взломали менее чем за 1 секунду на 2-летнем ноутбуке.

Использование атаки с использованием SQL-инъекции может быть возможно для пользователя. без разрешения на просмотр вашего файла my.cnf. Ввод этого в поиске поле может отображать содержимое файла в браузере, если второй параметр в операторе выбора был показан на экране, а не правильно сбежал:

что-то 'UNION ALL SELECT 1, (SELECT LOAD_FILE (etc / etc / my.cnf ’)), 3,4,5, пароль от пользователя ORDER BY’ 7

Если неавторизованный пользователь может перехватить ваши хешированные пароли, их очень легко взломать и получить пароли в виде простого текста. Сложные пароли все еще трудно взломать, но пароль из 8 символов займет очень мало времени.

Поскольку изменения в длине хэша пароля MySQL, намного сложнее перебрать хэши.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...