Mt Gox and other Bitcoin markets ought to enable and encourage the use of some form of multi-factor authentication. I use a Yubikey in conjunction with my Lastpass account (Lastpass generates very strong, unique passwords for every site so I'm not concerned about my Mt Gox password providing access to anything else), and it's a fantastic and open source authentication system. Since Bitcoin is growing exponentially in usage and legitimacy, trading services should be growing with it and hardening their systems both on the code side, and on the user interaction side. Many banks offer or require multi-factor authentication, why shouldn't Bitcoin services?
I still think that a scheme based on GnuPG, smart card and mTAN would be pretty secure and accessible.
It would work that way: When creating an account one would generate a
GnuPG key pair. One would enter the public key together with user name and password at the trading site.
This key can now be used to verify re-authentication in case of a lost password, and this would be MUCH safer than re-authentication by e-mail. It can also be used to certify certain critical transactions. This can be done the way that the trading site generates a authentication token, mails it to the user, and he has to sign it with is private key and return it. Alternatively, the offered token can be displayed in a web form and the user replaces it by the signed token.
One important point is that this authentication can be used to set up a cell phone number for an
mTAN scheme (mobile transaction authentication number). With this, when a transaction is done, the system sends a number to the phone which contains the important items of the transaction and an alphanumerical code. The transaction is accepted only when the code is entered in the web page. This is not a perfect system, but works very effectively against key loggers, and it is widely used in many countries.
Among the good things about GnuPG is that it is available on most operation systems (even the ones you shouldn't use) and that it can be used with a
smart card. In this case, the private key is moved to the smart card and can't be read from there again. Processing of signatures is done on the smart card itself when one enters a PIN. Thus, it is not possible to steal the private key any more. This type of smart cards is available from many places, see here:
http://www.privacyfoundation.de/crypto_stick/crypto_stick_english/http://www.gnupg.org/howtos/card-howto/en/ch02s02.htmlThe device from privacy fundation is an open source project, which means enhanced transparency and security against governmental backdoors.
With the scheme described, you need your account password, and your phone to make an transaction. You need your smart card, your mail account password OR your account password and your smart card PIN to change the account password or the phone number.
There are certainly other solutions (Yubikey and SSL client certificates with hardware tokens have been named, and I don't know them well enough to discuss them) but I believe this one is a cost-effective and safe variant. I think that at least two-factor authentication is a must, otherwise stealing of coins becomes so easy that a real and widespread theft business will emerge within months.
And for the same reason, I think, it should not be charged for at all. This is just fulfilling basic requirements.
And of course, mTAN can be hacked, if someone gets a SIM card for my number. But that's considerably more difficult than keylogging.