La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Barcelona 4 Mayo 2004.

Presentaciones similares


Presentación del tema: "Barcelona 4 Mayo 2004."— Transcripción de la presentación:

1 Barcelona 4 Mayo 2004

2 Amsterdam, Holanda 29 junio – 2 julio
¡Adéntrate! El evento definitivo de Microsoft en Europa sobre creación, implantación, protección y gestión de soluciones conectadas ¡Regístrate antes del 14 de mayo y ahórrate 300 €!

3 Firma digital en la plataforma Windows
Santiago Núñez Technical Consultant Microsoft

4 Agenda Introducción a la firma digital
Firma electrónica Firma digital Firma digital cualificada Firma digital en plataforma Windows Arquitectura de los servicios criptográficos Inclusión de firmas en aplicaciones propias Aplicaciones preparadas

5 Firmas digitales Utilidad
Las firmas digitales permiten migrar procesos basados en papel (que requerían firmas) a formato electrónico. Documentos en papel que requieren una firma de aprobación Necesidad de asegurar que el contenido no se ha modificado Necesidad de asegurar la identidad de la persona que firmó Existe una normativa que exige aprobaciones mediante firmas

6 Firma electrónica Primera aproximación
Datos electrónicos adjuntos a un documento para mostrar “intención” de firma

7 Firma digital Vinculando los datos al firmante
“Firma electrónica avanzada” (según la ley de firma digital) Firma electrónica con las siguientes características: Vinculada al firmante Vinculada a los datos Permite detectar modificaciones

8 Firma digital ¿iguales? Firma Digest Digest Firma Digest
Bob genera un mensaje y quiere asegurarse de que Alice sabrá que el mensaje es auténtico Hash Mensaje Mensaje Firma Digest Clave Privada de Bob Pública Alice verifica que el mensaje no ha sido alterado y que fue generado por Bob Hash Mensaje Digest ¿iguales? Firma Digest

9 Firma digital Formatos de firmas digitales
Existen diferentes formatos para almacenar una firma digital. La mayoría encapsula en un sobre los datos, la identidad del firmante y la firma. Algunos ejemplos de formatos son: Privacy-Enhanced Mail (PEM) – RFC 1421 PKCS#7 S/MIME – RFC 2634 ISO XMLDsig XAdES

10 Firma digital Formato de Sobre PKCS#7
PKCS #7: Cryptographic Message Syntax Standard Estándar desarrollado por RSA Laboratories Inc. Define varios formatos de mensajes: Data, EnvelopedData, SignedData, etc. SignedData ::= SEQUENCE { version Version, digestAlgorithms DigestAlgorithmIdentifiers, contentInfo ContentInfo, certificates [0] IMPLICIT ExtendedCertificatesAndCertificates OPTIONAL, crls [1] IMPLICIT CertificateRevocationLists OPTIONAL, signerInfos SignerInfos }

11 Firma digital PKCS#7 SignedData
Version Digest Algorithm Content Certificates CRLs Signer Infos Signer Info 1 Signer Info 2 Signer Info 3 Signer Info Version Serial Number Digest Algorithm Authenticated Attributes Unauthenticated Attributes Digital Signature

12 Firma digital Firma Digital XML
XMLDSIG: Propuesta conjunta de estándar IETF/W3C RFC 3075 La versión 1.0 de .NET Framework incluye el soporte para firmas XMLDSIG en: System.Security.Cryptography.XML Define un mecanismo para firmar: Documentos XML Fragmentos de un documento XML

13 Firma digital Firma Digital XML
Proporciona tres métodos de firma: “Wrapped”, el formato de firma incluye el contenido “Detached”, la firma está separada del contenido “Embedded”, la firma es parte del contenido firmado El formato XMLDsig no requiere infraestructura de certificados Se incluye información de la clave Se reserva espacio para proporcionar información del certificado

