danirod

Diario

Telegram no es seguro

Abro esta opinión dejando claro que no voy a blanquear a WhatsApp. Dios me libre de alabar un producto propiedad de Zuckerberg. WhatsApp es una aplicación que también tiene multitud de problemas.

Sin embargo, Telegram no está libre de defectos. Por eso, cuando el CEO de Telegram, Pavel Durov, publica un artículo exponiendo sus razones según las cuales WhatsApp nunca será una plataforma segura, me veo obligado a tomarme con escepticismo dicho artículo.

El resto de este post está resumido en un tweet. Si tienes la sensación de que me repito, a lo mejor es que ya lo has leído antes.


Abrimos con:

Unlike Telegram, WhatsApp is not open source, so there’s no way for a security researcher to easily check whether there are backdoors in its code.

Tampoco el código fuente del servidor de Telegram es abierto, así que un investigador de seguridad tampoco puede comprobar la existencia de puertas traseras en el código fuente del servidor. Es curioso porque no se hace ninguna mención a este dato en su post.

No obstante, ser abierto tampoco garantizaría nada. El servidor de Signal es abierto, pero ¿tenemos la certeza real de que el código que se ejecuta en los servidores centrales de Signal (que no federan) es el mismo que el que hay publicado?1.

La federación permite levantar servidores cuyo código es auditable. Ni Telegram, ni WhatsApp, ni Signal, soportan federación, por lo que estamos entregando seguridad y privacidad a cambio de conveniencia.


Un poco más abajo:

3 years ago WhatsApp announced they implemented end-to-end encryption so “no third party can access messages“. It coincided with an aggressive push for all of its users to back up their chats in the cloud. When making this push, WhatsApp didn’t tell its users that when backed up, messages are no longer protected by end-to-end encryption and can be accessed by hackers and law enforcement.

Tiene razón. El cifrado E2E que implementa WhatsApp no sirve de nada si se activa la copia de seguridad en los servidores de Google, los cuales WhatsApp te invita a activar de vez en cuando.

E2E implica que los mensajes son cifrados usando la clave del destinatario antes de abandonar el teléfono móvil, de modo que sólo el teléfono móvil del destinatario tiene la clave privada para descodificar esos mensajes. En tránsito, no se puede acceder al contenido.

Una copia de seguridad de los mensajes cifrados sería inútil para recuperarla desde otra instalación de la aplicación si no se almacena la clave privada empleada para descodificarlos, o bien si no se almacenan los mensajes en claro.

Telegram aquí no es mejor que WhatsApp. Salvo que se use un chat secreto, los mensajes son mandados cifrados, pero no punto a punto. Sólo de este modo, podrías iniciar sesión en un ordenador o teléfono nuevo y continuar con las conversaciones que tenías iniciadas: una copia de las conversaciones no secretas se guardan en los servidores de Telegram. Ese que no es de código abierto y que no permite comprobar si hace algo más aparte de guardar mensajes.

Los mensajes cifrados punto a punto se pueden activar bajo el nombre de Chat Secreto. No es la opción por defecto, y activarlos supone despedirse de estos supuestos atractivos: un Chat Secreto sólo puede ser leído desde el dispositivo donde se creó la clave, que es más o menos el funcionamiento de WhatsApp y la razón por la que WhatsApp Web no funciona de manera autónoma sino mediante una conexión de relé con el teléfono móvil.


El resto del post original son llantos y críticas del tipo “si más gente usase Telegram, no tendrías que decir ‘uso WhatsApp porque todo el mundo usa WhatsApp’.”

He escuchado demasiadas veces este llanto por parte de usuarios de Telegram como para sorprenderme, pero no todos los días lo puedes oír de parte de su CEO.


The Facebook marketing department is huge. We at Telegram, however, do zero marketing.

Posts como este son más marketing que otra cosa. De nuevo, tengo que dudar.

  1. El cliente de Signal también es de código abiertoierto. Si superamos todas las barreras legales (está prohibido llamar Signal o usar el branding de Signal en versiones no oficiales del código recompilado), se puede comprobar que el protocolo de comunicaciones garantiza que los mensajes viajan cifrados en tránsito usando una clave criptográfica que solo el destinatario tiene. Es decir, que incluso aunque el servidor estuviese comprometido, no tendrían acceso al contenido de los mensajes. Sin embargo, tendrían acceso a metadatos tales como destinatarios y fechas de cada mensaje. 

Actualización 2019.2 del tema de danirod.es

En abril cargué una actualización menor al tema empleado en mi blog. Principalmente se trata de pequeñas optimizaciones que no tuve en cuenta al implementar el tema para 2019 a principios de año.

