Что еще мне нужно знать о внедрении системы одноразовых паролей?
Мне было поручено создать систему одноразового пароля (OTP), которая в конечном итоге будет использоваться для создания генераторов OTP на мобильных устройствах.
Мы смотрим на использование HOTP (rfc 4226) с использованием счетчика, но, возможно, с некоторыми вариациями. Мы не обязаны соблюдать OATH.
Это мой первый опыт в области безопасности / криптографии, поэтому я пытаюсь избежать (и узнать о) ловушек безопасности, которые захватывают новичков в области безопасности, а также получить лучшее понимание того, что мне нужно сделать и знать, чтобы завершить эта задача.
В дополнение к этому общему совету у меня есть несколько конкретных вопросов о реализации этого проекта:
HOTP по-прежнему считается безопасным, даже если он просто использует SHA-1? Один из моих коллег предложил мне использовать HMAC-SHA-512. Выглядит достаточно просто, чтобы выбрать, какой алгоритм мы используем. Есть ли побочные эффекты здесь, я должен знать? Такие, как увеличение времени обработки?
У меня есть опасения по поводу счетчика синхронизации. Что я должен использовать в качестве разумного просмотра возможных значений счетчика? Каковы наилучшие способы вернуться в синхронизацию, если пользователь нажал на кнопку выше нашего предела просмотра? Будет ли проще отобразить и отправить счетчик вместе с соответствующим OTP, или это значительно ослабит безопасность?
Я также не очень хорошо разбираюсь в лучших практиках безопасного хранения связанной информации, такой как общие секретные и контрольные значения.
Когда вы отвечаете, пожалуйста, имейте в виду, что я новичок в этой области, и все еще пытаюсь наверстать упущения и сокращения. Заранее спасибо.
1 ответ
HMAC-SHA1 немного сильнее, чем SHA-1, который, я считаю, был сломан. моя память немного туманна, но поискать там можно найти дополнительную информацию о HMAC-SHA-1 против SHA-1 здесь.