Stack Exchange network consists of 183 Q&A communities including Stack Overflow, the largest, most trusted online community for developers to learn, share their knowledge, and build their careers.
Ignore the client identification for the initial request; it could be done as part of a multipart communication, but easier to consider when Amazon.com has one public GUID salt they provide to all clients. Updated question with what I hope is a clearer example. Re your last point: once the user's password is actually compromised, all security is still lost. This scheme is designed to provide security in case of a server breach.
yes, if the 3rd party site also didn't implement the same security. Assuming the attacker doesn't have access to the client side, an admin on amazon.com would never know what the user's google.com password was, even if they were the same password.
@SteveDL the GUID served could be based on the client. Or, all clients could receive the same guid. Lets go with the simpler (latter) case: all clients of amazon.com get the suggested GUID, thereby differentiating the password when logging into amazon vs other sites, even if you use the same password.
The key difference is the server sends the guid - it's not generated by the client. Please amend answer with this in mind :) Consider the protocol to be an addendum to TLS, in that 'if the header X-ClientSalt is present, append it to the password, and send the hashed result'. some clients might support, some might not.