Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 安全和认证协议_Java_Authentication_Ssl_Restful Authentication_Restful Architecture - Fatal编程技术网

Java 安全和认证协议

Java 安全和认证协议,java,authentication,ssl,restful-authentication,restful-architecture,Java,Authentication,Ssl,Restful Authentication,Restful Architecture,我正在研究身份验证协议的主题,特别是与JAVA和RESTAPI配合良好的协议,对此我有一个问题。 所需系统的体系结构是一个简单的客户机-服务器 我发现了一些有用的协议,比如两条腿的OAuth、摘要认证、Amazons S3协议,当然还有SSL 我是这个认证业务的初学者,我不太明白为什么我们应该使用所有其他协议,而不仅仅是SSL 据说SSL速度较慢,但我很早以前就知道了,现在这个协议没有这个问题。 我还感到困惑的是,所有其他协议都是基于SSL的 我知道SSL会阻止重放攻击和中间人攻击。 与上面的协

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

我发现了一些有用的协议,比如两条腿的OAuth、摘要认证、Amazons S3协议,当然还有SSL

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

据说SSL速度较慢,但我很早以前就知道了,现在这个协议没有这个问题。 我还感到困惑的是,所有其他协议都是基于SSL的

我知道SSL会阻止重放攻击和中间人攻击。


与上面的协议相比,SSL有什么不同,或者说是不够的?每个协议有哪些不同的贡献?

您描述了两种不同的需求。您可以将其中一项或两项应用于您的应用程序:

1) 数据保护

2) 认证

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

身份验证意味着您希望控制谁访问您的应用程序。 有很多协议,您应该根据您的需求和您想要在身份验证中投入的时间来选择身份验证协议。请考虑OAuth2.

此外,客户端身份验证在SSL中是可选的。 SSL中的客户端身份验证使用客户端证书(通常是X.509证书)执行 查看客户端证书身份验证:


客户端证书是最安全的身份验证,但基础设施投资成本最高。至少您的组织需要PKI基础设施

谢谢你的快速回答!好的,我现在明白了,SSL只负责安全部分,而不负责身份验证部分,但是客户端证书是什么意思?您是否引用OAuth协议中的证书(包括时间戳和/或nonce和令牌)?当您说证书使用SSL时,以什么方式?。。这些事情我不太清楚。我已经更新了答案-请再看一遍。客户端证书与OAuth令牌无关。谢谢!这是有帮助的,我接受了答案,但不能提升,因为我还没有足够的声誉。还有一件事,当您谈论客户端身份验证时,您是在谈论对web应用程序或用户本人进行身份验证?这个术语经常被混淆。当我们谈论身份验证时,我们是在谈论用户名+密码吗?或者更复杂的事情,比如从客户端识别私钥?或者两者都有?身份验证是识别访问应用程序的主体。对于大多数协议(摘要、基本、表单身份验证),它是用户名加密码。对于客户端身份验证,它是客户端证书的验证和从客户端证书中提取信息。