Pregunta

Se nos ha entregado un conjunto de sertificates prueba en tarjetas inteligentes para el desarrollo de una solución que requiere mensajes XML para ser firmados utilizando PKI. Cada tarjeta inteligente (física) parece tener dos certificados almacenados en él. Me importarlos en el almacén de certificados de Windows utilizando el software suministrado por el proveedor de la tarjeta inteligente, y luego use el código parecido al siguiente para iterar sobre los certificados instalados:

foreach (X509Certificate2 x509 in CertStore.Certificates) {
  foreach (X509Extension extension in x509.Extensions) {
     if (extension.Oid.Value == "one we are interested in") {
        X509KeyUsageExtension ext = (X509KeyUsageExtension)extension;
        if ((ext.KeyUsages & X509KeyUsageFlags.DigitalSignature) != X509KeyUsageFlags.None) {
            // process certs here

Se nos ha dicho para utilizar los certificados que tienen la bandera de uso de claves no repudio establecido para firmar los XMLs. Sin embargo, el certificado que tiene la bandera no repudio tiene esta bandera solamente , y no, por ejemplo, la bandera DigitalSignature la que puedo comprobar para arriba. Hace esto a nadie, pero huelga de mí como un poco extraño? Estoy en otras palabras, se le dijo a firmar con un certificado que no está (parece que) tienen establecido el indicador de uso DigitalSignature. Es este procedimiento normal? Cualquier comentario?

Gracias.

¿Fue útil?

Solución

¿De qué clave tiene? Tienes razón, esto es un poco extraño, sin embargo si, por ejemplo, la clave se utiliza para proporcionar conexiones AD entonces puede no tener los indicadores establecidos para el uso DigitalSignature. Eso no quiere decir que no puede utilizarlo para que, simplemente indica que el emisor del certificado no ofrece ninguna garantía cuando salga el uso indicado de la clave.

Otros consejos

Al leer RFC 5280 (4.2.1.3), el no repudio es un superconjunto de digitalSignature. En otras palabras, se otorga a todas las habilidades de digitalSignature y algo más. Así que, técnicamente, lo que están pidiendo es válida, aunque tal vez inusual.

Si desea proporcionar un servicio de no repudio, es decir, que desea firmas tienen un valor legal, entonces se supone que el no repudio utilizar solamente. De hecho, esto es recomendado por las normas (véase el documento ETSI TS 102 280), ya que el uso de otros bits keyUsage junto con nonRepudation pueden tener problemas de seguridad.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top