Top Banner
Manual de TrueCrypt Página 1 Manual de TrueCrypt Y Ejemplos CONTENIDO I. INTRODUCCION .............................................................................................. 2 II. INSTALACION ................................................................................................. 3 III. CREACIÓN DE UN VOLUMEN NUEVO .......................................................... 5 IV. ENCRIPTAR UNA UNIDAD ........................................................................... 10 V. MONTAR UN VOLUMEN (IMPRESCINDIBLE PARA SU USO) ................... 16 VI. DESMONTAR UN VOLUMEN (RECOMENDABLE ....................................... 19 VII. CIFRADO DEL CESAR ALGORITMO EN JAVA ....................................... 20 VIII. ENCRIPTACIÓN USANDO PHP TECNOLOGIA WEB............................... 24
30

Manual de TrueCrypt

Oct 28, 2015

Download

Documents

Johanmax
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Manual de TrueCrypt

Manual de TrueCrypt Página 1

Manual de TrueCrypt Y Ejemplos

CONTENIDO

I. INTRODUCCION .............................................................................................. 2

II. INSTALACION ................................................................................................. 3

III. CREACIÓN DE UN VOLUMEN NUEVO .......................................................... 5

IV. ENCRIPTAR UNA UNIDAD ........................................................................... 10

V. MONTAR UN VOLUMEN (IMPRESCINDIBLE PARA SU USO) ................... 16

VI. DESMONTAR UN VOLUMEN (RECOMENDABLE ....................................... 19

VII. CIFRADO DEL CESAR – ALGORITMO EN JAVA ....................................... 20

VIII. ENCRIPTACIÓN USANDO PHP – TECNOLOGIA WEB ............................... 24

Page 2: Manual de TrueCrypt

Manual de TrueCrypt Página 2

I. INTRODUCCION

TryeCrypt es una de las mejores soluciones disponibles en el mercado, para

cifrar información importante, es gratuita y multiplataforma

(GNU/Linux, Mac OS X, WindowsXP/2000/2003/Vista/Seven), es recomendada

para proteger tu información sensible y así evitar que personas no autorizadas

tengan acceso a ella.

TrueCrypt es una herramienta de cifrado gratuita muy poderosa y fácil de

utilizar. Con esta aplicación podrás crear discos de seguridad virtuales o

incluso cifrar unidades enteras.

Es una herramienta on-the-fly, es decir que los

archivos son descifrados cuando los accedes

o modificas y se vuelven a cifrar cuando no

están en uso.

Gracias a varios trucos de optimización y la

completa utilización de los recursos de los

procesadores modernos, no hay

diferencia entre trabajar con un volumen cifrado porTrueCrypt a trabajar con

una unidad sin cifrar.

Este software no sólo ofrece un cifrado potente y flexible, también ofrece la

habilidad de crear volúmenes ocultos dentro de unidades cifradas para una

mayor seguridad.

Compatible con GNU/Linux, Windows y Mac – Freeware

Page 3: Manual de TrueCrypt

Manual de TrueCrypt Página 3

II. INSTALACION

Buscamos el enlace para su descarga en: http://www.truecrypt.org/downloads Escogemos la versión que nos interese (Mac, Linux o Ms Windows), en

nuestro caso, la versión Windows:

Una vez descargado el archivo ejecutable TrueCrypt Setup 7.1a.exe, procederemos a su instalación.

Page 4: Manual de TrueCrypt

Manual de TrueCrypt Página 4

Page 5: Manual de TrueCrypt

Manual de TrueCrypt Página 5

III. CREACIÓN DE UN VOLUMEN NUEVO

Crear un volumen nuevo quiere decir que vamos a crear un fichero que hará de contenedor para nuestros ficheros, de tal forma que todo lo que grabemos dentro del mencionado contenedor permanecerá encriptado. La forma de utilizar este volumen será similar a como se usa una imagen ISO (con Daemon Tools, Alcohol 120%, etc.) o la forma de utilizar dispositivos con las distribuciones Linux (Unix). Como primer paso de nuestra instrucción, debemos arrancar el programa y seleccionamos la opción para crear un nuevo Volumen. Acto seguido seleccionamos crear un nuevo fichero contenedor encriptado

(Opción recomendada para principiantes):

Por norma general utilizaremos el tipo de volumen estándar.

Page 6: Manual de TrueCrypt

Manual de TrueCrypt Página 6

Debemos especificar la ubicación deseada para el fichero. Para documentar esta instrucción, hemos escogido el escritorio del equipo:

En el siguiente paso, dejaremos los valores por defecto: Encriptación AES y

Hash RIPEMD-160.

Page 7: Manual de TrueCrypt

Manual de TrueCrypt Página 7

La siguiente ventana nos plantea la pregunta la cantidad de espacio que

deseamos destinar al contenedor encriptado:

Podemos considerar un tamaño de 2 Gb más que adecuado para la mayoría de proyectos que queramos proteger.

Page 8: Manual de TrueCrypt

Manual de TrueCrypt Página 8

El siguiente paso será escoger una password para proteger nuestra

información. La recomendación estándar es 20 dígitos y con bastante

complejidad. En caso contrario el programa mostrará un aviso (como el de la

captura) pero nos dejará seguir:

La ventana actual muestra las opciones finales de creación del volumen, su

sistema de ficheros y su formato:

Page 9: Manual de TrueCrypt

Manual de TrueCrypt Página 9

Para ilustrar la instrucción hemos escogido un sistema de ficheros NTFS con el

tamaño de clúster 64KB (el mayor).

Una vez creado el volumen, podemos dar por finalizado el proceso y podemos

utilizar nuestro nuevo volumen de datos cifrado con toda normalidad:

A tener en cuenta:

Para poder utilizar el volumen/la unidad recién encriptada se deberá montar y

desmontar (tal como se explica en los puntos correspondientes en el presente

documento) y asignando una letra de unidad.

Page 10: Manual de TrueCrypt

Manual de TrueCrypt Página 10

IV. ENCRIPTAR UNA UNIDAD

Para encriptar una unidad entera, que no sea la de sistema (un disco duro esclavo, una partición para datos, etc.) deberemos seguir las instrucciones siguientes... Primero de todo, vamos a la opción de crear un nuevo volumen.

Seleccionamos la unidad (dispositivo, partición, etc.):

Page 11: Manual de TrueCrypt

Manual de TrueCrypt Página 11

El software nos mostrará un aviso como el siguiente, en el que clicaremos la

respuesta “Sí”.

Por norma general, la opción que seleccionaremos será “Volumen TryeCrytp

Común”.

Page 12: Manual de TrueCrypt

Manual de TrueCrypt Página 12

Si la partición (disco, dispositivo, etc.) no está vacía, seleccionaremos la opción

“Encrypt partition in place”. La opción “Create encrypted volumen and format it”

nos creará el volumen y nos supondrá perder la información que allí hubiera.

Las opciones de encriptación por defecto son perfectamente válidas:

Page 13: Manual de TrueCrypt

Manual de TrueCrypt Página 13

En nuestro caso, el tamaño del volumen será la unidad entera

Aquí es donde tenemos que informar en las cajas de texto la contraseña

deseada. Es recomendable activar el checkbox “Mostrar contraseña” para

mayor comodidad, siempre que se tenga la seguridad de estar solo.

Page 14: Manual de TrueCrypt

Manual de TrueCrypt Página 14

Cuando hagamos clic en el botón “Siguiente”, si la contraseña es menor de 20

caracteres (con las sugerencias del programa) podremos leer un aviso que nos

advierte de la debilidad de la contraseña y nos pregunta si estamos seguros.

Por si en un futuro tenemos interés guardar encriptados ficheros grandes

(mayores de 4 Gb, como imágenes de DVD, ficheros multimedia, etc.),

marcaremos la opción “Si” en la pantalla que nos muestra la siguiente captura:

Page 15: Manual de TrueCrypt

Manual de TrueCrypt Página 15

En el siguiente paso es donde deberemos escoger el tipo de sistema de ficheros que deseamos para nuestra nueva unidad. En nuestro caso elegimos NTFS y Clúster por defecto. Es altamente recomendable mover el cursor por la ventana del TrueCrypt para incrementar la aleatoriedad de las llaves. El último paso es hacer clic en el botón “Formatear”. En el caso de ejemplo, se

trata de una unidad de 300GB y la estimación de tiempo ha sido entre 4 y 5 horas.

Cuando vemos la siguiente captura, querrá decir que el proceso ha ido bien y

ya tenemos una nueva unidad encriptada en el sistema.

Page 16: Manual de TrueCrypt

Manual de TrueCrypt Página 16

A tener en cuenta: La letra de unidad del dispositivo encriptado queda en desuso salvo que se quiera formatear, perdiendo la información almacenada y, por supuesto, la encriptación. Para poder utilizar la unidad recién encriptada se deberá montar y desmontar (tal

como se explica en los puntos correspondientes en el presente documento) y

asignar una nueva letra de unidad.

V. MONTAR UN VOLUMEN (IMPRESCINDIBLE PARA SU

USO)

Montar y desmontar el volumen encriptado es imprescindible para poderlo utilizar. Para ello deberemos: Para montar un volumen, el primer paso es seleccionar el contenedor. En nuestro

caso será el fichero “encriptado” que hemos guardado en el escritorio el cual

hemos buscado a través del botón “Select File...”:

Page 17: Manual de TrueCrypt

Manual de TrueCrypt Página 17

En el caso de nuestro ejemplo, montaremos (cargaremos) la unidad K con

nuestro volumen encriptado. Para conseguir esto, debemos clicar el botón

“Mount”.

En este punto, el software nos preguntará por la password que hayamos escogido anteriormente. Si el password que hemos informado en el textbox es el correcto, veremos que el

programa nos muestra el estado del volumen de la siguiente forma:

Page 18: Manual de TrueCrypt

Manual de TrueCrypt Página 18

La demostración de que todo ha ido bien está en “Mi PC”:

Page 19: Manual de TrueCrypt

Manual de TrueCrypt Página 19

VI. DESMONTAR UN VOLUMEN (RECOMENDABLE

Así como es imprescindible montar el volumen para trabajar con él, desmontarlo es una recomendación ya que este paso se hará automáticamente cuando se apague el sistema. La recomendación viene por si alguna persona no autorizada accede a nuestro ordenador antes que hayamos desmontado el volumen o apagado el PC y en ese caso el “intruso” tendría acceso a la información encriptada sin ningún tipo de dificultad. Desmontar un volumen es tan sencillo como ir a la ventana del programa,

seleccionar el volumen que hemos montado antes y clicar el botón “Dismount”:

Page 20: Manual de TrueCrypt

Manual de TrueCrypt Página 20

VII. CIFRADO DEL CESAR – ALGORITMO EN JAVA

En criptografía, el cifrado César, también

conocido como cifrado por desplazamiento,

código de César o desplazamiento de César,

es una de las técnicas de codificación más

simples y más usadas. Es un tipo de cifrado

por sustitución en el que una letra en el texto original es reemplazada por otra letra

que se encuentra un número fijo de posiciones más adelante en el alfabeto. Por

ejemplo, con un desplazamiento de 3, la A sería sustituida por la D (situada 3

lugares a la derecha de la A ), la B sería reemplazada por la E, etc. Este método

debe su nombre a Julio César, que lo usaba para comunicarse con sus generales.

El cifrado César muchas veces puede formar parte de sistemas más complejos de

codificación, como el cifrado Vigenère, e incluso tiene aplicación en el sistema

ROT13. Como todos los cifrados de sustitución alfabética simple, el cifrado César

se descifra con facilidad y en la práctica no ofrece mucha seguridad en la

comunicación. [Leer mas] Implementación en Java del algoritmo del Cifrado del

Cesar. Primero creamos una clase a la que llamaremos “Cifrar.java” la cual tendrá

todo el código para realizar la sustitución por desplazamiento correspondiente al

algoritmo del Cifrado del Cesar.

Código en Java

/**

* @author JF

* Implementaciòn del algoritmo de sustituciòn

* el cifrado del Cesar.

*/

public class Cifrar {

int desplazamiento;

String mensaje;

Page 21: Manual de TrueCrypt

Manual de TrueCrypt Página 21

String clave = "";

String caracter;

char array[] =

{'A','B','C','D','E','F','G','H','I','J','K','L','M','

N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};

public String descifrarMensaje(String msj, int

desp){

mensaje = msj;

desplazamiento = desp;

recorrerMensaje();

return clave;

}

/**

* Recorrer cada letra del mensaje

*/

private void recorrerMensaje(){

String decod = "";

for(int i = 0; i < = mensaje.length() - 1;

i++){

caracter = mensaje.substring(i, i + 1);

if(!caracter.equals(" ")){

int posicion =

getPosicionCaracter(caracter);

Page 22: Manual de TrueCrypt

Manual de TrueCrypt Página 22

decod = decrypt(posicion);

clave += decod;

}else{

clave += " ";

}

}

//String substring =

mensaje.substring(desplazamiento, desplazamiento)

}

private int getPosicionCaracter(String letra){

int posicion = 0;

for(int i = 0; i <= array.length; i++){

if(String.valueOf(array[i]).equals(letra)){

posicion = i;

break;

}

}

return posicion;

}

//Desencripta un caracter

public String decrypt(int c){

Page 23: Manual de TrueCrypt

Manual de TrueCrypt Página 23

int posicion = c + desplazamiento;

if(posicion > array.length - 1) posicion =

posicion - array.length;

String decod =

String.valueOf(array[posicion]);

return decod;

}

}

Ahora creamos una clase llamada “cifradodelcesar.java” que será la que tendrá

nuestro método principal y creará un objeto de la clase anterior.

Código en Java

public class cifradodelcesar {

public static void main(String[] args){

Cifrar c1 = new Cifrar();

Cifrar c2 = new Cifrar();

System.out.println("P JHTL P ZHD P JVUXBLYLK

= " + c2.descifrarMensaje("P JHTL P ZHD P JVUXBLYLK",

19));

}

}

Proceso Encriptación:

Page 24: Manual de TrueCrypt

Manual de TrueCrypt Página 24

Proceso Encriptación:

VIII. ENCRIPTACIÓN USANDO PHP – TECNOLOGIA WEB

Encriptación en Dos sentidos:

Existen muchos algoritmos para encriptar de dos sentidos, y una gran variedad de

librerías para hacerlo. Sin embargo, la más fácil de utilizar y más común es la

librería MCrypt. Para poder utilizar esta librería tienes que asegurarte de que esté

instalada junto con tu instalación de PHP. La forma más simple de saber si está

instalada es simplemente colocando el código y si no aparece ningún error

entonces tu instalación cuenta con MCrypt. Otra forma de saber si está instalada

es crear una página web con el siguiente contenido:

Cuando cargues esta página, si mcrypt está instalado, deberías encontrar en

algún lado de la página algo como esto:

Page 25: Manual de TrueCrypt

Manual de TrueCrypt Página 25

Si usaste el instalador de PHP para Windows, lo más probable es de que esté

instalada, si no lo está puedes conseguir la

DLL libmcrypt.dll en http://files.edin.dk/php/win32/mcrypt/. Simplemente copia

esta DLL en la carpeta ext de tu instalación de php y en alguna de las rutas que

estén dentro de tu PATH y listo. Para mayor información de como instalar

visita http://www.php.net/manual/en/book.mcrypt.php.

Si trabajas con Ubuntu, probablemente necesites instalarla. Para instalarla basta

con ejecutar el comando sudo apt-get install php5-mcrypt en un terminal y luego

reiniciar tu servidor apache con el comando sudo /etc/init.d/apache2 restart.

Voy a implementar dos funciones que me permiten encriptar y desencriptar

cadenas. Ambas funciones reciben la cadena que se quiere encriptar o

desencriptar y la clave secreta a utilizar. Estas funciones devuelven la cadena

encriptada o desencriptada.

Para encriptar utilizaremos la función mcrypt_encrypt y para desencriptar la

función mcrypt_decrypt. Ambas funciones reciben los siguientes parámetros:

Page 26: Manual de TrueCrypt

Manual de TrueCrypt Página 26

Ahora el código de ambas funciones que es bastante simple:

Código en PHP:

<?php

function encriptar($cadena, $clave = "una clave secreta")

{

$cifrado = MCRYPT_RIJNDAEL_256;

$modo = MCRYPT_MODE_ECB;

return mcrypt_encrypt($cifrado, $clave, $cadena, $modo,

mcrypt_create_iv(mcrypt_get_iv_size($cifrado, $modo),

MCRYPT_RAND)

);

}

function desencriptar($cadena, $clave = "una clave secreta")

Page 27: Manual de TrueCrypt

Manual de TrueCrypt Página 27

{

$cifrado = MCRYPT_RIJNDAEL_256;

$modo = MCRYPT_MODE_ECB;

return mcrypt_decrypt($cifrado, $clave, $cadena, $modo,

mcrypt_create_iv(mcrypt_get_iv_size($cifrado, $modo),

MCRYPT_RAND)

);

}

?>

En este caso estas dos funciones utilizan el cifrado RIJNDAEL_256 en modo ECB

para encriptar la información. Ahora hagamos un pequeño programa que muestre

como utilizar estas funciones:

Código en PHP:

<?php

// Las funciones encriptar y desencriptar van aqui

?>

<html>

<head>

<title>Demo Encriptacion</title>

</head>

<body>

<?php

$valorEncriptado = encriptar("Copstone", "casa");

$valorOriginal = desencriptar($valorEncriptado, "casa");

echo "Encriptado: <code style='color:#ff0000;'>{$valorEncriptado}</code>";

Page 28: Manual de TrueCrypt

Manual de TrueCrypt Página 28

echo "<br/>";

echo "Original: <code style='color:#009922;'>{$valorOriginal}</code>";

?>

</body>

</html>

Si ejecutas la página puedes ver que se ha generado algo como esto:

Convertir la cadena encriptada en base 64 para que solo esté compuesta por

caracteres con representación visual. Para convertir a base 64 usaremos

base64_encode y base64_decode. El código quedaría algo así:

Código en PHP:

<?php

// Las funciones encriptar y desencriptar van aqui

?>

<html>

<head>

<title>Demo Encriptacion</title>

</head>

<body>

Page 29: Manual de TrueCrypt

Manual de TrueCrypt Página 29

<?php

$valorEncriptado = base64_encode(encriptar("Copstone", "casa"));

$valorOriginal = desencriptar(base64_decode($valorEncriptado), "casa");

echo "Encriptado: <code style='color:#ff0000;'>{$valorEncriptado}</code>";

echo "<br/>";

echo "Original: <code style='color:#009922;'>{$valorOriginal}</code>";

?>

</body>

</html>

Encriptación en un solo sentido

Ahora que ya hemos visto como realizar la encriptación de dos sentidos te voy a

mostrar como realizar la de un solo sentido.

Para encriptar en un solo sentido no necesitas instalar nada ya que PHP a partir

de su versión 5.0 viene incluido con esta funcionalidad.

Para encriptar en un solo sentido podemos utilizar la función hash_hmac que

recibe los siguientes parámetros:

Page 30: Manual de TrueCrypt

Manual de TrueCrypt Página 30

Ejemplo en el que utilizo la función de forma directa por su simplicidad:

Código en PHP

<html>

<head>

<title>Demo Encriptacion</title>

</head>

<body>

<?php echo hash_hmac('md5', 'Copstone', 'casa'); ?>

</body>

</html>

Este ejemplo produce el siguiente resultado: