Comments 28
Спасибо за статью!
Как раз подумываю применить SRP в одном проекте. Как думаете, возможна ли такая схема работы:
Веб-приложение общается с сервером практически целиком через JSON, т.к. после аутентификации у сервера и клиента будет общий ключ K, то мы будем его использовать для шифрования JSON'а, чем обеспечим и аутентификацию и безопасность обмена данными.
Или это уже извращение?
Как раз подумываю применить SRP в одном проекте. Как думаете, возможна ли такая схема работы:
Веб-приложение общается с сервером практически целиком через JSON, т.к. после аутентификации у сервера и клиента будет общий ключ K, то мы будем его использовать для шифрования JSON'а, чем обеспечим и аутентификацию и безопасность обмена данными.
Или это уже извращение?
0
А зачем нужно? Это фактически замена SSL с ключами на SSL с паролем :) Может, стоит на ключи таки поглядет?
+3
В основном просто интересно. :)
Плюс к тому же раз уж у нас при применении SRP всё равно получается ключик, то почему бы его не использовать? Да и с сертификатами возиться не хочется…
Плюс к тому же раз уж у нас при применении SRP всё равно получается ключик, то почему бы его не использовать? Да и с сертификатами возиться не хочется…
+1
Единственная проблема — скорость шифрования.
Ради интересу советую на JS закодировать/раскодировать простенький запрос на 15-20К текста…
Ради интересу советую на JS закодировать/раскодировать простенький запрос на 15-20К текста…
+1
Наверно вы правы.
Но тогда получается если мы будем HTTPS использовать для всего, то разумно и регистрацию через него же проводить, а значит SRP можно и не применять.
Но тогда получается если мы будем HTTPS использовать для всего, то разумно и регистрацию через него же проводить, а значит SRP можно и не применять.
+1
SRP имеет смысл оставить для защиты от утечки паролей при взломе бд.
+4
Любой уважающий себя проект уже давно не хранит пароли в открытом виде, на мой взгляд это самая банальная и первичная мера безопасности.
Забудем на минутку о Sony. :)
Забудем на минутку о Sony. :)
+1
Хранение просто хеша от пароля тоже не радостный вариант, разве что солёный.
Я лично не раз использовал md5(pass) из чужой бд для получения pass :)
И еще один момент — SRP позволят аутентифицировать пользователя безопасно и просто, в то время как SSL требует для этого сертификаты (во всяком случае, пока OpenSSL+SRP не используются браузерами).
То есть я за выбор SRP+SSL с Fallback до простой формы логина (поверх всё того же SSL) если требуется.
Я лично не раз использовал md5(pass) из чужой бд для получения pass :)
И еще один момент — SRP позволят аутентифицировать пользователя безопасно и просто, в то время как SSL требует для этого сертификаты (во всяком случае, пока OpenSSL+SRP не используются браузерами).
То есть я за выбор SRP+SSL с Fallback до простой формы логина (поверх всё того же SSL) если требуется.
+1
даже имея хеш пароля — легко залогинится
(имея косвенный доступ к исходникам)
в данном случае, гарантией является сессионный ключ
(имея косвенный доступ к исходникам)
в данном случае, гарантией является сессионный ключ
0
UFO just landed and posted this here
SSL, реализованный в сильно оптимизированном C коде меньше нагрузит сервер, чем ручное кодирование на скриптовом языке.
+1
В теории при использовании простой key-value базы на серере и толстого клиента на стороне пользователя, на сервер можно засылать шифрованные данные и не париться на сервере с их расшифровкой.
0
SRP JavaScript Demo, как кажется отрабатывает практически мгновенно, даже при выборе 1024 бит. Я ожидал больших тормозов. Или там какое-то не полноценное демо?
И да, спасибо, что опубликовали этот материал.
И да, спасибо, что опубликовали этот материал.
+1
Сильно ускорились JS движки + поддержка Binary в последних версиях, без которых всё было очень и очень тоскливо.
0
И да, еще сильно зависит от хеш-функции. SHA-512 работает ощутимо медленнее чем SHA1
0
А мне вот не удалось проверить. Оказывается в Google Chrome есть клёвая бага, которой уже почти 3 года.
code.google.com/p/chromium/issues/detail?id=580
code.google.com/p/chromium/issues/detail?id=580
+1
А при чём тут Java? Там же первый пример без явы, только на js.
0
я говорю про srp.stanford.edu/demo/demo.html там ничего не работает под предлогом этого бага.
+1
так вот зачем нужен Native Client
+1
NC нужен за любой сложной логикой на стороне клиента. JS всё-таки убоговат всё еще по скорости.
0
хм, я бы не был столь категоричен
bellard.org/jslinux/
bellard.org/jslinux/
0
Спасибо за информацию, нашел ее очень полезной
хотелось бы протестировать поближе к практике:
на реальных цифрах, чтоб JS не тормозил
что посоветуете?
хотелось бы протестировать поближе к практике:
на реальных цифрах, чтоб JS не тормозил
что посоветуете?
+1
Судя по всему, сейчас оно не так сильно и тормозит, всё-таки компы шустрее стали и js движки тоже.
Стоит просто взять и попробовать. Оптимальным будет килобит и SHA256.
Если будут тормоза — тогда уже посмотреть на полкилобита и SHA224.
Опускаться ниже полукилобита не имеет смысла из соображений безопасности.
Стоит просто взять и попробовать. Оптимальным будет килобит и SHA256.
Если будут тормоза — тогда уже посмотреть на полкилобита и SHA224.
Опускаться ниже полукилобита не имеет смысла из соображений безопасности.
0
Спасибо за статью, как раз искал что-то в этом роде.
Вроде всё понятно кроме одного момента, правильно ли я понимаю что N генериться один раз, и пишется куда-то как константа, и потом используется при регистрации и аутентикации пользователей?
Если генерить N при каждой новой регистрации и потом для каждой новой аутентикации то у меня никак не получается получить тот-же K но обеих сторонах.
Поясните пожалуйста что делать с N.
Спасибо
Вроде всё понятно кроме одного момента, правильно ли я понимаю что N генериться один раз, и пишется куда-то как константа, и потом используется при регистрации и аутентикации пользователей?
Если генерить N при каждой новой регистрации и потом для каждой новой аутентикации то у меня никак не получается получить тот-же K но обеих сторонах.
Поясните пожалуйста что делать с N.
Спасибо
0
Sign up to leave a comment.
SRP-6: аутентификация без передачи пароля