Funciones de autenticación: Firmas digitales y certificados
¿Que es autenticación?
Autenticación es el proceso que debe seguir un usuario para tener acceso a los recursos de un sistema o de una red de computadores. Este proceso implica identificación (decirle al sistema quién es) y autenticación (demostrar que el usuario es quien dice ser). La autenticación por sí sola no verifica derechos de acceso del usuario; estos se confirman en el proceso de autorización.
En general, la seguridad de las redes de datos requiere para conceder acceso a los servicios de la red, tres procesos: (1) autenticación, (2) autorización y (3) registro.
-
Autenticación: el proceso por el cual el usuario se identifica en forma inequívoca; es decir, sin duda o equivocación de que es quien dice ser.
-
Autorización: el proceso por el cual la red de datos autoriza al usuario identificado a acceder a determinados recursos de la misma.
-
Registro: el proceso mediante el cual la red registra todos y cada uno de los accesos a los recursos que realiza el usuario, autorizado o no.
Estos tres procesos se conocen por las siglas en inglés como AAA, o Authentication, Authorization, y Accounting.
Tipos de autenticación
Se puede efectuar autenticación usando uno o varios de los siguientes métodos:
-
Autenticación por conocimientos: basada en información que sólo conoce el usuario.
-
Autenticación por pertenencia: basada en algo que posee el usuario.
-
Autenticación por características: basada en alguna característica física del usuario.
De lo anterior se deduce que la autenticación involucra aspectos físicos y lógicos relacionados con el acceso, la utilización y la modificación de los recursos de la red o sistema. Autenticación física La autenticación física se basa en algún objeto físico que posee el usuario, o en alguna característica física del usuario; en tal caso utiliza algún tipo de mecanismo biométrico. La información capturada en el proceso de autenticación, pasa al proceso de autorización realizado por personas, dispositivos electrónicos de seguridad o sistemas de seguridad informática. Autenticación lógica La autenticación lógica puede utilizarse para identificar personas o sistemas y se basa en información que sólo conoce el usuario. La autenticación y autorización las realiza software especializado.
Si se combinan dos o más métodos de autenticación, esta se denomina autenticación múltiple (multi-factor authentication) y es una autenticación más segura. Por ejemplo, autenticación doble si el usuario debe presentar dos tipos de identificación, una física (una tarjeta) y la otra algo que el usuario ha memorizado como una clave de seguridad o un número de identificación personal (PIN—Personal Identification Number). Este es el caso de una tarjeta bancaria que se utiliza con un cajero automático (ATM—Automatic Teller Machine). Más aún, algunos sistemas utilizan autenticación triple (con tres factores): un objeto físico, una contraseña y algún dato biométrico como la huella digital.
¿Que es una firma digital?
Una firma digital es un sello de autenticación electrónico cifrado en información digital, como mensajes de correo, macros o documentos electrónicos. La firma constata que la información proviene del firmante y no se ha modificado.
El mecanismo de encriptado asimétrico ofrece otra facilidad en seguridad: hace posible un método para utilizar firmas digitales y certificados para proporcionar autenticidad a los mensajes transmitidos.
Mediante el cifrado de un mensaje, podemos asegurar la privacidad de los datos enviados. Pero, ¿sabe realmente el receptor de quién proviene tal mensaje? El origen de un mensaje es tan importante como su contenido.
Los sistemas de firma digital pueden utilizarse para verificar la fuente de un mensaje y la integridad de los datos del mismo. Estos son implementados mediante claves públicas y privadas: el emisor de un mensaje utiliza la clave privada para firmarlo y esa firma es única ya que solo él dispone de la clave privada; el receptor puede verificar dicha firma utilizando la clave pública correspondiente emitida por el emisor del mensaje. Ésta es una propiedad del sistema de clave pública llamada “de no repudio” ya que cada usuario tiene la responsabilidad de proteger su clave privada.
En principio, los sistemas de firmas digitales no proporcionan encriptado de datos, pero un sistema de cifrado asimétrico puede ser usado para ambos propósitos, como es el caso de RSA.
Para firmar digitalmente un mensaje utilizando RSA, básicamente, el emisor encripta el mensaje con su clave privada para firmarlo; el mensaje es verificado y recuperado por el receptor desencriptándolo con la clave pública correspondiente emitida por aquel.
Otro sistema, uno de los mas importantes, es el estándar de Firma Digital (Digital Signature Standard - DSS) [FIPS 186-2]. Éste solo provee autenticación y no encriptado, esto hace que aquellos productos que usen este estándar sea exportables.
DSS utiliza un algoritmo de clave pública para realizar la firma de los datos. Puede ser implementado con DSA (Digital Signature Algorithm), RSA (véase Criptografía Asimétrica) o ECDSA (Elliptic Curve Digital Signature Algorithm).
Utiliza una función hash para obtener una versión condensada de los datos, que será la entrada al algoritmo para generar la firma digital. La firma digital es enviada, junto con el mensaje al destinatario (utilizando algún sistema de encriptado). Este último verifica la firma usando la clave pública del emisor para desencriptar el resumen firmado y la misma función hash utilizada para generar el mensaje para comprobar que dicho resumen corresponde al mensaje recibido. La función hash utilizada por DSS es SHS (también conocido como Algoritmo de Hash estándar - SHA). De esta forma, la firma digital lograda con DSS permite autenticar tanto la integridad de los datos firmados como la identidad de la entidad que emitió el mensaje.
Certificados
¿Que sucede si alguien mal intencionado publica sus claves diciendo ser alguien más? Es necesario proveer algún mecanismo de autenticación para las claves publicas que son distribuidas. Esto se logra mediante el uso de certificados.
Un certificado es un documento digital que acredita que la clave pública que contiene es de quien dice ser. Para avalar tal afirmación, este documento es respaldado por una Autoridad de Certificación (Certification Authority - CA) mediante su firma digital. Las entidades de certificación son organismos seguros e independientes que emiten certificados de autenticidad de claves públicas (es decir nos ahorran el trabajo -casi imposible de otra forma- de comprobar con quién nos estamos comunicando). El objetivo de los certificados digitales es permitir que las credenciales sean denegadas y poder evitar problemas de seguridad.
Básicamente, un certificado consta de la clave publica que certifica, el nombre del propietario, un período de validez, el nombre de la Autoridad de Certificación que lo emite, un número de serie, entre otros datos adicionales. Este certificado viene firmado digitalmente por el emisor, con su clave privada (adjunto como dato adicional a los ya nombrados). Entonces si poseemos la correspondiente clave pública (también en forma de certificado) podremos comprobarlo. Los navegadores traen incorporadas las claves públicas, en forma de Certificados, de las entidades de certificación mas importantes (Thawte, VeriSign, otras) de manera que si establecemos una conexión con alguna entidad que ha certificado su clave pública con alguna de estas CA la comunicación se realizará de forma segura y transparente. En el caso de que la entidad que certifique la clave pública recibida no se encuentre entre estas entidades confiables, será decisión del usuario confiar o no en tal entidad para poder o no establecer la conexión.
Para establecer una conexión segura, el emisor contacta a la otra parte quien le envía su clave pública junto con el certificado digital que acredita que la clave es de quien dice ser.
Existen varias entidades de certificación que agregan a la clave pública diferentes niveles de autenticidad. Por ejemplo un proyecto universitario que involucre comunicaciones seguras en Internet puede estar avalado por un certificado emitido por la Universidad que la contiene, pero quizás alguien no confíe en esa entidad para establecer una comunicación, por lo que la clave pública de la Universidad (que se encuentra en el certificado que emitió al proyecto) podría estar avalada por otra entidad mas confiable, por ejemplo, VeriSign. Al certificado emitido por esta ultima se le llama certificado raíz; de esta forma se obtiene una cadena de certificados que avalan la autenticidad del otro de mas baja jerarquía.
También es posible certificar una clave pública con un certificado emitido por la misma entidad a la que pertenece dicha clave; este el caso de la CA (quién más certificaría tal clave) o de cualquiera que no desee pagar la certificación de una CA y solo posea el certificado emitido por él mismo (con el riesgo de no ser aceptado en una comunicación con terceros).
Los tres métodos de certificación de uso más común actualmente están basados en Certificados X.509/PKIX y Autoridades de Certificación, PGP y SKIP [Gerck]. Cada uno de estos presenta un paradigma de certificación diferente.


Comentarios
Publicar un comentario