基于超文本传输协议的通信方法、服务器、终端的制作方法_3

文档序号:9914559阅读:来源:国知局
器接收终端发送的网络请求信息;所述网络请求信息中包含所述第一时间戳、凭证标识和对应的时间戳密文。
[0167]时间戳密文是按预置加密算法对包含第一时间戳、凭证标识的算法因子加密生成。
[0168]优选的,服务器验证当前网络请求信息中的凭证标识是否有效,若无效,执行步骤308。
[0169]若当前终端已离线、断线或长时间处于非活动状态,该终端对应的凭证标识可被服务器只为无效。
[0170]步骤308,服务器按预置加密算法验证所述时间戳密文是否有效,若无效,执行步骤 310 0
[0171 ]所述预置加密算法是终端与服务器约定好的加密算法规则。
[0172]可选的,所述加密算法是签名加密算法。终端根据所述签名加密算法对包含所述第一时间戳的算法因子加密生成第一数字签名组成时间戳密文;服务器按所述签名加密算法对包含所述第一时间戳的算法因子加密生成第二数字签名;验证所述第二数字签名与所述时间戳密文对应的第一数字签名是否一致,若不一致,则所述时间戳密文无效。
[0173]所述签名加密算法规则可包括以下步骤:首先按预置规则组织算法因子;然后对该算法因子按签名算法计算得到数字签名。例如,本例中算法因子的组织规则可以是‘时间戳+凭证标识+其它’,甚至可以将整个请求报文作为算法因子;所使用的签名算法可以是消息摘要算法(MD5,Message Digest Algorithm5)或其他签名算法。
[0174]MD5算法是计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。该算法可以对任意文件或一段信息生成独一无二的MD5信息摘要,即数字签名。若任何人对文件或信息做了任何改动,其MD5值都会发生变化。
[0175]可选的,所述预置加密算法是对称加密算法;终端根据所述对称加密算法使用对应的密钥对包含所述第一时间戳的算法因子加密生成间戳密文;服务器使用所述对称加密算法对应的密钥对所述时间戳密文进行解密获取其中的时间戳信息作为第二时间戳,判断所述第二时间戳与网络请求信息中的第一时间戳是否一致,若不一致,则所述时间戳密文无效。
[0176]与签名算法是对算法因子的信息摘要进行加密获得签名不同,使用对称加密算法是对整个算法因子字符串进行加密获得时间戳密文;服务器使用相同的密钥或相对应的解密程序对时间戳密文进行解密获得算法因子原文。常用的算法如高级加密标准(AdvancedEncrypt1n Standard,AES)加密算法。
[0177]可选的,所述预置加密算法是非对称加密算法;终端根据所述非对称加密算法使用对应的公钥对包含所述第一时间戳的算法因子加密生成间戳密文;服务器使用与所述非对称加密算法对应的私钥对所述时间戳密文进行解密获取其中的时间戳信息作为第二时间戳,判断所述第二时间戳与网络请求信息中的第一时间戳是否一致,若不一致,则所述时间戳密文无效。常用的非对称加密算法如RSA加密算法。
[0178]若经验证时间戳密文无效,则说明网络请求信息中与算法因子对应的字符串已被篡改,当前网络请求不再被信任且为非法请求。
[0179]优选的,本申请按预设规则使用包含时间戳和凭证标识的字符串作为加密算法的算法因子。由于服务器为终端分配的凭证标识具有唯一性,因此由其组成的算法因子也就是唯一不重复的。由于HTTP请求消息中时间戳多为明码,而凭证标识是服务器按预置规则生成,因此除非凭证标识产生规则泄露,那么该凭证标识被篡改的可能性很低;况且算法因子的组成规则由终端和服务器约定,并不对外公开,即使知道算法因子中使用了时间戳和凭证标识,也很难获知其出现的频率和排列组合方式,因此若终端网络请求信息中的时间戳密文无效,则可以认为该字符串中的时间戳被篡改,该请求为非法请求。
[0180]本领域技术人员应该理解,在实施本申请时,可根据具体情况决定时间戳和凭证标识组成算法因子的预设规则,以及时间戳和凭证标识在算法因子中出现的顺序及次数,例如可以是时间戳+凭证标识,也可以是凭证标识+时间戳+时间戳+凭证标识等。
[0181]步骤309,服务器验证网络请求中的第一时间戳与当前时间的时间间隔是否在其有效周期内,若超出有效期,当前网络请求为无效请求。
[0182]步骤310,服务器向终端返回应答信息。
[0183]上述实施例中,终端向服务器发送的网络请求信息中包含由服务器统一分配的凭证标识,服务器对含有该凭证标识的网络请求信息可先验证该凭证标识是否有效,若凭证标识为无效状态,则服务器可中断后续操作,直接返回终端无效请求,节约了服务器部分操作指令,因此一定程度节约了服务器资源,降低了服务器载荷。其次,在网络请求信息加入数字签名,可有效防止网络请求信息被篡改,避免了重放攻击的发生。尤其是,本申请使用由服务器统一分配的凭证标识和时间戳作为签名算法因子,保证了签名算法因子的唯一性,避免了不同终端产生相同签名的可能性和时间戳被篡改的可能性,有效防止了网络重放攻击。
[0184]以上结合几个实施例对本申请提供的一种基于HTTP协议的通信方法做了描述。下面结合具体应用环境对所述方法做进一步描述:
[0185]在下面的实施例中,假设用户通过一终端,使用自己的用户名、密码登录一个网站,若服务器对登录请求验证成功,服务器返回动态密码Key给终端使用。该网站的服务器包括登录服务器、加密服务器。
[0186]步骤SOl,用户登录,获取凭证标识。
[0187]在终端中,用户输入用户名和密码向登录服务器发送登录请求。若登录成功,登录服务器向该终端返回凭证标识。该凭证标识是登录服务器根据该用户的用户名和其它相关信息生成的唯一认证信息串。
[0188]步骤S02,终端从加密服务器获取时间戳。
[ΟΙ89] 终端调用PostDownloadTimeStamp方法向加密服务器发送一个获得时间戳请求,从加密服务器上获取最新的时间戳,时间戳是加密服务器从全球时间同步服务器上获取的当前的精准时间。
[0190]步骤S03,终端生成第一签名组成时间戳密文,并组织验证请求数据包。
[°191 ] 若时间戳获取成功,终端调用RequestHeader_Stamp方法生成签名并组成验证请求数据包。
[0192]终端使用时间戳、凭证标识计算签名组成时间戳密文,其具体算法为:首先将时间戳+时间戳+凭证标识+时间戳组成算法因子字符串;然后对该算法因子字符串进行MD5生成一个签名字符串组成时间戳密文。
[0193]步骤S04,终端使用HTTPS方式向加密服务器发送验证请求
[ΟΙ94] 终端使用PostDownloadTimeStamp方法将验证请求发送到加密服务器上。
[0195]步骤S05,加密服务器使用与终端相同的规则对时间戳、凭证标识生成第二签名来验证终端发送来的验证请求,若第二签名与时间戳密文对应的第一签名一致,则时间戳密文合法有效。
[0196]步骤S06,验证网络请求信息中的第一时间戳与当前时间的时间间隔是否在对应的有效期内,若超出,则所述网络请求无效。
[0197]步骤S07,加密服务器向终端返回应答信息。
[0198]若验证通过,加密服务器返回正确的动态密码key给终端,否则,向终端返回请求失败的通知信息。
[0199]终端所获的动态密码Key可用于该用户的后续操作,如动态密码输入等。
[0200]需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请所必须的。
[0201]参照图4,是本申请实施例所述一种基于超文本传输协议HTTP服务器的结构示意图。
[0202]所述HTTP服务器具体包括:
[0203]接收模块410、发送模块420、时间戳生成模块460和密文校验模块430;
[0204]其中所述接收模块410包括:
[0205]第一接收单元411,用于接收时间戳请求信息;
[0206]第二接收单元412,用于接收网络请求信息;所述网络请求信息中包含第一时间戳和对应的时间戳密文;所述时间戳密文是根据预置加密算法对包含所述第一时间戳的算法因子加密生成;
[0207]其中所述时间戳生成模块460,用于应所述时间戳请求信息生成第一时间戳;
[0208]其中所述发送模块420包括:
[0209]第一发送单元421,用于发送时间戳生成模块所生成的第一时间戳;
[0210]其中所述密文校验模块430,用于按所述预置加密算法验证所述时间戳密文是否有效,若无效,则所述网络请求信息为无效请求。
[0211]优选的,
[0212]所述服务器还包括:
[0213]时间戳验证模块470,用于验证第二接收单元412接收的网络请求信息中的第一时间戳与当前时间的间隔是否在有效期内,若超出,则所述网络请求信息无效。
[0214]可选的,所述预置加密算法为签名加密算法,
[0215]所述密文校验模块430还包括:
[0216]签名生成单元431,用于按所述签名加密算法对包含所述第一时间戳的算法因子加密生成第二签名;
[0217]第一校验单元432,用于验证所述签名生成单元431所生成的第二数字签名与第二接收单元412所接收的时间戳密文对应的第一数字签名是否一致,若不一致,则所述时间戳密文无效。
[0218]可选的,所述预置加密算法为对称加密算法,
[0219]所述密文校验模块430还包括:
[0220]第二校验单元433,用于使用所述对称加密算法对应的密钥对第二接收单元412所接收的时间戳密文进行解密获取其中的时间戳信息作为第二时间戳,判断所述第二时间戳与第二接收单元所接收的网络请求信息中的第一时间戳是否一致,若不一致,则所述时间戳密文无效。
[0221 ]可选的,所述预置加密算法为非对称加密算法,
[0222]所述密文校验模块430还包括:
[0223]第三校验单元434,用于使用与所述非对称加密算法对应的私钥对第二接收单412元所接收的时间戳密文进行解密获取其中的时间戳信息作为第二时间戳,判断所述第二时间戳与网络请求信息中的第一时间戳是否一致,若不一致,则所述时间戳密文无效。
[0224]进一步的,所述接收模块410还包括:
[0225]第三接收单元413,用于接收终端的凭证请求;
[0226]所述服务器还包括:
[0227]凭证标识生成单元440,用于根据第三接收单元413所接收的凭证请求生成凭证标识;
[0228]所述发送模块420还包括:
[0229]第二发送单元422,用于发送凭证标识生成单元440所生成的凭证标识。
[0230]优选的,所述第二接收单元412所接收的网络请求信息中还包括凭证标识;
[0231]所述包含第一时间戳的算法因子还包括所述凭证标识;所述算法因子由所述第一时间戳和所述凭证标识按预设规则组成。
[0232]优选的,所述凭证标识动态有效;
[0233]所述服务器还包括:
[0234]凭证校验模块450,用于验证第二接收单元412所接收的网络请求信息中是否包括凭证标识,若包括且该凭证标识无
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1