Archivos para la categoría: Internet

Aquí explico cómo utilizar algunos métodos de criptografía para asegurar la información que guardamos y enviamos, primero explico a grandes rasgos cómo funcionan y después cómo hacerlo. Éste manual está devuelto al dominio público y puede copiarse libremente siempre y cuando se reconozca su autoría.

Criptografía (o cómo enviar mensajes seguros)

La criptografía desarrolla métodos para enviar mensajes que no puedan ser leídos sin autorización. Éstos procedimientos se conocen como «algoritmos de cifrado».

Cifrado simétrico

Ésta forma de criptografía utiliza una operación con el mensaje y la clave que es reversible sólo si se conoce la clave. La idea es que conocer el algoritmo de cifrado no debe ser útil si no se conoce la contraseña, por eso se dice que la fortaleza del cifrado está en la contraseña y no en el algoritmo.

Puntos débiles

La seguridad del cifrado depende de las características de la contraseña. Para que el sistema sea seguro la contraseña debe ser aleatoria y suficientemente larga (128 bits suelen ser suficiente).

El principal problema de éstos métodos es que el intercambio de la contraseña debe ser seguro. Para solucionar el problema del intercambio seguro de contraseña se utiliza el cifrado asimétrico.

Cifrado asimétrico

La criptografía asimétrica utiliza operaciones matemáticas fáciles de computar, cuyo inverso es muy difícil de computar sin información adecuada pero con cierta información es fácil de calcular el inverso. Acá un ejemplo explicado matemáticamente: RSA.

Utilizando ése principio se genera un par de claves:

  • Clave pública que se utiliza para realizar el cifrado.
  • Clave privada que contiene la información necesaria para que el inverso sea sencillo de computar. Es la que se usa para descifrar el mensaje.

Las dos son números relacionados entre sí matemáticamente pero diferentes, de manera que no se puede obtener la clave privada a partir de la clave pública.

En éste tipo de criptografía, los mensajes cifrados con la clave pública sólo los puede leer quien controle la clave privada.

La ventaja de éste método es que no se necesita un canal seguro para enviar la clave y de hecho en ocasiones se utiliza para enviar una clave para después utilizar el cifrado simétrico porque requiere menos procesamiento y puede ser más difícil de descifrar.

Puntos débiles

Un posible ataque a éstos sistemas es proporcionar al remitente una clave falsa con la que el atacante decodifique el mensaje y lo vuelva a cifrar con la clave legítima, por eso debe asegurarse de que la clave pública que se está usando es legítima.

Al igual que con el cifrado simétrico las características de la contraseña influyen en la seguridad del método, las contraseñas deben ser suficientemente largas (1024 bits o más).

Como medida adicional de seguridad, la clave privada suele protegerse con una frase de paso, ésta debe ser segura.

Cifrado híbrido

Utiliza cifrado asimétrico para enviar la contraseña y entonces utilizar cifrado simétrico. Suele ser más seguro y utilizar menos recursos que el cifrado asimétrico únicamente, suele utilizar una contraseña simétrica diferente para cada sesión de comunicación. Así es cómo funciona el protocolo que se utiliza para enviar información segura en las páginas de internet (TLS), incluyendo los bancos.

Puntos débiles

Igual que cualquier otra forma de cifrado, puede ser susceptible a ataques. El usuario es el eslabón más débil de la cadena de seguridad, después el sistema que se utiliza (podría tener un programa que espíe lo que haces, incluyendo las contraseñas).

Funciones resúmen (o cómo saber que la información llegó completa y correcta)

Las funciones resúmen (también conocidas como hash) devuelven un resultado de longitud fija y son tales que un pequeño cambio en el archivo que se resume devuelve como resultado un resúmen distinto.

Archivos diferentes pueden tener el mismo resúmen y por eso debe ser difícil fabricar un archivo que intencionalmente tenga el mismo resúmen que otro. Es improbable que un archivo del mismo tamaño tenga el mismo resúmen por lo que si el archivo tiene el tamaño y resúmen esperado casi con certeza la información llegó completa y correctamente.

Firma digital (o cómo saber quién envía el mensaje)

