Ethical Hacking utilizando BackTrack - Fedora-es
Ethical Hacking utilizando BackTrack - Fedora-es
Ethical Hacking utilizando BackTrack - Fedora-es
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