domingo, 28 de agosto de 2016

Ruta directorio en variable de entorno. Windows. Instalación Python

En entradas anteriores trabajamos con las variables de entorno de los sistemas operativos Ubuntu y OS X; es turno de Windows.

Imagen 1. Ruta directorio en variable de entorno. Windows. Instalación Python


Los pasos a seguir se ejemplificarán con la instalación del lenguaje de programación Python, con el que desarrollé mi TFG, de manera que pueda utilizarse desde el símbolo de sistema, es decir, la terminal de Windows.

En la imagen 2 se observa cómo el ordenador aún no está listo.

Imagen 2. Variable de entorno no configurada


1. Instalar Python

De no estar instalado, el primer paso es descargar desde su web el instalador, en este caso se utiliza la versión 2.7.x, y ejecutarlo.

2. Modificar variable de entorno

Ya con el lenguaje Python preparado, se añade la ruta del archivo que permite su ejecución dentro de la variable de entorno 'Path' de manera que simplemente escribiendo el nombre de dicho archivo en el símbolo de sistema podamos trabajar. Indicar que en la entrada que trataba este tema para Ubuntu se realizó una explicación de qué es el path de los sistemas operativos.

Para ello se copia la ruta al archivo 'python' creado tras la instalación, por defecto es 'C:\Python27'. Accedemos a 'Configuración avanzada del sistema', que aparece al ver las propiedades del equipo como se muestra en la imagen 3, y después a 'Variables de entorno...', imagen 4.

Imagen 3. Propiedades del equipo

Imagen 4. Acceso a variables de entorno

Click en la variable de entorno 'Path', imagen 5, y elegir 'Nueva...', en la ventana que aparezca se añade al final la ruta copiada anteriormente, imagen 6.

Imagen 5. Variables de entorno

Imagen 6. Añadir ruta en variable de entorno 'Path'


Aceptamos todos los cambios y antes de poder ejecutar el comando 'python' en la terminal esta debe cerrarse o aparecerá el aviso de la imagen 2. Una vez abierta de nuevo ya está todo listo, en la imagen 7 se muestra cómo ha funcionado correctamente.

Imagen 7. Todo listo para trabajar desde el símbolo del sistema

Es obvio que independientemente del sistema operativo en el que nos encontremos, las variables de entorno siempre facilitan nuestra labor.

Un saludo,

Carlos A. Molina


Webs


Entrada variables de entorno Ubuntu
https://cmoli.blogspot.com.es/2016/04/ruta-directorio-en-variable-de-entorno.html

Entrada variables de entorno OS X
https://cmoli.blogspot.com.es/2016/06/ruta-directorio-en-variable-de-entorno.html

Entradas TFG Python
https://cmoli.blogspot.com.es/2016/03/tfg-i-nmap-scan-instalacion.html
https://cmoli.blogspot.com.es/2016/03/tfg-ii-nmap-scan-escaneo-de-hosts.html
https://cmoli.blogspot.com.es/2016/03/tfg-iii-nmap-scan-escaneo-de-puertos.html

Python, descarga
https://www.python.org/downloads/

Imágenes de uso libre
https://pixabay.com/

domingo, 21 de agosto de 2016

Publicidad personalizada

Estamos acostumbrados a recibir publicidad en las páginas webs que visitamos ajustada a nuestros gustos gracias a la información que las grandes compañías van almacenando de nuestras búsquedas en Internet. Este viernes un compañero, al que estoy muy agradecido por toda la ayuda ofrecida, me explicó su esquema de funcionamiento.

Imagen 1. Publicidad personalizada

En el esquema, representado en la imagen 2, pueden diferenciarse tres componentes principales: el usuario que navega por Internet, la página web visitada con publicidad, y el proveedor de publicidad que escoge la más adecuada.

Imagen 2. Esquema publicidad


  • Usuario

Nosotros cuando navegamos por Internet.

Aporta información a las compañías antes mencionadas mediante los datos que las páginas webs almacenan sobre su navegación por ellas, utilizando para ello por ejemplo las cookies que quedan guardadas en el ordenador o dispositivo utilizado.


  • Página web con publicidad.

Es la web que visitamos y que en ciertas partes muestra publicidad; estas zonas de publicidad pueden ser los llamados banners.

