安全和身份验证协议

时间:2013-04-03 09:01:24

标签: java authentication ssl restful-authentication restful-architecture

我正在研究身份验证协议的主题,特别是与JAVA和REST API配合良好的协议,并且对该主题有疑问。 所需系统的体系结构是一个简单的客户端 - 服务器。

我找到了一些有用的协议,如2脚OAuth,摘要认证,Amazons S3协议,当然还有SSL。

我是这个身份验证业务的初学者,我不太明白为什么我们应该使用其他所有协议而不只是使用SSL?

据说SSL据说速度较慢,但​​据我所知,很久以前就是这种情况,现在这个协议没有这个问题。 我也很困惑,所有其他协议都依赖于SSL。

我知道SSL会阻止重放攻击和中间人攻击。 与上述协议相比,SSL有何不同或不足?每个协议的贡献是不同的?

1 个答案:

答案 0 :(得分:1)

您描述了两种不同的要求。您可以向您的申请中的一个或两个申请:

1)数据保护

2)身份验证

数据保护意味着机密性,内容完整性,重放攻击和中间人攻击等等。所有这些功能都可以通过SSL实现。 SSL几乎可以应用于所有协议。

身份验证意味着您要控制谁访问您的应用程序。 有很多协议,您应该根据您的要求和时间选择身份验证协议。请考虑OAuth2。

此外,SSL中的客户端身份验证是可选的。 SSL中的客户端身份验证是使用客户端证书执行的(通常是X.509证书http://en.wikipedia.org/wiki/X.509) 查看客户端证书身份验证: http://docs.oracle.com/javaee/1.4/tutorial/doc/Security5.html

客户端证书是最安全的身份验证,但最昂贵的是基础架构投资。至少它需要组织中的PKI基础架构http://en.wikipedia.org/wiki/Public-key_infrastructure