La firma digital es una manera de asegurar que el mensaje proviene del remitente que dice provenir y que no ha sido alterado. Una manera de implementarla es encriptando con la clave privada una función resúmen del documento, de manera que sólo se descifra con la clave pública.

La firma digital es aún más difícil de colisionar que la función resúmen.

Generar contraseñas seguras

Frase de paso

Una frase de paso es una contraseña formada por varias palabras. Como todas las contraseñas es más segura mientras más larga y aleatoria sea.

Un método para generar frases de paso seguras y fáciles de recordar es seleccionar palabras de una lista de acuerdo con un tiro de cinco dados. El método se llama Diceware. Utilizar 4 o 5 palabras generalmente es suficiente pero pueden usarse más para aumentar la seguridad.

Existen varios consejos para generar y manejar dontraseñas seguras.

Generar un par de claves (pública y privada)

Un buen programa para generar un par de claves para criptografía asimétrica es GNU Privacy Guard (GPG), en GNU/Linux generalmente viene instalado junto con «seahorse» que es una bonita interfaz gráfica. Para windows debe descargarse.

En terminal

Hay que abrir «terminal» en GNU/Linux o «línea de comandos» en Windows y ejecutar los siguientes comandos:

  1. gpg --gen-key
  2. Responder a las preguntas.

Una de las preguntas es la frase de paso que evita que si alguien obtiene el archivo pueda utilizar la clave pública. Es recomendable usar un método aleatorio para generar la frase de paso.

Interfaz gráfica (GNU/Linux)

Un programa secillo de utilizar para manejar claves públicas es «seahorse», funciona en GNU/linux:

  1. Abrir «seahorse» (generalmente tiene un nombre en el menú parecido a «Contraseñas y claves»)
  2. Menú «Archivo > Nuevo» (Control + N)
  3. Seleccionar «Clave GPG» y rellenar los datos. Hay que revisar muy bien los datos porque no pueden cambiarse después.

    En las opciones avanzadas se puede cambiar el tipo de clave, su longitud (bits) y la fecha en que expira. Por seguridad es mejor que expire en algún momento (se puede renovar su periodo de validez después).

  4. Aceptar y hacer otras cosas mientras se genera el par de claves para cifrado asimétrico.

Intercambiar claves públicas

Una forma relativamente sencilla de evadir el encriptado asimétrico es proporcionar una clave falsa al remitente, recibir el mensaje y reenviarlo al destinatario con la clave correcta. Para evitar éste tipo de ataque se debe comprobar la huella de la clave asimétrica con el destinatario.

Una medida extra de seguridad que puede dificultar la falsificación de las claves públicas si se usa correctamente es firmar las claves si es totalmente seguro que es la clave correcta, de ésta manera quienes confíen en nosotros pueden saber que ésa clave ha sido comprobada por nosotros.

Cada clave tiene un número identificador que se puede utilizar para intercambiar la clave mediante «servidores de claves», el método se describe a continuación.

Publicar la clave

Se puede utilizar algún servidor de claves públicas para intercambiar la clave:

En terminal

En la línea de comandos:

  1. Para ver el ID de la clave se utiliza el comando: gpg --list-keys
    La línea que tienen nuestro nombre muestra un número como «4096R/7B44ABF9» dónde la primera parte indica longitud y tipo de la clave. La parte después de la «/» es el ID que usaremos en la siguiente instrucción.
  2. gpg --send-keys --keyserver pgp.rediris.es ID

Gráficamente

Seahorse tiene un menú para sincronizar las claves públicas en los servidores de claves:

  1. Abrir seahorse.
  2. Menú «Remota > Sincronizar y publicar claves…».
  3. Elegir el servidor y apretar «sincronizar».

Descargar una clave

Si se conoce el ID de la clave y la clave está publicada en un servidor de claves, entonces se puede descargar de ésta manera:

En terminal

gpg --recv-keys --keyserver pgp.rediris.es ID

Gráficamente

  1. Abrir seahorse.
  2. Menú «Remota > Encontrar claves remotas…».
  3. Escribir el ID que nos proporcionen.

Revisar la huella de una clave