La principal novedad es que ahora soporto la nueva media query presente en CSS prefers-color-scheme, lo que significa que mi página web ahora tiene tema oscuro. En Firefox y Safari, y esperemos que pronto en Chrome, si tu sistema operativo (que yo sepa, Windows 10 o macOS 10.14) está configurado con tema oscuro, la página web se verá también en letras claras sobre fondo oscuro.

Para poder hacer eso, estoy usando también variables CSS. Esto me ha exigido hacer un refactor intenso del tema, buscando todas las referencias a background-color y color. A cambio, ahora estoy usando stylelint para prevenirme de volver a introducir referencias hardcodeadas de colores en vez de usar variables CSS.

Como no quiero perder el soporte para navegadores minoritarios como Internet Explorer 11 u Opera Mini, de todos modos, estoy usando fallbacks por si el navegador web no soporta variables CSS. Aunque, en este caso, no hay manera de activar el tema oscuro. (Si tu navegador soportase tema oscuro, tu navegador también soportaría variables CSS.)

Mostrar archivos ocultos en el Finder de macOS

Como macOS es un sistema operativo UNIX, también utiliza la misma noción que otros UNIX y UNIX-like (BSD, Linux…) de tratar a los archivos que empiezan por punto como ocultos.

Para visualizar los dotfiles en Finder, hace falta pulsar el atajo de teclas Comando + : (o Comando + Mayus + ., alternativamente). Al menos en la distribución de teclado española de España.

Esta nota la hago básicamente porque nunca recuerdo la combinación de teclas cuando me hace falta, ya que no está documentada en ninguna parte. No aparece en ningún menú de la barra de menú de Finder, ni siquiera cuando se mantiene pulsada la tecla Alt.

‪Ojalá influencers organizando challenges en plan "mira por donde vas challenge" para que la masa zombie se entere y deje de ir por ahí deambulando por en medio por estar más pendiente del smartphone que de otra cosa.‬

Obituario a Google+

Ah… Google+, la red social alternativa, la red social poco mainstream, la red social para los que no se conforman con cualquier cosa.

La red social que se llevó por delante Google Reader y Picasa. La red social que intentó llevarse por delante YouTube (o al menos su sistema de comentarios). La red social que planteó llevarse por delante Blogger. Qué asco me das por esto, Google+.

Y sin embargo, creo que internet te va a echar de menos. A lo mejor ahora no lo sabe, pero te va a echar de menos. Tu sistema de círculos para facilitar el control de acceso a publicaciones que sólo pudiesen ser vistas por un subconjunto de usuarios era tan ingenioso como difícil de utilizar.

Sin embargo, otra red social muere y con ella se pierden miles de imágenes y miles de actualizaciones de estado con textos interesantes que, si no han sido exportadas por sus autores, se perderán como lágrimas en la lluvia dentro de un par de días. Yo por mi parte ya tengo mi archivo exportado.

También una vez más, esto permite demostrar una vez más que si no tienes el control de la plataforma de publicación, tu contenido jamás será tuyo y siempre correrá el riesgo de desaparecer. Las redes sociales han creado un ecosistema efímero donde confiamos mucho contenido al gran disco duro de una empresa y esperamos que esa empresa no desaparezca de la noche a la mañana o que no nos cancele la cuenta.

La única manera de contraatacar contra esta realidad es poseer la plataforma de publicación. Volved a los blogs. Da igual que no tengáis el don de la escritura. Publicad frases, párrafos, poemas, imágenes, o cualquier cosa que se os pase por la cabeza. En un blog nadie está ahí para decir cómo de corta o cómo de larga debe ser una publicación. Poseed un pedacito de internet que nadie pueda cerrar, o clausurar, o cambiar de aspecto, o incorporar algoritmos o publicidad si no es porque lo queréis vosotros.

Por mi parte, dejo aquí enlazada mi página web y blog por lo que pueda pasar: https://www.danirod.es. En la sección Blog hay artículos más largos. En la sección Diario publico cualquier cosa que se me pasa por la cabeza. Tengo pendiente cargar todas las imágenes y actualizaciones de estado que estos años he publicado en Google+. Podrán desaparecer de los servidores de Google, pero no podrán desaparecer de internet si no es porque yo lo quiera.

De todos modos también soy @danirod93 en Twitter: https://twitter.com/danirod93. Después de todo, poseer un pedazo de internet es importante, pero también soy una persona que tropieza dos veces con la misma piedra.

Más atajos de teclas para Bash

He seguido investigando un poco a partir de lo que ví esta mañana y al mirar la documentación oficial de Bash he descubierto que en realidad Bash está plagado de atajos de teclas interesantes, los cuales están en la guía de bash, y también en la de GNU readline, ya que parece que es una funcionalidad que está extraída en una librería.

