gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 00:14:32 26 4
gpt4 key购买 nike

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

在 Tomcat 5.5 中,我们能够通过 SSL 获取 X.509 证书,然后切换回 http 并继续在请求中使用 userPrincipal 来实现此目的。迁移到 Tomcat 6 和 7 后,切换回 http 后,userPrincipal 将不再可用。

在这个问题中Can I use SSL certificate without using a HTTPS connection?据说您可以在没有 SSL 的情况下请求 X.509 证书。我正在尝试确认是否可行,以及是否有人知道如何做到这一点。

最佳答案

让我们考虑一下这个问题。

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

  1. 要求客户证明其身份
  2. 接收用户身份证明
  3. 传回唯一的随机字符串,客户端将来可以用它来证明自己的身份( session token )。

身份验证后返回未加密的 HTTP 是一个坏主意。每个人都可以看到网络上的 session token 。他们可以窃取它并用它冒充用户。请参阅FBController或搜索“ session 劫持”示例。

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

如果您确实想要,您可以使用 Javascript 实现您自己的伪 HTTPS。例如,雅虎在通过网络发送之前使用 JavaScript 获取用户密码的加盐 SHA1。您可以使用 Javascript 使用 X.509 的私钥对随机数进行签名,并发送公共(public)证书。 请注意,使用此方法时您仍然容易受到 session 劫持,因此这只是一种错误的安全感!

更好的方法是仅使用标准 HTTPS。完整的连接是加密的,这意味着传递用户证明、 session 劫持甚至查看用户请求的信息都不存在保密问题。

关于java - 如何通过 HTTP 请求获取用户 X.509 证书 -(无需 SSL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12108716/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com