Está en la página 1de 22

Cifrado cimetrico:

Cuando eras pequeño, 


¿alguna vez te comunicaste con tus hermanos en un lenguaje secreto cerca de tus
padres? 
Realmente no importaba lo que estuvieran hablando 
siempre y cuando tus padres no supieran qué era. 
Esa era la parte divertida, ¿verdad? 
Puede haber parecido un juego divertido cuando eras más joven. 
Pero desde que los humanos existimos, 
hemos creado maneras de mantener mensajes en secreto de los demás. 
En esta lección, vamos a ver cómo se lleva esto a cabo a través de la encriptación
simétrica, 
la encriptación asimétrica y los hashes. 
También repasaremos cómo describir los algoritmos más comunes en criptografía. 
Y aprenderemos a elegir el método criptográfico más apropiado 
en cualquier situación. 
Pero antes de pasar a los detalles de la criptografía, los diversos tipos 
presentes en nuestras aplicaciones, repasemos un poco de terminología 
y de principios generales que te ayudarán a entender los detalles más adelante. 
El tema de la criptografía, 
o el arte de ocultar mensajes de los enemigos potenciales, ha existido durante miles de
años. 
Evolucionó enormemente con el advenimiento de la tecnología moderna, las
computadoras 
y las telecomunicaciones. 
La encriptación es el acto de tomar un mensaje, llamado texto sin formato, 
y aplicarle una operación llamada cifrado, 
de modo que, como salida, recibas un mensaje ilegible y confuso llamado texto
cifrado. 
El proceso inverso, tomar la salida confusa 
y transformarla de nuevo en texto sin formato legible, se llama desencriptación. 
Por ejemplo, veamos un simple cifrado, en el que sustituimos 
"e" por "o" y "o" por "y". 
Tomaremos el texto sin formato "Hello World" y lo introduciremos en nuestro cifrado
básico. 
¿Cómo crees que resultará el texto cifrado? 
Con suerte, obtienes "Holly Wyrld". 
El texto cifrado es bastante fácil de descifrar, ya que este 
es un ejemplo básico. 
Hay muchos cifrados o algoritmos mucho más complejos y seguros, 
los que veremos más adelante en la sección. 
En realidad, un cifrado consta de dos componentes: 
el algoritmo de encriptación y la clave. 
El algoritmo de encriptación es la lógica o proceso subyacente 
que se aplica para convertir texto sin formato en texto cifrado. 
Estos algoritmos suelen ser operaciones matemáticas muy complejas. 
Pero también hay algunos algoritmos muy básicos que podemos estudiar más de
cerca 
y que no necesariamente requieren un doctorado en matemáticas para su
comprensión. 
El otro componente crucial de un cifrado es la clave, 
que introduce algo único en tu cifrado. 
Sin la clave, cualquier persona que use el mismo algoritmo 
sería capaz de decodificar tu mensaje y, en realidad, no tendrías ningún secreto. 
En resumen, primero eliges un algoritmo de encriptación 
que te gustaría usar para codificar tu mensaje, a continuación, eliges una clave. 
Ahora tienes un cifrado. Puedes pasar tu texto sin formato por él 
y obtener un texto cifrado listo para enviar al mundo, 
seguro y a salvo de miradas indiscretas. 
¿No te hace sentir un misterioso personaje internacional? 
Espera, dado que el propósito subyacente de la criptografía 
es proteger tus secretos para que personas no autorizadas no puedan leerlos, tendría
sentido que, al menos, 
algunos de los componentes de un cifrado deban permanecer en secreto también,
¿verdad? 
Puedes argumentar que al mantener en secreto el algoritmo, 
tus mensajes están a salvo de que un tercero los husmee, y técnicamente no estarías
equivocado. 
A este concepto general se lo conoce como seguridad por oscuridad, 
lo que básicamente significa que si nadie sabe qué algoritmo 
o práctica general de seguridad estabas usando, entonces estamos a salvo de los
atacantes. 
Piensa en esconder la llave de tu casa bajo el tapete. 
Siempre y cuando el ladrón no sepa que escondes la llave de repuesto bajo el tapete,
estás a salvo. 
Pero una vez que se descubre esa información, 
toda la seguridad se va al diablo, junto con tus objetos de valor. 
Queda en claro que la seguridad por oscuridad. no es algo en lo que debas confiar 
para asegurar la comunicación o los sistemas, o para tu casa, de hecho. 
A este concepto global de criptografía se lo denomina principio de Kerckhoffs. 
Este principio establece que un criptosistema o colección de algoritmos 
para generación de claves y operaciones 
de encriptación y desencriptación que comprenden un servicio criptográfico 
debe permanecer seguro, incluso si se conoce todo sobre él excepto su clave. 
Lo que esto significa es que aun cuando tu enemigo conozca el algoritmo de
encriptación exacto 
que usas para proteger tus datos, 
no puede recuperar el texto sin formato de un texto cifrado interceptado. 
También puedes escuchar que a este principio se lo denomina máxima de Shannon 
o "El enemigo conoce el sistema". 
Las implicaciones son las mismas.
Reproduce el video desde :4:22 y sigue la transcripción4:22
El sistema debe permanecer seguro, incluso si tu adversario sabe exactamente 
qué tipo de sistemas de encriptación estás empleando, siempre que tus claves
permanezcan seguras. 
Ya definimos el cifrado, pero la disciplina general que abarca 
la práctica de codificar y ocultar mensajes de la vista de los demás se llama
criptografía. 
Al estudio de esta práctica se lo conoce como criptología. 
Lo contrario de esto, buscar mensajes ocultos 
o intentar descifrar mensajes codificados, se conoce como criptoanálisis. 
Estos dos campos han evolucionado conjuntamente a lo largo de la historia, con
nuevos cifrados 
y criptosistemas desarrollados a medida que los anteriores se descifraban o resultaban
vulnerables. 
Una de las primeras descripciones registradas del criptoanálisis 
es de un matemático árabe del Siglo IX, 
quien describió un método para el análisis de frecuencia para descifrar mensajes
codificados. 
El análisis de frecuencia es la práctica de estudiar la frecuencia 
con que las letras aparecen en un texto cifrado. 
La premisa por detrás de este tipo de análisis es que en las lenguas escritas, 
ciertas letras aparecen con más frecuencia que otras 
y algunas letras se agrupan más comúnmente que otras. 
Por ejemplo, las letras más usadas en el idioma inglés son: 
"e", "t", "a" y "o". 
Los pares más comúnmente vistos de estas letras son "th", "on" y "an". 
Algunos cifrados, en especial la transposición clásica 
y los cifrados por sustitución, conservan la frecuencia relativa de las letras en el texto
sin formato. 
Y, por ende, son potencialmente vulnerables a este tipo de análisis. 
Durante la Primera Guerra Mundial y la Segunda Guerra Mundial, 
la criptografía y el criptoanálisis desempeñaron un papel cada vez más importante. 
Hubo un alejamiento del análisis lingüístico y de frecuencia 
y un acercamiento hacia un análisis más basado en la matemática. 
Esto se debió al desarrollo de cifrados más complejos y sofisticados. 
Un importante punto de inflexión en el campo del criptoanálisis fue durante la
Segunda Guerra Mundial, 
cuando los aliados de Estados Unidos comenzaron a incorporar 
procedimientos matemáticos sofisticados para descifrar esquemas de cifrado de
acceso. 
También se vio el uso por primera vez de tecnología de automatización 
aplicada al criptoanálisis en Inglaterra, en Bletchley Park. 
La primera computadora digital programable, 
llamada Colossus, se desarrolló para ayudar en esta iniciativa. 
Si bien las primeras computadoras se usaron para descifrar criptografía, 
esto abrió la puerta para un gran salto hacia adelante 
y un desarrollo de criptosistemas mucho más sofisticados y complejos. 
La esteganografía es una práctica relacionada, pero claramente diferente de la
criptografía. 
Es la práctica de ocultar información de los observadores, pero sin codificarla. 
Piensa en escribir un mensaje con tinta invisible. 
El mensaje está en texto sin formato y no hace falta decodificación para leerlo, 
pero el texto está oculto de las miradas. 
La tinta es invisible 
y debe hacerse visible usando un mecanismo conocido por el receptor.
Reproduce el video desde :7:4 y sigue la transcripción7:04
Las técnicas esteganográficas modernas incluyen la inserción de mensajes 
y hasta de archivos en otros archivos como imágenes o videos. 
Para un observador casual, solo se vería una foto de un lindo cachorro. 
Pero si alimentas esa imagen en el software de esteganografía, 
este extraería un mensaje oculto del archivo de imagen. 
Lo que no es tan secreto es lo divertido que es aprender sobre todas 
estas cosas de espías, ¿no te parece? 
No te vayas, porque a continuación, hablaremos. sobre métodos y sistemas
criptográficos 
específicos.

el futuro del criptoanálisis

Se ha dicho que el advenimiento de la informática moderna ha supuesto la muerte del


campo del criptoanálisis; pero la práctica sigue viva y coleando: es la metodología la
que ha cambiado a medida que la tecnología ha transformado el panorama. A medida
que la computación cuántica continúa desarrollándose, existe la preocupación de que
el cifrado moderno pueda estar en riesgo de romperse. Esto se debe a que la mayoría
de los algoritmos de encriptación modernos se basan en que la factorización de
números primos grandes es computacionalmente difícil, algo que la computación
cuántica puede acelerar significativamente. Debido a esto, la computación cuántica
permitiría una factorización significativamente más rápida y ataques de fuerza bruta en
las claves de cifrado, lo que haría cuestionable el futuro de la criptografía moderna en
la inminente era de la computación cuántica.
Hasta ahora, hemos hablado bastante general sobre 
sistemas criptográficos y centrándonos principalmente en conceptos de cifrado pero
no de descifrado. 
Es lógico que si tienes que enviar un mensaje protegido a alguien, 
tu desearías que tu destinatario sea capaz de descifrarlo y leerlo, 
y tal vez incluso que responda con un mensaje propio codificado. 
Así que vamos a ver la primera categoría amplia de algoritmos de cifrado y 
entrar en más detalles acerca de cómo funciona junto con algunos pros y contras. 
Cuando cubrimos a principio de Kerchhoff antes, 
¿Recuerdas cual es el componente crucial del cifrado para mantener el secreto? Así
es. 
La clave debe mantenerse privada para asegurarse de que 
los espías no son capaces de decodificar mensajes encriptados. 
En este escenario, nosotros estamos suponiendo que el algoritmo en 
uso es lo que se conoce como algoritmo de clave simétrica. 
Estos tipos de algoritmos de cifrado se llaman simétricos porque 
utilizan la misma clave para cifrar y descifrar mensajes. 
Tomemos un simple ejemplo de un algoritmo de cifrado de clave simétrica 
para ver todo el proceso de cifrado y descifrado de un mensaje. 
Un cifrado por sustitución es un mecanismo de cifrado 
que sustituye partes de tu texto plano con texto cifrado. 
Recuerdas el ejemplo de Hola mundo de antes. 
Es un ejemplo de cifrado por sustitución 
ya que estamos sustituyendo algunos caracteres con otros diferentes. 
En este caso, la clave sería la asignación de caracteres entre 
texto plano y texto cifrado sin saber cuales letras son reemplazadas. 
Tu podrías descodificar el texto cifrado y asi recuperar el texto plano fácilmente. 
Si tienes la clave o la tabla de sustitución, 
entonces puedes revertir el proceso fácilmente y descifrar 
el mensaje cifrado sólo realizando la operación inversa. 
Un ejemplo bien conocido de un cifrado por sustitución es el cifrado de César, 
que es un alfabeto de sustitución. 
En este caso, tu estas reemplazando caracteres en el alfabeto con 
otros generalmente por desplazamiento o rotación del alfabeto, 
un conjunto de números o caracteres. 
El número de desvío es la clave. 
Otro ejemplo popular de esto se conoce como R O T 13 o ROT-13, 
donde el alfabeto es desplazado13 lugares, 
pero realmente ROT-13 es una cifrado de Cesar que utiliza una clave de 13. 
Volvamos a nuestro ejemplo de Hola mundo y continuemos 
la codificación usando nuestro cifrado ROT-13. 
Nuestro criptograma acaba siendo URYYB JBEYQ. 
Para revertir este proceso y volver al texto, 
sólo realizamos la operación inversa 
buscando en la tabla los caracteres asignados a las salidas. 
Tu podrías notar algo acerca de la tabla de asignación de ROT-13 
o el hecho de que estamos compensando el alfabeto por 13 caracteres. 
Trece es exactamente la mitad del alfabeto. 
Esto resulta en la cifra de ROT-13 es un inverso de sí mismo. 
Lo que significa que puedes recuperar el texto plano del 
texto cifrado mediante la realización de la operación de ROT-13 en el texto cifrado. 
Si tuviéramos que elegir una clave diferente, digamos que ocho, 
¿podemos hacer lo mismo? Vamos a ver. 
Esta es la tabla de asignación para un desplazamiento de ocho, 
que nos da el texto cifrado de OLSSV DVYSK. 
Si realizamos esto a través del cifrado una vez más, 
obtenemos la siguiente salida VSZZC KCFZR. 
Eso no funciona para revertir el proceso de cifrado, verdad? 
Hay dos categorías más de cifrado de clave simétrica. 
Eston son cifrados de bloque o son cifrados de flujo. 
Esto se refiere a cómo funcionan los algoritmos de cifrado para cifrar el texto plano. 
Un cifrado de flujo como su nombre indica, 
toma una cadena de entrada y la cifra un carácter o un dígito a la vez, 
saliendo un carácter cifrado o dígito cifrado a la vez. 
Por lo tanto, hay una relación uno a uno entre los datos de entrada y los datos cifrados
de salida. 
La otra categoría de cifrados simétricos es el cifrado de bloques. 
El cifrado toma los datos de entrada 
los ubica en un cubo o bloque de datos que son de un tamaño fijo, 
Después codifica ese bloque entero como una unidad. 
Si los datos a cifrar no son lo suficientemente grandes como para llenar el bloque, 
el espacio adicional se rellena para asegurar que el texto encaja dentro de los bloques
uniformemente. 
Ahora hablando en términos generales, el cifrados de flujo es más rápido y menos
complejo de implementar, 
pero puede ser menos seguros que el cifrado de bloque. 
Si la generación y manejo de la clave no se hace correctamente, 
Si se utiliza la misma clave para cifrar datos dos o más veces, 
es posible romper el cifrado y recuperar el texto plano. 
Para evitar la reutilización de claves, 
se utiliza el vector de inicialización o IV. 
Esto es una cantidad de datos aleatorios que se integran en 
la clave de cifrado y la clave combinada resultante se usa para cifrar los datos. 
La idea detrás de esto es si tienes una clave maestra compartida, 
entonces genera una clave de cifrado una sola vez. 
Esta clave de cifrado se utiliza solamente una vez cada que se genera 
una nueva clave usando la clave maestra y el IV. 
Para que el mensaje cifrado sea decodificado, 
el IV debe ser enviado en texto plano junto con el mensaje cifrado. 
Un buen ejemplo de esto puede verse al inspeccionar la 
trama 802.11 de un paquete cifrado inalámbrico WEP . 
El IV se incluye como texto plano antes de la carga de datos cifrados. 
En el siguiente video, exploraremos el cifrado simétrico más detalladamente, 
ilustrando algunos de los más populares algoritmos 
y sumergiéndote en los pros y contras del uso de cifrado simétrico.

En la última sección, 
vimos los fundamentos precisos de los algoritmos de cifrado simétricos 
y te dimos un ejemplo básico del cifrado César, un tipo de cifrado por sustitución. 
No podríamos proteger nada de valor con ese cifrado, ¿verdad? 
Debe haber algoritmos simétricos más complejos y seguros, ¿no? 
Por supuesto, los hay. 
Uno de los primeros estándares de encriptación es DES, que significa 
estándar de cifrado de datos. 
DES fue diseñado en la década de 1970 por IBM, 
con algunas aportaciones de la Agencia de Seguridad Nacional de los Estados Unidos. 
DES fue adoptado como FIPS 
—Estándar federal de procesamiento de información— oficial para los EE. UU. 
Esto significa que el DES fue adoptado como norma federal para el cifrado 
y protección de los datos del gobierno. 
DES es un cifrado de bloque simétrico que usa tamaños de clave de 64 bits 
y opera en bloques de 64 bits de tamaño. 
Aunque el tamaño de la clave es, técnicamente, de 64 bits de longitud, 
8 bits se utilizan solamente para la comprobación de paridad, una forma simple de
comprobación de errores. 
Esto significa que la longitud real de la clave para DES es solo de 56 bits.
Reproduce el video desde :1:18 y sigue la transcripción1:18
Una nota rápida sobre los tamaños de clave de encriptación, ya que todavía no
hablamos de eso. 
En algoritmos de encriptación simétrica, 
la misma clave se utiliza para encriptar y desencriptar, todo lo demás es lo mismo.
Reproduce el video desde :1:30 y sigue la transcripción1:30
La clave es la pieza única que protege tus datos y la clave simétrica debe mantenerse
en secreto 
para garantizar la confidencialidad de los datos que se protegen. 
El tamaño de la clave, definido en bits, es el número total de bits 
o de datos que conforman la clave de encriptación. 
Puedes pensar en el tamaño de la clave como el límite superior 
para el total de claves posibles para un algoritmo de encriptación dado. 
La longitud de la clave es importantísima en criptografía, ya que básicamente 
define la resistencia potencial máxima del sistema. 
Imagina un algoritmo de encriptación simétrica ideal que no tenga defectos 
ni debilidades intrínsecas. 
En esta situación, la única manera posible en que un adversario vulnere tu
encriptación 
sería atacar la clave en lugar del algoritmo. 
Un método de ataque es, justamente, adivinar la clave y ver si el mensaje se decodifica
de manera correcta. 
Esto se conoce como ataque de fuerza bruta. 
Las claves más largas protegen contra este tipo de ataque. 
Tomemos como ejemplo la clave DES. 
64 bits de longitud menos los 8 bits de paridad nos da una longitud de clave de 56 bits. 
Esto significa que hay un máximo de 2 a la potencia 56 (2^56), 
o 72,000 billones de claves posibles. 
Eso parece una inmensidad de claves, y en la década del 70, lo era. 
Pero a medida que la tecnología avanzó y las computadoras se volvieron más rápidas y
eficientes, 
las claves de 64 bits rápidamente resultaron ser demasiado pequeñas. 
Lo que antes eran solo ataques teóricos sobre un tamaño de clave 
se hizo realidad en 1998 cuando la EFF, Electronic Frontier Foundation, 
desencriptó un mensaje con encriptación DES en tan solo 56 horas. 
Debido a la fragilidad inherente del pequeño tamaño de la clave DES, 
se diseñaron y propusieron algoritmos de reemplazo. 
Aparecieron varios nuevos en los años 1980 y 1990. 
Muchos mantuvieron el tamaño de bloque de 64 bits, pero usan un tamaño de clave
mayor, 
lo que permite el reemplazo más fácil de DES. 
En 1997, el NIST, Instituto Nacional de Normas y Tecnología de los EE. UU., 
quiso reemplazar DES con un nuevo algoritmo, y en 2001, 
adoptó AES, o estándar de cifrado avanzado, después de un concurso internacional. 
AES es también el primer y único cifrado público aprobado para su uso 
con información súper secreta por la Agencia de Seguridad Nacional de los Estados
Unidos. 
AES es también un cifrado en bloque simétrico, similar a DES, al cual reemplazó. 
Pero AES usa bloques de 128 bits, el doble del tamaño de los bloques DES, 
y admite longitudes de clave de 128 bits, 192 bits o 256 bits. 
Debido al gran tamaño de la clave, los ataques de fuerza bruta a AES son solo teóricos
por ahora, 
porque la potencia de cálculo requerida (o el tiempo requerido usando tecnología
moderna) 
supera cualquier cosa factible en la actualidad. 
Quiero señalar que estos algoritmos son, en sí mismos, los diseños generales 
de los cifrados. 
Estos diseños, entonces, deben implementarse en cualquier software o hardware 
antes de que las funciones de encriptación puedan aplicarse y usarse. 
Algo importante a tener en cuenta al considerar diversos algoritmos de encriptación 
es su velocidad y facilidad de implementación. 
De manera ideal, un algoritmo no debería ser demasiado difícil de implementar 
porque una implementación complicada puede dar lugar a errores 
y a la pérdida potencial de seguridad. 
La velocidad es importante porque, a veces, los datos se encriptarán 
haciéndolos pasar a través del cifrado varias veces. 
Estos tipos de operaciones criptográficas terminan siendo realizadas 
muy a menudo por dispositivos, por lo que cuanto más rápido se las pueda lograr 
con un mínimo impacto al sistema, mejor. 
Es por esto que algunas plataformas implementan estos algoritmos criptográficos en el
hardware 
para acelerar los procesos y eliminar algo de la carga de la CPU. 
Por ejemplo, las CPU modernas de Intel o AMD 
tienen instrucciones AES incorporadas en las propias CPU. 
Esto permite una velocidad computacional 
y una eficiencia mucho mayores al operar con cargas de trabajo criptográficas. 
Hablemos brevemente de lo que alguna vez fue un algoritmo muy usado y popular, 
pero desde entonces se ha demostrado que es débil y se desaconseja su uso. 
RC4, o Rivest Cipher 4, es un cifrado de flujo simétrico 
que fue adoptado generalizadamente debido a su sencillez y velocidad. 
RC4 admite tamaños de clave desde 40 bits a 2,048 bits. 
La debilidad de RC4 no se debe a los ataques de fuerza bruta, 
sino a que el cifrado en sí tiene debilidades y vulnerabilidades inherentes 
que no solo son teóricamente posibles. Hay muchos ejemplos de RC4 descifrados. 
Un ejemplo reciente de RC4 descifrado es el ataque RC4 NOMORE. 
Este ataque fue capaz de recuperar una cookie de autenticación 
de una conexión con encriptación TLS en tan solo 52 horas. 
Como este es un ataque al mismísimo cifrado RC4, 
cualquier protocolo que use este cifrado es potencialmente vulnerable al ataque. 
Aun así, RC4 se usó en un montón de protocolos de encriptación populares, 
como WEP para encriptación inalámbrica y WPA, el sucesor de WEP. 
También se lo admitió en SSL y TLS hasta 2015, cuando RC4 fue descartado 
en todas las versiones de TLS a causa a sus debilidades inherentes. 
Por este motivo, los navegadores más importantes descartaron por completo la
compatibilidad con RC4, 
junto con todas las versiones de SSL, y usan TLS en su lugar. 
La configuración segura preferida es TLS 1.2 con AES GCM, 
un modo específico de operación 
para el cifrado de bloques AES que, básicamente, lo convierte en un cifrado de flujo. 
GCM, o modo Galois/contador, trabaja tomando un valor inicial aleatorizado, 
aumentándolo y encriptando el valor, 
lo que crea bloques de texto cifrado secuencialmente numerados. 
Luego se incorporan los textos cifrados al texto sin formato que se encriptará. 
GCM es muy popular debido a que su seguridad se basa en la encriptación AES, 
junto con su desempeño, y el hecho de que puede ejecutarse en paralelo con gran
eficacia. 
Puedes leer más sobre el ataque RC4 NOMORE en la siguiente lectura. 
Ahora que vimos la encriptación simétrica 
y algunos ejemplos de algoritmos de encriptación simétrica, ¿cuáles son los beneficios 
o las desventajas de usar encriptación simétrica? 
Debido a la naturaleza simétrica del proceso de encriptación y desencriptación, 
su implementación y su mantenimiento son relativamente sencillos. 
Ese es un secreto compartido que debes mantener y proteger. 
Piensa en tu contraseña de Wi-Fi en casa. 
Hay un secreto compartido, tu contraseña de Wi-Fi, 
que permite que todos los dispositivos se conecten. 
¿Te imaginas tener una contraseña de Wi-Fi específica para cada uno de tus
dispositivos? 
Eso sería una pesadilla, además de dificilísimo de rastrear. 
Los algoritmos simétricos también son muy rápidos y eficientes para encriptar 
y desencriptar grandes lotes de datos. 
¿Cuáles son las desventajas de usar cifrado simétrico? 
Si bien tener un secreto compartido que encripta y desencripta 
parece conveniente desde el inicio, esto en realidad puede presentar algunas
complicaciones. 
¿Qué ocurre si tu secreto se pone en riesgo? 
Imagina que te roben tu contraseña de Wi-Fi y ahora tienes que cambiarla. 
Tienes que actualizar tu contraseña de Wi-Fi en todos tus dispositivos 
y en cualquier dispositivo que tus amigos o tu familia podrían traer. 
¿Qué tienes que hacer cuando un amigo o un familiar vienen de visita 
y quieren conectarse a tu Wi-Fi? 
Debes proporcionarles tu contraseña de Wi-Fi, 
o el secreto compartido que protege tu red Wi-Fi. 
Esto generalmente no es un problema, ya que es de esperar que conozcas a la
persona 
tú confías en ella, y por lo general es solo una o dos personas a la vez. 
¿Pero qué tal si tuvieras una fiesta en tu casa con 50 extraños? 
Nota al margen, ¿por qué tendrías una fiesta en tu casa con 50 extraños? 
De todos modos, ¿cómo pudiste darle la contraseña de Wi-Fi 
solo a las personas en las que confías sin que los extraños la escucharan? 
Las cosas podrían ponerse realmente peligrosas en poco tiempo. 
En la próxima lección, exploraremos otras formas, aparte de los algoritmos de clave
simétrica, para proteger los datos y la información.

Cifrado asimetrico o de clave publica:

En esta lección, vamos a ver la PKI, o infraestructura de clave pública. 


Alerta de spoiler: 
esto es algo fundamental para proteger las comunicaciones en Internet hoy en día. 
Antes hablamos de la criptografía de clave pública 
y de cómo se la puede usar para transmitir en forma segura datos a través de un canal
no confiable 
y verificar la identidad de un remitente mediante firmas digitales. 
PKI es un sistema que define la creación, el almacenamiento 
y la distribución de certificados digitales. 
Un certificado digital es un archivo que prueba que una entidad posee una
determinada 
clave pública. 
Un certificado contiene información sobre la clave pública, la entidad a la que
pertenece 
y una firma digital de un tercero que verificó esta información. 
Si la firma es válida y confiamos en la entidad que firmó el certificado, 
entonces podemos confiar en el uso de la clave pública para comunicarnos con
seguridad 
con la entidad que la posee. 
La entidad que es responsable de almacenar, emitir 
y firmar certificados se conoce como CA, o autoridad de certificación. 
Es un componente fundamental del sistema PKI. 
También hay una RA, o autoridad de registro, que es responsable 
de verificar las identidades de cualquier entidad que solicite que los certificados sean
firmados 
y almacenados por la CA. 
En general, este rol se agrupa con la CA. 
Se necesita un repositorio central para almacenar y también indexar claves de forma
segura, 
y un sistema de gestión de certificados de algún tipo 
facilita el almacenamiento y la emisión de certificados. 
Hay algunos tipos diferentes de certificados, 
con diferentes aplicaciones o usos. 
Con el que probablemente estés más familiarizado es el certificado de servidor
SSL/TLS. 
Este es un certificado que un servidor web presenta a un cliente 
como parte de la configuración inicial segura de una conexión SSL/TLS. 
No te preocupes, vamos a estudiar SSL/TLS con más detalle en una futura lección. 
El cliente, por lo general un navegador web, verificará que el sujeto del certificado 
coincida con el nombre de host del servidor al que el cliente está intentando
conectarse. 
El cliente también verificará que el certificado esté firmado 
por una autoridad de certificación en la que confíe. 
Es posible que un certificado sea válido para múltiples nombres de host. 
En algunos casos, puede emitirse un certificado comodín en el que se sustituye el
nombre del host 
con un asterisco, lo que indica validez para todos los nombres de host dentro de un
dominio. 
También es posible que un servidor use lo que se denomina un certificado de
autofirma. 
Tal vez adivinaste, a partir de su nombre, 
que este certificado fue firmado por la misma entidad que lo emitió. 
Esto sería, básicamente, firmar tu propia clave pública usando tu clave privada. 
A menos que ya hayas confiado en esta clave, este certificado no se podría verificar. 
Otro tipo de certificado es un certificado de cliente SSL/TLS. 
Este es un componente opcional de las conexiones SSL/TLS 
y se ve con menos frecuencia que los certificados de servidor. 
Como su nombre lo indica, estos son certificados que están vinculados a los clientes 
y se usan para autenticar el cliente ante el servidor, 
lo que permite el control de acceso a un servicio SSL/TLS. 
Estos son diferentes del certificado de servidor, ya que los certificados de cliente 
no son emitidos por una CA pública. 
Normalmente, el operador del servicio tendrá su propia CA interna 
que emite y gestiona certificados de cliente para su servicio. 
También hay certificados de firma de código que se usan 
para firmar programas ejecutables. 
Esto permite a los usuarios de estas aplicaciones firmadas verificar las firmas 
y asegurarse de que la aplicación no fue manipulada. 
También les permite verificar que la aplicación provino del autor del software 
y no es un gemelo malicioso. 
Ya mencionamos el modelo de confianza de la autoridad de certificación, pero no lo
explicamos. 
Vamos a tomarnos un tiempo para repasar cómo funciona todo. 
PKI depende en gran medida de las relaciones de confianza entre entidades 
y desarrolla una red o cadena de confianza. 
Esta cadena de confianza tiene que comenzar en alguna parte, 
y lo hace con la autoridad de certificación raíz. 
Estos certificados raíz son autofirmados porque son el inicio de la cadena 
de confianza. 
No hay autoridad superior que pueda firmar en su nombre. 
Esta autoridad de certificación raíz ahora puede usar el certificado autofirmado 
y la clave privada asociada para comenzar a firmar otras claves públicas 
y a emitir certificados. 
Genera una especie de estructura de árbol con la clave privada de la raíz en la parte
superior 
de la estructura. 
Si la CA raíz firma un certificado y establece un campo en el certificado llamado CA 
con el valor "True" (Verdadero), esto marca al certificado como una CA intermediaria o
subordinada. 
Esto significa que la entidad a la que se le emitió este certificado 
ahora puede firmar otros certificados. 
Y esta CA ostenta la misma confianza que la CA raíz. 
Una CA intermediaria también puede firmar a otras CA intermedias. 
Puedes ver como esta extensión de confianza de una CA raíz a intermediarias 
puede empezar a construir una cadena. 
Un certificado que no tiene autoridad como CA se conoce como una entidad final 
o certificado secundario (o de hoja). 
Al igual que una hoja en un árbol, es el final de la estructura del árbol 
y se lo puede considerar lo opuesto a las raíces. 
Quizás te preguntes cómo estas CA raíz terminan siendo de confianza en primer lugar. 
Bueno, esa es una muy buena pregunta. 
Para dar inicio a esta cadena de confianza, 
tienes que confiar en un certificado de CA raíz, de lo contrario, nada en la cadena es de
confianza. 
Esto se hace por distribución de certificados CA raíz a través de canales alternativos. 
Cada proveedor principal de SO envía una gran cantidad de certificados CA raíz de
confianza 
con su sistema operativo. 
Y, en general, tienen sus propios programas para facilitar la distribución de los
certificados 
CA raíz. 
La mayoría de los navegadores usarán el almacén de certificados raíz provisto por el
SO. 
Veamos en profundidad los certificados más allá de su función. 
El estándar X.509 es lo que define el formato de los certificados digitales. 
También define una lista de revocación de certificados, o CRL, 
que es un medio para distribuir una lista de certificados que ya no son válidos. 
El estándar X.509 se publicó por primera vez en 1988 
y la versión actual del estándar es la número 3. 
Los campos definidos en un certificado X.509 son: 
Versión: a qué versión del certificado X.509 estándar se adhiere. 
Número de serie: un identificador único para su certificado, asignado por la CA, 
lo que permite a la CA identificar y gestionar certificados individuales. 
Algoritmo de firma de certificado: 
este campo indica cuál es el algoritmo de clave pública que se usa 
para la clave pública y qué algoritmo de hash se usa para firmar el certificado. 
Nombre del emisor: 
este campo contiene información sobre la autoridad que firmó el certificado. 
Validez: esto contiene dos campos secundarios, "Válido desde" 
y "Válido hasta", que definen las fechas de validez del certificado. 
Sujeto: este campo contiene información que identifica a la entidad 
a la que se le emitió el certificado. 
Información de clave pública del sujeto: estos dos campos secundarios definen el
algoritmo 
de la clave pública junto con la propia clave pública. 
Algoritmo de firma de certificado: 
igual que el campo Información de clave pública del título, estos dos campos deben
coincidir. 
Valor de la firma del certificado: los datos de la firma digital en sí. 
También hay huellas digitales del certificado que en realidad no son campos 
en el certificado en sí, 
pero son computadas por los clientes al validar o inspeccionar certificados. 
Son sólo resúmenes de hash de todo el certificado. 
Puedes leer sobre el estándar X.509 completo en la siguiente lectura. 
Una alternativa al modelo PKI centralizado de establecimiento de confianza 
y vinculación de identidades es lo que conoce como red de confianza. 
Una red de confianza es cuando los individuos, en lugar de las autoridades de
certificación, 
firman las claves públicas de otras personas. 
Antes de que un individuo firme una clave, 
primero debe verificar la identidad de la persona a través de un mecanismo acordado. 
Por lo general, mediante verificación de algún tipo de identificación, 
licencia de conducir, pasaporte, etc. 
Una vez que se determina que la persona es quien dice ser, 
firmar su clave pública es básicamente responder por ella. 
Estás diciendo que confías en que esta clave pública pertenece a este individuo. 
Este proceso sería recíproco, es decir, ambas partes firmarían las claves del otro. 
En general, las personas que están interesadas en establecer una red de confianza 
organizarán lo que se llaman eventos de firma de claves, en los que los participantes 
realizan el mismo tipo de verificación y firmado. 
Al final del evento, todas las claves públicas deben haber sido firmadas por los demás
participantes, 
lo que establece una red de confianza. 
En el futuro, cuando uno de estos participantes del evento de firma inicial de claves 
establezca confianza con un nuevo miembro, la red de confianza se amplía para incluir 
a este nuevo miembro y los demás individuos también confían. 
Esto permite que diferentes redes de confianza sean unidas por individuos 
y permite que la red de confianza crezca.

