Java реализации TSP, OCSP и CMS - PullRequest
       98

Java реализации TSP, OCSP и CMS

2 голосов
/ 04 октября 2011

Я пытаюсь понять API Java для цифровых подписей. Я должен использовать собственный криптопровайдер для создания цифровой подписи. Я знаю, как подписать документ и получить отдельную подпись, используя этот CSP, теперь мне нужно добавить метку времени и статус сертификата к этой подписи (чтобы сделать подпись действительной для государственных органов). Это делается с использованием TSP и OCSP. Вопрос:

  1. где взять клиента TSP?
  2. Я прав, что достаточно использовать встроенную поддержку Java OCSP для проверки сертификата?
  3. tsp и информация о проверке каким-либо образом связаны с CMS?
  4. последнее и самое интересное: что мне делать с отметкой времени информация и информация о подтверждении сертификата: будут ли это отдельные файлы или они являются частями подписи ??

Ответы [ 2 ]

3 голосов
/ 09 октября 2011

где взять клиента TSP?

Чтобы использовать CMS, TSP и OCSP, вы можете проверить Bouncy Castle .Они поддерживают все компоненты основного пакета, а также дополнительные пакеты CMS и TSP.

Прав ли я, что достаточно использовать встроенную поддержку Java OCSP для проверки сертификата?

Хотя стандартный механизм проверки сертификатов PKIX поддерживает OCSP, возможно, имеет смысл интегрировать, например, код OCSP Bouncy Castle в виде пользовательского PKIXCertPathChecker .Вы можете либо добавить его поверх существующей проверки, либо сделать его полноценной заменой, инструкции можно найти здесь .У нас были проблемы с использованием встроенной поддержки OCSP при подключении через прокси-сервер, поэтому мы заменили стандартное использование этого метода в прошлом.

Связаны ли TSP и информация о проверке с CMS?

Ответ метки времени, который отправляет вам сервер TSP, - это не что иное, как другая CMS SignedData, поэтому сама по себе снова является своего рода подписью.Обычно вы избегаете несметного числа отдельных файлов, используя функцию свойств без знака в CMS, чтобы включить вашу метку времени в саму оригинальную подпись.Вы просто добавляете метку времени в качестве свойства подписи без знака в поле usignedAttrs в SignerInfo, таким образом сводя к минимуму отдельные файлы до одного, саму подпись, которая встраивает всю дополнительную информацию в поля signatureAttrs и unsignedAttrs.последнее и самое интересное: что мне делать с информацией о отметке времени и проверке сертификата: это будут отдельные файлы или они являются частью подписи ??

Отметки времени, которые я уже описал;информация проверки, такая как CRL и ответы OCSP, может быть встроена в поле «crls» в SignedData.Вы можете добавлять их в любое время, не нарушая действительную подпись - это содержимое, а также свойства без знака не будут учитываться при создании или проверке подписи.

Если вы встраиваете информацию, используя только CMS (RFC 5652), это означает, что вы получите довольно проприетарную схему.В зависимости от ваших потребностей, это может быть уже достаточно.Однако если вам нужно что-то более функционально совместимое, вы можете обратиться к CAdES (ETSI TS 101 733), бесплатному стандарту ETSI, который можно загрузить по адресу http://pda.etsi.org.. Этот стандарт предоставляет дополнительную информацию о том, как правильно встраивать дополнительныеданные подписи, такие как метки времени и информация об аннулировании.

2 голосов
/ 09 октября 2011

Я бы рекомендовал использовать BouncyCastle (http://www.bouncycastle.org/java.html), если вы ищете криптографию Java, связанную с провайдером.

Цитата с сайта:

  • Генераторы / Процессоры для OCSP (RFC 2560).
  • Генераторы / Процессоры для TSP (RFC 3161 и RFC 5544).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...