WO2021015204A1 - アクセス制御装置、アクセス制御方法及びプログラム - Google Patents

アクセス制御装置、アクセス制御方法及びプログラム Download PDF

Info

Publication number
WO2021015204A1
WO2021015204A1 PCT/JP2020/028298 JP2020028298W WO2021015204A1 WO 2021015204 A1 WO2021015204 A1 WO 2021015204A1 JP 2020028298 W JP2020028298 W JP 2020028298W WO 2021015204 A1 WO2021015204 A1 WO 2021015204A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
icv
digest value
block
access control
Prior art date
Application number
PCT/JP2020/028298
Other languages
English (en)
French (fr)
Inventor
明之 畠山
Original Assignee
株式会社ソニー・インタラクティブエンタテインメント
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 株式会社ソニー・インタラクティブエンタテインメント filed Critical 株式会社ソニー・インタラクティブエンタテインメント
Priority to US17/623,970 priority Critical patent/US20220261505A1/en
Priority to JP2021534050A priority patent/JP7178500B2/ja
Publication of WO2021015204A1 publication Critical patent/WO2021015204A1/ja

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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/86Secure or tamper-resistant housings
    • 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
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • 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
    • H04L9/3242Cryptographic 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 involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC

Definitions

  • the present invention relates to an access control device, an access control method and a program.
  • An integrity check technology that collates the digest value (integrity check value (ICV)) calculated from the block for which access is requested with the pre-verified ICV, and permits access to the block if the collation is successful. It has been known. When the program is executed, the integrity check executes access to the block that has been confirmed to be unbroken and tampered with.
  • the integrity check it is necessary to make the ICV data indicating the verified ICV resident in the memory. Therefore, if the size of the ICV data arranged in the memory is large, the size of the memory that can be used in executing the program becomes small.
  • the block can be tampered with and ICV data matching the tampered block can be generated. It ends up.
  • the present invention has been made in view of the above circumstances, and one of the objects thereof is to provide an access control device, an access control method and a program capable of reducing the risk of block tampering while suppressing the size of ICV data. It is in.
  • the access control device is an access control device that stores target data that is the target of an access request, and is unique to the storage that stores the target data and the access control device.
  • An integrity check whose data size is smaller than the digest value data, which is data unique to the access control device based on the verified digest value data using the individual key generator for generating the individual key and the individual key.
  • An ICV data generation unit that generates value (ICV) data, an ICV calculation unit that calculates an ICV based on a block that is a part of the target data for which access is requested using the individual key, and the ICV.
  • a collation unit that collates the ICV indicated by a part of the data corresponding to the block and the ICV calculated by the ICV calculation unit, and a write that writes the block to the memory when the collation is successful. Includes part and.
  • the storage further stores encrypted digest value data, which is data different from the target data, and generates decrypted digest value data by decrypting the encrypted digest value data.
  • the decoding unit the verification unit that verifies the digest value data by collating the digest value calculated based on the value of the digest value data with the digest value indicated by the decrypted digest value data.
  • the individual key generation unit generates the individual key when the verification is successful.
  • a digest value data generation unit that generates the digest value data based on the target data is further included, and the verification unit is based on the value of the digest value data generated by the digest value data generation unit.
  • the ICV data generation unit arranges the generated ICV data in the kernel memory, and the writing unit writes the block in the user memory.
  • an access request receiving unit that receives an access request of the block, which is associated with the ICV indicated by the part corresponding to the block of the ICV data read from the kernel memory, is further included. It may be.
  • another access control device is an access control device including a secure module, a main processor, a memory, and a storage, and the storage stores target data to be an access request.
  • the secure module generates an individual key unique to the access control device, and the secure module is data unique to the access control device based on the verified digest value data using the individual key.
  • the secure module receives an access request from the main processor to a block that is a part of the target data, and the secure module uses the individual key.
  • the ICV based on the block is calculated by using the secure module, and the secure module collates the ICV indicated by a part of the ICV data corresponding to the block with the ICV calculated by the secure module.
  • the secure module writes the block to the memory if the collation is successful.
  • the access request is associated with an ICV indicated by a part of the ICV data corresponding to the block.
  • the secure module stores the individual key, and the main processor cannot access the individual key stored in the secure module.
  • the access control method uses the step of generating an individual key unique to the access control device that stores the target data to be the access request and the individual key to obtain the verified digest value data.
  • the program according to the present invention is based on a procedure for generating an individual key unique to the computer in a computer that stores the target data to be accessed, and a digest value data that has been verified by using the individual key.
  • a procedure for generating ICV data whose data size is smaller than the digest value data, which is data unique to the computer, and a block which is a part of the target data for which access is requested by using the individual key.
  • FIG. 1 is a diagram showing an information processing device 10 and an information processing device 12 according to an embodiment of the present invention.
  • the information processing device 10 and the information processing device 12 according to the present embodiment are, for example, computers such as a game console and a personal computer.
  • the first user such as a vendor of a program such as a game program uses the information processing device 10
  • the second user who uses the program uses the information processing device 12.
  • the information processing device 10 is, for example, a processor that is a program control device such as a CPU, a storage element such as a ROM or RAM, a storage unit such as a hard disk drive, or a communication interface such as a network board or a wireless LAN module. It is equipped with a certain communication unit, an operation unit that is a user interface such as a keyboard, a mouse, and a controller of a game console, and a display unit that is a display device such as a liquid crystal display.
  • a processor that is a program control device such as a CPU, a storage element such as a ROM or RAM, a storage unit such as a hard disk drive, or a communication interface such as a network board or a wireless LAN module. It is equipped with a certain communication unit, an operation unit that is a user interface such as a keyboard, a mouse, and a controller of a game console, and a display unit that is a display device such as a liquid crystal display.
  • the information processing apparatus 12 includes a main processor 20, a memory 22 (kernel memory 22a and a user memory 22b), a secure module 24, and a storage 26.
  • the main processor 20 is, for example, a program control device such as a CPU that operates according to a program installed in the information processing device 12.
  • the memory 22 is provided with an area of the kernel memory 22a and an area of the user memory 22b.
  • the kernel memory 22a is an area reserved for arranging the kernel of the operating system (OS).
  • the user memory 22b is an area reserved for arranging the application program and the data used by the application program.
  • the secure module 24 is a hardware device including, for example, a processor, a secure memory, a storage controller, and the like.
  • the storage 26 is a storage device such as a hard disk drive.
  • the main processor 20, the memory 22, and the secure module 24 are connected to the bus 28.
  • the information processing device 12 may include a communication interface such as a network board, an optical disk drive for reading an optical disk such as a DVD-ROM or a Blu-ray (registered trademark) disk, a USB (Universal Serial Bus) port, and the like. Further, the hardware configuration of the information processing device 10 may be the same as that of the information processing device 12.
  • the target data 30 shown in FIG. 4 including a plurality of objects such as files and directories corresponding to programs and data is developed.
  • the target data 30 is managed with a block having a predetermined length (for example, 64 kilobytes) as one unit.
  • the target data 30 is composed of n blocks B (1) to B (n). That is, the size of the target data 30 shown in FIG. 4 is (64 ⁇ n) kilobytes.
  • the access to the target data 30 is executed in block units.
  • the information processing device 10 calculates the digest value of (32 ⁇ n) bytes based on the target data 30. Then, the information processing apparatus 10 generates 32 nB digest value data 32 indicating the calculated digest value (S101).
  • 32 nB digest value data 32 is generated by executing an encrypted hash algorithm such as the SHA256 algorithm or the SHA3-256 algorithm on the target data 30.
  • the n 32 byte portions included in the 32 nB digest value data 32 are associated with a block of 64 kilobytes on a one-to-one basis.
  • the information processing apparatus 10 calculates a 32-byte digest value based on the 32 nB digest value data 32 generated by the process shown in S101. Then, the information processing apparatus 10 generates 32B digest value data 34 indicating the calculated digest value (S102).
  • the 32B digest value data 34 is generated by executing an encryption hash algorithm such as the SHA256 algorithm or the SHA3-256 algorithm on the 32 nB digest value data 32.
  • the encrypted digest value data 36 is generated based on the 32B digest value data 34 generated by the process shown in S102 (S103).
  • the encrypted digest value data 36 is generated by encrypting the 32B digest value data 34 with a private key that is secretly managed in the information processing apparatus 10 by a public key cryptosystem such as RSA.
  • distribution data including the target data 30 and the encrypted digest value data 36 generated in the process shown in S103 is generated (S104), and the process shown in the present process example is completed.
  • the above-mentioned distribution data generated by the information processing device 10 is provided to the information processing device 12. Then, the information processing device 12 executes access to the object included in the distributed data.
  • the information processing apparatus 12 executes the integrity check for the block for which access is requested at the time of executing the program. Then, the integrity check executes access to the block that has been confirmed to be unbroken and tampered with.
  • FIG. 5 is a functional block diagram showing an example of the functions implemented in the information processing device 12 according to the present embodiment. It should be noted that the information processing apparatus 12 according to the present embodiment does not have to be equipped with all the functions shown in FIG. 5, and may be equipped with functions other than the functions shown in FIG.
  • the information processing apparatus 12 includes a target data storage unit 40, an encrypted digest value data storage unit 42, a public key storage unit 44, a digest value data generation unit 46, and a decryption unit. 48, verification unit 50, individual key generation unit 52, individual key storage unit 54, ICV data generation unit 56, ICV data storage unit 58, access request unit 60, access request reception unit 62, ICV calculation unit 64, collation unit 66, The writing unit 68 is included.
  • the target data storage unit 40, the encrypted digest value data storage unit 42, and the public key storage unit 44 are mainly implemented with the storage 26.
  • Digest value data generation unit 46, decoding unit 48, verification unit 50, individual key generation unit 52, individual key storage unit 54, ICV data generation unit 56, access request reception unit 62, ICV calculation unit 64, collation unit 66, writing Part 68 mainly mounts the secure module 24.
  • the ICV data storage unit 58 mainly implements the kernel memory 22a.
  • the access request unit 60 mainly implements the main processor 20.
  • the above functions may be implemented by executing a program installed in the information processing device 12 which is a computer and including a command corresponding to the above functions on the main processor 20 and the secure module 24.
  • This program may be supplied to the information processing apparatus 12 via a computer-readable information storage medium such as an optical disk, a magnetic disk, a magnetic tape, a magneto-optical disk, or a flash memory, or via the Internet or the like. .. Further, this program may be supplied from the information processing device 10 to the information processing device 12.
  • the target data storage unit 40 stores, for example, the target data 30 that is the target of the access request provided by the information processing device 10.
  • the encrypted digest value data storage unit 42 stores the encrypted digest value data 36 provided by, for example, the information processing device 10.
  • the public key storage unit 44 stores, for example, the public key corresponding to the above-mentioned private key.
  • the public key may be stored in the information processing device 12 in advance, or may be provided by the information processing device 10.
  • the digest value data generation unit 46 calculates a (32 ⁇ n) byte digest value based on the target data 30 stored in the target data storage unit 40, for example, as shown in FIG. .. Then, the digest value data generation unit 46 generates, for example, 32 nB digest value data 70 indicating the calculated digest value in the present embodiment.
  • 32 nB digest value data 70 is generated by executing an encrypted hash algorithm such as the SHA256 algorithm or the SHA3-256 algorithm on the target data 30. Normally, 32nB digest value data 70 having the same value as the 32nB digest value data 32 generated by the process shown in S101 described above is generated.
  • the digest value data generation unit 46 calculates a 32-byte digest value based on the 32 nB digest value data 70 generated by the digest value data generation unit 46, for example, as shown in FIG. .. Then, the digest value data generation unit 46 generates 32B digest value data 72 indicating the calculated digest value. Normally, 32B digest value data 72 having the same value as the 32B digest value data 34 generated by the process shown in S102 described above is generated.
  • the decryption unit 48 generates the decryption digest value data 74 by decrypting the encrypted digest value data 36 stored in the encrypted digest value data storage unit 42. ..
  • the decrypted digest value data 74 is generated by decrypting the encrypted digest value data 36 with the public key stored in the public key storage unit 44 by a public key cryptosystem such as RSA.
  • the decoding digest value data 74 having the same value as the 32B digest value data 34 generated by the process shown in S102 is generated.
  • the verification unit 50 verifies the 32nB digest value data 70 by collating the digest value calculated by the digest value data generation unit 46 with the digest value indicated by the decoding digest value data 74.
  • the digest value indicated by the 32B digest value data 72 generated by the digest value data generation unit 46 and the digest value indicated by the decoded digest value data 74 are collated.
  • the individual key generation unit 52 generates an individual key unique to the information processing device 12, for example, when the verification unit 50 succeeds in verification (for example, the two digest values match).
  • the value of the pseudo-random number generated by using the pseudo-random number generation function may be used as the value of the individual key.
  • the individual key storage unit 54 stores, for example, the individual key generated by the individual key generation unit 52.
  • the individual key is stored in the secure module 24, and the main processor 20 cannot access the individual key stored in the secure module 24.
  • the ICV data generation unit 56 calculates the integrity check value (ICV) based on the verified 32nB digest value data 70 by using, for example, an individual key. Then, the ICV data generation unit 56 generates ICV data 76 indicating the calculated ICV. Here, for example, by executing a message authentication code algorithm using a block cipher, such as the AES-CMAC algorithm, ICV data 76 indicating the CMAC value is generated. The ICV data 76 is data unique to the information processing device 12. Then, the ICV data generation unit 56 arranges the generated ICV data in the kernel memory 22a.
  • ICV integrity check value
  • the data size of the ICV data 76 is smaller than that of the 32 nB digest value data 70.
  • the size of the ICV data 76 is, for example, (16 ⁇ n) bytes. It is also possible to use a migrated CMAC, in which case the size of the ICV data 76 is, for example, (8 ⁇ n) bytes.
  • n 16-byte or 8-byte portions included in the ICV data 76 are associated with a block of 64 kilobytes on a one-to-one basis.
  • the ICV data storage unit 58 stores, for example, ICV data 76 in this embodiment.
  • the ICV data 76 is stored in the kernel memory 22a.
  • the access request unit 60 requests access to the block, for example.
  • the main processor 20 issues an access request to the secure module 24.
  • the main processor 20 may read a part of the ICV data 76 corresponding to the block from the kernel memory 22a. Then, an access request for the block to which the value indicated by the part is associated may be issued to the secure module 24.
  • the access request receiving unit 62 receives, for example, an access request issued from the access request unit 60.
  • the secure module 24 receives an access request for a block from the main processor 20.
  • the ICV calculation unit 64 reads, for example, a block for which access is requested. Then, in the present embodiment, the ICV calculation unit 64 calculates the ICV based on the read block by using the individual key stored in the individual key storage unit 54, for example.
  • the ICV indicating the CMAC value is calculated by executing the message authentication code algorithm using the block cipher such as the AES-CMAC algorithm.
  • the collation unit 66 collates, for example, the ICV indicated by a part of the ICV data 76 corresponding to the block for which access is requested with the ICV calculated by the ICV calculation unit 64.
  • the ICV associated with the access request received by the access request unit 60 and the ICV calculated by the ICV calculation unit 64 are collated.
  • the writing unit 68 writes the block for which access is requested to the user memory 22b.
  • the digest value data generation unit 46 generates 32 nB digest value data 70 based on the target data 30 (S201).
  • the digest value data generation unit 46 generates 32B digest value data 72 based on the 32 nB digest value data 70 generated by the process shown in S201 (S202).
  • the digest value indicated by the 32B digest value data 72 generated by the process shown in S202 will be referred to as a calculated digest value.
  • the decryption unit 48 generates the decryption digest value data 74 by decrypting the encrypted digest value data 36 (S203).
  • the digest value indicated by the decoding digest value data 74 generated by the process shown in S203 will be referred to as a decoding digest value.
  • the verification unit 50 verifies the 32nB digest value data 70 generated by the process shown in S201 by collating the calculated digest value with the decoded digest value (S204).
  • the verification unit 50 confirms whether or not the verification in the process shown in S204 was successful (S205). Here, if it is confirmed that the verification has failed (S205: N), a predetermined error process is executed.
  • the individual key generation unit 52 When it is confirmed that the verification is successful (S205: Y), the individual key generation unit 52 generates an individual key and stores the generated individual key in the individual key storage unit 54 (S206).
  • the ICV data generation unit 56 generates ICV data 76 based on the 32nB digest value data 70 generated in the process shown in S201 by using the individual key stored in the process shown in S206. Then, the ICV data generation unit 56 stores the generated ICV data 76 in the ICV data storage unit 58 (S207), and the process shown in this processing example is completed.
  • the target data 30, the encrypted digest value data 36, and the public key are read from the storage 26 and arranged in the kernel memory 22a, if necessary. .. Then, after the processing shown in S201 to S207 is completed, the target data 30, the encrypted digest value data 36, and the public key arranged in the kernel memory 22a are erased.
  • the access request receiving unit 62 receives an access request for the block associated with the ICV and the identification information of the block (S301).
  • the ICV associated with the access request that is, the ICV indicated by a part of the ICV data 76 stored in the ICV data storage unit 58 will be referred to as a reference block ICV.
  • the ICV calculation unit 64 acquires the block for which the access request has been made from the storage 26 (S302).
  • the ICV calculation unit 64 calculates the ICV based on the block acquired by the process shown in S302 using the individual key stored in the individual key storage unit 54 (S303).
  • the ICV calculated in this way will be referred to as a calculation block ICV.
  • the collation unit 66 collates the calculation block ICV with the reference block ICV (S304).
  • the collation unit 66 confirms whether or not the collation in the process shown in S304 was successful (S305). Here, if it is confirmed that the collation has failed (S305: N), a predetermined error process is executed.
  • the writing unit 68 writes the block acquired in the process shown in S302 to the user memory 22b (S306), and the process shown in this processing example. Is terminated.
  • the ICV data 76 whose data size is smaller than the 32nB digest value data 70, is resident in the kernel memory 22a for integrity check. Therefore, more memory 22 that can be used for program execution can be secured than when the 32 nB digest value data 70 is made resident in the kernel memory 22a for integrity check.
  • the block can be tampered with and the ICV data 76 that matches the tampered object can be generated. turn into.
  • an individual key having a different value is generated each time the information processing device 12 is activated, and ICV data 76 based on the individual key is generated.
  • the risk of tampering with the block can be reduced while suppressing the size of the ICV data 76 used for the integrity check.
  • the present invention is not limited to the above-described embodiment.
  • the function shown in FIG. 5 may be implemented by hardware or software.