En terminal

gpg --fingerprint

En seahorse

  1. En la pestaña «Otras claves» seleccionar la clave que queremos comprobar y utilizar el botón derecho, seleccionar la opción «propiedades».
  2. En la pestaña «Detalles» viene escrita la huella.

Cifrar información

Existen varias herramientas de software libre que pueden utilizarse para cifrar información, aquí recopilo algunos métodos que pueden utilizarse para el cifrado.

Al consultar páginas de internet

Es relativamente sencillo alterar o leer la información que se envía por internet. Lo normal es que eso no pase, pero si los servidores soportan el protocolo para enviar información segura se puede evitar ése problema.

Hay un plugin para firefox que redirige una gran cantidad de páginas a su versión segura. Creo que vale la pena probarlo.

Para enviar correos electrónicos

Un plugin de thunderbird permite mandar y recibir correo electrónico cifrado de manera sencilla si ya se generó un par de claves.

Retroshare

Retroshare es una plataforma de comunicación segura p2p. Permite utilizar mensajería instantánea, enviar mensajes estilo «e-mail», transmitir archivos, generar foros, y enviar mensajes públicos (canales en retroshare).

Funciona en Windows, GNU/Linux, MacOS, BSD y es sencillo de usar, puede descargarse de aquí.

Lo primero que pide es que se genere una clave pública y para agregar contactos se debe intercambiar claves públicas.

Intercambiar clave pública en Retroshare

La clave pública puede enviarse como texto o como un archivo.rsc, se puede enviar por correo o intercambiar en persona, aplican las consideraciones del intercambio de claves públicas.

La necesidad de atención

Un capítulo de «Como una enredadera y no como un árbol» habla de la «netocracia»:

Una clase definida no tanto por su poder sobre el sistema productivo como por su capacidad de liderazgo sobre el consumo de los miembros masivos de las redes sociales.

Que conste que las redes sociales son las relaciones entre personas y no las herramientas web para gestionarlas. El apunte me llama la atención por la lectura acerca de la web 2.0 y la economía de la atención: la atención es un bien escaso y dado que la innovación se alimenta de interacción, a mayor atención (popularidad) mayores posibilidades de desarrollo y mercado.

Las plataformas que la capturan

Por eso todos quieren ser digg o ahora que está más de moda: FB, el agente en medio de los que se comunican.

Al parecer la «batalla» por la atención pasa por generar plataformas: Un lugar privilegiado, controlado por el proveedor, dónde se puede centrar la atención.

Apple llevó la generación de plataformas a otro nivel: no es cuestión de software o de una página web que puedes o no visitar, su plataforma está en el dispositivo y allí tiene más posibilidades de control.

Y el sueño de libertad

No todo en las plataformas es malvado, aunque algunas lo sean por diseño (Bajo toda arquitectura informacional se oculta una estructura de poder), y existen plataformas que empoderan, un ejemplo sería retroshare que es «una plataforma de comunicación segura y descentralizada». Ésta es la clase de plataformas que debemos promover.

Comenzando en las telecomunicaciones

Como primera necesidad se me antoja apoderarnos de nuestras telecomunicaciones a nivel regional y me parece que puede hacerse con la siguiente dupla:

Redes malladas

Existen iniciativas que han desarrollado redes ciudadanas en alguna zona y manuales para lograrlo. La infraestructura de comunicación está en cierta manera resuelta, pero aún falta independizar los servicios para librarnos del agente en el medio.

Servidores portátiles

Ya había dicho que los servidores no tienen nada de especial, también que los celulares que usamos bien podrían ser llamados computadoras. Sería muy interesante ensamblar un tablet/smarthphone libre con un sistema libre listo para ofrecer servicios web, de preferencia encriptados y distribuídos.

Via humanrightsgeek me entero que posiblemente México sí firme ACTA.

Entre la reescritura de cómo funciona internet y las muchas leyes pro censura de internet estaba pensando que la criptografía es la única herramienta que tenemos en una red que no nos pertenece (porque aunque internet es físico y distribuído, hacemos uso de una infraestructura que en su mayoría no es nuestra) para mantener la integridad de la comunicación y confirmar la procedencia del mensaje.

Es interesante saber que ésta idea es ya común del ciberpunk.

La embajadora eslovena que firmó ACTA en Japón pide disculpas.

Ley parecida a la SOPA propuesta en México.

Una denuncia pública contra el FBI por cerrar megaupload.

La guerra de los modelos abiertos contra los cerrados en internet.

Cory Doctorow dice «Debemos dejar de hablar de copyrigth».

Propuesta ciudadana de ley: Free internet Act

Reflexión acerca del valor de la música digital comparada con la música en soporte fijo.

Un ensayo acerca de por qué la industria musical necesita renovarse desde el punto de vista de un economista.

Reflexión acerca del crowdsoursing, una forma de pago colectiva.

No eres el cliente, eres el producto.

¿Cómo cambia internet la forma en que pensamos?

Reflexión acerca de las universidades y las telecomunicaciones.

Internet es el mejor lugar para que empiece la disidencia.

Una reflexión acerca de la libertad de expresión.

Un colectivo que impulsa el desarrollo de propuestas libres.

¿Por qué se encierra tanta gente en EUA?

Una reflexión acerca de la organización tribal.

Cada peso que gastamos apoya algo.

Cuentan éstos creedores y creadores de utopías que con la red libre y neutral que actualmente es internet las rentas se disipan. Es decir, que nadie puede tener un ingreso mayor al valor del producto o servicio que ofrece.

Sea ésto cierto o no (yo voy a que sí lo es), sí que ha permitido formas de «creación y propiedad colectiva» en que se desarrollan bienes comunes y alrededor de éstos se desarrollan mercados y servicios: Software Libre, Cultura Libre (Música Libre, Creación Literaria Libre).

Éstos bienes [libres] comunes son legalmente distribuíbles, modificables y negociables. El último punto es importante porque permite la formación de los mercados y servicios que mencionaba; que son precisamente lo que incentiva la generación de un «procomún». Por eso no llamo «libre» a lo que no es comercializable pero sí distribuíble libremente (CC-NC), aunque me digan que «vender algo que no recibes gratis es una canallada».

Y entonces regreso al título y la primera cita: Cada peso que gastamos apoya algo y gran parte de los bienes libres se pueden conseguir de manera gratuita. La mayoría de los bienes que no son libres no se consiguen de manera gratuita salvo por medios ilegales (ojo que no necesariamente malos, «copiar no es robar»), además de que promueven la generación de escacez.

Y entonces reformulo el título que mantendré así porque me gusta como “motto” (que también dejaré como “motto” porque suena más bonito que «lema»): deberíamos empezar a pagar por lo que es libre y no comprar lo que no lo es (lo que no es libre pero es gratis es igual de malo).

Leo, tal vez un poco tarde, la pregunta abierta ¿con el 3% de personas con internet cabe espacio para esperar una revolución que surja de las redes? desde que ése post fue escrito, varias cosas han cambiado en la pequeña tierra. Ya somos 8% de personas con acceso a internet, y supongo que la mayoría de ése porcentaje está dentro del 12% que posee computadora y ése porcentaje dentro del 20% que posee el 75% de la riqueza del planeta.

Si ha de surgir una revolución de las redes, seguramente será de entre ése 20% que posee la riqueza. Cada que pienso algo similar recuerdo la frase «porque a quien tiene se le dará y a quien no tiene, incluso lo poco que tiene le será arrebatado».

Ayer alguien me hablaba de la necesidad de recursos «para hacer cualquier cosa», no dijo qué tipo de cosa, pero creo que la revolución de las redes va justo en el otro sentido, tanto por la cuestión del crowd funding que hace posible, por ejemplo, «el cosmonauta» (que por cierto, termina su rodaje en 3 semanas), como por los modelos de comercialización que posibilita.

Creo que sí cabe lugar para el optimismo, incluso a pesar de las medidas de censura contra la red. Finalmente si deja de haber internet como lo conocemos, tenemos alternativas.

Si han escuchado en las noticias acerca de wikileaks, entonces conocen la capacidad de internet como medio de comunicación.

Si además leyeron la lectura recomendada saben que ésta capacidad se debe en gran medida a la neutralidad de la red y que ésta está en peligro por varios motivos: legislaciones el ACTA que bajo la consigna de detener el contrabando de bienes suprime posibilidades en internet, las compañías de telecomunicaciones que quieren cobrar varias veces por el mismo servicio diferenciando el uso de internet cuando la naturaleza de todo el uso de internet es la misma, las empresas que quisieran que todo el tráfico de internet para poder vender publicidad, nuestra información o información acerca de nosotros.

Si no tienen idea de qué les estoy hablando y no están dispuestos a leer a versvs (lectura recomendada) porque es largo, porque no tienen tiempo o por cualquier otra razón, conviene que lean al menos ésta definición y éste pequeño artículo.

Otra parte importante de la capacidad de internet como medio de comunicación es su estructura descentralizada (funcionaría mejor si fuera distribuída). Y no es un gran misterio: ¿Qué se hizo cuando wikileaks se «salió de control»? Atacar su DNS, quitarle el apoyo financiero por paypal… Hay un único nodo que se puede atacar. Por eso ni Facebook ni Twitter pueden utilizarse para un verdadero movimiento insurgente: se puede extinguir de raíz en cualquier momento.

Y aunque no se ataque el nodo que distribuye los contenidos, los dueños del nodo aún pueden censurar los contenidos que no le parezcan.

Ciertamente internet sirve para expresarse, pero eso es debido a su estructura y neutralidad. Si perdemos eso, también sus ventajas.

Esto habla de cómo internet deja de ser cómo es:

http://lasindias.org/la-neutralidad-de-la-red?utm_source=libertas87.wordpress.com

Estrictamente hablando internet es un protocolo de comunicaciones que las computadoras usan para intercambiar información, aunque el término también se utiliza como la red de computadoras que utilizan éste protocolo de comunicaciones y los enlaces entre ellos.

Este documento explica a grandes rasgos y de manera simplificada cómo funciona «internet», tanto el protocolo como la infraestructura. Se aprecian comentarios, correcciones, extensiones…

Las reglas

Las reglas para la comunicación entre computadoras se establecen en los protocolos de internet, que incluyen (entre otros):

  • La conexión física.
  • La identificación de cada computadora.
  • La comunicación entre cada computadora.
  • La manera en que se envían los datos.
  • La seguridad de la conexión.

Son de particular interés:

A dónde se manda la información (IP)

Cada computadora conectada a internet tiene un número de idenfificación único dentro de la red (dirección IP). En la versión 4 del protocolo (IPv4) las direcciones son de 32 bits y nosotros las escribimos como cuatro números del 0 al 255, por ejemplo «192.168.1.254» (la que generalmente es del router).

32 bits son 4294967296 números en total, sin embargo todos los números posibles de IPv4 están asignados o son de uso restringido, por eso se está implementando IPv6, que es lo mismo pero con una mayor cantidad de números (128 bits), como ésos números son enormes se utilizan números del 0 al 9 y letras de A a F para representarlos y se utiliza «::» para abreviar los ceros intermedios, por ejemplo «ab13f::1».

Cómo se manda la información (TCP)

El protocolo TCP dice cómo enviar y recibir la información, de manera simplificada:

  1. Se parte la información en cachitos.
  2. Se calcula una suma de comprobación para cada parte.
  3. Se envía cada parte junto con su suma de comprobación.
  4. Se envía el orden de las partes.

Cuando se recibe la información, se comprueba que cada parte haya llegado bien calculando la suma de comprobación de cada parte y se ordenan. Aquí la misma información con dibujitos.

Internet es físico

Para el intercambio de información debe existir una conexión física que puede ser mediante cables o campos electromágnéticos (redes inalámbricas). El ancho de banda es la velocidad de transmisión de éstos enlaces, ya sea por sus características físicas o alguna limitación artificial.

Existen enlaces de alta velocidad que permiten la comunicación instantanea. En ocasiones se les llama backbones, aquí un mapa de algunos.

Una red pequeña

Una red pueden ser sólo dos computadoras conectadas entre sí, muchas compartiendo una impresora o todas las computadoras de un área de trabajo, si todos los nodos están en un mismo lugar la red que forman es una «red local».

Dependiendo de las caracterísiticas de la máquinas que conforman la red y el software que utilizan las conexiones entre los nodos pueden realizarse por ellos mismos o a través de una computadora especializada llamada «enrutador» (router). Cada conexión que se establece se realiza de par a par, ya sea de una computadora a otra o del router a cada computadora.

Una red pude estar conectada a otra si existe al menos una conexión a uno de sus nodos. Las computadoras que dirigen la información hacia afuera de la red local se llaman puertas de enlace. En redes pequeñas el router conecta un nodo de «internet» con la red local.

Una red de redes

La prioridad del protocolo al enviar paquetes es que lleguen a su destino, no importa qué tan rápido o qué ruta tomen. Los enrutadores se organizan para enviar la información de la manera que implique menos esfuerzo. El proceso simplificado:

  1. Se envía una solicitud de conexión a la IP.
  2. La solicitud se reenvía hasta que se encuentra la computadora con la IP correspondiente.
  3. Cuando se ha encontrado, se calcula la vía más rápida.

La ruta puede variar dependiendo de qué tan ocupados estén los nodos.

Conexión segura

La información que se envía en internet pasa a través de varias computadoras que pueden leerla, registrarla o hacer alguna modificación. Para evitar ésto se utilizan técnicas de cifrado, por eso se utilizan «https», «sftp», etcétera.

Qué es un servidor

Un servidor no tiene nada especial, es una computadora que está alerta para enviar alguna información cuando se le pide. Cualquier computadora puede actuar como servidor si tiene el software adecuado, que en el caso de servicios web puede ser: apache, cherokee, nginx,entre otros.

Si servidor debe atender muchas peticiones necesita mucha capacidad de procesamiento y ancho de banda suficiente. Generalmente en éstos casos se distribuye la carga entre varios servidores en diferentes regiones.

Un servidor, muchos servicios

Un mismo servidor puede ofrecer varios servicios a la vez, para identificar cada servicio se utiliza un número que se conoce como «puerto». El puerto se indica al momento de establecer la conexión después de la IP separado por dos puntos, por ejemplo «192.168.1.254:80».

El puerto de un servicio puede ser cualquiera, sin embargo existe una convención para los servicios más comunes, por ejemplo una página web utiliza el puerto 80.

Cómo sé a qué servidor conectarme (o Qué es un DNS)

Es posible establecer una conexión a un servidor utilizando su IP, google por ejemplo puede ser 173.194.64.99, pero recordar la IP de cada servidor es impráctico, en vez de ésto se utilizan listas con el nombre del servicio que apuntan a la IP correspondiente. Éstas listas son enormes y se distribuyen entre varios servidores, algunos de éstos servidores tienen la autoridad para designar los dominios y otros sólo tienen una copia.

Un servidor que posee una lista con los nombres de la página web (dominios) se conoce como «Domain Name Server» (DNS). El DNS puede ser de la compañía que provee el internet, un organismo independiente con su propio DNS, una institución internacional encargada de registrar los dominios, o incluso de algún particular.

Una explicación simplificada del proceso es:

  1. El explorador pide la IP de la página web al DNS.
  2. El DNS responde con la IP.
  3. Se establece una conexión con el servidor «IP».
  4. Se solicita al servidor «IP» la página web.

La IP del DNS debe conocerse de antemano o se solicita al momento de establecer conexión con el proveedor del servicio de internet.

Proveedor de Servicio de Internet (ISP)

El proveedor del servicio de internet es una entidad que posee un enlace a internet y vende la capacidad de conectarse a través de él.

Armando el rompecabezas

Internet es un protocolo de comunicación que incluye TCP (cómo se envía la información) e IP (a dónde se envía la información). Para usarlo, las computadoras están interconectadas por medio de enlaces físicos. Algunas de las computadoras están dedicadas exclusivamente a ayudar a las demás a comunicarse (enrutadores), otras a proveer servicios (como wikipedia) y otras sólo piden y comparten información (pero no porque no puedan hacer más).

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.