Можно ли изменить пару ключей для каждого сообщения сквозного шифрования? - PullRequest
0 голосов
/ 25 ноября 2018

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

Ответы [ 3 ]

0 голосов
/ 25 ноября 2018

Это вполне возможно, но выполнимость может зависеть от того, как вы используете ваши ключи.

Как уже отвечалось - эфемерные (одноразовые временные) ключи используются в TLS для достижения прямой секретности в ключах.исключить для получения симметричных ключей шифрования сеанса.Так что на самом деле это не новая пара ключей для каждого сообщения, а скорее для установления сеанса.Генерация нового хорошего ключа может потребовать некоторой производительности и времени.

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

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

0 голосов
/ 20 декабря 2018

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

Однако одно только шифрование не обеспечивает безопасность.Вы также должны аутентифицировать отправителя и получателя и обеспечить целостность.

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

Метод PKI вводит много способов аутентификации пользователя в связи с его многочисленными ключами, поэтому он фактически снижает безопасность за счет увеличения поверхности атаки.Если вы все делаете правильно, большая поверхность атаки уравновешивается тем фактом, что атака по эфемерному ключу ограничивает повреждение одним сообщением.Тем не менее, чтобы обеспечить соблюдение этого ограничения, вы должны иметь безопасное общедоступное место, где список действительных / использованных ключей хранится в режиме реального времени.В противном случае одноразовые ключи могут быть использованы повторно.

Если вы предварительно не генерируете ключи, вам понадобится долгосрочная пара открытого / секретного ключей, чтобы установить право собственности на временную пару с помощью такого метода, какв качестве подписи.Вы можете снизить риск компрометации с парой долгосрочных ключей, используя ее только для подписания пар эфемерных ключей.Однако это только уменьшает один тип риска, связанный с долгосрочной ключевой парой.У вас все еще есть риски, связанные с генерацией, распространением, хранением и связыванием пары долгосрочных ключей с конкретным пользователем, и пары эфемерных ключей зависят от пары долгосрочных ключей для их безопасности.

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

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

0 голосов
/ 25 ноября 2018

Конечно, вы можете использовать только один ключ для каждого сообщения, и мы назвали это forward security .Для этого вам необходимо использовать протокол обмена ключами Протокол обмена ключами Диффи-Хеллмана .Это увеличит связь, но безопасность не из дешевых, и она используется в TLS 1.3

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...