BarcelonaBarcelona
4 Mayo 20044 Mayo 2004
¡Adéntrate!
¡Regístrate antes del 14 de mayo y ahórrate 300 €!
Amsterdam, Holanda29 junio – 2 julio
El evento definitivo de Microsoft en Europa sobre creación, implantación, protección y
gestión de soluciones conectadas
Firma digital en la Firma digital en la plataforma Windowsplataforma Windows
Santiago NúñezSantiago Núñez
Technical ConsultantTechnical Consultant
MicrosoftMicrosoft
AgendaAgenda
Introducción a la firma digitalIntroducción a la firma digital Firma electrónicaFirma electrónica Firma digitalFirma digital Firma digital cualificadaFirma digital cualificada
Firma digital en plataforma WindowsFirma digital en plataforma Windows Arquitectura de los servicios criptográficosArquitectura de los servicios criptográficos Inclusión de firmas en aplicaciones propiasInclusión de firmas en aplicaciones propias Aplicaciones preparadasAplicaciones preparadas
Firmas digitalesFirmas digitalesUtilidadUtilidad
Las firmas digitales permiten migrar Las firmas digitales permiten migrar procesos basados en papel (que procesos basados en papel (que requerían firmas) a formato electrónico.requerían firmas) a formato electrónico. Documentos en papel que requieren una Documentos en papel que requieren una
firma de aprobaciónfirma de aprobación Necesidad de asegurar que el contenido no Necesidad de asegurar que el contenido no
se ha modificadose ha modificado Necesidad de asegurar la identidad de la Necesidad de asegurar la identidad de la
persona que firmópersona que firmó Existe una normativa que exige aprobaciones Existe una normativa que exige aprobaciones
mediante firmasmediante firmas
Firma electrónicaFirma electrónicaPrimera aproximaciónPrimera aproximación
Datos electrónicos adjuntos a un Datos electrónicos adjuntos a un documento para mostrar “intención” de documento para mostrar “intención” de firmafirma
Firma digitalFirma digitalVinculando los datos al firmanteVinculando los datos al firmante
““Firma electrónica avanzada” (según la Firma electrónica avanzada” (según la ley de firma digital)ley de firma digital)
Firma electrónica con las siguientes Firma electrónica con las siguientes características:características: Vinculada al firmanteVinculada al firmante Vinculada a los datosVinculada a los datos Permite detectar modificacionesPermite detectar modificaciones
Firma digitalFirma digitalBob genera un mensaje y quiere asegurarse de que Bob genera un mensaje y quiere asegurarse de que
Alice sabrá que el mensaje es auténticoAlice sabrá que el mensaje es auténtico
MensajeMensajeMensajeMensaje
Hash Hash
Firma
Digest
Alice verifica que el mensaje no ha sido alterado yAlice verifica que el mensaje no ha sido alterado y
que fue generado por Bobque fue generado por Bob
MensajeMensaje
Hash Hash
Firma
Digest
Digest¿iguales?¿iguales?
ClaveClave
PrivadaPrivada
de Bobde Bob
ClaveClave
PúblicaPública
de Bobde Bob
Firma digitalFirma digitalFormatos de firmas digitalesFormatos de firmas digitales
Existen diferentes formatos para Existen diferentes formatos para almacenar una firma digital.almacenar una firma digital.
La mayoría encapsula en un sobre los La mayoría encapsula en un sobre los datos, la identidad del firmante y la firma.datos, la identidad del firmante y la firma.
Algunos ejemplos de formatos son:Algunos ejemplos de formatos son: Privacy-Enhanced Mail (PEM) – RFC 1421Privacy-Enhanced Mail (PEM) – RFC 1421 PKCS#7PKCS#7 S/MIME – RFC 2634 ISO 9796-2 XMLDsigXMLDsig XAdES
Firma digitalFirma digitalFormato de Sobre PKCS#7Formato de Sobre PKCS#7
PKCS #7: Cryptographic Message Syntax PKCS #7: Cryptographic Message Syntax StandardStandard Estándar desarrollado por RSA Laboratories Estándar desarrollado por RSA Laboratories
Inc.Inc. Define varios formatos de mensajes:Define varios formatos de mensajes:
Data, EnvelopedData, SignedData, etc.Data, EnvelopedData, SignedData, etc.
SignedData ::= SEQUENCE {SignedData ::= SEQUENCE { version Version, version Version, digestAlgorithms DigestAlgorithmIdentifiers, digestAlgorithms DigestAlgorithmIdentifiers, contentInfo ContentInfo, contentInfo ContentInfo, certificates [0] IMPLICIT ExtendedCertificatesAndCertificates OPTIONAL, certificates [0] IMPLICIT ExtendedCertificatesAndCertificates OPTIONAL, crls [1] IMPLICIT CertificateRevocationLists OPTIONAL, crls [1] IMPLICIT CertificateRevocationLists OPTIONAL, signerInfos SignerInfos } signerInfos SignerInfos }
Firma digitalFirma digitalPKCS#7 SignedDataPKCS#7 SignedData
PKCS #7PKCS #7
VersionVersion
Digest AlgorithmDigest Algorithm
ContentContent
CertificatesCertificates
CRLsCRLs
Signer InfosSigner Infos
Signer Info 1Signer Info 1
Signer Info 2Signer Info 2
Signer Info 3Signer Info 3
Signer InfoSigner Info
VersionVersion
Serial NumberSerial Number
Digest AlgorithmDigest Algorithm
Authenticated AttributesAuthenticated Attributes
Unauthenticated AttributesUnauthenticated Attributes
Digital SignatureDigital Signature
Firma digitalFirma digitalFirma Digital XMLFirma Digital XML
XMLDSIG: Propuesta conjunta de XMLDSIG: Propuesta conjunta de estándar IETF/W3Cestándar IETF/W3C RFC 3075RFC 3075 http://www.w3.org/Signature/http://www.w3.org/Signature/
La versión 1.0 de .NET Framework incluye La versión 1.0 de .NET Framework incluye el soporte para firmas XMLDSIG en:el soporte para firmas XMLDSIG en: System.Security.Cryptography.XMLSystem.Security.Cryptography.XML
Define un mecanismo para firmar:Define un mecanismo para firmar: Documentos XMLDocumentos XML Fragmentos de un documento XMLFragmentos de un documento XML
Firma digitalFirma digitalFirma Digital XMLFirma Digital XML
Proporciona tres métodos de firma:Proporciona tres métodos de firma: ““Wrapped”, el formato de firma incluye el Wrapped”, el formato de firma incluye el
contenidocontenido ““Detached”, la firma está separada del Detached”, la firma está separada del
contenidocontenido ““Embedded”, la firma es parte del contenido Embedded”, la firma es parte del contenido
firmadofirmado El formato XMLDsig no requiere El formato XMLDsig no requiere
infraestructura de certificadosinfraestructura de certificados Se incluye información de la claveSe incluye información de la clave Se reserva espacio para proporcionar Se reserva espacio para proporcionar
información del certificadoinformación del certificado
Firma digitalFirma digitalFormato de Firma XMLDsigFormato de Firma XMLDsig
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
<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>
Firma digital cualificadaFirma digital cualificadaAñadiendo garantías legalesAñadiendo garantías legales
““Firma electrónica reconocida” (según la ley de Firma electrónica reconocida” (según la ley de firma digital)firma digital)
Firma digital con las siguientes características:Firma digital con las siguientes características: Basada en un certificado cualificado (reconocido)Basada en un certificado cualificado (reconocido) Certificado emitido por un proveedor acreditadoCertificado emitido por un proveedor acreditado Utilizando un dispositivo seguro de firma (SSCD)Utilizando un dispositivo seguro de firma (SSCD) Utilizando una aplicación segura de firma (CSA)Utilizando una aplicación segura de firma (CSA)
Firmas digitalesFirmas digitalesEscenarios avanzadosEscenarios avanzados
Firma cualificada con validez a largo plazoFirma cualificada con validez a largo plazo Se necesita incluir un sello de tiempo cualificadoSe necesita incluir un sello de tiempo cualificado Útil cuando la validez “en el tiempo” es importanteÚtil cuando la validez “en el tiempo” es importante
Firmas digitales de gruposFirmas digitales de grupos Garantizan la integridad del mensajeGarantizan la integridad del mensaje Garantizan que la firma ha sido generada por un Garantizan que la firma ha sido generada por un
miembro del “grupo” miembro del “grupo” No permiten conocer la identidad del firmante a partir No permiten conocer la identidad del firmante a partir
de la firmade la firma Útil en escenarios dónde es importante el Útil en escenarios dónde es importante el
“anonimato”: NGSBC.“anonimato”: NGSBC.
AgendaAgenda
Introducción a la firma digitalIntroducción a la firma digital Firma electrónicaFirma electrónica Firma digitalFirma digital Firma digital cualificadaFirma digital cualificada
Firma digital en plataforma WindowsFirma digital en plataforma Windows Arquitectura de los servicios criptográficosArquitectura de los servicios criptográficos Inclusión de firmas en aplicaciones propiasInclusión de firmas en aplicaciones propias Aplicaciones preparadasAplicaciones preparadas
Firmas digitales en WindowsFirmas digitales en WindowsObjetivosObjetivos
Conocer la arquitecturaConocer la arquitectura Útil para los administradores IT: integración, Útil para los administradores IT: integración,
solución de problemas, etc.solución de problemas, etc. Fundamental para los desarrolladores: Fundamental para los desarrolladores:
integrar firmas digitales en desarrollos, integrar firmas digitales en desarrollos, prácticas recomendadasprácticas recomendadas
Usar firmas digitales:Usar firmas digitales: Mediante aplicaciones preparadas Mediante aplicaciones preparadas Adaptando desarrollos internosAdaptando desarrollos internos
Firmas DigitalesFirmas DigitalesNecesidad de CertificadosNecesidad de Certificados
Los certificados enlazan la clave pública Los certificados enlazan la clave pública con la identidad digitalcon la identidad digital
Se pueden realizar firmas sin Se pueden realizar firmas sin infraestructura PKIinfraestructura PKI
Normalmente se utilizará una Normalmente se utilizará una infraestructura PKI para facilitar la infraestructura PKI para facilitar la gestión de certificadosgestión de certificados
Windows Server 2003 incluye servicios de Windows Server 2003 incluye servicios de certificación.certificación.
Windows Certificate Services Windows Certificate Services CaracterísticasCaracterísticas
Dos modos de funcionamiento:Dos modos de funcionamiento: CA Enterprise:CA Enterprise:
Online Online Integrada con Active DirectoryIntegrada con Active Directory
StandaloneStandalone Offline Offline
Estándares de seguridadEstándares de seguridad ITU: ITU: X.509v3X.509v3 RSA: RSA: PKCS 1,7,9,10,12PKCS 1,7,9,10,12 IETF: IETF: RFC2459, CMCRFC2459, CMC
Windows Certificate Services Windows Certificate Services CaracterísticasCaracterísticas
Interoperabilidad con Interoperabilidad con otras PKIotras PKI Puede formar parte de una Puede formar parte de una
jerarquía de CAsjerarquía de CAs Distribución de CRLs Distribución de CRLs
mediante URLmediante URL HTTP, LDAP, FTPHTTP, LDAP, FTP
Bajo coste de Bajo coste de implantación y implantación y administraciónadministración Registro y emisión de Registro y emisión de
CertificadosCertificados Distribución de Distribución de
CertificadosCertificados
CA RootCA Root
CA EmisorasCA Emisoras
CA CA IntermediaIntermedia
Es una opción de la instalación de los Es una opción de la instalación de los Servicios de CertificaciónServicios de Certificación
AD es la base de datos de registro de AD es la base de datos de registro de usuariosusuarios
AD para la gestión de usuariosAD para la gestión de usuarios AD para la distribución de certificados raízAD para la distribución de certificados raíz AD como servicio de publicación de la PKIAD como servicio de publicación de la PKI
Certificados de usuarioCertificados de usuario CRLsCRLs Servicios de CAServicios de CA
Como conectarseComo conectarse Que tipo de certificados se emitenQue tipo de certificados se emiten
Windows Certificate ServicesWindows Certificate ServicesIntegración con Active Directory Integración con Active Directory
Subordinación cualificada (Qualified Subordinación cualificada (Qualified subordination)subordination) Certificación cruzada (cross certification)Certificación cruzada (cross certification)
Plantillas de certificados editablesPlantillas de certificados editables Almacenamiento y recuperación de clavesAlmacenamiento y recuperación de claves Emisión y renovación automática de Emisión y renovación automática de
certificados de equipos y de usuarioscertificados de equipos y de usuarios Delta CRLsDelta CRLs Separación de roles de PKISeparación de roles de PKI
Administrador del servicioAdministrador del servicio Administrador del certificadoAdministrador del certificado AuditorAuditor
Windows Server 2003Windows Server 2003Novedades de Certificate ServicesNovedades de Certificate Services
Creación de certificados de CA con Creación de certificados de CA con restriccionesrestricciones
Tipos de restriccionesTipos de restricciones Nombres de certificados permitidos / prohibidosNombres de certificados permitidos / prohibidos Política de emisiónPolítica de emisión
Cómo se realiza la emisiónCómo se realiza la emisión
Política de aplicaciónPolítica de aplicación Para que aplicaciones se pueden usar los certificadosPara que aplicaciones se pueden usar los certificados
Limita el alcance de la confianza con Limita el alcance de la confianza con organizaciones externasorganizaciones externas No es una confianza incondicionalNo es una confianza incondicional
Subordinación CualificadaSubordinación CualificadaWindows Server 2003 Certificate ServicesWindows Server 2003 Certificate Services
Personalización de las políticas de Personalización de las políticas de emisiónemisión Autorización del certificadoAutorización del certificado
Autenticación en el dominioAutenticación en el dominio Otros certificadosOtros certificados Firma de un agente de emisiónFirma de un agente de emisión
Creación de la clave privadaCreación de la clave privada Tipo de clave, CSP, tamañoTipo de clave, CSP, tamaño
Contenido del certificadoContenido del certificado Validez, políticas de emisión y aplicación, Validez, políticas de emisión y aplicación,
usos de la clave, almacenamiento de claveusos de la clave, almacenamiento de clave
Plantillas PersonalizablesPlantillas PersonalizablesWindows Server 2003 Certificate ServicesWindows Server 2003 Certificate Services
Las claves se generan en el clienteLas claves se generan en el cliente Se utiliza el protocolo de emisión CMCSe utiliza el protocolo de emisión CMC
RFC 2797 - Certificate Management RFC 2797 - Certificate Management Messages over CMS Messages over CMS
Claves almacenadas en la CAClaves almacenadas en la CA Las claves se almacenan protegidas Las claves se almacenan protegidas
por los certificados de los agentes de por los certificados de los agentes de recuperación (KRA)recuperación (KRA) La política de certificados determinas los La política de certificados determinas los
KRAKRA
Archivo de ClavesArchivo de ClavesWindows Server 2003 Certificate ServicesWindows Server 2003 Certificate Services
Emisión y renovación automática para Emisión y renovación automática para usuariosusuarios Mecanismo común para los equiposMecanismo común para los equipos
Validez del certificado o cambio de Validez del certificado o cambio de políticapolítica
Se dispara en el inicio de sesiónSe dispara en el inicio de sesión En el arranque de equiposEn el arranque de equipos
RA AutomáticaRA Automática Firmando la petición de renovación con el Firmando la petición de renovación con el
certificado existentecertificado existente
Emisión AutomáticaEmisión AutomáticaWindows Server 2003 Certificate ServicesWindows Server 2003 Certificate Services
AgendaAgenda
Introducción a la firma digitalIntroducción a la firma digital Firma electrónicaFirma electrónica Firma digitalFirma digital Firma digital cualificadaFirma digital cualificada
Firma digital en plataforma WindowsFirma digital en plataforma Windows Arquitectura de los servicios criptográficosArquitectura de los servicios criptográficos Inclusión de firmas en aplicaciones propiasInclusión de firmas en aplicaciones propias Aplicaciones preparadasAplicaciones preparadas
Plataforma WindowsPlataforma WindowsArquitectura de servicios criptográficosArquitectura de servicios criptográficos
Las aplicaciones no se preocupan de los Las aplicaciones no se preocupan de los detalles relacionados con la criptografíadetalles relacionados con la criptografía El Sistema Operativo ofrece los servicios El Sistema Operativo ofrece los servicios
criptográficos a las aplicacionescriptográficos a las aplicaciones CryptoAPI proporciona una capa de abstracción CryptoAPI proporciona una capa de abstracción
para el uso de estos serviciospara el uso de estos servicios Interfaz común para todas las aplicacionesInterfaz común para todas las aplicaciones
Los CSPs (Cryptographic Service Providers) Los CSPs (Cryptographic Service Providers) son los que realmente realizan las funciones son los que realmente realizan las funciones criptográficascriptográficas Los proveedores de hardware criptográfico (Smart Los proveedores de hardware criptográfico (Smart
Cards, HSM, acceleradores) deben proporcionar su Cards, HSM, acceleradores) deben proporcionar su CSPCSP
Crypto ServicesCrypto Services
SoftwareSoftwareCSPCSP
Hardware Hardware CSPCSP
Certificate Certificate
Management Management
ServicesServices
Msg stdsMsg stds(PKCS)(PKCS)
CryptoAPICryptoAPI
ApplicationsApplications
AuthenticodeAuthenticode®®
Secure Secure ChannelChannel
Network Network APIsAPIs
SSPI
ReaderReader
Smart Card Smart Card ServicesServices
Servicios CriptográficosServicios CriptográficosArquitecturaArquitectura
Proporciona servicios a los desarrolladores Proporciona servicios a los desarrolladores para crear aplicaciones que utilicen para crear aplicaciones que utilicen criptografía.criptografía. Codificación y decodificación ASN.1Codificación y decodificación ASN.1 Hashing (resúmenes de mensajes)Hashing (resúmenes de mensajes) Clave simétricaClave simétrica Clave públicaClave pública Gestión de certificados digitalesGestión de certificados digitales Gestión de mensajes PKCS#7Gestión de mensajes PKCS#7
NONO se trata de una librería criptográfica. se trata de una librería criptográfica.
Servicios CriptográficosServicios CriptográficosCryptoAPICryptoAPI
CryptoAPICryptoAPI
Crypto ServicesCrypto Services
Microsoft RSA Microsoft RSA base CSP #1base CSP #1
Certificate Store Certificate Store
FunctionsFunctions
ApplicationsApplications
SmartCard SmartCard CSP #2CSP #2
CustomCustomCSP #3CSP #3
Key DatabaseKey Database
Simplified Message Simplified Message
FunctionsFunctions
Low-level Message Low-level Message
FunctionsFunctionsCertificate Encode/Decode Certificate Encode/Decode
FunctionsFunctions
Key DatabaseKey DatabaseKey DatabaseKey Database
CertCertStorageStorage
Cryptographic API (CryptoAPI) Cryptographic API (CryptoAPI) ArquitecturaArquitectura
Los CSPs contienen las funciones Los CSPs contienen las funciones criptográficascriptográficas
CryptoAPI proporciona el interfaz común de CryptoAPI proporciona el interfaz común de acceso a los CSPsacceso a los CSPs
Los CSPs deben estar firmados digitalmente Los CSPs deben estar firmados digitalmente por Microsoft para ser cargados en Windowspor Microsoft para ser cargados en Windows
Se incluyen algunos en el sistema operativo:Se incluyen algunos en el sistema operativo: RSA base CSPRSA base CSP DSS Diffie-Hellman DSS Diffie-Hellman
Servicios CriptográficosServicios CriptográficosCryptographic Service Provider (CSP)Cryptographic Service Provider (CSP)
PKCS Messaging
7,10,12
x509
Chaining
Validation
Storage
Revocation Checking
Certificate Selection,
Viewing and Management
Applications
System.Security.Cryptography CAPICOM
CryptoAPI 2CryptoAPI 1
Secure Channel
Network APIs
SSPIHashing
Encryption and Decryption
Random Numbers
XENROLL
Signature Creation and
Viewing
Hardware Integration
Plataforma WindowsPlataforma WindowsUtilización de servicios criptográficosUtilización de servicios criptográficos
CAPICOM permite a los desarrolladores acceder de CAPICOM permite a los desarrolladores acceder de manera sencilla a los servicios criptográficosmanera sencilla a los servicios criptográficos Firmas digitalesFirmas digitales CifradoCifrado
CAPICOM 2.0 está soportado en las siguientes CAPICOM 2.0 está soportado en las siguientes plataformas:plataformas: Windows NT 4.0 SP4 o superiorWindows NT 4.0 SP4 o superior Windows 2000Windows 2000 Windows XPWindows XP Windows Server 2003Windows Server 2003 Windows 98,Windows ME con IE 5 o superiorWindows 98,Windows ME con IE 5 o superior
NONO se trata de una nueva librería criptográfica. se trata de una nueva librería criptográfica. NONO se trata de una extensión de CryptoAPI. se trata de una extensión de CryptoAPI.
CAPICOMCAPICOMInterfaz COM de acceso a CryptoAPIInterfaz COM de acceso a CryptoAPI
Un único ficheroUn único fichero 249 KB de tamaño249 KB de tamaño Control ActiveXControl ActiveX
No incluido, se debe instalarNo incluido, se debe instalar Se puede distribuir con aplicaciones propiasSe puede distribuir con aplicaciones propias
regsvr32 capicom.dllregsvr32 capicom.dll En aplicaciones web se puede descargar, En aplicaciones web se puede descargar,
instalar y registrar de forma automáticainstalar y registrar de forma automática <OBJECT width="1" height="1" <OBJECT width="1" height="1"
classid="clsid:E38FD381-6404-4041-B5E9-classid="clsid:E38FD381-6404-4041-B5E9-B2739258941F" B2739258941F" codebase="capicom.dll#version=2,0,0,0" codebase="capicom.dll#version=2,0,0,0" ID="Object1" VIEWASTEXT> </OBJECT>ID="Object1" VIEWASTEXT> </OBJECT>
CAPICOM 2.0CAPICOM 2.0InstalaciónInstalación
Firma digitalFirma digital Con claves software, en smart card, o en un token Con claves software, en smart card, o en un token
USBUSB Utiliza PKCS#7Utiliza PKCS#7
Verificación de firmas digitalesVerificación de firmas digitales Cifrado de datos Cifrado de datos
Con contraseña o clave simétricaCon contraseña o clave simétrica Con clave pública en “sobres”Con clave pública en “sobres”
Accesos a los almacenes de CertificadosAccesos a los almacenes de Certificados
Se puede usar como complemento a otras Se puede usar como complemento a otras herramientas o interfacesherramientas o interfaces
CAPICOM 2.0CAPICOM 2.0Funcionalidades disponiblesFuncionalidades disponibles
Ejemplo (CAPICOM)Ejemplo (CAPICOM)
Firma de un textoFirma de un texto
Private Sub Command1_Click()Private Sub Command1_Click()
Dim sd As New SignedDataDim sd As New SignedData
sd.Content = Text1sd.Content = Text1
'sign the data'sign the data
Text2 = sd.SignText2 = sd.Sign
End SubEnd Sub
DemostraciónDemostración Firmando con Firmando con
CAPICOMCAPICOM
Aplicación SencillaAplicación Sencilla
AgendaAgenda
Introducción a la firma digitalIntroducción a la firma digital Firma electrónicaFirma electrónica Firma digitalFirma digital Firma digital cualificadaFirma digital cualificada
Firma digital en plataforma WindowsFirma digital en plataforma Windows Arquitectura de los servicios criptográficosArquitectura de los servicios criptográficos Inclusión de firmas en aplicaciones propiasInclusión de firmas en aplicaciones propias Aplicaciones preparadasAplicaciones preparadas
Firmas en Aplicaciones Propias Firmas en Aplicaciones Propias Aclarar el entornoAclarar el entorno
Aclarar las razones para firmar:Aclarar las razones para firmar: Garantizar la integridad del contenidoGarantizar la integridad del contenido Garantizar la identidad del firmanteGarantizar la identidad del firmante
Número de firmantes necesariosNúmero de firmantes necesarios Razones legalesRazones legales
Se debe cumplir alguna normativa concretaSe debe cumplir alguna normativa concreta
Aclarar los datos que se van a firmarAclarar los datos que se van a firmar FicherosFicheros Datos estructuradosDatos estructurados
Aclarar cómo se quiere generar la firmaAclarar cómo se quiere generar la firma Sólo con certificados de un emisor concretoSólo con certificados de un emisor concreto Con Smart Cards u otros dispositivosCon Smart Cards u otros dispositivos
Firmas en Aplicaciones PropiasFirmas en Aplicaciones PropiasConsideraciones de DiseñoConsideraciones de Diseño
FirmaFirma Seleccionar el certificado a usarSeleccionar el certificado a usar Realizar la firmaRealizar la firma Almacenar la firmaAlmacenar la firma Añadir más firmasAñadir más firmas
VerificaciónVerificación Validez de la firmaValidez de la firma Validez de la identidad firmadaValidez de la identidad firmada Verificar la revocaciónVerificar la revocación
Firmas en Aplicaciones PropiasFirmas en Aplicaciones PropiasSelección del CertificadoSelección del Certificado
Cualquier certificado válidoCualquier certificado válido El usuario lo seleccionaráEl usuario lo seleccionará
Certificados concretosCertificados concretos Emitidos por una Autoridad de Certificación Emitidos por una Autoridad de Certificación
concretaconcreta Correspondientes a un Sujeto concretoCorrespondientes a un Sujeto concreto Con algún dato, propósito o extensión Con algún dato, propósito o extensión
concretaconcreta En base a la clave privadaEn base a la clave privada
Firmar utilizando Smart CardFirmar utilizando Smart Card Firmar utilizando token USBFirmar utilizando token USB
Firmas en Aplicaciones PropiasFirmas en Aplicaciones PropiasRealizar la firmaRealizar la firma
Firmar todo el documento o ficheroFirmar todo el documento o fichero Enlazar la firma al documentoEnlazar la firma al documento
Creando un nuevo ficheroCreando un nuevo fichero Fichero adyacente con la firmaFichero adyacente con la firma
Verificar la firma antes de obtener el fichero o Verificar la firma antes de obtener el fichero o documentodocumento
Incluir la firma dentro del fichero o estructura Incluir la firma dentro del fichero o estructura de datosde datos El formato debe permitir la inclusión de firmasEl formato debe permitir la inclusión de firmas La firma y verificación se hacen sobre unos datos La firma y verificación se hacen sobre unos datos
concretosconcretos
Firma de Archivos CompletosFirma de Archivos CompletosSolución más generalSolución más general
Mismo proceso para Mismo proceso para todas las todas las aplicacionesaplicaciones
Componentes de Componentes de firma y verificación firma y verificación comunescomunes
Dos alternativas:Dos alternativas: Documento y firma Documento y firma
incluidosincluidos Firma separadaFirma separada
Se pueden firmar Se pueden firmar datos no deseadosdatos no deseados
Archivo.ext
++
Firma
Archivo.ext.p7s
Archivo.ext
Archivo.ext.p7s
Firma
Firma de Archivos CompletosFirma de Archivos CompletosFirma incluidaFirma incluida
Un único fichero que gestionarUn único fichero que gestionar Datos y firma en formato PKCS#7Datos y firma en formato PKCS#7 Es necesario extraer el archivo original para acceder a Es necesario extraer el archivo original para acceder a
los datoslos datos Se puede hacer en el proceso de verificaciónSe puede hacer en el proceso de verificación
PKCS#7PKCS#7
FirmaDatosDatos
Archivo.ext.p7zArchivo.ext.p7z
Firma de Archivos Completos Firma de Archivos Completos Firma separadaFirma separada
Dos ficheros que gestionarDos ficheros que gestionar Mantenerlos enlazados de alguna maneraMantenerlos enlazados de alguna manera Los dos son necesarios para la verificaciónLos dos son necesarios para la verificación
Las aplicaciones pueden acceder a los datos Las aplicaciones pueden acceder a los datos sin verificar la firmasin verificar la firma
PKCS#7PKCS#7
FirmaDatosDatos
Archivo.p7zArchivo.p7zArchivo.extArchivo.ext
Incluir Firma en el ContenidoIncluir Firma en el ContenidoSolución dependiente de la aplicaciónSolución dependiente de la aplicación
Las aplicaciones que Las aplicaciones que conocen la conocen la estructura de datosestructura de datos Puede suponer un Puede suponer un
coste elevadocoste elevado
Se firma/verifica Se firma/verifica parte del contenidoparte del contenido
Archivo.ext
++
Firma
Datos
Archivo.ext
Datos
Firma
Firmas en Aplicaciones Propias Firmas en Aplicaciones Propias Varios FirmantesVarios Firmantes
Todos firmando los mismos datosTodos firmando los mismos datos Un único PKCS#7Un único PKCS#7 Cada firma se puede verificar independientementeCada firma se puede verificar independientemente
Sin jerarquíaSin jerarquía
PKCS#7PKCS#7
FirmaDatosDatos Firma Firma
Firmas en Aplicaciones Propias Firmas en Aplicaciones Propias Varios FirmantesVarios Firmantes
Firmas anidadasFirmas anidadas Tantos PKCS#7 como firmasTantos PKCS#7 como firmas Es necesario verificar cada firma para tener acceso al Es necesario verificar cada firma para tener acceso al
siguiente PKCS#7siguiente PKCS#7 Existe un orden de firma y verificaciónExiste un orden de firma y verificación
PKCS#7PKCS#7
Firma
PKCS#7PKCS#7
FirmaDatosDatos
Firmas en Aplicaciones Propias Firmas en Aplicaciones Propias VerificaciónVerificación
Verificar la integridad de los datosVerificar la integridad de los datos Verificar la identidad del firmanteVerificar la identidad del firmante
Verificar la validez de la cadena de certificadosVerificar la validez de la cadena de certificados
Verificar la revocaciónVerificar la revocación Comprobar la revocaciónComprobar la revocación
Repetir para cada firmanteRepetir para cada firmante Auditar el proceso de verificaciónAuditar el proceso de verificación
Si se considera necesarioSi se considera necesario
Firmas en Aplicaciones PropiasFirmas en Aplicaciones PropiasUso de CAPICOMUso de CAPICOM
FirmaFirma Seleccionar el certificado a usarSeleccionar el certificado a usar Realizar la firmaRealizar la firma Almacenar la firmaAlmacenar la firma Añadir más firmasAñadir más firmas
VerificaciónVerificación Validez de la firmaValidez de la firma Validez de la identidad firmadaValidez de la identidad firmada Verificar la revocaciónVerificar la revocación
Firmas en Aplicaciones PropiasFirmas en Aplicaciones PropiasSelección de Certificado con CAPICOMSelección de Certificado con CAPICOM
La aplicación puede hacer una selección previaLa aplicación puede hacer una selección previa Enumerar los certificados existentes y filtrarlosEnumerar los certificados existentes y filtrarlos
CAPICOM lo hace:CAPICOM lo hace: Si sólo existe un certificado que cumpla los criterios, Si sólo existe un certificado que cumpla los criterios,
lo usalo usa Si son varios, le muestra un dialogo al usuarioSi son varios, le muestra un dialogo al usuario
Si no existe usuario (servicios) se puede anular Si no existe usuario (servicios) se puede anular el interfazel interfaz
Settings.EnablePromptForCertificateUI Settings.EnablePromptForCertificateUI
Firmas en Aplicaciones PropiasFirmas en Aplicaciones PropiasRealizar firmas con CAPICOMRealizar firmas con CAPICOM
Permite realizar firmas de las dos formas:Permite realizar firmas de las dos formas: Documento y firma en el mismo PKCS#7Documento y firma en el mismo PKCS#7
SignedData.Sign(Signer,bDetached=SignedData.Sign(Signer,bDetached=falsefalse)) Firma en un fichero separadoFirma en un fichero separado
SignedData.Sign(Signer,bDetached=SignedData.Sign(Signer,bDetached=truetrue))
Firmas en Aplicaciones Propias Firmas en Aplicaciones Propias Varios Firmantes con CAPICOMVarios Firmantes con CAPICOM
Todos firmando los mismos datos en un único PKCS#7Todos firmando los mismos datos en un único PKCS#7 Se realiza de la siguiente forma:Se realiza de la siguiente forma:
SignedData.Sign() para la primera firmaSignedData.Sign() para la primera firma SignedData.Cosign() para añadir más firmas al mismo PKCS#7SignedData.Cosign() para añadir más firmas al mismo PKCS#7
PKCS#7PKCS#7
FirmaDatosDatos Firma Firma
Firmas en Aplicaciones Propias Firmas en Aplicaciones Propias Varios Firmantes con CAPICOMVarios Firmantes con CAPICOM
Firmas anidadas Firmas anidadas Se realiza de la siguiente forma:Se realiza de la siguiente forma:
SignedData1.Sign() para la primera firmaSignedData1.Sign() para la primera firma El resultado pasa a ser el mensaje del siguiente objeto El resultado pasa a ser el mensaje del siguiente objeto
SignedData2SignedData2 SignedData2.Sign() para la siguiente firmaSignedData2.Sign() para la siguiente firma
PKCS#7PKCS#7
Firma
PKCS#7PKCS#7
FirmaDatosDatos
Firmas en Aplicaciones Propias Firmas en Aplicaciones Propias Verificación con CAPICOMVerificación con CAPICOM
Verificar sólo la integridad de los datosVerificar sólo la integridad de los datos CAPICOM_VERIFY_SIGNATURE_ONLYCAPICOM_VERIFY_SIGNATURE_ONLY
Verificar la identidad del firmanteVerificar la identidad del firmante SignedData.VerifySignedData.Verify Verifica la validez de la cadena de Verifica la validez de la cadena de
certificadoscertificados Pero no chequea la revocaciónPero no chequea la revocación
Firmas en Aplicaciones Propias Firmas en Aplicaciones Propias Verificación con CAPICOMVerificación con CAPICOM
Verificar la revocaciónVerificar la revocación CAPICOM_CHECK_ONLINE_REVOCATIONCAPICOM_CHECK_ONLINE_REVOCATION_STATUS_STATUS
Utilizará el campo CPD para localizar listas Utilizará el campo CPD para localizar listas de revocación válidasde revocación válidas
Utiliza OCSPUtiliza OCSP Si se dispone un proveedor instalado y registrado Si se dispone un proveedor instalado y registrado
(Windows no incluye ninguno)(Windows no incluye ninguno)
AgendaAgenda
Introducción a la firma digitalIntroducción a la firma digital Firma electrónicaFirma electrónica Firma digitalFirma digital Firma digital cualificadaFirma digital cualificada
Firma digital en plataforma WindowsFirma digital en plataforma Windows Arquitectura de los servicios criptográficosArquitectura de los servicios criptográficos Inclusión de firmas en aplicaciones propiasInclusión de firmas en aplicaciones propias Aplicaciones preparadasAplicaciones preparadas
Aplicaciones preparadasAplicaciones preparadasEjemplosEjemplos
Protección de códigoProtección de código Controles ActiveXControles ActiveX MacrosMacros
Office System 2003Office System 2003 Microsoft Word 2003Microsoft Word 2003 Microsoft InfoPath 2003Microsoft InfoPath 2003
Controles ActiveXControles ActiveXFirma de componentesFirma de componentes
Garantiza al usuario que lo usa:Garantiza al usuario que lo usa: El origen de los componentesEl origen de los componentes La integridad de los datosLa integridad de los datos
Permite a las organizciones establecer Permite a las organizciones establecer políticas de ejecuciónpolíticas de ejecución A cada zona una acción con los A cada zona una acción con los
componentescomponentes
Microsoft Word 2003Microsoft Word 2003Firma de .DOCFirma de .DOC
Office incorpora firma digital de Office incorpora firma digital de documentos desde la versión XPdocumentos desde la versión XP
La firma se incluye como parte del La firma se incluye como parte del documentodocumento El documento no cambia de formatoEl documento no cambia de formato
Se puede utilizar Visual Basic for Se puede utilizar Visual Basic for Applications (VBA) para acceder a las Applications (VBA) para acceder a las firmas desde programafirmas desde programa
InfoPath 2003InfoPath 2003Firma digital en XML (XMLDsig)Firma digital en XML (XMLDsig)
Enlaza con el apartado anteriorEnlaza con el apartado anterior Incluir la firma dentro del contenidoIncluir la firma dentro del contenido Independiente de la aplicación concretaIndependiente de la aplicación concreta
Soporte de documentos XMLSoporte de documentos XML Firma los datos dentro de un formularioFirma los datos dentro de un formulario
DemostraciónDemostración Firmando XML con Firmando XML con
InfoPath 2003InfoPath 2003
Nota de gastosNota de gastos
ResumenResumen
Firmas DigitalesFirmas DigitalesConceptosConceptos
Diferentes Tipos de Firmas Electrónicas
Distintas Utilidades para las Necesidades de Negocio
Distintas Características e Implicaciones Legales
Servicios CriptográficosServicios CriptográficosPlataforma WindowsPlataforma Windows
Proporcionados por los CSPs
CAPICOM facilita el uso a los desarrolladores
CrytoAPI proporciona una Capa de Abstracción
Aplicación de Firmas DigitalesAplicación de Firmas DigitalesEscenariosEscenarios
CAPICOM en aplicaciones propias
InfoPath 2003 para Firmar Documentos XML
Usar aplicaciones preparadas para Firma Digital
PreguntasPreguntas
Para obtener más informaciónPara obtener más información
Sitio de seguridad de MicrosoftSitio de seguridad de Microsoft http://www.microsoft.com/securityhttp://www.microsoft.com/security http://http://www.microsoft.comwww.microsoft.com//spainspain/seguridad//seguridad/
Sitio de seguridad de TechNet Sitio de seguridad de TechNet (profesionales de IT)(profesionales de IT) http://www.microsoft.com/technet/security/http://www.microsoft.com/technet/security/ http://http://www.microsoft.comwww.microsoft.com//spainspain//technettechnet
/seguridad//seguridad/ Sitio de seguridad de MSDN Sitio de seguridad de MSDN
(desarrolladores)(desarrolladores) http://msdn.microsoft.com/securityhttp://msdn.microsoft.com/security
BarcelonaBarcelona
4 Mayo 20044 Mayo 2004