Introducción | La seguridad... | Detección... | Comercio... | Mecanismos...
Hechos... | Caso práctico | Bibliografía
Para asegurar las transacciones de comercio electrónico es necesario que se cumplan los requerimientos básicos planteados al comienzo de este aparatado sobre seguridad: Privacidad. Integridad. Autenticidad. No repudiación.
Para cumplir con estos requerimientos se han desarrollado mecanismos o combinaciones de mecanismos que permiten asegurar las transacciones. Estos mecanismos se describen a continuación:
Encriptación
Garantiza que la información no es inteligible para individuos, entidades o procesos no autorizados (privacidad). La encriptación es la mutación de la información a una forma solo entendible con una clave de desencriptación. Una clave o llave es un número muy grande, en forma de una cadena de unos y ceros.
Existen dos tipos de encriptación, la desencriptación de “llave privada” o “llave simétrica” y la encriptación de “llave pública” o “llaves asimétricas”.
Encriptación de llave privada
La encriptación de llave privada o llave simétrica utiliza una sola llave compartida por el emisor y el receptor que sirve para los procesos de encriptación y desencriptación. Uno de los algoritmos de encriptación de llave privada más conocido es el DES (Data Encription Estándar).
Aunque este proceso de encriptación es muy útil, tiene limitaciones. Debido a que este proceso utiliza la misma llave para ambos procesos, si las partes involucradas en la transmisión de datos seguros no han tenido contacto previo es un problema acordar la clave. Además, las claves deben ser transmitidas a través de un medio seguro y guardadas cuidadosamente, ya que si alguien no autorizado obtiene la clave secreta, esa persona podría descifrar todas las comunicaciones encriptadas con esa llave.
El problema de la distribución y almacenamiento seguro de las claves se agrava cuando crece el número de personas con las que es necesario comunicarse, ya que el número de llaves crece con el cuadrado del número de personas con el que se debe mantener una comunicación segura.
Encriptación de llave pública
Utiliza dos llaves diferentes: una para el proceso de encriptación y otra para el de desencriptación. Estas llaves están matemáticamente relacionadas de manera que la información encriptada con una de ellas solo puede ser desencriptada con la otra. Estas llaves tienen la propiedad de que a partir del conocimiento de una de ellas no puede determinarse la otra. El algoritmo de encriptación de llave pública más conocido es el RSA (por las iniciales de sus inventores Rivest, Shamir y Adleman).
En la encripción de llave pública una llave (la pública) se da a conocer a todas las personas con las que se necesite mantener comunicaciones seguras, la llave privada se mantiene secreta.
Si se desea enviar mensajes confidenciales a una persona, se utiliza la llave pública de esa persona para encriptar el mensaje. Así el mensaje solo podrá ser decriptado con la llave privada que está en posesión del destinatario de la comunicación garantizando de esta manera la privacidad.
Firmas digitales
Una firma digital es un mecanismo criptográfico que realiza una función similar a la de las firmas escritas. Se utiliza para verificar la identidad del emisor del mensaje y de que el contenido del mensaje no ha sido alterado.
Para firmar digitalmente un mensaje primero se calcula un “hash”o “digest” del mensaje. El hash es un método por el cual un mensaje de una longitud arbitraria se reduce a un resumen de longitud fija que es único para ese mensaje.
El resultado del hash se encripta con la llave privada del emisor y el resultado es la firma digital que se envía junto con el mensaje.
Para verificar la firma digital, el receptor puede calcular el hash del mensaje, luego decripta la firma digital del mensaje utilizando la llave pública del emisor. Si la decripción tiene éxito, entonces se puede autenticar al emisor del mensaje. Si la comparación del hash realizado al mensaje coincide con el resultado de la decripción de la firma, entonces se puede asegurar que el mensaje no fue alterado.
Certificados digitales X.509
X.509 define el esquema para proveer servicios de autenticación a los usuarios de servicios de directorios X.500, el cual define una serie de recomendaciones para servicios de directorio. El directorio sirve como un repositorio de llaves públicas (certifican llaves públicas). Un certificado digital es un archivo que identifica inequívocamente a un individuo o un website y permite establecer comunicaciones seguras y confidenciales. Asocia el nombre de una entidad que participa en una transacción segura con la llave pública usada para firmar la comunicación con esa entidad en un sistema criptográfico.
Generalmente los certificados están “firmados” por una Autoridad Certificadora (CA). Los certificados digítales se presentan en tres versiones diferentes, pero la versión 3 es la que se encuentra con más frecuencia en los sistemas hoy en día. Los campos que contiene un certificado digital son los siguientes:
- Versión
- Número serial
- Identificador del algoritmo de firma
- Nombre del emisor
- Periodo de validez
- Nombre del usuario
- Información de la llave pública del usuario
- Identificador único del emisor (versión 2 y 3)
- Identificador único del usuario (versión 2 y 3)
- Extensiones (versión 3)
- Firma digital de los campos anteriores
Los certificados tienen las siguientes características:
- Cualquier usuario con acceso a la llave pública de la Autoridad Certificadora puede recuperar la llave pública del usuario que fue certificado.
- Nadie más que la Autoridad Certificadora puede modificar el certificado sin ser detectado.
SSL (Secure Sockets Layer) y TLS (Transport Layer Security)
Características del SSL
El SSL es un protocolo seguro de Internet inventado por la empresa Netscape. No es exclusivo del comercio electrónico sino que sirve para cualquier comunicación vía Internet y, por lo tanto, también para transacciones económicas. Está implementado por defecto en todos los navegadores de Netscape para Webs, o sea, para el protocolo HTTP, aunque se espera que pronto salgan versiones para Mail, FTP, etc... Sustituye los sockets del sistema operativo. Los sockets son el interficie entre las aplicaciones y el protocolo TCP/IP del sistema operativo. Así puede servir para cualquier aplicación que utilice TCP/IP: Mail, Webs, FTP, News, etc... Aunque las aplicaciones de los programas actuales sólo permiten HTTP (Webs).
El SSL puede realizar las funciones:
- Fragmentación. En el emisor se fragmentan los bloques mayores que 214 octetos y en el receptor se vuelven a reensamblar.
- Compresión. Se puede aplicar un algoritmo de compresión a los mensajes.
- Autenticación. Permite autenticar el cliente y el servidor mediante certificados. Este proceso se realiza durante la fase de Handshake. Durante la transmisión los mensajes autentican al emisor mediante un resumen con clave, llamado MAC, en cada mensaje.
- Integridad. En todos los mensajes se protege la integridad mediante el MAC.
- Confidencialidad. Todos los mensajes se envían encriptados.
Se utilizan certificados X.509v3 para la transmisión de las claves públicas.
Protocolo TLS
El TLS es un protocolo estandarizado por el IETF, por lo tanto, es un estándar de facto de Internet. Su origen es el SSL versión 3 pero se aparta de éste para mejorar algunas cosas y, sobre todo, porque SSL es propiedad de una empresa privada: Netscape. Así el TLS puede ser el estándar mundial para todo el software de cliente y servidor. El TLS permite compatibilidad con SSLv3, el cliente y el servidor definen el protocolo utilizado durante el Handshake.
Las diferencias más importantes son sobre los siguientes aspectos:
- Alerta de certificado. En respuesta al mensaje CertificateRequest los clientes que no tienen certificado sólo contestan con un mensaje de alerta si son SSL.
- Claves de sesión. Se calculan de forma diferente.
- Algoritmos de intercambio de claves. El TLS no soporta el algoritmo Fortezza Kea del SSL, un algoritmo secreto y de propiedad privada muy similar al Diffie Hellman.
- Campos incluidos en el MAC. En TLS se utilizan dos campos más del mensaje que en SSL para el cálculo del MAC. Es más seguro.
Firewalls
Un firewall se define como un software o hardware que permite que solo lo usuarios externos que cumplen con ciertas características accedan a una red privada. Generalmente los firewalls permiten que los usuarios internos tengan acceso total a los servicios externos mientras que restringe el acceso del exterior basándose en una serie de reglas.
En la práctica, los firewalls son una combinación de routers de monitoreo de paquetes y una computadora que ejecuta una serie de proxies. Los proxies son programas simples que almacenan y envían los paquetes basándose en la evaluación de una serie de reglas.
Para que un firewall cumpla con su función de proteger a la organización, las reglas en las que se basa su operación deben estar configuradas. La incapacidad de definir una política de seguridad que no sea ambigua y los errores en la configuración del firewall para que apoye esa política son las causas de que los firewalls fallen en su función de proteger las redes de los atacantes.
Los firewalls se colocan entre la red corporativa (red segura) y la red externa (Internet). Aunque los firewalls se colocan como barrera entre las redes interna y externa, también pueden ser utilizados para subdividir las redes internas de una organización.
SET (Secure Electronic Transaction)
El SET es un protocolo inventado exclusivamente para realizar comercio electrónico con tarjetas de crédito. Fue impulsado por las empresas de tarjetas de crédito Visa y MasterCard, las más extendidas e importantes del mundo. Han colaborado en su desarrollo las empresas más significativas del mundo de la telemática: GTE, IBM, Microsoft, SAIC, Terisa, Verisign, etc... La participación de estas empresas tan importantes y especialmente el impulso de las marcas de tarjetas Visa y MasterCard hacen que este protocolo tenga muchas posibilidades de convertirse en el futuro sistema de comercio electrónico seguro.
Es un sistema abierto y multiplataforma, donde se especifican protocolos, formatos de mensaje, certificados, etc... sin limitación de lenguaje de programación, sistema operativo o máquina. El formato de mensajes está basado en el estándar definido por la empresa RSA Data Security Inc. PKCS-7, como los protocolos S-MIME y SSL.
La especificación del SET v1.0 está contenida en 3 volúmenes publicados en mayo de 1997 y es de libre distribución en la web www.setco.org. El organismo SETco homologa los módulos de programación y los certificados desarrollados por empresas privadas, después de pasar unos tests técnicos y pagar unos derechos. El software homologado por SETco tiene derecho a llevar el logotipo de SET.
Realizado por: Jorge Eliecer Jaimes Jimenez - Junio 2008 |