CN103780632B - 一种互联网文件完整性验证方法及其系统 - Google Patents
一种互联网文件完整性验证方法及其系统 Download PDFInfo
- Publication number
- CN103780632B CN103780632B CN201410070835.4A CN201410070835A CN103780632B CN 103780632 B CN103780632 B CN 103780632B CN 201410070835 A CN201410070835 A CN 201410070835A CN 103780632 B CN103780632 B CN 103780632B
- Authority
- CN
- China
- Prior art keywords
- file
- client
- signing certificate
- signature
- hashed value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Abstract
本发明涉及文件完整性验证领域,涉及一种通过互联网进行的文件完整性验证方法及系统,其验证方法包括以下步骤:客户端计算文件F的散列值H并把H发送到验证服务器,同时请求验证服务器为散列值H生成签名证书,验证服务器采用不对称公私钥算法作为签名方法,验证服务器为散列值H生成n个签名证书后以散列值H为关键字把签名证书的相关信息保存到数据库,并返回一个包含签名证书的文件A给客户端,客户端把文件A和文件F打包为文件X发布到下载服务器;客户端从下载服务器获取文件X的副本X’,对X’拆包得到文件F’和n个签名证书;采用离线验证和在线验证两种方式之一来验证F与F’是否相符,当两者相符则文件是完整的,否则文件不完整。
Description
技术领域
本发明涉及文件完整性验证领域,更具体地,涉及一种通过互联网进行的文件完整性验证方法及系统。
背景技术
在利用互联网来传输分发一个文件的过程中,文件的完整性有可能被破坏,同时也有可能被伪造和篡改。因此文件接收方需要采用某种方法来验证文件的完整性,以确保接收到的文件是原文件的一个真实副本。
以下相关专利对当前互联网文件的完整性验证问题给出多个具体的技术方案。
公开号为CN101207492A的专利公开了一种避免下载错误文件的文件下载方法及装置。该方法将原始文件的板名作为正确性标志,并使用循环冗余校检法对原始文件内容和所述正确性标志生成完整性标志。当通信终端下载所述新文件时,其先后校检正确性标志和完整性标志来确保所下载文件的可靠性。
公开号为CN101651709A的专利公开了一种P2P下载文件完整性检验方法。该方法将原始文件分为多个文件块,且每个文件块进一步分为多个子数据块。当客户端接收到一个文件块的子数据块时,计算出该子块的哈希摘要,并据此更新文件块的哈希值;当下载完文件块时,文件块的哈希值也计算完毕。其后,客户端将计算得到的哈希值和文件块的原始哈希值进行比较,从而验证文件完整性。
申请公布号为CN102790790A的专利提出了一种快速获取Web服务器文件完整性的校验系统及方法。位于互联网的Web服务器响应客户端的文件下载请求,向用户发送文件及其哈希值。客户端将服务器发送的文件哈希值和客户端本地的哈希值进行比较,如果哈希值不一致,则对错误文件进行修复。
申请公布号为CN102932659A的专利提出了一种视频数据完整性保护和验证方法、设备和系统。系统分别按照视频数据的宽、高和时间三个方向中的至少两个方向中的每一个对所述视频数据进行分割,从而得到分别沿所述至少两个方向形成的至少两组数据块。其后,系统对所述至少两组数据块中的每组数据块计算完整性信息,以用于验证所述视频数据的完整性。
申请公布号为CN103268460A的专利提出了一种云存储数据完整性验证方法,该方法用于验证从客户端传输到云服务器中的数据的完整性。客户端以如下方式为待传输数据D生成一个用于验证完整性的标签L:客户端生成密钥K并根据K和数据D生成标识X和元数据M;客户端根据标识X生成数据D的莫科尔树IMT,并将X和IMT作为标签L连同数据D保存到云服务器中。当云服务器接收到D和L时,其计算持有性证据P并发送给客户端,客户端根据M对P进行验证以确认服务器上的数据D的完整性。
申请公布号为CN103023862A的专利提出了一种用于完整性保护和验证的方法、服务器及系统。客户端在本地为等待上传的数据D生成离线完整性保护信息X1,并继而发送D和X1至完整性保护服务器;完整性保护服务器根据D和X1生成在线完整性保护信息X2,并继而发送D,X1和X2至在线内容存储服务器。当客户端请求下载数据D时,位于互联网的完整性验证服务器根据在线完整性保护信息X2对数据D和离线完整性保护信息X1进行验证。其后,客户端接收到验证完毕的X1和D,并在本地根据X1对D进行验证。
发明内容
本发明的主要目的在于提出一种与现有技术的适用范围、原理均不同的互联网文件完整性验证方法,以实现互联网文件完整性的检验。
本发明的又一目的是提出一种互联网文件完整性验证系统。
本发明的目的通过以下技术方案予以实现:
一种互联网文件完整性验证方法,包括如下步骤:
步骤S11:客户端计算文件F的散列值H并把H发送到验证服务器,同时请求验证服务器为散列值H生成签名证书,验证服务器采用不对称公私钥算法作为签名方法,验证服务器为散列值H生成n个签名证书后以散列值H为关键字把签名证书的相关信息保存到数据库,并返回一个包含签名证书的文件A给客户端,客户端把文件A和文件F打包为文件X发布到下载服务器;
步骤S12:客户端从下载服务器获取文件X的副本X’,对X’拆包得到文件F’和n个签名证书;
步骤S13:采用以下两种方式之一来验证F与F’是否相符,当两者相符则文件是完整的,否则文件不完整;
1)离线验证:通过签名证书在本地离线验证F与F’是否相符;
2)在线验证:计算F’的散列值并通过互联网提交到验证服务器在线验证F与F’是否相符。
本发明所述客户端按照以下步骤请求验证服务器生成文件F的签名证书:
步骤S21:客户端与验证服务器通信确定所用的签名协议;
步骤S22:根据签名协议采用m个不同的散列函数,散列函数可以是MD5、SHA1等,每个散列函数选取文件F的部分或者全部来计算散列值,得到m个散列值,把m个散列值串接起来生成一个字符串,再用一个散列函数来计算这个字符串的散列值H;
步骤S23:客户端向验证服务器发送对H生成签名证书的请求,该请求信息包含H和签名协议号等;
步骤S24:验证服务器响应客户端的签名请求,生成并返回包含H的签名证书的文件A给客户端,客户端把A和F打包生成文件X并发布到下载服务器。
步骤S22中采用一个散列函数来计算这个字符串的散列值H中的散列函数可以是m个散列函数中的任意一个,也可是取不同于m个散列函数的其他散列函数;步骤S24中客户端用ZIP、RAR等方式把A和F打包生成文件X。
本发明所述验证服务器采用以下步骤生成文件F的签名证书:
步骤S31:从客户端接收对H生成签名证书的请求;
步骤S32:根据签名协议采用n个不同的签名方法来对H进行签名运算,即用每个签名方法的私钥来对H进行签名生成一个证书,共生成n个不同的签名证书{C1,C2……Cn};
步骤S33:生成一个文件A,包含签名协议号、n个签名证书{C1,C2……Cn}等在客户端验证这些证书所需的信息。
本发明所述客户端通过以下方式验证文件F:
步骤S41:通过互联网从下载服务器获取X,所得副本称之为X’,对X’进行拆包获取A’和F’,从A’中获取签名协议号和n个签名证书{C1’,C2’……Cn’},根据签名协议用相应方法来计算F’的散列值H’;
步骤S42:如果本地没有签名协议列表则跳到步骤S44,否则根据签名协议号从中查找该签名协议的信息,包括协议有效期、n个公钥,如果查找结果表明该签名协议已失效则跳到步骤S44;
步骤S43:用步骤S42查到的n个公钥对全部n个签名证书进行验证,检验生成这些证书的H和H’是否相符,如果有至少k个证书通过则为正确,其中1≤k≤n,否则为错误,把验证结果记录到R,跳到步骤S47;
步骤S44:向验证服务器发送验证F’的请求,该请求中包含F’的散列值H’;
步骤S45:验证服务器响应客户端的请求,用该请求中包含的H’作为关键字来查找数据库,如果查找到对H’生成的有效签名证书则向客户端返回正确,否则返回错误;
步骤S46:接收验证服务器返回的验证结果并记录到R;
步骤S47:如果R记录的验证结果为正确则判断F’与F相符,否则报错。
所述签名协议列表由验证服务器采用互联网协议接收和响应客户端获取签名协议列表的请求,继而向客户端发布,客户端则采用互联网协议来获取该签名协议列表,该签名协议列表的每条记录保存了一个签名协议的信息,包括协议号、m个公钥、有效期,每个签名协议号都是唯一的,根据签名协议号来查找相应记录,获取该协议的有关信息。
上述的采用的互联网协议为FTP或HTTP协议。
此外,本发明还提出一种互联网文件完整性验证系统,包括签名模块和验证模块,
所述签名模块首先计算互联网文件F的散列值H,然后发送对散列值H进行签名的请求,请求被响应后用不对称公私钥算法来对H进行签名,生成n个签名证书,接着生成一个包含该n个签名证书的文件A,并把A和F打包成一个文件X供验证模块下载;
所述验证模块从签名模块下载得到文件X的副本X’并对X’拆包,得到F’和n个签名证书,对F与F’进行离线或在线验证以判断互联网文件F的完整性;其中:
1)离线验证:通过签名证书在本地离线验证F与F’是否相符;
2)在线验证:计算F’的散列值并通过互联网在线验证F与F’是否相符。
本发明技术方案的有益效果有:
1、采用多个散列函数进行运算,增加伪造与原文件具有相同散列值的文件的难度;
2、采用多个签名方法来生成签名证书,所有这些签名方法同时被破解而导致签名协议失效的可能性减少,增大在本地进行离线验证的机会,降低通信量和验证服务器的负载;
3、结合离线和在线验证两种方式,当生成签名证书所用的签名协议失效导致无法在本地验证时,可通过互联网向服务器发送文件的散列值来验证,增强方案的可用性。
附图说明
图1是互联网文件完整性验证方法的流程图。
图2为本发明的系统体系结构图。
具体实施方式
下面结合附图对本发明做进一步的描述,但本发明的实施方式并不限于此。
客户端请求验证服务器生成文件F的签名证书:
1)客户端与验证服务器通信确定所用签名协议;
2)根据签名协议采用MD5和SHA1,各选取F的前2/3和后2/3来计算散列值,然后把所有2个散列值串接起来生成一个字符串,再用SHA2来计算这个字符串的散列值H;
3)向验证服务器发送对H生成签名证书的请求,该请求包含H、签名协议号;
4)验证服务器响应客户端的签名请求,生成并返回包含H的签名证书的文件A;
5)把A和F以zip格式打包生成文件X;
6)把X发布到下载服务器供其他客户端下载。
验证服务器通过以下方式生成文件F的签名证书:
1)从客户端接收对H生成签名证书的请求,包含H、签名协议号等;
2)根据签名协议采用RSA和ECDSA算法来对H进行签名运算,生成2个不同的签名证书{C1,C2},即C1和C2分别由RSA和ECDSA对H进行签名运算生成;
3)生成一个文件A,包含签名协议号、2个签名证书{C1,C2};
4)以H为关键字把生成A的信息保存到数据库,包括签名协议号、签名证书、时间等;
5)把文件A发送给客户端。
客户端通过以下方式验证文件F:
1)通过互联网从下载服务器获取X,所得副本称之为X’,对X’进行拆包获取A’和F’,从A’中获取签名协议号和2个签名证书{C1’,C2’},根据签名协议用相应方法来计算F’的散列值H’;
2)如果本地没有签名协议列表L则跳到步骤4,否则根据签名协议号从L中查找该签名协议的信息,如果查找结果表明该签名协议已失效则跳到步骤4;
3)用步骤2查到的2个公钥对全部2个签名证书进行验证,如果全部通过则为正确,否则为错误,把验证结果记录到R,跳到步骤7;
4)向验证服务器发送验证F’的请求,该请求中包含F’的散列值H’;
5)验证服务器响应客户端的请求,用该请求中包含的H’作为关键字来查找数据库:如果查找到对H’生成的有效签名证书则向客户端返回正确,否则返回错误;
6)接收验证服务器返回的验证结果并记录到R;
7)如果R记录的验证结果为正确则判断F’与F相符,否则报错。
以上所述的本发明的实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神原则之内所作出的修改、等同替换和改进等,均应包含在本发明的权利要求保护范围之内。
Claims (4)
1.一种互联网文件完整性验证方法,其特征在于,包括如下步骤:
步骤S11:客户端计算文件F的散列值H并把H发送到验证服务器,同时请求验证服务器为散列值H生成签名证书,验证服务器采用不对称公私钥算法作为签名方法,验证服务器为散列值H生成n个签名证书后以散列值H为关键字把签名证书的相关信息保存到数据库,并返回一个包含签名证书的文件A给客户端,客户端把文件A和文件F打包为文件X发布到下载服务器;
步骤S12:客户端从下载服务器获取文件X的副本X’,对X’拆包得到文件F’和n个签名证书;
步骤S13:采用以下两种方式之一来验证F与F’是否相符,当两者相符则文件是完整的,否则文件不完整;
l) 离线验证:通过签名证书在本地离线验证F与F’是否相符;
2) 在线验证:计算F’的散列值并通过互联网提交到验证服务器在线验证F与F’;
其中,客户端按照以下步骤请求验证服务器生成文件F的签名证书:
步骤S21:客户端与验证服务器通信确定所用的签名协议;
步骤S22:根据签名协议采用m个不同的散列函数,每个散列函数选取文件F来计算散列值,得到m个散列值,把m个散列值串接起来生成一个字符串,再用一个散列函数来计算这个字符串的散列值H;
步骤S23:客户端向验证服务器发送对H生成签名证书的请求;
步骤S24:验证服务器响应客户端的签名请求,生成并返回包含H的签名证书的文件A给客户端,客户端把A和F打包生成文件X并发布到下载服务器。
2.根据权利要求1所述的互联网文件完整性验证方法,其特征在于,验证服务器采用以下步骤生成文件F的签名证书:
步骤S31:从客户端接收对H生成签名证书的请求;
步骤S32:根据签名协议采用n个不同的签名方法来对H进行签名运算,即用每个签名方法的私钥来对H进行签名生成一个证书,共生成n个不同的签名证书{Cl,C2.······Cn};
步骤S33:生成一个文件A,包含签名协议号、n个签名证书{Cl,C2.······Cn}、在客户端验证这些证书所需的信息。
3.根据权利要求2所述的互联网文件完整性验证方法,其特征在于,客户端通过以下步骤在线验证所述文件F:
步骤S41:通过互联网从下载服务器获取X,所得副本称之为X’,对X’进行拆包获取A’和F’,从A’中获取签名协议号和n个签名证书{Cl’,C2’······Cn’},根据签名协议用相应方法来计算F’的散列值H’;
步骤S42:如果本地没有签名协议列表则跳到步骤S44,否则根据签名协议号从中查找该签名协议的信息,包括协议有效期、n个公钥,如果查找结果表明该签名协议已失效则跳到步骤S44;
步骤S43:用步骤S42查到的n个公钥对全部n个签名证书进行验证,检验生成这些证书的H和H’是否相符,如果有至少k个证书通过则为正确,其中1≤k≤n,否则为错误,把验证结果记录到R,跳到步骤S47;
步骤S44:向验证服务器发送验证F’的请求,该请求中包含F’的散列值H’;
步骤S45:验证服务器响应客户端的请求,用该请求中包含的H’作为关键字来查找数据库,如果查找到对H’生成的有效签名证书则向客户端返回正确,否则返回错误;
步骤S46:接收验证服务器返回的验证结果并记录到R;
步骤S47:如果R记录的验证结果为正确则判断F’与F相符,否则报错;
所述签名协议列表由验证服务器采用互联网协议接收和响应客户端获取签名协议列表的请求来向客户端发布,客户端则采用互联网协议来获取该签名协议列表,该签名协议列表的每条记录保存了一个签名协议的信息,包括协议号、n个公钥、有效期,每个签名协议号都是唯一的,根据签名协议号来查找相应记录,获取该协议的有关信息。
4.一种应用权利要求1至3任一项所述的互联网文件完整性验证方法的互联网文件完整性验证系统,其特征在于:包括签名模块和验证模块,所述签名模块首先计算互联网文件F的散列值H,然后发送对散列值H进行签名的请求,请求被响应后就用不对称公私钥算法来对H进行签名,并生成了n个签名证书,接着生成一个包含该n个签名证书的文件A,并把A和F打包成一个X文件供验证模块下载;所述验证模块从签名模块下载得到文件X的副本X’并对X’拆包,得到F’和n个签名证书,对F与F’进行离线或在线验证以判断互联网文件F的完整性;其中:
l)离线验证:通过签名证书在本地离线验证F与F’是否相符;
2)在线验证:计算F’的散列值并通过互联网在线验证F与F’是否相符。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410070835.4A CN103780632B (zh) | 2014-02-28 | 2014-02-28 | 一种互联网文件完整性验证方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410070835.4A CN103780632B (zh) | 2014-02-28 | 2014-02-28 | 一种互联网文件完整性验证方法及其系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103780632A CN103780632A (zh) | 2014-05-07 |
CN103780632B true CN103780632B (zh) | 2017-03-29 |
Family
ID=50572461
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410070835.4A Active CN103780632B (zh) | 2014-02-28 | 2014-02-28 | 一种互联网文件完整性验证方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103780632B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106921644B (zh) * | 2016-06-23 | 2020-09-01 | 阿里巴巴集团控股有限公司 | 客户端数据文件的验证方法及装置 |
CN109074295B (zh) * | 2016-07-29 | 2022-07-05 | 惠普发展公司,有限责任合伙企业 | 具有真实性的数据恢复 |
CN106528248B (zh) * | 2016-11-30 | 2021-06-22 | 惠州Tcl移动通信有限公司 | 一种移动终端基于软件完整性的下载方法及系统 |
CN107077557B (zh) * | 2016-12-29 | 2020-07-31 | 深圳前海达闼云端智能科技有限公司 | 软件应用程序发布和验证的方法及装置 |
CN110247884B (zh) * | 2018-11-21 | 2023-05-19 | 浙江大华技术股份有限公司 | 一种更新证书的方法、装置、系统及计算机可读存储介质 |
CN110830261B (zh) * | 2019-10-12 | 2023-05-02 | 平安普惠企业管理有限公司 | 加密方法、装置、计算机设备及存储介质 |
CN114710333A (zh) * | 2022-03-23 | 2022-07-05 | 未鲲(上海)科技服务有限公司 | 数据传输及校验的方法、系统、计算机设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101127107A (zh) * | 2006-08-16 | 2008-02-20 | 鸿富锦精密工业(深圳)有限公司 | 电子文档自动签名系统及方法 |
US20090327733A1 (en) * | 2008-06-30 | 2009-12-31 | Raytheon Company | Data Security Method and System |
CN103023862A (zh) * | 2011-09-21 | 2013-04-03 | 索尼公司 | 用于完整性保护和验证的方法、服务器及系统 |
-
2014
- 2014-02-28 CN CN201410070835.4A patent/CN103780632B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101127107A (zh) * | 2006-08-16 | 2008-02-20 | 鸿富锦精密工业(深圳)有限公司 | 电子文档自动签名系统及方法 |
US20090327733A1 (en) * | 2008-06-30 | 2009-12-31 | Raytheon Company | Data Security Method and System |
CN103023862A (zh) * | 2011-09-21 | 2013-04-03 | 索尼公司 | 用于完整性保护和验证的方法、服务器及系统 |
Non-Patent Citations (2)
Title |
---|
基于CA数字认证的文件存储和共享研究;李文刚;《长沙民政职业技术学院学报》;20110630;第18卷(第02(2011)期);全文 * |
基于PKI技术的文件保密系统设计与实现;叶劲;《中国优秀硕士学问论文全文数据库信息科技辑》;20100315(第2010(03)期);正文第4.2节,图3-2,图4-2 * |
Also Published As
Publication number | Publication date |
---|---|
CN103780632A (zh) | 2014-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103780632B (zh) | 一种互联网文件完整性验证方法及其系统 | |
Li et al. | Privacy preserving cloud data auditing with efficient key update | |
CN107171794B (zh) | 一种基于区块链和智能合约的电子文书签署方法 | |
CN102299930B (zh) | 一种保障客户端软件安全的方法 | |
CN107800688A (zh) | 一种基于收敛加密的云端数据去重和完整性审计方法 | |
CN105574435B (zh) | 电子合同在线签署、验证方法、装置及系统 | |
CN108040065B (zh) | 网页跳转后的免登录方法、装置、计算机设备和存储介质 | |
CN107493271A (zh) | 可信安全网络系统 | |
CA2555322C (en) | One way authentication | |
CN103902925B (zh) | 用于数字文件签名的方法及设备 | |
CN110225063A (zh) | 汽车车载系统的升级方法、升级系统、服务器及车载终端 | |
CN109802967B (zh) | 区块链信息追踪方法和系统 | |
CN101873307A (zh) | 基于身份的前向安全的数字签名方法、装置及系统 | |
KR20120053398A (ko) | 컨텐츠를 검증하기 위한 서명 장치와 검증 장치를 포함하는 검증 시스템 및 검증 방법 | |
CN103986732A (zh) | 抵御密钥泄露的云存储数据审计方法 | |
CN109586920A (zh) | 一种可信验证方法及装置 | |
CN109634615A (zh) | 应用安装包的发布方法、验证方法和装置 | |
CN110032895A (zh) | 请求处理方法、处理装置以及请求验证方法、验证装置 | |
CN105743854A (zh) | 安全认证系统及方法 | |
CN111815321A (zh) | 交易提案的处理方法、装置、系统、存储介质和电子装置 | |
CN115604038B (zh) | 基于区块链和边缘计算的云存储数据审计系统及方法 | |
CN116433425A (zh) | 一种基于联盟链的立案方法及相关设备 | |
CN110113334A (zh) | 基于区块链的合同处理方法、设备及存储介质 | |
Yu et al. | Public cloud data auditing with practical key update and zero knowledge privacy | |
CN105187218A (zh) | 一种多核心基础设施的数字化记录签名、验证方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |