jueves, 9 de febrero de 2017

Conversations: Cliente Jabber para Android


Hay multitud de programas de mensajería instantánea que prometen el oro y el moro: emoticonos, chats en grupo, animaciones, fotografías e incluso criptografía de la güena.

Google con Hangouts/Gtalk/Loqueseaahora, Facebook con Facebook/WhatsApp, Telegram con Telegram, WeeChat, etcétera.

Pero hay un gran olvidado, y ese no es otro que Jabber. Jabber es un protocolo de mensajería libre en formato XML que puede ser implementado por cualquier cliente sin ningún tipo de coste adicional en licencias.

Jabber lleva muchos años conviviendo entre nosotros. De hecho Google lo usa en Hangouts y Gtalk, así como Facebook en su sistema de mensajería (pero no en WhatsApp). El problema es que estas compañías han hecho un adoptar, extender, extinguir en toda regla. Mediante extensiones propietarias han terminado privatizando el protocolo para su uso particular.

La potencia de Jabber radica en la federación de servidores. Un sistema totalmente distribuido a la que cualquier nodo se puede unir, de manera que usuarios de distintas redes pueden hablar entre sí. Es decir, fulanito@red1.com puede comunicarse con menganito@red2.com. ¡Incluso puedes enviar mensajes a Twitter, Messenger, ICQ e IRC! (woah, Messenger, IRC).

En el caso de Google la federación dejó de estar disponible por lo que los usuarios de Gtalk/Hangouts sólo pueden comunicarse con otros usuarios de Gtalk/Hangouts. En sus contactos no pueden haber cuentas de otras redes. En el caso de Facebook, tres cuartos de lo mismo.

Jabber es un protocolo muy extendido y muy usado. En sistemas de escritorio tienes Pidgin, Kopete y Audium entre otros. Para Android, existe Conversations, ChatSecure/Zom y Xabber entre otros. Todos estos clientes son libres y llegan a soportar incluso OTR, esto es, mensajería cifrada con confidencialidad perfecta.

¿Cuáles son las desventajas de este protocolo? Jabber es mensajería instantánea. El protocolo soporta extensiones como las de un navegador mediante las cuales un cliente puede ofrecer funcionalidad adicional. De base no hay llamadas de voz, no hay videoconferencia ni hay archivos adjuntos. Todas estas funciones son extensiones al protocolo Jabber.

Además, faltan funcionalidades tales como los bots o poderte agregar a ti mismo para guardar archivos en la nube, tal y como permite Telegram. Sin embargo en cuanto a seguridad Conversations no tiene equivalente.

Conversations soporta todo lo que cabría esperar de un cliente moderno de mensajería e incluso más: chats en grupo, avatares, notificación de mensaje leído (tick/doble tick), sincronización entre dispositivos sin necesidad de estar conectado a una página web (puedes hablar desde más de un dispositivo y que los mensajes se mantengan sincronizados en todos), bloquear contactos y enviar adjuntos.
No sólo eso, también ofrece posibilidad de cifrado OMEMO, OpenPGP, OTR e incluso conectar via la red de enrutado anónimo TOROMEMO es el cifrado más moderno de los tres. Permite tener chats cifrados y tenerlos sincronizados entre múltiples dispositivos. Obviamente para usar Conversations no hace falta ningún número de teléfono asociado. Esto implica que es multicuenta por lo que puedes manejar múltiples cuentas Jabber en un mismo dispositivo sin necesidad de múltiples tarjetas SIM. Con una misma aplicación puedes usar la cuenta Google (Gmail/Gtalk/Hangouts) y la de cualquier otro servidor Jabber. Claro que la de Google sólo sera útil para contactar con otras cuentas Google.

Notifica vía LED, tiene tema oscuro y una gran cantidad de ajustes.
Ajustes de ConversationsAjutes de Conversations:
Opciones para expertos

Puedes exportar la clave pública
Para la exportación usa OpenKeyChain

F-Droid. OpenKeyChain se integra con otras aplicaciones como K-9 Mail (cliente de correo que permite cifrar mensajes con OpenPGP). Es decir, puedes usar la clave pública de tus contactos para mandarles mensajes de correo cifrado. De OpenKeyChain ya hablaré en otro post.