Landscapes

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

Abstract

ICVデータのサイズを抑えつつ、ブロックの改ざんリスクを低減できるアクセス制御装置、アクセス制御方法及びプログラムを提供する。個別鍵生成部(52)は、情報処理装置(12)に固有の個別鍵を生成する。ICVデータ生成部(56)は、個別鍵を用いて、検証済のダイジェスト値データに基づく情報処理装置(12)に固有なデータである、当該ダイジェスト値データよりもデータサイズが小さなICVデータを生成する。ICV計算部(64)は、個別鍵を用いて、アクセスが要求されたブロックに基づくICVを計算する。照合部(66)は、ICVデータのうちのブロックに対応する一部が示すICVと、ICV計算部(64)により計算されるICVと、を照合する。書込部(68)は、照合が成功する場合に、ブロックをメモリに書き込む。

Description

アクセス制御装置、アクセス制御方法及びプログラム
 本発明は、アクセス制御装置、アクセス制御方法及びプログラムに関する。
 アクセスが要求されたブロックから計算されるダイジェスト値(インテグリティチェックバリュー(ICV))と、予め検証されたICVとを照合し、照合に成功した場合に当該ブロックへのアクセスを許可するインテグリティチェックの技術が知られている。プログラムの実行時には、インテグリティチェックによって、壊れていないこと、及び、改ざんされていないことが確認されたブロックに対するアクセスが実行される。
 インテグリティチェックにおいては、検証されたICVを示すICVデータをメモリに常駐させる必要がある。そのため、メモリに配置されるICVデータのサイズが大きいと、プログラムの実行において利用可能なメモリのサイズが小さくなってしまう。
 また、ブロックとICVデータとの対応関係が一意に定まるものであれば、その対応関係を見破ることができれば、ブロックを改ざんするとともに、改ざん後のブロックに整合するICVデータの生成が可能になってしまう。
 本発明は上記実情に鑑みてなされたものであって、その目的の一つは、ICVデータのサイズを抑えつつ、ブロックの改ざんリスクを低減できるアクセス制御装置、アクセス制御方法及びプログラムを提供することにある。
 上記課題を解決するために、本発明に係るアクセス制御装置は、アクセス要求の対象となるターゲットデータを記憶するアクセス制御装置であって、前記ターゲットデータを記憶するストレージと、前記アクセス制御装置に固有の個別鍵を生成する個別鍵生成部と、前記個別鍵を用いて、検証済のダイジェスト値データに基づく前記アクセス制御装置に固有なデータである、当該ダイジェスト値データよりもデータサイズが小さなインテグリティチェックバリュー(ICV)データを生成するICVデータ生成部と、前記個別鍵を用いて、前記ターゲットデータのうちのアクセスが要求された一部であるブロックに基づくICVを計算するICV計算部と、前記ICVデータのうちの前記ブロックに対応する一部が示すICVと、前記ICV計算部により計算されるICVと、を照合する照合部と、前記照合が成功する場合に、前記ブロックをメモリに書き込む書込部と、を含む。
 本発明の一態様では、前記ストレージは、前記ターゲットデータとは別のデータである、暗号化ダイジェスト値データをさらに記憶し、前記暗号化ダイジェスト値データを復号することで復号ダイジェスト値データを生成する復号部と、前記ダイジェスト値データの値に基づいて計算されるダイジェスト値と、前記復号ダイジェスト値データが示すダイジェスト値と、を照合することで、前記ダイジェスト値データを検証する検証部と、をさらに含み、前記個別鍵生成部は、前記検証が成功する場合に、前記個別鍵を生成する。
 この態様では、前記ターゲットデータに基づいて前記ダイジェスト値データを生成するダイジェスト値データ生成部、をさらに含み、前記検証部は、前記ダイジェスト値データ生成部により生成される前記ダイジェスト値データの値に基づいて計算されるダイジェスト値と、前記復号ダイジェスト値データが示すダイジェスト値と、を照合することで、前記ダイジェスト値データ生成部により生成される前記ダイジェスト値データを検証してもよい。
 また、本発明の一態様では、前記ICVデータ生成部は、生成される前記ICVデータをカーネルメモリに配置し、前記書込部は、前記ブロックをユーザメモリに書き込む。
 この態様では、前記カーネルメモリから読み出された、前記ICVデータのうちの前記ブロックに対応する前記一部が示すICVに関連付けられた、前記ブロックのアクセス要求を受け付けるアクセス要求受付部、をさらに含んでもよい。
 また、本発明に係る別のアクセス制御装置は、セキュアモジュールと、メインプロセッサと、メモリと、ストレージと、を含むアクセス制御装置であって、前記ストレージは、アクセス要求の対象となるターゲットデータを記憶し、前記セキュアモジュールは、前記アクセス制御装置に固有の個別鍵を生成し、前記セキュアモジュールは、前記個別鍵を用いて、検証済のダイジェスト値データに基づく前記アクセス制御装置に固有なデータである、当該ダイジェスト値データよりもデータサイズが小さなICVデータを生成し、前記セキュアモジュールは、前記メインプロセッサから前記ターゲットデータの一部であるブロックに対するアクセス要求を受け付け、前記セキュアモジュールは、前記個別鍵を用いて、前記ブロックに基づくICVを計算し、前記セキュアモジュールは、前記ICVデータのうちの前記ブロックに対応する一部が示すICVと、前記セキュアモジュールにより計算されるICVと、を照合し、前記セキュアモジュールは、前記照合が成功する場合に、前記ブロックを前記メモリに書き込む。
 本発明の一態様では、前記アクセス要求には、前記ICVデータのうちの前記ブロックに対応する一部が示すICVが関連付けられている。
 また、本発明の一態様では、前記セキュアモジュールは、前記個別鍵を記憶し、前記メインプロセッサは、前記セキュアモジュールに記憶されている前記個別鍵にアクセスできない。
 また、本発明に係るアクセス制御方法は、アクセス要求の対象となるターゲットデータを記憶するアクセス制御装置に固有の個別鍵を生成するステップと、前記個別鍵を用いて、検証済のダイジェスト値データに基づく前記アクセス制御装置に固有なデータである、当該ダイジェスト値データよりもデータサイズが小さなICVデータを生成するステップと、前記個別鍵を用いて、前記ターゲットデータのうちのアクセスが要求された一部であるブロックに基づくICVを計算するステップと、前記ICVデータのうちの前記ブロックに対応する一部が示すICVと、前記計算するステップで計算されるICVと、を照合するステップと、前記照合が成功する場合に、前記ブロックをメモリに書き込むステップと、を含む。
 また、本発明に係るプログラムは、アクセス要求の対象となるターゲットデータを記憶するコンピュータに、前記コンピュータに固有の個別鍵を生成する手順、前記個別鍵を用いて、検証済のダイジェスト値データに基づく前記コンピュータに固有なデータである、当該ダイジェスト値データよりもデータサイズが小さなICVデータを生成する手順、前記個別鍵を用いて、前記ターゲットデータのうちのアクセスが要求された一部であるブロックに基づくICVを計算する手順、前記ICVデータのうちの前記ブロックに対応する一部が示すICVと、前記計算する手順で計算されるICVと、を照合する手順、前記照合が成功する場合に、前記ブロックをメモリに書き込む手順、を実行させる。
