Representatives of newly launched file-storage and sharing service Mega addressed some of the concerns raised by security researchers in recent days about the site's architecture and the implementation of its cryptographic features.
In a blog post published Tuesday, Mega officials acknowledged that some of the security risks pointed out by researchers are valid, but said that users had already been informed about some of them through the FAQ (Frequently Asked Questions) section of the website. In the case of other issues, they promised some improvements.
For example, it has been pointed out that the encryption keys generated by users during the sign-up process, and which are later used to encrypt their files, are encrypted using the account password and are only stored on Mega's servers. Since there is no password recovery feature, users will lose the ability to decrypt their files if they forget their passwords, some people said.
"This is correct - the only key that MEGA requires to be stored on the user side is the login password, in the user's brain," the Mega officials said. "This password unlocks the master key, which in turn unlocks the file/folder/share/private keys."
However, a mechanism that will allow the recovery of files in case the password is forgotten will be implemented in the near future, they said. This will include an option to change the password and import pre-exported file keys in order to recover the corresponding files.
Security researchers also noted the fact that the master encryption keys are generated inside the browser on sign-up using the math.random JavaScript function and warned that this function doesn't do a good job of generating random numbers, which means that the resulting keys might be weak from a cryptographic standpoint.
In response, the Mega officials said that entropy -- randomness -- is added by using data collected from the user's mouse and keyboard. "We will, however, add a feature that allows the user to add as much entropy manually as he sees fit before proceeding to the key generation," they said.
The Mega representatives also clarified how the site's JavaScript verification system works, noting that the main HTTPS server that uses a SSL certificate with a 2048-bit key is used to verify the integrity of the JavaScript code served from secondary HTTPS servers that use certificates with 1024-bit keys. "This basically enables us to host the extremely integrity-sensitive static content on a large number of geographically diverse servers without worrying about security," they said.
On Tuesday, a researcher named Steve Thomas, known online as "Sc00bz," found that links included in the confirmation emails sent by Mega during the account registration process actually contain the user's password hash. Thomas released a tool called MegaCracker that can be used to extract the hashes from such links and attempt to crack them using a dictionary attack.
Commenting on the tool's release, the Mega officials said that MegaCracker is "an excellent reminder not to use guessable/dictionary passwords, specifically not if your password also serves as the master encryption key to all files that you store on MEGA."
However, they failed to address the question of why account confirmation links sent via email contain the user's password hash in the first place. The general technique used by other websites is to generate random codes specifically for confirmation links.
In order to prevent potential attackers from obtaining their password hash at a later time, users should probably delete the Mega confirmation email after they click on the included link and set up their accounts.