2013-06-14 3 views
0

У меня следующая ситуация:Validate, если сертификат отозван

  • Java Applet для цифровой подписи - на стороне клиента
  • Проверка цифровой подписи и цифрового сертификата - на стороне сервера

I используя следующий код C# для подтверждения подписи и сертификата:

ContentInfo content = new ContentInfo(pdf); 
SignedCms signedMessage = new SignedCms(content, true); 
signedMessage.Decode(assinatura); 
signedMessage.CheckSignature(false); 

Где:

  • PDF - подписан PDF-файл
  • assinatura - подпись PDF-- в моем случае, подпись это не с PDF-файл

испытаниями, которые я сделал, код проверки достоверности цепочка сертификатов, истечение срока и другие ...

Однако, я хотел бы знать несколько вещей:

Этот код проверяет, используется сертификат для подписания аннулируется? Если это не подтверждается, как я могу сделать такую ​​систему проверки на этом этапе?

Есть ли способ создать сертификат, который отозван для тестирования?

ответ

1

проверка отозванных осуществляется

  1. Получение CRL, которые могут содержать информацию о состоянии сертификата
  2. Отправка запроса OCSP на сервер уполномоченного отвечать на такие запросы

Если OCSP URL-адрес сервера, OCSP является предпочтительным (для безопасности) методом проверки отзыва, но в целом обе проверки должны выполняться.

Операции OCSP и CRL поддерживаются нашими SecureBlackbox, CryptLib, BouncyCastle. В SecureBlackbox вы найдете класс высокого уровня CertificateValidator, который выполняет все проверки для вас (в то же время позволяя вам вмешиваться во все аспекты процедуры).

Невозможно создать отозванный сертификат, если вы не запустите собственный центр сертификации (но если вы это сделали, вероятно, не было бы вопроса). Причина в том, что вы не можете поместить свой сертификат в CRL, отправленный CA (или сделать стороннего ответчика OCSP).

О, я могу видеть один из способов - купить сертификат, а затем связаться с ЦС и сообщить им, что вы раскрыли секретный ключ. Они заблокируют сертификат. Но это довольно дорогостоящий метод :).

+0

Спасибо за ваш ответ и извините за слишком долго, чтобы ответить! Жаль, что я не могу легко проверить отозванные сертификаты. =/ – vinigarcia87

+0

Можете ли вы сказать мне, если строка кода 'signedMessage.CheckSignature (false);' уже проверяет, отменен ли сертификат? Или мне нужно реализовать еще какой-нибудь код? – vinigarcia87