CN114341849A - 验证装置、验证系统、验证方法和验证程序 - Google Patents

验证装置、验证系统、验证方法和验证程序 Download PDF

Info

Publication number
CN114341849A
CN114341849A CN201980099998.6A CN201980099998A CN114341849A CN 114341849 A CN114341849 A CN 114341849A CN 201980099998 A CN201980099998 A CN 201980099998A CN 114341849 A CN114341849 A CN 114341849A
Authority
CN
China
Prior art keywords
memory
hash value
graph
object device
authentication
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.)
Pending
Application number
CN201980099998.6A
Other languages
English (en)
Inventor
伊藤真奈美
山越公洋
泷口浩义
中津留毅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Publication of CN114341849A publication Critical patent/CN114341849A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2103Challenge-response

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Storage Device Security (AREA)

Abstract

存储单元(11)存储对象设备(20)中的存储器(21)的空闲区域的大小以及保存在所述存储器(21)中的软件。生成单元(12a)根据存储器(21)中的空闲区域的大小生成从多个节点配置的图,并且将该图发送给对象设备(20)。计算单元(12b)计算与存储在存储器(21)中的软件中的每个块相对应的哈希值。验证单元(12c)使用以下项来验证是否已发生对所述对象设备(20)中的存储器(21)的篡改:所计算出的与该块相对应的哈希值,以及所返回的使用图计算出的对指定所述图的节点的质询的响应,以及作为对指定该块的质询的响应的所返回的块的哈希值。

Description

