博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Microsoft NTLM
阅读量:4325 次
发布时间:2019-06-06

本文共 3611 字,大约阅读时间需要 12 分钟。

In a client/server application model, clients are programs acting on behalf of users who need something done. This might be opening and using a file, accessing a mailbox, querying a database, or printing a document. Servers are programs providing services to clients such as file storage, mail handling, query processing, and print spooling. Clients initiate action, servers respond. Typically, a server listens at a communications port waiting for clients to connect and ask for service

Windows Challenge/Response (NTLM) is the authentication protocol used on networks that include systems running the Windows operating system and on stand-alone systems.

The Microsoft Kerberos security package adds greater security than NTLM to systems on a network. Although Microsoft Kerberos is the protocol of choice, NTLM is still supported. NTLM must also be used for logon authentication on stand-alone systems.

NTLM credentials are based on data obtained during the interactive logon process and consist of a domain name, a user name, and a one-way hash of the user's password. NTLM uses an encrypted challenge/response protocol to authenticate a user without sending the user's password over the wire. Instead, the system requesting authentication must perform a calculation that proves it has access to the secured NTLM credentials.

Interactive NTLM authentication over a network typically involves two systems: a client system, where the user is requesting authentication, and a domain controller, where information related to the user's password is kept. Noninteractive authentication, which may be required to permit an already logged-on user to access a resource such as a server application, typically involves three systems: a client, a server, and a domain controller that does the authentication calculations on behalf of the server.

The following steps present an outline of NTLM noninteractive authentication. The first step provides the user's NTLM credentials and occurs only as part of the interactive authentication (logon) process.

  1. (Interactive authentication only) A user accesses a client computer and provides a domain name, user name, and password. The client computes a cryptographic hash of the password and discards the actual password.
  2. The client sends the user name to the server (in plaintext).
  3. The server generates a 16-byte random number, called a challenge or nonce, and sends it to the client.
  4. The client encrypts this challenge with the hash of the user's password and returns the result to the server. This is called the response.
  5. The server sends the following three items to the domain controller:

    • User name
    • Challenge sent to the client
    • Response received from the client
  6. The domain controller uses the user name to retrieve the hash of the user's password from the Security Account Manager database. It uses this password hash to encrypt the challenge.
  7. The domain controller compares the encrypted challenge it computed (in step 6) to the response computed by the client (in step 4). If they are identical, authentication is successful.

Your application should not access the NTLM security package directly; instead, it should use the Negotiate security package. Negotiate allows your application to take advantage of more advanced security protocols if they are supported by the systems involved in the authentication. Currently, the Negotiate security package selects between Kerberos and NTLM. Negotiate selects Kerberos unless it cannot be used by one of the systems involved in the authentication.

Refer to:

转载于:https://www.cnblogs.com/HenryWang/archive/2011/02/25/1965496.html

你可能感兴趣的文章
ffmpeg格式转换命令
查看>>
CSS选择器 < ~ +
查看>>
用VS开发PHP扩展
查看>>
万方数据知识平台 TFHpple +Xpath解析
查看>>
Hive实现oracle的Minus函数
查看>>
秒杀多线程第四篇 一个经典的多线程同步问题
查看>>
RocketMQ配置
查看>>
vs code调试console程序报错--preLaunchTask“build”
查看>>
蚂蚁金服井贤栋:用技术联手金融机构,形成服务小微的生态合力
查看>>
手机通话记录统计分析
查看>>
富文本编辑器比较
查看>>
端口号大全
查看>>
在oracle 12c上如何禁用haip,以及打开haip,以及对haip的理解
查看>>
实验七——Web应用测试(bookstore项目上完成)
查看>>
环信即时通讯在工程中的安装——Nusen_Liu
查看>>
bzoj千题计划141:bzoj3532: [Sdoi2014]Lis
查看>>
VScode 搭建 django 开发环境(MAC、Python3.7)
查看>>
vc2010, fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt解决办法
查看>>
通过sql脚本可以从数据库中查到数据,但是通过jdbc却获取不到
查看>>
ApiDoc 一键生成注释
查看>>