Me he hecho un post-it para tenerlo pegado cerca de la pantalla y que se me vayan pegando los atajos a base de usarlos con una relativa frecuencia.

BASH
----
Mover cursor a la izquierda
Ctrl-B:    1 caracter
Alt-B:     1 palabra
Ctrl-A:    Inicio de línea

Mover cursor a la derecha
Ctrl-F:    1 caracter
Alt-F:     1 palabra
Ctrl-E:    Fin de línea

Borrar
Ctrl-U:    Hasta principio línea
Ctrl-W:    Hasta principio palabra
Ctrl-D:    Letra bajo cursor
Alt-D:     Hasta final palabra
Ctrl-K:    Hasta final línea

Estos atajos de teclas no funcionan en Vim, o al menos no todos. Ctrl-U y Ctrl-W están ahí, pero los demás no funcionan. Algunos de estos atajos parecen funcionar en Emacs, y también en Texinfo, que es el sistema electrónico de documentación de GNU para ver el mismo manual que tienen en la web en la terminal, pero no todos funcionan. No obstante, me gusta este comportamiento consistente de los programas de GNU. Tienen atajos de teclas complicados de aprender, pero una vez que lo aprendes en un programa, lo puedes usar en todos.

Como dato, en Bash realmente no borras texto, lo envías a un buffer auxiliar que hace de cortapapeles, y lo puedes volver a pegar con Ctrl-Y, aunque no he probado esta función todavía.

Ctrl-W y Ctrl-U

Intento recordar constantemente que si me equivoco al escribir una palabra en Vim, en vez de reventar la tecla Retroceso varias veces hasta llegar al inicio de la palabra, puedo simplemente pulsar Ctrl-W, que borra la palabra actualmente bajo el cursor. Lo mismo se puede decir de Ctrl-U, que directamente borra toda la línea en la que se halle el cursor.

Una cosa que desconocía hasta hoy es que estos atajos realmente funcionan fuera de Vim. En Bash, si me equivoco mientras tecleo un comando, resulta que puedo también pulsar Ctrl-W para borrar lo que tenga bajo el cursor, y también puedo pulsar Ctrl-U para borrar toda la línea.

Estrictamente hablando, en Bash el funcionamiento de estos atajos es ligeramente más complejo. Al igual que ocurre con Vim, realmente no se borra el contenido, sino que es copiado a un buffer temporal de portapapeles, de modo que lo que se elimine, luego puede volver a ser pegado mediante el uso de Ctrl-Y.

He movido el link al Diario que hay en el pie de página del sitio web a la segunda posición, junto a la del feed global. Después de todo, últimamente casi todo lo que escribo está en esta sección, porque me resulta más práctico y flexible. En cuanto a la sección Blog, no está muerta, es que la quiero reservar para contenido que sea más largo, como artículos o tutoriales, pero no tengo nada terminado.

Sin comentarios

danirod.es no tiene comentarios ni un sistema de respuestas en este momento. Ni siquiera sé si quiero terminar de desarrollar el endpoint para recibir webmentions. Si es grave o importante, siempre se puede mandar un e-mail, pero en general, diría que está bien que no se pueda responder.

Es curioso como las redes sociales nacieron con el propósito de conectarnos, y como al principio nos hacía ilusión recibir comentarios, o respuestas, o menciones. Pero sin embargo, el debate y la discusión online se ha acalorado y polarizado tanto en los últimos años en internet, que no pocas personas miramos ya la pestaña de Notificaciones con pesadez. Hay quien habla de persecuciones o de "odio al que piensa diferente", pero yo no lo llevaría tan al extremo, pues ese tipo de comentarios suele proceder de personas que confunden "atacan mi libertad de expresión" con "quieren hacerme responsable de las consecuencias por las tonterías que expreso".

Una conversación. Alguien pregunta, '¿Vienes a la cama?'. Responde, 'No puedo, es importante, alguien está equivocado en internet
Sí, estoy enlazando a esta condenada viñeta de xkcd yo también.

Diffs más útiles en git

El comportamiento por defecto de git diff es mostrar un diff línea a línea. Es decir, si se ha modificado mínimo un caracter en una línea, la salida del git diff contendrá completa la línea que se ha cambiado. Esto está bien, pero si sólo se han cambiado un par de caracteres, puede ser más útil otro tipo de diff.

Con el flag --word-diff es posible señalizarle a la salida de git diff para que señale en el diff únicamente las palabras que han sido modificadas, manteniendo el resto de la línea intacta.

Si lo queremos llevar más al límite, con el flag --color-words=. podemos señalizarle a git diff que nos señale en el diff únicamente los caracteres que han sido modificados.

(Gracias a Gabriel Knight por compartir hace unos días este último flag en el Discord).