Search for in Google by Dino

Google Custom Search

jueves, 21 de diciembre de 2006

Protocolos de seguridad

Un protocolo de seguridad es la parte visible de una aplicación, es el conjunto de programas y actividades programadas que cumplen con un objetivo especifico y que usan esquemas de seguridad criptográfica.
El ejemplo mas común es SSL (Secure Sockets Layer) (que vemos integrado en el Browser de Netscape y hace su aparición cuando el candado de la barra de herramientas se cierra y también si la dirección de internet cambia de http a https, otro ejemplo es PGP que es un protocolo libre ampliamente usado de intercambio de correo electrónico seguro, uno mas es el conocido y muy publicitado SET que es un protocolo que permite dar seguridad en las transacciones por internet usando tarjeta de crédito, IPsec que proporciona seguridad en la conexión de internet a un nivel mas bajo.
Estos y cualquier protocolo de seguridad procura resolver algunos de los problemas de la seguridad como la integridad, la confidencialidad, la autenticación y el no rechazo, mediante sus diferentes características
Las características de los protocolos se derivan de las múltiples posibilidades con que se puede romper un sistema, es decir, robar información, cambiar información, leer información no autorizada, y todo lo que se considere no autorizado por los usuarios de una comunicación por red.

Enseguida vemos un escenario donde puede ocurrir algo de esto:


Por ejemplo sobre la seguridad por Internet se deben de considerar las siguientes tres partes: seguridad en el browser (Netscape o Explorer), la seguridad en el Web server (el servidor al cual nos conectamos) y la seguridad de la conexión.



Un ejemplo de protocolo es SET, objetivo efectuar transacciones seguras con tarjeta de crédito, usa certificados digitales, criptografia de clave pública y criptografía clave privada.





SSL Es el protocolo de comunicación segura mas conocido y usado actualmente, SSL [81][82] actúa en la capa de comunicación y es como un túnel que protege a toda la información enviada y recibida.


Con SSL se pueden usar diferentes algoritmos para las diferentes aplicaciones, por ejemplo usa DES, TDES, RC2, RC4, MD5, SHA-1, DH y RSA, cuando una comunicación esta bajo SSL la información que es cifrada es:

El URL del documento requerido
El contenido del documento requerido
El contenido de cualquier forma requerida
Los “cookies” enviados del browser al server
Los “cookies” enviados del server al browser
El contenido de las cabeceras de los http

El procedimiento que se lleva acabo para establecer una comunicación segura con SSL es el siguiente:


1) El cliente (browser) envía un mensaje de saludo al Server “ClientHello”
2) El server responde con un mensaje “ServerHello”
3) El server envía su certificado
4) El server solicita el certificado del cliente
5) El cliente envía su certificado: si es válido continua la comunicación si no para o sigue la comunicación sin certificado del cliente
6) El cliente envía un mensaje “ClientKeyExchange” solicitando un intercambio de claves simétricas si es el caso
7) El cliente envía un mensaje “CertificateVerify” si se ha verificado el certificado del server, en caso de que el cliente este en estado de autenticado
8) Ambos cliente y server envían un mensaje “ChangeCipherSpec” que significa el comienzo de la comunicación segura.
9) Al término de la comunicación ambos envían el mensaje “finished” con lo que termina la comunicación segura, este mensaje consiste en un intercambio del hash de toda la conversación, de manera que ambos están seguros que los mensajes fueron recibidos intactos








La versión más actual de SSL es la v3, existen otro protocolo parecido a SSL solo que es desarrollado por IETF que se denomina TLS (Transport Layer Security Protocol) y difiere en que usa un conjunto un poco mas amplio de algoritmos criptográficos. Por otra parte existe también SSL plus, un protocolo que extiende las capacidades de SSL y tiene por mayor característica que es interoperable con RSA, DSA/DH y CE (Criptografía Elíptica).















































El protocolo SSL


SET este protocolo esta especialmente diseñado para asegurar las transacciones por internet que se pagan con tarjeta de crédito. Esto es debido a que una gran cantidad de transacciones de compra por internet son efectuadas con tarjeta de crédito, por otro lado SSL deja descubierto alguna información sensible cuando se usa para lo mismo. La principal característica de SET [77][79][80][83], es que cubre estos huecos en la seguridad que deja SSL.

Por ejemplo con SSL solo protege el número de tarjeta cuando se envía del cliente al comerciante, sin embargo no hace nada para la validación del número de tarjeta, para chequear sí el cliente esta autorizado a usar ese número de tarjeta, para ver la autorización de la transacción del banco del comerciante etc., Además que el comerciante puede fácilmente guardar el número de tarjeta del cliente. En fin todas estas debilidades son cubiertas por SET, éste permite dar seguridad tanto al cliente, al comerciante como al banco emisor de la tarjeta y al banco del comerciante.


El proceso de SET es mas o menos el siguiente:

1) El cliente inicializa la compra: consiste en que el cliente usa el browser para seleccionar los productos a comprar y llena la forma de orden correspondiente. SET comienza cuando el cliente hace clic en “pagar” y se envía un mensaje de iniciar SET.
2) El cliente usando SET envía la orden y la información de pago al comerciante: el software SET del cliente crea dos mensajes uno conteniendo la información de la orden de compra, el total de la compra y el número de orden. El segundo mensaje contiene la información de pago, es decir, el número de la tarjeta de crédito del cliente y la información del banco emisor de la tarjeta. El primer mensaje es cifrado usando un sistema simétrico y es empaquetada en un sobre digital que se cifra usando la clave pública del comerciante. El segundo mensaje también es cifrado pero usando la clave pública del banco (esto previene que el comerciante tenga acceso a los números de tarjetas de los clientes). Finalmente el cliente firma ambos mensajes.
3) El comerciante pasa la información de pago al banco: el software SET del comerciante genera un requerimiento de autorización, éste es comprimido (con un hash) y firmado por el comerciante para probar su identidad al banco del comerciante, además de ser cifrado con un sistema simétrico y guardado en un sobre digital que es cifrado con la clave pública del banco.
4) El banco verifica la validez del requerimiento: el banco descifra el sobre digital y verifica la identidad del comerciante, en el caso de aceptarla descifra la información de pago del cliente y verifica su identidad. En tal caso genera una requerimiento de autorización lo firma y envía al banco que genero la tarjeta del cliente.
5) El emisor de la tarjeta autoriza la transacción: el banco del cliente (emisor de la tarjeta) confirma la identidad del cliente, descifra la información recibida y verifica la cuenta del cliente en caso de que no haya problemas, aprueba el requerimiento de autorización, lo firma y lo regresa al banco del comerciante.
6) El banco del comerciante autoriza la transacción: una ves recibida la autorización del banco emisor, el banco del comerciante autoriza la transacción la firma y la envía al servidor del comerciante.
7) El servidor del comerciante complementa la transacción: el servidor del comerciante da a conocer que la transacción que la tarjeta fue aprobada y muestra al cliente la conformidad de pago, y procesa la orden que pide el cliente terminado la compra cuando se le son enviados los bienes que compró el cliente.
8) El comerciante captura la transacción: en la fase final de SET el comerciante envía un mensaje de “captura” a su banco, esto confirma la compra y genera el cargo a la cuenta del cliente, así como acreditar el monto a la cuenta del comerciante.
9) El generador de la tarjeta envía el aviso de crédito al cliente: el cargo de SET aparece en estado de cuenta del cliente que se le envía mensualmente.




























SET requiere un certificado digital en cada paso de autenticación y usa dos pares de claves, una para el cifrado del sobre digital y otra para la firma, (SSL solo usa un par de claves), actualmente SET usa la función hash SHA-1, DES y RSA de 1024 bits, estos parámetros fueron tomados para ser compatible con los certificados existentes, aunque el piloto de SET usó el sistema asimétrico de cifrado con curvas elípticas y se piensa que soporte también curvas elípticas en la próxima versión de SET.

No hay comentarios.: