本发明涉及网络安全技术,特别涉及一种设备验证方法及装置。
背景技术:
:随着网络技术的发展,网络安全问题也日益受到重视。例如,在很多网站服务中,为了保证业务处理的安全性,需要对执行该业务的设备进行识别,以判断该设备是否是安全设备。但是,目前的设备验证中,单纯根据设备的硬件属性来识别设备,容易出现伪造等危害安全性的情况,该验证方式可靠性较低。技术实现要素:有鉴于此,本发明提供一种设备验证方法及装置,以提高设备验证的可靠性。具体地,本发明是通过如下技术方案实现的:第一方面,提供一种设备验证方法,所述设备验证方法用于对请求执行目标业务的目标设备进行验证,所述方法包括:接收待验证的所述目标设备发送的设备验证请求,所述设备验证请求包括:设备证书及所述目标设备的第一设备属性信息,所述设备证书中包括根据第二设备属性信息生成的设备指纹;在根据所述设备指纹确认所述设备证书有效,并且所述设备指纹与第一设备属性信息匹配时,确定所述设备证书是所述目标设备的证书,允许所述目标设备执行所述目标业务。第二方面,提供一种设备验证方法,所述设备验证方法用于在向服务器请求执行目标业务时使用,所述方法包括:采集第一设备属性信息;向所述服务器发送设备验证请求,所述设备验证请求包括:设备证书及所述第一设备属性信息,所述设备证书中包括根据第二设备属性信息生成的设备指纹,以使得在所述服务器确定所述设备指纹与第一设备属性信息匹配时执行所述目标业务。第三方面,提供一种设备验证装置,所述装置应用于服务器上,包括:请求接收单元,用于接收待验证的目标设备发送的设备验证请求,所述设备验证请求包括:设备证书及所述目标设备的第一设备属性信息,所述设备证书中包括根据第二设备属性信息生成的设备指纹;设备验证单元,用于在根据所述设备指纹确认所述设备证书有效,并且所述设备指纹与第一设备属性信息匹配时,确定所述设备证书是所述目标设备的证书,允许所述目标设备执行目标业务。第四方面,提供一种设备验证装置,所述装置应用于目标设备上,包括:信息获取单元,用于采集第一设备属性信息;请求发送单元,用于向所述服务器发送设备验证请求,所述设备验证请求包括:设备证书及所述第一设备属性信息,所述设备证书中包括根据第二设备属性信息生成的设备指纹,以使得在所述服务器确定所述设备指纹与第一设备属性信息匹配时执行所述目标业务。本发明实施例的设备验证方法及装置,通过设置目标设备在请求验证时携带设备证书,并且在该设备证书中包括根据设备属性生成的设备指纹,根据设备证书和设备指纹对目标设备进行验证,在确定设备指纹与该目标设备的设备属性匹配,该证书是该目标设备的证书时才允许其访问业务,能够更加有效的识别出非法访问的设备,并且使得设备验证更加可靠。附图说明图1是本发明实施例提供的设备验证方法的应用场景图;图2是本发明实施例提供的一种设备验证方法的信令示意图;图3是本发明实施例提供的另一种设备验证方法的信令示意图;图4是本发明实施例提供的一种设备验证装置的结构示意图;图5是本发明实施例提供的另一种设备验证装置的结构示意图;图6是本发明实施例提供的又一种设备验证装置的结构示意图;图7是本发明实施例提供的又一种设备验证装置的结构示意图。具体实施方式图1示例性的示出了本发明实施例的设备验证方法的应用场景,如图1所示,以用户在某个网站执行支付业务为例,该支付业务比如是用户使用自己的账户对某个业务进行付款等业务操作。用户通常是使用自己的电脑11来进行支付业务,由于该业务需要保证比较高的安全性,服务器12可以记录下该用户的账户与用户经常使用的电脑11之间的对应关系,如果用户的账户是在电脑11上使用则服务器12可以认为该业务的进行是安全的。而如果服务器12发现该账户在请求执行支付业务时使用的是电脑13,而不是用户经常使用的电脑,那么服务器12就可以怀疑用户的账户是否已经被黑客非法获取到,并且黑客在使用电脑13进行非法操作,服务器12就可以拒绝该业务的执行。上述的例子,就是一种设备验证的应用场景,即某个网站服务器为了保证业务的安全性而对设备(比如电脑)进行识别,以验证业务进行是否是安全的。后续所描述的本发明实施例的设备验证方法,就是描述服务器是怎样对设备进行验证的,以保证验证结果更加准确和可靠,当然设备验证的例子不局限于图1所示的场景,其他类似的场景也可以采用本发明实施例的设备验证方法。图2是本发明实施例提供的一种设备验证方法的信令示意图,如图2所示,该方法示例了其中一台设备与服务器之间进行的设备验证流程,比如某个用户在使用该设备要进行支付业务,服务器侧为了保证业务安全,会指示设备进行验证,只有验证通过后服务器才会允许设备继续执行业务。如下的流程描述了该设备在接收到服务器的请求验证的指示后进行的处理,并且将该待验证的设备可以称为目标设备,将设备要执行的业务称为目标业务。201、目标设备采集第一设备属性信息;其中,待验证的目标设备在接收到服务器发送的请求验证设备的指示后,目标设备将采集自身对应的第一设备属性信息(该“第一”只是为了与后续实施例中出现的其他属性信息区分,不具有其他限制意义)。具体的,该第一设备属性信息是该目标设备的硬件固有属性。举例来说,以目标设备是电脑为例,电脑中有很多硬件,比如网卡、显卡、CPU、内存条等等,需要采集类似这些硬件的属性信息。比如显卡,显卡的属性例如可以包括:型号、名称、出厂ID、分辨率等等,这些都可以称为显卡这个硬件的属性信息,具体本实施例采集哪个属性,比如是获取型号还是出厂ID,本实施例不做限制。只是对于获取的硬件属性有一个要求,即该属性是硬件的固有属性,即对于该硬件来说不会变化的属性,例如,仍以显卡为例,可以采集出厂ID或者型号,这些属性是固定不变的,而分辨率虽然也是显卡的一个属性,但是可能会变化,比如经过电脑配置的调整,分辨率可以变大或变小,这些可变的属性信息不能采集作为第一设备属性信息。此外,本步骤中采集的第一设备属性信息的数量,通常可以是多个,比如采集三个属性信息或者五个属性信息等。需要说明的是,该多个属性信息,可以是对应一个硬件的多个属性,也可以是分别对应多个硬件的多个属性。举例如下,假设采集了三个属性信息A属性、B属性和C属性,其中这三个属性都对应一个硬件比如显卡,分别是显卡的型号、出厂ID和名称;或者这三个属性分别对应不同的硬件,比如A属性是网卡的型号,B属性是显卡的出厂ID,C属性是CPU的型号等,当然还有其他例子,不再详举。202、目标设备向服务器发送设备验证请求,该请求包括:设备证书及所述目标设备的第一设备属性信息,所述设备证书中包括根据第二设备属性信息生成的设备指纹;其中,目标设备在采集第一设备属性信息后,将向服务器发送设备验证请求,请求服务器对该目标设备进行设备验证。验证请求中,不仅包括了201中采集的第一设备属性信息,还包括设备证书。通常情况下,假设该目标设备是合法的用户设备,那么该设备证书是在本次设备验证流程之前由服务器颁发给目标设备的,目标设备存储了该服务器发送的设备证书,在该步骤中将该设备证书携带在验证请求中即可。此时,设备证书中携带的根据第二设备属性信息生成的设备指纹,是该目标设备根据自己的属性比如上述201中列举的属性生成的指纹。而假设该待验证的目标设备是非法的黑客使用的设备,那么该设备证书有可能是黑客盗取的合法用户的设备证书,那么该设备证书中携带的设备指纹仍然是目标设备根据自己的属性生成的指纹,黑客无法对该设备证书中包括的设备指纹进行更改,因为只要对设备证书的内容做改动证书就会无效掉。可选的,设备证书可以是存储在目标设备的信任平台模块TPM中,该TPM硬件能够为证书的存储提供更加可靠的安全性保障。203、服务器判断第一设备属性信息与设备证书中的设备指纹是否匹配;其中,在本步骤的服务器判断第一设备属性信息与设备证书中的设备指纹是否匹配之前,服务器还要根据设备指纹确认设备证书是否有效。比如,判断证书有效时,查看设备指纹是否已经被破坏,比如服务器可以将证书中的设备指纹与之前在服务器存储的指纹比较,判断是否破坏;服务器还可以使用设备指纹进行完整性测试,判断证书内容是否完整,等。在确定证书有效后,服务器将对202中目标设备提交的第一设备属性信息和证书中的设备指纹进行比较,判断两者是否匹配。可选的,上述的第一设备属性信息和证书中的设备指纹相匹配,可以有两种方式。例如,第一设备属性信息与第二设备属性信息相匹配,比如,目标设备采集的第一设备属性信息中包括:A属性、B属性和C属性,用于生成证书中的设备指纹的第二设备属性信息也包括:A属性、B属性和C属性,即设备指纹也是根据这三个属性生成的,那么第一设备属性信息与第二设备属性信息就是匹配的,也即第一设备属性信息和证书中的设备指纹相匹配。又例如,还可以根据目标设备采集的第一设备属性信息生成另一设备指纹,该另一设备指纹与所述设备证书中的设备指纹相同,那也说明第一设备属性信息和证书中的设备指纹相匹配。进一步的,当第一设备属性信息与第二设备属性信息相匹配时,该属性信息的匹配指的是,例如,第一设备属性信息与第二设备属性信息中的对应属性值,全部相同,或者相同属性值占总属性值数目的比例达到预设比例阈值。举例如下:假设有四个属性A属性、B属性、C属性和D属性,服务器将比较目标设备采集的这四个属性与设备证书中对应的该四个属性是否相同,以网卡为例,设备证书中的A属性是网卡的出厂ID,目标设备采集的第一设备属性信息也有该目标设备自身的网卡出厂ID,服务器将比较这两个出厂ID是否相同,即相同硬件的对应类型的属性是否是相同的;对于证书中的每个属性都要做上述的比较。而在比较时可能出现三种情况:一种情况是,属性值(该属性值比如是网卡的出厂ID)相同,比如出厂ID完全一样;另一种情况是,属性值不同,比如出厂ID是不同的,或者显卡的型号是不同的;再一种情况是,采集的属性值为空,比如在设备证书中有一个属性是网卡的型号,但是目标设备采集的第一设备属性信息中,网卡型号为空,即没采集到,这可能是由于采集时受采集环境的影响或其他因素而未得到该属性。在上述三种比较情况的基础上,属性信息的匹配可以定义为:例如,第一设备属性信息与第二设备属性信息中的对应属性值,要全部相同,即证书中的每个属性值,目标设备都要采集到,并且属性值要相同;这样服务器才确定第一设备属性信息与第二设备属性信息匹配。又例如,第一设备属性信息与第二设备属性信息中的对应属性值,要全部相同,其中包括了,可以允许采集的部分对应属性值为空,但不能全部为空;如果证书中的属性值目标设备都没有采集到,全部为空,则服务器确定第一设备属性信息与第二设备属性信息不匹配;而对于A、B、C、D四个属性,如果只有B属性目标设备未采集到,其他属性值都相同,则可以忽略A属性,并确定为第一设备属性信息与第二设备属性信息匹配。再例如,第一设备属性信息与第二设备属性信息中的对应属性值中,相同属性值占总属性值数目的比例达到预设比例阈值,比如上述的四个属性中,只有一个对应属性比较时不相同,其他三个相同,那么相同属性值占总属性值数目的比例是3/4,大于预设比例阈值1/2,则确定为匹配;而如果有三个属性的属性值不相同,那么相同属性值占总属性值数目的比例是1/4,小于预设比例阈值1/2,则确定为不匹配。需要说明的是,如上的匹配条件的例子,只是列举而不是穷举,具体实施中,可以根据设备验证所需要的安全性控制的严格程度来灵活设定匹配条件。结合图1中所示的应用场景的例子,来说明本步骤中的属性比较,描述服务器是如何判断出设备是否安全,是安全设备还是非法设备:在图1中,假设用户是合法用户,使用自己的电脑11来访问服务器12,那么电脑11在发送设备验证请求时,携带的设备证书是服务器12颁发给电脑11的证书,其中证书中的第二设备属性信息是对应于该电脑11的属性,比如是电脑11的显卡属性、网卡属性;在发送设备验证请求时,电脑11采集的第一属性信息中,同样也是电脑11的显卡和网卡属性,在服务器侧判断时这两个属性信息通常是一致的。对应来看,在图1中,假设用户是非法用户,使用该非法用户盗取了合法用户的电脑11对应的设备证书并通过电脑13来访问服务器12,并且假设电脑13在发送设备验证请求时携带的设备证书是服务器12颁发给电脑11的证书,证书中的设备指纹是根据电脑11的属性生成的,而电脑13采集的第一设备属性信息却是对应于电脑13的硬件信息,那么在服务器侧判断时设备指纹与第一设备属性信息这两者将被判定为不匹配。在本步骤中,如果根据设备指纹确认设备证书有效,并且判断结果为设备证书中的设备指纹与第一设备属性信息匹配,则表明该设备证书是目标设备的证书,执行204;否则,执行205。204、服务器允许目标设备执行所述目标业务;本步骤中,服务器可以向目标设备反馈验证成功响应,或者也可以不返回成功响应,而直接允许目标设备执行后续的业务操作。205、服务器拒绝目标设备执行所述目标业务。例如,服务器向目标设备返回验证失败响应,比如对于上述例子中非法用户使用电脑13访问服务器时,将会被服务器拒绝执行业务。本实施例的设备验证方法,通过在为设备颁发的设备证书中携带根据设备属性信息生成的设备指纹,并且在验证设备时需要在设备属性与证书中的设备指纹相匹配才被允许执行业务,从而提高了设备验证的安全性和可靠性。上述的例子中,设备验证方法执行的流程是在目标设备已经存储了设备证书的基础上进行的,目标设备只要在发送设备验证请求时,将该设备证书携带上即可。实际上该设备证书是由服务器颁发给目标设备的,是由目标设备在执行该设备验证的流程之前向服务器申请获取的,如下将详细描述证书的申请:图3是本发明实施例提供的另一种设备验证方法的信令示意图,用于描述设备向服务器申请证书以及服务器如何生成证书的过程,包括如下步骤:301、目标设备采集第二设备属性信息,并生成公私钥对;其中,由于服务器在制作设备证书时,是将设备的硬件属性也设置在证书中,因此目标设备在申请证书时,需要实现采集该设备的硬件属性,可以称为第二设备属性信息,以提交至服务器,使得服务器据此生成设备证书。需要说明的是,在本步骤中目标设备采集的第二设备属性信息不一定与设备证书中的属性信息完全对应相同;例如,假设设备证书中有三个属性A、B和C,那么该步骤中的第二设备属性信息可以是目标设备将自己的所有硬件固有属性采集到,或者采集了五个属性等,总之可以多于设备证书中包括的属性,设备证书中的属性是从这些多个属性中选取的一部分属性,详细可以参见后续的303的描述。当然,第二设备属性信息也可以与证书中的属性是相同的,比如采集A、B和C三个属性,在制作证书时也是将该三个属性设置在证书中。此外,本步骤中目标设备在采集第二设备属性信息之外,还生成公私钥对,即包括公钥和私钥。其中的公钥用于在304中生成证书,而私钥在申请证书时不传输至服务器,例如该私钥可以用于验证通过后的信息传输中的信息加密,比如将目标设备向服务器发送的信息用该私钥加密,服务器用公钥解密。302、目标设备向服务器发送证书申请请求,所述证书申请请求包括:第二设备属性信息、以及公私钥对中的公钥;其中,目标设备在向服务器发送证书申请请求时,将携带301中采集的第二设备属性信息以及生成的公私钥对中的公钥。可选的,目标设备向服务器申请设备证书,可以是在如下列举的两种情况下向服务器发起申请:一种情况是,目标设备发现其自身并未存储设备证书,因为证书在由服务器发给设备后,该证书将存储在设备上,在设备向服务器请求进行设备验证时再携带在设备验证请求中,而如果目标设备确认本地未存储设备证书,那么后续将无法进行设备验证,因此目标设备将发起证书申请。另一种情况是,当目标设备接收到服务器返回的验证失败响应时,也就是说,在本次的目标申请证书之前,目标设备可能使用其他设备的证书向服务器请求验证,结果服务器确定属性信息不匹配后返回验证失败,表明设备证书不是该设备的证书,因此目标设备需要重新申请自己的设备证书。303、服务器根据第二设备属性信息生成设备指纹;本步骤中,如果目标设备采集的第二设备属性信息中的属性数量多于生成设备指纹所需要依据的属性信息的数量,则可以从第二设备属性信息中选择设置,如果目标设备采集的第二设备属性信息中的属性数量与生成设备指纹所需要依据的属性数量相同,则全部依据生成指纹即可。如上是从属性的数量上来描述据以生成设备指纹的第二设备属性信息的获取,假设采集的第二设备属性信息包括:A属性(如CPU型号)、B属性(如网卡型号)、C属性(如显卡的出厂ID)和D属性(如内存名称),实际根据这些属性获取要据以生成指纹的属性时,还要对这些信息进行处理,如下示例一种方式:表1属性值取Hash值属性Hash值A属性A属性的Hash值B属性B属性的Hash值C属性C属性的Hash值D属性D属性的Hash值如上的表1所示,该表1表示的是,目标设备对于采集的四个属性信息,为了传输时的安全性,对属性值进行了Hash取值,实际上传给服务器的是采集的属性值的Hash值。而在服务器侧,要根据这些属性Hash值进行组合,形成用于标识目标设备的设备指纹。举例如下:以从第二设备属性信息中选取部分属性为例,该第二设备属性信息中包括多个属性值,每个属性值对应所述目标设备的一个设备固有属性,比如上述表1中的四个属性值。服务器从该四个属性中选取预设数目的属性值,比如本实施例中选择三个属性值A、B和C,并将这些属性值进行组合生成设备指纹信息。可以按照如下方式进行组合:将上述表1中的A属性、A属性的Hash值、B属性、B属性的Hash值、C属性和C属性的Hash值,全部综合起来取Hash,作为设备指纹信息。当然也可以有其他组合方式,只要包括这三个属性的相关信息即可,不再详举。需要说明的是,如上所述的从第二设备属性信息中选取部分属性来生成设备指纹的方式,将使得对设备验证的方式更加可靠和安全;因为,假设目标设备采集的是其全部的硬件固有属性,那么到底服务器要从中选择依据哪些属性生成设备指纹,目标设备是无法获知的,那么非法用户比如黑客更无法知道设备证书中包括哪些属性,使得黑客即使想要伪造属性(比如上报设备验证请求时,将自己的硬件属性篡改成合法设备的硬件属性),也会不知道到底要伪造哪些属性,从而增加了黑客非法行为的难度,使得该验证方式可靠性比较高。此外,目标设备在申请证书时采集了哪些硬件固有属性,目标设备可以记录下来,这样可以在后续请求设备验证时也采集同样的设备属性,这样才能确保采集的属性信息中包括设备证书中的对应属性,服务器才能进行匹配比较。304、服务器生成包括设备指纹和公钥的设备证书;如下的表2,简单示意了本步骤生成的设备证书的结构:表2设备证书的结构证书主要信息证书扩展信息签名后的公钥设备指纹如上的表2所示,该设备证书是在证书扩展信息中含有设备指纹的数字证书,该数字证书例如是X.509V3格式证书,设备指纹的生成可以参见303中所述,该设备证书还包括CA签名后的公钥,该公钥即为目标设备生成的公私钥对中的公钥。破坏这些信息将导致证书无效。此外,在生成该设备证书时,证书序列号作为证书的一个固有属性也被生成。服务器侧可以记录生成的设备证书与设备指纹之间的对应关系,具体的,例如可以是记录该证书的证书序列号与设备指纹、以及设备固有属性(该属性是生成指纹所依据的属性)之间的对应关系。如下的表3所示:表3设备证书对应关系在记录表3的对应关系后,后续服务器在接收到目标设备发送的设备验证请求中携带的设备证书时,该设备证书中是包括证书序列号这一证书属性的,服务器可以根据该证书序列号查找表3,获得与该设备证书对应的设备指纹对应的A属性、B属性和C属性,并将这些属性与目标设备采集的第一设备属性信息进行比较,判断是否匹配。需要说明的是,该证书序列号也使得设备验证更加可靠;比如,假设有两台设备的属性相同,例如网卡的型号和显卡的出厂ID都相同,那么这两台设备在申请设备证书时,服务器可以为这两台设备都颁发设备证书,设备证书中携带的设备指纹也许是相同的,但是,每个证书对应一个唯一的证书序列号,这两个设备证书的证书序列号是不同的,服务器仍然能够区分出这两台设备。也就是说,服务器在接收到目标设备的设备验证请求时,不仅要进行上述例子中所描述的设备属性信息的匹配对比,也还需要进行一些基本的证书校验,比如证书的序列号是否相同,证书是否在有效期内,证书信息是否完整或者被破坏等等。305、服务器将设备证书发送至目标设备。本发明实施例的设备验证方法,采用了数字证书和设备指纹相结合的机制,结合数字证书的不可伪造使得证书中的设备指纹不可伪造,同时结合数字证书的唯一性,大大提高了设备验证的可靠性。如下还提供了设备验证装置,以通过该装置实现上述设备验证方法:图4是本发明实施例提供的一种设备验证装置的结构示意图,该装置可以应用于服务器上,例如是设置在服务器端的软件。如图4所示,该装置可以包括:请求接收单元41和设备验证单元42;其中,请求接收单元41,用于接收待验证的所述目标设备发送的设备验证请求,所述设备验证请求包括:设备证书及所述目标设备的第一设备属性信息,所述设备证书中包括根据第二设备属性信息生成的设备指纹;设备验证单元42,用于在根据所述设备指纹确认所述设备证书有效,并且所述设备指纹与第一设备属性信息匹配时,确定所述设备证书是所述目标设备的证书,允许所述目标设备执行目标业务。图5是本发明实施例提供的另一种设备验证装置的结构示意图,在图4所示结构的基础上,该装置还包括:证书生成单元43和证书发送单元44;其中,请求接收单元41,还用于接收所述目标设备发送的证书申请请求,所述证书申请请求包括:所述目标设备采集的第二设备属性信息;证书生成单元43,用于根据所述第二设备属性信息生成所述设备指纹,并将所述设备指纹设置在生成的设备证书中;所述证书发送单元44,用于将所述设备证书发送至所述目标设备。进一步的,证书生成单元43,在根据所述第二设备属性信息生成所述设备指纹时,具体是用于:从所述第二设备属性信息中包括的多个属性值中选取预设数目的属性值,并将所述预设数目的属性值进行组合,生成用于标识所述目标设备的所述设备指纹;每个属性值对应所述目标设备的一个设备固有属性。图6是本发明实施例提供的又一种设备验证装置的结构示意图,该装置可以应用于目标设备上,例如是设置目标设备侧的客户端软件。如图6所示,该装置可以包括:信息获取单元61和请求发送单元62;其中,信息获取单元61,用于采集第一设备属性信息;请求发送单元62,用于向所述服务器发送设备验证请求,所述设备验证请求包括:设备证书及所述第一设备属性信息,所述设备证书中包括根据第二设备属性信息生成的设备指纹,以使得在所述服务器确定所述设备指纹与第一设备属性信息匹配时执行所述目标业务。图7是本发明实施例提供的又一种设备验证装置的结构示意图,在图6所示结构的基础上,该装置还包括:证书接收单元63;其中,信息获取单元61,还用于采集第二设备属性信息;请求发送单元62,还用于向所述服务器发送证书申请请求,所述证书申请请求包括:所述第二设备属性信息,以使得所述服务器根据所述第二设备属性信息生成设备指纹并设置在所述设备证书中;证书接收单元63,用于接收所述服务器返回的所述设备证书。进一步的,请求发送单元62,具体用于在确认本地未存储设备证书,或者接收到所述服务器返回的验证失败响应时,发送所述证书申请请求。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。当前第1页1 2 3