50
21 de xuño de 2010 Ferramentas de seguridade en GNU/Linux Curso de Extensión Universitaria Vanesa Vidal Castro [email protected] Departamento de Informática Universidade de Vigo Ferramentas criptográficas de código aberto: GPG e sistemas de arquivos cifrados

Herramientas criptográficas en GNU/Linux

Embed Size (px)

DESCRIPTION

Herramientas criptográficas en GNU/Linux. Curso "Herramientas de seguridad en GNU/Linux" Universidad de Vigo. Ourense, junio-2010

Citation preview

Page 1: Herramientas criptográficas en GNU/Linux

21 de xuño de 2010

Ferramentas de seguridade en GNU/LinuxCurso de Extensión Universitaria

Vanesa Vidal [email protected] de InformáticaUniversidade de Vigo

Ferramentas criptográficas de código aberto:

GPG e sistemas de arquivos cifrados

Page 2: Herramientas criptográficas en GNU/Linux

2

INTRODUCCIÓN Á CRIPTOGRAFÍA

GPG (Gnu Privacy Guard)

SISTEMAS DE ARQUIVOS CIFRADOS

EncFS (Encrypted Filesystem)Loop-AESTrue-Crypt

Page 3: Herramientas criptográficas en GNU/Linux

3

Criptografía