No es labor de la página web elegir los anuncios que aparecerán, sino del proveedor de publicidad que paga a esta web por permitir mostrar dichos anuncios.


  • Proveedor de publicidad

Como se ha dicho, se encarga de determinar qué anuncios mostrar a cada usuario, para ello tiene dos alternativas, o trabajar él mismo con la información que posee del usuario objetivo, o que este trabajo lo realicen otras compañías mediante sus APIs como por ejemplo Google o Amazon.


Todo esto por supuesto abre el debate sobre lo fácil que estamos entregando valiosa y numerosa información sobre nosotros ya que el partido que puede sacarse de ella aumenta día a día sin que seamos conscientes.

Terminar indicando que esta entrada es un pequeño resumen de una de las muchas cosas sobre las que estoy aprendiendo, por lo que estoy muy agradecido.

Imagen 3. Esquema original

Muchas gracias,

Carlos A. Molina

Webs

Imágenes de uso libre
https://pixabay.com/

Banner

Cookie

API

domingo, 14 de agosto de 2016

Navegación más segura. VirusTotal

Siempre que accedemos a una página web surge la duda sobre si será maliciosa e infectará el equipo. Si bien es verdad que nuestro antivirus vigila la navegación y analiza los archivos deseados, ¿Qué tal sería utilizar más de 50 antivirus de manera gratuita? Esto es lo que proporciona la web VirusTotal, permitiendo ver la seguridad de un archivo o de una página web indicándole la dirección de esta.

Imagen1. Navegación más segura. VirusTotal

El funcionamiento es muy sencillo. Como se muestra en la imagen 2, tras acceder a la web y escoger la opción URL, se pega la dirección a analizar; primero se dará un resumen de los resultados del último análisis efectuado y almacenado en la web, siendo posible volver a realizarlo.

Imagen 2. Indicar dirección a analizar

El resultado, ver figura 3, indica los antivirus que detectan como maliciosa la página, siendo posible un análisis más exhaustivo gracias a diferentes opciones como por ejemplo 'información adicional' que proporciona datos como la dirección IP de la página estudiada o enlaces a otras webs con mayor información.

Imagen 3. Resultado del análisis

Por supuesto una rápida búsqueda en Internet devolverá gran cantidad de webs con esta misma función, las cuales permiten otras maneras de trabajar como por ejemplo utilizar la dirección IP en lugar del dominio. En el caso de VirusTotal se tiene la ventaja de analizar justamente la dirección que se le indique, no solamente la principal como se ha visto en las imágenes, ya que ha analizado la dirección completa en lugar de www.jcmarcadolib.com.

También en anteriores entradas de este blog se nombraron algunos recursos para aumentar nuestra tranquilidad al navegar, como la extensión WOT, o las distintas posibilidades que pueden encontrarse en las listas de webs y aplicaciones de utilidad.

¡Ojalá ayude en la navegación diaria!

Un saludo,

Carlos A. Molina

Webs utilizadas

- Entrada blog sobre WOT
https://cmoli.blogspot.com.es/2016/01/wot-navegacion-mas-segura.html

- Entrada blog webs de utilidad
https://cmoli.blogspot.com.es/2016/01/webs-de-utilidad.html

- Entrada blog aplicaciones de utilidad
https://cmoli.blogspot.com.es/2016/03/aplicaciones-utiles.html

- VirusTotal. Logotipo y ejemplo de uso
https://www.virustotal.com/

- Lista dominios maliciosos
https://www.malwaredomainlist.com/mdl.php

sábado, 16 de julio de 2016

WinMerge II. Filtros

La semana pasada se explicó el funcionamiento básico de WinMerge; en esta entrada se describe un aspecto un poco más avanzado y de gran utilidad, los filtros.


WinMerge II. Filtros

En mi caso esta característica me ha ayudado mucho ya que al comparar carpetas de Windows con otras provenientes del sistema operativo OS X copiadas a través de un USB, siempre se crean archivos que empiezan con '._' o simplemente por punto, lo cual es realmente molesto ya que la herramienta devuelve que hay diferencias en las carpetas pero en realidad estos archivos no son necesarios.

Gracias a los filtros puede indicarse al programa qué no debe tener en cuenta al comparar. Debe resaltarse que pese a no tenerlo en cuenta en la comparación, en los resultados sí aparecerán estos archivos aunque con una 'X' e indicando que han sido omitidos.


Paso 1. Incluir filtro


Los filtros se guardan en archivos de extensión '.flt' para utilizarlos existen dos maneras de proceder.


1. Al comparar dos carpetas, imagen 2 de la entrada anterior, debe elegirse el filtro deseado, utilizar 'Seleccionar...' al lado de 'Filtro:'.

2. De haber comparado ya las carpetas y tener el resultado en pantalla, imagen 3 de la entrada anterior, de querer aplicar ahora un nuevo filtro u otro distinto, se escoge en el menú 'Herramientas > Filtros...'  y se selecciona el deseado accediendo a la ruta donde esté guardado el archivo '.flt'.

Para trabajar con filtros creados por nosotros, ver 'Paso 2', tras crear un archivo de la extensión '.flt', debe instalarse en el programa escogiendo dicho archivo después de acceder desde el menú a  'Herramientas > Filtros... > Instalar...', en este caso hay que tener en cuenta los aspectos descritos en el 'Paso 3'.


Paso 2. Crear filtro



Hay dos tipos de filtros, los que indican con qué archivos trabajar únicamente y lo que especifican qué archivos no tener en cuenta. A continuación se muestra un ejemplo de cada uno.


Archivo: notInit.flt
--------------------------------------------------------------------------------------------------------------------------
## This is a directory/file filter for WinMerge
## This filter avoids files that start with specified characters
## name: not necessary same name as file
name: notInit
desc: Avoid files that start with specified characters

## Avoid
def: include

## Filters for filenames begin with f:
## Filters for directories begin with d:
## (Inline comments begin with " ##" and extend to the end of the line)

f: ^\. ## exclude .*.* files, \ for especial characters

#d: \\*$ ## Exlude subdirectories
--------------------------------------------------------------------------------------------------------------------------

Archivo: onlyExtension.flt
--------------------------------------------------------------------------------------------------------------------------

## This is a directory/file filter for WinMerge
## This filter only works with specified extensions
## name: not necessary same name as file
name: onlyExtensions
desc: Work only with specified extensions

## This is an exclusive filter, only works with indicated values
def: exclude

## Filters for filenames begin with f:
## Filters for directories begin with d:
## (Inline comments begin with " ##" and extend to the end of the line)

f: \.png$
f: \.pdf$

d: \\*$ ## Include subdirectories
--------------------------------------------------------------------------------------------------------------------------

Para utilizarlos ver lo explicado en 'Paso 1', tener en cuenta varios puntos importantes indicados en 'Paso 3'.


Paso 3. Actualizar filtro


Hay dos aspectos a resaltar cuando se modifica un filtro.

1. Si se actualiza el archivo de extensión '.flt' desde el bloc de notas por ejemplo, en el programa WinMerge no se actualizará dicho cambio por lo que debe eliminarse el filtro y volver a instalarse, ver 'Paso 1.

2. De modificar el filtro desde el programa ('Herramientas > Filtros... > Editar'), no se modificará el archivo '.flt' por lo que de usar filtros que queramos copiar de un ordenador a otro o conservarlos en una carpeta separada, recomiendo modificar el archivo y volver a instalarlo en el programa.


Como siempre, utilizar una herramienta de manera eficiente requiere invertir cierto tiempo para familiarizarse con sus características; tiempo bien invertido.

¡Un saludo!

Carlos A. Molina

Webs


Entrada anterior

Guía filtros en WinMerge

WinMerge Web

sábado, 9 de julio de 2016

Comparador de carpetas y archivos en Windows

Hoy se añade una nueva aplicación a las nombradas en una anterior entrada, las cuales ofrecían diferentes alternativas para comparar archivos y carpetas. En esta ocasión se trata de un programa para el sistema operativo Windows  que trabaja tanto con archivos como con carpetas, se darán unos consejos para un uso más cómodo.

Imagen 1. Comparador de carpetas y archivos en Windows

La aplicación es WinMerge y una vez instalada, para un uso más cómodo recomiendo estos dos consejos

1. Comparar subcarpetas

Esta opción es obligada de querer comparar el contenido entre dos carpetas. Para activarla una vez se hace click en el icono de las carpetas amarillas (opción Comparar), se selecciona Incluir subcarpetas.

