Copy Link
Add to Bookmark
Report
SET 019 0x11
-[ 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.