zoukankan      html  css  js  c++  java
  • 3. 技术专题

    • HTTP认证
      • 有很多认证方式,但在开始握手时,都基于401Unauthorized响应
    • Windows认证
      • 认证方式
        • Negotiate
        • NTLM(NT LAN Manger)
          • 比较老,主要应用于用于Windows NT 和 Windows 2000 Server(or Later) 工作组环境。
          • NTLM要传送用户的密码,但是密码经过处理后派生出一个8字节的key加密质询码,也是比较安全的。
          • 在Kerberos之前,Windows主要采用NTLM。在AD域环境中,如果需要认证Windows NT系统,也必须采用NTLM。
          • cntlm.exe相当于一个代理,其实就是帮你的请求完成NTLM认证过程。
        • Kerberos
          • 比较新,主要应用于Windows 2000 Server(or Later) 域(Domain)环境。
          • Kerberos较之NTLM更高效、更安全,同时认证过程也相对复杂。
          • Kerberos验证不在网络上传递用户密码,只用传送一个用户验证票。
          • 在允许的环境下,Kerberos是首选的认证方式。集成 Windows 身份验证Kerberos的验证方式是 Intranet 环境中最好的身份验证方案。
          • Kerberos这个名字来源于希腊神话,是冥界守护神兽的名字。Kerberos是一个三头怪兽,之所以用它来命名一种完全认证协议,是因为整个认证过程涉及到三方:客户端、服务端和KDC(Key Distribution Center)
          • 在Windows域环境中,KDC的角色由DC(Domain Controller)来担当。
          • 服务端要求windows认证时,浏览器第一次弹出窗口让输账号密码时,还没走Kerberos协议,这时输入账号密码点Sign in才走。
          • 协议过程/报文
            • AS-REQ请求
              • 向KDC请求进行认证,包含cname(邮箱地址),realm(域),addresses(主机名)等信息(输入的账号密码呢?)。
            • KRB Error: KRB5KDC_ERR_PREAUTH_REQUIRED响应
            • KRB Error: KRB5KDC_ERR_PREAUTH_FAILED响应
            • 可以在Wireshark中,用kerberos进行协议过滤,一般每条记录会显示具体的协议及版本号,比如KRB5。
        • 认证方式的选择
          • 客户端以ip地址访问服务器不管客户端跟服务器是否在域、也不管客户端是否以域帐号登陆,只要客户端以ip地址访问服务器,那么客户端就会选择NTLM方式验证,并且不会直接发送客户端登录用户的用户名和密码给服务器,而是会弹出一个对话框要求用户输入用户名和口令,然后发送到服务端验证。
            • 您可以避免在使用 IP 地址或名称中包含句点的企业内部网服务器上出现这种提示,方法是,在 Internet Explorer 的“本地 Intranet”设置中,列出包含 IP 地址的服务器,或是列出包含句点的服务器名称。可以通过依次单击“工具”、“Internet 选项”、“本地 Intranet”、“站点”、“高级”来访问“本地 Intranet”设置部分。然后在“将该网站添加到区域中”输入 http://127.0.0.1 或其他相关站点的 URL。
          • 如果服务器和客户端的机器都在域中,同时登陆用户又是以域用户登录,那么IE选择Kerberos验证方式。
          • 其他情况IE都选择采用NTLM验证方式,并首先尝试把登录客户端用户的用户名和密码传送给服务器验证。
            • 如果验证通过了,被直接授权访问;
            • 如果验证没通过,客户端弹出对话框要求输入用户名和密码,然后再传送到服务端验证,直到验证通过。
      • 组策略
        • 组策略(Group Policy)是Microsoft Windows系统管理员为用户和计算机定义并控制程序、网络资源及操作系统行为的主要工具。通过使用组策略可以设置各种软件、计算机和用户策略。 
                * 使用组策略可以给同组的计算机或用户强加一套统一的标准,如用户的桌面环境,计算机启动,关机注销等所执行的脚本文件、软件分发、安全设置等。
        • 组策略是一种管理员限制用户和限制计算机使用界面,使用功能的一种工具(管理注册表的系统应用),使用gpedit.msc打开,但Win10家庭版被禁用了
        • Local Security Policy管理器
          • 可以修改一下各种安全策略,比如密码要求等
        • Local Group Policy Editor管理器
          • 可以修改一些组策略配置
          • Computer Configuration
            • Software Settings
            • Windows Settings
              • Scripts (Startup/Shutdown)
              • Deployed Printers
              • Security Settings
                • Account Policies
                  • Password Policy
                  • Account Lockout Policy
                • Local Policies
                  • Audit Policy
                  • User Rights Assignment
                    • 一些权限设置,比如能不能修改时区什么的
                  • Security Options
                    • 一些安全设置,比如NTLM网络认证的
                • Public Key Policies
              • Policy-based QoS
            • Administrative Templates
              • All Settings
          • User Configuration
            • Software Settings
            • Windows Settings
              • Scripts (Logon/Logoff)
              • Deployed Printers
              • Security Settings
                • Public Key Policies
              • Policy-based QoS
            • Administrative Templates
              • All Settings
      • 浏览器行为
        • 自动完成Windows认证。
          • 如果浏览器集成了公司的AD,那么IE,Edge,Chrome都可以自动用当前登陆的Windows账号完成Windows认证,而不需要用户参与手动输入账号密码(这个表单/弹窗是浏览器弹出的,前端代码无法控制)。
          • Firefox好像不行。
          • 好像还需要勾选Internet Options->Security->Internet/Local Intranet->Custom level…->User Authentication->Logon->Automatic logon with current user name and password。(还要看当地的IT策略,有可能没权限改)
            • ** Internet Options->Security下面有4个zone,分别是Internet,Local internet,Trusted sites和Restrict sites。相当于把想要访问的地址分了4组,可以为每组内的地址设置安全策略,比如到Custom level…下去设置是否自动登陆。**
            • 对于Local Intranet范围内的自动登陆设置,好像在Internet Options->Security->Local Intranet->Sites中列出的域名,以及列出的4个规则中勾选的项自动认为是intranet的地址,才在这个范围内,才能自动完成Windows认证。或者使用组策略(怎么弄?)。
  • 相关阅读:
    增加samba用户提示Failed to add entry for user
    二叉树
    excel技巧
    mongodb导入json文件
    mongodb导出数据csv格式
    mongoexport导出csv中文乱码
    左连接,结果大于左面的表验证 解释
    plsql 用法和技巧
    对javaNI和NIO理解
    TinyMCE4.x整合教程-Xproer.WordPaster
  • 原文地址:https://www.cnblogs.com/wyp1988/p/14918308.html
Copyright © 2011-2022 走看看