Imagen 2. Incluir subcarpetas

Sobre la imagen anterior decir que de arrastrar los archivos o carpetas a la parte correspondiente de la ventana (al lado de Izquierda y Derecha) se evita tener que escribir manualmente la ruta; tampoco es necesario seleccionar ningún icono para realizar la comparación, con arrastrar lo deseado a la pantalla de la aplicación automáticamente tomará la ruta.

2. Visualización modo árbol

Personalmente, este es el mejor modo de poder comparar carpetas. Para activarlo, una vez se muestran los resultados de la comparación, click en la opción Ver de la barra de menú y escoger Modo Árbol. Al comparar los archivos se utilizan colores que indican si son iguales o diferentes y de este modo no tener que leer la columna con texto donde también se especifica.

Imagen 3. Visualización en modo árbol

Terminar indicando que el programa es capaz de comparar imágenes, hojas de cálculo, etc. utilizando para ello su versión binaria; y por supuesto, siempre hay que jugar con la herramienta para descubrir nuevas opciones como ver diferencias entre los archivos haciendo click sobre ellos una vez comparados, o los filtros, que seguro convertirán la herramienta en una de las más utilizadas una vez se sepan configurar.


Espero que os ayude en algún momento en que debáis saber qué diferencias puede haber entre varias copias o versiones.

Saludos


Webs


Entrada pasada sobre comparadores



WinMerge web

Imágenes de uso libre

lunes, 27 de junio de 2016

Ruta directorio en variable de entorno. OS X

En una entrada anterior se explicó la utilidad de poder agregar nuevas rutas en la variable de entorno para el sistema operativo Ubuntu así como los términos que intervienen. En esta ocasión se definirá cómo realizarlo para OS X.


Imagen 1. Ruta directorio en variable de entorno. OS X
A la hora de buscar en Internet existen numerosas posibilidades; en esta entrada explicaré la que utilizo normalmente para crear una variable de entorno permanente.

1. Acceder al archivo .bash_profile

Este archivo es el que contiene las variables con las rutas; la de este archivo, el cual debe crearse de no existir ya, es la siguiente, acceder utilizando la terminal:

cd /Users/NombreUsuario

2. Modificar el archivo .bash_profile

Ejecutando el comando nano

nano .bash_profile

se  escribe en el archivo la nueva ruta a guardar en una variable; puede añadirse al inicio de dicho archivo. Un ejemplo puede ser:

export SCANEO_HOME="/Users/moli/software/pentesting_core"


Tras esto salir del archivo utilizando control + x indicando que se desean guardar los cambios.

3. Aplicar cambios

Para poder utilizar la nueva variable simplemente debe cerrarse la terminal.

Por supuesto, una vez agregada la nueva variable que contiene la ruta puede utilizarse del mismo modo que se explicó para Ubuntu.


Con estos pequeños cambios se consigue tener un ordenador de trabajo más agradable al configurarlo a nuestro gusto.

¡Saludos!

Webs


Página consultada
https://coolestguidesontheplanet.com/add-shell-path-osx/

Entrada blog Ruta directorio en variable de entorno. Ubuntu
https://cmoli.blogspot.com.es/2016/04/ruta-directorio-en-variable-de-entorno.html

Imágenes de uso libre
https://pixabay.com

domingo, 19 de junio de 2016

Un juego con la mente

Con la anterior entrada recordé un problema de física; esta semana le toca a un juego que aprovecha el comportamiento de nuestro cerebro para dejarnos sorprendidos a todos.

Imagen 1. Un juego con la mente

Consiste en una serie de sencillas operaciones matemáticas que deben resolverse de cabeza lo más rápido posible, no es necesario recordar el resultado aunque se debe obtener antes de pasar a la siguiente; en Internet hay mucha información y variantes, utilizaré una que no es demasiado larga y cuya fuente se indica al final de esta entrada. ¡Empezamos!



""

15 + 6
3 + 56
89 + 2
12 + 53
75 + 26
25 + 52
63 + 32
Seguro que lo estás haciendo genial. ¡Vamos a por la última!
123 + 5



AHORA RÁPIDAMENTE DI UNA HERRAMIENTA Y UN COLOR
""








