Mostrando entradas con la etiqueta Comunicación. Mostrar todas las entradas
Mostrando entradas con la etiqueta Comunicación. Mostrar todas las entradas

viernes, 14 de febrero de 2014

Bitcoins

Por Pepe "Puertas de acero" Pérez
Hace un tiempo hablé en este blog sobre la existencia de las criptodivisas, las cuales podían hacer competencia a medio-largo plazo a las monedas tradicionales. En esta entrada voy a describir un ejemplo concreto de criptomoneda, la primera y más famosa, que recibe el nombre bitcoin. 

Bitcoin fue inventada por Satoshi Nakamoto. Un halo de misterio rodea a su creador, ya que no se conoce ni su verdadera identidad (su apelativo es un pseudónimo) ni su nacionalidad. Además es un misterio si se trata de una persona o un grupo de personas, pero sea como fuere, su contribución al proyecto fue reduciéndose hacia mediados del pasado año 2010 hasta desaparecer por completo.

El apelativo bitcoin se refiere a la moneda y al protocolo distribuido que gestiona las transacciones entre las distintas partes. La idea tras el proceso de obtención de bitcoins es similar a la de la extracción de recursos naturales como el oro y la plata. Esta similaridad se basa en la resolución de un reto criptográfico, que sin entrar en detalle, involucra hallar la solución a un problema que sólo puede resolverse mediante fuerza bruta. Una vez resuelto es necesario que la red  peer to peer verifique que es correcta. Si es así, al ganador se le asigna un número de bitcoins, que dependerá de la tasa actual a la que se estan produciendo. Es muy importante mencionar que la extracción o minado es un proceso competitivo y no colaborativo. Cada uno de los mineros quiere resolver el problema, pero el primero que sea aceptado por la red será el que se lleve el botín, el resto habrá invertido tiempo y no habrá ganado nada. El ganador se lo lleva todo.

La red básicamente mantiene una estructura denominada cadena de bloques (blockchain), que contiene todo lo que ha sucedido durante la vida de la moneda. Este histórico contiene, tanto quienes fueron los mineros ganadores para cada una de las bitcoins, como las transaciones de usuario a usuario. La cadena está disponible para cualquier miembro de la red y por eso evita el problema del doble gasto del que hablabamos anteriormente. Es posible seguir el rastro de cada bitcoin desde su extracción hasta que llegó a su último dueño. Nótese que todos estos cambios han de propagarse por toda la red. Por eso las transacciones de bitcoins no son instantáneas, ya que una vez solicitadas hay que esperar a que los miembros de la red la validen. 

Para terminar el artículo voy a enumerar algunas de las ventajas y desventajas de esta divisa:

Ventajas
  • No es una moneda inflacionaria, puesto que el proceso para su minería impone un límite máximo de bitcoins que puede haber en el mercado. Cuando este límite se alcance, no será posible obtener nuevas y deberán conseguirse mediante comercio. No tendremos la misma situación que en la Alemania de entreguerras.
  • El libro de cuentas es público y requiere del consenso de una red descentralizada que implementa el protocolo bitcoin. De esta manera se evita el problema del doble gasto. Antes de recibir una suma de dinero es posible comprobar si el que está realizando el pago lo ha gastado con anterioridad.
  • Pese a que este libro de cuentas es público, sólo aparece de quién a quién pasó la moneda, con un identificador genérico que si bien sólo está vinculado a una persona, no indica quién es realmente, por lo que podemos decir que las transacciones son anónimas.
Desventajas
  • Es una moneda deflacionaria, la cual beneficia a las personas que invirtieron recursos en minería al principio. Nadie sabe a ciencia cierta lo que sucederá cuando no puedan generarse más bitcoins. Por este motivo cuenta como una ventaja y como una desventaja. 
  • Actualmente la tasa de cambio de las bitcoins es volátil, es decir, fluctúa muy rápidamente. Esto da pie a que sean los especuladores los que se estén lucrando.
  • Puede ser comprometida si alguien tiene el control sobre más del 50% de la red bitcoin. Si tú y tus amigos inyectáis monedas y sois suficientes como para poder verificarlas, nada os impide evitar el problema del doble gasto. Nótese que esto es dificil, pero no imposible.
  • Cada usuario, dispone de una "cartera" con bitcoins. Pese a que el rastro siga en la cadena de bloques, si el usuario pierde la cartera las divisas se quedarán huerfanas y nadie podrá recuperarlas. Esto no es un supuesto, hay gente que ha perdido un dineral porque su disco duro donde estaba la cartera se ha roto.
  • Si tienes ahorros en bitcoins no tienes ningún tipo de protección. Algo bueno tenían que tener los bancos, que están regulados por los gobiernos y dan algún tipo de protección.
Aún queda mucho camino por recorrer y seguramente las bitcoins acaben sólo sirviendo para que especuladores llenen sus bolsillos. De hecho nuevas criptomonedas han surgido y nuevas surgirán, quién sabe cuándo podremos dejar de depender de los gobiernos.

viernes, 1 de marzo de 2013

Criptografía: la ciencia de los secretos (Parte II)

[Esta entrada es la continuación de aquella que posteé este lunes y que podéís ver aquí. Mientras que el pasado lunes hablábamos sobre cuales eran las técnicas tradicionales, esta semana toca explicar cuáles son los principios y el funcionamiento de los sistemas criptográficos actuales]


Al final el proceso de cifrado se traduce en operaciones sobre flujos de bits.


En esta entrada trabajaremos sobre un ejemplo concreto. Seguiremos el desarrollo de un escenario en el que hay tres interlocutores, cuyos nombres son Alice, Bob y Charlie. Los nombres han sido escogidos a propósito porque son los mismos que toman en los ejemplos que aparecen en libros de seguridad informática. En este caso, para no parecer un libro de texto, he preferido dotar de contexto a la situación relatada. De todas maneras, los problemas criptográficos que sufren los protagonistas son los mismos que aparecen en los textos sobre criptografía aplicada. 

Nota: este fragmento sólo pretende ser un ejemplo. No tiene como intención promover prejuicios hacia los colectivos a los que pertenece cada uno de los protagonistas. Considero que el hecho de que cada uno de los personajes disponga de un trasfondo es algo que resulta más interesante que narrar una serie de interacciones entre interlocutores.

Alice es la mujer de Charlie, un narcotraficante alojado en Miami. La vida de Alice no tiene sentido. Se ve asfixiada por su destrozado matrimonio, en el que el papel que ella interpreta es prácticamente nulo. Su marido, con suerte, la ignora, pero hay muchas noches en las que cuando vuelve a casa le insulta e incluso agrede físicamente. 

Cansada de una vida de soledad, se escabulle algunas noches fuera de casa. En uno de esos largos períodos nocturnos, conoce a Bob, un apuesto exbroker que ha decidido tomarse un respiro y se ha ido a vivir, durante un tiempo, a la costa oeste. Alice ve en Bob todo lo que Charlie pudo ser y no quiso: es amable, sabio y lo más importante, la trata como es debido. Tras una serie de encuentros inocentes, Alice y Bob intiman y el pecado se consuma. Pasado un tiempo y consciente de que las salidas nocturnas de su mujer se suceden más frecuentemente, Charlie, que es narcotraficante, pero no tonto, comienza a sospechar.

En cuanto se entera de que algo raro está pasando, Charlie le prohíbe a su mujer salir de casa. Ahora el único medio de contacto que ésta tiene con Bob es a través de Internet (no retorzamos más el asunto, todos sabemos que si Charlie fuera real esta historia acabaría aquí). De nuevo, Charlie no es idiota y tiene acceso a toda la información que sale del ordenador de su mujer, por lo que en principio, todo mensaje que intercambien Bob y Alice se podrá leer. 

El objetivo de Charlie es saber donde vive Bob y matarlo (no es un tipo complejo). Lo que Alice y Bob desean es seguir comunicándose para idear un plan que la libere de las garras del malvado Charlie. Para conseguir su objetivo, Charlie desea hacerse pasar por su mujer para forzar a quedar con Bob, momento en el que aparecerá con sus matones para terminar la historia. ¿Cómo pueden Alice y Bob comunicarse de tal manera que Charlie sea incapaz de arruinar sus planes?

Diagrama amoroso-criptográfico en el que aparecen todos los interlocutores del problema / Elaboración propia
Este ejemplo ilustra los principios de los sistemas criptográficos modernos que deben cumplirse para garantizar la seguridad en las comunicaciones:
  1. Confidencialidad. Esta propiedad garantiza que sólo el emisor y receptor del mensaje son capaces de comprender su contenido. En este caso, tanto Alice como Bob quieren que sus mensajes sean confidenciales, es decir, que Charlie sea incapaz de entender lo que se están diciendo.
  2. Autenticación y no repudio. Por autenticación se entiende que ambos interlocutores deben tener la garantía de que son aquellas personas o entidades que dicen ser. El no repudio se refiere a que el emisor, una vez enviado el mensaje, no puede negar ser el autor del mismo. En este caso la autenticación garantiza que sólo Bob puede envíar mensajes que indiquen que el remitente es Bob, así como sólo Alice puede enviar mensajes en los que indica que es ella. Ninguna de las dos partes puede rechazar que ha sido autor del mensaje.
  3. Integridad. El contenido del mensaje no puede ser modificado por un tercer individuo (un intruso) sin que los interlocutores se den cuenta. Es decir, si Charlie cambia el contenido de los mensajes, el receptor (Alice o Bob) se darían cuenta.