验证装置、验证系统、验证方法和验证程序
技术领域
本发明涉及一种验证装置、验证系统、验证方法以及验证程序。
背景技术
近年来,由于物联网(IoT)的普及,检测嵌入式设备中的恶意软件和软件篡改并采取安全措施变得很重要。另一方面,在嵌入式系统中,从成本等观点来看,难以内置具有防篡改功能的硬件,并且与诸如服务器的通用PC相比,难以扩展功能。因此,期望白名单型检测技术在不使用特殊硬件的情况下从外部验证安装在设备中的软件是否偏离了预定的正确状态(非专利文献1)。
引用列表
非专利文献
非专利文献1:A.Seshadri,A.Perrig,L.van Doorn,P.Khosla,"SWATT:SoftWare-based ATTestation for Embedded Devices",USA,IEEE Symposium on Security andPrivacy,2004.Proceedings,2004,pp.272-282
非专利文献2:Ling Ren,Srinivas Devadas,"Proof of Space from StackedExpanders",Theory of Cryptography Conference,德国,2016,p.262-285
非专利文献3:Stefan Dziembowski,Sebastian Faust,Vladimir Kolmogorov,Krzysztof Pietrzak,"Proofs of Space",Annual Cryptology Conference,德国,2015,pp.585-605
发明内容
技术问题
然而,在传统技术中,可能难以从设备外部验证存在或不存在嵌入式设备的软件的篡改。例如,根据非专利文献1所描述的技术,虽然可以证明设备的存储器的软件区域没有被篡改,但难以证明没有未授权的软件被添加到空闲区域中。
鉴于上述情况做出了本发明,并且本发明的目的是从设备外部验证存在或不存在嵌入式设备的软件的篡改。
解决问题的手段
为了解决上述问题并达到目的,根据本发明的验证装置的特征在于,所述验证装置包括:存储单元,所述存储单元存储对象设备的存储器的空闲区域的大小以及保存在所述存储器中的软件;生成单元,所述生成单元根据所述对象设备的所述存储器的所述空闲区域的大小,生成包含多个节点的图,并且将所述图发送给所述对象设备;计算单元,所述计算单元计算与保存在所述对象设备的所述存储器中的每个软件块相对应的哈希值;以及验证单元,所述验证单元使用所计算出的与该块相对应的哈希值、从所述对象设备返回的使用图计算出的对指定图的节点的质询的响应、以及作为对指定该块的质询的响应的从所述对象设备返回的与该块相对应的哈希值,来验证存在或不存在所述对象设备的所述存储器的篡改。
发明效果
根据本发明,可以容易地从设备外部验证存在或不存在嵌入式设备的软件的篡改。
附图说明
图1是例示根据本实施方式的验证系统的示意构造的示意图。
图2是用于说明生成单元的处理的图。
图3是用于说明验证处理的概要的图。
图4是示出验证处理过程的序列图。
图5是示出执行验证程序的计算机的示例的图。
具体实施方式
在下文中,将参照附图来详细描述本发明的实施方式。注意,本发明不限于实施方式。此外,在附图的描述中,相同的部分由相同的附图标记表示。
[验证系统的构造]
图1是例示根据本实施方式的验证系统的示意构造的示意图。如图1所示,验证系统1包括验证装置10和对象设备20。对象设备20是作为稍后描述的验证处理的对象的诸如IoT设备的软件嵌入式设备。这里,在本实施方式中,将程序和数据统称为软件。此外,在对象设备20的存储器21中,保存软件的区域被称为软件区域。
验证装置10通过稍后描述的验证处理来验证对象设备20的软件区域是否未被篡改以及未授权软件是否未被添加到空闲区域。因此,验证装置10可以从对象设备20的外部验证对象设备20的程序和数据是否未被篡改或者是否未添加未授权程序和数据,即,验证存在或不存在对象设备20的软件的篡改。
[验证装置的构造]
图1是例示根据本实施方式的验证装置的示意构造的示意图。如图1所示,本实施方式的验证装置10由诸如个人计算机的通用计算机实现,并且包括存储单元11、控制单元12和未示出的通信控制单元。
存储单元11由诸如RAM(随机存取存储器)或闪存的半导体存储元件或者诸如硬盘或光盘的存储装置来实现。在存储单元11中,用于操作验证装置10的处理程序、在处理程序的执行期间使用的数据等被预先存储,或者在每次执行处理时被临时存储。在本实施方式中,存储单元11存储对象设备20的存储器21的空闲区域的大小以及保存在存储器21中的软件。
该软件包括验证程序,该验证程序是用于操作作为稍后描述的验证处理的对象的对象设备20的程序。此外,软件区域通过地址等被划分为任意块。假设数据d(x)被保存在块x中。
通信控制单元由NIC(网络接口卡)等实现,并且通过诸如LAN(局域网)、互联网等的通信线路控制诸如对象设备20的外部设备与控制单元12之间的通信。
控制单元12通过使用CPU(中央处理单元)等来实现,并且执行存储在存储器中的处理程序。因此,控制单元12用作生成单元12a、计算单元12b和验证单元12c,如图1所示。注意,这些功能单元中的每一个或部分可以在不同的硬件中实现。此外,控制单元12可以包括其他功能单元。
生成单元根据对象设备20的存储器21的空闲区域的大小生成包含多个节点的图,并且将所述图发送给对象设备20。
首先,将描述对有向无环图G=(V,E)进行标记的图。这里,V是包含在G中的节点的集合,并且E是边的集合。V中包含的节点数被标记为|V|=N,并且每个节点用1到N的数值标记。另外,数值ω(v)∈{1,0}λ与每个节点v∈V相关联。λ是哈希值的大小。
这里,对于子集V'={v1,...,vn},
Figure BDA0003528344310000043
定义了ω(V')={(ω(v1),...,ω(vn)}。此外,v的父节点的集合被定义为π(v)={v'|(v',v)∈E}。此外,定义了与每个节点相对应的数值ω(v)=H(v,ω(v,π(v)))。这里,H是哈希函数H:{1,0}*→{1,0}λ
在本实施方式中,非专利文献2中提出的局部堆叠扩展器LG(n,k,α,β)被用作有向无环图。局部堆叠扩展器是节点数n(k+1)的图,其包括具有n个节点的有向二分图的k+1个局部二分扩展器LBG(n,α,β)
众所周知,局部堆叠扩展器可以用于构建需要一定量或更多存储容量的图,以便在所有节点v处计算ω(v)。
接下来,将参照图2描述使用在非专利文献1中提出的哈希树的验证方法。图2是用于说明生成单元12a的处理的图。如图2所示,生成具有N个叶的哈希树会导致具有(logN+1)个级的哈希树。假设没有输出边的末端节点
Figure BDA0003528344310000041
是第0级,则图2的左端是第logN级。与每个节点相对应的哈希值是与父节点的哈希值级联的哈希值。
这里,函数Open(c)是如下的函数。也就是说,假设可达节点v的节点集合为π(v),并且具有来自节点v的输入边的节点集合为σ(v)=v'(v,v')∈E。Open(c)是在选择第logN级的节点c时,满足以下等式(1)的函数,其中i=1,...。
[数学函数1]
对于Open(c):i=1,...,logN,该函数返回满足以下关系的所有υ:
Figure BDA0003528344310000042
(c)并且σ(υ)∈II(c)(1)
换句话说,这个Open(c)是返回图2中阴影节点的哈希值的函数,它是计算不可达c但可达c的子节点的节点(即,在图末端的节点φ)的哈希值所需要的函数。
在稍后描述的处理中,当验证装置10针对节点c向对象设备20发送质询C(c∈C)时,对象设备20返回Open(c)和π(c)作为对质询C的响应。在这种情况下,对于所有的c∈C,如果父节点的哈希值H((π(c))匹配c的哈希值并且H(Open(c))匹配,则可以大概率保证对象设备20正确地计算出与N个节点v相对应的ω(v)。
然后,生成单元12a生成节点数为n的局部二分扩展器LBG(n,α,β)并将其发送到对象设备20。这里,图3是用于说明验证处理的概要的图。如图3所示,本实施方式的验证装置10通过验证程序在对象设备20的存储器21的空闲区域中的大小为n的空间中扩展LGB(n,α,β)。然后,验证装置10使用与图的节点相对应的Open函数来证明对象设备20的存储器21中的空闲区域肯定是空闲的。
另外,在计算LBG(n,α,β)的哈希值的处理中,验证装置10随机指定软件区域的块x,并且使用通过参考块x的数据d(x)计算出的级联哈希值验证对象设备20的存储器21的软件区域是否未被篡改。
具体地,生成单元12a首先生成节点数为n的局部二分扩展器LBG(n,α,β)并将其发送到对象设备20。
如稍后将描述的,在对象设备20中,存储器21中的空闲区域中的大小为n的空间被保留用于验证处理,并且基于接收到的LBG(n,α,β)来写入哈希值。
返回到图1的描述。计算单元12b计算与对象设备20的存储器21中保存的每个软件块相对应的哈希值。具体地,计算单元12b计算诸如H(Open(c1))、z(c2)等的值,这些值用于将由验证单元12c重复k次的处理中的每一次处理,这将在后面描述。
另外,验证单元12c使用所计算出的与该块相对应的哈希值、从对象设备20返回的使用图计算出的对指定图的节点的质询的响应以及作为对指定该块的质询的响应的从对象设备20返回的与该块相对应的哈希值,来验证存在或不存在对象设备20的存储器21的篡改。
验证单元12c验证:从对象设备20返回的使用图计算出的响应与所有质询一致以及所计算出的与块相对应的哈希值是否与从对象设备20返回的与该块相对应的哈希值匹配。
验证单元12c还使用利用预定数量的随机数的级联哈希值作为与该块相对应的哈希值。
具体地,验证单元12c将质询C={C1,c2,L}发送到对象设备20。这里,C1是对存储器21的空闲区域的质询,并指定所生成的图的节点c1∈C1。此外,c2是对存储器21的软件区域的质询,并且随机指定块。此外,L是随机指定块时要生成的随机数的数量(即,指定待指定的块的数量的信息)。
验证单元12c从对象设备20接收Open(c1)和π(c1)作为对所有c1∈C1的质询c1的响应。
另外,验证单元12c从对象设备20接收级联哈希值z(c2)=H(d(r1),...,d(rL))作为对质询c2的响应。这里,R(c2)={r1,...,rL}是由伪随机数生成函数生成的L个随机数的随机数序列。
也就是说,验证单元12c接收{Open(c1),π(c1),z(c2)}作为对质询C的响应。
然后,验证单元12c针对所有c∈C验证:H((π(c)))是否与c的哈希值匹配,H(Open(c))是否都匹配,以及级联哈希值z(c2)是否与计算单元12b计算出的值相匹配。当它们都匹配时,验证单元12c以大概率保证空闲区域可靠地空闲并且软件区域未被篡改,即,对象设备20的存储器21未被篡改。
验证单元12c重复上述处理k次。如上所述,验证装置10使用节点数n(k+1)的图来执行验证处理。
注意,生成单元12a生成图,使得节点的数量和与每个节点相对应的哈希值的大小的乘积在预定范围内接近对象设备20的存储器21的空闲区域的大小。
例如,如果γ=β-2α足够接近1,则可以证明使用了具有足够接近空闲区域的容量γn的区域,因此可以证明未经授权的软件未被添加到空闲区域中。然而,众所周知,每个节点的输入边的数量d随着γ接近1而指数地增长。验证装置10可以证明的区域的大小是与LBG的计算量dnk的权衡,并且例如可以是0.7<γ<0.9。
[对象设备]
对象设备20包括存储器21、控制单元22和未示出的通信控制单元。
存储器21由诸如RAM(随机存取存储器)或闪存的半导体存储元件或者诸如硬盘或光盘的存储装置来实现。在存储器21中,用于操作对象设备20的处理程序、在处理程序的执行期间使用的数据等被预先存储,或者在每次执行处理时被临时存储。在本实施方式中,作为用于作为对象设备20操作的程序的验证程序被存储在存储器21的软件区域中。
通信控制单元通过NIC(网络接口卡)等实现,并且通过诸如LAN(局域网)或互联网的通信线路控制诸如对象设备10的外部设备与控制单元22之间的通信。
控制单元22通过使用CPU(中央处理单元)、NP(网络处理器)、FPGA(现场可编程门阵列)等来实现,并且执行存储在存储器中的处理程序。在本实施方式中,控制单元22通过执行验证程序而起到保存单元22a和响应单元22b的作用。
保存单元22a将所计算出的与从验证装置10接收到的图的每个节点相对应的哈希值保存在存储器21的空闲区域中。具体地,当保存单元22a接收到节点数为n的局部二分扩展器LBG(n,α,β)时,存储器21中的空闲区域中的大小为n的空间被保留用于验证处理,并且基于接收到的LBG(n,α,β)来写入哈希值。
当响应单元22b从验证装置10接收到指定图的节点和保存在存储器中的软件的块的质询时,响应单元22b以使用所保存的与该节点相对应的哈希值和所计算出的与该块相对应的哈希值计算出的响应对验证装置10做出响应。
此外,当响应单元22b从验证装置10接收到指定块的质询时,如果进一步指定了随机数的数量,则响应单元22b返回使用进一步指定的随机数的数量计算出的级联哈希值作为与块相对应的哈希值。
具体地,当从验证装置10接收到质询C={C1,c2,L}时,响应单元22b针对所有c1∈C1计算Open(c1)和π(c1)。
另外,随机数序列R(c2)={r1,...,rL}是使用质询c2作为伪随机数生成函数的种子而生成的。然后,响应单元22b计算级联哈希值z(c2)=H(d(r1),...,d(rL))。
然后,响应单元22b向验证装置10返回res={Open(c1),π(c1),z(c2)}作为对质询的响应。对象设备20与验证装置10重复上述处理k次。因此,如上所述,验证装置10验证存在或不存在对象设备20的存储器21的篡改。
[验证处理]
接下来,参照图4描述根据本实施方式的验证装置10进行的验证处理。图4是示出验证处理过程的序列图。例如,图4的序列在用户进行指示开始的操作输入的时刻开始。
首先,在验证装置10中,生成单元12a根据对象设备20的存储器21的空闲区域的大小生成包含多个节点的图,并且将所述图发送给对象设备20(步骤S1)。
在对象设备20中,保存单元22a计算与从验证装置10接收到的图的每个节点相对应的哈希值,并且将哈希值保存在存储器21的空闲区域中(步骤S2)。
接下来,在验证装置10中,验证单元12c将指定图的节点和保存在存储器中的软件的块的质询发送到对象设备20(步骤S3)。
在接收到质询的对象设备20中,响应单元22b使用图计算对指定节点的质询的响应,并且计算与该块相对应的哈希值作为对指定块的质询的响应。此外,响应单元22b将所计算出的响应返回给验证装置10(步骤S4)。
在接收到响应的验证装置10中,验证单元12c验证存在或不存在对象设备20的存储器21的篡改(步骤S5)。具体地,验证单元12c验证对指定节点的质询的响应是否与所有质询匹配。另外,验证单元12c验证对指定块的质询的响应是否与由计算单元12b计算出的与该块相对应的哈希值匹配。验证单元12c重复步骤S1到S5的处理k次。
例如,当它们所有都匹配时,验证单元12c确定对象设备20的存储器21的空闲区域可靠地空闲并且软件区域未被篡改,即,对象设备20的存储器21未被篡改。
此外,验证单元12c显示验证结果并将验证结果输出到诸如显示器的未示出的输出单元。因此,完成了一系列验证处理。
如上所述,在本实施方式的验证装置10中,存储单元11存储对象设备20的存储器的空闲区域的大小以及保存在存储器中的软件。此外,生成单元12a根据对象设备20的存储器21的空闲区域的大小生成包含多个节点的图,并且将所述图发送给对象设备20。另外,计算单元12b计算与对象设备20的存储器21中保存的每个软件块相对应的哈希值。另外,验证单元12c使用与该块相对应的哈希值、从对象设备20返回的使用图计算出的对指定图的节点的质询的响应、以及作为对指定该块的质询的响应的从对象设备20返回的与该块相对应的哈希值,来验证存在或不存在对象设备20的存储器21的篡改。
验证单元12c验证从对象设备20返回的使用图计算出的响应与所有质询一致以及所计算出的与该块相对应的哈希值是否与从对象设备20返回的与该块相对应的哈希值匹配。
因此,验证装置10可以通过利用在包括对象设备20的易失性存储器的存储器21的空闲区域当中的具有预定容量或更大容量的区域来高准确度地证明空闲区域可靠地空闲。另外,验证装置10可以通过参考软件区域中的数据来检测存在或不存在软件区域的篡改。特别是,验证装置10可以在存储器21的软件区域的篡改或未授权软件添加到空闲区域中的任一者或两者发生时以大概率检测到。因此,验证装置10可以同时验证存在或不存在软件区域的篡改,或者空闲区域是否可靠地空闲。如上所述,根据验证装置10,可以从对象设备20外部验证存在或不存在嵌入式设备的软件20的篡改。
另外,生成单元12a生成图,使得节点的数量和与每个节点相对应的哈希值的大小的乘积在预定范围内接近对象设备20的存储器的空闲区域的大小。因此,验证装置10可以以更高的准确度验证对象设备20的空闲区域是否可靠地空闲。
此外,在对象设备20中,保存单元22a将所计算出的与从验证装置10接收到的图的每个节点相对应的哈希值保存在存储器21的空闲区域中。此外,当响应单元22b从验证装置10接收到指定图的节点和保存在存储器中的软件的块的质询时,响应单元22b以使用所保存的与图的该节点相对应的哈希值和所计算出的与该块相对应的哈希值计算出的响应对验证装置10做出响应。
因此,验证装置10可以验证存在或不存在对象设备20的存储器21的篡改。
另外,当验证装置10的验证单元12c向对象设备20发送指定块的质询时,该验证单元12c进一步指定随机数的数量。在这种情况下,对象设备20的响应单元22b返回使用进一步指定数量的随机数计算出的级联哈希值作为与该块相对应的哈希值。这使得能够以更高的准确度验证存在或不存在软件区域的篡改。
值得注意的是,验证装置10会搜索软件区域kL次。此时,检测到在大小为m的软件区域中εm被篡改的概率为(1-ε)kL。如果ε=(1/kL),则当kL足够大时,这个概率为e-kL。因此,如果kL足够大,则漏掉软件区域的篡改的概率会指数地减小。
此外,在上述实施方式中,对象设备20的计算量为k(2n-1+L+dn),并且验证装置10的计算量为k(|C1|logn+L)。当kL足够大时,验证装置10和对象设备20的计算量都是kL。
[程序]
还可以创建程序,在该程序中,由根据上述实施方式的验证装置10执行的处理以可以由计算机执行的语言来描述。作为一个实施方式,可以通过将用于执行上述验证处理的验证程序作为封装软件或在线软件安装在期望的计算机中来实现验证装置10。例如,通过使信息处理装置执行验证程序,信息处理装置可以用作验证装置10。在此上下文中的信息处理装置包括台式或笔记本个人计算机。另外,信息处理装置包括诸如智能电话、移动电话或PHS(个人手持电话系统)的移动通信终端以及诸如PDA(个人数字助理)的平板终端。此外,验证装置10的功能可以在云服务器中实现。
图5是示出执行验证程序的计算机的示例的图。计算机1000例如包括存储器1010、CPU 1020、硬盘驱动器接口1030、磁盘驱动器接口1040、串行端口接口1050、视频适配器1060和网络接口1070。这些组件通过总线1080连接。
存储器1010包括ROM(只读存储器)1011和RAM 1012。ROM 1011例如存储诸如BIOS(基本输入输出系统)的引导程序。硬盘驱动器接口1030连接到硬盘驱动器1031。磁盘驱动器接口1040连接到磁盘驱动器1041。诸如磁盘或光盘的可移除存储介质被插入到磁盘驱动器1041。例如,鼠标1051和键盘1052连接到串行端口接口1050。例如,显示器1061连接到视频适配器1060。
这里,硬盘驱动器1031存储例如OS 1091、应用程序1092、程序模块1093和程序数据1094。上述实施方式中描述的每条信息被存储在例如硬盘驱动器1031或存储器1010中。
此外,验证程序作为例如程序模块1093被存储在硬盘驱动器1031中,在该程序模块1093中描述了要由计算机1000执行的指令。具体地,描述上述实施方式中描述的验证装置10执行的每个处理的程序模块1093被存储在硬盘驱动器1031中。
此外,用于验证程序的信息处理的数据作为程序数据1094被存储在例如硬盘驱动器1031中。然后,CPU 1020根据需要将存储在硬盘驱动器1031中的程序模块1093和程序数据1094读入RAM 1012中,并执行上述各个过程。
值得注意的是,与验证程序相关的程序模块1093和程序数据1094不限于存储在硬盘驱动器1031中,并且例如可以被存储在可移除存储介质中,并且经由磁盘驱动器1041等由CPU 1020读出。另选地,与验证程序有关的程序模块1093和程序数据1094可以被存储在经由诸如LAN或WAN(广域网)的网络连接的另一台计算机中,并经由网络接口1070由CPU1020读出。
上面已经描述了应用了本发明人的做出本发明的实施方式,但本发明不限于构成本实施方式的本发明的公开内容的一部分的说明书和附图。也就是说,本领域技术人员基于本实施方式执行的所有其他实施方式、示例、操作技术等均包含在本发明的范围内。
附图标记列表
1 验证系统
10 验证装置
11 存储单元
12 控制单元
12a 生成单元
12b 计算单元
12c 验证单元
20 对象设备
21 存储器
22 控制单元
22a 保存单元
22b 响应单元

Claims (8)

1.一种验证装置,其特征在于,所述验证装置包括:
存储单元,所述存储单元存储对象设备的存储器的空闲区域的大小以及保存在所述存储器中的软件;
生成单元,所述生成单元根据所述对象设备的所述存储器的所述空闲区域的大小,生成包含多个节点的图,并且将所述图发送给所述对象设备;
计算单元,所述计算单元计算与保存在所述对象设备的所述存储器中的每个软件块相对应的哈希值;以及
验证单元,所述验证单元使用所计算出的与该块相对应的哈希值、从所述对象设备返回的使用所述图计算出的对指定所述图的节点的质询的响应、以及作为对指定该块的质询的响应的从所述对象设备返回的与该块相对应的哈希值,来验证存在或不存在所述对象设备的所述存储器的篡改。
2.根据权利要求1所述的验证装置,其特征在于,所述验证单元验证:从所述对象设备返回的使用所述图计算出的响应与所有质询一致,以及所计算出的与该块相对应的哈希值是否与从所述对象设备返回的与该块相对应的哈希值匹配。
3.根据权利要求1所述的验证装置,其特征在于,所述生成单元生成所述图,使得节点的数量和与每个节点相对应的哈希值的大小的乘积在预定范围内接近所述对象设备的所述存储器的所述空闲区域的大小。
4.根据权利要求1所述的验证装置,其特征在于,所述验证单元还使用利用预定数量的随机数的级联哈希值作为与该块相对应的哈希值。
5.一种验证系统,所述验证系统包括验证装置和对象设备,其特征在于,
所述验证装置包括:
存储单元,所述存储单元存储所述对象设备的存储器的空闲区域的大小以及保存在所述存储器中的软件;
生成单元,所述生成单元根据所述对象设备的所述存储器的所述空闲区域的大小,生成包含多个节点的图,并且将所述图发送给所述对象设备;
计算单元,所述计算单元计算与保存在所述对象设备的所述存储器中的每个软件块相对应的哈希值;以及
验证单元,所述验证单元使用所计算出的与该块相对应的哈希值、从所述对象设备返回的使用所述图计算出的对指定所述图的节点的质询的响应、以及作为对指定该块的质询的响应的从所述对象设备返回的与该块相对应的哈希值,来验证存在或不存在所述对象设备的所述存储器的篡改;并且
所述对象设备包括:
保存单元,所述保存单元将所计算出的与从所述验证装置接收到的所述图的每个节点相对应的哈希值保存在所述存储器的所述空闲区域中;以及
响应单元,当所述响应单元从所述验证装置接收到指定所述图的节点和保存在所述存储器中的软件的块的质询时,所述响应单元以使用所保存的与所述图的所述节点相对应的哈希值计算出的相应和所计算出的与该块相对应的哈希值对所述验证装置做出响应。
6.根据权利要求5所述的验证系统,其特征在于,
当所述验证单元向所述对象设备发送指定该块的质询时,所述验证单元进一步指定随机数的数量,并且
所述响应单元返回使用进一步指定数量的随机数计算出的级联哈希值作为与该块相对应的哈希值。
7.一种由验证装置执行的验证方法,所述验证装置包括存储单元,所述存储单元存储对象设备的存储器的空闲区域的大小以及保存在所述存储器中的软件,其特征在于,所述验证方法包括以下步骤:
生成步骤,所述生成步骤根据所述对象设备的所述存储器的所述空闲区域的大小,生成包含多个节点的图,并且将所述图发送给所述对象设备;
计算步骤,所述计算步骤计算与保存在所述对象设备的所述存储器中的每个软件块相对应的哈希值;以及
验证步骤,所述验证步骤使用所计算出的与该块相对应的哈希值、从所述对象设备返回的使用所述图计算出的对指定所述图的节点的质询的响应、以及作为对指定该块的质询的响应的从所述对象设备返回的与该块相对应的哈希值,来验证存在或不存在所述对象设备的所述存储器的篡改。
8.一种使计算机执行以下步骤的验证程序:
对存储单元进行参考,所述存储单元存储对象设备的存储器的空闲区域的大小以及保存在所述存储器中的软件;
生成步骤,所述生成步骤根据所述对象设备的所述存储器的所述空闲区域的大小,生成包含多个节点的图,并且将所述图发送给所述对象设备;
计算步骤,所述计算步骤计算与保存在所述对象设备的所述存储器中的每个软件块相对应的哈希值;以及
验证步骤,所述验证步骤使用所计算出的与该块相对应的哈希值、从所述对象设备返回的使用所述图计算出的对指定所述图的节点的质询的响应、以及作为对指定该块的质询的响应的从所述对象设备返回的与该块相对应的哈希值,来验证存在或不存在所述对象设备的所述存储器的篡改。
CN201980099998.6A 2019-09-03 2019-09-03 验证装置、验证系统、验证方法和验证程序 Pending CN114341849A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/034662 WO2021044529A1 (ja) 2019-09-03 2019-09-03 検証装置、検証システム、検証方法および検証プログラム

Publications (1)

Publication Number Publication Date
CN114341849A true CN114341849A (zh) 2022-04-12

Family

ID=74852595

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980099998.6A Pending CN114341849A (zh) 2019-09-03 2019-09-03 验证装置、验证系统、验证方法和验证程序

Country Status (6)

Country Link
US (1) US12067152B2 (zh)
EP (1) EP4009210B1 (zh)
JP (1) JP7327490B2 (zh)
CN (1) CN114341849A (zh)
AU (1) AU2019464433B2 (zh)
WO (1) WO2021044529A1 (zh)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005096119A1 (en) * 2004-04-02 2005-10-13 Matsushita Electric Industrial Co., Ltd. Unauthorized contents detection system
US20080184041A1 (en) * 2007-01-31 2008-07-31 Microsoft Corporation Graph-Based Tamper Resistance Modeling For Software Protection
JP6399763B2 (ja) * 2014-02-19 2018-10-03 キヤノン株式会社 情報処理装置、情報処理方法
US9558297B1 (en) * 2014-03-27 2017-01-31 EMC IP Holding Company LLC Memory management techniques
JP2018073245A (ja) * 2016-11-01 2018-05-10 パナソニックIpマネジメント株式会社 検査装置、検査システム、情報処理装置、検査方法およびコンピュータプログラム
JP6712538B2 (ja) * 2016-11-14 2020-06-24 日本電信電話株式会社 改竄検知システム
EP3861671A4 (en) * 2018-10-02 2021-11-24 Visa International Service Association NON-MALLEABLE CODES DELIMITED BY CONTINUOUS SPACE FROM STRONGER SPACE EVIDENCE

Also Published As

Publication number Publication date
JP7327490B2 (ja) 2023-08-16
AU2019464433B2 (en) 2023-04-20
US12067152B2 (en) 2024-08-20
EP4009210B1 (en) 2024-03-13
EP4009210A4 (en) 2023-05-03
AU2019464433A1 (en) 2022-03-24
WO2021044529A1 (ja) 2021-03-11
US20220292225A1 (en) 2022-09-15
JPWO2021044529A1 (zh) 2021-03-11
EP4009210A1 (en) 2022-06-08

Similar Documents

Publication Publication Date Title
CN109313690B (zh) 自包含的加密引导策略验证
CN107683502B (zh) 根据紧凑源代码生成加密函数参数
Costin et al. A {Large-scale} analysis of the security of embedded firmwares
KR102182894B1 (ko) 패스워드 기반의 인증을 수행하는 사용자 장치 및 그것의 패스워드 등록 방법 및 인증 방법
Schulz et al. Short paper: Lightweight remote attestation using physical functions
EP3637297A1 (en) Securing firmware
RU2619895C1 (ru) Система и способы для шифрования данных
CN109074452B (zh) 用于生成绊网文件的系统和方法
US11283602B2 (en) Provisioning authentication keys in computer processor
US9197629B2 (en) Remote direct memory access authentication of a device
US11824967B2 (en) Electronic device using homomorphic encryption and encrypted data processing method thereof
US20100220853A1 (en) Method and Apparatus for Compound Hashing Via Iteration
Karmakar et al. Pushing the speed limit of constant-time discrete Gaussian sampling. A case study on the Falcon signature scheme
US10853472B2 (en) System, apparatus and method for independently recovering a credential
EP3178011A1 (en) Method and system for facilitating terminal identifiers
US8140835B2 (en) Updating a basic input/output system (‘BIOS’) boot block security module in compute nodes of a multinode computer
CN117980904A (zh) 所测量的微控制器重启
CN106372523B (zh) 一种modem文件安全保护方法及系统
CN111147477B (zh) 一种基于区块链网络的验证方法及装置
US10013539B1 (en) Rapid device identification among multiple users
CN114341849A (zh) 验证装置、验证系统、验证方法和验证程序
KR20200144407A (ko) IoT 기기에 적용할 수 있는 물리적 복제 불가능 함수를 기반으로 한 양방향 메시지 인증 칩
KR20200017038A (ko) 메시지 인증 장치 및 방법
CN111971677A (zh) 用于移动装置的防篡改数据编码
CN110363000B (zh) 识别恶意文件的方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination