OpenPGP в Java JCA - PullRequest
       68

OpenPGP в Java JCA

0 голосов
/ 13 февраля 2019

Я понимаю, что OpenPGP - это 'определение набора стандартных форматов для шифрования / подписи' .

Недавно я рекомендовал кому-то использовать стандартную Java JCA вместо bouncycastle в качестве библиотеки шифрования, чтобы им не приходилось использовать какие-либо внешние библиотеки.Но потом они спросили меня, поддерживает ли Java JCA OpenPGP.Я не знал ответа на этот вопрос.Я даже не знал, что означает этот вопрос.

Я просто хочу знать, что это значит под supporting OpenPGP?

Мы можем зашифровать / подписать в Java JCA, используя стандартные алгоритмы, такие как RSA.Так что еще нужно для поддержки OpenPGP?

Никто не рекомендовал JCA в качестве ответа на этот вопрос .

Ответы [ 2 ]

0 голосов
/ 13 февраля 2019

Нет, Java JCA - это криптографический API.Он не поддерживает протоколы более высокого уровня , он просто предоставляет относительно высокий уровень доступа к криптографическим алгоритмам .Конечно, есть один заслуживающий внимания протокол, который реализован в Java: TLS внутри (отдельного) поставщика JSSE.Это требует поддержки для использования / проверки сертификатов X.509v3 и тому подобного, но это все (JCA очень сильно ориентирован на поддержку TLS в качестве основной цели по очевидным причинам).

OpenPGP, с другой стороны, являетсяспецификация протокола, которая не поддерживается Java.Вам нужно построить реализацию протокола поверх JCA для поддержки OpenPGP.Тем не менее, это именно то, что сделал Bouncy Castle ;их реализация зависит от интерфейса JCA, а не от «легковесного» API Bouncy Castle.Таким образом, вы можете использовать библиотеку OpenPGP Bouncy Castle и использовать JCA, например, для поддержки AES-NI или аппаратных ключей.Просто убедитесь, что поставщик JCA, который вы хотите использовать , имеет больший приоритет , чем любой сторонний поставщик, например, поставщик Bouncy Castle (добавьте его в конец списка поставщиков!).

Конечно, для поддержки некоторых более эзотерических опций (в частности, поддержки определенных кривых ЕС) вы все равно можете добавить провайдера Bouncy Castle в вашу среду выполнения.Модуль Maven OpenPGP по-прежнему перечисляет провайдера Bouncy Castle в качестве требования к компиляции, но я не уверен, что это не только для тестирования или что библиотека необходима напрямую.

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

0 голосов
/ 13 февраля 2019

В: Я просто хочу узнать, что это значит, поддерживая OpenPGP?
Ответ: Библиотека поставщика средств должна соответствовать открытым стандартам PGP, упомянутым в RFC 4880 .

Никто не рекомендовал JCA в качестве ответа ...
Это сложно согласно - Как зашифровать сообщение PGP через криптографическое расширение Java?

Надежный замок - один из поставщиков OpenPGP для платформы Java.
Вы можете проверить другие разработчики на всех платформах здесь .

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

...