Что еще мне нужно знать о внедрении системы одноразовых паролей?

Мне было поручено создать систему одноразового пароля (OTP), которая в конечном итоге будет использоваться для создания генераторов OTP на мобильных устройствах.

Мы смотрим на использование HOTP (rfc 4226) с использованием счетчика, но, возможно, с некоторыми вариациями. Мы не обязаны соблюдать OATH.

Это мой первый опыт в области безопасности / криптографии, поэтому я пытаюсь избежать (и узнать о) ловушек безопасности, которые захватывают новичков в области безопасности, а также получить лучшее понимание того, что мне нужно сделать и знать, чтобы завершить эта задача.

В дополнение к этому общему совету у меня есть несколько конкретных вопросов о реализации этого проекта:

HOTP по-прежнему считается безопасным, даже если он просто использует SHA-1? Один из моих коллег предложил мне использовать HMAC-SHA-512. Выглядит достаточно просто, чтобы выбрать, какой алгоритм мы используем. Есть ли побочные эффекты здесь, я должен знать? Такие, как увеличение времени обработки?

У меня есть опасения по поводу счетчика синхронизации. Что я должен использовать в качестве разумного просмотра возможных значений счетчика? Каковы наилучшие способы вернуться в синхронизацию, если пользователь нажал на кнопку выше нашего предела просмотра? Будет ли проще отобразить и отправить счетчик вместе с соответствующим OTP, или это значительно ослабит безопасность?

Я также не очень хорошо разбираюсь в лучших практиках безопасного хранения связанной информации, такой как общие секретные и контрольные значения.

Когда вы отвечаете, пожалуйста, имейте в виду, что я новичок в этой области, и все еще пытаюсь наверстать упущения и сокращения. Заранее спасибо.

1 ответ

Решение

HMAC-SHA1 немного сильнее, чем SHA-1, который, я считаю, был сломан. моя память немного туманна, но поискать там можно найти дополнительную информацию о HMAC-SHA-1 против SHA-1 здесь.

Другие вопросы по тегам