14.05.2013 Views

Ethical Hacking utilizando BackTrack - Fedora-es

Ethical Hacking utilizando BackTrack - Fedora-es

Ethical Hacking utilizando BackTrack - Fedora-es

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

• Calcular u_1=h(m)w mod n y u_2=rw<br />

mod n,<br />

• Calcular u_1P + u_2Q=(x_0,y_0) y<br />

v=x_0 mod n.<br />

De <strong>es</strong>te modo, se puede concluir que la firma<br />

digital será válida si se cumple que v=r.<br />

Con ello hemos conseguido una d<strong>es</strong>cripción<br />

simple de los sistemas de cifrado, d<strong>es</strong>cifrado,<br />

autentificación de usuarios y firma digital característicos<br />

de toda técnica criptográfica moderna.<br />

Aplicacion<strong>es</strong> prácticas:<br />

Small Privacy Guard (SPG)<br />

Liberada en abril de 2009, la versión 0.3.1 de<br />

Small Privacy Guard se plantea como una<br />

aplicación basada en criptografía de clave<br />

pública ECC utilizable tanto para el cifrado<br />

y d<strong>es</strong>cifrado de mensaj<strong>es</strong> como para la firma<br />

digital de los mismos y posterior verificación.<br />

Es, por decirlo de alguna forma, la contrapartida<br />

en algoritmos ECDSA sobre el conoci<br />

do Pretty Privacy Guard (PGP) de P.<br />

Zimmermann, d<strong>es</strong>arrollado a partir de 1991<br />

y las version<strong>es</strong> OpenSource como OpenPGP<br />

y GnuPG.<br />

Esta aplicación se halla disponible en la<br />

URL http://spg.sourceforge.net en la forma de<br />

código fuente para su d<strong>es</strong>carga por parte del<br />

lector y a diferencia de PGP, las clav<strong>es</strong> no <strong>es</strong>tán<br />

vinculadas a direccion<strong>es</strong> de correo electrónico o<br />

nombr<strong>es</strong> de usuario.<br />

La potencia de <strong>es</strong>ta aplicación, como cualquier<br />

producto que admita criptografía de curva<br />

elíptica (ECC) se basa en el número y complejidad<br />

de curvas elípticas implementadas.<br />

En el caso objeto de <strong>es</strong>tudio, SPG posee en<br />

<strong>es</strong>ta versión 11 de <strong>es</strong>tas curvas:<br />

• secp112r1<br />

• secp112r2<br />

• secp128r1<br />

• secp128r2<br />

• secp160r1<br />

• secp160r2<br />

• secp192r1<br />

• secp224r1<br />

• secp256r1<br />

Listado 5. Firma digital del fichero m<strong>es</strong>sage.txt<br />

• secp384r1<br />

• secp521r1<br />

cuyos tamaños de clave van de 112 a 521<br />

byt<strong>es</strong>.<br />

El lector familiarizado con GPG no tendrá<br />

problema en adaptar SPG como herramienta<br />

sustituta en aplicacion<strong>es</strong> criptográficas<br />

en sistemas GNU/Linux en particular<br />

y Unix en general. Para iniciar el proc<strong>es</strong>o de<br />

generación del ejecutable, deben satisfacerse<br />

los siguient<strong>es</strong> requisitos:<br />

• Instalación de las librerías de d<strong>es</strong>arrollo<br />

OpenSSL.<br />

• Instalación de las librerías de d<strong>es</strong>arrollo<br />

gcrypt.<br />

En distribucion<strong>es</strong> GNU/Linux cuyo formato<br />

de paquet<strong>es</strong> sea RPM, mediante el comando<br />

rpm(8), podemos verificar su existencia:<br />

$ rpm -q openssl<br />

openssl-0.9.8g-9.12.fc9.i686<br />

$ rpm -q libgcrypt<br />

libgcrypt-1.4.4-1.fc9.i386<br />

y en caso contrario, proceder a su instalación<br />

ant<strong>es</strong> de proceder a la d<strong>es</strong>carga del código<br />

fuente de la aplicación. Una vez ubicado éste<br />

en nu<strong>es</strong>tro computador, proceder a d<strong>es</strong>empaquetar<br />

los ficheros:<br />

$ tar xvf spg.tar.gz && cd spg<br />

y mediante la utilidad make(1), generar el ejecutable<br />

spg:<br />

