-[ 0x11 ]-------------------------------------------------------------------- -[ PROTOCOLO S.E.T. ]-------------------------------------------------------- -[ by Hendrix ]-------------------------------------------------------SET-19- Protocolo SET ************* por Hendrix Vaya, un procolo que se llama como nosotros, casualidades de la vida. Donde mejor que aprender el protocolo SET que la propia SET, pues aqui teneis en primicia una descripcion del protocolo y como hicimos con PGP veremos que opciones hay para crackearlo. Introduccion: SET (Secure Electronic Transaccion) es un protocolo creado por Visa y Mastercard en Marzo de 1997 pero que actualmente se encuentra en fase de pruebas salvo en algunos paises como Dinamarca o Suecia. SET cuenta con la colaboracion de otras importantes empresas como IBM, HP-Verifone, Microsoft, Netcape, GTE, RSA Data Security, Verisign, SAIC y Terisa. Con todos estos padrinos es evidente que SET se convertira en el estandar unico para pagos con tarjeta de credito por Internet, permitiendo una total seguidad en los pagos por la red. La web oficial de set es www.setco.org y en ella se pueden encontrar los documentos oficiales de SET v1.0 (unas 1000 paginas). SET es un estandar abierto por lo que cualquiera puede realizar implementaciones que cumplan con el estandar. Entorno: En SET se definen una serie de agentes que participaran en la transaccion. Estos son: Cardholder(cliente): Cualquiera que posea una tarjeta de credito y desee comprar por Internet. Merchant(Vendedor): El propietario de una tienda virtual Gateway Payment(Pasarela de Pago): Servidor encargado de interconectar las redes bancarias con Internet, o lo que es lo mismo, hacer la traduciion de SET a EFT (transferencia electronica de fondos) Adquirer(Banco): Banco en el cual el Merchant tiene una cuenta bancaria Issuer(emisor): entidad emisora de la tarjeta de credito del cliente Autoridad Certificadora (AC): Entidad encarga de emitir certificados digitales Esquema: ------------ ---------- ---------- |Cardholder | <-> |Merchant| <-> |Gateway | -----|------- ----|----- -|-------- | | | | | | | | ---------------------------------- --------------------- | Internet | Redes Bancarias ---------------------------------- (Adquier, Issuer) (que grafico mas feo ;> ) CERTIFICACION: En SET tanto el cliente como el Vendedor y el Gateway deben conseguir un certificado digital SET antes de realizar cualquier transaccion. Con esto se conseguira autentificar a todas las partes sin ningun tipo de posibilidad de fraude ya que los certificados son infalsificables. Estos certificados cumplen con el estandar X.509v3 pero no son compatibles con SSL ya que incluyen una serie de extensiones diferentes. Jerarquia de Certificacion: Los certificados estan firmados por una CA debidamente acreditada, que a su vez esta certificada por otra CA de rango superior llamada Brand CA que emitira certificados para las diferentes CA de cada pais. Hay una Brand CA por cada entidad emisora de tarjetas (Visa, Mastercard, etc..). A su vez estas CAs estan certificadas por una Autoridad Raiz (Root CA). En Espa¤a la unica CA certificada para SET es la empresa ACE que ha sido creada por Telefonica, Sistemas 4B, Visa Espa¤a y CECA (conf. espa¤ola de cajas de ahorro), asi que todo queda en casa. Seguridad: SET utiliza los algoritmos RSA, DES y SHA-1 para satisfacer los requisitos de seguridad siguientes. Confidencialidad: Nadie ajeno a la transaccion puede tener acceso a los datos. Esto se consigue con la utilizacion de cifrado asimetrico RSA y encriptacion DES. Integridad: Todos los mensajes se firman digitalmente con SHA1 y RSA por lo que no pueden ser alterados de ninguna manera. Autentificacion: Todos los participantes en la transaccion deben poseer un certificado digital, lo que impide la usurpacion de personalidad por parte de otras personas. No Repudio: Al estar todos los mensajes firmados, ningun participante en la transaccion puede negar haber participado en ella. FORMATO: En SET no se especifica el medio de transamision de los mensajes pero se da por supuesto que el medio de transmision utilizado la Web (TCP/IP). SET solo especifica el formato de los mensajes. Todos los mensajes estan formatedos siguiendo una estructura llamada Message Wrapper(MW). El MW esta compuesto por una cabecera y uno de los posibles mensajes SET, ademas pueden existir extensiones que aporten informacion no confidencial. Todos los datos se codifican segun el estandar ASN.1/DER evitando asi cualquier tipo de interpretacion que pudiese llevar a equivocos. Cabecera del MW: Esta compuesta por una serie de datos no cifrados que sirven para identificar los mensajes rapidamente. Los datos de la cabecera son: Version y Revision de SET (1.0), Ident del software, lenguaje y varios identificadores de 20 bytes: RRPID: Ident del par Req/Res XID: ident. de la transaccion LID-M: Ident del Merchant LID-C: Ident del Cardholder Cuerpo del MW: El cuerpo del mesaje esta compuesto por uno de los mensajes SET posibles, los mas importantes estos son, PinitReq, PinitRes, PReq, PRes, AuthReq, AuthRes, CapReq y CapRes. El protocolo SET implementa muchas opciones por lo que hay una gran cantidad de mensajes posibles, pero en una transaccion tipica estos son los mensajes que se utililizan. SET se basa en pares de mensajes Peticion/Respuesta (Request/Response) CRIPTOGRAFIA: Los componentes mas destacados de la criptografia utilizada en SET son el Sobre Digital y la Firma Digital. El formato de cifrado utilizado es el PKCS#7, que especifica el orden de los datos tanto para la firma como para el cifrado. Los algoritmos utilizados en SET son RSA, DES y SHA-1. En las proximas versiones de SET se contemplara la posibilidad de seleccionar entre varios algoritmos, haciendo a SET independiente de estos. Sobre Digital: Para aprovechar las ventajas de la criptografia de clave publica y la velocidad de la criptografia simetrica se ha optado por unir las dos siguiendo el metodo del sobre digital. El mensaje se cifra con DES usando una clave aleatoria llamada clave de sesion. Esta clave se cifra con la clave publica RSA de encriptacion. Todo este proceso se formatea segun el PKCS#7 EnvelopedData. Para encriptar con RSA, el mensaje debe tener una longitud de 1024 bits, pero la clave DES solo tiene 64 bits. Para completar los 1024 bits se ha optado por la utilizacion del OAEP (Optimal Asymmetric Encrypted Padding) que permite distribuir la informacion de los 64 bits de la clave publica entre los 1024 bits del mensaje. Tambien permite a¤adir otros datos al mensaje aparte de la clave. SET aprovecha esto para cifrar el PAN (Numero de Tarjeta de Credito) con RSA, aumentando la seguridad ya que RSA es mas robusto que DES. /---------/ Mensaje Original --->/ DES /---> Mensaje Cifrado /---------/ | | | Clave de Sesion (64 bits) | (+)--> Sobre Digital | /---------/ | OAEP (1024bits) --->/ RSA /----> Clave Cifrada - Clave DES /---------/ - PAN | Clave PUBLICA (1024 bits) Firma Digital: Se hace un hash del mensaje con el algoritmo SHA-1 y se firma con RSA ese hash. Se empaqueta el resultado en el formato PKCS#7 SignedData a~adiendose los Certificados digitales necesarios para comprobar la firma. /---------/ Mensaje Original --->/ SHA /---> Hash (160 bits) /---------/ /---------/ Hash (160 bits)--->/ RSA /----> Hash Firmado /---------/ /---------/ | Clave SECRETA (1024 bits) PROCESO DE COMPRA: Navegando por la web, el cliente entra en una Tienda Virtual y selecciona los articulos que desea comprar. Asi obtiene la Descripcion del Producto (OD) y el precio (PurchAmt). Al obtener estos datos se activa el software de cliente llamado Billetera Electronica y compienza la transaccion SET. 1.PinitReq: El cliente manda el mensaje PinitReq, este mensaje no se encripta y solo sirve para decidir el tipo de tarjeta que se va a utilizar (Visa, Mastercard, etc) y asi conseguir la clave publica del Gateway. 2.PinitRes: El Merchant elige el Gateway que va a utlizarse en funcion de la tarjeta que el cliente quiere utilizar. El Merchant envia el PinitRes firmado digitalmente. 3.PReq: Es el mensaje mas complicado de todo el protocolo. Aqui el cliente crea un mensaje con sus datos financieros (PAN) y los encripta en un Sobre Digital con la clave publica del Gateway. A¤ade informacion sobre la compra y lo firma todo digitalmente. 4.AuthRes: El merchant recibe el PReq y extrae todos los datos que necesita. No puede extraer los datos financieros del cliente porque estan cifrados con la clave del gateway. El Merchant crea el mensaje AuthReq encriptandolo con la clave del gateway y firmandolo digitalmente. Posteriormente introduce el mensaje cifrado con los datos financieros del cliente en el AuthReq. Finalmente envia la peticion de autorizacion (AuthReq) al Gateway. 5.AuthReq: El Gateway recibe el AuthReq y lo desencripta. Con esa informacion se pone en contacto con el banco emisor y el banco receptor a traves de las redes bancaria y autoriza o no la transaccion. Finalmente crea un mensaje de contestacion, AuthRes, que firma y encripta ocn la clave del merchant. Si el mensaje AuthReq llevaba activado el Flag CaptureNow se realiza la transaccion en ese momento sino, se le envia al Merchant un PANToken (Un mensaje que sirve de testigo para realizar la transaccion mas tarde). 6.PRes: El Merchant recibe el AuthRes y envia el PRes al cliente explicando si la transacccion es valida o no. El mensaje se firma digitalmente. 7.CapRes: Si el Merchant ha recibido un PANToken, significa que la transaccion ha sido autorizada pero no se ha efectuado inmediatamente. Al finalizar el dia el Merchant envia todos los PANTokens al Gateway y este realiza todas las transacciones a la vez 8.CapReq: El Gateway responde al Merchant sobre las capturas realizadas. COMENTARIOS: En SET se ha optado por optimizar el codigo con el fin de que el cifrado sea lo mas rapido posible. Esto se hace a costa de que el protocolo sea muy complicado y engorroso, sobre todo teniendo en cuenta las multiples opciones que se incorporan. SET 2.0: SET 1.0 tiene una serie de limitaciones especialmente en lo referente a la certificacion. El proceso de certificacion es demasiado complciado para el publico en general, no permite la movilidad (no puedes comprar desde otros ordenadores donde no este la clave privada) y el almacenamiento de la clave privada en el ordenador supone un punto debil del sistemna. Con SET 2.0 se incorporara el uso de las Tarjetas Inteligentes, tarjetas de credito que incoporan un chip con capacidad de almacenar y procesar datos. De este modo se almacenarian las claves secretas en la Tarjeta Inteligente aumentando la seguridad y permitiendo la movilidad a otros ordenadores. El problema es que todos los ordenadores deberan incorporar un lector de tarjetas inteligentes. ************************************************************************ COMO PUEDES SALTARTE LA SEGURIDAD DE SET: ************************************************************************* Joder, como sois, todavia no ha salido y ya estais pensando en crackearlo. En fin, veamos que opciones tenemos. La seguridad de SET es muy fuerte por lo que a priori las opciones son pocas. 1. Desencriptar los mensajes SET utililiza los algoritmos RSA y SHA-1 asi como los formatos OAEP y PKCS#7 todos estos sistemas son indescifrables por el momento. En cambio DES puede ser desencriptado con el DESCracker. De todos modos los datos encriptados con DES tampoco son demasiado importantes. Con SET 2.0 el protocolo sera independiente de los algoritmos por lo que si apareciese una debilidad en alguno se cambiaria de algoritmos. 2. WEB Spoofing Mediante esta tecnica podriamos colarnos entre el cliente y el vendedor e interceptar todos los mensajes, es una aplicacion de la tecnica Man-in-the- middle. Esta tecnica puede saltarse sistemas de seguridad como SSL y PGP pero no funciona con SET ya que existe una jerarquia de certificacion digital que impide la usurpacion de personalidad. 3. Robo de la clave privada Al igual que con PGP podemos entrar en un ordenador ajeno y robar el fichero que guarda las claves privadas del cliente. En ese caso tendriamos que encontrar la frase de paso para desencriptar el fichero. Aunque se trata de una opcion complicada es el principal punto debil de SET 1.0, con la aparicion de las tarjetas inteligentes el robo de la clave equivaldria al robo fisico de la tarjeta de credito 4. Compra con numeros de tarjetas de credito(PAN) falsos o robados Esta tecnica que puede usarse en compras con SSL no puede usarse con SET ya que ademas del PAN es necesario el certificado digital para firmar. SET incluye una opcion para realizar pagos sin que se sea necesario un certificado de cliente. Es de suponer que en las implementaciones comerciales tengan esta opcion este desactivada salvo en casos muy justificados. Tambien es posible que el administrador no lo tenga en cuenta y se deje abierta esa puerta. 5. Bugs en la implentacion del sofware y ataques DoS Es mas que posible que exitan bugs en la implementacion del sofware de Merchant o de Gateway pero seria muy extra~o que puediesen ser aprovechados ya que el presunto atacante tendria que mandar mensajes firmados digitalmente y eso delataria su identidad. Lo que no seria extra~o es que pudiesen darse bugs que permitiesen ataques de Denegacion de Servicio (DoS) 6. Hackeos a la Pasarela de Pago El Gateway esta conectado a Internet por lo que es susceptible a hackeos tipicos como cualquier otro server. Acceder a la Pasarela de Pago daria al atacante privilegios totales sobre el sistema de pago. Por ello es de suponer que el Gateway estara reforzado a prueba de bombas. Y no se me ocurre nada mas. Espero que os haya parecido interesante, aunque mas que interesante es desalentador para todos aquellos aficionados al carding que hasta ahora compraban a sus anchas con numeros falsos o robados.