Herramientas de usuario

Herramientas del sitio


informatica:seguridad:cursos:tecnologias_y_buenas_practicas_sobre_la_ciberseguridad:criptografia

Criptografía

Contenido del curso Tecnologías y buenas prácticas sobre la ciberseguridad

Técnica que busca el ocultamiento de información para garantizar la confidencialidad e integridad de la misma.

Se emplean algoritmos matemáticos para ocultar la información. Tras aplicar estos algoritmos, el resultado es un criptograma.

Sobre el criptograma también se puede aplicar un algoritmo que revele la información original.

La criptografía es un proceso de 2 vías:

  • Algoritmo matemático para cifrar.
  • Algoritmo matemático para descifrar.

Criptografía simétrica

  • Utiliza una misma llave para el cifrado y descifrado
  • Es una técnica criptográfica más rápida
  • Es utilizada cuando la información está en reposo

La seguridad de este sistema radica en mantener la clave en secreto, esa es su mayor debilidad.

En criptografía, el término “llave” o “clave” se refiere a un número o secreto.

El funcionamiento de esta criptografía es establecer una llave secreta y un algoritmo de cifrado y descifrado que hace uso también de esa llave.

Algoritmos populares:

  • AES
  • 3DES
  • DES

Criptografía asimétrica

También conocida como criptografía de clave pública.

La diferencia con la simétrica es que se usan dos llaves, una pública y otra privada. El

Tanto remitente como destinatario tienen la llave pública, la privada la conserva el destinatario. Con esta llave pública, el remitente cifra la información y la envía al destinatario. El destinatario fusiona la llave pública con la privada y luego aplica el algoritmo para descifrar la información.

Lo bueno de la criptografía asimétrica, desde un punto de vista de la seguridad, es que no hay riesgo porque la llave pública la pueda tener cualquiera mientras la llave privada se mantenga a buen recaudo.

La llave pública se envía mediante certificado digital, un archivo que envía el servidor.

La criptografía asimétrica es ideal en casos donde la información esté en tránsito.

Algoritmos populares:

  • DHE (Diffie-Hellman)
  • RSA (Rivest–Shamir–Adleman)

Alugnos protocolos que usan un certificado digital:

  • HTTPS
  • S/MIME (se utiliza en correo electrónico)
  • LDAPS (Active Directory)

En Windows, los certificados y autoridades certificadoras en las que confía el sistema se puede ver desde el programa certlm

Laboratorio: uso de Veracrypt para cifrado de disco

VeraCrypt se puede usar para cifrar una parte o todo un disco o unidad USB. También se pueden crear contenedores.

Utiliza criptografía simétrica.

Para nuestro ejemplo, crearemos un contenedor: Create Volume:

  1. Create an encrypted file container
  2. Standard VeraCrypt volume
  3. Elegiremos la ubicación y nombre para el contenedor.
  4. Elegimos el algoritmo de cifrado (AES) y el de hash (SHA-512).
  5. Establecemos un tamaño del contenedor.
  6. Establecemos una contraseña para el acceso al contenedor.
  7. A la hora de formatear el volumen, elegimos el sistema de archivos (FAT, NTFS…) y moveremos el ratón de forma aleatoria para crear una clave criptográfica más segura.

AES es considerado uno de los algoritmos más seguros hoy en día

Para poder usar el contenedor recién creado necesitamos también de VeraCrypt. Primero seleccionamos una unidad para nuestro uso (que no exista). Luego buscamos nuestro contenedor (Select File) y pulsamos en Mount. Nos pedirá la contraseña que establecimos en la creación del contenedor.

Ahora tendremos una nueva unidad en el equipo que mostrará el contenido de nuestro contenedor y donde podremos ir añadiendo archivos que serán cifrados por VeraCrypt.

Cuando terminemos, volvemos a VeraCrypt y desmontamos el contenedor pulsando en Dismount.

El contenedor se puede mover entre diferentes equipos y sistemas operativos siempre y cuando tengamos instalado VeraCrypt en esos sistemas.

PKI

Conoceremos lo que es una PKI (Public Key infrastructure) infraestructura de clave pública).

Un PKI es una infraestructura de red, servidores la cual permite la generación, almacenamiento, aprobación y revocación de certificados digitales y llaves criptográficas. Estas infraestructuras poseen políticas definidas. Puede ser una infraestructura física (HSM) o virtual.

HSM (Hardware Security Module, módulo de seguridad de hardware)

Existen PKIs públicas y privadas.