14 Firma digital Formato de Firma XMLDsig
xmlns:ds=" <element name="Signature" type="ds:SignatureType"/> <complexType name="SignatureType"> <sequence> <element ref="ds:SignedInfo"/> <element ref="ds:SignatureValue"/> <element ref="ds:KeyInfo" minOccurs="0"/> <element ref="ds:Object" minOccurs="0" maxOccurs="unbounded"/> </sequence> <attribute name="Id" type="ID" use="optional"/> </complexType>

15 Ejemplo Firma Digital XMLDsig Con información de clave
<Signature xmlns=" <SignedInfo> <CanonicalizationMethod Algorithm=" /> <SignatureMethod Algorithm=" /> <Reference URI="#ID1"> <DigestMethod Algorithm=" /> <DigestValue>PQlk2ihM0jP+rK1mT8fTiIHSYfY=</DigestValue> </Reference> </SignedInfo> <SignatureValue>Qz4gW5uUsXapcYk9RFN8omE+jXYY2kRdYwMVVTmXApHiam oTeJsoE7XrpP9EMxPnsdeFavrUMsuj1ZrxAHhGzYv7g37HMq p4iRXllwZU5GhKcqBc3CMOMZoCc9JG+J5CBmLoFQGTKhcV o2RFpWKPbTcBDMR61HPxsrFq0YrQgs=</SignatureValue> <KeyInfo> <KeyValue xmlns=" <RSAKeyValue> <Modulus>rH4is/jJa0mBzdSzee7ay2rKTYeO9fHPL0Iw4ye7vYly8rsf14PulJbm 7qaI7Dj7scSE1YA0IolQzlYptTImOY7zpvGCqeq5cAQf4FlYjsTHto2pK71d ozO0+3HU3wQIN6gdZbKlVnCMfJSOVz1D8oz3QaILiw69IJYRgNooMbM=</Modulus> <Exponent>AQAB</Exponent> </RSAKeyValue> </KeyValue> </KeyInfo> <Object Id="ID1"> <MyElement Attribute1="Value1" xmlns="" /> </Object> </Signature>

16 Ejemplo Firma Digital XMLDsig Con información de certificado
<Signature xmlns=" <SignedInfo> <CanonicalizationMethod Algorithm=" /> <SignatureMethod Algorithm=" /> <Reference URI="#object-1" Type=" <DigestMethod Algorithm=" /> <DigestValue>EXn6Bz24rzvkRDZ3whq4lKI9D7w=</DigestValue> </Reference> </SignedInfo> <SignatureValue>M929BuJspXJbxdhuny3aQB0F8crAgUGrN02TB7X3Hk+aeIg51S02N+ywEBHC6VRSXGJZBxzxv/UnXMpTxmMFD7Bqa7wt+ut/Ob8QvSA6AlysnLuJaQ5rNnON8UVjtqjPW5O4kDeeugbx9OqqKe6SY7RTBwVp/2/cm1APK0MEfm8=</SignatureValue> <KeyInfo> <X509Data xmlns=" <X509Certificate>...</X509Certificate> </X509Data> </KeyInfo> <Object Id="object-1"> <text xmlns="">I owe you $1</text> </Object> </Signature>

17 Firma digital cualificada Añadiendo garantías legales
“Firma electrónica reconocida” (según la ley de firma digital) Firma digital con las siguientes características: Basada en un certificado cualificado (reconocido) Certificado emitido por un proveedor acreditado Utilizando un dispositivo seguro de firma (SSCD) Utilizando una aplicación segura de firma (CSA)

18 Firmas digitales Escenarios avanzados
Firma cualificada con validez a largo plazo Se necesita incluir un sello de tiempo cualificado Útil cuando la validez “en el tiempo” es importante Firmas digitales de grupos Garantizan la integridad del mensaje Garantizan que la firma ha sido generada por un miembro del “grupo” No permiten conocer la identidad del firmante a partir de la firma Útil en escenarios dónde es importante el “anonimato”: NGSBC.

