<rmcreative>

RSS

Перестаньте использовать mcrypt

13 мая 2015

Сегодня в очередной раз всплыла статья об распространённых ошибках при реализации шифрования. Сама по себе она ничего так, но местами учит плохому. А именно, использовать mcrypt.

Почему его не стоит использовать

mcrypt не обновлялся более десяти лет и не планирует. Авторы его забросили. В нём есть серьёзные недоработки.

И что делать?

Мы в Yii от него ушли в сторону OpenSSL, чего и вам советую. Реализовал переход, в основном, Tom Worster. У него есть серия интересных постов на тему.

Комментарии RSS

  1. №9785
    Sasha
    Sasha 13.05.2015, 14:51:57

    а в Yii 1 поддержка OpenSSL есть ?

  2. №9786
    mktums
    mktums 13.05.2015, 15:23:58

    OpenSSL сам забагованный, лучше уж bcrypt

  3. №9787
    mktums
    mktums 13.05.2015, 15:26:12

    А вообще сейчас стандартом считается PBKDF2

  4. №9789
    Александр
    Александр 13.05.2015, 22:18:01

    mktums, это разные вещи

  5. №9791
    Sam
    Sam 14.05.2015, 0:09:32

    В OpenSSL баги правят.

  6. №9792
    sam002
    sam002 15.05.2015, 3:31:05

    Хмм. А почему вы берете длину пользовательской строки а не ожидаемой или меньшей из двух?

    for ($i = 0; $i < $actualLength; $i++) {
        $diff |= (ord($actual[$i]) ^ ord($expected[$i % $expectedLength]));
     }

    В том же вопросе, что в комменте увидел, на stackexchange есть обсуждение небольшое про этот момент и рекомндация использовать min.

    Ещё, в validateData при вызове нарушен порядок аргументов, если логику правильно понял.

    Мысли вслух: а оптимизации не случится никакой при XOR? Если разная скорость будет для совпадения и несовпадния, то это взад возвращает атаки по времени. Но с чего бы?! Переменные не статические - извне функции. Надо бы изучить какие оптимизации может наделать движок PHP и различное кеширование.

  7. №9795
    Sam
    Sam 15.05.2015, 17:47:09

    sam002, полезные замечания. Посижу над ними. Спасибо.

  8. №10383
    Sam
    Sam 23.03.2016, 0:59:06

    От OpenSSL мы тоже ушли. Там всё не менее ужасно :)

  1. Почта опубликована не будет.

  2. Можно использовать синтаксис Markdown или HTML.

  3. Введите ответ в поле. Щёлкните, чтобы получить другую задачу.