Componentes de una PKI:

  • CA Root. También necesitan su certificado digital.
  • CRL (opcional): Lista de revocación de certificados. Base de datos que contiene certificados digitales que no se quieren usar (por estar mal creados, vencidos, etc)
  • SubCA: apoyo a la CA Root. También necesitan su certificado digital.

Un cliente hace un pedido a un administrador de la PKI que realizará las operaciones necesarias para saber si se apruebe el pedido o no y en caso positivo crear el certificado.

Laboratorio: solicitar un certificado digital a una entidad pública

Cuando tenemos una web pública (expuesta en Internet) y queremos usar HTTPS, necesitamos un certificado digital.

Ejemplo de empresa que tienen PKI para generar certificados digitales: digicert

Un certificado SAN puede tener varios subdominios.

Laboratorio: solicitar un certificado digital privado

Pasos:

  1. Creación de certificado CA root.
  2. Creación de certificado digital para nuestra web.
    1. Este certificado será aprobado y firmado por la CA root.

El laboratorio lo haremos con xca

Una vez abierto el programa, tenemos que crear una nueva base de datos: Archivo → Nueva base de datos. Elegimos una ubicación y establecemos una contraseña.

Para crear la CA root (quien aprobará y firmará los certificados digitales): Pestaña Certificados → Nuevo certificado:

  • Origen: por defecto todo, menos la plantilla que elegimos [default] CA.
  • Sujeto: rellenamos campos para identificar el certificado digital.
    • Nombre interno: CA Root Test
    • countryName: ES
    • organizationName: Test
    • OrganizationalUnitName: TEST CA
    • commonName: CA Root Test
    • Pulsamos en Generar una nueva clave
  • Extensiones: damos 20 años de validez. Ponemos tanto tiempo porque los CA root suelen estar en los sistemas operativos y relizar una renovación es bastante complejo.
  • Uso de la clave: por defecto (Certificate Sign y CRL Sign)
  • Netscape: eliminamos todo lo que se haya seleccionado o escrito.
  • Avanzadas: vemos un resumen de lo hecho hasta ahora.
  • Comentarios

Ya habremos creado nuestro certificado raíz (CA Root).

Ahora tendríamos que exportar el certificado e instalarlo en nuestro sistema operativo. Para ello, en el mismo programa, pulsamos en Exportar. Elegimos dónde exportarlo y elegimos el formato PEM.

Ahora, si nos dirigimos a su ubicación, podremos instalarlo en nuestro equipo. Lo guardaremos en el almacén de certificados llamado “Entiedades de certificación raíz de confianza” (Trusted Root Certification Authorities). Al finalizar, si vemos el certificado ya no nos sale la advertencia de que “este certificado no es de confianza”.

Hay que tener cuidado con los certificados que instalamos ya que un atacante podría haber creado un certificado raíz para que confíe en una aplicación que no debería ser de confianza. Hay que revisar siempre quién es la autoridad certificadora de un certificado digital.

Ahora crearemos el certificado para un sitio web. De vuelta al programa, en la pestaña Certificados, pulsamos en Nuevo certificado:

  • Origen: marcamos “Usar este certificado para firmar” y como plantilla “TLS server”
  • Sujeto: rellenamos campos para identificar el certificado digital.
    • Nombre interno: xyz.com
    • countryName: ES
    • organizationName: Test
    • OrganizationalUnitName: TEST CA
    • commonName: xyz.com
    • Pulsamos en Generar una nueva clave
  • Extensiones: dejamos todo por defecto, aunque indicamos que sea tipo SAN (DNS:xyz.com, DNS:ventas.xyz.com, DNS:compras.xyz.com)
  • Uso de la clave: por defecto (Digital Signature, Non Repudiation, Key Encipherment)
  • Netscape: eliminamos todo lo que se haya seleccionado o escrito.
  • Avanzadas: vemos un resumen de lo hecho hasta ahora.
  • Comentarios

El siguiente paso sería instalarlo en el servidor web o aplicación que lo necesite. Primero exportaríamos el certificado desde el mismo programa: pulsamos en Exportar. Elegimos ubicación y el formato PKCS #12 (el servidor va a necesitar la clave privada). Definimos una contraseña.

A diferencia del certificado raíz (CA root), este certificado no sería necesario instalarlo en los clientes, solo lo necesita el servidor. Luego será el servidor quien compartirá su clave pública con quien se comunique con él.

Recursos

  • SSL Server Test: verificar un certificado digital instalado en un servidor web. Útil para descubrir errores con el certificado o configuración del servidor de acuerdo al cifrado.
informatica/seguridad/cursos/tecnologias_y_buenas_practicas_sobre_la_ciberseguridad/criptografia.txt · Última modificación: por tempwin