19 Agenda Introducción a la firma digital
Firma electrónica Firma digital Firma digital cualificada Firma digital en plataforma Windows Arquitectura de los servicios criptográficos Inclusión de firmas en aplicaciones propias Aplicaciones preparadas

20 Firmas digitales en Windows Objetivos
Conocer la arquitectura Útil para los administradores IT: integración, solución de problemas, etc. Fundamental para los desarrolladores: integrar firmas digitales en desarrollos, prácticas recomendadas Usar firmas digitales: Mediante aplicaciones preparadas Adaptando desarrollos internos

21 Firmas Digitales Necesidad de Certificados
Los certificados enlazan la clave pública con la identidad digital Se pueden realizar firmas sin infraestructura PKI Normalmente se utilizará una infraestructura PKI para facilitar la gestión de certificados Windows Server 2003 incluye servicios de certificación.

22 Windows Certificate Services Características
Dos modos de funcionamiento: CA Enterprise: Online Integrada con Active Directory Standalone Offline Estándares de seguridad ITU: X.509v3 RSA: PKCS 1,7,9,10,12 IETF: RFC2459, CMC

23 Windows Certificate Services Características
Interoperabilidad con otras PKI Puede formar parte de una jerarquía de CAs Distribución de CRLs mediante URL HTTP, LDAP, FTP Bajo coste de implantación y administración Registro y emisión de Certificados Distribución de Certificados CA Root CA Emisoras CA Intermedia

24 Windows Certificate Services Integración con Active Directory
Es una opción de la instalación de los Servicios de Certificación AD es la base de datos de registro de usuarios AD para la gestión de usuarios AD para la distribución de certificados raíz AD como servicio de publicación de la PKI Certificados de usuario CRLs Servicios de CA Como conectarse Que tipo de certificados se emiten

25 Windows Server 2003 Novedades de Certificate Services
Subordinación cualificada (Qualified subordination) Certificación cruzada (cross certification) Plantillas de certificados editables Almacenamiento y recuperación de claves Emisión y renovación automática de certificados de equipos y de usuarios Delta CRLs Separación de roles de PKI Administrador del servicio Administrador del certificado Auditor

26 Subordinación Cualificada Windows Server 2003 Certificate Services
Creación de certificados de CA con restricciones Tipos de restricciones Nombres de certificados permitidos / prohibidos Política de emisión Cómo se realiza la emisión Política de aplicación Para que aplicaciones se pueden usar los certificados Limita el alcance de la confianza con organizaciones externas No es una confianza incondicional

27 Plantillas Personalizables Windows Server 2003 Certificate Services
Personalización de las políticas de emisión Autorización del certificado Autenticación en el dominio Otros certificados Firma de un agente de emisión Creación de la clave privada Tipo de clave, CSP, tamaño Contenido del certificado Validez, políticas de emisión y aplicación, usos de la clave, almacenamiento de clave

28 Archivo de Claves Windows Server 2003 Certificate Services
Las claves se generan en el cliente Se utiliza el protocolo de emisión CMC RFC Certificate Management Messages over CMS Claves almacenadas en la CA Las claves se almacenan protegidas por los certificados de los agentes de recuperación (KRA) La política de certificados determinas los KRA

29 Emisión Automática Windows Server 2003 Certificate Services
Emisión y renovación automática para usuarios Mecanismo común para los equipos Validez del certificado o cambio de política Se dispara en el inicio de sesión En el arranque de equipos RA Automática Firmando la petición de renovación con el certificado existente

30 Agenda Introducción a la firma digital
Firma electrónica Firma digital Firma digital cualificada Firma digital en plataforma Windows Arquitectura de los servicios criptográficos Inclusión de firmas en aplicaciones propias Aplicaciones preparadas

