发明内容
本发明的主要目的是提供一种基于HTTPS加密的网站过滤方法和系统,旨在使得在网站过滤时更加安全。
本发明提出一种基于HTTPS加密的网站过滤方法,包括:
接收到用户端发送的数据包时,确定接收到的数据包的类型;
若接收到的数据包为连接请求数据包,则对获取到的连接请求数据包进行字段解析以确定待访问的网站域名;
在确定的网站域名与预存的第一网页类型关键词匹配时,拦截用户端所发送的连接请求数据包。
优选地,所述若接收到的数据包为连接请求数据包,则对获取到的连接请求数据包进行字段解析以确定待访问的网站域名的步骤之后,该方法包括:
在确定的网站域名与预存的第二网页类型关键词匹配时,记录确定的网站域名。
优选地,所述对获取到的连接请求数据包进行字段解析以确定待访问的网站域名的步骤包括:
从获取到的连接请求数据包中,提取SNI业务节点接口字段;
在提取的SNI业务节点接口字段中确定所述待访问的网站域名。
优选地,所述对获取到的连接请求数据包进行字段解析以确定待访问的网站域名的步骤还包括:
在接收到的数据包为连接请求数据包,且该接收到的数据包中没有SNI业务节点接口字段时,获取接收到的数据包中的网站证书信息;
解析获取到的网站证书信息以确定待访问的网站域名。
优选地,所述对获取到的连接请求数据包进行字段解析以确定待访问的网站域名的步骤之后,该方法还包括:
在确定的网站域名与预存的所述第一网页类型关键词不匹配时,将接收到的数据包转发至服务器。
优选地,所述确定接收到的数据包的类型的步骤之后,该方法还包括:
若接收到的数据包不是连接请求数据包,则将接收到的数据包转发至服务器。
本发明还提出一种基于HTTPS加密的网站过滤系统,包括:
确定模块,用于接收到用户端发送的数据包时,确定接收到的数据包的类型,以及若接收到的数据包为连接请求数据包,则对获取到的连接请求数据包进行字段解析以确定待访问的网站域名;
拦截模块,用于在确定的网站域名与预存的第一网页类型关键词匹配时,拦截用户端所发送的连接请求数据包。
优选地,该系统还包括记录模块,用于在确定的网站域名与预存的第二网页类型关键词匹配时,记录确定的网站域名。
优选地,所述确定模块包括:
获取单元,用于从获取到的连接请求数据包中,提取SNI业务节点接口字段;
确定单元,用于在提取的SNI业务节点接口字段中确定所述待访问的网站域名。
优选地,所述获取单元还用于在接收到的数据包为连接请求数据包,且该接收到的数据包中没有SNI业务节点接口字段时,获取接收到的数据包中的网站证书信息;所述确定单元还用于解析获取到的网站证书信息以确定待访问的网站域名。
优选地,该系统还包括第一转发模块,用于在在确定的网站域名与预存的所述第一网页类型关键词不匹配时,将接收到的数据包转发至服务器。
优选地,该系统还包括第二转发模块,用于若接收到的数据包不是连接请求数据包,则将接收到的数据包转发至服务器。
本发明提出一种基于HTTPS加密的网站过滤方法和系统,抓取终端向服务器发送的连接请求数据包,获取该数据包中的访问网站域名,在获取到的访问网站域名与预存的第一网页类型关键词匹配时,拦截用户端所发送的连接请求数据包,即禁止用户访问该网站,以达到网站过滤的目的,并且在过滤过程中并未获取用户端与服务器之间通信的数据包中的具体数据,使得在网站过滤时更加安全。
具体实施方式
下面结合附图及具体实施例就本发明的技术方案做进一步的说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
名词解释:
SNI(Service Node Interface,业务节点接口)是在RFC3546中定义的TLS(Transport Layer Security,安全层传输协议)的一个重要扩展。可以在TLS握手过程的握手请求数据包中,标识客户端访问的域名。这个特性使服务端可以在同一个IP的同一端口上提供多个HTTPS站点,且这些站点可以使用不同的证书。
参照图1,图1为本发明基于HTTPS加密的网站过滤方法第一实施例的流程示意图。
本发明提出一种基于HTTPS加密的网站过滤方法,包括:
步骤S10,接收到用户端发送的数据包时,确定接收到的数据包的类型;
在本实施例中基于HTTPS加密的网站过滤方法运行于用户端与服务器之间的转发设备(如路由器上),该转发设备抓取用户端向服务器发送的数据包,并根据数据包的标识头或其它标识字段确定接收到的数据包的类型。
步骤S20,若接收到的数据包为连接请求数据包,则对获取到的连接请求数据包进行字段解析以确定待访问的网站域名;
在用户端向服务器发送的连接请求数据包中包含带访问的网站域名,则对获取到的连接请求数据包进行解析即可获取到待访问的网站域名,网站域名是指网站的网址。
步骤S30,在确定的网站域名与预存的第一网页类型关键词匹配时,拦截用户端所发送的连接请求数据包。
在本实施例中,该第一网页类型的关键词可为某一网站名称,例如该关键词百度,则所要过滤的网站为与百度有关的所有连接地址,则当获取到的连接请求数据包中的网站域名包括baidu,则过滤该网站,即不响应该连接请求数据包;第一网页类型也可为如暴力等某一类别的网站,在第一网页类型的子目录下预存暴力类型的网站地址,将获取到的访问网站域名与预存的第一网页类型的子目录下的网站地址依次进行匹配,当获取到的访问网站域名与预存的第一网页类型匹配时,不响应用户端所发送的连接请求数据包,也可预存多个网站类型,将获取到的访问网站域名与不同类型子目录下保存的网站地址依次进行匹配,以实现网站过滤的多样性。
本实施例提出的基于HTTPS加密的网站过滤方法,抓取终端向服务器发送的连接请求数据包,获取该数据包中的访问网站域名,在获取到的访问网站域名与预存的第一网页类型关键词匹配时,拦截用户端所发送的连接请求数据包,即禁止用户访问该网站,以达到网站过滤的目的,并且在过滤过程中并未获取用户端与服务器之间通信的数据包中的具体数据,使得在网站过滤时更加安全。
参照图2,图2为本发明基于HTTPS加密的网站过滤方法第二实施例的流程示意图。
基于第一实施例提出本发明基于HTTPS加密的网站过滤方法第二实施例,在本实施例中步骤S20之后该方法包括:
步骤S40,在确定的网站域名与预存的第二网页类型关键词匹配时,记录确定的网站域名。
在本实施例中,可对网站域名与预存的第一网页类型的关键词匹配时,拦截该网站域名,该第一网页类型可为暴力、色情以及钓鱼网站等网站域名,该类网站域名的危害性较大,可直接拦截该网站域名;在确定的网站域名与预存的第二网页类型关键词匹配时,可记录确定的网站域名,以便于后续对连接请求数据包中的网站域名的识别,该类网页类型可为广告等危害性较小的网站不用直接拦截,仅仅进行记录即可。
在其它变形实施例中,也可在确定的网站域名与预设的第一或第二网页类型关键词匹配时,直接拦截并记录该网站域名。
参照图3,图3为图1中步骤S20第一实施例的具体流程示意图。
在本发明基于HTTPS加密的网站过滤方法第一实施例中,步骤S20包括:
步骤S21,判断获取到的连接请求数据包中是否包含SNI字段;
步骤S22,若获取到的连接请求数据包中包含SNI字段,则提取SNI字段;
步骤S23,在提取的SNI字段中确定所述待访问的网站域名。
当用户端发送的数据包采用TLS(Transport Layer Security,安全层传输协议),进行加密,则用户端在访问网站时向服务器发送的连接请求中包含SNI字节,该SNI字节中包含用户访问的网站的域名,可根据用户访问的网站的域名确定用户所要访问的网站。并且该连接请求数据包为明文,更容易获取用户访问的网站的域名。
参照图4,图4为图1中步骤S20第二实施例的具体流程示意图。
在本发明基于HTTPS加密的网站过滤方法第一实施例中,步骤S21之后还包括:
步骤S24,若接收到的连接请求数据包中不包含SNI字段,则获取接收到的数据包中的网站证书信息;
步骤S25,解析获取到的网站证书信息以确定待访问的网站域名。
由于用户端向服务器发送的连接请求数据包,以及服务器响应用户端发送的连接请求数据包所反馈的数据包中,均包含服务器的网站证书信息,该证书中包括所要访问的网站域名以及密钥等信息,在获取到连接请求数据包中的网站证书信息时,解析该网站证书信息并获取用户待访问的网站的域名,将获取到的网站域名与预存的网页类型进行匹配,在获取到的网站域名与预存的网页类型关键词匹配时,截获该网站的连接请求。
参照图5,图5为本发明基于HTTPS加密的网站过滤方法第三实施例的流程示意图。
基于第一实施例和第二实施例提出本发明基于HTTPS加密的网站过滤方法第三实施例,在本实施例中步骤S20之后,该方法还包括:
步骤S50,在确定的网站域名与预存的第一网页类型关键词不匹配时,将接收到的数据包转发至服务器。
在本实施例中,若获取到的连接请求数据包中的访问网站域名与预存的第一网页类型不匹配,则说明该网站不用进行过滤,则将该数据包直接转发至服务器即可,由服务器在接收到用户端发送的连接请求时,选择响应或拒绝响应用户端发送的连接请求;在其它变形实施例中,在确定的网站域名与预存的第一网页类型关键词不匹配时,继续判断与预存的第二网页类型是否匹配,在确定的网站类型与第二网页类型不匹配时,则将该数据包直接转发至服务器即可;在确定的网站域名与预存的第一网页类型关键词不匹配,同时与预存的第二网页类型匹配时,将该数据包转发至服务器,同时记录确定的网站域名。
参照图6,图6为本发明基于HTTPS加密的网站过滤方法第四实施例的流程示意图。
基于第一实施例提出本发明基于HTTPS加密的网站过滤方法第四实施例,在本实施例中步骤S10之后,该方法还包括:
步骤S60,若接收到的数据包不是连接请求数据包,则将接收到的数据包转发至服务器。
由于在TLS加密传输协议中仅有连接请求数据包中设置有SNI字段或网站证书信息,若首先获取到的数据包为用户端向服务器发送的其它数据包,说明该网站为安全网站不用进行截获,所以对于其他类型的数据包如数据获取请求数据包,直接转发至服务器。
在本实施例中若接收到的数据包不是连接请求数据包时,且并未根据该数据包的连接请求数据包获取待访问网站的信息时,也可将用户端与服务器之间的证书替换掉,并根据替换掉的证书解密以获取待访问网站的域名。
参照图7,图7为本发明基于HTTPS加密的网站过滤系统第一实施例的结构示意图。
本实施例提出一种基于HTTPS加密的网站过滤系统,包括:
确定模块10,用于接收到用户端发送的数据包时,确定接收到的数据包的类型,以及若接收到的数据包为连接请求数据包,则对获取到的连接请求数据包进行字段解析以确定待访问的网站域名;
在本实施例中基于HTTPS加密的网站过滤方法运行于用户端与服务器之间的转发设备(如路由器上),该转发设备抓取用户端向服务器发送的数据包,并根据数据包的标识头或其它标识字段确定接收到的数据包的类型。
在用户端向服务器发送的连接请求数据包中包含带访问的网站域名,则对获取到的连接请求数据包进行解析即可获取到待访问的网站域名,网站域名是指网站的网址。
拦截模块20,用于在确定的网站域名与预存的第一网页类型关键词匹配时,拦截用户端所发送的连接请求数据包。
在本实施例中,该网页类型的关键词可为某一网站名称,例如该关键词百度,则所要过滤的网站为与百度有关的所有连接地址,则当获取到的连接请求数据包中的网站域名包括baidu,则过滤该网站,即不响应该连接请求数据包;网站类型也可为如暴力等某一类别的网站,在第一网页类型的子目录下预存暴力类型的网站地址,将获取到的访问网站域名与预存的第一网页类型的子目录下的网站地址依次进行匹配,当获取到的访问网站域名与预存的第一网页类型匹配时,不响应用户端所发送的连接请求数据包,也可预存多个网站类型,将获取到的访问网站域名与不同类型子目录下保存的网站地址依次进行匹配,以实现网站过滤的多样性。
本实施例提出的基于HTTPS加密的网站过滤系统,抓取终端向服务器发送的连接请求数据包,获取该数据包中的访问网站域名,在获取到的访问网站域名与预存的第一网页类型关键词匹配时,拦截用户端所发送的连接请求数据包,即禁止用户访问该网站,以达到网站过滤的目的,并且在过滤过程中并未获取用户端与服务器之间通信的数据包中的具体数据,使得在网站过滤时更加安全。
参照图8,图8为本发明基于HTTPS加密的网站过滤系统第二实施例的结构示意图。
基于第一实施例提出本发明基于HTTPS加密的网站过滤系统第二实施例,在本实施例中该系统还包括记录模块30,用于在确定的网站域名与预存的第二网页类型关键词匹配时,记录确定的网站域名。
在本实施例中,可对网站域名与预存的第一网页类型的关键词匹配时,拦截该网站域名,该第一网页类型可为暴力、色情以及钓鱼网站等网站域名,该类网站域名的危害性较大,可直接拦截该网站域名;在确定的网站域名与预存的第二网页类型关键词匹配时,可记录确定的网站域名,以便于后续对连接请求数据包中的网站域名的识别,该类网页类型可为广告等危害性较小的网站不用直接拦截,仅仅进行记录即可。
在其它变形实施例中,也可在确定的网站域名与预设的第一或第二网页类型关键词匹配时,直接拦截并记录该网站域名。
参照图9,图9为图7中确定模块的具体结构示意图。
在本发明基于HTTPS加密的网站过滤系统第一实施例中,所述确定模块10包括:
获取单元11,用于从获取到的连接请求数据包中,提取SNI业务节点接口字段;
确定单元12,用于在提取的SNI业务节点接口字段中确定所述待访问的网站域名。
当用户端发送的数据包采用TLS(Transport Layer Security,安全层传输协议),进行加密,则用户端在访问网站时向服务器发送的连接请求中包含SNI字节,该SNI字节中包含用户访问的网站的域名,可根据用户访问的网站的域名确定用户所要访问的网站。并且该连接请求数据包为明文,更容易获取用户访问的网站的域名。
在本发明基于HTTPS加密的网站过滤系统第一实施例中,所述获取单元11还用于若接收到的数据包为连接请求数据包,且该接收到的数据包中没有SNI字段时,获取接收到的数据包中的网站证书信息;所述确定单元12还用于解析获取到的网站证书信息以确定待访问的网站域名。
由于用户端向服务器发送的连接请求数据包,以及服务器响应用户端发送的连接请求数据包所反馈的数据包中,均包含服务器的网站证书信息,该证书中包括所要访问的网站域名以及密钥等信息,在获取到连接请求数据包中的网站证书信息时,解析该网站证书信息并获取用户待访问的网站的域名,将获取到的网站域名与预存的网页类型进行匹配,在获取到的网站域名与预存的网页类型关键词匹配时,截获该网站的连接请求。
参照图10,图10为本发明基于HTTPS加密的网站过滤系统第三实施例的结构示意图。
基于第一实施例和第二实施例提出本发明基于HTTPS加密的网站过滤系统第三实施例,在本实施例中,该系统还包括第一转发模块40,用于在在确定的网站域名与预存的第一网页类型关键词不匹配时,将接收到的数据包转发至服务器。
在本实施例中,若获取到的连接请求数据包中的访问网站域名与预存的第一网页类型不匹配,则说明该网站不用进行过滤,则将该数据包直接转发至服务器即可,由服务器在接收到用户端发送的连接请求时,选择响应或拒绝响应用户端发送的连接请求;在其它变形实施例中,在确定的网站域名与预存的第一网页类型关键词不匹配时,继续判断与预存的第二网页类型是否匹配,在确定的网站类型与第二网页类型不匹配时,则将该数据包直接转发至服务器即可;在确定的网站域名与预存的第一网页类型关键词不匹配,同时与预存的第二网页类型匹配时,将该数据包转发至服务器,同时记录确定的网站域名。
参照图11,图11为本发明基于HTTPS加密的网站过滤系统第四实施例的结构示意图。
基于第一实施例和第二实施例提出本发明基于HTTPS加密的网站过滤系统第四实施例,在本实施例中,该系统还包括:
第二转发模块50,用于若接收到的数据包不是连接请求数据包,将接收到的数据包转发至服务器。
由于在TLS加密传输协议中仅有连接请求数据包中设置有SNI字段或网站证书信息,若首先获取到的数据包为用户端向服务器发送的其它数据包,说明该网站为安全网站不用进行截获,所以对于其他类型的数据包如数据获取请求数据包,直接转发至服务器。
在本实施例中若接收到的数据包不是连接请求数据包时,且并未根据该数据包的连接请求数据包获取待访问网站的信息时,也可将用户端与服务器之间的证书替换掉,并根据替换掉的证书解密以获取待访问网站的域名。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。