本发明公开一种动态管理客户端数据传输的方法,涉及信息安全领域。
背景技术:
1、现有的c/s架构应用通常使用http协议和https协议进行数据的传输。
2、http协议(超文本传输协议hypertext transfer protocol),基于tcp协议的应用层传输协议,用户数据经过应用层、传输层、网络层、链路层的层层封装后经过物理层发送到目标机器。在这几层中,数据都没有经过加密处理,因此针对敏感数据会产生数据泄露,数据篡改,数据重放等相关安全问题。
3、目前主流的替代技术是使用https协议替代http协议,https协议是以安全为目标的http通道,在http的基础上通过传输加密和身份认证保证了传输过程的安全性。https在http的基础下加入ssl,https的安全基础是ssl,因此加密的详细内容就需要ssl。然而在实际部署中往往会遇到应用部署在用户的内部局域网中,用户不想申请域名以及对应的https证书的情况,此时需要采用其他加密方案来保证信息传输安全。
技术实现思路
1、本发明针对现有技术的问题,提供一种动态管理客户端数据传输的方法,动态管理实现https应用和非https应用兼容运行的效果,保证在移动端接入的应用即使不具备https证书,仍然可以正常访问运行,提高了用户的自主选择性和使用满意度,也节省了应用实施成本,提高了应用效率和应用范围。
2、本发明提出的具体方案是:
3、本发明提供一种动态管理客户端数据传输的方法,包括:
4、针对非https应用访问时,创建不验证ssl证书的okhttpclient客户端,设置一个自定义的cookiejar用于管理cookie,使用arraymap存储每个域名的cookie,通过trustmanager信任所有证书,
5、当webview加载的url出现ssl错误时,查看证书的颁发者是否在白名单中,若不在则忽略错误并继续加载页面,根据配置的httpsinterceptcontrol值,判断是否拦截https请求,是则调用父类方法执行默认的ssl错误处理逻辑,否则忽略证书错误并继续加载页面,进行数据传输;
6、针对https应用访问时,创建一个验证ssl证书的okhttpclient,根据配置的证书进行请求,设置一个自定义的cookiejar用于管理cookie,加载应用内置的证书文件,以及外部存储中的证书文件,配置sslcontext和sslsocketfactory,并基于加载的证书构建trustmanager,验证ssl证书,并基于此进行安全的https请求,用于数据传输。
7、进一步,所述的一种动态管理客户端数据传输的方法中针对非https应用访问时,创建okhttpclient客户端后,检查传入的okhttpclient.builder是否为null,如果是,则新建一个builder;
8、同样,针对https应用访问时,创建okhttpclient客户端后,检查传入的okhttpclient.builder是否为null,如果是,则新建一个builder。
9、进一步,所述的一种动态管理客户端数据传输的方法中针对非https应用访问时,设置hostnameverifier,返回true,忽略主机名验证,
10、同样,针对https应用访问时,设置hostnameverifier,返回true,忽略主机名验证。
11、进一步,所述的一种动态管理客户端数据传输的方法中针对非https应用访问时,配置超时时间、dns解析以及事件监听器,构建并返回不安全的okhttpclient实例,
12、同样,针对https应用访问时,配置超时时间、dns解析以及事件监听器,构建并返回安全的okhttpclient实例。
13、本发明还提供一种动态管理客户端数据传输的装置,包括非https应用访问管理模块和https应用访问管理模块,
14、非https应用访问管理模块针对非https应用访问时,创建不验证ssl证书的okhttpclient客户端,设置一个自定义的cookiejar用于管理cookie,使用arraymap存储每个域名的cookie,通过trustmanager信任所有证书,
15、当webview加载的url出现ssl错误时,查看证书的颁发者是否在白名单中,若不在则忽略错误并继续加载页面,根据配置的httpsinterceptcontrol值,判断是否拦截https请求,是则调用父类方法执行默认的ssl错误处理逻辑,否则忽略证书错误并继续加载页面,进行数据传输;
16、非https应用访问管理模块针对https应用访问时,创建一个验证ssl证书的okhttpclient,根据配置的证书进行请求,设置一个自定义的cookiejar用于管理cookie,加载应用内置的证书文件,以及外部存储中的证书文件,配置sslcontext和sslsocketfactory,并基于加载的证书构建trustmanager,验证ssl证书,并基于此进行安全的https请求,用于数据传输。
17、进一步,所述的一种动态管理客户端数据传输的装置中非https应用访问管理模块针对非https应用访问时,创建okhttpclient客户端后,检查传入的okhttpclient.builder是否为null,如果是,则新建一个builder;
18、同样,https应用访问管理模块针对https应用访问时,创建okhttpclient客户端后,检查传入的okhttpclient.builder是否为null,如果是,则新建一个builder。
19、进一步,所述的一种动态管理客户端数据传输的装置中非https应用访问管理模块针对非https应用访问时,设置hostnameverifier,返回true,忽略主机名验证,
20、同样,https应用访问管理模块针对https应用访问时,设置hostnameverifier,返回true,忽略主机名验证。
21、进一步,所述的一种动态管理客户端数据传输的装置中非https应用访问管理模块针对非https应用访问时,配置超时时间、dns解析以及事件监听器,构建并返回不安全的okhttpclient实例,
22、同样,https应用访问管理模块针对https应用访问时,配置超时时间、dns解析以及事件监听器,构建并返回安全的okhttpclient实例。
23、本发明的有益之处是:
24、动态管理实现https应用和非https应用兼容运行的效果,保证在移动端接入的应用即使不具备https证书,仍然可以正常访问运行,提高了用户的自主选择性和使用满意度,也节省了应用实施成本,提高了应用效率和应用范围。
1.一种动态管理客户端数据传输的方法,其特征是包括:
2.根据权利要求1所述的一种动态管理客户端数据传输的方法,其特征是针对非https应用访问时,创建okhttpclient客户端后,检查传入的okhttpclient.builder是否为null,如果是,则新建一个builder;
3.根据权利要求1所述的一种动态管理客户端数据传输的方法,其特征是针对非https应用访问时,设置hostnameverifier,返回true,忽略主机名验证,
4.根据权利要求1所述的一种动态管理客户端数据传输的方法,其特征是针对非https应用访问时,配置超时时间、dns解析以及事件监听器,构建并返回不安全的okhttpclient实例,
5.一种动态管理客户端数据传输的装置,其特征是包括非https应用访问管理模块和https应用访问管理模块,
6.根据权利要求5所述的一种动态管理客户端数据传输的装置,其特征是非https应用访问管理模块针对非https应用访问时,创建okhttpclient客户端后,检查传入的okhttpclient.builder是否为null,如果是,则新建一个builder;
7.根据权利要求5所述的一种动态管理客户端数据传输的装置,其特征是非https应用访问管理模块针对非https应用访问时,设置hostnameverifier,返回true,忽略主机名验证,
8.根据权利要求5所述的一种动态管理客户端数据传输的装置,其特征是非https应用访问管理模块针对非https应用访问时,配置超时时间、dns解析以及事件监听器,构建并返回不安全的okhttpclient实例,