$ make all<br />

Opcionalmente, <strong>es</strong> posible verificar el correcto<br />

comportamiento de la aplicación mediante la<br />

batería de t<strong>es</strong>ts recogida en el Listado 1. Para<br />

ello, ejecutar el comando:<br />

$ make t<strong>es</strong>ts<br />

...<br />

INFO: File encrypted<br />

M<strong>es</strong>sage encrypted ok<br />

$ cat signature<br />

-----BEGIN SPG SIGNATURE-----<br />

QdpgUmdMn+5IFH+1MCVx9WcjrHT8fmKdu4LB4jn/UxmYa2if4vfSWugq7W59tv3J<br />

texOuBez6mj7AXiu58QKLcYBQZ9FQrfrkVZ4tESoQ0NujxQYkXKeB<strong>es</strong>yb2m9Ydir<br />

IdcmNXyWFQ4RRZ4VeuAc7siaJDUT/fJT10+aZkLOmpx133Ze<br />

-----END SPG SIGNATURE-----<br />

www.lpmagazine.org<br />

seguridad y ethical hacking<br />

Criptografía de Curva Elíptica<br />

######### secp521r1 decrypting data<br />

#################<br />

INFO: File decrypted succ<strong>es</strong>sufuly<br />

M<strong>es</strong>sage decrypted ok<br />

INFO: File decrypted succ<strong>es</strong>sufuly<br />

M<strong>es</strong>sage decrypted ok<br />

ALL TESTS PASSED<br />

y comprobar que todos los t<strong>es</strong>t propu<strong>es</strong>tos<br />

son realizados de forma satisfactoria. Una vez<br />

concluido <strong>es</strong>te paso, <strong>es</strong> posible empezar a dar<br />

los primeros pasos en criptografía ECC mediante<br />

<strong>es</strong>ta aplicación, para ver su utilización<br />

en la generación de clav<strong>es</strong>, cifrado, d<strong>es</strong>cifrado<br />

y firma digital explicadas para los algoritmos<br />

ECDSA.<br />

La aplicación spg utiliza una interfaz<br />

basada en línea de comandos (CLI) que admite<br />

los comandos y opcion<strong>es</strong> indicadas en<br />

el Listado 2.<br />

A continuación, vamos a <strong>es</strong>tudiar la aplicación<br />

de <strong>es</strong>ta sencilla herramienta en los problemas<br />

básicos de la criptografía digital.<br />

Generación de clav<strong>es</strong><br />

privadas ECC<br />

Todo proc<strong>es</strong>o que conlleva la criptografía<br />

de curva elíptica (ECC) debe partir de la<br />

selección de una de las 11 curvas elípticas actualmente<br />

implementadas en SPG 0.3.1. Para<br />

generar una de <strong>es</strong>tas clav<strong>es</strong> <strong>utilizando</strong> la curva<br />

secp521r1 que proporciona el nivel de seguridad<br />

más elevado, el comando a utilizar <strong>es</strong> el<br />

siguiente:<br />

$ spg -g -c secp521r1<br />

-o ecc.key<br />

que almacena dicha clave en el fichero ASCII<br />

ecc.key mostrado en el Listado 3.<br />

Una vez generada nu<strong>es</strong>tra clave privada, <strong>es</strong><br />

nec<strong>es</strong>ario extraer la clave pública complementaria<br />

de ésta mediante el comando:<br />

$ spg -x -k ecc.key<br />

-o ecc_pub.key<br />

en el fichero ecc_pub.key, cuyo contenido se<br />

mu<strong>es</strong>tra a continuación. Nót<strong>es</strong>e que en lo suc<strong>es</strong>ivo,<br />

ya no <strong>es</strong> nec<strong>es</strong>ario una vez generada la<br />

clave privada de partida, <strong>es</strong>pecificar la curva<br />

elíptica a utilizar.<br />

-----BEGIN SPG PUBLIC KEY-----<br />

QQYIehs0rMVKFNPcgiXFHJT+H6lOupm54ICJh<br />

AxkUja5vzeJPZBpqkdHeWSke5oE<br />

Xi0KswHyU8lg14Ap7R08BOESQgHU+wr0Q4dfv<br />

ltuFzSjTxj15cVeFhfq4xhrVxxn<br />

86LsISGw8oeTeAab3scOiSxdjTD3hqHWdRfVw<br />

47

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!