本発明の一実施形態の全体構成の一例を示す図である。 本発明の一実施形態に係る情報処理装置の構成の一例を示す図である。 本発明の一実施形態に係る情報処理装置で行われる処理の流れの一例を示すフロー図である。 ターゲットデータ、32nBダイジェスト値データ、32Bダイジェスト値データ、暗号化ダイジェスト値データの関係の一例を模式的に示す図である。 本発明の一実施形態に係る情報処理装置の機能の一例を示す機能ブロック図である。 ターゲットデータ、32nBダイジェスト値データ、32Bダイジェスト値データ、暗号化ダイジェスト値データ、復号ダイジェスト値データ、ICVデータの関係の一例を模式的に示す図である。 本発明の一実施形態に係る情報処理装置で行われる処理の流れの一例を示すフロー図である。 本発明の一実施形態に係る情報処理装置で行われる処理の流れの一例を示すフロー図である。
 以下、本発明の一実施形態について図面に基づき詳細に説明する。
 図1は、本発明の一実施形態に係る情報処理装置10、及び、情報処理装置12を示す図である。本実施形態に係る情報処理装置10、及び、情報処理装置12は、例えば、ゲームコンソールやパーソナルコンピュータなどのコンピュータである。
 本実施形態では、ゲームプログラム等のプログラムのベンダなどといった第1のユーザが情報処理装置10を利用し、当該プログラムを利用する第2のユーザが情報処理装置12を利用することとする。
 本実施形態に係る情報処理装置10は、例えば、CPU等のプログラム制御デバイスであるプロセッサ、ROMやRAM等の記憶素子やハードディスクドライブなどである記憶部、ネットワークボードや無線LANモジュールなどといった通信インタフェースである通信部、キーボード、マウス、ゲームコンソールのコントローラ等のユーザインタフェースである操作部、液晶ディスプレイ等の表示デバイスである表示部、などを備えている。
 本実施形態に係る情報処理装置12は、図2に示すように、メインプロセッサ20、メモリ22(カーネルメモリ22a、及び、ユーザメモリ22b)、セキュアモジュール24、及び、ストレージ26を備えている。
 メインプロセッサ20は、例えば情報処理装置12にインストールされるプログラムに従って動作するCPU等のプログラム制御デバイスである。
 本実施形態に係るメモリ22には、カーネルメモリ22aの領域と、ユーザメモリ22bの領域と、が設けられている。カーネルメモリ22aは、オペレーティングシステム(OS)のカーネルを配置するために確保された領域である。ユーザメモリ22bは、アプリケーションプログラムやアプリケーションプログラムが利用するデータを配置するために確保された領域である。
 セキュアモジュール24は、例えばプロセッサ、セキュアなメモリ、ストレージコントローラなどを備えたハードウェアデバイスである。
 ストレージ26は、ハードディスクドライブなどの記憶装置である。
 メインプロセッサ20、メモリ22、及び、セキュアモジュール24は、バス28に接続されている。
 なお、情報処理装置12は、ネットワークボードなどの通信インタフェース、DVD-ROMやBlu-ray(登録商標)ディスクなどの光ディスクを読み取る光ディスクドライブ、USB(Universal Serial Bus)ポートなどを含んでいてもよい。また、情報処理装置10のハードウェア構成が、情報処理装置12と同様のものであってもよい。
 ここで、本実施形態に係る情報処理装置10で実行される処理の流れの一例を、図3に例示するフロー図を参照しながら説明する。
 本実施形態では例えば、情報処理装置10において、プログラムやデータに相当する、ファイルやディレクトリなどのオブジェクトを複数含む、図4に示すターゲットデータ30が開発される。
 本実施形態では、ターゲットデータ30は、所定長(例えば64キロバイト)のブロックを1単位として管理される。図4の例では、ターゲットデータ30が、n個のブロックB(1)~B(n)から構成されている。すなわち、図4に示すターゲットデータ30のサイズは、(64×n)キロバイトとなる。そして、本実施形態では、ターゲットデータ30に対するアクセスは、ブロック単位で実行される。
 そして、本実施形態では、情報処理装置10が、ターゲットデータ30に基づいて、(32×n)バイトのダイジェスト値を計算する。そして、情報処理装置10が、計算されたダイジェスト値を示す32nBダイジェスト値データ32を生成する(S101)。ここでは例えば、ターゲットデータ30に対して、SHA256アルゴリズムやSHA3-256アルゴリズムなどの暗号化ハッシュアルゴリズムを実行することで、32nBダイジェスト値データ32が生成される。
 図4に示すように、32nBダイジェスト値データ32に含まれるn個の32バイトの部分は、それぞれ64キロバイトのブロックと1対1に対応付けられる。
 そして、本実施形態では例えば、情報処理装置10が、S101に示す処理で生成された32nBダイジェスト値データ32に基づいて、32バイトのダイジェスト値を計算する。そして、情報処理装置10が、計算されたダイジェスト値を示す32Bダイジェスト値データ34を生成する(S102)。ここでは例えば、32nBダイジェスト値データ32に対して、SHA256アルゴリズムやSHA3-256アルゴリズムなどの暗号化ハッシュアルゴリズムを実行することで、32Bダイジェスト値データ34が生成される。
 そして、本実施形態では例えば、S102に示す処理で生成された32Bダイジェスト値データ34に基づいて、暗号化ダイジェスト値データ36を生成する(S103)。ここでは例えば、RSAなどの公開鍵暗号方式によって、情報処理装置10において秘匿に管理される秘密鍵により32Bダイジェスト値データ34を暗号化することで、暗号化ダイジェスト値データ36が生成される。
 そして、本実施形態では例えば、ターゲットデータ30と、S103に示す処理で生成された暗号化ダイジェスト値データ36と、を含む配布データを生成して(S104)、本処理例に示す処理は終了される。
 本実施形態では、情報処理装置10で生成された上述の配布データが情報処理装置12に提供される。そして、情報処理装置12において、配布データに含まれるオブジェクトへのアクセスが実行される。
 そして、本実施形態では、情報処理装置12において、プログラムの実行時にアクセスが要求されたブロックに対するインテグリティチェックが実行される。そして、インテグリティチェックによって、壊れていないこと、及び、改ざんされていないことが確認されたブロックに対するアクセスが実行される。
 図5は、本実施形態に係る情報処理装置12で実装される機能の一例を示す機能ブロック図である。なお、本実施形態に係る情報処理装置12で、図5に示す機能のすべてが実装される必要はなく、また、図5に示す機能以外の機能が実装されていても構わない。
 図5に示すように、情報処理装置12には、機能的には例えば、ターゲットデータ記憶部40、暗号化ダイジェスト値データ記憶部42、公開鍵記憶部44、ダイジェスト値データ生成部46、復号部48、検証部50、個別鍵生成部52、個別鍵記憶部54、ICVデータ生成部56、ICVデータ記憶部58、アクセス要求部60、アクセス要求受付部62、ICV計算部64、照合部66、書込部68、が含まれる。
 ターゲットデータ記憶部40、暗号化ダイジェスト値データ記憶部42、公開鍵記憶部44は、ストレージ26を主として実装される。ダイジェスト値データ生成部46、復号部48、検証部50、個別鍵生成部52、個別鍵記憶部54、ICVデータ生成部56、アクセス要求受付部62、ICV計算部64、照合部66、書込部68は、セキュアモジュール24を主として実装される。ICVデータ記憶部58は、カーネルメモリ22aを主として実装される。アクセス要求部60は、メインプロセッサ20を主として実装される。
 以上の機能は、コンピュータである情報処理装置12にインストールされた、以上の機能に対応する指令を含むプログラムをメインプロセッサ20、及び、セキュアモジュール24で実行することにより実装されてもよい。このプログラムは、例えば、光ディスク、磁気ディスク、磁気テープ、光磁気ディスク、フラッシュメモリ等のコンピュータ読み取り可能な情報記憶媒体を介して、あるいは、インターネットなどを介して情報処理装置12に供給されてもよい。また、このプログラムは、情報処理装置10から情報処理装置12に供給されてもよい。
 ターゲットデータ記憶部40は、本実施形態では例えば、情報処理装置10から提供される、アクセス要求の対象となるターゲットデータ30を記憶する。
 暗号化ダイジェスト値データ記憶部42は、本実施形態では例えば、情報処理装置10から提供される、暗号化ダイジェスト値データ36を記憶する。
 公開鍵記憶部44は、本実施形態では例えば、上述の秘密鍵に対応する公開鍵を記憶する。公開鍵は、情報処理装置12に予め記憶されていてもよいし、情報処理装置10から提供されてもよい。
 ダイジェスト値データ生成部46は、本実施形態では例えば、図6に示すように、ターゲットデータ記憶部40に記憶されているターゲットデータ30に基づいて、(32×n)バイトのダイジェスト値を計算する。そしてダイジェスト値データ生成部46は、本実施形態では例えば、計算されたダイジェスト値を示す32nBダイジェスト値データ70を生成する。ここでは例えば、ターゲットデータ30に対して、SHA256アルゴリズムやSHA3-256アルゴリズムなどの暗号化ハッシュアルゴリズムを実行することで、32nBダイジェスト値データ70が生成される。通常は、上述のS101に示す処理で生成される32nBダイジェスト値データ32と同じ値の32nBダイジェスト値データ70が生成される。
 また、ダイジェスト値データ生成部46は、本実施形態では例えば、図6に示すように、ダイジェスト値データ生成部46により生成される32nBダイジェスト値データ70に基づいて、32バイトのダイジェスト値を計算する。そして、ダイジェスト値データ生成部46は、計算されたダイジェスト値を示す32Bダイジェスト値データ72を生成する。通常は、上述のS102に示す処理で生成される32Bダイジェスト値データ34と同じ値の32Bダイジェスト値データ72が生成される。
 復号部48は、本実施形態では例えば、図6に示すように、暗号化ダイジェスト値データ記憶部42に記憶されている暗号化ダイジェスト値データ36を復号することで復号ダイジェスト値データ74を生成する。ここでは例えば、RSAなどの公開鍵暗号方式によって、公開鍵記憶部44に記憶されている公開鍵により暗号化ダイジェスト値データ36を復号することで、復号ダイジェスト値データ74が生成される。通常は、上述のS102に示す処理で生成される32Bダイジェスト値データ34と同じ値の復号ダイジェスト値データ74が生成される。
 検証部50は、ダイジェスト値データ生成部46において計算されるダイジェスト値と、復号ダイジェスト値データ74が示すダイジェスト値と、を照合することで、32nBダイジェスト値データ70を検証する。ここでは例えば、ダイジェスト値データ生成部46により生成される32Bダイジェスト値データ72が示すダイジェスト値と復号ダイジェスト値データ74が示すダイジェスト値とが照合される。
 個別鍵生成部52は、本実施形態では例えば、検証部50による検証が成功(例えば2つのダイジェスト値が一致)すると、情報処理装置12に固有の個別鍵を生成する。ここでは例えば、疑似乱数生成関数を用いて生成される疑似乱数の値が個別鍵の値に用いられてもよい。
 個別鍵記憶部54は、本実施形態では例えば、個別鍵生成部52により生成される個別鍵を記憶する。個別鍵はセキュアモジュール24に記憶され、メインプロセッサ20は、セキュアモジュール24に記憶されている個別鍵にはアクセスできない。
 ICVデータ生成部56は、本実施形態では例えば、個別鍵を用いて、検証済の32nBダイジェスト値データ70に基づくインテグリティチェックバリュー(ICV)を計算する。そして、ICVデータ生成部56は、計算されたICVを示すICVデータ76を生成する。ここでは例えば、AES-CMACアルゴリズムなどの、ブロック暗号を用いたメッセージ認証コードアルゴリズムを実行することで、CMAC値を示すICVデータ76が生成される。ICVデータ76は、情報処理装置12に固有のデータである。そして、ICVデータ生成部56は、生成されたICVデータを、カーネルメモリ22aに配置する。
 ICVデータ76は、32nBダイジェスト値データ70よりもデータサイズが小さい。ICVデータ76のサイズは、例えば、(16×n)バイトである。なお、トランケーテッド(trancated)CMACを用いることも可能であり、この場合は、ICVデータ76のサイズは、例えば、(8×n)バイトとなる。
 図6に示すように、ICVデータ76に含まれるn個の16バイトあるいは8バイトの部分は、それぞれ64キロバイトのブロックと1対1に対応付けられる。
 ICVデータ記憶部58は、本実施形態では例えば、ICVデータ76を記憶する。ここでは例えば、カーネルメモリ22aにICVデータ76が記憶される。
 アクセス要求部60は、本実施形態では例えば、ブロックに対するアクセスを要求する。ここでは例えば、メインプロセッサ20がセキュアモジュール24に対してアクセス要求を発行する。ここでメインプロセッサ20は、当該ブロックに対応するICVデータ76の一部をカーネルメモリ22aから読み出してもよい。そして、当該一部が示す値が関連付けられた、当該ブロックに対するアクセス要求をセキュアモジュール24に発行してもよい。
 アクセス要求受付部62は、本実施形態では例えば、アクセス要求部60から発行されるアクセス要求を受け付ける。ここでは例えばセキュアモジュール24がメインプロセッサ20からブロックに対するアクセス要求を受け付ける。
 ICV計算部64は、本実施形態では例えば、アクセスが要求されたブロックを読み出す。そして、ICV計算部64は、本実施形態では例えば、個別鍵記憶部54に記憶されている個別鍵を用いて、読み出したブロックに基づくICVを計算する。ここでは上述のように、AES-CMACアルゴリズムなどの、ブロック暗号を用いたメッセージ認証コードアルゴリズムを実行することで、CMAC値を示すICVが計算される。
 照合部66は、本実施形態では例えば、ICVデータ76のうちのアクセスが要求されたブロックに対応する一部が示すICVと、ICV計算部64により計算されるICVと、を照合する。ここでは例えば、アクセス要求部60が受け付けたアクセス要求に関連付けられているICVと、ICV計算部64により計算されるICVと、が照合される。
 書込部68は、本実施形態では例えば、照合部66による照合が成功(例えば2つのICVが一致)する場合に、アクセスが要求されたブロックをユーザメモリ22bに書き込む。
 ここで、本実施形態に係る情報処理装置12の起動時に行われる処理の流れの一例を、図7に例示するフロー図を参照しながら説明する。
 まず、ダイジェスト値データ生成部46が、ターゲットデータ30に基づいて、32nBダイジェスト値データ70を生成する(S201)。
 そして、ダイジェスト値データ生成部46が、S201に示す処理で生成された32nBダイジェスト値データ70に基づいて、32Bダイジェスト値データ72を生成する(S202)。以下、S202に示す処理で生成された32Bダイジェスト値データ72が示すダイジェスト値を計算ダイジェスト値と呼ぶこととする。
 そして、復号部48が、暗号化ダイジェスト値データ36を復号することで復号ダイジェスト値データ74を生成する(S203)。以下、S203に示す処理で生成された復号ダイジェスト値データ74が示すダイジェスト値を復号ダイジェスト値と呼ぶこととする。
 そして、検証部50が、計算ダイジェスト値と、復号ダイジェスト値と、を照合することで、S201に示す処理で生成された32nBダイジェスト値データ70を検証する(S204)。
 そして、検証部50が、S204に示す処理での検証が成功したか否かを確認する(S205)。ここで、検証が失敗したことが確認された場合は(S205:N)は、所定のエラー処理が実行される。
 検証が成功したことが確認された場合は(S205:Y)は、個別鍵生成部52が、個別鍵を生成して、生成された個別鍵を個別鍵記憶部54に記憶させる(S206)。
 そして、ICVデータ生成部56が、S206に示す処理で記憶された個別鍵を用いて、S201に示す処理で生成された32nBダイジェスト値データ70に基づくICVデータ76を生成する。そして、ICVデータ生成部56が、生成されたICVデータ76をICVデータ記憶部58に記憶させて(S207)、本処理例に示す処理は終了される。
 上述の処理例に示す処理の実行の際には、必要に応じて、ターゲットデータ30、暗号化ダイジェスト値データ36、及び、公開鍵が、ストレージ26から読み出されてカーネルメモリ22aに配置される。そしてS201~S207に示す処理の終了後に、カーネルメモリ22aに配置されているターゲットデータ30、暗号化ダイジェスト値データ36、及び、公開鍵は消去される。
 次に、本実施形態に係る情報処理装置12において、プログラムの実行時におけるブロックに対するアクセス要求が発生した際に行われる処理の流れの一例を、図8に例示するフロー図を参照しながら説明する。
 まず、アクセス要求受付部62が、ICVとブロックの識別情報に関連付けられた当該ブロックに対するアクセス要求を受け付ける(S301)。以下、アクセス要求に関連付けられているICV、すなわち、ICVデータ記憶部58に記憶されているICVデータ76の一部が示すICVを、参照ブロックICVと呼ぶこととする。
 そして、ICV計算部64が、アクセス要求のあったブロックをストレージ26から取得する(S302)。
 そして、ICV計算部64が、個別鍵記憶部54に記憶されている個別鍵を用いて、S302に示す処理で取得されたブロックに基づくICVを計算する(S303)。以下、このようにして計算されるICVを計算ブロックICVと呼ぶこととする。
 そして、照合部66が、計算ブロックICVと参照ブロックICVとを照合する(S304)。
 そして、照合部66が、S304に示す処理での照合が成功したか否かを確認する(S305)。ここで、照合が失敗したことが確認された場合は(S305:N)は、所定のエラー処理が実行される。
 照合が成功したことが確認された場合は(S305:Y)は、書込部68が、S302に示す処理で取得されたブロックをユーザメモリ22bに書き込んで(S306)、本処理例に示す処理は終了される。
 本実施形態では、32nBダイジェスト値データ70よりもデータサイズが小さなICVデータ76が、インテグリティチェックのためにカーネルメモリ22aに常駐される。そのため、32nBダイジェスト値データ70をインテグリティチェックのためにカーネルメモリ22aに常駐させるよりも、プログラムの実行において利用可能なメモリ22を多く確保できる。
 また、ブロックとICVデータ76との対応関係が一意に定まるものであれば、その対応関係を見破ることができれば、ブロックを改ざんするとともに、改ざん後のオブジェクトに整合するICVデータ76の生成が可能になってしまう。本実施形態では、情報処理装置12の起動の度に値が異なる個別鍵が生成され、当該個別鍵に基づくICVデータ76が生成される。
 以上のようにして、本実施形態によれば、インテグリティチェックに用いられるICVデータ76のサイズを抑えつつ、ブロックの改ざんリスクを低減できることとなる。
 なお、本発明は上述の実施形態に限定されるものではない。
 例えば、図5に示す機能(例えば、セキュアモジュール24の機能)は、ハードウェアにより実装されてもソフトウェアにより実装されてもよい。
 また、上記の具体的な文字列や数値及び図面中の具体的な文字列や数値は例示であり、これらの文字列や数値には限定されない。