Conversations es una implementación compatible con ChatSecure, aplicación de mensajería instantánea segura disponible para iOS. Hay una versión para Android pero ésta ya no está mantenida. La misma aplicación te recomienda instalar Conversations ó Zom. Zom es la continuación de ChatSecure para Android (y que también está disponible para iOS), sin embargo no soporta OMEMO y tiene menos opciones a configurar. ChatSecure es gratuita. Conversations de pago en la Google PlayStore. En F-Droid está disponible de manera gratuita. ChatSecure iOS también implementa OMEMO desde su versión 4.0 lanzada el 17 de enero de 2017.

Ajustes de Zom Zom, modos de cifrado
ChatSecure ofreciendo otras aplicaciones (Zom ó Conversations)


Conversations es software libre GPL. ChatSecure no es GPL (la App Store no permite dicha licencia).

Los creadores de Conversations tienen servidor Jabber propio que soporta todas las características del cliente. Tiene un coste de 8 euros anuales. Si quieres montarte tu propio servidor, también ofrecen información al respecto. Prosody tiene soporte para casi todas las extensiones de Jabber que Conversations emplea. Le faltan XEP-033 (PGP), XEP-333 y XEP-352. Ejabberd soporta todas las funcionalidades soportadas por Conversations y algunas otras como voz IP y videoconferencia (Jingle, Conversations sólo permite enviar archivos). Ambos servidores (Prosody, Ejabberd) son software libre.

Este programa formaría parte de las recomendaciones de la Electronic Frontier Foundation. Yo particularmente no recomendaría Signal ya que los creadores de dicho programa no quieren generar un APK para ser firmado por los de F-Droid con la excusa de que F-Droid no tiene un equivalente a Google Analytics. Es decir, su aplicación se distribuye únicamente a través de la PlayStore. El cliente de escritorio es una extensión para Google Chrome (que también permitirá usar Google Analytics). Que se postulen como mensajería segura y respetuosa de la privacidad obligando a sus usuarios a estar fichados por Google no es coherente.

jueves, 2 de febrero de 2017

Configurar Microsoft Office para utilizar el formato Open Document

Con el cada vez más extendido uso de formatos abiertos y libres así como la proliferación de distintas plataformas, la interoperabilidad se convierte en algo indispensable en el uso diario de las tecnologías.

Es por ello que se creó el Open Document Format (ODF) para permitir la interoperabilidad de los documentos con distintas suites de ofimática y sistemas operativos.

Microsoft Office utiliza por defecto su formato propietario, el OOXML (Office Open XML, también llamado MOX por otros, Microsoft Open XML), que de abierto tiene poco. Las extensiones del OOXML son las antiguas del Office pero añadiéndole una x: .docx, .xlsx, .pptx.

Si bien es cierto que el formato ODF hasta su versión 1.2 no tuvo bien especificado el sistema de fórmulas, eso ya forma parte del pasado. Los estándares evolucionan con el tiempo y mejoran. De hecho aún falta especificar un estándar para macros.

Así pues, debido a que OOXML es difícil que sea soportado nativamente por todas las suites ofimáticas existentes, lo más conveniente es configurar Office para guardar en formato ODF. MS Office ofrece soporte a ODF desde Office 2007 SP2. Basta con seguir los siguientes pasos:

  1. Abrir el menú archivo->opciones
  2. Sección Guardar.
  3. Escoger formato






Y le indicáis que lo haga efectivo para el resto de aplicaciones de Microsoft Office.

Si no lo ponéis así, entonces siempre habría que usar el Guardar Como y seleccionar el formato OpenDocument (texto de OpenDocument, hoja de cálculo de OpenDocument, etcétera).

En el caso de empresas, se pueden cambiar las directivas de grupo.

Una lista de compatibilidad de Office con ODF la podéis encontrar aquí (Excel) y aquí (Word). Hay características que aparecen marcadas como incompatibles, sin embargo con otras suites sí que se pueden usar.
Por supuesto, otra opción es usar LibreOffice ó Calligra.

miércoles, 1 de febrero de 2017

Desbloquear el gestor de arranque de un teléfono Xiaomi

Xiaomi es uno de los pocos fabricantes que permite desbloquear de manera oficial el cargador del sistema operativo para así poder modificar las particiones y sus contenidos al gusto del cliente. Otro de estos fabricantes es OnePlus.
Hay que seguir una serie de pasos.

Requisitos previos:
  • Teléfono Xiaomi
  • Teléfono con opciones de desarrollo activadas
  • Opción de desbloqueo OEM activada
