基于ssl的代理方法、装置及系统的制作方法_4

文档序号:9711465阅读:来源:国知局
理服务器120还可以通过发送密钥交换信息来更换公钥,密钥交换信息中包括新的公钥信息。代理服务器120还可以通过发送客户端数字证书请求来获取客户端数字证书以对客户端110的身份进行验证。代理服务器120在发送完信息之后,再向客户端110发送开始应答信息以通知客户端110可以发送相应的应答信息。
[0099]客户端110在接收到开始应答信息之后,根据代理服务器120发送的客户端数字证书请求返回客户端数字证书以方便代理服务器120对客户端110的身份进行验证。客户端110使用代理服务器数字证书中的公钥对预主密码进行加密,并将得到的预主密码密文数据发送给代理服务器120,客户端110再向代理服务器120发送验证信息,使代理服务器120对验证信息进行验证。之后客户端110发送握手完成信息表示握手结束。代理服务器120将接收到的预主密码密文数据利用与公钥对应的私钥进行解密得到预主密码明文数据,代理服务器120向客户端110发送握手完成以表示握手结束并握手成功。其中,客户端数字证书请求、客户端数字证书和验证信息在第一握手过程中是非必须的。
[0100]如图6所示,在第二握手过程中,代理服务器120向目标服务器130发送代理握手请求,代理握手请求中包括代理服务器120所支持的协议版本号和加密算法。服务器120接收到代理握手请求后,根据目标服务器130的数字证书选取代理握手请求中的协议版本号和加密算法,并将选定的协议版本号和加密算法发送给代理服务器120。加密算法包括验证算法、密钥交换算法以及数据加密算法。同时目标服务器130将目标服务器数字证书发送给代理服务器120,目标服务器数字证书中包括在与代理服务器120握手的过程中使用的公钥信息,如果在握手过程中不使用代理服务器数字证书中的公钥,代理服务器120还可以通过发送密钥交换信息,密钥交换信息中包括新的公钥信息。目标服务器数字证书和代理服务器数字证书中的内容相同。目标服务器130还可以通过发送代理服务器数字证书请求来获取代理服务器数字证书和验证信息以对代理服务器120的身份进行验证。目标服务器130在发送完上述信息之后,再向代理服务器120发送开始应答信息以通知代理服务器120可以发送相应的应答信息。
[0101]代理服务器120在接收到开始应答信息之后,根据目标服务器130发送的代理服务器数字证书请求返回客户端数字证书以方便目标服务器130对代理服务器120的身份进行验证。由于第一握手过程的预主密码与第二握手过程中的预主密码相同,代理服务器120判断第一握手过程中和第二握手过程中的协议版本号、密钥交换算法和公钥是否匹配,若匹配,则表示第一和第二握手过程中对预主密码的加密方法是相同的,所生成的预主密码密文数据也是相同的,为了避免再次对预主密码加密运算,则代理服务器120直接将第一握手过程中的预主密码密文数据发送给目标服务器130,再发送验证信息给目标服务器130,使目标服务器130对验证信息进行验证。之后发送握手完成信息表示握手结束。目标服务器130根据接收到的预主密码密文数据进行解密获得预主密码明文数据。目标服务器130将接收到的预主密码密文数据利用与公钥对应的私钥进行解密得到预主密码明文数据,目标服务器130向代理服务器120发送握手完成以表示握手结束并握手成功。其中,代理服务器数字证书请求、代理服务器数字证书和验证信息在第二握手过程中是非必须的。
[0102]如图7所示,在一个实施例中,提供一种基于SSL的代理装置700,所述装置包括:第一获取模块702,第二获取模块704,加密参数判断模块706和预主密码选取模块708。
[0103]第一获取模块702,用于获取在与客户端的第一握手过程中所选定的第一加密参数以及所述客户端发送的预主密码密文数据。
[0104]第二获取模块704,用于在与服务器的第二握手过程中,获取服务器选定的第二加密参数。
[0105]加密参数判断模块706,用于判断第一加密参数和第二加密参数是否匹配。
[0106]预主密码选取模块708,用于若第一加密参数和第二加密参数匹配,则直接将在所述第一握手过程中所述客户端发送的预主密码密文数据发送给所述服务器,以使所述服务器根据所述预主密码密文数据完成所述第二握手过程。
[0107]本实施例中,第一获取模块702获取在与客户端的第一握手过程中所选定的第一加密参数以及所述客户端发送的预主密码密文数据,之后在与服务器的第二握手过程中,第二获取模块704获取服务器选定的第二加密参数,加密参数判断模块706再判断第一加密参数和第二加密参数是否匹配,若匹配,预主密码选取模708块则直接将在第一握手过程中客户端发送的预主密码密文数据发送给服务器,以使服务器根据预主密码密文完成第二握手过程。这样,在判断第一加密参数与第二加密参数匹配时,则将与客户端的第一握手过程中的预主密码密文数据作为与服务器的第二握手过程中的预主密码密文数据。在第二握手过程中,无需对第二握手过程中随机数进行再次计算以得到预主密码密文数据,就可以获取用于完成第二握手过程的预主密码密文数据,同时也避免了与客户端的第一握手过程中预主密码密文数据的闲置,提高了资源利用率。
[0108]如图8所示,在一个实施例中,第二获取模块704包括:握手请求接收模块704a、加密参数返回模块704b、预主密码接收模块704c和预主密码解密模块704d。
[0109]握手请求接收模块704a,用于接收客户端发送的客户端握手请求。
[0110]加密参数返回模块704b,用于根据客户端握手请求选定第一加密参数并返回给客户端。
[0111]预主密码接收模块704c,用于接收客户端发送的预主密码密文数据,预主密码密文数据是根据第一加密参数中的公钥对客户端产生的随机数加密获得的。
[0112]预主密码解密模块704d,用于根据公钥相应的私钥对预主密码密文数据进行解密获得预主密码明文数据。
[0113]本实施例中,握手请求接收模块704a接收客户端发送的客户端握手请求,加密参数返回模块704b从客户端握手请求中选定在握手过程中所要使用的第一加密参数,预主密码接收模块704c接收客户端通过第一加密参数对预主密码进行加密生成的预主密码密文数据,预主密码解密模块704d对预主密码面数据进行解密以完成第一握手过程。保证了在代理服务器通过与客户端的握手过程中的安全性。
[0114]在一个实施例中,预主密码选取模块704c还用于若第一加密参数和第二加密参数不匹配,则以第二握手过程中的随机数作为预主密码,根据第二加密参数中的公钥对预主密码进行加密得到预主密码密文数据,并将预主密码密文数据发送给服务器,以使服务器根据第二加密参数中的公钥相应的私钥解密预主密码密文数据并完成第二握手过程。
[0115]本实施中,在判断第一加密参数和第二加密参数中相应内容不匹配时,再对第二握手过程中的随机数作为预主密码,避免第一加密参数和第二加密参数相同时对预主密码进行相同的运算而浪费运算资源。
[0116]如图9所示,在一个实施例中,第二参数包括协议版本号、密钥交换算法以及公钥;第二获取模块704包括:请求发送模块704e、加密参数接收方法704f和公钥提取模块704g。
[0117]请求发送模块704e,用于发送代理握手请求。
[0118]加密参数接收模块704f,用于接收根据代理握手请求选定的协议版本号、密钥交换算法以及目标服务器数字证书。
[0119]公钥提取模块704g,用于从目标服务器数字证书中提取公钥,并根据协议版本号、密钥交换算法和公钥得到第二加密参数。
[0120]本实施例中,在请求发送模块704e发送了代理握手请求之后,加密参数接收模块704f和公钥提取模块704g接收根据代理握手请求选定握手过程中使用的协议版本号、密钥加密算法以及加密过程中使用的公钥,以保证整个握手过程的安全性。
[0121]在一个实施例中,加密参数判断模块706还用于判断第一加密参数中的密钥交换算法、协议版本号及公钥和第二加密参数中的密钥交换算法、协议版本号及公钥是否匹配。
[0122]本实施例中,加密参数判断模块706通过比对握手过程中所使用的协议版本号、密钥交换算法和公钥,以确定在握手过程中度预主密码的运算是否相同,若相同,在第二握手过程中避免再次进行相同的运算,直接获取并使用第一握手过程中的运算结果即可,减少了运算次数,节省了运算资源的消耗。
[0123]在一个实施例中,提供一种基于
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1