答案在:HMAC,说白了就是HASH,每个客户端第一次发出请求时,将自己的唯一HASH MAC 和请求包发给服务器,以后,服务器就依据这个HMAC来判断客户端的唯一性。
看似比较简单,却解决REST安全的大问题。
Designing a Secure REST (Web) API without OAuth
[该贴被banq于2011-04-28 14:18修改过]
答案在:HMAC,说白了就是HASH,每个客户端第一次发出请求时,将自己的唯一HASH MAC 和请求包发给服务器,以后,服务器就依据这个HMAC来判断客户端的唯一性。
看似比较简单,却解决REST安全的大问题。
Designing a Secure REST (Web) API without OAuth
[该贴被banq于2011-04-28 14:18修改过]
客户端发送的HMAC是动态的是变的,不仅仅第一次发送服务端需要记录以后作为一个凭证。同样的是只要在有效的时间内请求相同的http都很得到服务器的相应,这一点只能通过时间范围来控制重复请求。
HMAC他也是一个hash算法,目前md5等是可以破解的HMAC不仅仅是由hash所决定的 他还是由私钥决定。HMAC = H( K XOR opad, H(K XOR ipad, text)) 。
在v1.0中使用的md5算法 md5(uri+key)的方式 在v2.0中改进了算法机制。
还有因为在1.0存在安全漏洞 就是 key=value 和 keyvalu=e是成立的 ,目前版本也做了改进。
非常希望能和你交流 学习,我只是一个初学者。wfwq2008#gmail.com 谢谢
并且我看了一下AWS的phpsdk的实现方式,下面是HMAC在PHP的中的实现
|
|
RFC 2104 - HMAC: Keyed-Hashing for Message Authentication
http://www.faqs.org/rfcs/rfc2104.html
Making Secure Requests to Amazon Web Services
http://aws.amazon.com/articles/1928
AWS signature version 1 is insecure
http://www.daemonology.net/blog/2008-12.html
[该贴被Breezedon于2011-04-29 19:08修改过]
关注,细节我没有深入研究,不知其他人是否帮助你。