Pasos:
  1. Pedir permiso a Xiaomi a través de la página http://en.miui.com/unlock
  2. Esperar a recibir el SMS de confirmación
  3. Descargar el programa Mi Unlock
  4. Ejecutar el programa
  5. Introducir nuestro correo y contraseña de la cuenta Mi
  6. Entrar en modo fastboot. Con el teléfono apagado, presionar «bajar volumen» + «encender».
  7. Conectar el teléfono mediante USB al ordenador.
  8. En el programa Mi Unlock, presionar sobre el botón Unlock una vez dicho botón esté activo al detectarse el teléfono.

Sin embargo puede ocurrir un problema, y es que el Mi Unlock se puede quedar atascado al 50%. En Internet hay varias quejas al respecto, con distintos mensajes de error tales como que el Mi Unlock detecta múltiples cuentas o que no encuentra al teléfono conectado («not connected to Mi Phone»).

Bien, mi caso es el segundo. No encontraba el teléfono conectado. El problema residía en que no tenía el driver ADB (interfaz Android Debug Bridge). Así pues me he tenido que descargar el driver y como el Windows desde la versión 8 requiere de drivers firmados, he tenido que reiniciar la máquina virtual del Windows 8 «que tengo para cosas que aún no consideran la existencia de otros SO» con la opción de no comprobar las firmas de los controladores (drivers).

El proceso se detalla a continuación. Nótese que el teléfono puede mantenerse en modo fastboot y conectado al PC mediante USB durante todo el tiempo (reinicios, instalación del driver, ejecución de programas, etc.).

  1. Darte cuenta de que tras presionar el Unlock el Mi Unlock te dice que naranjas de la China (jaja, de la China)
  2. Descargarte un fastboot para hacer una comprobación. Descomprimir el .zip en una carpeta. Instalar.
  3. Descargarte el driver ADB. Descomprimir el .zip en una carpeta.
  4.  
    1. Si usas Windows 7 o anteriores, instalar el driver dándole con el botón derecho del ratón al archivo «android_winusb» que hay en la carpeta del driver USB de xiaomi.
    2. Si usas Windows 8 o posterior, debes reiniciar el Windows desactivando la opción de verificar firma de los controladores (drivers). Para ello mueve el puntero del ratón a la esquina superior derecha para desplegar los «charms». Luego le das a «configuración». Después a «cambiar configuración del PC». Ahora le das a «Uso general». En la parte derecha, desplaza la página hasta abajo del todo y le das a «Reiniciar Ahora». Seguidamente pulsas en «Solucionar problemas». Luego «Opciones avanzadas». Después pulsas sobre «Configuración de inicio». Y le das a reiniciar.

    3. El Windows se reiniciará y aparecerá un listado de opciones antes de abrir sesión. Pulsas la tecla del número correspondiente. «Deshabilitar el uso obligatorio de controladores firmados» corresponde con la opción 7, pulsas el 7.
  5.  Instalar el driver previamente descargado (clic derecho sobre el archivo «android_winusb.inf»).
  6. Conectar el móvil en modo fastboot al puerto USB del ordenador
  7. Ejecutar la utilidad de fastboot previamente descargada e instalada.
  8. Escribir «fastboot.exe devices» y pulsar intro. Debería aparecer nuestro dispositivo. Si no aparece, entonces hay que modificar el PID y el VID del archivo «android_winusb.inf»:
    1. Obtener VID y PID del dispositivo. Esto se hace vía Administrador de Dispositivos.
    2. Una vez obtenidos dichos números, modificar la sección Google.NT en el android_winusb.inf.
      El VID y PID no coinciden porque el del cuadro de diálogo es de otro dispositivo
  9. Una vez ya vemos que fastboot nos lista el teléfono (ejecutar la utilidad fastboot, en la consola de comandos que se abre, ejecutar fastboot.exe devices), podemos proceder desbloquearlo.
  10. Ejecutar de nuevo la utilidad Mi Unlock. Hacer login, darle a Unlock, ver como acaba el proceso y nos indica que ya está desbloqueado.
  11. Pulsar Reboot Phone.
  12. En el teléfono, dentro del menú ajustes->ajustes adicionales->opciones de desarrollo->Mi Unlock status, debería aparecer como Unlocked.
Estos procedimientos se han realizado con un Xiaomi Redmi Note 3 Special Edition con MIUI 8.1.1.0 Global Stable. Si tu teléfono no se ha actualizado a dicha versión, la puedes descargar desde la página de MIUI. El mío se actualizó a la 8.0.1.0 creo recordar. La 8.1.1.0 no estaba disponible vía OTA.

Compilación de fuentes de información: