For example AWS uses HMACs for signatures, what kind of scheme would you propose?
For example AWS uses HMACs for signatures, what kind of scheme would you propose?
A digital signature uses public key cryptography: one person can generate and sign messages, everyone else can verify. A common one is the DSA[3] -- but there are many others, including freakishly fast elliptical curve versions.
[1] http://en.wikipedia.org/wiki/Message_authentication_code
[2] http://en.wikipedia.org/wiki/Digital_signature
[3] http://en.wikipedia.org/wiki/Digital_Signature_Algorithm
I agree, though, that they have been a little sloppy with the terminology. Some of their APIs refer to "Signature"s, when they should say "Authentication Code"s. I think, though, that this may have led to even more customer confusion than the current situation, as most people aren't aware of the difference between HMACs and signatures.