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