While reading about LastPass' breach, I was wondering why would LastPass store strengthened password hashes at all on the server side? Could they only store the AES encrypted data and when the user gets his encrypted data he could do the password strengthening + decrypt it and re-encrypt all on the client side so the only information LastPass is ever exposed to is the AES 256-bits encrypted data and that would be the only thing they would store in case of a breach.
As I write this post, I'm thinking that perhaps that stored hash is part of the authentication step to not give the AES encrypted data to anyone, but would that be the only reason to store the hash on the server?
Assuming that there's an alternate method to authenticate specific encrypted data to the user trying to access it, e.g. a shared random string between client and server not derived from the master password stored on the server side, could the hashing/password strengthening + encryption/decryption then be all done on the client side with no need to store anything else on the server side than the AES 256-bits?
Because wouldn't it be easier for someone to deduce the password from the hash alone than from the final AES encrypted product that was encrypted with that strengthened password hash? My guess is that the AES encrypted data would take longer to break than its hash alone just because of the extra step of computing the hash and then encrypting. So wouldn't that be another point for not storing the strengthened hashes on the server no matter how complicated the hashing algorithm is since it is a function of the master password.