Herramientas criptográficas en GNU/Linux
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Herramientas criptográficas en GNU/Linux

on

  • 962 views

Herramientas criptográficas en GNU/Linux.

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

Statistics

Views

Total Views
962
Views on SlideShare
932
Embed Views
30

Actions

Likes
0
Downloads
42
Comments
0

1 Embed 30

http://ccia.ei.uvigo.es 30

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Herramientas criptográficas en GNU/Linux Presentation Transcript

  • 1. Vanesa Vidal Castrovvcastro@uvigo.es Ferramentas criptográficas deDepartamento de Informática código aberto:Universidade de Vigo GPG e sistemas de arquivos cifrados Ferramentas de seguridade en GNU/Linux Curso de Extensión Universitaria 21 de xuño de 2010
  • 2. INTRODUCCIÓN Á CRIPTOGRAFÍAGPG (Gnu Privacy Guard)SISTEMAS DE ARQUIVOS CIFRADOS EncFS (Encrypted Filesystem) Loop-AES True-Crypt 2
  • 3. Criptografía Arte ou ciencia de cifrar e descifrar informaciónutilizando técnicas que fagan posible o intercambio demensaxes de maneira segura de xeito que só poidanser lidas polas persoas ás que van dirixidas(traducido de http://es.wikipedia.org). Na actualidade abarca diversos aspectos: ocultaciónda mensaxe (cifrado), autenticidade do emisor (firmadixital), distribución de claves, etc. Nos bos algoritmos a seguridade descansa na clavee non no algoritmo. 3
  • 4. Utilidades da criptografíaMoi 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. 4
  • 5. CriptografíaClasificació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. 5
  • 6. Cifrado simétricoExiste unha única clave (K) para cifrar e descifrar. K Canle segura Texto Texto Transmisión claro claro de texto cifrado Algoritmo de cifrado Algoritmo de descifradoRequisitos para un uso seguro da criptografíasimétrica: Algoritmo de cifrado robusto. Transmisión da clave entre emisor e receptor de forma segura. 6
  • 7. Cifrado simétrico (contd)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 ( 2128 claves posibles). 7
  • 8. Cifrado simétrico (contd)Algoritmos de cifrado convencional: Algoritmo Tamaño Tamaño Número de Aplicacións de clave de bloque etapas DES 56 64 16 SET, Kerberos 3DES 112 o 168 64 48 GPG AES 128, 192 o 128 10, 12 o 14 Substituirá a 256 DES e 3DES IDEA 128 64 8 GPG Blowfish ata 448 64 16 Varios paquetes de RC5 ata 2048 64 ata 255 software 8
  • 9. Cifrado asimétrico Aparece a finais dos 70 (definido por Diffie e Hellman). Basado enfuncións matemáticas. Utilizan un par de claves: unha para cifrar e outra para descifrar. Finalidade: evitar o problema do intercambio de claves dos sistemasde cifrado convencionais. Non se pode obter unha clave a partir da outra nin da mensaxecifrada. 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. 9
  • 10. Cifrado asimétrico (contd)Esquema para cifrado/descifrado O emisor debe localizar a clave pública do destinatario. A clave privada xérase de forma local e non se distribúe. K pública K privada destinatario destinatarioTexto Texto en Transmisión enclaro de texto cifrado claro Algoritmo de cifrado Algoritmo de descifrado 10
  • 11. Cifrado asimétricoEsquema 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. K privada K pública emisor emisor Texto Y X Transmisión X Texto en en claro de texto cifrado claro Algoritmo de cifrado Algoritmo de descifrado Mensaxe Y cifrada só polo emisor => asinada dixitalmente. Mensaxe Y non pode ser modificada sen a K privada do emisor => autentificación + non repudio. 11
  • 12. Cifrado asimétricoNon é 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 igual Díficil atopar o documento orixinal a partir do valor hash. Exemplos de algoritmos: MD5, SHA1. 12
  • 13. Sinatura dixital Sinatura dixital con documentos públicos: ----- Resumir K privada emisor Resumir ---- HASH----- -------- HASH HASH encriptado + K pública == ? ---- emisor Algoritmo de cifrado HASH HASH encriptado Algoritmo de Orixe → Sinatura descifrado Destino → Verificación Cifrando con clave privada o resumo aségurase orixe, autenticidade e integridade do documento enviado. 13
  • 14. Cifrado asimétrico Sinatura dixital con documentos privados: Cifrar coa clave pública do destino a mensaxe. K pública emisor Resumir K privada emisor HASH HASH encriptado----- HASH HASH encriptado + Algoritmo de---- descifrado == ? Algoritmo ---- de cifrado ----- En ---- cr HASH En ipt ---- cr ad ip o Resumir ta do K privada destino K pública destino 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 . 14
  • 15. Procesos de sinatura e cifrado Claves emisor:(Pue,Pre) Texto Claves en posesión do emisor: Pue, Pre, Pur en claro Claves receptor: (Pur,Prr) Resumir HASHSinatura Texto Cifrar resumo(Pre) en Cifrado claro HASH HASH HASH encriptado(Pre) encriptado(Pre.k) encriptado(Pre.k) K cifrada(Pur) Texto Texto Texto Envío en cifrado Cifrar (Pur) cifrado Xerar clave k claro sesión (k) (k) (k) e cifrar (k) 15
  • 16. Proceso de descifrado e autenticidade Descifrado HASH HASH encriptado(Pre.k) encriptado(Pre.k) descifrar HASH obter k (Prr) (k) encriptado(Pre) K cifrada(Pur) Recepción Texto Texto cifrado cifrado Texto k en obter (k) (k) claro resumo (Pue) Mensaxe HASH == HASH 2 HASH 2 HASH auténtica Texto Texto en en HASH != HASH 2 claro Recalcular claro Mensaxe resumo falsaClaves emisor:(Pue,Pre) Verificación e autenticidadeClaves en posesión do receptor: Pur, Prr, PueClaves receptor: (Pur,Prr) 16
  • 17. Cifrado asimétrico (contd)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. 17
  • 18. Cifrado asimétricoUso 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. 18
  • 19. Ferramentas criptográficas Hai moitas ferramentas destinadas a solventardiversos problemas criptográficos. Centrarémonos nas que nos permiten levar á prácticaas utilidades criptográficas vistas anteriormente. GPG (GNU Privacy Guard) EncFS (Encrypted Filesystem) Loop-AES dm-crypt / LUKS (Device-mapper crypto target / Linux Unified Key Setup) TrueCrypt 19
  • 20. GPG (GNU Privacy Guard) É unha implementación completa e libre do estándarOpenPGP, definida no RFC4880. http://www.gnupg.org Sistema de cifrado híbrido. Permite cifrar e asinar datos (arquivos) e/ou correoselectrónicos. Inclúe un sistema versátil de xestión de claves. Incorpora comandos en liña e unha librería parafacilitar a integración con outras ferramentas. Existe como paquete nas distribucións linux máiscoñecidas e incluso hai versións para windows (http://www.gpg4win.org). 20
  • 21. Utilidades de GPGCifrar/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 21 (Gmail+Firefox).
  • 22. Directorios e arquivos por defecto en GPGEstructura creada por defecto: / home vanesa .gnugpg gpg.conf pubring.gpg secring.gpg 22
  • 23. Estructura das mensaxes GPG Clave de sesiónClave de sesión cifrada 1 cifrada 1Clave de sesión Clave de sesión cifrada 2 cifrada 2 . . . . . .Datos cifrados Datos cifrados Datos comprimidos Datos comprimidosDatos comprimidos Sinatura Sinatura Datos Datos Datos Mensaxe cifrada Mensaxe asinada Mensaxe cifrada e asinada 23
  • 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 Codificación Valor de 6 Codificación Valor de 6 Codificación Valor de 6 Codificación bits bits bits bits 0 A 16 Q 32 g 48 w 1 B 17 R 33 h 49 x 2 C 18 S 34 i 50 y 3 D 19 T 35 j 51 z 4 E 20 U 36 k 52 0 5 F 21 V 37 l 53 1 6 G 22 W 38 m 54 2 7 H 23 X 39 n 55 3 8 I 24 Y 40 o 56 4 9 J 25 Z 41 p 57 5 10 K 26 a 42 q 58 6 11 L 27 b 43 r 59 7 12 M 28 c 44 s 60 8 13 N 29 d 45 t 61 9 14 O 30 e 46 u 62 + 15 P 31 f 47 v 63 / Relleno = 24
  • 25. Mensaxes GPG Mensaxe orixinal:Arquivo de proba para encriptar. Mensaxe encriptada:-----BEGIN PGP MESSAGE-----Version: GnuPG v1.4.9 (GNU/Linux)hQIOAxzr9+4awToHEAf9FJjFsYEqDXRBOSECPZAiNf2aPEMNZ58wXhB6zpE7h33JhNHjZtUvcenJnnBvVy8GjLMCdcz0b+vDjeeh1ZxX8+g5pr4s/e9AHWeHp8iHfKykMmYclBvPZI01x+C2TC87CmL9zADXU9GFg/+7jm6OzKD2lVImhgkWNZKPhmgJCbiQrWMe/WssxaEAS57dyNEGfe9ylpZchpbvK1RO0YCErAOtj49YhMhv2MlEHNvuaYZIXgUOGfRt/eFi9Bh0rGOyl0sMZdG75JmXvezHqw61/AQlUQ3pfJiO/MS5YqaZOgSVQ4jkUWkQf7XqMbHCUi3E2/1UNOU8bqsPe+g0r0ptfQf8DKD4zi+pWxbjIz0DNR2froRhJoguWWT1GEhCd8F7vD1zkIyn5xxhEx8XeoHL9ZqwKwBfLb03uOFCluySRh/UWJ1skeydam8poeVEMeyMXgEjR1/W+7414cna76iXJwdIXQFCXb/kKaezWmL1wQ/ACIoSwfSvAMucapuqokZZ+VDb62Yn1mXLhLP4Hjxz4IsU7HOm7RF2TmfU2CpUBSPQ2gBSOxxFeEAbpDVcd77o7TYWpQrARKAaAcyjmwUuFZPB4uqOUWXu8RQWcEkp4SwQbTMhetoXedhvigdA3Zoby5U2jiHgVZUq3dKs8pzXRrqyzkv99rXFkurmKWHcuRSQUNJrARIlWzvgxziVIZ2vbdkxsC4iIhHQoiYi6zNflox/aUUVD+Z2tcAplaTHWmLyKwi9GNg+d41W17NAneGTmrpM+CTpqMnoq330g761IJK/Cy6s1sT5Nn3xg0MRnxjH73p+dDnJM7CVWA/QlBc==zVNi-----END PGP MESSAGE----- 25
  • 26. GPGCreació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-key gpg (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?: 26
  • 27. GPGTamaño da clave Depende do algoritmo seleccionado. Maior lonxitude da clave → Cifrado/Descifrado máis lento.Data da caducidade da clave Recomendable clave sen data de caducidade.Identificador de usuario Nome 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. 27
  • 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 28
  • 29. Intercambio de clavesExportar 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-keys con --keyserver <nome_servidor> pódese exportar a un servidor de claves diferente do que está en .gnupg/gpg.conf 29
  • 30. Intercambio de clavesImportar 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 nunservidor de claves: opción: --recv-keys, con --keyserver <nome_servidor> pódese importar dun servidor de claves diferente do que está en .gnupg/gpg.confPara buscar claves nun servidor de claves:opción: --search-keys 30
  • 31. GPG e sinatura dixitalAsinamos un arquivo coa clave privada → asegurarintegridade 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 orixinalsimultaneamente:$ gpg --output <arquivo_saida> --decrypt <arquivo_asinado> 31
  • 32. GPG: Outras opciónsPara ver a lista de claves que hai no anel de clavespúblicas:$gpg --list-keysPermite traballar con criptografía simétricaunicamente.Poden ser emitidos certificados de revocación daclave por se ésta se ve comprometida:$gpg --output certif-revocacion.gpg --gen-revoke <id_clave> 32
  • 33. GPG: Sinatura de clavesPosibilidade de asinar as claves públicas dosdestinatarios aos que escribimos.As sinaturas de claves validan as claves públicas eincrementan a seguridade e confiabilidade de ditasclaves.Debemos ser moi coidadosos coas claves que seasinan e comprobar que a pegada coincide coa dousuario. Non se debe presupoñer nada.Existen varios niveis de confianza para asinar unhaclave (Descoñecido, ningunha, marxinal, absoluta).Unha vez asignada unha clave debe ser enviada oseu propietario ou a un servidor de claves público. 33
  • 34. GPGIntegración de GPG coa maioría dos xestores decorreo electrónico.Existe un complemento para o navegador MozillaFirefox e Gmail → FireGPG. 34
  • 35. FireGPGIntegración → facilita o uso de GPG. 35
  • 36. Sistemas de ficheiros cifradosExisten 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. 36
  • 37. EncFSEncFS (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 37 tarde.
  • 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 quenon almacenan os datos directamente, senón que escribenoutro dispositivo que hai por debaixo. Neste proceso de traspaso de escritura desde odispositivo de bucle ata o dispositivo de bloque subxacentepermítense facer diferentes procesos (no caso concreto deloop-AES a encriptación e desencriptación de datosutilizando o algoritmo AES). Os dispositivos de bucle son /dev/loop0 ... /dev/loop7 epoden asociarse a calquera dispositivo de bloque ou arquivodentro dun sistema de arquivos. 38
  • 39. A elección final depende das nosas necesidades: Tamaño dos arquivos. Encriptar ficheiros ou particións completas. Nivel de seguridade necesario. 39
  • 40. TrueCryptFree Open-Source On-the-fly encryptionhttp://www.truecrypt.org/Crear un disco virtual encriptado dentro de un arquivoe montao como se fose un disco real.Encriptar particións completas ou dispositivos dealmaceamento (memorias USB).Encriptado en tempo real, transparente.Lectura/escritura tan rápida como se non estiveseencriptado.Permite uso de esteganografía.Algoritmos: AES-256, Twofish, Serpent. 40
  • 41. TrueCryptCreación de unhaunidadeencriptada a partirde un ficheiro (filecontainer). Premer no botón “Create Volume” 41
  • 42. TrueCryptSeleccionamosa opción “Crearun ficheiroencriptado”.En tipo devolume:marcamos aopción “Volumestandard”. 42
  • 43. TrueCryptIndicar olugar no quese garda oficheiro quese vai crear.O ficheirocreadopoderá sermovido,copiado,borrado...Se o ficheiro seleccionado xa existe non se encriptará, senón que será sobreescrito polo novo volume. 43
  • 44. TrueCryptSeleccionar o algoritmo de encriptación desexado: AES Serpent Twofish ..Seleccionar oalgoritmo Hash: RIPEMD-160 SHA-512 Whirlpool 44
  • 45. TrueCryptIndicar o tamañodo volume a crear.Introducir acontrasinal: Tamaño recomendable >= 20 caracteres. Algún carácter “raro”(*,$, @ ... ) 45
  • 46. TrueCryptSeleccionar o formatode arquivos a utilizar: FAT EXT-2 EXT-3 ... 46
  • 47. TrueCryptMover o ratodentro doasistente paraincrementar afortaleza dasclaves.Premer “Format”para crear ovolume. 47
  • 48. TrueCryptPara utilizar ovolume creado: Seleccionar o ficheiro. Premer “Mount”.Solicítase acontrasinal.O volumecárgase nonúmero de slotqueseleccionemos. 48
  • 49. TrueCryptPodemos acceder o arquivo facendo doble-click sobre a unidade creada.Lembrarnos de desmontar a unidade unha vez rematemos de traballar con ela. 49
  • 50. BibliografíaFundamentos de Seguridad en Redes: Aplicaciones yEstándares, segunda edición, William Stallings, PearsonPrentice 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 50