31 Plataforma Windows Arquitectura de servicios criptográficos
Las aplicaciones no se preocupan de los detalles relacionados con la criptografía El Sistema Operativo ofrece los servicios criptográficos a las aplicaciones CryptoAPI proporciona una capa de abstracción para el uso de estos servicios Interfaz común para todas las aplicaciones Los CSPs (Cryptographic Service Providers) son los que realmente realizan las funciones criptográficas Los proveedores de hardware criptográfico (Smart Cards, HSM, acceleradores) deben proporcionar su CSP

32 Servicios Criptográficos Arquitectura
Crypto Services Software CSP Hardware Certificate Management Services Msg stds (PKCS) CryptoAPI Applications Reader Smart Card Services Authenticode® Secure Channel Network APIs SSPI

33 Servicios Criptográficos CryptoAPI
Proporciona servicios a los desarrolladores para crear aplicaciones que utilicen criptografía. Codificación y decodificación ASN.1 Hashing (resúmenes de mensajes) Clave simétrica Clave pública Gestión de certificados digitales Gestión de mensajes PKCS#7 NO se trata de una librería criptográfica.

34 Cryptographic API (CryptoAPI) Arquitectura
Applications Certificate Store Functions Simplified Message Functions Cert Storage CryptoAPI Certificate Encode/Decode Functions Low-level Message Functions Crypto Services Microsoft RSA base CSP #1 SmartCard CSP #2 Custom CSP #3 Key Database Key Database Key Database

35 Servicios Criptográficos Cryptographic Service Provider (CSP)
Los CSPs contienen las funciones criptográficas CryptoAPI proporciona el interfaz común de acceso a los CSPs Los CSPs deben estar firmados digitalmente por Microsoft para ser cargados en Windows Se incluyen algunos en el sistema operativo: RSA base CSP DSS Diffie-Hellman

36 Plataforma Windows Utilización de servicios criptográficos
Applications System.Security.Cryptography CAPICOM XENROLL Network APIs CryptoAPI 2 x509 Chaining Validation Storage Revocation Checking CryptoAPI 1 Signature Creation and Viewing Hashing SSPI Encryption and Decryption Secure Channel Certificate Selection, Viewing and Management Random Numbers PKCS Messaging 7,10,12 Hardware Integration

37 CAPICOM Interfaz COM de acceso a CryptoAPI
CAPICOM permite a los desarrolladores acceder de manera sencilla a los servicios criptográficos Firmas digitales Cifrado CAPICOM 2.0 está soportado en las siguientes plataformas: Windows NT 4.0 SP4 o superior Windows 2000 Windows XP Windows Server 2003 Windows 98,Windows ME con IE 5 o superior NO se trata de una nueva librería criptográfica. NO se trata de una extensión de CryptoAPI.

38 CAPICOM 2.0 Instalación Un único fichero No incluido, se debe instalar
249 KB de tamaño Control ActiveX No incluido, se debe instalar Se puede distribuir con aplicaciones propias regsvr32 capicom.dll En aplicaciones web se puede descargar, instalar y registrar de forma automática <OBJECT width="1" height="1" classid="clsid:E38FD B5E9-B F" codebase="capicom.dll#version=2,0,0,0" ID="Object1" VIEWASTEXT> </OBJECT>

39 CAPICOM 2.0 Funcionalidades disponibles
Firma digital Con claves software, en smart card, o en un token USB Utiliza PKCS#7 Verificación de firmas digitales Cifrado de datos Con contraseña o clave simétrica Con clave pública en “sobres” Accesos a los almacenes de Certificados Se puede usar como complemento a otras herramientas o interfaces

40 Ejemplo (CAPICOM) Firma de un texto Private Sub Command1_Click()
Dim sd As New SignedData sd.Content = Text1 'sign the data Text2 = sd.Sign End Sub

41 Demostración Firmando con CAPICOM Aplicación Sencilla

42 Agenda Introducción a la firma digital
Firma electrónica Firma digital Firma digital cualificada Firma digital en plataforma Windows Arquitectura de los servicios criptográficos Inclusión de firmas en aplicaciones propias Aplicaciones preparadas

43 Firmas en Aplicaciones Propias Aclarar el entorno
Aclarar las razones para firmar: Garantizar la integridad del contenido Garantizar la identidad del firmante Número de firmantes necesarios Razones legales Se debe cumplir alguna normativa concreta Aclarar los datos que se van a firmar Ficheros Datos estructurados Aclarar cómo se quiere generar la firma Sólo con certificados de un emisor concreto Con Smart Cards u otros dispositivos

44 Firmas en Aplicaciones Propias Consideraciones de Diseño
Seleccionar el certificado a usar Realizar la firma Almacenar la firma Añadir más firmas Verificación Validez de la firma Validez de la identidad firmada Verificar la revocación

45 Firmas en Aplicaciones Propias Selección del Certificado
Cualquier certificado válido El usuario lo seleccionará Certificados concretos Emitidos por una Autoridad de Certificación concreta Correspondientes a un Sujeto concreto Con algún dato, propósito o extensión concreta En base a la clave privada Firmar utilizando Smart Card Firmar utilizando token USB

46 Firmas en Aplicaciones Propias Realizar la firma
Firmar todo el documento o fichero Enlazar la firma al documento Creando un nuevo fichero Fichero adyacente con la firma Verificar la firma antes de obtener el fichero o documento Incluir la firma dentro del fichero o estructura de datos El formato debe permitir la inclusión de firmas La firma y verificación se hacen sobre unos datos concretos

47 Firma de Archivos Completos Solución más general
Archivo.ext Mismo proceso para todas las aplicaciones Componentes de firma y verificación comunes Dos alternativas: Documento y firma incluidos Firma separada Se pueden firmar datos no deseados + Firma Archivo.ext Archivo.ext.p7s Archivo.ext.p7s Firma

48 Firma de Archivos Completos Firma incluida
Un único fichero que gestionar Datos y firma en formato PKCS#7 Es necesario extraer el archivo original para acceder a los datos Se puede hacer en el proceso de verificación PKCS#7 Firma Datos Archivo.ext.p7z

49 Firma de Archivos Completos Firma separada
Dos ficheros que gestionar Mantenerlos enlazados de alguna manera Los dos son necesarios para la verificación Las aplicaciones pueden acceder a los datos sin verificar la firma PKCS#7 Firma Datos Archivo.p7z Archivo.ext

50 Incluir Firma en el Contenido Solución dependiente de la aplicación
Archivo.ext Las aplicaciones que conocen la estructura de datos Puede suponer un coste elevado Se firma/verifica parte del contenido Datos + Firma Archivo.ext Datos Firma

51 Firmas en Aplicaciones Propias Varios Firmantes
Todos firmando los mismos datos Un único PKCS#7 Cada firma se puede verificar independientemente Sin jerarquía PKCS#7 Firma Datos

52 Firmas en Aplicaciones Propias Varios Firmantes
Firmas anidadas Tantos PKCS#7 como firmas Es necesario verificar cada firma para tener acceso al siguiente PKCS#7 Existe un orden de firma y verificación PKCS#7 Firma Datos

53 Firmas en Aplicaciones Propias Verificación
Verificar la integridad de los datos Verificar la identidad del firmante Verificar la validez de la cadena de certificados Verificar la revocación Comprobar la revocación Repetir para cada firmante Auditar el proceso de verificación Si se considera necesario

54 Firmas en Aplicaciones Propias Uso de CAPICOM
Seleccionar el certificado a usar Realizar la firma Almacenar la firma Añadir más firmas Verificación Validez de la firma Validez de la identidad firmada Verificar la revocación

55 Firmas en Aplicaciones Propias Selección de Certificado con CAPICOM
La aplicación puede hacer una selección previa Enumerar los certificados existentes y filtrarlos CAPICOM lo hace: Si sólo existe un certificado que cumpla los criterios, lo usa Si son varios, le muestra un dialogo al usuario Si no existe usuario (servicios) se puede anular el interfaz Settings.EnablePromptForCertificateUI

