本发明涉及云计算处理领域,尤其涉及一种握手处理过程中加密套件的选择方法、装置及介质。
背景技术:
以安全为目标的http通道(hypertexttransferprotocoloversecuresocketlayer,https)是云计算处理系统中常用的协议,随着技术发展不断有新的版本出现。http2协议是http1.1的后继版本,基于google提出的spdy协议发展而来,具体协议内容由rfc7540规定。http2和老版本的http的一个显著区别就是,当基于安全传输层协议(tls)使用加密方式通信的时候,http2强制规定了可以使用的加密套件集合,rfc7540的附录a中列举了被禁止的套件列表,http2禁止了大多数低强度的加密套件。而当出现老版本https和http2协议混合部署的时候,在某些场景下,服务器端可能会希望对老版本https使用低强度加密套件来降低服务器端的处理压力,这样一来就会导致http2的请求握手失败。而为了使得http2握手成功,将加密套件列表固定为http2协议要求的形式,这对于https的握手来说,则会在握手的时候会产生较大开销。
技术实现要素:
为了解决上述技术问题,本发明提供了一种握手处理过程中加密套件的选择方法及装置。
本发明提供了一种加密套件选择方法,包括:
服务器接收到握手请求,根据此握手请求判断安全传输层协议的版本号小于预设版本号时,使用https协议对应的加密套件进行握手处理。
此加密套件选择方法还具有以下特点:
所述方法还包括:服务器根据此握手请求判断安全传输层协议的版本号大于或等于预设版本号时,判断所述握手请求的客户问候(clienthello)消息中不存在应用层协议协商alpn的扩展参数时,使用https协议对应的加密套件进行握手处理。
此加密套件选择方法还具有以下特点:
所述方法还包括:判断所述握手请求的客户问候消息中存在应用层协议协商alpn的扩展参数,并且此扩展参数是h2时,使用http2协议对应的加密套件进行握手处理,此扩展参数不是h2时,使用https协议对应的加密套件进行握手处理。
本发明还提供了一种加密套件选择装置,应用于服务器,包括:
接收模块,用于接收握手请求;
判断模块,用于根据此握手请求判断安全传输层协议的版本号是否小于预设版本号;
选择模块,用于在判断模块根据此握手请求判断安全传输层协议的版本号小于预设版本号时,使用https协议对应的加密套件进行握手处理。
此加密套件选择装置还具有以下特点:
所述判断模块,还用于根据此握手请求判断安全传输层协议的版本号大于或等于预设版本号时,进一步判断所述握手请求的客户问候消息中是否存在应用层协议协商alpn的扩展参数;
所述选择模块,还用于在所述判断模块断所述握手请求的客户问候消息中不存在应用层协议协商alpn的扩展参数时,使用https协议对应的加密套件进行握手处理。
此加密套件选择装置还具有以下特点:
所述判断模块,还用于在判断所述握手请求的客户问候消息中存在应用层协议协商alpn的扩展参数时,判断扩展参数的内容是否为h2;
所述选择模块,还用于在所述判断模块判断此扩展参数是h2时,使用http2协议对应的加密套件进行握手处理,在所述判断模块判断此扩展参数不是h2时,使用https协议对应的加密套件进行握手处理。
本发明还提供了一种加密套件选择方法,包括:
服务器接收到握手请求,进行加速处理,根据此握手请求判断安全传输层协议的版本号小于预设版本号时,使用https协议对应的加密套件和加速处理所对应的加密套件的交集进行握手处理。
此加密套件选择方法还具有以下特点:
所述方法还包括:服务器根据此握手请求判断安全传输层协议的版本号大于或等于预设版本号时,判断所述握手请求的客户问候消息中不存在应用层协议协商alpn的扩展参数时,使用https协议对应的加密套件和加速处理所对应的加密套件的交集进行握手处理。
此加密套件选择方法还具有以下特点:
所述方法还包括:判断所述握手请求的客户问候消息中存在应用层协议协商alpn的扩展参数,并且此扩展参数是h2时,使用http2协议对应的加密套件和加速处理所对应的加密套件的交集进行握手处理,此扩展参数不是h2时,使用https协议对应的加密套件和加速处理所对应的加密套件的交集进行握手处理。
此加密套件选择方法还具有以下特点:
所述加速处理为硬件加速卡加速处理时,所述加速处理所对应的加密套件为所述硬件加速卡所支持的加密套件;
所述加速处理为软件加速算法加速处理时,所述加速处理所对应的加密套件为所述软件加速算法所支持的加密套件。
本发明还提供了一种加密套件选择装置,应用于服务器,包括:
接收模块,用于接收握手请求;
加速处理模块,用于对资源进行加速处理;
判断模块,用于根据此握手请求判断安全传输层协议的版本号是否小于预设版本号;
选择模块,用于在判断模块根据此握手请求判断安全传输层协议的版本号小于预设版本号时,使用https协议对应的加密套件和加速处理所对应的加密套件的交集进行握手处理。
此加密套件选择方法还具有以下特点:
所述判断模块,还用于根据此握手请求判断安全传输层协议的版本号大于或等于预设版本号时,进一步判断所述握手请求的客户问候消息中是否存在应用层协议协商alpn的扩展参数;
所述选择模块,还用于在所述判断模块断所述握手请求的客户问候消息中不存在应用层协议协商alpn的扩展参数时,使用https协议对应的加密套件和加速处理所对应的加密套件的交集进行握手处理。
此加密套件选择方法还具有以下特点:
所述判断模块,还用于在判断所述握手请求的客户问候消息中存在应用层协议协商alpn的扩展参数时,判断扩展参数的内容是否为h2;
所述选择模块,还用于在所述判断模块判断此扩展参数是h2时,使用http2协议对应的加密套件和加速处理所对应的加密套件的交集进行握手处理,在所述判断模块判断此扩展参数不是h2时,使用https协议对应的加密套件和加速处理所对应的加密套件的交集进行握手处理。
本发明实现老版本https和新版本http2下进行握手处理时加密套件列表选择上的兼容,实现在老版本https上采用低安全强度但是性能高的加密套件,也可以实现全面支持采用高强度加密套件的http2握手,提高握手处理过程的智能性,可以保证采用不同版本协议时均握手成功,并且可以节省开销。
附图说明
构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是实施例一中加密套件选择方法的流程图;
图2是实施例二中加密套件选择装置的结构图;
图3是实施例三中加密套件选择方法的流程图;
图4是实施例四中加密套件选择装置的结构图。
具体实施方式
下面结合附图详细描述本发明的示例性实施例。
实施例一
图1是实施例一中加密套件选择方法的流程图,此方法包括:
服务器接收到握手请求;根据此握手请求判断安全传输层协议的版本号小于预设版本号时,使用https协议对应的加密套件进行握手处理。
此方法还包括:服务器根据此握手请求判断安全传输层协议的版本号大于或等于预设版本号时,判断所述握手请求的客户问候消息中不存在应用层协议协商alpn的扩展参数时,使用https协议对应的加密套件进行握手处理。
此方法还包括:判断所述握手请求的客户问候消息中存在应用层协议协商alpn的扩展参数,并且此扩展参数是h2时,使用http2协议对应的加密套件进行握手处理,此扩展参数不是h2时,使用https协议对应的加密套件进行握手处理。
rfc7540的附录a中列举了被禁止的套件列表,http2协议对应的加密套件满足rfc7540的规定。
实施例二
图2是实施例二中加密套件选择装置的结构图;应用于服务器,此装置包括接收模块、判断模块、选择模块。
接收模块用于接收握手请求;
判断模块用于根据此握手请求判断安全传输层协议的版本号是否小于预设版本号;
选择模块用于在判断模块根据此握手请求判断安全传输层协议的版本号小于预设版本号时,使用https协议对应的加密套件进行握手处理。
其中,
判断模块还用于根据此握手请求判断安全传输层协议的版本号大于或等于预设版本号时,进一步判断所述握手请求的客户问候消息中是否存在应用层协议协商alpn的扩展参数;
选择模块还用于在所述判断模块断所述握手请求的客户问候消息中不存在应用层协议协商alpn的扩展参数时,使用https协议对应的加密套件进行握手处理。
进一步地,判断模块还用于在判断所述握手请求的客户问候消息中存在应用层协议协商alpn的扩展参数时,判断扩展参数的内容是否为h2。
选择模块还用于在所述判断模块判断此扩展参数是h2时,使用http2协议对应的加密套件进行握手处理,在所述判断模块判断此扩展参数不是h2时,使用https协议对应的加密套件进行握手处理。
实施例三
图3是实施例三中加密套件选择方法的流程图,此方法包括:
步骤1,服务器接收到握手请求,进行加速处理;
步骤2,根据此握手请求判断安全传输层协议的版本号小于预设版本号时,使用https协议对应的加密套件和加速处理所对应的加密套件的交集进行握手处理。
此方法还包括步骤3,服务器根据此握手请求判断安全传输层协议的版本号大于或等于预设版本号时,判断所述握手请求的客户问候消息中不存在应用层协议协商alpn的扩展参数时,使用https协议对应的加密套件和加速处理所对应的加密套件的交集进行握手处理。
此方法还包括步骤4,判断所述握手请求的客户问候消息中存在应用层协议协商alpn的扩展参数,并且此扩展参数是h2时,使用http2协议对应的加密套件和加速处理所对应的加密套件的交集进行握手处理,此扩展参数不是h2时,使用https协议对应的加密套件和加速处理所对应的加密套件的交集进行握手处理。
加速处理为硬件加速卡加速处理时,加速处理所对应的加密套件为所述硬件加速卡所支持的加密套件。加速处理为软件加速算法加速处理时,加速处理所对应的加密套件为所述软件加速算法所支持的加密套件。软件加速算法包括但不限于rsa多素数加密算法。
实施例四
图4是实施例四中加密套件选择装置的结构图;应用于服务器,此装置包括:
接收模块,接收握手请求;
加速处理,模块用于对资源进行加速处理;
判断模块,用于根据此握手请求判断安全传输层协议的版本号是否小于预设版本号;
选择模块,用于在判断模块根据此握手请求判断安全传输层协议的版本号小于预设版本号时,使用https协议对应的加密套件和加速处理所对应的加密套件的交集进行握手处理。
其中,
判断模块还用于根据此握手请求判断安全传输层协议的版本号大于或等于预设版本号时,进一步判断所述握手请求的客户问候消息中是否存在应用层协议协商alpn的扩展参数;
选择模块还用于在所述判断模块断所述握手请求的客户问候消息中不存在应用层协议协商alpn的扩展参数时,使用https协议对应的加密套件和加速处理所对应的加密套件的交集进行握手处理。
进一步地,
判断模块还用于在判断所述握手请求的客户问候消息中存在应用层协议协商alpn的扩展参数时,判断扩展参数的内容是否为h2。
选择模块还用于在所述判断模块判断此扩展参数是h2时,使用http2协议对应的加密套件和加速处理所对应的加密套件的交集进行握手处理,在所述判断模块判断此扩展参数不是h2时,使用https协议对应的加密套件和加速处理所对应的加密套件的交集进行握手处理。
本发明实现老版本https和新版本http2下进行握手处理时加密套件列表选择上的兼容,实现在老版本https上采用低安全强度但是性能高的加密套件,也可以实现全面支持采用高强度加密套件的http2握手,提高握手处理过程的智能性,可以保证采用不同版本协议时均握手成功,并且可以节省开销。
上面描述的内容可以单独地或者以各种方式组合起来实施,而这些变型方式都在本发明的保护范围之内。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现,相应地,上述实施例中的各装置/单元可以采用硬件的形式实现,也可以采用软件功能装置的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的物品或者设备中还存在另外的相同要素。
以上实施例仅用以说明本发明的技术方案而非限制,仅仅参照较佳实施例对本发明进行了详细说明。本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,均应涵盖在本发明的权利要求范围当中。