Claims (10)

  1.  アクセス要求の対象となるターゲットデータを記憶するアクセス制御装置であって、
     前記ターゲットデータを記憶するストレージと、
     前記アクセス制御装置に固有の個別鍵を生成する個別鍵生成部と、
     前記個別鍵を用いて、検証済のダイジェスト値データに基づく前記アクセス制御装置に固有なデータである、当該ダイジェスト値データよりもデータサイズが小さなインテグリティチェックバリュー(ICV)データを生成するICVデータ生成部と、
     前記個別鍵を用いて、前記ターゲットデータのうちのアクセスが要求された一部であるブロックに基づくICVを計算するICV計算部と、
     前記ICVデータのうちの前記ブロックに対応する一部が示すICVと、前記ICV計算部により計算されるICVと、を照合する照合部と、
     前記照合が成功する場合に、前記ブロックをメモリに書き込む書込部と、
     を含むことを特徴とするアクセス制御装置。
  2.  前記ストレージは、前記ターゲットデータとは別のデータである、暗号化ダイジェスト値データをさらに記憶し、
     前記暗号化ダイジェスト値データを復号することで復号ダイジェスト値データを生成する復号部と、
     前記ダイジェスト値データの値に基づいて計算されるダイジェスト値と、前記復号ダイジェスト値データが示すダイジェスト値と、を照合することで、前記ダイジェスト値データを検証する検証部と、をさらに含み、
     前記個別鍵生成部は、前記検証が成功する場合に、前記個別鍵を生成する、
     ことを特徴とする請求項1に記載のアクセス制御装置。
  3.  前記ターゲットデータに基づいて前記ダイジェスト値データを生成するダイジェスト値データ生成部、をさらに含み、
     前記検証部は、前記ダイジェスト値データ生成部により生成される前記ダイジェスト値データの値に基づいて計算されるダイジェスト値と、前記復号ダイジェスト値データが示すダイジェスト値と、を照合することで、前記ダイジェスト値データ生成部により生成される前記ダイジェスト値データを検証する、
     ことを特徴とする請求項2に記載のアクセス制御装置。
  4.  前記ICVデータ生成部は、生成される前記ICVデータをカーネルメモリに配置し、
     前記書込部は、前記ブロックをユーザメモリに書き込む、
     ことを特徴とする請求項1から3のいずれか一項に記載のアクセス制御装置。
  5.  前記カーネルメモリから読み出された、前記ICVデータのうちの前記ブロックに対応する前記一部が示すICVに関連付けられた、前記ブロックのアクセス要求を受け付けるアクセス要求受付部、をさらに含む、
     ことを特徴とする請求項4に記載のアクセス制御装置。
  6.  セキュアモジュールと、メインプロセッサと、メモリと、ストレージと、を含むアクセス制御装置であって、
     前記ストレージは、アクセス要求の対象となるターゲットデータを記憶し、
     前記セキュアモジュールは、前記アクセス制御装置に固有の個別鍵を生成し、
     前記セキュアモジュールは、前記個別鍵を用いて、検証済のダイジェスト値データに基づく前記アクセス制御装置に固有なデータである、当該ダイジェスト値データよりもデータサイズが小さなICVデータを生成し、
     前記セキュアモジュールは、前記メインプロセッサから前記ターゲットデータの一部であるブロックに対するアクセス要求を受け付け、
     前記セキュアモジュールは、前記個別鍵を用いて、前記ブロックに基づくICVを計算し、
     前記セキュアモジュールは、前記ICVデータのうちの前記ブロックに対応する一部が示すICVと、前記セキュアモジュールにより計算されるICVと、を照合し、
     前記セキュアモジュールは、前記照合が成功する場合に、前記ブロックを前記メモリに書き込む、
     ことを特徴とするアクセス制御装置。
  7.  前記アクセス要求には、前記ICVデータのうちの前記ブロックに対応する一部が示すICVが関連付けられている、
     ことを特徴とする請求項6に記載のアクセス制御装置。
  8.  前記セキュアモジュールは、前記個別鍵を記憶し、
     前記メインプロセッサは、前記セキュアモジュールに記憶されている前記個別鍵にアクセスできない、
     ことを特徴とする請求項6又は7に記載のアクセス制御装置。
  9.  アクセス要求の対象となるターゲットデータを記憶するアクセス制御装置に固有の個別鍵を生成するステップと、
     前記個別鍵を用いて、検証済のダイジェスト値データに基づく前記アクセス制御装置に固有なデータである、当該ダイジェスト値データよりもデータサイズが小さなICVデータを生成するステップと、
     前記個別鍵を用いて、前記ターゲットデータのうちのアクセスが要求された一部であるブロックに基づくICVを計算するステップと、
     前記ICVデータのうちの前記ブロックに対応する一部が示すICVと、前記計算するステップで計算されるICVと、を照合するステップと、
     前記照合が成功する場合に、前記ブロックをメモリに書き込むステップと、
     を含むことを特徴とするアクセス制御方法。
  10.  アクセス要求の対象となるターゲットデータを記憶するコンピュータに、
     前記コンピュータに固有の個別鍵を生成する手順、
     前記個別鍵を用いて、検証済のダイジェスト値データに基づく前記コンピュータに固有なデータである、当該ダイジェスト値データよりもデータサイズが小さなICVデータを生成する手順、
     前記個別鍵を用いて、前記ターゲットデータのうちのアクセスが要求された一部であるブロックに基づくICVを計算する手順、
     前記ICVデータのうちの前記ブロックに対応する一部が示すICVと、前記計算する手順で計算されるICVと、を照合する手順、
     前記照合が成功する場合に、前記ブロックをメモリに書き込む手順、
     を実行させることを特徴とするプログラム。
PCT/JP2020/028298 2019-07-23 2020-07-21 アクセス制御装置、アクセス制御方法及びプログラム WO2021015204A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US17/623,970 US20220261505A1 (en) 2019-07-23 2020-07-21 Access control apparatus, access control method, and program
JP2021534050A JP7178500B2 (ja) 2019-07-23 2020-07-21 アクセス制御装置、アクセス制御方法及びプログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019-135539 2019-07-23
JP2019135539 2019-07-23

Publications (1)

Publication Number Publication Date
WO2021015204A1 true WO2021015204A1 (ja) 2021-01-28

Family

ID=74194194

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/028298 WO2021015204A1 (ja) 2019-07-23 2020-07-21 アクセス制御装置、アクセス制御方法及びプログラム

Country Status (3)

Country Link
US (1) US20220261505A1 (ja)
JP (1) JP7178500B2 (ja)
WO (1) WO2021015204A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002111648A (ja) * 2000-07-24 2002-04-12 Sony Corp データ処理装置およびデータ処理方法、並びにプログラム提供媒体
WO2008056700A1 (fr) * 2006-11-09 2008-05-15 Panasonic Corporation Système de détection de falsification, procédé de détection de falsification, programme de détection de falsification, support d'enregistrement, circuit intégré, dispositif de génération d'informations d'authentification et dispositif de détection de fals
WO2018138212A1 (en) * 2017-01-26 2018-08-02 Gemalto Sa Method to secure a software code
JP2019020872A (ja) * 2017-07-13 2019-02-07 株式会社デンソー 電子制御装置、プログラム改ざん検知方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5757919A (en) * 1996-12-12 1998-05-26 Intel Corporation Cryptographically protected paging subsystem
JP2002132583A (ja) * 2000-10-20 2002-05-10 Sony Corp データ処理装置、データ記憶装置、およびデータ処理方法、並びにプログラム提供媒体
US7047405B2 (en) * 2001-04-05 2006-05-16 Qualcomm, Inc. Method and apparatus for providing secure processing and data storage for a wireless communication device
EP1255372B1 (en) * 2001-05-03 2008-03-19 Telefonaktiebolaget LM Ericsson (publ) Method and system for data integrity protection
US7266842B2 (en) * 2002-04-18 2007-09-04 International Business Machines Corporation Control function implementing selective transparent data authentication within an integrated system
US7200756B2 (en) * 2002-06-25 2007-04-03 Microsoft Corporation Base cryptographic service provider (CSP) methods and apparatuses
ATE522994T1 (de) * 2004-07-05 2011-09-15 Abb Research Ltd Authentifizierung von kurznachrichten.
US8365293B2 (en) * 2005-01-25 2013-01-29 Redphone Security, Inc. Securing computer network interactions between entities with authorization assurances
US8364965B2 (en) * 2006-03-15 2013-01-29 Apple Inc. Optimized integrity verification procedures
US8301906B2 (en) * 2006-05-10 2012-10-30 Nero Ag Apparatus for writing information on a data content on a storage medium
US8478258B2 (en) * 2010-03-05 2013-07-02 Intel Corporation Techniques to reduce false detection of control channel messages in a wireless network
US11190528B2 (en) * 2017-11-28 2021-11-30 Avago Technologies International Sales Pte. Limited Light-weight mechanism for checking message integrity in data packets

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002111648A (ja) * 2000-07-24 2002-04-12 Sony Corp データ処理装置およびデータ処理方法、並びにプログラム提供媒体
WO2008056700A1 (fr) * 2006-11-09 2008-05-15 Panasonic Corporation Système de détection de falsification, procédé de détection de falsification, programme de détection de falsification, support d'enregistrement, circuit intégré, dispositif de génération d'informations d'authentification et dispositif de détection de fals
WO2018138212A1 (en) * 2017-01-26 2018-08-02 Gemalto Sa Method to secure a software code
JP2019020872A (ja) * 2017-07-13 2019-02-07 株式会社デンソー 電子制御装置、プログラム改ざん検知方法

Also Published As

Publication number Publication date
US20220261505A1 (en) 2022-08-18
JP7178500B2 (ja) 2022-11-25
JPWO2021015204A1 (ja) 2021-01-28

Similar Documents

Publication Publication Date Title
US8200961B2 (en) Securing a flash memory block in a secure device system and method
EP2335181B1 (en) External encryption and recovery management with hardware encrypted storage devices
US6834333B2 (en) Data processing device, data storage device, data processing method, and program providing medium for storing content protected under high security management
US7925017B2 (en) Information recording device, information playback device, information recording medium, information recording method, information playback method, and program providing medium
US11803366B2 (en) Firmware updating system and method
TW202036347A (zh) 資料儲存、驗證方法及裝置
CN111475871A (zh) 存储器***
CN113434853B (zh) 一种将固件烧录至存储设备的方法及控制器
JP2012014416A (ja) 記録装置、書き込み装置、読み出し装置、及び記録装置の制御方法
WO2006004130B1 (ja) データ管理方法、そのプログラム及びプログラムの記録媒体
US20150089218A1 (en) Secure storage with scsi storage devices
US20020071553A1 (en) Data storage device, data recording method, data playback method, and program providing medium
KR20140051350A (ko) 디지털 서명 권한자 의존형 플랫폼 기밀 생성 기법
CN105308610A (zh) 用于设备上的平台和用户应用安全性的方法和***
US20020112197A1 (en) Information recording device, information playback device, information recording method, information playback method, information recording medium, and program providing medium
JP2006268449A (ja) 計算機システム及び記憶装置とコンピュータ・ソフトウエア並びにストレージ制御における管理者の認証方法
US20230351056A1 (en) Sram physically unclonable function (puf) memory for generating keys based on device owner
CN115576483A (zh) 可信计算基础的组件之间的安全身份链接
JP4724107B2 (ja) リムーバブル・デバイスを用いたユーザの認証方法およびコンピュータ
US11468159B2 (en) Memory system
JP2011150701A (ja) ソフトウェア・アプリケーションの実行方法およびソフトウェア・アプリケーションを記憶する記憶デバイス
KR102089435B1 (ko) 안전한 usb 장치를 보장하는 부트 방법
WO2021015204A1 (ja) アクセス制御装置、アクセス制御方法及びプログラム
CN111310173A (zh) 一种可信芯片的终端虚拟机身份认证方法及***
CN115391844A (zh) 安全密钥存储装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20843155

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021534050

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20843155

Country of ref document: EP

Kind code of ref document: A1