MD5实现HTTP摘要认证

本文介绍了MD5在HTTP摘要认证中的应用,详细阐述了摘要认证如何保证用户认证安全和隐私,包括通过传递摘要而非明文密码、服务器随机数nonce防止重放攻击、客户端随机数cnonce支持双向认证以及内容摘要防止内容篡改。同时,文章还解析了摘要认证的握手过程以及客户端生成摘要信息的具体步骤。

摘要算法又称哈希算法,它表示输入任意长度的数据,输出固定长度的数据,它的主要特征是加密过程不需要密钥,并且经过加密的数据无法被解密,目前可以被解密逆向的只有CRC32算法,只有输入相同的明文数据经过相同的消息摘要算法才能得到相同的密文。消息摘要算法不存在密钥的管理与分发问题,适合于分布式网络上使用。由于其加密计算的工作量相当巨大,所以以前的这种算法通常只用于数据量有限的情况下的加密,消息摘要算法分为三类:
MD(Message Digest):消息摘要
SHA(Secure Hash Algorithm):安全散列
MAC(Message Authentication Code):消息认证码
这三类算法的主要作用:验证数据的完整性
消息摘要算法是有关于数字签名的核心算法,下面讲解MD5的一个应用:HTTP中的摘要认证机制。

1、HTTP摘要认证主要通过4个方法保证用户的认证安全和隐私:
(1)通过传递用户名,密码等计算出来的摘要来解决明文方式在网络上发送密码的问题。
(2)通过服务产生随机数nonce的方式可以防止恶意用户捕获并重放认证的握手过程。
(3)通过客户端产生随机数cnonce的方式,支持客户端对服务器的认证。
(4)通过对内容也加入摘要计算的方式,可以有选择的防止对报文内容的篡改

2、摘要认证的握手过程
(1)客户端请求

GET /dir/index.html HTTP/1.0
Host: localhost

(2)服务器响应
服务器产生一个随机数nonce,服务器将这个随机数放在WWW-Authenticate响应头,与服务器支持的认证算法列表,认证的域realm一起发送给客户端,如下例子:

HTTP/1.0 401 Unauthorized
Server: HTTPd/0.9
Date: Sun, 10 Apr 2005 20:26:47 GMT
WWW-Authenticate: Digest realm="testrealm@host.com",
                        qop="auth ",
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值