搜索标签:Usb身份认证,Ukey身份认证,Usb Key身份认证。
2.3.2用户认证模块
INPUT元素:
IID_SecureWeb_I_SerialNumber:硬件序列号
IID_SecureWeb_I_SigninType:网站的登陆方式(value属性为1表示自动登录)
IID_SecureWeb_I_Random:临时生成的用于认证的随机数据
IID_SecureWeb_I_MD5Result:用于接收终端计算结果
按钮元素
IID_SecureWeb_B_Signin:登录按钮(用户认证)
认证流程:
1 【页面需要编码完成的流程】网页服务器端生成一串临时的用于认证的随机数据,并保存起来,然后赋值给IID_SecureWeb_I_Random。
2 USB KEY身份认证管理系统程序根据以下算法计算出一个字符串:
MD5Result_Client = MD5(SerialNumber + AdminPass + Random + SaltValue)
并将值赋予IID_SecureWeb_I_MD5Result。
3 【页面需要编码完成的流程】认证页面在SUBMIT后,在服务器端根据上传的硬件序列号找到UKey所代表的用户的记录,并读出记录里在发行时写入该UKey的种子认证数据,按照同样的算法计算:
MD5Result_Server = MD5(SerialNumber + AdminPass + Random + SaltValue)
并将此数据与终端上传的MD5Result_Client进行比较,如果一致,表明认证通过。
认证使用的算法为MD5,这个算法在不同的语言中,结果都是一致的。
请参考示例中login.asp创建流程的服务器端代码片段:
<%
if request.form("action")="sub" then
set rs=conn.execute("select * from psa_users where UserName='"&request.form("IID_SecureWeb_I_UserName")&"' and SerialNumber='"&request.form("IID_SecureWeb_I_SerialNumber")&"' ")
if not rs.eof then
MD5Result_s=md5(rs("SerialNumber")&rs("AdminPass")&Session("GetCode")&rs("SaltValue"))