¿En qué herramienta y color has pensado? ¿En un martillo rojo tal vez? La mayoría de las personas así lo hemos hecho; tras la sorpresa queda preguntarse el porqué de esto. Básicamente se debe a la manera en que el cerebro organiza la información ya que crea categorías en las que hay un elemento más representativo por lo que de estar concentrados en algo, en este caso las operaciones matemáticas, y tener que pensar de manera súbita en otra cosa se recurre a dicho elemento en primer lugar; para herramientas es martillo y en color es el rojo, una explicación más detallada en el link al final de la entrada.

Por supuesto no todo el mundo piensa en martillo rojo, pero es lo más habitual; otra respuesta muy común es martillo verde o llave azul, así como sus diferentes combinaciones. Lo que si es seguro es que de no conocer el juego te habrá encantado.


Como este hay otros muchos en la web. ¡Una vez hecho uno siempre se quiere encontrar otros nuevos!


¡Saludos!


Carlos A. Molina


Webs


Preguntas del juego



Explicación



Otros juegos

Pon en tu buscador favorito martillo rojo y tendrás muchas webs con pruebas muy interesantes.

Imágenes de uso libre

domingo, 12 de junio de 2016

Relatividad. Dilatación del tiempo y contracción de longitudes

Mi primer año de carrera universitaria transcurrió en la Universidad Autónoma de Madrid con el Grado de Física. A pesar de que únicamente realicé el primer año todo lo que pude aprender me fascinó, así como los compañeros y profesores que tuve la suerte de conocer. Hoy he querido compartir un problema que nunca se me ha olvidado desde que lo estudiamos hace ya 7 años en la asignatura de Física 3.

Imagen 1. Relatividad. Dilatación del tiempo y contracción de longitudes

Una de las partes que más impresionan de la Física es la relatividad; la primera vez que el profesor nos habló de ella cogió su puntero láser y desplazándolo en un pequeño recorrido nos dijo que su tamaño cambiaba por el simple hecho de moverse.

Para explicar esto hay que tener en cuenta que existen dos sistemas de referencia a la hora de realizar mediciones; uno es en el que dicho objeto se encuentra en reposo, sistema de referencia propio, y el otro para el que el objeto se mueve, es decir, un observador externo.

En el sistema de referencia propio, al medir un intervalo de tiempo se tiene un valor menor que si se realiza la medida desde el sistema externo, lo que se conoce como dilatación del tiempo. Lo mismo ocurre aunque de manera inversa en la medición de longitudes, las cuales poseen un mayor valor en el sistema de referencia propio que en el externo; contracción de longitudes, por lo que el puntero láser disminuye su longitud cuando lo veíamos moverse.

t_propio < t_externo
L_propia > L_externa

El anterior párrafo es un resumen de lo que implica la dilatación del tiempo y la contracción de longitudes; en el libro utilizado para obtener la información, indicado al final de la entrada, las explicaciones se realizan mediante ejemplos de manera que se entiende el porqué de estos hechos de una manera clara y lógica.

Volviendo al ejemplo mencionado al inicio de la entrada, este habla de los muones, partículas creadas a partir de la radiación de los rayos cósmicos a miles de kilómetros del nivel del mar (9000m). Por tanto, al medir esta distancia el sistema de referencia propio es el de la Tierra ya que es el objeto en reposo. Respecto al muón, su tiempo medio de vida es de 2 microsegundos; medir este tiempo toma como sistema de referencia propio el del muón.

Los muones se mueven a velocidad cercana a la de la luz por lo que con 2 microsegundos de vida únicamente les da tiempo a recorrer 600m (en realidad desde este sistema de referencia quien se mueve es la Tierra hacia el muón). Por tanto el recorrer 600m no permite realizar los 9000m pero esta conclusión no es cierta ya que se está hablando de sistemas de referencia distintos.

Como el tiempo de vida se midió desde el sistema de referencia del muón, la referencia de la Tierra es una referencia externa por lo que para ella el tiempo de vida aumenta, en este caso hasta los 30 microsegundos. Es decir, para la Tierra los muones poseen 30 microsegundos de vida y una distancia al nivel del mar de 9000m; estos valores sí permiten que el muón llegue a la superficie del mar.

En cuanto al muón, su tiempo de vida son 2 microsegundos y como vimos su referencia para la distancia al nivel del mar es una referencia externa. La referencia propia de la Tierra mide una distancia de 9000m y al ser la distancia externa menor que la propia, para el muón la distancia de 9000m suponen 600m; lo que sí hace factible que se recorra esta distancia en 2 microsegundos.

Por supuesto, se han realizado medidas experimentales. La predicción clásica dice que de 100 millones de muones que se generen, al nivel del mar sólo llegarían 31 muones teniendo en cuenta su desintegración según la ley estadística de la radiactividad la cual depende del tiempo medio de vida; mientras que la predicción relativista indica que de 100 millones llegarían 36,8 millones. Dichos experimentos confirman la predicción relativista.


¡Saludos!

Carlos A. Molina

Recursos


Tipler, P.A. y Mosca, G. (2005). Física para la ciencia y la tecnología 5º ed. Volumen 2C (Física moderna: Mecáncia cuántica, relatividad y estructura de la materia). Barcelona. Reverté, S.A.

Imágenes de uso libre

domingo, 5 de junio de 2016

Cifrado WhatsApp

Con la entrada anterior quedan definidos los conceptos básicos sobre encriptación; hoy estudiaremos su aplicación en algo tan utilizado como WhatsApp el cual incorporó cifrado y otras mejoras como vimos en Regañar a los amigos con Whatsapp desactualizado.

Imagen 1. Cifrado WhatsApp

Introducción

Comenzar indicando que toda la información la he obtenido del whitepaper ofrecido en su propia web. El cual señala las siguientes características sobre el cifrado utilizado:
  • Cifrado de extremo a extremo: esto significa que la información está cifrada al salir del terminal emisor y se mantiene de este modo hasta que llega al terminal receptor.
  • Cifrado afecta a los mensajes, llamadas, vídeos, audio, imágenes y otros archivos como documentos enviados con WhatsApp.
  • De ser robadas las claves de encriptación, no pueden utilizarse para desencriptar mensajes ya transmitidos. Por el funcionamiento que veremos en esta entrada.
  • Comunicación con los servidores de WhatsApp se realiza en un canal encriptado; siendo los metadatos también encriptados impidiéndose la identificación del usuario. Aunque el artículo del suplemento XL Semanal del que hablo a continuación explica que no son encriptados, lo que conlleva a que se conozca información como la localización desde la que nos conectamos, cuándo, el tiempo de uso, etc.
  • Servidores solo almacenan claves públicas; ni guardan ni tienen acceso a las privadas.
¿A quién hay que agradecer esta característica? A la compañía Open Whisper; un artículo muy interesante puede encontrarse en el suplemento XL  Semanal del periódico ABC, donde se habla de WhatsApp, Telegram, criptógrafos y casos relacionados con el tema. En dicho artículo se indica que ni los empleados de WhastApp pueden romper el cifrado.

Imagen 2. XL Semanal, artículo sobre cifrado (imagen obtenida de su cuenta en Twitter)

Volviendo al funcionamiento del cifrado de WhatsApp, entran en juego muchas más variables de las explicadas en la entrada anterior; intentaré que el siguiente resumen del whitepaper sea lo más sencillo posible, pidiendo disculpas de antemano por algunas traducciones.

Claves utilizadas


Públicas

Generadas al instalar WhatsApp en nuestro dispositivo.
  • Claves de Identidad: firman la Clave de Firma.
  • Clave de Firma: es modificada (rotada) cada cierto tiempo.
  • Claves de Un-Uso: se modifica su valor cada vez que es necesario; el cual es utilizado una única vez.

De sesión

En la entrada anterior vimos que son claves conocidas por el emisor y el receptor. Como se ha dicho, al ser privadas el servidor de WhatsApp no tiene acceso a ellas.
  • Clave Raíz: utilizada para calcular las Chain Key.
  • Chain Key: crea la Clave de Mensaje.
  • Clave de Mensaje: encripta el contenido de los mensajes.

Registro del cliente

Para utilizar el cifrado extremo a extremo, al registramos tras instalar WhastApp, enviamos nuestras claves públicas a su servidor que las almacena y asocia con nuestro usuario.

Establecer sesión

