繁体   English   中英

如何通过HTTP请求获取用户X.509证书-(无SSL)

[英]How do you get a users X.509 certificate over an HTTP request - (without SSL)

我们想使用LDAP中的X.509证书和组对用户进行身份验证/授权。

使用Tomcat 5.5,我们可以通过在SSL上获得X.509证书,然后切换回http并继续在请求中使用userPrincipal来做到这一点。 切换回Http之后,移至Tomcat 6和7的userPrincipal不再可用。

在这个问题中, 我可以不使用HTTPS连接就使用SSL证书吗? 据说您可以在没有SSL的情况下请求X.509证书。 我正在尝试确认是否有可能,是否有人知道如何做到这一点。

让我们考虑一下。

用户身份验证通常是这样的:

  1. 要求客户证明自己的身份
  2. 接收用户身份证明
  3. 传回一个唯一的随机字符串,客户端可以在以后用来证明其身份(会话令牌)。

身份验证后返回未加密的HTTP是一个坏主意。 每个人都可以在网上看到会话令牌。 他们可以窃取它并使用它来摆姿势作为用户。 请参阅FBController或在“会话劫持”中搜索示例。

使用未加密的会话来传递用户身份证明同样是一个坏主意。 每个人都可以重播此视频并摆出用户名。 无论您使用X.509证书还是用户名/密码:都是一样的。

如果确实需要,则可以使用Javascript实现自己的伪HTTPS。 例如,雅虎使用JavaScript在通过网络发送用户密码之前先对其添加盐分的SHA1。 您可以使用Javascript通过X.509的私钥对随机数进行签名,也可以通过公共证书进行发送。 请注意,使用此方法时您仍然可以进行会话劫持,因此这只是一种错误的安全感!

更好的方法是仅使用标准HTTPS。 完整的连接已加密,这意味着通过用户证明,会话劫持甚至查看用户请求的信息都不会出现机密性问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM