Great ideas here. The Kindle angle is fantastic.
The fact that the private keys are encrypted before sending to the server is of little value if a weak password is used. You or anyone in possession of the encrypted data could brute force the password, it would only be a matter of time.
Could you make your Javascript work with something like the
yubikey for the purpose of generating a strong password?