Lo que resta de la entrada será dedicado a ver cómo dos de los paradigmas de cifrado pueden contribuir a establecer comunicaciones seguras. Por desgracia, dejaremos a un lado cómo se verifica la integridad de un mensaje. Esta faceta de la criptografía es muy importante, pero si nos restringimos al problema visto en el ejemplo, no juega un papel tan importante como el resto de propiedades.

Criptografía simétrica

Un algoritmo es de cifrado simétrico cuando la clave empleada para el cifrado y descifrado es la misma. Las dos técnicas que veíamos en la entrada anterior empleaban la misma clave tanto para convertir el texto plano en texto cifrado, como para el proceso inverso. Recordemos que mientras que el valor de k en el cifrado César constituía una clave muy sencilla, si había una clave hecha y derecha en el cifrado Vignère. Como vimos en la entrada anterior, en torno a estos mecanismos de cifrado surgieron técnicas que permitían conocer el mensaje cifrado sin tener la necesidad de conocer la clave. Esto es un suceso recurrente en la criptografía. Aparece una técnica nueva, pasa el tiempo y queda obsoleta. 


Este tipo de algoritmos se encuentran muy avanzados, tanto en lo rápido que el proceso de (des)cifrado se lleva a cabo, como en lo difícil que resulta recuperar el mensaje original si se desconoce la clave. El esquema general que siguen comienza con la división del mensaje en fragmentos de igual tamaño. Sobre estos fragmentos efectúan el cifrado, el cual consiste en aplicar una serie de operaciones que son muy sencillas de aplicar si se sabe la clave, pero que si se desconociese resultaría un trabajo enorme. Estas operaciones se basan en el concepto de función dificilmente invertible, es decir una función matemática que es fácil de aplicar en un sentido pero difícil de aplicar en el otro. Por ejemplo, la exponenciación al cuadrado es sencilla de aplicar, todos sabemos calcular rápidamente el cuadrado de cualquier número. Sin embargo, ¿a que no es tan sencillo calcular la raíz cuadrada de un número?

Uno de los primeros  algoritmos de cifrado simétrico modernos fue DES. Se encuentra en desuso (ya no se considera seguro), pero sí se sigue empleando 3DES, que consiste en la aplicación sobre un mismo texto del algoritmo DES, pero 3 veces, empleando para ello 3 claves diferentes. En la actualidad el algoritmo más empleado es AES, el cual se considera un estándar de facto en lo que se refiere al cifrado simétrico de mensajes.

Retomemos el problema del ejemplo anterior. Si Alice y Bob desean emplear AES para cifrar los mensajes que intercambian, ambos necesitarán emplear una clave para cifrar el contenido de sus mensajes. El problema es que Charlie siempre está fisgoneando todo lo que Alice envía. Si Alice le envía a Bob la clave que ambos deben emplear, Charlie la conseguirá y será capaz de emplearla para descifrar el contenido de futuros mensajes, por lo que podrá saber todo lo que su mujer está diciendo a su amante (y viceversa).

¿Existe alguna manera de transmitir un mensaje a través de un medio no seguro, de tal manera que ese mensaje solo pueda ser descifrado por el receptor? La respuesta es afirmativa y parte del hecho de que tal vez sea interesante emplear claves distintas para el cifrado y descifrado. La solución consiste en emplear sistemas criptográficos de clave pública.

Criptografía de clave pública

Los sistemas de este tipo asumen que cada una de las entidades dispone de dos claves, una pública y otra privada. Lo interesante de este esquema es que la clave pública es conocida por todos, mientras que la clave privada sólo la conoce su dueño.

