System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及通信,尤其涉及一种dns查询方法。
技术介绍
1、dns(domain name system,域名系统)消息是dns协议中用于在客户端和服务器之间交换信息的基本单元。tsig(transaction signature,事务签名)是用于dns协议的安全机制,tsig通过使用共享密钥和哈希算法来生成消息认证码,以确保dns通信的双方能够确认消息未被篡改,并且确实来自预期的发送方。
2、国密算法是密码算法标准,这些算法被应用于各种信息安全场景中,包括但不限于数据加密、数字签名、身份认证等。一些dns服务中会保留国外dns开源软件或不开源的商业软件,以构建异构安全体系,但这些软件不支持国密算法,代码不可见或代码开源但复杂性高,软件适配国密算法改造成本高。
3、部署相关软件的dns服务器在与上下游dns服务器通信时,虽然支持tsig机制,但无法基于国密算法有效的确保数据完整性和身份认证,导致dns查询的安全性低。
技术实现思路
1、本申请提供一种dns查询方法,以解决dns查询的安全性低的问题。
2、第一方面,本申请提供一种dns查询方法,应用于客户端,所述客户端安装有客户端代理模块,所述方法包括:
3、响应于dns的查询指令,生成dns查询信息,所述dns查询信息用于查询服务器的信息;
4、调用所述客户端代理模块,对所述dns查询信息签名并生成签名查询包,所述签名查询包携带有第一扩展报头;
5、向所述服务
6、调用所述客户端代理模块,接收所述服务器发送的签名应答包,所述签名应答包中包括对所述签名查询包解析生成的dns应答信息。
7、在一些可行的实施例中,所述对所述dns查询信息签名并生成签名查询包,包括:
8、接收第一dns消息,如果所述第一dns消息为非签名应答包,调用所述客户端代理模块,通过密钥机制以及国密算法生成第一签名数据;
9、通过所述第一签名数据对所述dns查询信息签名;
10、获取第一预设字段,以基于所述第一预设字段生成第一扩展报头;
11、基于所述第一扩展报头以及签名后的dns查询信息,生成签名查询包。
12、在一些可行的实施例中,所述通过密钥机制以及国密算法生成第一签名数据,包括:
13、向所述服务器发送申请签名信息的请求,以从所述服务器获取第一会话编码以及第一随机数;
14、预设第一序列号,对所述第一序列号执行取模运算,以确定第一密钥;
15、基于所述第一密钥、第一会话编码、第一序列号以及第一随机数,通过国密算法生成第一签名数据,并记录所述第一序列号以及第一签名数据。
16、在一些可行的实施例中,所述方法还包括:
17、如果所述第一dns消息为签名应答包,调用所述客户端代理模块,
18、接收从所述服务器发送的签名应答包,所述应答包还包括第二序列号以及第二签名数据,所述第二签名数据是所述服务器通过所述第一签名数据,通过国密算法生成的数据;
19、对所述第二序列号执行取模运算,以确定所述第二密钥;
20、基于所述第二密钥以及第一签名数据,生成第三签名数据,以根据所述第三签名数据得到dns应答信息。
21、在一些可行的实施例中,所述根据所述第三签名数据得到dns应答信息,包括:
22、如果所述第三签名数据与第二签名数据一致,将所述签名应答包中的第二扩展报头筛除,以获取dns应答信息;
23、如果所述第三签名数据与第二签名数据不一致,丢弃所述签名应答包,并删除所述第一序列号以及第一签名数据。
24、在一些可行的实施例中,所述接收所述服务器发送的签名应答包后,还包括:
25、获取连接状态,所述连接状态为客户端与服务器的连接状态,所述连接状态包括断开状态和非断开状态;
26、如果所述连接状态为断开状态,删除所述第一序列号以及第一签名数据;
27、如果所述连接状态为非断开状态,更新所述第二序列号以及第二签名数据,以获取第三序列号以及第四签名数据。
28、第二方面,本申请提供一种dns查询方法,应用于服务器,所述服务器安装有服务器代理模块,包括:
29、调用所述服务器代理模块,解析由客户端发送的签名查询包,以得到dns查询信息,所述客户端安装有客户端代理模块,所述签名查询包为所述客户端代理模块响应于dns的查询指令后生成dns查询信息,并通过调用所述客户端代理模块对所述dns查询信息签名得到的,所述签名查询包携带有第一扩展报头,所述dns查询信息用于查询服务器的信息;
30、通过所述dns查询信息,生成所述dns应答信息;
31、调用所述服务器代理模块,对所述dns应答信息签名并生成签名应答包,所述签名应答包携带有第二扩展报头;
32、向所述客户端代理模块发送所述签名应答包,以使所述客户端代理模块解析所述签名应答包,得到dns应答信息。
33、在一些可行的实施例中,所述方法还包括:
34、接收第二dns消息,如果所述第二dns消息为签名查询包,解析由客户端发送的签名查询包,以得到dns查询信息;
35、如果所述第二dns消息为非查询包,调用所述服务器代理模块,以通过所述服务器代理模块对所述dns应答信息签名并生成签名应答包。
36、在一些可行的实施例中,所述通过所述dns查询信息,生成所述dns应答信息,包括:
37、调用所述服务器代理模块,解析所述签名查询包,以提取第一会话编码以及第一序列号;
38、基于所述第一会话编码,并对所述第一会话编码执行取模运算,以确认第二密钥所属的分组序号;
39、基于所述第一序列号,并对所述第一序列号执行取模运算,确定所述第二密钥;
40、基于所述第二密钥,通过国密算法生成第二签名数据;
41、如果所述第一签名数据与第二签名数据一致,将所述签名查询包中的第一扩展报头筛除,得到所述dns应答信息。
42、在一些可行的实施例中,所述调用所述服务器代理模块,以通过所述服务器代理模块对所述dns应答信息签名并生成签名应答包,包括:
43、调用所述服务器代理模块,通过密钥机制以及国密算法生成第五签名数据;
44、通过所述第五签名数据对所述dns应答信息签名;
45、获取第二预设字段,以基于所述第二预设字段生成第二扩展报头;
46、基于所述第二扩展报头以及签名后的dns应答信息,生成签名应答包。
47、由以上技术方案可知,本申请提供一种dns查询方法,所述方法响应于dns的查询指令,生成dns查询信息,再调用本文档来自技高网...
【技术保护点】
1.一种DNS查询方法,其特征在于,应用于客户端,所述客户端安装有客户端代理模块,所述方法包括:
2.根据权利要求1所述的DNS查询方法,其特征在于,所述对所述DNS查询信息签名并生成签名查询包,包括:
3.根据权利要求2所述的DNS查询方法,其特征在于,所述通过密钥机制以及国密算法生成第一签名数据,包括:
4.根据权利要求3所述的DNS查询方法,其特征在于,所述方法还包括:
5.根据权利要求4所述的DNS查询方法,其特征在于,所述根据所述第三签名数据得到DNS应答信息,包括:
6.根据权利要求5所述的DNS查询方法,其特征在于,所述接收所述服务器发送的签名应答包后,还包括:
7.一种DNS查询方法,其特征在于,应用于服务器,所述服务器安装有服务器代理模块,包括:
8.根据权利要求7所述的DNS查询方法,其特征在于,所述方法还包括:
9.根据权利要求7所述的DNS查询方法,其特征在于,所述通过所述DNS查询信息,生成所述DNS应答信息,包括:
10.根据权利要求7所述的DN
...【技术特征摘要】
1.一种dns查询方法,其特征在于,应用于客户端,所述客户端安装有客户端代理模块,所述方法包括:
2.根据权利要求1所述的dns查询方法,其特征在于,所述对所述dns查询信息签名并生成签名查询包,包括:
3.根据权利要求2所述的dns查询方法,其特征在于,所述通过密钥机制以及国密算法生成第一签名数据,包括:
4.根据权利要求3所述的dns查询方法,其特征在于,所述方法还包括:
5.根据权利要求4所述的dns查询方法,其特征在于,所述根据所述第三签名数据得到dns应答信息,包括:
6.根据权利要求...
【专利技术属性】
技术研发人员:吕万波,闫夏莉,叶崛宇,伦占群,陈祝亚,李洪涛,张海阔,
申请(专利权)人:中国互联网络信息中心,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。