数字证书处理及校验的方法和装置
技术领域
本申请涉及互联网技术领域,尤其涉及一种数字证书处理及校验的方法和装置。
背景技术
目前,很多安全性要求较高的网站都要求用户使用数字证书产品。数字证书按存储方式可以分为两类,一类是存储在硬件介质中的数字证书,例如USB Key,通常被称为“硬证书”;还有一类是存储(安装)在客户端本地(如台式电脑、笔记本电脑等)的数字证书,通常被称为“软证书”。对于安全性要求比较高的操作,都会采用数字证书进行二次校验的方式来确保用户操作的安全性。然而,对于安装在客户端本地的数字证书,由于证书的校验和处理逻辑在服务端,因此,在进行高安全性操作之前,都需要先采集安装在客户端本地的证书,再提交到服务器端进行证书的匹配校验。采用这种方式不仅会有大量数据在网络中传输,导致网络流量浪费,并且在进行每个高安全性操作前都需要多加载一个证书采集提交步骤。
对于这一问题,现有的解决方案是在用户登录之后进行证书采集及提交,再对证书进行校验,并将校验结果缓存下来,具体可以如图1所示,图1为现有的数字证书校验方案中浏览器和相应的服务器进行交互的示意图,由于需要进行数字证书校验,因此,要完成用户登录需要执行的步骤包括:在步骤S110处请求登录、在步骤S120处采集证书信息、在步骤S130处提交证书信息、在步骤S140处校验证书并缓存证书校验结果、在步骤S150处响应用户的操作发起相应的业务请求以及在步骤S160处执行业务。
图1所示方案的缺陷显而易见:1、每次用户登录,客户端都需要执行证书采集和证书提交操作,假如在登录的用户中,只有20%的用户由于进行安全性要求较高的操作而需要进行证书校验的话,就意味着有80%的证书提交和证书校验操作是浪费掉的。2、数字证书的容量较大,将采集到的证书内容提交到服务器端进行校验时,一般需要将证书放到表单项里边用POST的方式提交到服务器。
发明内容
本申请的主要目的在于提供一种数字证书处理以及校验的方法和装置,以解决现有技术存在的证书提交和证书校验操作浪费问题以及数字证书容量较大的问题,其中:
本申请的一个方面提供一种数字证书处理方法,包括:采集用户的数字证书;对数字证书的采集结果进行摘要计算,以生成所述用户的数字证书摘要;将所述数字证书摘要进行缓存;响应于来自所述用户的操作,向业务服务器发送包含所述缓存的数字证书摘要的业务请求,以便当所述业务请求所对应的业务为需要进行数字证书校验的业务时,所述业务服务器通过对所述数字证书摘要进行校验,从而在校验通过的情况下执行所述业务。
本申请一个方面还提供一种数字证书处理装置,包括:采集模块,用于采集用户的数字证书;摘要模块,用于对数字证书的采集结果进行摘要计算,以生成所述用户的数字证书摘要;缓存模块,用于将所述数字证书摘要进行缓存;发送模块,用于响应于来自所述用户的操作,向业务服务器发送包含所述缓存的数字证书摘要的业务请求,以便当所述业务请求所对应的业务为需要进行数字证书校验的业务时,所述业务服务器通过对所述数字证书摘要进行校验,从而在校验通过的情况下执行所述业务。
本申请的另一方面提供一种数字证书校验方法,包括:客户端采集用户的数字证书;客户端对数字证书的采集结果进行摘要计算,以生成所述用户的数字证书摘要;客户端将所述数字证书摘要进行缓存;客户端响应于来自所述用户的操作,向业务服务器发送包含所述缓存的数字证书摘要的业务请求;业务服务器接收所述业务请求;当所述业务请求所对应的业务为需要进行数字证书校验的业务时,业务服务器对所述数字证书摘要进行校验。
本申请的另一方面还提供一种数字证书校验系统,包括:客户端,包括:采集模块,用于采集用户的数字证书;摘要模块,用于对数字证书的采集结果进行摘要计算,以生成所述用户的数字证书摘要;缓存模块,用于将所述数字证书摘要进行缓存;发送模块,用于响应于来自所述用户的操作,向业务服务器发送包含所述缓存的数字证书摘要的业务请求;业务服务器,包括:接收模块,用于接收所述业务请求;校验模块,用于当所述业务请求所对应的业务为需要进行数字证书校验的业务时,对所述数字证书摘要进行校验。
与现有技术相比,根据本申请的技术方案存在以下有益效果:
1、把数字证书的校验操作与具体的业务操作放在一起执行,减少了证书校验次数。
2、不再需要通过POST页面来提交证书信息,减少了执行具体业务的请求数量。
3、将数字证书摘要进行缓存,使用户登录后进行的每次操作都会附带证书摘要,以便在需要的时候可以随时进行证书校验。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是现有的数字证书校验方案中客户端的浏览器与服务器进行交互的示意图;
图2是根据本申请一个实施例的数字证书处理方法的流程图;
图3是根据本申请一个实施例的数字证书校验方法的流程图;
图4是根据本申请另一实施例的数字证书校验方法中浏览器与服务器进行交互的示意图;
图5是根据本申请实施例的数字证书处理装置的结构图;以及
图6是根据本申请实施例的数字证书校验系统的结构图。
具体实施方式
本申请的主要思想在于,将数字证书的采集结果进行摘要计算,并对计算生成的数字证书摘要进行缓存,从而用户每进行一个操作,浏览器都会向相应的服务器发送附带该数字证书摘要的请求,进而当用户的操作为需要进行数字证书校验的操作时,服务器能够获取该数字证书摘要,并进行数字证书校验。
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
根据本申请的实施例,提供了一种数字证书处理方法。
参考图2,图2是根据本申请一个实施例的数字证书处理方法的流程图。本申请的技术方案可以应用于安全性要求较高的网站或网页应用(例如,数据交互应用)中,对用户的数字证书进行校验,例如,通过浏览器使用某一网页应用时,对该用户进行的特定操作进行数字证书校验,即,验证该用户的数字证书。
在步骤S210处,采集用户的数字证书。
具体地,当用户在客户端(例如,台式电脑、笔记本电脑等)上通过浏览器访问某一网站时,可以通过浏览器控件采集安装在客户端本地的数字证书。
根据本申请的一个实施例,当用户进行登录操作时,可以向登录服务器发送登录请求,其中,所述登录服务器和所述业务服务器可以是同一服务器或者是不同的服务器。
在步骤S220处,对数字证书的采集结果进行摘要计算,以生成所述用户的数字证书摘要。也即是说,利用特定摘要算法对数字证书的采集结果进行摘要计算,以生成该用户的数字证书摘要。
通过摘要计算可以将容量较大的数字证书内容运算成容量较小的内容。例如,可以利用MD5(Message-Digest Algorithm5,消息摘要算法第五版)算法将数字证书的采集结果运算为一固定长度的消息摘要(例如,一固定长度的字符串),即数字证书摘要。
应当注意,本申请不限于此,而是还可以采用任意适用于本申请的摘要算法对数字证书的采集结果进行摘要计算,例如,除了MD5算法外,还可以采用SHA(Secure HashAlgorithm,安全散列算法)等算法。
在步骤S230处,将所述数字证书摘要进行缓存。具体地,可以将生成的数字证书摘要缓存到Cookie文件中。
在步骤S240处,响应于来自所述用户的操作,向业务服务器发送包含所述缓存的数字证书摘要的业务请求,以便当所述业务请求所对应的业务为需要进行数字证书校验的业务时,所述业务服务器通过对所述数字证书摘要进行校验,从而在校验通过的情况下执行所述业务。
具体地,用户通过浏览器在网页上每进行一个操作,浏览器都可以响应该用户的操作,向业务服务器发送相应于该操作的业务请求,浏览器可以将生成的该用户的数字证书摘要放在该请求中一起发送给业务服务器。由于浏览器的每一次请求都可以伴随Cookie传递,因此,可以将生成的数字证书摘要缓存至Cookie文件中,当浏览器响应于该用户的操作,向业务服务器发送与该操作相应业务请求时,就可以将包含该数字证书摘要的Cookie伴随该业务请求中一起发送给业务服务器。当业务服务器接收到该业务请求时,可以判断该业务请求所对应的业务是否为需要进行数字证书校验的业务,如果该业务请求所对应的业务不是需要进行数字证书校验的业务,则业务服务器可以直接执行该业务,如果所述业务请求所对应的业务为需要进行数字证书校验的安全性要求较高的业务(例如,支付应用的支付、转账、提现等),则业务服务器可以获取该用户的数字证书摘要进行校验,以确定是否可以执行该业务,如果校验通过,则该业务服务器执行该业务;如果校验失败,则可以返回相关提示。
其中,业务服务器对所述数字证书摘要进行校验可以进一步包括:利用生成所述数字证书摘要所采用的摘要算法对保存在所述业务服务器的所述用户的数字证书进行摘要计算,并将进行摘要计算得到的结果与所述数字证书摘要进行比对,如果相同,则确定校验通过;如果不同,则确定校验失败。例如,生成该用户的数字证书摘要所采用的算法为MD5,则利用MD5算法对该数字证书进行摘要计算,再将进行摘要计算的结果与从该请求中获取到的该用户的数字证书摘要进行比对,如果二者相同,则确定校验通过,如果二者不同,则确定数字证书校验失败。
根据本申请的实施例,还可以在用户进行登录操作(即,用户利用账号和密码登录该网站)时,再采集安装在该客户端本地的数字证书。也就是说,当用户登录时,再执行步骤S210,进而再依次执行步骤S220~240。
具体而言,当用户通过客户端的浏览器登录网站或网页应用时,浏览器可以向该网站的登录服务器发送登录请求,登录服务器接收到该请求,可以在进行验证用户账号、密码等操作并执行用户登录时,向浏览器回传一个脚本,以使浏览器通过执行该脚本进行采集用户的数字证书、生成数字证书摘要并将生成的数字证书摘要以及缓存该数字证书摘要操作。该脚本可以为利用脚本语言编写的执行代码,登录服务器可以将该脚本放在向该客户端返回的网页数据中,回传给该客户端的浏览器,浏览器接收到业务服务器回传的网页数据(例如,登录后的页面的数据)时执行该脚本,就会对安装在客户端的数字证书进行采集以及对证书采集结果进行摘要计算生成证书摘要,并将该证书摘要缓存到Cookie中。由于已对数字证书的摘要进行缓存,因此,在以后的登录过程中,无需再对数字证书进行采集,只需从缓存中读取所述数字证书的摘要。
本申请还提供了一种数字证书的校验方法。
参考图3,图3是根据本申请一个实施例的数字证书校验方法的流程图。
在步骤S310处,客户端采集用户的数字证书。
具体地,当用户通过客户端上的浏览器访问某一网站时,可以通过浏览器控件采集安装在客户端本地的数字证书。并且其中,可以在用户进行登录操作(即,用户利用账号和密码登录该网站)时,再采集安装在该客户端本地的数字证书。
在步骤S320处,客户端对数字证书的采集结果进行摘要计算,以生成所述用户的数字证书摘要。
具体而言,客户端可以利用特定摘要算法对数字证书的采集结果进行摘要计算,以生成该用户的数字证书摘要。例如,可以利用MD5(Message-DigestAlgorithm5,消息摘要算法第五版)算法将数字证书的采集结果运算为一固定长度的消息摘要,即数字证书摘要。
在步骤S330处,客户端将所述数字证书摘要进行缓存。
根据本申请的实施例,可以将生成的数字证书摘要缓存到Cookie文件中。
在步骤S340处,客户端响应于来自所述用户的操作,向业务服务器发送包含所述缓存的数字证书摘要的业务请求。
用户通过浏览器每进行一个操作,客户端的浏览器都可以响应该用户的操作,向业务服务器发送相应于该操作的业务请求,浏览器可以将生成的该用户的数字证书摘要放在该请求中一起发送给业务服务器。具体而言,浏览器的每一次请求都可以伴随Cookie传递,因此,可以将生成的数字证书摘要缓存至Cookie文件中,当浏览器响应于该用户的操作向业务服务器发送与该操作相应的业务请求时,可以将包含该数字证书摘要的Cookie放在该业务请求中一起发送给业务服务器。
在步骤S350处,业务服务器接收所述业务请求。
在步骤S360处,当所述业务请求所对应的业务为需要进行数字证书校验的业务时,业务服务器对所述数字证书摘要进行校验。
具体而言,当业务服务器接收到该业务请求时,判断该业务请求所对应的业务是否为需要进行数字证书校验的业务,如果该业务请求所对应的业务不是需要进行数字证书校验的业务,则业务服务器可以直接执行该业务,如果所述业务请求所对应的业务为需要进行数字证书校验的业务,例如,支付、转账、提现等安全性要求较高的业务,则业务服务器可以从该请求中(例如,从该请求携带的Cookie中)提取该用户的数字证书摘要进行校验,以确定是否可以执行该业务。
其中,业务服务器对所述数字证书摘要进行校验可以进一步包括:利用生成所述数字证书摘要所采用的摘要算法对保存在所述业务服务器的所述用户的数字证书进行摘要计算,并将进行摘要计算得到的结果与所述数字证书摘要进行比对,如果相同,则可以确定校验通过,如果不同,则确定数字证书校验失败。
在步骤S370处,如果校验通过,则业务服务器可以执行该业务。如果数字证书校验失败,则可以向客户端返回相关提示。
下面结合图4对本申请的数字证书校验方法进行详细描述。图4是根据本申请另一实施例的数字证书校验方法中浏览器与服务器进行交互的示意图。其中,登录服务器和业务服务器可以是同一服务器或者可以是不同的服务器,在图4中将二者示为两个服务器。其中,登录服务器可以为执行用户登录的服务器,业务服务器可以为执行特定业务的服务器。
如图4所示,在步骤S410处,当用户进行登录操作时,浏览器可以发送登录请求到登录服务器,请求登录服务器执行用户的登录。登录服务器验证用户的账号、密码等是否匹配,如果匹配,则执行用户的登录,并且还可以向该浏览器返回登录成功后的页面内容,浏览器可以根据登录服务器返回的数据进行页面渲染和显示。
在步骤S420处,客户端的浏览器采集安装在客户端本地的数字证书、对数字证书的采集结果进行摘要计算生成数字证书摘要,并将该数字证书摘要进行缓存。其中,浏览器可以将生成的数字证书摘要缓存到Cookie文件中。
根据本申请的实施例,可以如图3所示,在步骤S410′处,当用户通过客户端的浏览器登录网站或网页应用时,浏览器可以向该网站的登录服务器发送登录请求,登录服务器可以接收该登录请求,并根据该登录请求执行所述用户的登录。登录服务器可以再进行验证用户账号、密码等操作,从而在验证通过的情况下执行所述用户的登录时,向该客户端的浏览器回传一个脚本,以使该浏览器通过执行该脚本进行采集用户的数字证书、生成数字证书摘要以及缓存该数字证书摘要的操作(参考图4中的步骤S410′)。其中,该脚本可以为利用脚本语言编写的执行代码,可以将该脚本放在向该客户端返回的网页数据中,回传给该客户端的浏览器,浏览器接收到服务器回传的网页数据(例如,登录后的页面的数据)时执行该脚本,就会对安装在客户端的数字证书进行采集以及对证书采集结果进行摘要计算生成证书摘要,并将该证书摘要缓存到Cookie中。
以下是根据本申请的一个实施例的缓存证书摘要的脚本的示例:
document.cookie=”certDigest=”+certDigest
在步骤S430处,客户端的浏览器响应于来自所述用户的操作,向业务服务器发送包含所述缓存的数字证书摘要的业务请求,以便当所述业务请求所对应的业务为需要进行数字证书校验的业务时,所述业务服务器通过对所述数字证书摘要进行校验,从而在校验通过的情况下执行所述业务。
根据本申请的一个实施例,该业务服务器可以为执行所述用户进行的操作的相应的业务服务器,例如,如果用户进行的操作为转账,则该业务服务器可以为执行转账业务的服务器,即,转账服务器,如果用户进行的操作为支付,则该业务服务器可以为执行支付业务的服务器,即,支付服务器。浏览器可以根据用户所进行的操作,向相应的业务服务器发送包含该数字证书摘要的业务请求,所述业务请求所请求的业务可以为与该用户所进行的操作相应的业务,例如,该用户进行的操作为转账,则浏览器向转账服务器发送转账请求,浏览器可以将包含该用户的数字证书摘要的Cookie文件放在该请求中一起发送给转账服务器。
在步骤S440处,业务服务器接收所述业务请求,当所述业务请求所对应的业务为需要进行数字证书校验的业务时,所述业务服务器通过对所述数字证书摘要进行校验,从而在校验通过的情况下执行所述业务。也就是说,当业务服务器接收到该业务请求时,判断该业务请求所对应的业务是否为需要进行数字证书校验的业务,如果该业务请求所对应的业务不是需要进行数字证书校验的业务,则业务服务器可以直接执行该业务,如果该业务请求所对应的业务为需要进行数字证书校验的业务,例如支付、转账、提现等安全性要求较高的业务时,该业务服务器可以从该请求中获取该用户的数字证书摘要进行校验,以确定是否可以执行该业务。例如,用户进行的操作为转账时,转账服务器可以从浏览器发送的转账请求所包含的Cookie中获取该用户的数字证书摘要,并对该数字证书摘要进行校验。
其中,业务服务器对所述数字证书摘要进行校验可以进一步包括:利用生成所述数字证书摘要所采用的摘要算法对保存在所述业务服务器的所述用户的数字证书进行摘要计算,并将进行摘要计算得到的结果与所述数字证书摘要进行比对,如果相同,则确定校验通过;如果不同,则确定校验失败。
例如,生成该用户的数字证书摘要所采用的算法为MD5,则利用MD5算法对该数字证书进行摘要计算,再将进行摘要计算的结果与从该请求中获取到的该用户的数字证书摘要进行比对,如果二者相同,则确定校验通过,如果二者不同,则确定数字证书校验失败。
在步骤S450处,如果校验通过,则业务服务器执行所述业务。即,如果数字证书校验通过,则业务服务器可以根据浏览器发送的业务请求,执行与该用户进行的操作相应的业务。如果校验失败,则可以向该浏览器返回相应的提示,如,校验失败提示。
将图4与图1进行对比可见,对于客户端的浏览器,只需要采集证书、生成证书摘要并缓存,不再需要通过POST页面提交证书信息,减少了向服务器请求的次数;对于登录服务器,只需要执行用户登录,无需再做登录之外的校验证书以及缓存证书校验结果的操作。
图5示意性地示出了根据本申请一个实施例的数字证书处理装置的结构框图。如图5所示,该装置500可以包括:采集模块510、摘要模块520、缓存模块530以及发送模块540。
其中,采集模块510可以用于采集用户的数字证书。
摘要模块520可以用于对数字证书的采集结果进行摘要计算,以生成所述用户的数字证书摘要。
缓存模块530可以用于将所述数字证书摘要进行缓存。
发送模块540可以用于响应于来自所述用户的操作,向业务服务器发送包含所述缓存的数字证书摘要的业务请求,以便当所述业务请求所对应的业务为需要进行数字证书校验的业务时,所述业务服务器通过对所述数字证书摘要进行校验,从而在校验通过的情况下执行所述业务。
根据本申请的一个实施例,所述发送模块540可以进一步用于当用户进行登录操作时,向登录服务器发送登录请求,其中,所述登录服务器和所述业务服务器可以是同一服务器或者可以是不同的服务器。
根据本申请的一个实施例,所述采集模块510可以进一步用于当用户进行登录操作时,采集用户的数字证书,并且其中,所述缓存模块530可以进一步用于:将所述数字证书摘要缓存至Cookie中。
根据本申请的一个实施例,对数字证书的采集结果进行摘要计算所采用的摘要算法可以包括:MD5。并且其中,所述业务服务器可以进一步被配置成:利用生成所述数字证书摘要所采用的摘要算法将保存在所述业务服务器的所述用户的数字证书进行摘要计算,并将进行摘要计算得到的结果与所述数字证书摘要进行比对,如果相同,则确定校验通过;如果不同,则确定数字证书校验失败。
图6示意性地示出了根据本申请一个实施例的数字证书校验系统的结构框图。如图6所示,该系统600可以包括:客户端610和业务服务器620。
客户端610可以包括:采集模块611、摘要模块612、缓存模块613以及发送模块614。
其中,采集模块611可以用于采集用户的数字证书。
摘要模块612可以用于对数字证书的采集结果进行摘要计算,以生成所述用户的数字证书摘要。
缓存模块613可以用于将所述数字证书摘要进行缓存。
发送模块614可以用于响应于来自所述用户的操作,向业务服务器发送包含所述缓存的数字证书摘要的业务请求。
业务服务器620可以包括:接收模块621和校验模块622。
其中,接收模块621可以用于接收所述业务请求。
校验模块622可以用于当所述业务请求所对应的业务为需要进行数字证书校验的业务时,对所述数字证书摘要进行校验。
根据本申请的一个实施例,所述发送模块614可以进一步用于当所述用户进行登录操作时,向登录服务器发送登录请求。并且其中,系统600还可以包括登录服务器,该登录服务器可以进一步被配置成:接收所述登录请求,并根据所述登录请求执行所述用户的登录。
根据本申请的一个实施例,所述采集模块611可以进一步用于当用户进行登录操作时,采集用户的数字证书。
根据本申请的一个实施例,所述业务服务器620可以进一步包括:执行模块,该模块可以用于在校验通过的情况下执行所述业务。
根据本申请的一个实施例,所述校验模块622可以进一步被配置成:利用生成所述数字证书摘要所采用的摘要算法将保存在所述业务服务器的所述用户的数字证书进行摘要计算,并将进行摘要计算得到的结果与所述数字证书摘要进行比对,如果相同,则确定校验通过;如果不同,则确定书证书校验失败。
由于本实施例的装置所实现的功能基本相应于前述图1至图4所示的方法实施例,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此不做赘述。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。