Estas claves se generan de tal manera que si Alice cifra un mensaje con la clave pública de Bob, sólo este último puede descifrar el mensaje. Para ello descifrará el mensaje recibido con su clave privada. El proceso en el otro sentido también es posible, Bob puede cifrar con la clave pública de Alice un mensaje, de tal manera que ella, con su clave privada, es la única capaz de descifrarla. Ahora sí se cumple la propiedad de confidencialidad, ya que es posible obtener el mensaje original cifrado en primer lugar con la clave pública y descifrando posteriormente con la clave privada. Alice y Bob pueden comunicarse sin que Charlie sepa lo que se están diciendo. 

Este enfoque aporta confidencialidad al proceso de comunicación, pero no garantiza la autenticación, es decir, no asegura a Bob que el mensaje recibido por parte de Alice proviene de ella. El motivo es sencillo, cualquiera (en especial, Charlie) es capaz de cifrar con la clave pública de Bob, por lo que no hay garantía de que la autora del mensaje cifrado sea Bob. El malvado Charlie puede enviarle un mensaje cifrado a Bob, haciéndose pasar por su mujer, de tal manera que éste se confíe y sea lanzado al mar metido en un saco.

El proceso mediante el cual se introduce esta información que garantiza la identidad del emisor es conocido como firma digital.  Para conseguir autenticación es necesario que Alice emplee su clave privada y cifre con ella el mensaje (si, es al revés que cuando se quería obtener confidencialidad). Una vez Bob recibe el mensaje, éste lo descifra empleando la clave pública de Alice para obtener el mensaje original. Lo interesante de este enfoque es que sólo Alice pudo cifrar ese mensaje, (también puede decirse firmar, porque cualquiera puede descifrarlo, al contrario que en el caso anterior) ya que sólo es posible descifrar un mensaje cifrado con la clave pública de un individuo, sí este lo ha cifrado previamente con su clave privada. Es importante también mencionar que ambos enfoques no son excluyentes. Es decir, puede cifrarse primero el mensaje con la clave pública del destinatario y después firmarlo con la clave privada. De esta manera se consigue confidencialidad y autenticación. Alice sabrá que sólo Bob ha podido enviarle el mensaje y además, sólo ella puede leer su contenido.

El hecho más importante es que las claves (pública y privada) se han generado de tal manera que sea imposible muy complicado recuperar la privada a partir de la pública. Debido a que el proceso de generación de claves se merece una entrada por sí solo, basta con decir que son creadas a partir de dos números primos enormes. Conseguir la clave privada a partir de la pública requeriría ser capaz de descomponer un número enorme (de miles de cifras) en sus factores primos. Hecho que a día de hoy, incluso con granjas de ordenadores trabajando, es una tarea enormemente costosa.


OrigenDestinoObjetivoAcción del emisor Acción del receptor
AliceBobConfidencialidadCifrar con la clave pública de Bob.Descifrar con la clave privada de Bob.
BobAliceConfidencialidadCifrar con la clave pública de Alice.Descifrar con la clave privada de Alice.
AliceBobAutenticaciónCifrar con la clave privada de AliceDescifrar con la clave pública de Alice
BobAliceAutenticaciónCifrar con la clave privada de Bob.Descifrar con la clave pública de Bob.
Resumen de las acciones a tomar por el receptor y emisor. Nótese que se pueden combinar ambos objetivos simplemente aplicando ambas acciones.

Hasta ahora todo han sido ventajas. La criptografía de clave pública nos aporta casi todo lo que Alice y Bob necesitan para comunicarse sin que Charlie se entere. Entonces, ¿qué sentido tiene criptografía simétrica? La respuesta es clara: es cuestión de eficiencia. Las operaciones de cifrado y descifrado, cuando se emplea un sistema asimétrico, son extremadamente lentas. Se estima que algoritmos de cifrado simétrico como  DES o AES pueden ser varios órdenes de magnitud más rápidos que sus homólogos asimétricos.

Por este motivo, a la hora de comunicarnos nosotros a través de Internet no se emplean estos sistemas durante todo el proceso, sino que se combinan ambos paradigmas. Para ello, en una primera etapa se establece una clave de sesión, la cual se empleará para cifrar y descifrar empleando un algoritmo simétrico. Esta clave es cifrada con la clave pública del destinatario, el cual la recibe y lleva a cabo el descifrado con su propia clave privada. Ahora ambas partes conocen esta clave de sesión, la cual será empleada para cifrar el resto de mensajes, esta vez mediante algoritmos simétricos.

Parece ser que al final Bob y Alice con tanta "tontería" de clave pública y privada terminarán fugándose juntos. Mientras, el pobre Charlie, paseará solo por las playas de Miami, preguntándose qué arruinó su matrimonio.

Pepe "Puertas de Acero" Pérez

Comparte este post