Arte ou ciencia de cifrar e descifrar información utilizando técnicas que fagan posible o intercambio de mensaxes de maneira segura de xeito que só poidan ser lidas polas persoas ás que van dirixidas (traducido de http://es.wikipedia.org).

Na actualidade abarca diversos aspectos: ocultación da mensaxe (cifrado), autenticidade do emisor (firma dixital), distribución de claves, etc.

Nos bos algoritmos a seguridade descansa na clave e non no algoritmo.

Page 4: Herramientas criptográficas en GNU/Linux

4

Utilidades da criptografía

Moi variadas. Algúns exemplos:

Certificados dixitais: navegadores, administracións públicas, etc.Cifrado de comunicacións: VPNs (Redes Privadas Virtuais), correos electrónicos, etc.Cifrado de arquivos: Perda de portátiles, backups, etc.

Centrarémonos en:

Cifrado de arquivos.Cifrado de directorios.Cifrado de sistemas de arquivos completos.Asegurar a autenticidade dos correos electrónicos.Asegurar a privacidade dos correos electrónicos.

Page 5: Herramientas criptográficas en GNU/Linux

5

Criptografía

Clasificación dos sistemas criptográficos:

Segundo o tipo de operación utilizado para transformar o texto claro en texto cifrado:

Sustitución: cada elemento é substituido por outro. Transposición: os elementos reordénanse.

Segundo o tratamento da mensaxe:Cifrado en bloque (bloques de 64 ou 128 bits).Cifrado en fluxo (bit a bit).

Segundo o número de claves empregado:Cifrado simétrico (clave privada): úsase unha única clave.Cifrado asimétrico (clave pública): úsanse dúas claves.

Page 6: Herramientas criptográficas en GNU/Linux

6

Cifrado simétrico

Texto claro

Texto claro

Algoritmo de cifradoAlgoritmo de cifrado Algoritmo de descifradoAlgoritmo de descifrado

Transmisión de texto cifrado

K

Existe unha única clave (K) para cifrar e descifrar.

Requisitos para un uso seguro da criptografía simétrica:

Algoritmo de cifrado robusto.Transmisión da clave entre emisor e receptor de forma segura.

Canle segura

Page 7: Herramientas criptográficas en GNU/Linux

7

Cifrado simétrico (cont'd)

Vantaxes:Tempo de procesado.

Inconvenientes:Distribución da clave.Comunicación moitos a moitos. Para comunicarse n persoas necesitánse n(n-1)/2 claves.

Exemplos:DES (56 bits), 3DES (112-168), AES (128-256 bits), Blowfish (32-448 bits), IDEA (128 bits), etc.

Seguridade relativa na actualidade:Tamaño de clave >= 128 bits ( claves posibles).2128

Page 8: Herramientas criptográficas en GNU/Linux

8

Cifrado simétrico (cont'd)

Algoritmos de cifrado convencional:

Algoritmo Tamaño de clave

Tamaño de bloque

Número de etapas

Aplicacións

DES 56 64 16 SET, Kerberos

3DES 112 o 168 64 48 GPG

AES 128, 192 o 256

128 10, 12 o 14 Substituirá a DES e 3DES

IDEA 128 64 8 GPG

Blowfish ata 448 64 16 Varios paquetes de

softwareRC5 ata 2048 64 ata 255

Page 9: Herramientas criptográficas en GNU/Linux

9

Cifrado asimétrico

Aparece a finais dos 70 (definido por Diffie e Hellman). Basado en funcións matemáticas.

Utilizan un par de claves: unha para cifrar e outra para descifrar.

Finalidade: evitar o problema do intercambio de claves dos sistemas de cifrado convencionais.

Non se pode obter unha clave a partir da outra nin da mensaxe cifrada.

Aplicacións:Cifrado/Descifrado: emisor cifra coa clave pública do receptor.Sinatura dixital: emisor “asina” a mensaxe coa súa clave privada.Intercambio de claves: para negociar unha clave de sesión.

Page 10: Herramientas criptográficas en GNU/Linux

10

Cifrado asimétrico (cont'd)

Esquema para cifrado/descifradoO emisor debe localizar a clave pública do destinatario.

A clave privada xérase de forma local e non se distribúe.

Textoen

claro

Textoen

claro

Transmisión de texto cifrado

K pública destinatario

Algoritmo de cifradoAlgoritmo de cifrado Algoritmo de descifradoAlgoritmo de descifrado

K privada destinatario

Page 11: Herramientas criptográficas en GNU/Linux

11

Cifrado asimétrico

Esquema para autentificación e sinatura dixital.Emisor cifra unha mensaxe coa súa clave privada.Receptor descifra a mensaxe utilizando a clave pública do emisor.

Mensaxe Y cifrada só polo emisor => asinada dixitalmente.Mensaxe Y non pode ser modificada sen a K privada do emisor => autentificación + non repudio.

Textoen

claro

Textoen

claro

Transmisión de texto cifrado

K privada emisor

Algoritmo de cifradoAlgoritmo de cifrado Algoritmo de descifradoAlgoritmo de descifrado

K pública emisor

XY

X

Page 12: Herramientas criptográficas en GNU/Linux

12

Cifrado asimétrico

Non é necesario cifrar toda a mensaxe para autentificar.

Cifrado asimétrico costoso computacionalmente. Demasiado lento.

Pode ser interesante que a mensaxe sexa visible.

Alternativa: Uso de funcións hash ou resumos da mensaxe.Sinatura dixital – >

Resultado de aplicar unha función hash + cifrar coa k privada.

Función hash é útil <=> Díficil atopar 2 documentos diferentes con valor hash igualDíficil atopar o documento orixinal a partir do valor hash.

Exemplos de algoritmos: MD5, SHA1.

Page 13: Herramientas criptográficas en GNU/Linux

13

Sinatura dixital

Sinatura dixital con documentos públicos:

Cifrando con clave privada o resumo aségurase orixe, autenticidade e integridade do documento enviado.

-------------

Resumir

HASH

K privada emisor

Algoritmo Algoritmo de cifradode cifrado

HASHencriptado +

-------------

HASHencriptado

HASH

HASH

Resumir

== ?

Algoritmo de Algoritmo de descifradodescifrado

K pública emisor

Orixe → Sinatura

Destino → Verificación

Page 14: Herramientas criptográficas en GNU/Linux

14

Cifrado asimétrico

Sinatura dixital con documentos privados:Cifrar coa clave pública do destino a mensaxe.

Só o destino pode ver o contido da mensaxe (confidencialidade).Só a orixe puido crear a mensaxe (autentificación e integridade).Problema: máis costoso .

-------------

Resumir

HASH

K privada emisor

Algoritmo Algoritmo de cifradode cifrado

HASHencriptado +

-------------

HASHencriptado

HASH

HASH

Resumir

== ?Algoritmo de Algoritmo de descifradodescifrado

K pública emisor

K pública destino

Encriptado

Encriptado

K privadadestino

Page 15: Herramientas criptográficas en GNU/Linux

15

Procesos de sinatura e cifrado

Claves emisor:(Pue,Pre) Claves en posesión do emisor: Pue, Pre, Pur

Claves receptor: (Pur,Prr)

k

Sin

atu

ra

Xerar clave sesión (k)e cifrar (k)

Resumir

Textoen

claro

HASH

Textoen

claro

HASHencriptado(Pre)

Cifrar resumo(Pre)

Textocifrado

(k)

Textoen

claro

HASHencriptado(Pre.k)

Cifrar (Pur)Texto

cifrado (k)

HASHencriptado(Pre.k)

Envío

Cifrado

K c

ifrad

a(P

ur)

Page 16: Herramientas criptográficas en GNU/Linux

16

Proceso de descifrado e autenticidade

Claves emisor:(Pue,Pre) Claves en posesión do receptor: Pur, Prr, Pue

Claves receptor: (Pur,Prr)

Recepción Textocifrado

(k)

HASHencriptado(Pre.k)

K c

ifrad

a(P

ur) obter k (Prr)

k

Textocifrado

(k)

HASHencriptado(Pre.k)

descifrar(k)

HASHencriptado(Pre)

Textoen

claroobter

resumo(Pue)

HASH

Textoen

claroRecalcular resumo

HASH 2

Textoen

claro

Mensaxeauténtica

Mensaxefalsa

HASH == HASH 2

HASH != HASH 2

Descifrado

Verificación e autenticidade

Page 17: Herramientas criptográficas en GNU/Linux

17

Cifrado asimétrico (cont'd)

Vantaxes:Distribución de claves.Comunicación moitos a moitos: 1 par de claves por cada extremo da comunicación.

Inconvenientes:Distribución fiable da clave pública ( posible falsificación).Tempo de procesado alto.

Exemplos:RSA, ElGamal, DSA (so para asinar), Diffie-Hellman (distribución de claves), etc.

Seguridade relativa na actualidade: Tamaño de clave >= 2048 bits.

Page 18: Herramientas criptográficas en GNU/Linux

18

Uso no curso:GPG → Cifrado simétrico e asimétrico

Sistemas de ficheiros encriptados → Cifrado simétrico.

SSL → cifrado asimétrico para negociar a clave de sesión simétrica.

Cifrado asimétrico

Page 19: Herramientas criptográficas en GNU/Linux

19

Ferramentas criptográficas

Hai moitas ferramentas destinadas a solventar diversos problemas criptográficos.

Centrarémonos nas que nos permiten levar á práctica as utilidades criptográficas vistas anteriormente.

GPG (GNU Privacy Guard)EncFS (Encrypted Filesystem)Loop-AESdm-crypt / LUKS (Device-mapper crypto target / Linux Unified Key Setup)TrueCrypt

Page 20: Herramientas criptográficas en GNU/Linux

20

GPG (GNU Privacy Guard)

É unha implementación completa e libre do estándar OpenPGP, definida no RFC4880. http://www.gnupg.org Sistema de cifrado híbrido. Permite cifrar e asinar datos (arquivos) e/ou correos

electrónicos. Inclúe un sistema versátil de xestión de claves. Incorpora comandos en liña e unha librería para

facilitar a integración con outras ferramentas. Existe como paquete nas distribucións linux máis

coñecidas e incluso hai versións para windows (http://www.gpg4win.org).

Page 21: Herramientas criptográficas en GNU/Linux

21

Utilidades de GPG

Cifrar/Descifrar arquivos.

Importar/Exportar claves públicas.Distribución da clave de forma individual.Servidor de claves PGP (Non son autoridades certificadoras)

Asinar dixitalmente e verificación.

Certificar unha clave pública.A cada clave pública asignaselle unha pegada (fingerprint).

Revocar certificados.Posibles motivos → clave privada extraviada, en perigo ou

frase de paso esquecida.Integración con outras ferramentas: FireGPG

(Gmail+Firefox).

Page 22: Herramientas criptográficas en GNU/Linux

22

Directorios e arquivos por defecto en GPG

Estructura creada por defecto:

secring.gpggpg.conf

/

home

vanesa

pubring.gpg

.gnugpg

Page 23: Herramientas criptográficas en GNU/Linux

23

Estructura das mensaxes GPG

Mensaxe cifrada Mensaxe asinada Mensaxe cifrada e asinada

Clave de sesión cifrada 1

Datos cifrados

Datos comprimidos

Datos

Datos comprimidos

Datos

Sinatura

Datos cifrados

Datos comprimidos

Datos

Sinatura

Clave de sesión cifrada 2

.

.

.

Clave de sesión cifrada 1

Clave de sesión cifrada 2

.

.

.

Page 24: Herramientas criptográficas en GNU/Linux

24

Mensaxes finais GPG

Opción --armor para convertir saida en formato ASCII. Codificación base 64: ( cada 6 bits → 8 bits ASCII)

Valor de 6 bits

Codificación Valor de 6 bits

Codificación Valor de 6 bits

Codificación Valor de 6 bits

Codificación

0123456789

101112131415

ABCDEFGHIJKLMNOP

16171819202122232425262728293031

QRSTUVWXYZabcdef

32333435363738394041424344454647

ghijkl

mnopqrstuv

48495051525354555657585960616263

Relleno

wxyz0123456789+/=

Page 25: Herramientas criptográficas en GNU/Linux

25

Mensaxes GPG

Mensaxe orixinal:Arquivo de proba para encriptar.

Mensaxe encriptada:-----BEGIN PGP MESSAGE-----

Version: GnuPG v1.4.9 (GNU/Linux)

hQIOAxzr9+4awToHEAf9FJjFsYEqDXRBOSECPZAiNf2aPEMNZ58wXhB6zpE7h33J

hNHjZtUvcenJnnBvVy8GjLMCdcz0b+vDjeeh1ZxX8+g5pr4s/e9AHWeHp8iHfKyk

MmYclBvPZI01x+C2TC87CmL9zADXU9GFg/+7jm6OzKD2lVImhgkWNZKPhmgJCbiQ

rWMe/WssxaEAS57dyNEGfe9ylpZchpbvK1RO0YCErAOtj49YhMhv2MlEHNvuaYZI

XgUOGfRt/eFi9Bh0rGOyl0sMZdG75JmXvezHqw61/AQlUQ3pfJiO/MS5YqaZOgSV

Q4jkUWkQf7XqMbHCUi3E2/1UNOU8bqsPe+g0r0ptfQf8DKD4zi+pWxbjIz0DNR2f

roRhJoguWWT1GEhCd8F7vD1zkIyn5xxhEx8XeoHL9ZqwKwBfLb03uOFCluySRh/U

WJ1skeydam8poeVEMeyMXgEjR1/W+7414cna76iXJwdIXQFCXb/kKaezWmL1wQ/A

CIoSwfSvAMucapuqokZZ+VDb62Yn1mXLhLP4Hjxz4IsU7HOm7RF2TmfU2CpUBSPQ

2gBSOxxFeEAbpDVcd77o7TYWpQrARKAaAcyjmwUuFZPB4uqOUWXu8RQWcEkp4SwQ

bTMhetoXedhvigdA3Zoby5U2jiHgVZUq3dKs8pzXRrqyzkv99rXFkurmKWHcuRSQ

UNJrARIlWzvgxziVIZ2vbdkxsC4iIhHQoiYi6zNflox/aUUVD+Z2tcAplaTHWmLy

Kwi9GNg+d41W17NAneGTmrpM+CTpqMnoq330g761IJK/Cy6s1sT5Nn3xg0MRnxjH

73p+dDnJM7CVWA/QlBc=

=zVNi

-----END PGP MESSAGE-----

Page 26: Herramientas criptográficas en GNU/Linux

26

GPG

Creación de claves$gpg --gen-key

Debemos indicar a información para crear a clave.Algoritmo utilizado para a creación do par de claves.

Opción por defecto: Xéranse 2 pares de claves.Clave con DSA para asinar.Clave con ElGamal para cifrar.

vanesa@thanos:~$ gpg --gen-keygpg (GnuPG) 1.4.9; Copyright (C) 2008 Free Software Foundation, Inc.This is free software: you are free to change and redistribute it.There is NO WARRANTY, to the extent permitted by law.

Por favor seleccione tipo de clave deseado: (1) DSA y ElGamal (por defecto) (2) DSA (sólo firmar) (5) RSA (sólo firmar)¿Su elección?:

Page 27: Herramientas criptográficas en GNU/Linux

27

GPG

Tamaño da claveDepende do algoritmo seleccionado.Maior lonxitude da clave → Cifrado/Descifrado máis lento.

Data da caducidade da claveRecomendable clave sen data de caducidade.

Identificador de usuarioNome real, enderezo electrónico e comentario.Asocia a clave a un usuario real.

Frase clave.Contrasinal para desbloquear a clave privada.Punto débil da seguridade de GnuPG.

Page 28: Herramientas criptográficas en GNU/Linux

28

Cifrado/Descifrado con GPG

Cifrar un arquivo.

$ gpg --output crypt.txt --encrypt --recipient <user_id> plain.txt

[Eliminar manualmente o arquivo.]

Descifrar un arquivo encriptado.

$ gpg --output plain.txt --decrypt crypt.txt

Page 29: Herramientas criptográficas en GNU/Linux

29

Intercambio de claves

Exportar unha clave pública.

Para poder enviar unha clave a un interlocutor antes hai que exportala.

$ gpg --output <nome_fich> --export <user_id>

Por defecto, exportase en formato binario. Para exportar en formato texto → --armor .

Existe a opción de publicar a clave pública nun servidor de claves:

opción: --send-keyscon --keyserver <nome_servidor> pódese exportar a un servidor de claves diferente do que está en .gnupg/gpg.conf

Page 30: Herramientas criptográficas en GNU/Linux

30

Intercambio de claves

Importar unha clave pública.

Para poder enviar mensaxes cifradas ao destinatario ao que corresponde a clave importada.

$ gpg --import <nome_fich>

Existe a opción de importar a clave pública nun servidor de claves: opción: --recv-keys, con --keyserver <nome_servidor> pódese importar dun servidor de

claves diferente do que está en .gnupg/gpg.conf

Para buscar claves nun servidor de claves:opción: --search-keys

Page 31: Herramientas criptográficas en GNU/Linux

31

GPG e sinatura dixital

Asinamos un arquivo coa clave privada → asegurar integridade e non repudio.$ gpg --output <arquivo_saida> --sign <arquivo>

O destinatario debe verificar a sinatura:$ gpg --verify <arquivo_asinado>

Para verificar a sinatura e descifrar o arquivo orixinal simultaneamente:$ gpg --output <arquivo_saida> --decrypt <arquivo_asinado>

Page 32: Herramientas criptográficas en GNU/Linux

32

GPG: Outras opcións

Para ver a lista de claves que hai no anel de claves públicas:$gpg --list-keys

Permite traballar con criptografía simétrica unicamente.

Poden ser emitidos certificados de revocación da clave por se ésta se ve comprometida:

$gpg --output certif-revocacion.gpg --gen-revoke <id_clave>

Page 33: Herramientas criptográficas en GNU/Linux

33

GPG: Sinatura de claves

Posibilidade de asinar as claves públicas dos destinatarios aos que escribimos.As sinaturas de claves validan as claves públicas e incrementan a seguridade e confiabilidade de ditas claves.Debemos ser moi coidadosos coas claves que se asinan e comprobar que a pegada coincide coa do usuario. Non se debe presupoñer nada.Existen varios niveis de confianza para asinar unha clave (Descoñecido, ningunha, marxinal, absoluta).Unha vez asignada unha clave debe ser enviada o seu propietario ou a un servidor de claves público.

Page 34: Herramientas criptográficas en GNU/Linux

34

GPG

Integración de GPG coa maioría dos xestores de correo electrónico.Existe un complemento para o navegador Mozilla Firefox e Gmail → FireGPG.

Page 35: Herramientas criptográficas en GNU/Linux

35

FireGPG

Integración → facilita o uso de GPG.

Page 36: Herramientas criptográficas en GNU/Linux

36

Sistemas de ficheiros cifrados

Existen varias opcións para encriptar sistemas de ficheiros en Linux.

Dúas posibilidades:Sistema de ficheiros pass-trough (EncFS, CFS).

Sistemas pass-trough pódese ir aumentando o tamaño segundo o necesitemos (on the fly). Non hai limitacións.

Encriptación pass-trough: expón metadatos (nº de arquivos cifrados, permisos, tamaño de cada arquivo, ... )

Con pass trough non se necesitan permisos especiais.Posibilidade de realizar copias de seguridade.

Dispositivos de bloque encriptados (Loop-AES).Os dipositivos de bloque teñen un tamaño fixo de entrada.Funcionan en espacio de núcleo.Necesitase permisos especiais.

Page 37: Herramientas criptográficas en GNU/Linux

37

EncFS

EncFS (Encrypted Filesystem)

http://www.arg0.net/encfs

Permite cifrar directorios en espacio de usuario.

Usa o módulo FUSE( Filesystem in Userspace) para acceder o sistema de ficheiros.

Non necesita permisos especiais.

Útil para protexer datos de ataques físicos (roubos ou perdas de un portátil, memoria USB, ... )

Programa encfsctl para cambiar a contrasinal máis tarde.

Page 38: Herramientas criptográficas en GNU/Linux

38

Loop-AES

É un librería de cifrado que utiliza os dispositivos de bucle (loop) (http://sourceforge.net/projects/loop-aes).

Os dispositivos de bucle son dispositivos de bloque que non almacenan os datos directamente, senón que escribe noutro dispositivo que hai por debaixo.

Neste proceso de traspaso de escritura desde o dispositivo de bucle ata o dispositivo de bloque subxacente permítense facer diferentes procesos (no caso concreto de loop-AES a encriptación e desencriptación de datos utilizando o algoritmo AES).

Os dispositivos de bucle son /dev/loop0 ... /dev/loop7 e poden asociarse a calquera dispositivo de bloque ou arquivo dentro dun sistema de arquivos.

Page 39: Herramientas criptográficas en GNU/Linux

39

A elección final depende das nosas necesidades:

Tamaño dos arquivos.Encriptar ficheiros ou particións completas.Nivel de seguridade necesario.

Page 40: Herramientas criptográficas en GNU/Linux

40

TrueCrypt

Free Open-Source On-the-fly encryptionhttp://www.truecrypt.org/Crear un disco virtual encriptado dentro de un arquivo e montao como se fose un disco real.Encriptar particións completas ou dispositivos de almaceamento (memorias USB).Encriptado en tempo real, transparente.Lectura/escritura tan rápida como se non estivese encriptado.Permite uso de esteganografía.Algoritmos: AES-256, Twofish, Serpent.

Page 41: Herramientas criptográficas en GNU/Linux

41

TrueCrypt

Creación de unha unidade encriptada a partir de un ficheiro (file container).

Premer no botón “Create Volume”

Page 42: Herramientas criptográficas en GNU/Linux

42

TrueCrypt

Seleccionamos a opción “Crear un ficheiro encriptado”.

En tipo de volume: marcamos a opción “Volume standard”.

Page 43: Herramientas criptográficas en GNU/Linux

43

TrueCrypt

Indicar o lugar no que se garda o ficheiro que se vai crear.

O ficheiro creado poderá ser movido, copiado, borrado...

Se o ficheiro seleccionado xa existe non se encriptará, senón que será sobreescrito polo novo volume.

Page 44: Herramientas criptográficas en GNU/Linux

44

TrueCrypt

Seleccionar o algoritmo de encriptación desexado:AESSerpentTwofish..

Seleccionar o algoritmo Hash:

RIPEMD-160SHA-512Whirlpool

Page 45: Herramientas criptográficas en GNU/Linux

45

TrueCrypt

Indicar o tamaño do volume a crear.

Introducir a contrasinal:

Tamaño recomendable >= 20 caracteres.Algún carácter “raro”(*,$, @ ... )

Page 46: Herramientas criptográficas en GNU/Linux

46

TrueCrypt

Seleccionar o formato de arquivos a utilizar:

FATEXT-2EXT-3...

Page 47: Herramientas criptográficas en GNU/Linux

47

TrueCrypt

Mover o rato dentro do asistente para incrementar a fortaleza das claves.

Premer “Format” para crear o volume.

Page 48: Herramientas criptográficas en GNU/Linux

48

TrueCrypt

Para utilizar o volume creado:

Seleccionar o ficheiro.Premer “Mount”.

Solicítase a contrasinal.

O volume cárgase no número de slot que seleccionemos.

Page 49: Herramientas criptográficas en GNU/Linux

49

TrueCrypt

Podemos acceder o arquivo facendo doble-click sobre a unidade creada.

Lembrarnos de desmontar a unidade unha vez rematemos de traballar con ela.

Page 50: Herramientas criptográficas en GNU/Linux

50

Bibliografía

Fundamentos de Seguridad en Redes: Aplicaciones y Estándares, segunda edición, William Stallings, Pearson Prentice Hall, 2004.

http://es.wikipedia.orghttp://www.gnupg.orghttp://www.arg0.net/encfshttp://sourceforge.net/projects/loop-aeshttp://www.saout.de/misc/dm-crypthttp://www.truecrypt.orghttp://www.linux.com/articles/52820