Title: Estudio de las normas PKCS
1Estudio de las normas PKCS10 y PKCS12
SEGURIDAD EN REDES TELEMÁTICAS Marina López
Chico Curso 2002/2003
2PKCS10
- Sintaxis para la petición de
- certificado digital.
3PKCS10. Entorno de uso
Petición de Certificado PKCS10
CA
Certificado X.509
4 PKCS10. Petición de certificado
- PKCS10 describe la sintaxis para la petición de
un certificado digital. - La petición de certificado consiste en una
estructura ASN.1. - Una CA (Autoridad de certificación ) recoge la
petición y genera un certificado digital (X.509 o
PKCS6).
5Creación de una petición PKCS10
CertificationRequestInfo
CertificationRequest
Identificador de algoritmo de firma
CertificationRequestInfo firmado
6Creación de una petición PKCS10
- Un valor tipo CertificationRequestInfo contiene
- Un identificador de versión
- Un nombre
- Una clave pública
- Un conjunto de atributos que hacen referencia a
la entidad. - Esta estructura se firma por la entidad
solicitante.
7Creación de una petición PKCS10
- Tipo de datos CertificationRequestInfo en ASN.1
- CertificationRequestInfoSEQUENCE
- version Version,
- subject Name,
- subjectPublicKeyInfo SubjectPublicKeyInfo,
- attributes 0 IMPLICIT Attributes
-
- Version INTEGER
- Attributes SET OF Attribute
8Creación de una petición PKCS10
- Tipo de datos CertificationRequest en ASN.1
- CertificationRequestSEQUENCE
- certificationRequestInfo CertificationRequestInf
o, - signatureAlgorithm SignatureAlgorithmIdentifier,
- signature Signature
-
- SignatureAlgorithmIdentifier
AlgorithmIdentifier - Signature BIT STRING
9Creación de una petición PKCS10
- El proceso de firma consiste en dos pasos
- Codificar el contenido de la estructura
certificationRequestInfo en formato DER, de forma
que se obtiene una cadena de bytes. - Firmar la cadena anterior con la clave privada de
la entidad solicitante de certificado y
utilizando el algoritmo de firma especificado en
la estructura.
10Procedimiento que sigue la CA
- Verificar firma de la entidad.
- Construir un certificado X.509.
- Entregar al cliente
- El certificado
- Otros certificados que la CA considere de ayuda
para el cliente - Una lista de certificados revocados
11Ejemplo PKCS10 (I)
12Ejemplo PKCS10 (II)
13PKCS12
- Sintaxis para el intercambio de información
personal.
14PKCS12. Entorno de uso
Claves privadas Certificados Información
secreta Extensiones
15PKCS12. Introducción
- Describe una sintaxis de transferencia de
información personal - Claves privadas
- Certificados
- Cualquier tipo de información secreta
- Extensiones
- Las máquinas,aplicaciones, navegadores y Internet
kiosks que soportan esta norma permite importar,
exportar y emplear un conjunto de información con
un identificador personal. - Soporte de la información personal que se
transfiere - Implementaciones software
- Implementaciones hardware
16PKCS12.Tipos de intercambio
- Modos privados
- Utilizan cifrado para proteger la información de
la exposición pública. - Tipos
- De clave pública se utiliza la clave pública de
la plataforma destino para cifrar y empaquetar la
información. - De password se utiliza un login y un password
para cifrar. -
17PKCS12.Tipos de intercambio
- Modos de integridad
- Protegen la información personal de la
fasificación.Tipos - De clave pública
- Se firma el contenido del PFX PDU ( Protocolo de
unidad de datos PFX ) utilizando la clave privada
de la plataforma origen. - En la plataforma destino se verifica la firma
utilizando la correspondiente clave pública de la
plataforma origen. - De password
- Se utiliza un MAC (Código de autenticación del
mensaje) derivado del password de intergridad del
origen.
18Qué es un MAC ?
- Función que se aplica a un mensaje para cifrarlo.
- Depende de un password.
- Se puede utilizar con una función hash (HMAC).
Por ejemplo con SHA-1. - Se calcula sobre el contenido del campo content
del tipo ContentInfo contenido en la PFX PDU .
19Sintaxis del PFX PDU
- Sintaxis ASN.1 y codificación BER.
- PFX SEQUENCE version INTEGER
v3(3)(v3,...), authSafe ContentInfo,
macData MacData OPTIONAL MacData
SEQUENCE mac DigestInfo,
macSalt OCTET STRING, iterations
INTEGER DEFAULT 1 -- El valor default está
por razones históricas y no se usa. Un valor
mayor, como 1024 es recomendable
20Sintaxis del PFX PDU (II)
- ContentInfo
ContentInfo - contentType content
- AuthenticatedSafe
- ContentInfo
- contentType content
- SafeContents
-
- SafeBags
SEQUENCE OF
SEQUENCE OF
21Sintaxis del PFX PDU (III)
- Tipos de SafeBags
- KeyBags contiene una clave privada.
- pkcs8ShroudedKeyBag contiene una clave privada.
- certBag contiene certificados de un tipo
concreto. - CRLBag contiene listas de certificados revocados
de un tipo concreto. - SecretBag contiene información secreta del
usuario. - SafeContent permite anidar de forma recursiva
múltiples bolsas de los tipos anteriores. -
22Uso de PFX PDUs
- Cada plataforma importa y exporta PDUs de
Autenticación mediante el PFX PDU. - La PDU de Autenticación consiste en una secuencia
de valores ContentInfo. - La PDU de Autenticación puede firmarse o puede
protegerse con password.
23Creación de PFX PDU
- Sintaxis del PFX PDU (II)Se crea un número
determinado de SafeContents. Cada SafeContent
contendrá un número de instancias SafeBag que
podrán ser anidadas. - Por cada instancia SafeContent se crea un
ContentInfo. Los SafeContent podrán ir cifrados. - En una instancia de AutheticatedSafe se juntan
todos los ContenInfo en una estructura SEQUENCE.
24Creación de PFX PDU
- Se crea un ContentInfo de tipo Data. Contiene el
valor creado en el paso anterior AthenticatedSafe - Para proteger la integridad
- La PFX PDU se firma. El campo ContentInfo será de
tipo SignedData. - La PFX PDU se autentica mediante un password. El
campo ContentInfo será de tipo Data.
25Ejemplo PKCS12 (I)
26Ejemplo PKCS12 (II)