56 Firmas en Aplicaciones Propias Realizar firmas con CAPICOM
Permite realizar firmas de las dos formas: Documento y firma en el mismo PKCS#7 SignedData.Sign(Signer,bDetached=false) Firma en un fichero separado SignedData.Sign(Signer,bDetached=true)

57 Firmas en Aplicaciones Propias Varios Firmantes con CAPICOM
Todos firmando los mismos datos en un único PKCS#7 Se realiza de la siguiente forma: SignedData.Sign() para la primera firma SignedData.Cosign() para añadir más firmas al mismo PKCS#7 PKCS#7 Firma Datos

58 Firmas en Aplicaciones Propias Varios Firmantes con CAPICOM
Firmas anidadas Se realiza de la siguiente forma: SignedData1.Sign() para la primera firma El resultado pasa a ser el mensaje del siguiente objeto SignedData2 SignedData2.Sign() para la siguiente firma PKCS#7 Firma Datos

59 Firmas en Aplicaciones Propias Verificación con CAPICOM
Verificar sólo la integridad de los datos CAPICOM_VERIFY_SIGNATURE_ONLY Verificar la identidad del firmante SignedData.Verify Verifica la validez de la cadena de certificados Pero no chequea la revocación

60 Firmas en Aplicaciones Propias Verificación con CAPICOM
Verificar la revocación CAPICOM_CHECK_ONLINE_REVOCATION_STATUS Utilizará el campo CPD para localizar listas de revocación válidas Utiliza OCSP Si se dispone un proveedor instalado y registrado (Windows no incluye ninguno)

61 Agenda Introducción a la firma digital
Firma electrónica Firma digital Firma digital cualificada Firma digital en plataforma Windows Arquitectura de los servicios criptográficos Inclusión de firmas en aplicaciones propias Aplicaciones preparadas

62 Aplicaciones preparadas Ejemplos
Protección de código Controles ActiveX Macros Office System 2003 Microsoft Word 2003 Microsoft InfoPath 2003

63 Controles ActiveX Firma de componentes
Garantiza al usuario que lo usa: El origen de los componentes La integridad de los datos Permite a las organizciones establecer políticas de ejecución A cada zona una acción con los componentes

64 Microsoft Word 2003 Firma de .DOC
Office incorpora firma digital de documentos desde la versión XP La firma se incluye como parte del documento El documento no cambia de formato Se puede utilizar Visual Basic for Applications (VBA) para acceder a las firmas desde programa

65 InfoPath 2003 Firma digital en XML (XMLDsig)
Enlaza con el apartado anterior Incluir la firma dentro del contenido Independiente de la aplicación concreta Soporte de documentos XML Firma los datos dentro de un formulario

66 Demostración Firmando XML con InfoPath 2003 Nota de gastos

67 Resumen

68 Firmas Digitales Conceptos
Diferentes Tipos de Firmas Electrónicas Distintas Características e Implicaciones Legales Distintas Utilidades para las Necesidades de Negocio

69 Servicios Criptográficos Plataforma Windows
Proporcionados por los CSPs CrytoAPI proporciona una Capa de Abstracción CAPICOM facilita el uso a los desarrolladores

70 Aplicación de Firmas Digitales Escenarios
CAPICOM en aplicaciones propias Usar aplicaciones preparadas para Firma Digital InfoPath 2003 para Firmar Documentos XML

71 Preguntas

72 Para obtener más información
Sitio de seguridad de Microsoft Sitio de seguridad de TechNet (profesionales de IT) Sitio de seguridad de MSDN (desarrolladores)

73 Barcelona 4 Mayo 2004


Descargar ppt "Barcelona 4 Mayo 2004."

Presentaciones similares


Anuncios Google