As an API and security professional I've found to be secure and performant one should do the following with APIs: - Dont listen on HTTP, force HTTPS (Tune your ciphers! see https://www.ssllabs.com/ssltest/index.html ) - Ensure that any client libraries you supply for API interaction must verify the server certificate - Only use the users password to obtain a long random key from the server either through an admin web…
Can you explain why one shouldn't use HMAC signatures to sign requests? How else can you guard against replay attacks, and authenticate the request? Only a key isn't enough, you need secrets as well. Right?
Use SSL only, tune ciphers and you're good. You're wasting time trying to overthink the problem by adding another layer on top.