La primera vez que nos comunicamos con alguien debe crearse una sesión encriptada con dicha persona. Esta sesión no termina hasta que ocurran casos como desinstalar la aplicación WhatsApp. Para establecer la sesión:

1. Quien inicia la comunicación pide al servidor las claves públicas del destinatario. El servidor borra de su almacenamiento la Clave de Un-Uso utilizada, de no quedar ninguna almacenada (cada usuario debe enviar conjuntos de nuevos valores al servidor) no se utilizará en la generación de nuevas claves, pero la comunicación encriptada se seguirá llevando a cabo.

2. El usuario guarda estas claves y las utiliza junto a su Clave de Identidad y un valor que acaba de generar para crear un master_secret utilizado para originar una Clave Raíz y unas Chain Keys.

3. Ya pueden enviarse mensajes al destinatario aunque esté desconectado, para ello cada mensaje incluirá en sus cabecera la información pública del emisor con el fin de que el destinatario al recibir los mensajes también pueda calcular el master_secret; este receptor borra la Clave de Un-Uso empleado por el emisor.

Para completar este apartado conviene complementarlo con el siguiente, 'Intercambio de mensajes'.

Intercambio de mensajes

Tras establecerse la sesión, los mensajes son encriptados con la llamada Clave de Mensaje, cuyas características son:
  • Varía en cada mensaje.
  • No es posible obtener/calcular su valor una vez se ha enviado el mensaje.
  • Generada a partir del Chain Key del emisor del mensaje.

Indicar que cada vez que se completa el ciclo de envío y respuesta se realiza un negociación para tener un nuevo valor del Chain Key y Clave Raíz, lo que otorga mayor seguridad al evitar que a partir de una Clave de Mensaje almacenada se calcule el Chain Key.

Gracias a que las claves cambian y al modo en que son generadas, los mensajes pueden llegar tarde, desordenados o incluso perderse sin que suponga un problema en el proceso de encriptación al calcular los valores requeridos.


Hasta aquí he detallado las claves utilizadas; en las siguientes explicaciones se realiza una visión más general y sencilla.

Intercambio de vídeo, audio, imágenes o documentos

A groso modo, el emisor genera una serie de claves y cifra el archivo adjunto con una de ellas y un valor aleatorio. El resultado es subido y almacenado como un archivo binario en una base de datos. 

Tras esto envía un mensaje cifrado al destinatario con la información requerida para realizar las verificaciones necesarias (incluida función hash vista en la anterior entrada) y acceder al archivo enviado inicialmente.

Mensajes en grupos

La primera vez que un miembro del grupo envía un mensaje lo hace a cada uno de los componentes de manera individual con la información necesaria para poder utilizar cifrado en la comunicación; esta información será eliminada por los integrantes si dicho usuario abandona el grupo. Con esto, cada vez que envíe un mensaje cifrado, llegará al servidor el cual se encargará de que llegue al resto de componentes.

El whitepaper destaca la eficiencia conseguida al emplear dos métodos usuales en la transmisión de mensajes a miembros de un grupo: enviar el mensaje de manera individual a cada uno de los componentes, o subirlo a un servidor y que este lo haga llegar al resto.

Llamadas

La base de funcionamiento del cifrado es la misma a la explicada en el intercambio de mensajes aunque variando el protocolo.

Verificar claves

Los usuarios podemos verificar el cifrado, para ello hay dos opciones: mediante código QR o con un número de 60 dígitos. El proceso queda explicado en este artículo de seguridadapple.com. De querer más información sobre las claves, leer el whitepaper proporcionado por la web de WhatsApp.

Conclusión

Por supuesto terminar agradeciendo a quienes han hecho posible el poder disfrutar de la encriptación en nuestra información; y para los apasionados del código, en GitHub se puede estudiar la librería del protocolo empleado en la encriptación de WhatsApp. Que sea Open Source refleja la filosofía de sus creadores.


¡Saludos!

Carlos A. Molina

Webs


Entrada Regañar a los amigos con Whatsapp desactualizado

Web WhatsApp apartado seguridad con el whitepaper (en 'Obtén todos los detalles')

Blog whispersystems
https://whispersystems.org/blog/

Código librería

Twitter XL Semanal
Artículo XL Semanal

Verificar cifrado de extremo a extremo

Imágenes de uso libre