参考文件:http://www.cnblogs.com/artech/archive/2011/01/25/NTLM.html
NTLM采用一种质询/应答消息交换模式
1、身份认证用户名验证:客户端向服务器端发送用户名若用户名验证通过,服务器端生成随机数,然后向客户端发送该随机数字。
2、身份认证密码认证:(1)密码摘要信息认证:客户端软件利用MD5或者SHA哈希生成密码的摘要信息,并利用摘要对随机数字进行加密。(2)客户端发送利用摘要加密的随机数字给服务器端。
3、服务端向DC服务器请求相关信息进行验证:服务器向DC请求用户名相关信息包括用户名、密码摘要、存储的随机数字
4,安全验证通过与否测试:服务器端利用存储的用户密码的摘要信息,对随机数进行加密。然后将两个加密后的随机数字进行比较。如果两者相同,则通过用户身份认证。
参考文件:http://www.cnblogs.com/artech/archive/2011/01/24/kerberos.html
Kerberos 使用对称密钥密码学,并提供端到端的安全性。
KDC是kerberos认证的可信第三方;KDC维护所有网络成员的密钥;票证授予票证TGT理解为一张名片;
1、服务器端KDC.AS验证用户名,验证通过后,利用用户的密码作为密钥,加密TGT返回客户端。
2、客户端利用密码作为密钥解密TGT,然后发送TGT+某服务请求给KDC.TGS
3、KDC.TGS验证TGT信息后,然后向客户端返回ST,其中ST包含两个相同的SessionID+客户端用户的身份标识,第一个用KDC保存的用户共享密钥加密,第二个用KDC保存的某请求服务共享密钥加密。
4、客户端利用自己与KDC共享密钥解密,获取自己与某服务请求的服务器进行通信的会话密钥;接着添加自己的认证信息,然后将含两个认证信息的ST发送于某服务请求服务器。
5、某请求服务器利用自己与KDC共享密钥解密,获取自己与某服务请求的服务器进行通信的会话密钥;某请求服务器解密认证信息后与KDC存储认证信息进行比对 ,然后开始处理服务,并利用会话密钥加密返回给客户端。