鱿鱼中安全用户身份验证的故事

Isa*_*aac 19 security ldap kerberos authentication squid

曾几何时,南美洲有一个美丽温暖的虚拟丛林,那里住着一个鱿鱼服务员。这是网络的感知图像:

                 <the Internet>
                        | 
                        | 
           A            |          B
Users <---------> [squid-Server] <---> [LDAP-Server] 
Run Code Online (Sandbox Code Playgroud)

Users请求访问 Internet 时,squid询问他们的姓名和护照,通过对他们进行身份验证LDAP,如果 ldap 批准了他们,那么他就授予了他们。

每个人都很高兴,直到一些嗅探器在用户和鱿鱼 [路径 A] 之间的路径中偷走了护照。这场灾难的发生是因为鱿鱼使用了Basic-Authentication方法。

丛林中的人们聚集在一起解决问题。一些兔子提供了使用NTLM方法。蛇更喜欢,Digest-AuthenticationKerberos树木则推荐。

毕竟,丛林人和所有人提供的许多解决方案都令人困惑!狮子决定结束这种局面。他喊出解决规则:

  • 解决方案是否安全!
  • 该解决方案是否适用于大多数浏览器和软件(例如下载软件)
  • 解决方案是否应该简单并且不需要其他庞大的子系统(如 Samba 服务器)
  • 该方法不应依赖于特殊域。(例如活动目录)

然后,一只猴子提供了一个非常合理、全面、聪明的解决方案,让他成为了新的丛林之王!

你能猜出解决方案是什么吗?

提示:squid和 之间的路径LDAP由狮子保护,因此解决方案不必固定它。

注意:对不起,如果故事无聊和混乱,但大部分都是真实的!=)

               /~\/~\/~\
            /\~/~\/~\/~\/~\
          ((/~\/~\/~\/~\/~\))
        (/~\/~\/~\/~\/~\/~\/~\)
       (////     ~   ~     \\\\)
       (\\\\(   (0) (0)   )////)
       (\\\\(   __\-/__   )////)
        (\\\(     /-\     )///)
         (\\\(  (""""")  )///)
          (\\\(  \^^^/  )///)
           (\\\(       )///)
             (\/~\/~\/~\/)         **
               (\/~\/~\/)        *####*
                |     |           ****
               /| | | |\            \\
            _/  | | | | \_ _________//   Thanks!
           (,,)(,,)_(,,)(,,)--------'
Run Code Online (Sandbox Code Playgroud)

更新:

Massimo解释说Users-squidsquid-之间的身份验证方法LDAP不必相同。我们可以使用任意方法从用户那里获取身份验证信息,并使用任意方法来验证收集的数据。

但是有一个问题:所有类型的认证器的输入/输出是不一样的。例如:

  • 一个Basic认证器应在一条线上读“用户名密码”对和回复一OK如果用户通是正确的或ERR
  • 一个Digest认证器应该读取username:realm和回复一个十六进制编码的HA(A1)ERR

虽然client-squid方法和squid-ldap方法没有直接关系,但是从客户端收集的数据必须与squid-ldap部分使用的方法兼容。因此,如果我们在用户端更改身份验证方法,我们可能也应该更改我们的身份验证器。

所以问题简化为:

  1. 在第一级,我(猴子!)正在用户端寻找一种好的身份验证方法。您推荐哪种方法安全且大多数浏览器都支持?我在NTLM,Kerberos和之间感到困惑Digest

  2. 我在哪里可以找到支持所选方法的凭据信息并通过 LDAP 进行身份验证的身份验证器。

小智 2

Kerberos 不是 HTTP 身份验证的选项。除 IE 外,NTLM 在任何浏览器中都没有得到很好的支持。Basic 是不安全的,除非你把它放在 HTTPS 后面,据我所知鱿鱼无法做到这一点。所以你只剩下摘要了。