алгоритм подписи открытым ключом

#performance #cryptography

#Производительность #криптография

Вопрос:

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

Я составил список алгоритмов-кандидатов — dsa, ecdsa, rsa, для которых на Java есть поставщики криптографии.

Сравнение dsa и rsa: dsa имеет подпись, которая не зависит от силы ключа и намного меньше, чем подпись rsa для эквивалентной безопасности (rsa 1024/1568 против dsa 192). Однако проверка dsa (ожидайте, что вызовы проверки будут 100-кратными) примерно в 10 раз медленнее, чем проверка rsa. dsa192 может использовать только sha1 для дайджеста, который может быть нарушен, хотя, я думаю, я мог бы использовать Sha234 и обрезать вывод до 192 бит.

Обзор dsa против rsa также выявил другие эзотерические проблемы — секретность закрытого ключа в dsa очень зависит от того, насколько случайным является параметр k, dsa не поддерживает хэши с брандмауэром, что для нас не проблема.

Сравнение ecdsa с dsa — ecdsa немного быстрее в подписании и проверке, и я видел утверждение, что с ecdsa у нас есть уверенность в том, что подпись будет проверяться (здесь небольшое беспокойство). Размер подписи тот же и не входит в изображение.

Поскольку токены отправляются с каждым запросом, и мы говорим о 40 против 128/196 байт перед кодированием, я подумываю о том, чтобы перейти на ecdsa-192 с sha2, усеченным до 192 бит — я думаю, что 10-кратная стоимость является неудачной, но, надеюсь, в ней преобладают затраты на ввод-вывод.

Ценю обратную связь. Дайте мне знать, что я пропустил.

Ответ №1:

Да, используемый тип шифрования важен, но помните, что самый простой способ для злоумышленника подорвать вашу безопасность — это не взломать шифрование, а перехватить / украсть ключ. Ознакомьтесь с блогом Эрика Липперта для хорошей проверки интуиции: http://blogs.msdn.com/b/ericlippert/archive/2011/09/27/keep-it-secret-keep-it-safe.aspx

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

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

2. @mar: Я думаю, что важным моментом здесь является то, что даже асимметричная система требует безопасного механизма для распространения открытых ключей . У вас есть такой механизм? Если нет, подумайте о его разработке, прежде чем беспокоиться о слишком высоких затратах на производительность.

3. да, конечно, у нас есть несколько уровней безопасности. Я очень специально ищу кого-то, кто оценил rsa против ecdsa / dsa для обеспечения безопасности / производительности для использования на некоторых крупнейших интернет-сайтах. Другие проблемы, хотя и допустимые, не относятся к соответствующей области. Я также знаю, что gnupg недавно сделал выбор в пользу rsa.