本发明的实施方式涉及存储装置和认证方法。
背景技术:
近年来,提供了能够连接于终端装置的存储装置。使用互联网等通讯网络,在发布服务器和终端装置之间,例如进行固件的更新处理。
技术实现要素:
本发明的实施方式,提供能够使安装了存储装置的终端装置的可靠性提高的存储装置和认证方法。
实施方式的存储装置具备:接收部,其经由外部设备接收从服务器发送的处理数据及第一认证信息;存储部,其存储所述处理数据;生成部,其基于预先存储的第一键码和所述接收到的第一认证信息来生成第一签名;发送部,其经由所述外部设备将包括所述第一签名及所述第一认证信息的应答数据发送到所述服务器。
附图说明
图1是表示第1实施方式涉及的存储装置的构成的框图。
图2是表示由第1实施方式涉及的存储装置、终端装置和发布服务器构成的系统的图。
图3是表示第1实施方式涉及的固件更新工作的序列图。
图4是表示由第2实施方式涉及的存储装置、终端装置和发布服务器构成的系统的图。
图5是表示第2实施方式涉及的发布服务器的工作的一例的流程图。
图6是表示第3实施方式涉及的存储装置的构成的框图。
图7是表示由第3实施方式涉及的存储装置、终端装置和发布服务器构成的系统的图。
图8是表示第3实施方式涉及的固件更新工作的序列图。
图9是表示第4实施方式涉及的存储装置的构成的框图。
图10是表示第4实施方式涉及的补丁适用工作的序列图。
具体实施方式
以下,参照附图对实施方式进行说明。
在本说明书中,对于一些要素附有多个表达例。此外,这些表达例仅为示例,并不否定上述要素由其他方式来表达。另外,对于未附有多个表达的要素,也可以由其他方式来表达。
另外,附图是示意性的图,厚度和平面尺寸的关系和/或各层的厚度比例等有时与现实物体存在差异。另外,有时在附图相互之间包括相互尺寸的关系和/或比例不同的部分。
(第1实施方式)
图1是表示第1实施方式涉及的存储装置1的构成的一例的框图。存储装置1例如是HDD(Hard Disk Drive,硬盘驱动器),但并非限定于此,也可以是SSD(Solid State Drive,固态硬盘),还可以是组合HDD和SSD而成的存储装置。
存储装置1例如具有数据发送部10、数据接收部20、加密处理部30、固件保存区域40、响应数据保存区域50、数字签名生成部60以及密钥保存区域70。另外,加密处理部30包括加密运算部31和随机数生成部32。
图2表示由具备存储装置1的终端装置100和向终端装置100发送数据的发布服务器200构成的系统。终端装置100和发布服务器200通过IP网络300(Internet Protocol Network,互联网协议网络)相互连接。此外,终端装置100和发布服务器200也可以通过例如3G/4G网和/或LET(Long Term Evolution长期演进)、TV的播放波等其他方式来连接。另外,在本实施方式中,发布服务器200对终端装置100的固件进行更新。
终端装置100如上所述安装有存储装置1。终端装置100例如是POS(Point of Sale,销售点)和/或MFP(Multifunction Peripheral,多功能外部设备)等终端设备,但并非限定于此,也可以是电视机、录音机、PC(Personal Computer,个人电脑)等。此外,终端装置100也可以称为存储装置1的外部设备。
发布服务器200例如在进行终端装置100的固件更新的情况下,将更新数据与固件更新请求一起经由IP网络300发布给终端装置100。
另外,在后面进行叙述,发布服务器200在终端装置100的更新完成的情况下,从终端装置100接收响应数据。
返回到图1,数据发送部10向存储装置1的外部发送数据。在第1实施方式中,例如,数据发送部10相应于经由终端装置100从发布服务器200发送了数据这一情况,经由终端装置100向发布服务器200发送响应数据。
数据接收部20接收来自存储装置1外部的数据。在本实施方式中,例如,数据接收部20经由终端装置100接收在终端装置100的更新时从发布服务器200接收到的更新数据。
此外,数据发送部10和数据接收部20是为了便于说明作为不同单元而例示的,但是例如也可以设为使数据发送部10和数据接收部20为一体的数据收发部或者接口部。
加密处理部30进行存储装置1操作的数据的加密处理。加密运算部31使用保存在密钥保存区域70中的密钥,例如将对存储装置1接收到的数据作为认证信息而附加的数字签名进行加密。随机数生成部32例如按预先设定的时间,生成用于判断由数据接收部20接收到的数据的有效性的随机数。
固件保存区域40保存终端装置100的固件数据及从发布服务器200发送来的更新数据。
响应数据保存领域50暂时保存向发布服务器200发送并在存储装置1内生成的响应数据。
数字签名生成部60生成从发布服务器200发送来的挑战数据(challenge data)的数字签名。此外,该数字签名作为响应数据保存于响应数据保存区域50。
密钥保存区域70保存数字签名生成部60生成数字签名时所用的密钥。
图3是表示第1实施方式涉及的固件更新工作的序列图。以下,参照图3来说明终端装置100的固件更新工作。
首先,发布服务器200在产生更新终端装置100的固件的需要的情况下,对终端装置100发行固件更新请求(S1.1)。此时,发布服务器200将固件更新请求同时将更新数据发送到终端装置100。
此外,发布服务器200也可以设为如下构成:首先仅将固件更新请求发送到终端装置100,在确认终端装置100是否处于可更新状态并接收到响应之后,将更新数据发送到终端装置100。
以后,“固件更新请求”作为包括更新数据来进行说明。此外,在本实施方式中,“更新数据”包括新固件的程序数据及挑战数据。
终端装置100例如使用专用的指令将从发布服务器200接收到的固件更新请求发送到存储装置1(S1.2)。经由存储装置1的数据接收部20接收到的更新数据,被写入到存储装置1的固件保存区域40。即,在固件保存区域40内,保存新固件的程序数据(S1.3)。
接着,在存储装置1中,数字签名生成部60使用预先保存在密钥保存区域70中的密钥,生成更新数据内所包含的挑战数据的数字签名(S1.4)。所生成的数字签名与挑战数据一并作为响应数据而保存于响应数据保存领域50(S1.5)。存储装置1结束与固件更新请求相应的处理,经由数据发送部10将指令返回给终端装置100(S1.6)。
终端装置100在从存储装置1接收到指令时,将响应数据请求发行到存储装置1(S1.7)。
存储装置1在经由数据接收部20接收到响应数据请求时,从响应数据 保存区域50取得响应数据(S1.8),经由数据发送部10将该响应数据(指令)发送到终端装置100(S1.9)。
终端装置100在接收到指令时,将更新完成通知与响应数据一起发行到发布服务器200(S1.10)。发布服务器200通过进行接收到的响应数据的数字签名的认证,能够确认终端装置100的固件更新已正确完成。
在此,说明在发布服务器200和终端装置100之间执行的挑战·响应认证。发布服务器200对终端装置100发行固件更新请求。终端装置100接收固件更新请求并接收挑战数据。然后,若发布服务器200最终从终端装置100接收到响应数据,则挑战·响应认证完成,判断为正确地进行了固件更新。
但是,例如在终端装置100被从外部非法访问的情况下,有可能会由于假装认证而冒充为固件更新完成。具体而言,虽然终端装置100将响应数据返回给发布服务器200,但可能会产生未将新固件发送给存储装置并实际上未进行固件的更新等问题。
另外,在终端装置100被病毒感染等情况下,也有可能会发生与上述同样的问题。进而,固件的更新也有可能会因终端装置100而受阻。
因此,在本实施方式中,在发布服务器200和存储装置1之间进行挑战·响应认证。
通常,存储装置1由独立于终端装置100的专用硬件构成。因此,相比于终端装置100,来自外部的非法访问或篡改困难。通过在这样的存储装置1和发布服务器200之间进行挑战·响应认证,能够确认固件更新已正确完成。
另外,在终端装置100受到非法访问而进行了非法操作的情况下,发布服务器200和/或存储装置1能够检测出固件更新未正确进行的状况。因此,能够迅速进行终端装置100从IP网络300断开和/或由维护人员进行初始化等对策。而且,也可以实施在重新启动时不启动可能会进行非法访问的固件等的对策。
(第2实施方式)
图4表示由安装了第2实施方式涉及的存储装置1的终端装置1和发布服务器200构成的系统。另外,图5是表示第2实施方式中的发布服务器200的工作的一例的流程图。此外,在本实施方式的说明中,对于与第1实施方式相同的构成,赋予相同的附图标记而省略详细的说明。
在本实施方式中,发布服务器200如图4所示具有计时器201。发布服务器200相应于对终端装置100发行固件更新请求,使计时器201启动。通过此构成,在预先设定的预定时间内没有从终端装置100发送响应数据(更新完成通知)的情况下,发布服务器200能够判断为固件更新未正确进行。
此外,“预定时间”可以为发布服务器的管理者所设定的值,也可以根据与固件更新请求一起发送的更新数据(特别是新固件)的大小和/或固件更新处理的复杂程度等来适当变更。
通常而言,由计时器201设定的预定时间,优选在更新数据大的情况下所设定的预定时间比在更新数据小的情况下所设定的预定时间长。这是因为更新数据的大小较大一方在固件更新中花费时间。
另外,也可以为由计时器201计测的预定时间根据固件更新处理的内容而变更的构成。例如,考虑固件更新的内容为将更新数据追加(即写入)到存储装置1的固件保存区域40的内容的情况。在此情况下,与固件更新的内容为变更(即改写)已保存在固件保存区域40中的固件的内容的情况相比,固件更新所需的时间短。
例如在存储装置1为HDD的情况下,当现有数据发生变更时,对现有数据覆盖写入新数据。因此,与向空区域写入数据的情况相比,写入所需要的时间几乎不变。
另一方面,在存储装置1为SSD的情况下,当将现有数据变更为新数据时,需要删除现有数据中的不要的数据。通常对于SSD所使用的闪存存储器,删除比写入费时间。
在固件更新中,例如需要删除保存在固件保存区域40中的更新前的固件,并将新的更新数据保存于固件保存区域40。因此,比向空区域写入数 据的情况费时间。
另外,通常SSD的写入速度比HDD的写入速度快。由此,也可以设为能够根据存储装置1的种类来改变所述的“预定时间”的构成。
基于图5,示出本实施方式中的发布服务器200的工作的一例。发布服务器200在产生更新终端装置100的固件的需要的情况下,对终端装置100发行固件更新请求(S2.1)。
接着,发布服务器200相应于该固件更新请求的发行,使计时器201启动,开始经过时间t的计测(S2.2)。此外,固件更新请求和计时器201启动的顺序也可以相反。无论哪种情况,都优选S2.1和S2.2之间的时间短。
然后,确认从固件更新请求的发行起是否经过了预定时间T(S2.3),在t≧T的情况下,确认是否有来自终端装置100和存储装置1的响应数据(S2.4)。
在S2.4中发布服务器200未接收到来自终端装置100和存储装置1的响应数据的情况下(S2.4的否),能够推定为固件更新失败。
另外,在S2.4中发布服务器200接收到来自终端装置100和存储装置1的响应数据时(S2.4的是),与第1实施方式同样地,发布服务器200进行响应认证(S2.5),根据认证结果来判断是否正确进行了更新。
在响应认证成功时(S2.5的是),发布服务器200认识到终端装置100的固件更新成功。另一方面,在响应认证失败时(S2.5的否),发布服务器200认识到终端装置100的固件更新失败。
在本实施方式所示出的构成中,发布服务器200不仅根据在第1实施方式中说明的挑战·响应认证的结果,还在未在预定时间内返回来自终端装置100和存储装置1的响应的情况下,能够认识到固件更新未正确执行。
通过如此的构成,例如在即使经过了预定时间响应数据也未返回到发布服务器的情况下,推定为其原因是终端装置100被病毒等感染、和/或来自外部的非法访问和/或篡改等。其结果是,能够迅速进行从IP网络300断开和/或由维护人员进行初始化等对策。
此外,在本实施方式中,计时器201不一定需要在第1实施方式所示 出的发布服务器200中新设置,在发布服务器200具有的硬件构成或者功能中包含计时功能的情况下,也可以将该计时功能转用作本实施方式中的计时器201。
(第3实施方式)
图6是表示第3实施方式涉及的存储装置1的构成的一例的框图。另外,图7是表示由安装了第3实施方式涉及的存储装置1的终端装置100和发布服务器200构成的系统。此外,在第3实施方式的说明中,对与第1实施方式和第2实施方式同样的构成赋予相同的附图标记而省略详细说明。
如图6所示,存储装置1具有公钥保存区域80,在公钥保存区域80中保存发布服务器200的公钥。
另外,存储装置1具有认证部35。认证部35使用在公钥保存区域80中保存的公钥来进行认证。
而且,如图7所示,发布服务器200还具备密钥保存区域202和数字签名生成部203。在密钥保存区域202中保存发布服务器200的密钥。数字签名生成部203生成对于挑战数据的数字签名。
图8是表示第3实施方式涉及的固件更新工作的序列图。以下,参照图8来说明第3实施方式涉及的终端装置100的固件更新工作。
发布服务器200在产生更新终端装置100的固件的需要的情况下,对终端装置100发行固件更新请求(S3.1)。此时,发布服务器200将固件更新请求同时将更新数据发送到终端装置100。此外,在第3实施方式中更新数据包括新固件的程序数据及第一挑战数据。
终端装置100例如使用专用指令将从发布服务器接收到的固件更新请求发送到存储装置1(S3.2)。经由存储装置1的数据接收部20接收到的更新数据被写入到存储装置1的固件保存区域40,在固件保存区域40内保存新固件的程序数据(S3.3)。
接着,在存储装置1中,数字签名生成部60使用预先保存在密钥保存区域70中的密钥,生成更新数据内所包含的第一挑战数据的第一数字签名 (S3.4)。所生成的第一数字签名与第一挑战数据一并作为第一响应数据而保存于响应数据保存区域50(S3.5)。存储装置1结束与固件更新请求相应的处理,经由数据发送部10将指令发行到终端装置100(S3.6)。
终端装置100在接收到来自存储装置1的指令时,将第一响应数据请求发行到存储装置1(S3.7)。
存储装置1在经由数据接收部20接收到第一响应数据请求时,从响应数据保存区域50取得第一响应数据(S3.8),一并生成第二挑战数据(S3.9)。存储装置1经由数据发送部10将第一响应数据发送到终端装置100(S3.10)。
在第3实施方式中,存储装置1不仅将第一数字签名还将第二挑战数据也发送到终端装置100。因此,在终端装置100从存储装置1接收的第一响应数据中包括第一挑战数据的第一数字签名及第二挑战数据。
终端装置100在接收到来自存储装置1的指令时,将第二响应数据请求发行到发布服务器200(S3.11)。此时,第一响应数据从终端装置100被发送到发布服务器200。
当从存储装置100接收到第二响应数据请求时,在发布服务器200中,数字签名生成部203使用预先保存在发布服务器200的密钥保存区域202中的密钥来生成第一响应数据内所包含的第二挑战数据的第二数字签名(S3.12)。所生成的第二数字签名作为第二响应数据而发送到终端装置100(S3.13)。
接收到第二响应数据的终端装置100将专用指令发送到存储装置1(S3.14)。
从终端装置100接收到第二数字签名的存储装置1进行通过该指令发送来的第二响应数据的认证。具体而言,通过认证部35使用发布服务器200的公钥来验证第二响应数据,由此存储装置1能够确认发布服务器200中的认证是否成功。
以上,如上所述在第3实施方式中,经由终端装置100在发布服务器200和存储装置1之间进行相互的挑战·响应认证。此外,在本实施方式中,存储装置1成为如下构成:在返回对于从发布服务器200接收到的第一挑 战数据的响应时,将第二挑战数据发送到发布服务器200,从发布服务器200接收对于第二挑战数据的响应。
换言之,在本实施方式中,发布服务器200和存储装置1在双向进行挑战·响应认证。
因此,存储装置1通过从发布服务器200接收对于第二挑战数据的响应,能够确认终端装置100的固件更新是否正确进行。
进而,在挑战·响应认证结果存在问题的情况下,例如通过向终端装置100输出表示固件更新失败的信息,终端装置100的用户能够得知固件更新失败。此外,在此情况下,例如能够利用终端装置100所具备的显示器等,向用户通知固件更新的失败。
另外,在挑战·响应认证的结果存在问题的情况下,也可以在下次启动终端装置100时使得终端装置100无法执行存储装置1存储的固件(使其无效)。
(第4实施方式)
第1实施方式至第3实施方式中所示的发布服务器200和存储装置1的挑战·响应认证,不一定需要用于固件更新。
在第4实施方式中发布服务器200也可以设为如下构成:例如通过与存储装置1的挑战·响应认证来确认由终端装置100执行的向OS的补丁适用是否正确进行。
图9是表示第4实施方式涉及的存储装置1的构成的一例的框图。另外,图10是表示第4实施方式涉及的补丁适用工作的序列图。以下,参照图9及图10来说明终端装置100的补丁适用工作。
发布服务器200根据需要对终端装置100发行补丁适用请求(S4.1)。此外,“补丁适用请求”包括用于补丁适用的补丁数据和挑战数据。
终端装置100例如使用专用的指令将从发布服务器200接收到的补丁适用请求发送到存储装置1(S4.2)。从存储装置1接收到的补丁数据被写入到存储装置1的补丁数据保存区域90(S4.3)。
接着,在存储装置1中,数字签名生成部60使用预先保存的密钥来生 成挑战数据的数字签名(S4.4)。所生成的数字签名与挑战数据一并作为响应数据而保存于响应数据保存区域50(S4.5)。存储装置1结束与补丁适用请求相应的处理,将指令返回到终端装置100(S4.6)。
终端装置100在接收到来自存储装置1的指令时,将响应数据请求发行到存储装置1(S4.7)。
存储装置1在接收到响应数据请求时,取得响应数据(S4.8),将该响应数据(指令)发送到终端装置100(S4.9)。
终端装置100在接收到来自存储装置1的指令时,将补丁适用完成通知与响应数据一起发行到发布服务器200(S4.10)。发布服务器200通过进行所接收到的响应数据的数字签名的认证,能够确认终端装置100的补丁适用已正确完成。
此外,也可以如第2实施方式那样,设为如下构成:发布服务器200在开始补丁适用时设定计时器,在预定时间内没有从存储装置1返回响应数据的情况下,能够确认为补丁适用未正确执行。
另外,也可以如第3实施方式那样,设为如下构成:在存储装置1返回响应数据时,将存储装置1任意生成的新的挑战数据与响应数据一起发送到发布服务器200,将与该新的挑战数据对应的新的响应数据发送到存储装置1,由此发布服务器200和存储装置1相互进行挑战·响应认证。
根据以上的说明,在本实施方式中,发布服务器200能够确认终端装置100的补丁适用是否正确进行。
另外,在终端装置100受到非法访问而被进行非法操作的情况下,发布服务器200和/或存储装置1能够检测出补丁适用未正确进行的状况,因此,能够迅速进行从IP网络300断开和/或由维护人员进行初始化等对策。
此外,在第1实施方式至第4实施方式中,发布服务器200将固件的程序数据和/或补丁数据经由终端装置100发送到了存储装置1,但是,所处理的数据不限于这些数据,例如也可以为参数数据等。
另外,在第1实施方式至第4实施方式中,在发布服务器200、终端装置100和存储装置1之间各种各样的指令(命令/应答)经由I/F而交换。 但是,应答指令也可以不是经由I/F而是利用其他连接端子的静态(static)信号。
另外,存储装置1也可以设为如下构成:不是在接收到固件的程序数据之后立即改写固件,而是例如在暂时保存在RAM等易失性存储器中,并在完成挑战·响应认证之后更新固件。
以上,说明了本发明的几个实施方式,但是这些实施方式是作为例子而举出的,没有限定发明范围的意图。这些新的实施方式能够以其他的各种各样的方式来实施,在不脱离发明要旨的范围内能够进行各种省略、替换、变更。这些实施方式及其变形包含于发明的范围和要旨内,并且包含于权利要求所记载的发明和其等同的范围内。