En esta sección, veremos en profundidad algunas aplicaciones reales de los conceptos 


de encriptación que estudiamos hasta ahora. 
En la última sección, 
mencionamos SSL/TLS cuando hablamos de certificados digitales. 
Ahora que entendemos cómo funcionan los certificados digitales y el papel
fundamental 
que desempeñan las CA, veamos cómo todo eso protege el tráfico web por medio de
HTTPS. 
Tal vez ya oíste hablar de HTTPS, 
¿pero sabes exactamente qué es y en qué se diferencia de HTTP? 
Muy simple. HTTPS es la versión segura de HTTP, el Protocolo de transferencia de
hipertexto. 
Entonces, ¿cómo nos protege exactamente HTTPS en Internet? 
HTTPS también se puede llamar HTTP sobre SSL/TLS, 
ya que básicamente encapsula el tráfico HTTP 
en un canal seguro encriptado, y para ello usa SSL o TLS. 
Tal vez escuches que SSL y TLS se usan indistintamente, pero SSL 3.0, 
la última revisión de SSL, cayó en desuso en 2015, y TLS 1.2 
es la actual revisión recomendada, y la versión 1.3 todavía está en proceso. 
Ahora, es importante señalar que TLS es, en realidad, independiente de HTTPS, 
y es un protocolo genérico para permitir comunicaciones seguras 
y autenticación a través de una red. 
TLS también se usa para proteger otras comunicaciones aparte de la navegación web, 
como llamadas VoIP —como Skype o Hangouts—, correo electrónico, mensajería
instantánea 
y hasta la seguridad de la red Wi-Fi. 
TLS nos concede tres cosas. 
Uno, una línea de comunicación segura, 
lo que significa que los datos que se transmiten están protegidos de potenciales
intrusos. 
Dos, la posibilidad de que ambas partes de la comunicación se autentiquen, aunque
por lo general 
solo el servidor es autenticado por el cliente. 
Y tres, la integridad de las comunicaciones, lo que significa que hay verificaciones 
para asegurar que los mensajes no se pierdan ni alteren durante el tránsito. 
TLS básicamente proporciona un canal seguro para que una aplicación se comunique 
con un servicio, pero debe haber un mecanismo que establezca este canal
inicialmente. 
A esto se lo conoce como protocolo de enlace TLS. 
Sigamos adelante. 
El proceso del protocolo de enlace comienza con un cliente que establece una
conexión 
con un servicio TLS habilitado, al que en el protocolo se lo denomina ClientHello. 
Esto incluye información sobre el cliente, 
como la versión del TLS que admite, 
una lista de conjuntos de cifrado que admite y tal vez algunas opciones de TLS
adicionales. 
El servidor entonces responde con un mensaje ServerHello, 
en el que selecciona la versión más alta del protocolo que tenga en común con el
cliente 
y elige un conjunto de cifrado de la lista para usar. 
También transmite su certificado digital y un mensaje final ServerHelloDone. 
El cliente entonces validará el certificado que el servidor envió 
para garantizar que es de confianza y que está dirigido al nombre de host apropiado. 
Suponiendo que el certificado se verifica, 
el cliente entonces envía un mensaje ClientKeyExchange. 
Esto es cuando el cliente elige un mecanismo de intercambio de claves para establecer
de forma segura 
un secreto compartido con el servidor, el que se usará con un cifrado 
de encriptación simétrica para encriptar todas las comunicaciones posteriores. 
El cliente también envía un mensaje ChangeCipherSpec 
que indica que está cambiando a comunicaciones seguras ahora que tiene 
toda la información necesaria para comenzar a comunicarse por el canal seguro. 
A esto le sigue un mensaje Finished encriptado 
que también sirve para verificar que el protocolo de enlace se completó con éxito.
Reproduce el video desde :3:43 y sigue la transcripción3:43
El servidor responde con un mensaje ChangeCipherSpec 
y un mensaje Finished encriptado una vez que se recibe el secreto compartido. 
Una vez completado, los datos de la aplicación pueden comenzar a circular por el canal
ahora asegurado. 
Sorpréndalos. 
La clave de sesión es la clave de encriptación simétrica compartida 
usada en las sesiones TLS para encriptar los datos que se envían y reciben. 
Dado que esta clave se obtiene a partir de la clave pública-privada, si la clave privada 
se pone en riesgo, hay potencial para que un atacante decodifique todos los mensajes 
previamente transmitidos que se codificaron usando claves derivadas de esta clave
privada.
Reproduce el video desde :4:17 y sigue la transcripción4:17
Para defenderse contra esto, existe un concepto de "secreto hacia adelante". 
Esta es una propiedad de un sistema criptográfico para que, incluso en el evento 
que la clave privada se ponga en riesgo, las claves de la sesión siguen siendo seguras. 
SSH, o Secure Shell, es un protocolo de red segura 
que usa la encriptación para permitir el acceso a un servicio de red a través de redes
no seguras. 
Más comúnmente, verás el uso de SSH para acceso remoto a los sistemas basados en
línea de comando, 
pero el protocolo es súper flexible y tiene disposiciones para permitir 
que redes y tráfico arbitrario sobre esos puertos se tunelicen a través del canal
encriptado. 
Se lo diseñó originalmente como un reemplazo seguro del protocolo Telnet 
y de otros protocolos de shell de acceso remoto no seguro como rlogin o r-exec. 
Es muy importante que los protocolos de acceso remoto y de shell usen encriptación. 
De lo contrario, estos servicios estarán transmitiendo nombres de usuario y
contraseñas, 
junto con las pulsaciones de teclado y la salida del terminal, en texto sin formato. 
Esto abre la posibilidad de que un entrometido intercepte credenciales 
y pulsaciones de teclas, nada bueno. 
SSH usa criptografía de clave pública para autenticar la máquina remota 
a la que el cliente se está conectando y tiene disposiciones para permitir la
autenticación del usuario 
a través de certificados de cliente, si lo desea. 
El protocolo SSH es muy flexible y modular 
y admite una amplia variedad de mecanismos de intercambio de claves diferentes
como Diffie-Hellman, 
junto con una variedad de cifrados de encriptación simétrica. 
También admite diversos métodos de autenticación, 
entre ellos, métodos personalizados que puedes escribir. 
Al usar autenticación de clave pública, 
el usuario que quiere autenticarse genera un par de claves públicas. 
Luego debe distribuir esas claves públicas a todos los sistemas ante los que quiera
autenticar 
usando el par de claves. 
Al autenticarse, SSH garantizará que la clave pública presentada 
coincida con la clave privada, la que nunca debe estar fuera de la posesión del usuario.
Reproduce el video desde :6:10 y sigue la transcripción6:10
PGP significa bastante buena privacidad. 
¿Qué tal ese nombre creativo? 
Bueno, PGP es una aplicación de encriptación que permite la autenticación de datos 
junto con la privacidad de terceros, y depende de la encriptación asimétrica 
para lograrlo. 
Su uso más común es en comunicación por correo electrónico encriptada, 
pero también está disponible como una solución completa de cifrado de disco 
o para encriptar archivos, carpetas o documentos arbitrarios. 
PGP fue desarrollado por Phil Zimmerman en 1991 y estaba disponible gratuitamente 
para que todos lo usaran. 
Hasta se distribuyó el código fuente junto con el software. 
Zimmerman era un activista antinuclear 
y el activismo político lo impulsó a desarrollar el software de encriptación PGP 
a fin de facilitar las comunicaciones seguras para otros activistas. 
PGP cobró vuelo una vez publicado y se difundió por todo el mundo, 
lo que terminó por poner a Zimmerman en problemas con el Gobierno Federal de
Estados Unidos. 
En ese momento, las regulaciones de exportación federal de Estados Unidos 
clasificaban la tecnología de encriptación que utilizaba claves de más de 40 bits de
largo como municiones. 
Esto significaba que PGP estaba sujeto a restricciones similares que los cohetes, las
bombas, 
las armas de fuego, incluso las armas nucleares. 
PGP fue diseñado para usar claves no menores que 128 bits, por lo que tropezó 
con estas restricciones de exportación, y Zimmerman se enfrentó a una investigación
federal 
por la amplia distribución de su software criptográfico. 
Zimmerman tuvo un enfoque creativo para desafiar estas restricciones: 
publicó el código fuente en un libro impreso de tapa dura 
que se puso ampliamente a disposición. 
La idea era que los contenidos del libro debían estar protegidos por la Primera
Enmienda 
de la Constitución estadounidense. 
¿Muy inteligente? 
La investigación se cerró finalmente en 1996 sin que se presenten cargos 
y Zimmerman ni siquiera tuvo que ir a la corte. 
Puedes leer más acerca de por qué desarrolló PGP en la siguiente lectura. 
PGP se considera ampliamente como muy seguro, sin mecanismos conocidos para
vulnerar 
cifrado por medios criptográficos o informáticos. 
Se lo comparó con la encriptación de grado militar y hay numerosos casos 
en que la policía y el gobierno no fueron capaces de recuperar datos protegidos
mediante encriptación PGP. 
En estos casos, las agencias policiales tienden a recurrir a medidas legales para forzar 
la entrega de contraseñas o claves. 
Originalmente, PGP usaba el algoritmo RSA, 
pero finalmente fue reemplazado con DSA para evitar problemas con las licencias.

Hablemos de proteger el tráfico de red. 


Como vimos, la encriptación se usa para proteger datos 
tanto desde la perspectiva de privacidad como de la de integridad de los datos. 
Una aplicación natural de esta tecnología es proteger los datos en tránsito, 
¿pero y si nuestra aplicación no usa encriptación? 
¿Y si queremos brindarle acceso remoto a recursos internos 
demasiado sensibles para exponerlos directamente a Internet? 
Usamos una solución VPN, o red privada virtual. 
Una VPN es un mecanismo que te permite conectar de forma remota un host o una
red 
a una red privada interna y transmitir datos a través de un canal público 
como Internet. 
Puedes pensar en esto como una especie de túnel cifrado donde todo el tráfico de red 
de nuestro sistema remoto fluiría canalizando de forma transparente nuestros
paquetes 
por medio del túnel a través de la red privada remota. 
Una VPN también puede ser punto a punto, donde dos puertas de enlace se conectan
a través de una VPN 
uniendo básicamente dos redes privadas a través de un túnel encriptado. 
Hay un montón de soluciones VPN que aplican diferentes enfoques y protocolos 
con diferentes ventajas y desventajas. 
Repasemos algunas de las más populares. 
IPsec, o Protocolo de seguridad de Internet, 
es un protocolo VPN que se diseñó junto con IPv6. 
Originalmente se requería que fueran estándares compatibles con implementaciones
de IPv6, 
pero ese requisito fue descartado a la larga. 
Su uso con IPv6 es opcional. 
IPsec funciona encriptando un paquete IP 
y encapsulando el paquete encriptado dentro de un paquete IPsec. 
Luego, este paquete encriptado se enruta al terminal VPN, 
donde se lo desencapsula y desencripta, luego se lo envía al destino final. 
IPsec admite dos modos de operaciones, el modo de transporte y el modo túnel. 
Cuando se usa el modo de transporte, solo la carga útil del paquete IP está encriptada, 
lo que deja intactos los encabezados IP. 
Aviso: también se usan encabezados de autenticación. 
A los valores de encabezado se les aplica hash y se los verifica junto con las capas 
de transporte y aplicación. 
Esto evitaría el uso de cualquier cosa que modifique estos valores, 
como NAT o PAT. 
En el modo túnel, todo el paquete IP, el encabezado, la carga útil, etc., 
está encriptado y encapsulado dentro de un nuevo paquete IP con nuevos
encabezados. 
Si bien no es una solución VPN en sí misma, 
L2TP, o Protocolo de túnel de capa 2, se usa en general para admitir VPN. 
Una implementación común de L2TP es en conjunto con IPsec 
cuando se necesitan datos de forma confidencial, ya que L2TP no proporciona
encriptación por sí mismo. 
Es un protocolo de tunelización simple que permite encapsular 
diferentes protocolos 
o tráfico a través de una red que no puede admitir el tipo de tráfico que se está
enviando. 
L2TP también puede segregar y gestionar el tráfico. 
Los ISP utilizarán L2TP para brindar acceso de red al terminal de un cliente, 
por ejemplo. 
La combinación de L2TP con IPsec se conoce como L2TP/IPsec 
y se estandarizó oficialmente en el RFC 3193 de IETF (Internet Engineering Task Force). 
El establecimiento de una conexión L2TP/IPsec funciona negociando, en primer lugar, 
una asociación de seguridad IPsec que, a la vez, 
negocia los detalles de la conexión segura, incluido el intercambio de claves 
si se lo utiliza. 
También puede compartir secretos, claves públicas y una serie de otros mecanismos. 
Incluí un vínculo para que obtengas más información sobre esto en la próxima lectura. 
A continuación, se establece una comunicación segura mediante Encapsulating
Security Payload. 
Es una parte del conjunto de protocolos IPsec que encapsulan paquetes IP, 
lo que proporciona confidencialidad, integridad y autenticación de paquetes. 
Una vez establecida la encapsulación segura, se puede proceder 
con la negociación y el establecimiento del túnel L2TP. 
Los paquetes L2TP ahora se encapsulan mediante IPsec, 
lo que protege la información sobre la red interna privada. 
Una distinción importante para hacer en esta configuración es la diferencia entre
túnel 
y canal seguro. 
El túnel es proporcionado por L2TP, 
lo que permite el pasaje de paquetes sin modificar de una red a otra. 
El canal seguro, por otro lado, es proporcionado por IPsec, 
lo que aporta confidencialidad, integridad y autenticación de los datos que se
transmiten. 
SSL/TLS también se usa en algunas implementaciones VPN para proteger el tráfico de
red, 
a diferencia de las sesiones o conexiones individuales. 
Un ejemplo de esto es OpenVPN, que usa la biblioteca OpenSSL 
para manejar el intercambio de claves y la encriptación de datos, junto con canales de
control. 
Esto también permite a OpenVPN hacer uso de todos los cifrados implementados 
por la librería OpenSSL. 
Los métodos de autenticación admitidos son secretos pre compartidos, autenticación
basada en certificados, 
y nombre de usuario/contraseña. 
La autenticación basada en certificados sería la opción más segura, 
pero requiere más sobrecarga de soporte y gastos dado que cada cliente debe tener
un certificado. 
La autenticación de nombre de usuario y contraseña puede usarse junto con la
autenticación 
por certificado, lo que ofrece capas adicionales de seguridad. 
Hay que señalar que OpenVPN no implementa autenticación 
por nombre de usuario/contraseña directamente. 
Utiliza módulos que se conectan a los sistemas de autenticación, 
lo que veremos en el siguiente módulo. 
OpenVPN puede operar sobre TCP o UDP, típicamente sobre el puerto 1194. 
Es compatible con actualización externa (push) de opciones de configuración de red de
servidor a cliente 
y admite dos interfaces para redes. 
Puede depender de un túnel de capa 3 o un TAP de Ethernet de capa 2. 
El TAP de Ethernet es más flexible, 
lo que le permite transportar una gama más amplia de tráfico. 
Desde la perspectiva de la seguridad, 
OpenVPN admite encriptación de hasta 256 bits a través de la librería OpenSSL. 
También se ejecuta en el espacio de usuario, 
lo que limita la seriedad del potencial de vulnerabilidades que pueden estar
presentes. 
Hay muchos acrónimos para asimilar. Tómate un minuto para repasarlos 
y leer más sobre ellos. Te veré en el siguiente video.
Hola de nuevo. Vamos a meternos en tema. 
Otra aplicación interesante de los conceptos de criptografía 
es el módulo de plataforma confiable, o TPM. 
Es un dispositivo de hardware, normalmente integrado en el hardware de una
computadora, 
que es un procesador criptográfico especializado. 
TPM ofrece generación segura de claves, 
generación de números aleatorios, certificación remota 
y vinculación y sellado de datos. 
Un TPM tiene una clave RSA secreta única, grabada en el hardware en el momento de
la fabricación, 
que le permite realizar cosas como la autenticación de hardware. 
Esto puede detectar cambios de hardware no autorizados en un sistema. 
La certificación remota es la idea de un sistema 
que autentica su propia configuración de software y hardware ante un sistema
remoto. 
Esto permite que el sistema remoto determine la integridad del sistema remoto. 
Esto se puede hacer con un TPM mediante generación de un hash seguro de la
configuración del sistema 
usando la clave RSA única incorporada en el propio TPM. 
Otro uso de esta clave de encriptación respaldada por hardware secreto es la
vinculación y el sellado de datos. 
Implica usar la clave secreta para obtener 
una clave única que luego se utiliza para la encriptación de datos. 
Básicamente, esto vincula los datos encriptados al TPM y, por extensión, 
al sistema en el que está instalado el TPM, 
ya que solo las claves almacenadas en el hardware en el TPM podrán desencriptar los
datos. 
El sellado de datos es similar a la vinculación, ya que los datos 
se encriptan usando la clave de encriptación respaldada por hardware. 
Pero para que los datos puedan desencriptarse, 
el TPM debe estar en un estado especificado. 
TPM es un estándar 
con varias revisiones que se puede implementar como un chip de hardware discreto, 
integrado en otro chip en un sistema, 
implementado en software de firmware o virtualizado en un hipervisor. 
La implementación más segura es el chip discreto, 
ya que estos paquetes de chips también incorporan 
resistencia a la manipulación física para evitar ataques físicos en el chip. 
Los dispositivos móviles tienen algo similar conocido como elemento seguro. 
Del mismo modo que un TPM, 
es un chip resistente a la manipulación a menudo incorporado 
en el microprocesador o integrado en la placa base de un dispositivo móvil. 
Suministra almacenamiento seguro 
de claves criptográficas y proporciona un entorno seguro para las aplicaciones. 
Una evolución respecto de los elementos seguros 
es el entorno de ejecución confiable, o TEE, que lleva el concepto un poco más lejos. 
Ofrece un entorno de ejecución aislado avanzado que se ejecuta junto con el SO
principal. 
Esto proporciona aislamiento de las aplicaciones 
respecto del SO principal y otras aplicaciones instaladas allí. 
También aísla los procesos seguros entre sí cuando se ejecutan en el TEE. 
Los TPM han sido criticados por confiar en el fabricante. 
Dado que la clave secreta se graba en el hardware en el momento de la fabricación, 
el fabricante tendría acceso a esta clave en ese momento. 
Es posible que el fabricante almacene 
las claves que luego podrían usarse para duplicar un TPM, 
lo que podría vulnerar la seguridad que el módulo debe proporcionar. 
Hubo un informe de un ataque físico a un TPM, lo que le permitió 
a un investigador de seguridad ver y acceder a todos sus contenidos. 
Pero este ataque requirió el uso de un microscopio electrónico 
y equipos Micron Precision para manipular un circuito TPM. 
Si bien el proceso insumió muchísimo tiempo 
y se requirió equipo altamente especializado, 
demostró que tal ataque es posible a pesar de las protecciones anti manipulación
implementadas. 
Puedes leer más sobre esto justo después de este video. 
Los TPM se utilizan más comúnmente para garantizar la integridad de la plataforma, 
impedir cambios no autorizados en el sistema, ya sea en software o hardware, 
y para encriptación completa del disco usando el TPM para proteger todo el contenido
del disco. 
La encriptación completa de disco, o FDE, 
como puede deducirse por su nombre en inglés, 
es la práctica de encriptar toda la unidad en el sistema. 
No solo los archivos sensibles en el sistema. 
Esto nos permite proteger todo el contenido del disco contra robos o manipulación de
datos. 
Ahora, hay un montón de opciones para implementar FDE, 
como el producto comercial PGP, 
Bitlocker de Microsoft, que se integra muy bien con los TPM, 
Filevault 2 de Apple, 
y el software de código abierto dm-crypt 
que proporciona encriptación para sistemas Linux. 
Una configuración FDE tendrá una partición 
o partición lógica que contenga los datos a encriptar. 
Normalmente, el volumen raíz, 
donde está instalado el SO. 
Pero para poder dar inicio al volumen, 
primero debe estar desbloqueado en el momento del arranque. 
Dado que el volumen está encriptado, 
el BIOS no puede acceder a los datos en este volumen a efectos de inicio. 
Es por esto que las configuraciones FDE tendrán 
una pequeña partición de inicio sin encriptar que contiene elementos como el kernel, 
el cargador de arranque y un netRD. 
En el momento del arranque, estos elementos se cargan y al usuario se le solicita 
que ingrese una frase de contraseña para desbloquear el disco y continuar el proceso. 
FDE también puede incorporar el TPM, 
usando las claves de cifrado TPM para proteger el disco. 
Y tiene integridad de plataforma para impedir 
el desbloqueo del disco si se modifica la configuración del sistema. 
Esto protege contra ataques como la manipulación de hardware 
y el robo o clonación de discos. 
Antes de cerrar este módulo sobre encriptación, 
quisiera mencionar el concepto de lo aleatorio. 
Anteriormente, cuando cubrimos los diversos sistemas de encriptación, 
surgió un punto en común en el que se basan estos sistemas. 
¿Notaste qué era? No importa si no te diste cuenta. 
Es la selección de números aleatorios. 
Este es un concepto muy importante en encriptación 
porque si tu proceso de selección de números no es verdaderamente aleatorio, 
entonces puede haber algún tipo de patrón que un adversario puede descubrir 
a través de la observación directa y el análisis de mensajes encriptados a lo largo del
tiempo. 
A algo que no es verdaderamente aleatorio se lo conoce como pseudoaleatorio. 
Es por esta razón que los sistemas operativos 
mantienen lo que se conoce como un grupo de entropía. 
Esto es esencialmente una fuente de datos aleatorios que permiten
iniciar generadores de números aleatorios. 
También hay generadores de números aleatorios y pseudoaleatorios especializados 
que se pueden incorporar en un dispositivo o servidor de seguridad 
para asegurarse de que se seleccionen números verdaderamente aleatorios al generar
claves criptográficas. 
Espero que estos temas sobre criptografía te hayan resultado interesantes e
informativos. 
Lo fueron para mí cuando supe de ellos por primera vez. 
En el siguiente módulo, veremos las tres A de la seguridad: 
autenticación, autorización y auditoría. 
Estas tres A son asombrosas y te contaré por qué en el siguiente módulo. 
Pero antes de que lleguemos allí, 
un cuestionario final sobre los conceptos criptográficos que vimos hasta ahora.

También podría gustarte