Find a better HMAC key than the user name. The recommendation is for the key to be of equal length as the
hash, and to be protected. This is tricky since the key must be available on the client.
Find a better HMAC key to use as the one-time salt when submitting the password. Ideally this should be a
one-time key, but it needs to be shared with only one user. The browser's session object might be suitable.
More validation on the client side:
Verify that JavaScript is enabled and working before accepting passwords. Provide feedback in form of
icons etc.
Provide some feedback since RSA takes some time. Spinner or similar.