Рейтинг:1

Несовместимые типы ключей

флаг ke

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

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

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

Вопросы:

  1. Является ли это фундаментальным свойством задействованных криптографических механизмов?
  2. Действительно ли нет способа использовать одну и ту же пару ключей для подписи, а также для шифрования или, возможно, даже между любыми двумя из указанных симметричных механизмов? здесь, либо?
  3. Мне просто нужно отслеживать несколько ключей на узел? Я лелеял надежды идентифицировать узлы по их открытому ключу; это казалось особенно элегантным решением....
Рейтинг:2
флаг in

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

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

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

Нет, это не так. И забыли показать гибридное шифрование с использованием RSA.

2. Действительно ли нет способа использовать одну и ту же пару ключей для подписи и шифрования или, возможно, даже между любыми двумя из приведенных здесь симметричных механизмов?

Да, вы можете использовать RSA для обоих, а пары ключей ECDH, как правило, также совместимы с ECDSA. Однако этот API предназначен для безопасного использования криптографии и использования одного и того же ключа для генерации подписи. и расшифровка не считается лучшей практикой.

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

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

Кажется, что эта библиотека является вспомогательной библиотекой для разработчиков. На самом деле он не указывает какой-либо протокол.Честно говоря, я думаю, что такого рода «библиотеки-оболочки», которые не реализуются и/или не являются специфическими для приложения, имеют ограниченное применение.

Я настоятельно рекомендую вам использовать две пары ключей, одну для шифрования и подписи. Чтобы создать структуру доверия, вы можете использовать PKI. Наконец, кажется, вам нужна транспортная безопасность; в этом случае я бы рекомендовал TLS.

флаг ke
Ряд хороших моментов, спасибо. Может быть, у вас есть отправная точка для использования PKI и/или TLS в Java в сценарии, который я описал выше?

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.