HTTP 使用的认证方式:

BASIC认证(基本认证)

DIGEST认证(摘要认证)

SSL客户端认证

FormBase(基于表单认证)

1、BASIC认证

是web服务器与通信客户端之间进行的认证方式




Digest auth 认证方式怎么测试_客户端


BASIC认证虽然采用base64编码方式,但这不是加密处理,不需要任何附加信息即可对其解码。使用上不够便捷灵活,且达不到多数web网站期望的安全性等级。因此并不常用

2、DIGEST认证

从HTTP/1.1起,有了DIGEST认证。


Digest auth 认证方式怎么测试_SSL_02


DIGEST认证提供了高于BASIC认证的安全等级,但是和HTTPS的客户端认证相比仍旧很弱。DIGEST认证提供防止密码被窃听的保护机制,但并不存在防止用户伪装的保护机制。

使用上也不便捷灵活,达不到安全等级的追求标准,适用范围有限

3、SSL客户端认证

SSL客户端认证是借由HTTPS的客户端证书完成认证的方式,凭借客户端证书认证,服务器可确认访问是否来自己登录的客户端。

3.1 SSL客户端认证的认证步骤

先将客户端证书分发给客户端,且客户端必须安装此证书。

1 - 服务器 -->发送Certificate Request报文,要求客户端提供客户端证书

2- 用户选择证书 客户端-->把客户端证书信息以Client Certificate报文方式发送给服务器

3- 服务器验证,然后开始HTTPS通信

3.2 SSL客户端认证采用双因素认证

一般不会仅依靠证书,一般会基于表单认证组合形成一种双因素认证来使用。

3.3 SSL客户端认证必要的费用

4、FormBase

基于表单的认证方法并不是在HTTP协议中定义的。

客户端会向服务器上的web应用程序发送登录信息,按登录信息的验证结果认证。

4.1 认证多半为基于表单认证

4.2 Session管理及Cookie应用


Digest auth 认证方式怎么测试_客户端_03


不仅基于表单认证的登录信息及认证过程都无标准化的方法,服务器端应如何保存用户提交的密码等登录信息等也没有标准化。

一种安全的保存方法:先利用给密码加盐的方式增加额外信息,再使用散列函数计算出散列值后保存。

加盐:由服务器随机生成一个字符串,足够长,真正随机。然后把它和密码字符串 相连接,生成散列值。