Aunque Mega ha explicado cómo funciona a rasgos generales
su sistema de cifrado para mantener la seguridad de los archivos
alojados en el servicio, no ha revelado los detalles de cómo funciona el
sistema, lo que ha provocado que expertos alrededor del mundo le
dedicaran horas al análisis del servicio.
En estas investigaciones, aparecieron una serie de preocupaciones
respecto a que Mega no estaría cumpliendo con entregar la seguridad que
promete, además de criticar el hecho de que no es posible cambiar ni recuperar la contraseña. Ahora, Mega respondió en un
comunicado en su blog oficial.
Cambio de contraseña
El servicio confirmó que los usuarios no pueden recuperar la
contraseña si la pierden, pero se comprometió a implementar un sistema
que permita cambiarla. “Una característica de cambio de contraseña
volverá a cifrar la llave maestra con tu nueva contraseña, y
actualizarla a nuestros servidores”, indicó la compañía.
También se agregará un mecanismo para recuperar la clave para volver a
entregar acceso a tu cuenta, sin embargo, “todos los archivos serán
ilegibles. Ahora, si tienes llaves pre-exportadas, puedes importarlas
para recuperar acceso a esos archivos. Además, puedes solicitar a los
pares con quienes hayas compartido que te envíen llaves compartidas
específicas – pero eso es todo. El resto de tus datos aparecerá como
garabatos binarios hasta que recuerdes tu contraseña”.
Azar y entropía
Por otro lado, se criticó que Mega no usaba azar verdadero para
generar las llaves, sino que “pseudo-azar” que podía ser más fácil de
adivinar. La compañía se comprometió a agregar más aleatoriedad o
entropía a la manera en que genera las claves al registrarse en el
servicio.
En este momento, las llaves se generan utilizando la función
math.random(), que por sí sola genera números pseudo-aleatorios que
pueden ser adivinados. Para crear azar verdadero, existen varios
sistemas como seguir los movimientos del mouse, la presión sobre el
teclado, el ruido capturado por un micrófono, o alguna otra cosa. Mega
usa los dos primeros, pero se comprometió en el futuro a permitir que el
usuario agregue manualmente mayor entropía si así lo desea.
Des-duplicar
En los términos de servicio de Mega aparece un punto que señala que
“nuestro servicio puede eliminar automáticamente datos que tú subas o le
entregues a alguien cuando determine que esos datos son un duplicado
exacto de datos originales que ya están en nuestro servicio. En ese
caso, se te entregará acceso a esos datos originales”.
En servicios como MegaUpload, si 20 personas subían una película, en
realidad sólo se conservaba una copia y se le daba acceso a ella a las
20 personas, ya que se trata del mismo archivo, y así se ahorra espacio
en los servidores.
Sin embargo, en teoría todo lo que se sube a Mega está cifrado y
convertido en garabatos ilegibles por medio de una llave única, por lo
que ningún archivo subido al sitio debiera ser igual a otro, y el servicio no debería tener forma de saber si un archivo está duplicado o no. ¿Está escondiendo algo Mega?
“Mega realmente usa la desduplicación, pero lo hace en base al
archivo post-cifrado, en lugar de en los bloques previo al cifrado”,
explicó el servicio. Es decir, si un mismo usuario sube varias veces el
mismo archivo usando la misma llave de cifrado, Mega sólo guardará una
copia para ese usuario. Lo que hace es comparar los paquetes de
garabatos, de modo que si dos usuarios suben el mismo archivo usando
diferentes llaves, no podrá equipararlos.
También se usará la desduplicación cuando, como usuario de Mega,
compartas un archivo con otros usuarios de Mega. En lugar de poner el
archivo compartido varias veces en múltiples cuentas, se almacenará en
una y se le dará acceso a los demás usuarios con quienes se compartió.
SSL
Criptógrafos
en Forbes
acusaron que si alguien lograba saltarse el cifrado SSL, que verifica
que la identidad de una web sea la que dice ser, podría vulnerar Mega.
“Sí. Pero si puedes romper el SSL, puedes romper un montón de cosas que
son mucho más interesantes que Mega”, señaló el sitio.
Por otro lado, se acusó también al servicio de verificar su propio
código Javascript, de modo que la fuente de verificación no sería
confiable, lo que fue desmentido por Mega. Además, se dijo que el
servidor SSL utilizaba cifrado de 1024 bit en lugar de 2048 bit. Mega
consta de dos sitios, el front mega.co.nz, y static.co.nz. El primero
usa cifrado en 2048 bit y es verificado, mientras que el segundo usa
1024 bit y podría ser visto como no confiable. Sin embargo, static.co.nz
sirve código a mega.co.nz, que verifica que éste no ha sido modificado
por ataques tipo “man in the middle”.
MegaCracker
El servicio también se refirió a la existencia de una herramienta llamada
MegaCracker,
creada por el investigador de seguridad Steve Thomas, también conocido
como Scoobz. La aplicación permite extraer las contraseñas de los
usuarios a partir del correo de confirmación enviado por Mega después de
que uno se registra en el servicio.
El enlace que envía Mega para confirmar la cuenta tiene una versión
cifrada de la contraseña del usuario incluida en él. Lo que hace
MegaCracker es tomar este código y tratar de descifrarlo usando una
lista de claves predefinidas por el atacante.
Por supuesto, para que funcione hay que tener acceso al correo del
usuario antes de poder entrar al servicio. La probabilidad de romper el
cifrado de una contraseña de usuario es más baja mientras mejores sean
las prácticas del usuario para elegir su clave, por lo que Mega
simplemente señaló que MegaCracker sirve como “un excelente recordatorio
de que no hay que usar contraseñas adivinables o de diccionario”.