WO2011118034A1 - 情報記録装置 - Google Patents
情報記録装置 Download PDFInfo
- Publication number
- WO2011118034A1 WO2011118034A1 PCT/JP2010/055426 JP2010055426W WO2011118034A1 WO 2011118034 A1 WO2011118034 A1 WO 2011118034A1 JP 2010055426 W JP2010055426 W JP 2010055426W WO 2011118034 A1 WO2011118034 A1 WO 2011118034A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- unit
- program
- shadow
- password
- storage unit
- Prior art date
Links
- 238000003860 storage Methods 0.000 claims abstract description 177
- 238000013500 data storage Methods 0.000 claims abstract description 50
- 238000012795 verification Methods 0.000 claims abstract description 9
- 238000012545 processing Methods 0.000 claims description 158
- 238000000034 method Methods 0.000 claims description 131
- 230000005540 biological transmission Effects 0.000 claims description 5
- 238000007726 management method Methods 0.000 description 118
- 230000008569 process Effects 0.000 description 51
- 230000006870 function Effects 0.000 description 47
- 238000010586 diagram Methods 0.000 description 22
- 238000009434 installation Methods 0.000 description 18
- 238000004891 communication Methods 0.000 description 15
- 230000004913 activation Effects 0.000 description 13
- 238000004519 manufacturing process Methods 0.000 description 12
- 238000001994 activation Methods 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 6
- IQLZWWDXNXZGPK-UHFFFAOYSA-N methylsulfonyloxymethyl methanesulfonate Chemical compound CS(=O)(=O)OCOS(C)(=O)=O IQLZWWDXNXZGPK-UHFFFAOYSA-N 0.000 description 5
- 238000012790 confirmation Methods 0.000 description 4
- 238000013523 data management Methods 0.000 description 4
- 230000010365 information processing Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000010248 power generation Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 208000037309 Hypomyelination of early myelinating structures Diseases 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000011900 installation process Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 101100217298 Mus musculus Aspm gene Proteins 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000002730 additional effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000000087 stabilizing effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting 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
- G06F21/80—Protecting 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 in storage media based on magnetic or optical technology, e.g. disks with sectors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
- G06F21/85—Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/062—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3226—Cryptographic 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 a predetermined code, e.g. password, passphrase or PIN
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2147—Locking files
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
Definitions
- This disclosure relates to an information recording apparatus that stores network services and contents that require copyright protection.
- Non-Patent Document 1 a method of permitting access to a storage device only when a correct PIN code is input in advance.
- an application for content distribution is installed for each service provider or service, and secret information is included in the application, or an algorithm for storing secret information is included.
- the secret information is generally encrypted and stored as a file (for example, Patent Document 1).
- One aspect of the present invention is to provide an information recording apparatus that can prevent digital information from being illegally used and can effectively use the digital information while protecting the copyright of the digital information without impairing the usability of the user. is there.
- a drive unit that records digital information including digital content;
- a host unit that controls recording and reading of digital information to and from the drive unit,
- the host unit is A network processing unit that communicates with the server;
- a shadow determination unit that determines whether or not a shadow boot program executed prior to the boot program can be executed;
- a shadow reading unit that reads the shadow boot program from the drive unit when the shadow determination unit determines that the execution is possible;
- a shadow execution unit for executing the shadow boot program;
- a server authentication unit that performs authentication with the server;
- a password transmission unit that transmits a password used for unlocking the drive unit to the drive unit when authentication with the server is successful, and
- the drive unit is A shadow boot program storage unit for storing the shadow boot program;
- a boot program storage unit for storing the boot program in the previous period;
- a user data storage unit for storing user data including arbitrary digital data;
- a password verification unit that determines whether or not a password transmitted from the host unit matches a pre-registered password;
- unauthorized use of digital information can be reliably prevented, and effective use of digital information can be achieved while protecting copyright of digital information without impairing user-friendliness.
- FIG. 1 is a block diagram showing the overall configuration of a first embodiment of an information processing system according to the present invention.
- FIG. 2 is a block diagram showing an example of an internal configuration of the data recording device 3 in FIG. 1.
- the flowchart which shows the process sequence of the program stored in the MBR
- the block diagram which shows an example of the internal structure of the data recording device 3 by 2nd Embodiment. 4 is a block diagram showing an example of an internal configuration of a secret information storage unit 15.
- the flowchart which shows an example of the process sequence of the password setting phase which a Shadow program performs.
- the flowchart which shows an example of the process sequence of the unlock phase which a Shadow program performs The flowchart which shows an example of the process sequence of the Shadow program in the case of obtaining a password from the server 1.
- 7 is a flowchart illustrating an example of a processing procedure of an unlock phase corresponding to a case where a value acquired from the server 1 is stored in a register of the state management unit 45.
- the block diagram which shows schematic structure of the data recording device 3 in 3rd Embodiment.
- the flowchart which shows an example of the process sequence of the unlock phase which a Shadow program performs.
- the flowchart which shows an example which added the process which confirms whether the program stored in the storage part 35a for initial installations was reliably performed to the process of FIG.
- the block diagram which shows schematic structure of the data recording device 3 in 4th Embodiment.
- the block diagram which shows an example of the internal structure of the processor 26a which can execute the special instruction X.
- the block diagram which shows an example of schematic structure of the secret information storage part 15b which concerns on 4th Embodiment.
- (A) is a flowchart showing an example of the processing procedure of the authentication private key setting phase when the public key method is adopted, and
- (b) is the processing procedure of the authentication private key setting phase when the common key method is adopted.
- FIG. 1 is a block diagram showing the overall configuration of a first embodiment of an information processing system according to the present invention.
- the information processing system in FIG. 1 includes a data recording device 3 that can receive and store digital information from a server 1 (for example, service providing servers A and B) via the Internet 2.
- a server 1 for example, service providing servers A and B
- the data recording device 3 and the server 1 connected to the Internet 2 may be connected to a router device (not shown).
- the data recording device 3 and the server 1 can adopt various forms such as a wireless LAN and Ethernet (registered trademark) compliant with IEEE802.11 as a physical layer and a link layer.
- IP Internet 2 protocol
- IPv4 or IPv6 may be used as the network layer.
- digital information refers to digitized content such as moving picture data such as MPEG2 and MPEG4, audio data such as MP3, text data and image data, and the number of a credit card owned by the user.
- moving picture data such as MPEG2 and MPEG4
- audio data such as MP3, text data and image data
- number of a credit card owned by the user may be included.
- the data recording device 3 mainly includes a drive unit 4 and a host unit 5.
- the drive unit 4 is assumed to be a device for recording digital information such as a hard disk drive (HDD) or a solid state drive (SSD), and a data recording unit 6 and an access control unit 7 are provided therein.
- the host unit 5 has a function of processing data such as a CPU, a memory, and a communication interface (not shown) and a function of communicating with the service providing server 1.
- the host unit 5 is connected to the drive unit 4 through a bus interface such as IDE, SCSI, or USB.
- the data recording unit 6 stores digital information such as the OS, AV data such as moving image data, data generated by the user, and data received from the service providing server 1.
- the host unit 5 When the host unit 5 reads data from the data recording unit 6, the address (Logical Block Address) of the data recording unit 6 is specified, and the data recording unit 6 stores the data stored in the area of the specified address (LBA). Transmit to the host unit 5.
- the data recording unit 6 may be logically divided so as to be seen as a plurality of independent areas (partitions) from the host unit 5.
- the data recording unit 6 is divided into an MBR storage unit 8, an OS storage unit 9, and a user data storage unit 10.
- the MBR storage unit 8 is an area for storing a program (boot program) executed at startup called MBR (Master Boot Record).
- the OS storage unit 9 is a processing unit that stores an OS.
- the user data storage unit 10 is a processing unit that stores and manages AV data, user-generated data, data received from the service providing server 1, and the like (user data).
- the user data may be any digital data as long as it is owned by the user.
- the user data indicates a text file, moving image data / image data, or the like.
- the user data may be data input by the user using a keyboard or a microphone, or may be private data photographed (created) by a user with a digital camera or camcorder. It may be commercial data such as purchased (regardless of whether it is paid or free), or data received from a friend or family member.
- the OS storage unit 9 and the user data storage unit 10 are set as separate areas in this embodiment, but may be combined into one area.
- the host unit 5 includes a program processing unit 11 and an activation processing unit 12.
- the program processing unit 11 performs startup processing, OS processing, and the like.
- the startup processing unit 12 stores a program executed to load the MBR at startup, and a general-purpose storage device such as a BIOS or a flash memory built in the device can be used for storing the program. .
- the processor When the data recording device 3 is activated, the processor first executes a program stored in the activation processing unit 12. This program performs system initialization processing and the like, and then reads and executes the boot program stored in the MBR storage unit 8. In other words, the first program executed in the data recording unit 6 is the boot program.
- the boot program checks how the area of the data recording unit 6 is set, and the OS stored in the OS storage unit 9 is read into the host unit 5 and executed.
- the OS executes an application for communicating with the service providing server 1.
- the access control unit 7 of the drive unit 4 determines whether or not the host unit 5 can access the data recording unit 6. It has a function of determining a read lock rejected when a data read request is received from the host unit 5, a write lock rejected when a data write request is received, or both.
- the read lock and the write lock can be set independently such that the read is permitted but the write is not permitted.
- read lock and write lock may be set and controlled for each partition. A read lock and write lock setting method and a lock releasing method will be described later.
- FIG. 2 is a block diagram showing an example of the internal configuration of the data recording device 3 of FIG.
- the host unit 5 includes a communication processing unit 13 for communicating with the drive unit 4 in addition to the program processing unit 11 and the activation processing unit 12 described above.
- the startup processing unit 12 includes a startup program storage unit 21 that stores a program to be executed to load a boot program.
- the program processing unit 11 includes a network processing unit 22, a server authentication processing unit 23, an MBR shadow writing unit 24, and a data management unit 25.
- the network processing unit 22 performs physical layer processing, data link layer processing, network layer processing, and transport layer processing for communicating with the service providing server 1.
- the server authentication process performs an authentication process with the service providing server 1.
- the MBR Shadow writing unit 24 performs a process of writing a Shadow program (shadow boot program) described later in the MBR Shadow storage unit of the drive unit 4.
- the data management unit 25 performs data reading and writing processing on the OS storage unit 9 and the user data storage unit 10.
- the communication processing unit 13 performs communication processing with the drive unit 4. Specifically, the communication processing unit 13 transmits and receives various information to and from the communication processing unit 14 in the drive unit 4.
- the access control unit 7 of the drive unit 4 includes a request data range confirmation unit 31, a host authentication unit 32, a lock control unit 33, and an MBR Shadow setting unit 34.
- An MBR Shadow storage unit 35 is connected to the MBR Shadow setting unit 34.
- the requested data range confirmation unit 31 is read-locked or write-locked at a portion corresponding to the address. If it is locked, an error is returned and the data recording unit 6 is not accessed. If unlocked (unlocked), the host unit 5 is allowed to access data corresponding to the address.
- the host authentication unit 32 performs authentication processing with the host via the communication processing unit 13.
- the lock control unit 33 controls the lock setting for the data recording unit 6. That is, the authentication result of the host authentication processing unit is confirmed, and the lock is released or the lock is set only when the authentication is successful.
- the MBR Shadow setting unit 34 performs a process of setting a program (shadow program) in the MBR Shadow storage unit 35 and managing whether the MBR Shadow function is valid. As a processing procedure, confirm the authentication result of the host authentication processing unit, and if the authentication is successful, write a program to the MBR Shadow to the MBR Shadow setting unit 34 or set the MBR Shadow function to be enabled / disabled To do.
- the MBRMBShadow setting unit 34 is not necessarily required when a program is written in the MBR Shadow storage unit 35 before shipment, or when the MBR Shadow function is always set to be enabled or disabled.
- the MBR Shadow function for setting on / off by the MBR Shadow setting unit 34 will be described.
- the program stored in the activation processing unit 12 attempts to read and execute a program for booting the device.
- the MBR Shadow setting unit 34 is set to OFF, the program stored in the MBR storage unit 8 of the data recording unit 6 is read as described above.
- the MBR Shadow function is set to ON in the MBR Shadow setting unit 34, even if an address within the range of the MBR storage unit 8 is specified for the drive unit 4 scale, the data recorded in the MBR storage unit 8 ( The data (Shadow program) stored in the MBR Shadow storage unit 35 is transmitted to the host unit 5 instead of the boot program. That is, when the MBR Shadow function is on, the program (Shadow program) stored in the MBR Shadow storage unit 35 is executed next to the program stored in the activation processing unit 12.
- the data recording apparatus 3 has a function in which the host unit 5 locks the data recording unit 6 and executes the program stored in the MBR Shadow storage unit 35 prior to an OS or an application operating on the OS. It is characterized in that authentication processing is performed with the service providing server 1 on a program, and the unlocking of the data recording unit 6 is controlled based on the authentication result.
- FIG. 3 is a flowchart showing the processing procedure of the Shadow program stored in the MBR Shadow storage unit 35.
- the processor starts executing the boot program stored in the boot processing unit 12 (step S1).
- the processor accesses a predetermined area of the drive unit 4 (for example, address LBA0, that is, an address where the program stored in the MBR is stored) according to the activation program, and reads the data (step S2).
- the drive unit that has received the read instruction for address LBA0 checks the setting of the MBR Shadow setting unit, and determines whether the MBR Shadow function is valid (step S3).
- This step corresponds to the shadow determination unit.
- the MBR Shadow function is valid, not the boot program (MBR) stored in the MBR storage unit 8 of the data recording unit 6 but the program stored in the MBR Shadow storage unit 35 (hereinafter referred to as the Shadow program). Is read and transmitted to the host unit 5 and stored in the activation processing unit 12 (step S4).
- This step S4 corresponds to the shadow reading unit.
- step S5 corresponds to the shadow execution unit.
- the authentication (server authentication) processing in step S5 is (1) a method in which the data recording device 3 authenticates whether the service providing server 1 is an expected communication partner, and (2) the data recording device 3 is expected.
- a well-known method such as ISO / IEC 9798-3 or ISO / IEC 9798-2 may be used.
- the data recording device 3 needs to hold the public key of the service providing server 1 or a certificate including the public key when using a public key authentication method.
- the data recording device 3 needs to hold a secret key.
- the data recording device 3 needs to hold both the public key of the service providing server 1 or both the certificate including the public key and the private key. Data necessary for the authentication is also stored in the MBR Shadow storage unit 35 in advance.
- step S6 it is determined whether or not the authentication with the service providing server 1 is successful. If the authentication fails, error processing is performed (step S7). If the authentication is successful, host authentication processing is performed (steps S8 to S15).
- the host authentication process it is first determined whether or not the OS storage unit 9 is locked (step S8). If the OS is locked, a password is transmitted from the host unit 5 to the drive unit 4 (step S9). .
- the password is data used for locking and unlocking the drive unit.
- the password is registered in advance in the host authentication unit 32 of the drive unit 4.
- a method of registration in the host authentication unit 32 a method of embedding at the time of manufacture, a method of setting an arbitrary value by a user using a program that operates on the processor of the host unit 5, and an operation on the processor of the host unit 5 There is a method to set the value distributed from the server via the network using the program to be executed.
- the password used by the host unit 5 to release the drive unit 4 may be included in, for example, the Shadow program in advance, or stored in an arbitrary area (for example, a flash memory) of the host unit 5 and the Shadow program stores the password. You may read from the area.
- step S10 it is determined whether or not the password transmitted from the host unit 5 matches the password registered in advance in the host authentication unit 32 (step S10). If they do not match, error processing is performed (step S7), and if they match, a lock release command is transmitted to the lock control unit 33. As a result, the OS storage unit 9 is unlocked (step S11).
- step S12 it is determined whether or not the user data storage unit 10 is locked (step S12), and if it is locked, a password is transmitted from the host unit 5 to the drive unit 4 (step S13).
- step S14 it is determined whether or not the password transmitted from the host unit 5 matches the password registered in advance in the host authentication unit 32 (step S14). If they do not match, error processing is performed (step S7), and if they match, a lock release command is transmitted to the lock control unit 33. As a result, the user data storage unit 10 is unlocked (step S15).
- Steps S9 and S13 described above correspond to the password transmission unit, and steps S10 and S14 correspond to the password verification unit.
- a password for determining whether to unlock the OS storage unit 9 and a password for determining whether to unlock the user data storage unit 10 are separately registered in the host unit 5.
- the processing in steps S8 to S15 may be continued, or after password registration for the OS storage unit 9 and unlock control are performed, the user data storage unit 10 Password registration and unlock control may be performed.
- step S12 If it is determined in step S12 that the user data storage unit 10 is not locked, or if the process in step S15 is completed, the processor reads the OS from the OS storage unit 9 (step S16) and starts the OS. (Step S17). This completes the activation process.
- the password transmitted from the host unit 5 to the drive unit 4 is distributed from the service providing server 1 only when the authentication with the service providing server 1 is successful, in addition to the method of embedding in the shadow program described above. It may come to be.
- the password be protected between the service providing server 1 and the data recording device 3 by using means such as encryption so that the password is not leaked.
- the drive unit 4 includes a plurality of OS storage units 9, a different password may be set for each area to be locked, and the OS to be unlocked may be switched by the service providing server 1.
- the first OS storage unit 9 and the second OS storage unit 9 are set as separate areas, and are set in a locked state at the time of startup.
- the authentication for unlocking is set so that a separate password is required for each. If the authentication with the first service providing server 1 is successful, the password of the first OS storage unit 9 is used to unlock the first OS storage unit 9 and the second OS storage unit 9 The lock is not released. Thereby, the OS for the first service providing server 1 can be executed.
- each area of the drive unit 4 is locked before the data recording device 3 is activated, and the data recorded in the data recording device 3 is not successfully authenticated by the service providing side with the data recording device 3. Is not disclosed to the outside, the service providing server 1 can secure an area for storing data safely outside.
- the unlock control of the user data storage unit 10 is performed after the unlock control of the OS storage unit 9, but the order is not particularly limited.
- the lock / unlock control of the OS storage unit 9 may be omitted. That is, without locking the OS storage unit 9, only the user data storage unit 10 is locked, and the user data storage unit 10 is stored when predetermined conditions such as authentication with the server 1 and password verification are satisfied. It may be unlocked.
- the Shadow program may check whether or not it matches the state assumed by the platform in advance.
- the platform is, for example, a MAC address, a CPU ID, an OS serial ID, and the like, and it may be checked whether these pieces of information are expected values.
- the MAC address, CPU ID, and OS serial ID of the data recording device 3 are Since they are different, it can be detected that the drive unit 4 has been removed. That is, for the service providing server 1, a system that can be activated only by a specific data recording device 3 can be constructed.
- the user data storage unit 10 of the drive unit 4 assigns different partitions to a plurality of users, the user data unlocked by the shadow program by the service providing server 1 or as a result of authentication with the service providing server 1 By switching the area in the storage unit 10, the library used by the OS or application stored in the user data storage unit 10 can be changed.
- the area where the library A is stored may be unlocked when the authentication with the service providing server 1 is successful, and the area where the library B is stored may be unlocked when the authentication fails. .
- the OS uses the unlocked area. This is particularly useful when the service provider desires to keep the program executed by the data recording device 3 secret.
- a typical example is a library used for copyright protection software (DRM software) used for protecting movie and moving image content.
- DRM software copyright protection software
- copyright protection software needs to conceal a key and algorithm for decrypting encrypted content in the software.
- the method of hiding such information to be concealed inside the software library is vulnerable to analysis.
- the area in which the library is stored is locked by a password such as a PIN code, and therefore the library stored in the locked area is taken out. I can't.
- the platform can also be checked at the time of authentication with the service providing server 1, so that the unlock process can be interrupted when it is determined that the platform is an unauthorized platform.
- the lock cannot be released on an unauthorized platform, so that unauthorized acquisition and unauthorized analysis of the library can be prevented.
- the entire or a part of the data recording unit 6 is canceled when the user directly inputs a password from the keyboard.
- the user does not directly input the password by performing authentication with the server 1, but the service is provided by the password included in the MBR ⁇ ⁇ ⁇ Shadow storage unit 35 or the network processing unit 22 after the authentication with the server 1 is successful.
- the difference is that the password given from the providing server 1 is used. Further, only when the authentication with the service providing server 1 is successful, it is possible to dynamically select which area to unlock.
- the authentication process with the server 1 and the unlocking process of the data recording unit 6 are performed using the Shadow program stored in the MBR Shadow storage unit 35.
- the first feature is performed at the time of startup.
- an attack at the application level that alters the processing of the OS or changes the behavior of the application by inserting an unauthorized program or inserting an unauthorized process in the memory after the OS has started
- the information stored in the data recording unit 6 is used to perform authentication processing with the server 1 and lock control of the data recording unit 6 before starting the MBR or OS. It can be protected more safely.
- the drive unit 4 and the host unit 5 of the data recording device 3 are generally supplied from different vendors. Since the conventional drive unit 4 did not include the MBR Shadow storage unit 35 or the access control unit 7, the host unit 5 had to have a function corresponding to the MBR Shadow storage unit 35. In such a case, if it is considered that only the drive unit 4 is taken out and put into another data recording device 3 to start, the host unit 5 of the replaced data recording device 3 is stored in the MBR Shadow storage unit 35. Unless the corresponding function is provided, the above-described security protection cannot be performed. Even if the host unit 5 of the other data recording device 3 has a function corresponding to the MBR Shadow storage unit 35, it is necessary to install the Shadow program in the host unit 5, which is complicated and unusable. Become.
- the MBR Shadow storage unit 35 is provided in the drive unit 4 independent of the host unit 5. As a result, even if the drive unit 4 is replaced with another data recording device 3, since the Shadow program is provided in the drive unit 4, the host unit 5 needs to have a function corresponding to the MBR Shadow storage unit 35. In addition, it is possible to relatively easily realize that the same shadow program as that of the original data recording device 3 can be continuously used in another data recording device 3.
- the data recording device 3 of the present embodiment has the following advantages for a set manufacturer who manufactures and sells a device (for example, a PC) incorporating the data recording device 3.
- a PC set maker purchases a drive unit 4 (for example, an HDD) from another company and incorporates it into a PC for sale. Since the lock / unlock method of the data recording unit 6 is not standardized, if there is no MBR Shadow function, a program for controlling the lock / unlock of the data recording unit 6 is installed in the host unit 5 depending on the type of HDD to be incorporated. There is a need to.
- the program that locks / unlocks the data recording unit 6 is installed in the MBR Shadow storage unit 35. Therefore, an appropriate Shadow program is installed in the MBR Shadow storage unit 35 by the HDD manufacturer. If it is sold, the PC manufacturer only uses it, so it can be incorporated into the PC without depending on the HDD manufacturer, and the manufacturing cost of the device can be reduced.
- the data recording device 3 of the present embodiment has the following advantages for the user side. For example, even when the drive unit 4 is extracted from a device (for example, a PC or a recorder) in which the data recording device 3 is incorporated and inserted into another device, the host unit 5 is provided because the drive unit 4 has the MBR Shadow function. The lock / unlock control of the data recording unit 6 can be performed without modification.
- a device for example, a PC or a recorder
- the MBR shadow program is started prior to starting the MBR or OS, and server authentication is performed in the shadow program.
- the password registered in the program and the password registered in advance in the host authentication unit 32 are collated, and when the collation is successful, the OS storage unit 9 and the user data storage unit 10 are unlocked using the password.
- the information in the data recording unit 6 can be protected more safely.
- a password for unlocking the data recording unit 6 is stored in a program (Shadow program) stored in the MBR Shadow storage unit 35.
- the host unit 5 of the second embodiment is stored in the secret information storage unit.
- FIG. 4 is a block diagram showing an example of the internal configuration of the data recording apparatus 3 according to the second embodiment. 4 is different from FIG. 2 in that the host unit 5 includes a secret information storage unit 15. Although omitted in FIG. 2, the host unit 5 is provided with a processor 26 and a main memory 27.
- FIG. 5 is a block diagram showing an example of the internal configuration of the secret information storage unit 15.
- the secret information storage unit 15 in FIG. 5 includes an ID management unit 41, a key management unit 42, an encryption processing unit 43, a decryption processing unit 44, a state management unit 45, and a command processing unit 46.
- the ID management unit 41 stores a unique ID in the secret information storage unit 15.
- the ID is preferably protected and stored so that it cannot be changed from a value determined at the time of shipment from the factory or a value generated first.
- the key management unit 42 has a function of generating a key inside the secret information storage unit 15 based on a command from the host unit 5 and a function of storing the generated key. Since the secret information storage unit 15 does not have an interface for outputting the secret key value to the outside, there is no possibility that the secret key value leaks out of the secret information storage unit 15.
- the state management unit 45 includes a register (not shown) for storing data.
- the register can be reset only at startup (when the power is turned on), and the initial value at the time of reset is a fixed constant value (for example, 0).
- the state management unit 45 updates the value of the register according to the following equation (1).
- NewValue hash (Input
- Hash is a hash function such as SHA family (SHA1, SHA256, etc.) or MD5.
- the expression (1) combines the data (OriginalValue) originally stored in the register and the input data (Input) as the input of the hash function, and stores the output value (NewValue) of the hash function as the new value of the register.
- the state management unit 45 may include a plurality of registers therein.
- a register number (Register #) indicating which register value is to be updated may be provided in the argument of the hash function as shown in the following equation (2).
- NewValue hash (Register #, Input
- the state management unit uses the register value corresponding to RegisterReg #, and updates the register value corresponding to Register # according to equation (1).
- Encrypt is a well-known common key encryption function such as AES or DES, which encrypts the value of the first argument using the second argument (RegisterValue) and the third argument (Key) as keys,
- the encryption result is output.
- the method using the second argument and the third argument as a key is a method combining the second argument and the third argument, or a method using the value obtained by encrypting the second argument by a function such as AES by the third argument as a key. Such a method may be used.
- the host unit 5 When encrypting data using the encryption processing unit 43, the host unit 5 gives two arguments, Input and Register #, to the command processing unit 46 of the secret information storage unit 15. If there is only one register, Register # is not necessary.
- Input is plaintext data to be encrypted
- Register # is the register number of the state management unit 45. That is, RegisterValue is the current value of the register corresponding to the register number specified by Register #. That is, the encryption processing unit 43 encrypts the input data by using the two values of the secret key possessed by the key management unit 42 and the register of the state management unit 45, so that the input data becomes the key management unit 42 and the state management unit 45. Will be bound to both registers.
- the input data is a password generated by the Shadow program, and the encryption processing unit 43 generates an encrypted password based on the equation (3).
- Decrypt is a decryption function corresponding to the encryption function used for encryption, and the value of the first argument is decrypted using the second and third arguments as keys, and the decryption result is an output (Output).
- the input value of the decryption processing unit 44 is an encrypted password, and the password before encryption is restored by the equation (4).
- the host unit 5 When decrypting data (encryption password) using the decryption processing unit 44, the host unit 5 sends two arguments, Input and Register #, to the command processing unit 46 of the secret information storage unit 15 in the same manner as the encryption processing. give. If there is only one register, Register # is not necessary.
- the input in equation (4) is an encrypted password to be decrypted
- Register # is a register number provided in the state management unit 45.
- RegisterValue is the current value of the register corresponding to the register number specified by Register #. That is, the encrypted password is decrypted using the two values of the secret key of the key management unit 42 and the register of the state management unit 45.
- FIG. 6 is a diagram showing an example of the internal configuration of the secret information storage unit 15a when the public key method is used. 5 is different from FIG. 5 in that a public key management unit 47 is provided and a secret key management unit 48 is provided instead of the key management unit 42.
- the public key management unit 47 includes a public key pair, and decrypts data (encrypted password) using a secret key stored in the public key management unit 47 based on a command from the host unit 5 or data It has a function to generate a signature for.
- a public key cryptosystem a well-known scheme such as RSA may be used.
- the secret key management unit 48 has a function of generating a secret key and a common key inside the secret information storage unit 15a based on a command from the host unit 5, and a function of storing the generated secret key.
- the secret information storage unit 15a has an interface for outputting the public key to the outside, and refers to the public key information from the Shadow program or other programs executed by the data recording device 3. You may be able to do it.
- the public key may be signed by a private key of a vendor that manufactured the secret information storage unit 15a, a manufacturing that implements the data recording device 3, or an organization that manages the secret information management unit in the industry. .
- the Key part of the encryption function Encrypt described above may be replaced with the public key held by the key management unit 42. Since the public key is used when encrypting the input value, the encryption process does not necessarily need to be executed by the secret information storage unit 15a, and the secret information storage unit 15a needs to include the encryption processing unit 43. Not necessarily.
- the encryption process of the input value is not performed in the secret information storage unit 15a, the encryption calculation may be performed by a program operating in the host unit 5 such as a shadow program.
- the key part of the decryption function Decrypt may be replaced with the secret key possessed by the key management unit 42.
- the input data can be protected by making the data (hash function input) input to the state management unit 45 a secret value known only by a program that issues a command for encryption processing or decryption processing.
- the secret value may be a key value that can be known only by a program that transmits a command, or may be arbitrary data on a memory.
- the program When the processor 26 executes the program, the program is expanded on the main memory 27. Therefore, for example, at a specific position A (or specific range A) of the main memory 27 when the program executes a specific instruction.
- the value eg, data A existing in the main memory 27 when step X is executed
- a malicious third party can program the data present in the main memory 27 when a specific program is executed in the order of Step A and Step B as the value of Input. If is modified, the correct Input value cannot be input to the Decrypt function, improving security performance.
- data obtained by connecting data existing in the main memory 27 when the specific program executes Step C and data existing in the main memory 27 when Step D is executed is stored in the register of the state management unit 45. You may remember. In this case, when step C is skipped or when steps D to C are executed in order, the value stored in the register of the state management unit 45 becomes a different value, so that correct encryption and decryption are performed. Can not be performed and unauthorized program modification can be prevented.
- the second embodiment differs from the first embodiment in that the secret information storage unit 15 (or 15a) is used when storing a password for authentication with the drive unit 4.
- the technical features of the processing procedure of the second embodiment are the password setting phase in which the password is protected and stored in the secret information storage unit 15, and the unlock phase in which the drive unit 4 is unlocked using the set password. Is to have one.
- FIG. 7 is a flowchart showing an example of the processing procedure of the password setting phase performed by the Shadow program. In the following, it is assumed that the MBR Shadow function is effective unless otherwise specified.
- the processor 26 executes a startup program (step S31), and reads a shadow program in this program (step S32).
- the Shadow program is a random number generator (not shown) (random numbers may be generated as software within the Shadow program, or if the secret information storage unit 15 includes a random number generator, the random number generator may be used) Is used to generate a password (step S33). This step S33 corresponds to the password generation unit.
- the Shadow program transmits the password generated in step S33 to the host authentication unit 32 of the drive unit 4 in order to use it for password verification as to whether or not to unlock the drive unit 4 (step S34).
- the host authentication unit 32 registers the transmitted password (step S35).
- step S36 each time the processor 26 executes a specific instruction of the shadow program (step S36), the processor 26 registers the value of the specific position or specific range of the main memory 27 where the shadow program is expanded in the register of the state management unit 45 (step S36). S37). Thereby, the value of the register of the state management unit 45 is updated (step S38).
- the Shadow program After updating the register value of the state management unit 45 at least once, the Shadow program transmits a plaintext password that has not yet been encrypted to the secret information storage unit 15 (step S39), and manages the key of the secret information storage unit 15 Encryption is performed by the encryption processing unit 43 using the secret key stored in the unit 42 and the register value of the state management unit 45 described above (step S40).
- encryption is performed according to the above-described equation (3).
- the encryption processing unit 43 or the Shadow program encrypts using the public key corresponding to the secret key stored in the key management unit 42.
- the encrypted password may be stored in the nonvolatile main memory 27 of the host unit 5 or the data recording unit 6 where the drive unit 4 is not locked.
- the Shadow program transmits a lock command to the drive unit 4 (step S41).
- the lock control unit 33 locks the data recording unit 6 (step S42). Thereafter, the data recording unit 6 is unlocked unless the registered password is transmitted.
- the password setting phase in FIG. 7 is actually divided into two: a password setting phase for the OS storage unit 9 and a password setting phase for the user data storage unit 10.
- the OS storage unit 9 and the user data storage unit 10 may be locked together, or either one (for example, the OS storage unit 9 After the password setting phase of) is locked and the OS storage unit 9 is locked, the user data storage unit 10 may be locked by performing the password setting phase of the other (for example, the user data storage unit 10).
- unlock phase will be described. Also in this unlock phase, the unlock phase of the OS storage unit 9 and the unlock phase of the user data storage unit 10 are performed separately. Hereinafter, one of the unlock phases will be described.
- FIG. 8 is a flowchart showing an example of an unlock phase processing procedure performed by the Shadow program.
- the procedure until the startup program reads the shadow program is the same as that in the first embodiment (steps S51 and S52).
- the Shadow program performs server authentication (step S53). Then, it is determined whether or not the server authentication is successful (step S54). If the server authentication fails, an error process is performed (step S55).
- a process (the same process as steps S36 to S37 in FIG. 7) is performed so as to be the same value as the value of the state management unit 45 set in the password setting phase (steps S56 and S57).
- the value of the state management unit 45 is updated (step S58).
- the encryption password can be transmitted to the secret information storage unit 15 (step S59), and the encryption password can be decrypted by the decryption processing unit 44 in the secret information storage unit 15 (step S60). If the decrypted password is a regular shadow program, it should be the same as the original password for generating the encrypted password in FIG.
- the Shadow program transmits the decrypted password to the drive unit 4 (step S61).
- the host authentication unit 33 of the drive unit 4 collates the transmitted password with a previously registered password. If the collation is successful, the lock control unit 33 unlocks the data recording unit 6 (step S62).
- the shadow program generates a password for unlocking, but the shadow program communicates with the server 1 on the Internet 2 and obtains the password from the server 1 via the network. May be. In this case, it is necessary to protect and transmit the password so that the password transmitted from the server 1 is not seen by a third party on the communication path between the server 1 and the data recording device 3.
- public key cryptography using the public key of the data recording device 3 may be used.
- the key management unit 42 when the key management unit 42 adopts the public key method, the key management unit 42 includes a public key pair, and the secret key stored in the key management unit 42 is obtained based on a command from the host unit 5. Use it to decrypt data and generate signatures on data.
- FIG. 9 is a flowchart showing an example of the processing procedure of the Shadow program when the password is obtained from the server 1.
- the processing until the startup program reads the Shadow program (steps S71 and S72) is the same as in FIG. 7, but thereafter, server authentication is executed (step S73).
- This authentication process is a client authentication process in which the server 1 authenticates the data recording device 3 using the certificate of the public key management unit 47. It is determined whether or not the authentication is successful by verifying the signature of the certificate (step S74), and if the server 1 determines that the data recording device 3 does not have the correct certificate, it is considered that the authentication has failed. Error processing is performed (step S75).
- the server 1 can determine that the data recording device 3 has the correct certificate, it is assumed that the authentication has succeeded, and the password is encrypted using the value of the public key included in the certificate and transmitted. On the other hand, if the authentication with the server 1 fails, the password is not transmitted.
- the Shadow program decrypts the password and transmits it to the host authentication unit 32 of the drive unit 4 (step S77). Thereafter, the same processing as in steps S36 to S42 is performed, and the data recording unit 6 is locked by the password (steps S79 to S85).
- the password value be different for each data recording device 3. This is because if the password of one data recording device 3 is leaked, other data recording devices 3 set with the same password can be unlocked. Therefore, if a password value is included in the Shadow program, it is necessary to set a different password for each data recording device 3 in the Shadow program.
- the server 1 issues the password.
- the shadow program having the same contents can be installed in all the data recording apparatuses 3, the installation work to the data recording apparatus 3 is facilitated, and the manufacturing cost can be reduced.
- the same program can be distributed when updating the Shadow program, reducing maintenance costs. Since the password is managed by the server 1, even if the MBRMBShadow storage unit 35 breaks down and the Shadow program is damaged or the Shadow program crashes for some reason, the password managed by the server 1 Is transmitted to the data recording device 3, so that the password can be easily recovered and the shadow program can be easily recovered.
- the state of the main memory 27 after execution of the specific instruction is stored in the register of the state management unit 45 and is used as a part of the password encryption key.
- the state of the main memory 27 after execution of the specific instruction is stored in the register of the state management unit 45 and is used as a part of the password encryption key.
- FIG. 10 and FIG. 11 are flowcharts showing an example of the processing procedure of the password setting phase performed by the Shadow program.
- FIG. 10 shows a procedure similar to that for acquiring a password managed by the server 1, acquires another value from the server 1, stores this value in the register of the state management unit 45, and stores the register of the state management unit 45.
- the processing procedure to update is shown.
- FIG. 11 shows a processing procedure for generating a password according to the procedure of FIG. 7 and storing the value acquired from the server 1 in the register of the status management unit 45 and updating the register of the status management unit 45.
- step S97 After acquiring a password from the server 1 and registering it in the host authentication unit 32 (step S97), another value is acquired from the server 1 (step S99), and the acquired value is stored in the state management unit 45. And the register of the state management unit 45 is updated (step S101).
- step S115 after generating a password using the Shadow program and registering it in the host authentication unit 32 (step S115), a value is acquired from the server 1 (step S116), and the acquired value is stored in the state management unit 45. And the register of the state management unit 45 is updated (step S118).
- FIG. 12 is a flowchart showing an example of the processing procedure of the unlock phase corresponding to the case where the value acquired from the server 1 is stored in the register of the state management unit 45.
- This processing procedure shows the processing procedure of the unlock phase corresponding to the password setting phase of FIG. 10 and FIG.
- step S133 server authentication is executed (step S133). If the server authentication is successful, a value is acquired from the server 1 (step S136), and the acquired value is transmitted to the secret information storage unit 15 (step S137). This value is stored in the register of the state management unit 45 of the secret information storage unit 15, and the register of the state management unit 45 is updated (step S138).
- step S109 the drive is unlocked using the decrypted password.
- the example in which the password value is encrypted and stored with the value sent from the server 1 and the secret key of the secret information storage unit 15 has been described.
- the password cannot be obtained simply by analyzing the Shadow program.
- a regular certificate and the secret key of the secret information storage unit 15 are used.
- the secret information storage unit 15 does not have an interface for outputting the secret key to the outside of the secret information storage unit 15. It is very difficult to illegally acquire a secret key, and therefore it is also very difficult to illegally acquire a password.
- the program (Shadow program) stored in the MBR Shadow storage unit 35 is embedded in advance by the device manufacturer when the device is shipped.
- the third embodiment described below is characterized in that the Shadow program is divided into a part incorporated at the time of device manufacture and a part downloaded from the server 1.
- FIG. 13 is a block diagram showing a schematic configuration of the data recording apparatus 3 in the third embodiment.
- the MBR Shadow storage unit 35 has an initial installation storage unit 35a and a download storage unit 35b, and the user data storage unit 10 of the data recording unit 6 is divided into a plurality of data areas 10a. 4 is different from FIG.
- the initial installation storage unit 35a is a processing unit that stores a program embedded in advance by the device manufacturer when the device is shipped.
- the download storage unit 35 b is a processing unit that stores a program downloaded from the server 1.
- the user data storage unit 10 can set a different password for each area to be locked. For example, user data related to privacy that is to be kept inside the data recording device 3 is denied access to the data area 1 until the authentication with the first service providing server 1 is completed. Setting data and management data related to the service to be stored are stored in the data area 2 and access to the second service providing server 1 is denied until the authentication with the second service providing server 1 is completed. It is assumed that the setting data and management data related to this are stored in the data area 3 respectively.
- the password setting phase will be described. It is set under what conditions the user data stored in the data area 1 is made public by the program stored in the initial installation storage unit 35a. As this condition, for example, it may be the same as the ID value stored in the ID management unit 41 of the secret information storage unit 15, or the authentication with the server 1 may be successful. As a means for confirming whether or not it matches the ID of the ID management unit 41, the ID value of the ID management unit 41 is set in the register of the state management unit 45, and in that state, the password is obtained using the encryption processing unit 43. Is encrypted.
- the ID value of the ID management unit 41 is set in a register in the program, and the decryption processing unit 44 decrypts the encrypted password as an input. Check whether it matches the value set in the register. In this way, if the password is encrypted and saved in advance, when the program stored in the initial installation storage unit 35a is executed, it is not the same value as the ID value of the ID management unit 41 used for encryption. Since the password cannot be correctly decrypted, the unlocking of the data area 1 can be prohibited.
- the ID value of the ID management unit 41 provided in the other data recording device 3 is originally the drive unit. 4 is set in the register of the state management unit 45 even if the program stored in the initial installation storage unit 35a is executed.
- the ID is another value, and even if the encrypted password is decrypted by the decryption processing unit 44 in that state, a correct value cannot be obtained. In this way, the drive unit 4 and the data recording device 3 can be associated with each other.
- a program stored in the download storage unit 35b sets under what conditions the data handled by the server 1 stored in the data area 2 is made public.
- the user may specify a condition, or the condition may be described in advance in the download program, and the server 1 may distribute the program so that the user cannot specify the condition.
- the download may be instructed by an instruction of the program stored in the initial installation storage unit 35a, or the application downloads the download program after the OS is started and downloads it. It may be stored in the storage unit 35b.
- FIG. 14 is a flowchart showing an example of the processing procedure of the unlock phase performed by the Shadow program.
- the processing in FIG. 14 is the same as that in FIG. 8 until the startup program reads the Shadow program (steps S151 and S152).
- the program stored in the initial installation storage unit 35a is executed (step S153).
- a condition check is performed as to whether or not the data area 1 may be unlocked (step S154).
- step S155 It is determined whether or not the condition is met. If the condition is not met, error processing is performed (step S156), and the data area 1 is not unlocked. If the condition is met, first, the OS storage unit 9 is unlocked (step S157), and then the data area 1 is unlocked (step S158).
- step S159 the program of the download storage unit 35b included in the Shadow program is executed (step S159).
- the program in the download storage unit 35b performs authentication processing with the server 1 (step S160).
- step S161 it is determined whether or not the server authentication is successful (step S161). If the server authentication fails, error processing is performed (step S156). If the server authentication is successful, the data area 2 is unlocked (step S162).
- the program stored in the initial installation storage unit 35a executes the last instruction, if the process stored in the register of the state management unit 45 is executed using the value on the main memory 27, the download storage unit 35b By checking the value of the register of the state management unit 45 at this time, the program can confirm whether or not the program stored in the initial installation storage unit 35a has been executed reliably.
- the processing procedure to which this confirmation processing is added is shown in FIG.
- step S171 to S178 the processing until the data area 1 is unlocked (steps S171 to S178) is the same as in FIG.
- the program stored in the initial installation storage unit 35a gives a specific value on the main memory 27 as an input to the state management unit 45 every time a specific step is executed. Thereby, the value of the register of the state management unit 45 is updated (steps S179, S180).
- step S181 the program in the download storage unit 35b is then executed (step S181).
- the program stored in the download storage unit 35b confirms the current value of the state management unit 45 (step S182).
- step S183 It is determined whether or not the current value of the state management unit 45 matches the expected value (step S183), and if not, error processing is performed (step S176). If they match, the program stored in the download storage unit 35b performs server authentication processing, and if the authentication is successful, the data area 2 is unlocked (steps S184 to S186).
- the program stored in the initial installation storage unit 35a is modified for the purpose of illegally decoding data, an expected value is not stored in the register of the state management unit 45. Therefore, the program stored in the download storage unit 35b can confirm whether the unauthorized program is not by checking the value of the register of the state management unit 45.
- the encryption processing unit 43 of the secret information storage unit 15 As a means for confirming whether or not the value of the state management unit 45 matches the expected value, in addition to the method of directly comparing the value of the state management unit 45, the encryption processing unit 43 of the secret information storage unit 15 There is also a method using the decoding processing unit 44.
- the program stored in the initial installation storage unit 35a and the program stored in the download storage unit 35b agree on the same value in advance, and the program stored in the initial installation storage unit 35a is stored in the secret information storage unit 15.
- the value is encrypted by the encryption processing unit 43. If the value of the state management unit 45 matches the expected value, if the program stored in the download storage unit 35b decrypts the value encrypted by the decryption processing unit 44 of the secret information storage unit 15, Pre-agreed values can be obtained. Otherwise, the value of the register of the state management unit 45 is different, so that the agreed value cannot be obtained.
- the Shadow program is divided into a part to be incorporated at the time of device manufacture and a part to be downloaded from the server 1, and the area of the user data storage unit 10 is divided locally.
- Different lock / unlock control can be performed on the data used and the data used by the server 1.
- the program stored in the download storage unit 35b Can be prohibited, and subsequent activation of the OS and unlocking of the user data storage unit 10 can also be prevented.
- the Shadow program itself stored in the MBR Shadow storage unit 35 sets a specific value on the main memory 27 in the state management unit 45 and confirms the current value. Until that time, it was confirmed that the program was executed correctly, and the value of the state management unit 45 was used to decrypt the password to be protected.
- the second and third points are that the processor 26 that executes the Shadow program has a function of setting a specific value on the main memory 27 in the state management unit 45. Different from the embodiment.
- FIG. 16 is a block diagram showing a schematic configuration of the data recording apparatus 3 in the fourth embodiment.
- the processor 26a of the program processing unit 11 in FIG. 16 is characterized in that it can execute a special instruction X and includes an encrypted data storage unit (not shown).
- the user data storage unit 10 is not necessarily provided in the data recording unit 6 and is not shown.
- the boot processing unit 12 may directly read and start the OS, so the MBR storage unit 8 is also omitted in FIG. Accordingly, the request data range confirmation unit 31, the host authentication unit 32, and the lock control unit 33 of the access control unit 7 are also omitted. The omitted parts may be provided without being omitted.
- FIG. 17 is a block diagram showing an example of the internal configuration of the processor 26a capable of executing the special instruction X.
- the processor 26 is provided in the first, second, and third embodiments, it is sufficient that a general-purpose instruction set is provided.
- the processor 26a of the present embodiment can execute the special instruction X and includes a register necessary for the special instruction X. More specifically, the processor 26a of FIG. 17 includes a general-purpose command processing unit 51, a special instruction processing unit 52, a main memory 27 range specifying register 53, an execution start address specifying register 54, a hash calculation processing unit 55, Have
- the general-purpose command processing unit 51 is a processing unit that processes general-purpose commands.
- the main memory 27 range designation register 53 is a register for designating the position from where to where the hash value on the main memory 27 should be calculated when the special instruction X is issued.
- the hash calculation processing unit 55 performs a process of calculating the hash value of the data in the main memory 27 range designated by the main memory 27 range designation register 53 when the special instruction X is issued.
- the execution start address specification register 54 instructs the general-purpose command processing unit 51 as to which instruction should be executed as the last process when the special instruction X is issued.
- the special instruction processing unit 52 calculates the hash value of the main memory 27 in the range specified by the main memory 27 range specifying register 53, sets the hash value in the processor state management unit 49, and the address specified by the execution start address specifying register 54
- the general-purpose command processing unit 51 executes a function stored in the command. That is, after the processor 26a executes the special instruction X, the processing is continued from the instruction stored at the address specified by the execution start address specification register 54.
- FIG. 18 is a block diagram showing an example of a schematic configuration of the secret information storage unit 15b according to the fourth embodiment.
- the secret information storage unit 15b in FIG. 18 has a configuration in which a processor state management unit 49 and a determination unit 50 are added to the secret information storage unit 15 in FIG.
- the processor state management unit 49 has a register (not shown) and has a function of setting a designated value in this register.
- the determination unit 50 performs control to set a specified value in the register of the processor state management unit 49 only based on an instruction from the processor 26a.
- the state management unit 45 shown in FIG. 5 and FIG. 6 can set a value designated by the program without using the special instruction X in the register of the state management unit 45, whereas the processor state management unit 49 Is different in that an error is returned when a setting command is received from a program without using the special command X.
- an encrypted data storage unit for storing encrypted data may be provided, but it is not essential and is omitted in FIG.
- a process of installing a secret key for authenticating with the server 1 in the data recording apparatus 3 is performed prior to the process of authenticating with the server 1.
- a process of installing a secret key for authenticating with the server 1 in the data recording apparatus 3 is performed.
- a public key method may be adopted or a shared key may be adopted.
- FIG. 19A is a flowchart showing an example of the processing procedure of the authentication private key setting phase when the public key method is adopted
- FIG. 19B is the setting of the authentication private key when the common key method is adopted. It is a flowchart which shows an example of the process procedure of a phase.
- Encrypt is the same as the function shown in the second embodiment. That is, the value of the first argument is encrypted using the second and third arguments as keys, and the encrypted result is output.
- the key value stored in the key management unit 42 of the secret information storage unit 15 is used as the key.
- the secret key for authentication is encrypted with the public key corresponding to the secret key of the key management unit 42 of the secret information storage unit 15.
- the private key for authentication may be obtained from the data recording device 3 via the network and may be encrypted when the data recording device 3 is manufactured.
- the private key for authentication may be obtained from the server 1 on the network.
- the data recording apparatus 3 When the data recording apparatus 3 is distributed and installed, it may be encrypted with the public key of the key management unit 42 by a program in the data recording apparatus 3 and the encrypted authentication key may be stored.
- step S203 the secret key of the data recording device 3 is acquired.
- step S204 the secret key is encrypted.
- the above-described authentication secret key encryption process is performed on the server 1. May be performed at the time of manufacture of the data recording device 3, or may be performed at the time of manufacture of the data recording device 3, or the authentication private key is distributed from the server 1 over the network and installed in the data recording device 3
- the encrypted authentication key may be stored by encrypting with the secret key of the key management unit 42 using the above program.
- FIG. 20 is a flowchart showing an example of the processing procedure of the Shadow program in the fourth embodiment.
- the program when a program is executed, the program is expanded on the main memory 27, and the processor 26a executes the program on the main memory 27.
- the Shadow program is expanded on the main memory 27 and executed by the processor 26a (step S211).
- the process up to development on the main memory 27 may be performed by the activation program stored in the activation program storage unit 21. This startup program loads and executes the Shadow program.
- the Shadow program indicates the address and range of the main memory 27 in order to instruct where the hash value of the program information developed on the main memory 27 should be calculated when the special instruction X of the processor 26a is issued.
- the range set by the shadow program is set to be the program portion of the shadow program expanded on the main memory 27, or the program portion and the data portion.
- the program start address is set to a position included in the address range used for the hash value calculation.
- an address is set in the execution start address designation register 54 in order to designate an address of a program to be executed after the processor 26a executes the special instruction X.
- the Shadow program issues a special instruction X to the processor 26a (step S213).
- the processor 26a executes the special instruction X.
- the processor 26a refers to the value set in the specific register, calculates the hash value in the range of the main memory 27 pointed to by the value (step S214), and calculates the calculated hash A command for instructing to store the value in the processor state management unit 49 of the secret information storage unit 15 is issued (step S215).
- the calculation of the hash value and the command issuance processing are performed not by the program but by the processor 26a itself.
- the secret information storage unit 15 determines whether the received command is from the processor 26a or from a program executed by the processor 26a (step S216), and accepts only from the processor 26a, and from the program executed by the processor 26a. If so, it refuses and returns an error (step S217).
- a hash value is set in the processor state management unit 49 (step S218).
- the processor 26 a processes the instruction existing at the address specified by the execution start address specification register 54 by the general-purpose command processing unit 51.
- the code portion of the Shadow program is specified at this address, and the Shadow program processing continues.
- the Shadow program sends a command to the secret information storage unit 15 to decrypt the data stored in the server authentication encryption secret key (step S219).
- the secret information storage unit 15 decrypts the encrypted secret key according to the following equation (6) (step S220).
- Output Decrypt (Input, RegisterValue, Key) (6)
- Decrypt is the same as the function shown in the second embodiment. That is, the value of the first argument is decrypted using the second and third arguments as keys, and the decryption result is output.
- Input is an encryption server authentication private key
- RegisterValue is a value of the processor state management unit 49 as an input value.
- the output value (Output) is the value of the private key for plaintext server authentication.
- authentication processing is performed with the server 1 using the value of the plaintext server authentication private key (step S221).
- the processing procedure is the same as that described in the first to third embodiments. Good.
- RegisterValue is a value of the processor state management unit 49, that is, a value that can be set only by the processor 26a.
- the processor 26a is realized by hardware. Since it is very difficult to modify hardware, it is also difficult to attack the processor state management unit 49 so as to store a value other than the hash value of the Shadow program.
- the authentication secret key for the plaintext server 1 cannot be acquired unless the hash value of the Shadow program stored in the secret information storage unit 15 is a valid value. As a result, it can be ensured that only the Shadow program can decrypt the plaintext server 1 authentication private key, so that the password can be safely protected. Also, since the plaintext server authentication private key can be distributed independently of the Shadow program, there is no need to update the Shadow program even when the server authentication private key is updated.
- the configuration in which the drive unit 4 does not include the data recording unit 6 has been described so far in order to simplify the description.
- the present embodiment can also be applied to the case where the drive unit 4 has a data recording unit 6 and protects a password used for unlock control of the data recording unit 6 instead of protecting the server authentication private key.
- FIG. 21 is a block diagram showing an example of a schematic configuration of the data recording device 3 in the fourth embodiment capable of protecting a password for unlock control.
- the data recording device 3 in FIG. 21 has the internal configurations of the access control unit 7 and the data recording unit 6 in FIG. 16 similar to those in FIG. 4. Only the processor 26a is provided.
- the shadow program and the encryption password for unlocking the data recording unit 6 are installed in the same procedure as the procedure for installing the Shadow program and the server authentication encryption private key in the data recording device 3 in the process of FIG. Good.
- the password obtained by decrypting the encrypted password is used to unlock the data recording unit 6, and this password is made to match the password value stored in the host authentication unit 32 of the access control unit 7.
- the installation process of the encryption password may be performed at the time of manufacturing the data recording device 3, or the encryption password is included in the shadow program of the data recording device 3 at the time of manufacturing the data recording device 3, and is stored in the MBRowShadow setting unit 34. It may be installed, or a password is generated on the server 1 side of the Internet 2, the password is transmitted to the data recording device 3 via the Internet 2, and the shadow program of the data recording device 3 receives the password according to the above formula.
- the data may be encrypted and stored in an encrypted data storage unit (not shown), or a shadow program including an encrypted password is generated and the shadow program is transmitted to the data recording device 3 via the Internet 2 and the data recording device 3 may be installed in the MBR Shadow setting unit 34.
- FIG. 22 is a flowchart showing an example of an unlock phase processing procedure performed by the Shadow program in the fourth embodiment.
- the server authentication secret key is the protection target and decrypted using the value of the processor state management unit 49
- the password for unlocking the data recording unit 6 is the protection target.
- the overall processing flow is the same as that of FIG.
- step S240 the encrypted password is decrypted to generate a plain text password.
- authentication with the server 1 is performed (step S241), and when authentication with the server 1 is successful, the value of the plaintext password is transmitted to the drive unit 4, and the lock control unit 33 unlocks the data recording unit 6 ( Step S242).
- the processing in step S242 may be performed according to the procedure described in the first to third embodiments.
- the plaintext password can be acquired only by a specific Shadow program, and the password can be safely protected.
- the server 26a executes the special command X to authenticate the server. Private key and encrypted password for unlock control of data recording unit 6 can be generated, so that the encryption process can be performed more securely and illegally than when the private key or password is encrypted by the Shadow program itself. The possibility of deciphering the mechanism of conversion is reduced.
- the Shadow program is in an unencrypted plaintext state, or a key for decrypting the Shadow program is included in the Shadow program even if it is encrypted.
- the Shadow program itself is encrypted in advance, and the encrypted Shadow program and the key for decrypting the encrypted Shadow program are distributed separately. There are features.
- the schematic configuration of the data recording apparatus 3 according to the fifth embodiment is the same as that shown in FIG.
- the process of installing the encryption program key and the Shadow program in the data recording device 3 is performed prior to the process of unlocking the data recording unit 6 using the Shadow program and the password.
- To perform this installation process first create a Shadow program and a plaintext password.
- FIG. 23 is a diagram showing an example of the structure of the Shadow program in the fifth embodiment.
- the Shadow program is composed of a plaintext code portion 71, an encrypted code portion 72, and a data portion 73.
- the plaintext code portion 71 includes at least a portion (entry point 74) executed at the beginning of the Shadow program.
- the encrypted code portion 72 is a portion that is executed next to the plaintext code portion 71. This part is encrypted by a program key described later.
- the data part 73 is a part in which data held by the Shadow program is stored.
- the program key is a key for encrypting the encryption code portion 72 and is prepared separately from the Shadow program.
- This program key (ProgramKey) is encrypted according to the following equation (7) using a hash value (HashValue) of a program including at least the encryption code portion 72.
- Output Encrypt (Program Key, HashValue, Key) (7)
- Encrypt is the same as the function shown in the second embodiment. That is, the value of the first argument is encrypted using the second and third arguments as keys, and the encrypted result is output.
- the key value stored in the key management unit 42 of the secret information storage unit 15 is used as the key.
- the program key is encrypted with the public key corresponding to the secret key of the key management unit 42 of the secret information storage unit 15, and the server 1 uses the public key as the data recording device.
- the program key may be acquired from the network 3 through the network, or may be encrypted when the data recording device 3 is manufactured.
- the program key is distributed from the server 1 over the network and installed by the data recording device 3.
- the encrypted program key may be stored by encrypting with the public key of the key management unit 42 using a program in the data recording device 3.
- the common key method when the value stored in the key management unit 42 of the secret information storage unit 15 is also managed on the server 1 side, the above-described program key encryption processing is performed on the server 1 side. May be performed at the time of manufacture of the data recording device 3, or the program key is distributed over the network from the server 1 and managed by the program in the data recording device 3 when the data recording device 3 is installed.
- the encrypted program key may be stored by encrypting with the program key of the unit 42.
- FIG. 24 is a flowchart illustrating an example of a decoding processing procedure performed by the Shadow program according to the fifth embodiment.
- the processor 26a executes a startup program stored in the startup program storage unit 21, and reads a shadow program from this startup program.
- the portion to be executed first in the Shadow program is the plaintext code entry point 74 (usually the first address of the plaintext code) (step S251).
- the Shadow program sets an address and a range in the main memory 27 range designation register 53 of the processor 26a in order to instruct where to calculate the hash value from when the special instruction X of the processor 26a is issued. (Step S252).
- the range of the main memory 27 includes at least the encryption code portion 72, and the contents of the main memory 27 must match the contents used when encrypting the program key described above.
- the Shadow program issues a special instruction X to the processor 26a.
- the processor 26a executes the special instruction X by the same method as shown in the fourth embodiment (step S253).
- the hash value is stored in the processor state management unit 49 in the same procedure as steps S194 to S198 in FIG. 22 (steps S254 to S258).
- the Shadow program sends a command to the secret information storage unit 15 to decrypt the encrypted program key (step S259). It is assumed that the encryption program key is stored in advance in an encrypted data storage unit (not shown) of the host unit 5, is included in the Shadow program, or is acquired from the server.
- the secret information storage unit 15 decrypts the data according to the following equation (8) (step S260).
- Output Decrypt (Input, RegisterValue, Key) (8)
- Decrypt is the same as the function shown in the second embodiment. That is, the value of the first argument is decrypted using the second and third arguments as keys, and the decryption result is output.
- Input is an encryption program key
- the value of the processor state management unit 49 is an input value for RegisterValue.
- the output value (Output) becomes the value of the plaintext program key.
- the Shadow program uses the plaintext program key to decrypt the encrypted code part (step s261). Then, the instruction included in the plaintext encryption code portion is executed.
- server authentication is performed in the shadow program of the encryption code portion, and if the data recording unit 6 of the drive unit 4 is locked, unlock processing is performed.
- secret data such as a secret key for server authentication and a password for unlocking the data recording unit 6 in the Shadow program
- (1) a method in which secret data is embedded in an encryption code in advance
- (2 ) A key for decrypting secret data is embedded in the encryption code, and the secret data is encrypted and embedded in the data portion 73.
- the Shadow program and the program key used for decrypting the Shadow program are separately encrypted and stored. While stored in the MBR Shadow storage unit 35, the Shadow program is encrypted. Therefore, even if an attacker obtains the Shadow program as a file or image data, it is difficult to analyze because it is encrypted.
- the program key for decrypting the encrypted shadow program becomes plain text only when the shadow program is executed, and the decryption of the program key is not easy.
- other data such as secret data for server authentication and a password for unlocking the data recording unit 6 are safely included in the Shadow program. be able to.
- the shadow program and the program key are stored in the MBR Shadow storage unit 35 in an encrypted state, if the shadow program and the program key encrypted in advance by the server 1 are generated, the server 1 and the data recording device 3 There is no need to worry about leaks in the communication path. For this reason, it is possible to safely and easily perform the work of updating and distributing the Shadow program and the program key on the server 1 side.
- a program key is a key used to decrypt a program.
- the password is a value used for unlocking the drive unit 4.
- the server authentication secret key is a key used for authentication with the server.
- the secret key of the key management unit 42 is a value stored in the key management unit 42 and used by the secret information storage unit 15b to encrypt / decrypt input data.
- next-generation power grids (smart grids) have been built to stabilize power quality when using renewable energy such as solar and wind power.
- FIG. 25 is a block diagram showing an example of a schematic configuration of a next-generation power network.
- a smart meter (SM) 61 that aggregates power usage and a home server (Home Energy Management System, HEMS) 62 that manages home appliances are installed in each home.
- HEMS Home Energy Management System
- BEMS Building Energy Management System
- the SM 61 is grouped into units by a repeater called a concentrator 64 and communicates with a meter data management system (Meter Data Management System, MDMS) 65 via a communication network.
- MDMS meter Data Management System
- An energy management system (Energy Management System, EMS) 66 is used for the SM 61 and the home server 62 of each home based on the power consumption of a plurality of homes gathered in the MDMS 65 or information from sensors installed in the power grid. Power control, such as requesting to suppress power usage.
- the EMS 66 includes a distributed power source 68 such as solar power generation and wind power generation connected to a remote terminal unit (Remote Terminal Unit), a power storage device 69 connected to the RTU 67, and a power generation side connected to the RTU 67.
- the power transmission / distribution control device 70 that controls the interval between the grids is controlled, and control for stabilizing the voltage and frequency of the entire grid is performed.
- the MDMS 65 and the concentrator 64, the BEMS 63 and the EMS 66, the EMS 66 and the HEMS 62 are connected via the network 71, and the program operating on the smart meter 61 may store secret information such as privacy information.
- the data recording device 3 is installed in the smart meter 61, and the service providing server 1 is installed in the MDMS 65, so that the information providing system according to each of the above embodiments is a next-generation power network. Can also be applied.
- the Shadow program can be easily distributed via the server 1, so that a part of the program that operates on the smart meter 61 is configured as a Shadow program to modify the program. Etc. can be surely prevented, and the program can be updated safely.
- the information recording apparatus described in the above-described embodiment may be configured by hardware or software.
- a program for realizing at least a part of the functions of the information processing apparatus may be stored in a recording medium such as a flexible disk or a CD-ROM, and read and executed by a computer.
- the recording medium is not limited to a portable medium such as a magnetic disk or an optical disk, but may be a fixed recording medium such as a hard disk device or a main memory 27.
- a program that realizes at least a part of the functions of the information recording apparatus may be distributed via a communication line (including wireless communication) such as the Internet. Further, the program may be distributed in a state where the program is encrypted, modulated or compressed, and stored in a recording medium via a wired line such as the Internet or a wireless line.
- a communication line including wireless communication
- the program may be distributed in a state where the program is encrypted, modulated or compressed, and stored in a recording medium via a wired line such as the Internet or a wireless line.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Storage Device Security (AREA)
Abstract
[課題]デジタル情報の不正利用を確実に防止し、ユーザの使い勝手を損なわずに、デジタル情報の著作権保護を図りつつデジタル情報を有効利用とする。 [解決手段]データ記録装置は、ドライブ部4とホスト部5を備え、MBRやOSの起動に先立って、MBRのshadowプログラムを起動させ、このshadowプログラムの中で、サーバ認証を行い、サーバ認証に成功した場合には、Shadowプログラムに登録されたパスワードとホスト認証部32に予め登録されたパスワードとの照合を行って、照合に成功すると、そのパスワードを使ってOS格納部9とユーザデータ格納部10のアンロックを行うため、データ記録部6内の情報をより安全に保護できる。
Description
本開示は、ネットワークサービスや著作権保護の必要なコンテンツ等を保存する情報記録装置に関する。
近年、HDD(ハードディスクドライブ)やSSD(Solid State Drive)などのストレージデバイスそのものに暗号化機能を持たせ、ストレージデバイスに蓄積するデータを暗号化して保存する手法や、PINコード(パスワード)をストレージデバイスに登録しておき、正しいPINコードを入力した場合のみストレージデバイスへのアクセスを許可する手法など、種々の提案がなされている(例えば、非特許文献1参照)。
一方、従来のPCシステムでは、コンテンツ配信用のアプリケーションをサービス事業者あるいはサービスごとにインストールし、そのアプリケーションの中に秘密情報を含ませておくか、あるいは秘密情報を格納するためのアルゴリズムを含ませて秘密情報は暗号化してファイルとして保存するといった手法が一般的である(例えば、特許文献1)。
TCG Storage Architecture Core Specification、http://www.trustedcomputinggroup.org/developers/storage/specifications
しかしながら、ソフトウェアはCPUで実行可能な形式でなければならないため、1ステップずつ命令を解析していけば秘密情報を取得できてしまう。
また、従来の種々の電子機器では、機器の性能上の制約から、サービス固有のアプリケーションをユーザが追加でインストールできるようにすることは一般的には難しい。そこで、電子機器の工場出荷後に、追加的にサービス事業者のサービスに対応した機器とするために、サービスプロバイダに依存せずに電子機器のプラットホームとしてサービス事業者の情報を適切に保護する仕組みを備えていることが望ましい。もちろんPCシステムにおいても、サービス事業者やサービスに関わらず、共通で適用可能なプラットホームを利用できれば、電子機器を安価に製造することができる。
本発明の一観点は、デジタル情報の不正利用を確実に防止し、ユーザの使い勝手を損なわずに、デジタル情報の著作権保護を図りつつデジタル情報を有効利用可能な情報記録装置を提供することにある。
本発明の一態様では、デジタルコンテンツを含むデジタル情報を記録するドライブ部と、
前記ドライブ部に対するデジタル情報の記録および読み出しを制御するホスト部と、を備え、
前記ホスト部は、
サーバとの通信を行うネットワーク処理部と、
ブートプログラムに先だって実行されるシャドウ・ブートプログラムの実行が可能か否かを判定するシャドウ判定部と、
前記シャドウ判定部により実行可能と判定された場合に、前記ドライブ部から前記シャドウ・ブートプログラムを読み込むシャドウ読み込み部と、
前記シャドウ・ブートプログラムを実行するシャドウ実行部と、
前記シャドウ・ブートプログラムの処理手順に従って、前記サーバとの認証を行うサーバ認証部と、
前記サーバとの認証に成功した場合に、前記ドライブ部に前記ドライブ部のアンロックに使用するパスワードを送信するパスワード送信部と、を備え、
前記ドライブ部は、
前記シャドウ・ブートプログラムを格納するシャドウ・ブートプログラム格納部と、
前期ブートプログラムを格納するブートプログラム格納部と、
任意のデジタルデータを含むユーザデータを格納するユーザデータ格納部と、
前記ホスト部から送信されたパスワードが予め登録されたパスワードと一致するか否かを判定するパスワード照合部と、
前記パスワード照合部にて一致すると判定されると、前記ユーザデータ格納部のロックを解除してアクセスを許可するロック制御部と、を備えることを特徴とする情報記録装置が提供される。
前記ドライブ部に対するデジタル情報の記録および読み出しを制御するホスト部と、を備え、
前記ホスト部は、
サーバとの通信を行うネットワーク処理部と、
ブートプログラムに先だって実行されるシャドウ・ブートプログラムの実行が可能か否かを判定するシャドウ判定部と、
前記シャドウ判定部により実行可能と判定された場合に、前記ドライブ部から前記シャドウ・ブートプログラムを読み込むシャドウ読み込み部と、
前記シャドウ・ブートプログラムを実行するシャドウ実行部と、
前記シャドウ・ブートプログラムの処理手順に従って、前記サーバとの認証を行うサーバ認証部と、
前記サーバとの認証に成功した場合に、前記ドライブ部に前記ドライブ部のアンロックに使用するパスワードを送信するパスワード送信部と、を備え、
前記ドライブ部は、
前記シャドウ・ブートプログラムを格納するシャドウ・ブートプログラム格納部と、
前期ブートプログラムを格納するブートプログラム格納部と、
任意のデジタルデータを含むユーザデータを格納するユーザデータ格納部と、
前記ホスト部から送信されたパスワードが予め登録されたパスワードと一致するか否かを判定するパスワード照合部と、
前記パスワード照合部にて一致すると判定されると、前記ユーザデータ格納部のロックを解除してアクセスを許可するロック制御部と、を備えることを特徴とする情報記録装置が提供される。
本発明の一観点によれば、デジタル情報の不正利用を確実に防止でき、ユーザの使い勝手も損なうことなく、デジタル情報の著作権保護を図りつつ、デジタル情報の有効活用を図ることができる。
以下、図面を参照しながら、本発明の実施形態について詳細に説明する。
(第1の実施形態)
以下、図面を参照しながら、本発明による情報記録装置の一実施形態を説明する。
以下、図面を参照しながら、本発明による情報記録装置の一実施形態を説明する。
図1は本発明に係る情報処理システムの第1の実施形態の全体構成を示すブロック図である。図1の情報処理システムは、サーバ1(例えばサービス提供サーバA,B)からインターネット2を介してデジタル情報の受信および蓄積が可能なデータ記録装置3を備えている。なお、図1において、インターネット2に接続されたデータ記録装置3およびサーバ1は、不図示のルータ機器等に接続されていてもよい。
データ記録装置3とサーバ1は、物理レイヤおよびリンクレイヤとして、IEEE802.11に準拠した無線LAN、イーサネット(登録商標)などの種々の形態を採用可能である。ネットワークレイヤとして、インターネット2プロトコル(IP)を使用する場合は、IPv4でもよいし、IPv6でもよい。
ここで、デジタル情報とは、例えばMPEG2やMPEG4のような動画データや、MP3のような音声データ、またはテキストデータや画像データ等のデジタル化されたコンテンツを指し、ユーザの所有するクレジットカードの番号などの個人情報を含んでもよい。
本実施の形態によるデータ記録装置3は、主としてドライブ部4とホスト部5を備える。ドライブ部4はハードディスクドライブ(HDD)やソリッドステートドライブ(SSD)のようなデジタル情報を記録する装置を想定しており、その内部にはデータ記録部6とアクセス制御部7が設けられる。一方、ホスト部5は、不図示のCPUやメモリ、通信インターフェースなどデータを処理する機能と、サービス提供サーバ1と通信する機能を持つ。なお、ホスト部5はIDEやSCSI、USBなどのバスインターフェースによってドライブ部4と接続されている。
データ記録部6は、OSや、動画データなどのAVデータ、ユーザの生成したデータ、サービス提供サーバ1から受信したデータなどのデジタル情報を格納する処理を行う。ホスト部5、より正確にはホスト部5で処理されるOSはそれらのデータとそのデータが格納されたアドレスを管理する。
ホスト部5がデータ記録部6からデータを読み込む際にはデータ記録部6のアドレス(Logical Block Address)を指定し、データ記録部6は指定されたアドレス(LBA)の領域に格納されたデータをホスト部5に送信する。データ記録部6はホスト部5から複数の独立した領域(パーティション)として見えるように論理的に分割されていてもよい。
図1の例では、データ記録部6は、MBR格納部8、OS格納部9、ユーザデータ格納部10に分割して構成されている。MBR格納部8はMBR(Master Boot Record)とよばれる起動時に実行されるプログラム(ブートプログラム)が格納される領域である。OS格納部9とはOSを格納する処理部である。ユーザデータ格納部10とは、AVデータやユーザの生成したデータ、サービス提供サーバ1から受信したデータなど(ユーザデータ)を格納し、管理する処理部である。ユーザデータとは、ユーザが所有するデータであればどのようなデジタルデータであってもよく、たとえば、テキストファイルや動画データ・画像データなどを指す。ユーザデータは、ユーザによってキーボードやマイクを使って入力されたデータでも良く、ユーザによってデジタルカメラやカムコーダーで撮影(作成)されたプライベートなデータであっても良く、コンテンツプロバイダ等が作成してユーザが(有償・無償に関わらず)購入したような商用データであっても良く、友人や家族から受領したようなデータであっても良い。OS格納部9とユーザデータ格納部10はこの実施形態では別領域として設定しているが、一つの領域にまとめてもよい。
ホスト部5は、プログラム処理部11と起動処理部12を備える。プログラム処理部11は起動処理やOSの処理などを処理する。起動処理部12は起動時にMBRをロードするために実行されるプログラムを格納しており、このプログラムの格納には、BIOSや機器に内蔵されたフラッシュメモリなどの汎用の記憶装置を用いることができる。
データ記録装置3が起動する際、まずプロセッサは、起動処理部12に格納されたプログラムを実行する。このプログラムではシステムの初期化処理などを行い、次にMBR格納部8に格納されているブートプログラムを読み込んで実行する。言いかえると、データ記録部6に記録されているプログラムのうち最初に実行されるものがブートプログラムである。ブートプログラムはデータ記録部6の領域がどのように設定されているかなどをチェックした後、OS格納部9に格納されているOSがホスト部5に読み込まれて実行される。OSはサービス提供サーバ1と通信するためのアプリケーションなどを実行する。
ここで、ドライブ部4のアクセス制御部7は、ホスト部5からデータ記録部6にアクセスしてよいかどうか判定処理を行う。ホスト部5からデータ読み込み要求があった場合に拒絶するリードロック、データ書き込み要求があった場合に拒絶するライトロック、またはその両方を判定する機能を持つ。リードは許可するがライトは不許可といったようにリードロックとライトロックはそれぞれ独立して設定可能である。またリードロックとライトロックの設定と制御はパーティションごとに行えるようにしてもよい。リードロックとライトロックの設定手法およびロックの解除手法については後述する。
図2は図1のデータ記録装置3の内部構成の一例を示すブロック図である。以下、図2を用いて、ホスト部5の詳細構成を説明する。ホスト部5は、上述したプログラム処理部11と起動処理部12の他に、ドライブ部4と通信を行うための通信処理部13を有する。起動処理部12は、ブートプログラムをロードするために実行されるプログラムを格納する起動プログラム格納部21を有する。
プログラム処理部11は、ネットワーク処理部22と、サーバ認証処理部23と、MBR Shadow書き込み部24と、データ管理部25とを有する。ネットワーク処理部22は、サービス提供サーバ1と通信を行うための物理レイヤ処理、データリンクレイヤ処理、ネットワークレイヤ処理、トランスポートレイヤ処理を行う。サーバ認証処理はサービス提供サーバ1との認証処理を行う。
MBR Shadow書き込み部24はドライブ部4のMBR Shadow格納部に後述するShadowプログラム(シャドウ・ブートプログラム)を書き込む処理を行う。データ管理部25はOS格納部9やユーザデータ格納部10に対するデータの読み込みや書き込み処理を行う。通信処理部13はドライブ部4との通信処理を行う。具体的には、通信処理部13は、ドライブ部4の内部の通信処理部14と各種情報の送受を行う。
次にドライブ部4の詳細構成を説明する。ドライブ部4のアクセス制御部7は、要求データ範囲確認部31と、ホスト認証部32と、ロック制御部33と、MBR Shadow設定部34とを有する。MBR Shadow設定部34には、MBR Shadow格納部35が接続されている。
ホスト部5からアドレス指定にてドライブ部4に対してデータの読み込みや書き込み要求があった場合、要求データ範囲確認部31はそのアドレスに対応する部分がリードロックされているか、あるいはライトロックされているかを判定し、もしロックがかかっている状態であればエラーを返してデータ記録部6へのアクセスを行わない。アンロックの状態(ロックされていない状態)であれば、ホスト部5がそのアドレスに対応したデータにアクセスすることを許可する。ホスト認証部32は通信処理部13を介してホストと認証処理を行う。ロック制御部33は、データ記録部6に対するロックの設定を制御する。すなわち、ホスト認証処理部の認証結果を確認し、認証に成功している場合に限りロックを解除したりロックを設定したりする。MBR Shadow設定部34はMBR Shadow格納部35にプログラム(シャドウ・プログラム)を設定したり、MBR Shadow機能が有効かどうかを管理したりする処理を行う。処理手順としては、ホスト認証処理部の認証結果を確認し、認証に成功している場合に限りMBR Shadow設定部34に対してMBR Shadowにプログラムを書き込んだり、MBR Shadow機能の有効・無効を設定したりする。
なお、MBR Shadow格納部35に予めプログラムを書き込んで出荷したり、MBR Shadow機能を常に有効あるいは無効の設定で出荷したりする場合はMBR Shadow設定部34は必ずしも必要ではない。
次に、MBR Shadow設定部34でオン・オフを設定するMBR Shadow機能について説明する。前述のとおりデータ記録装置3が起動する際、起動処理部12に格納されたプログラムは、機器をブートさせるためのプログラムを読み込み実行しようとする。MBR Shadow設定部34にMBR Shadow機能のオフが設定されている場合、前述のとおりデータ記録部6のMBR格納部8に格納されたプログラムが読み出される。一方、MBR Shadow設定部34にMBR Shadow機能のオンが設定されている場合、ドライブ部4はかりにMBR格納部8の範囲にあるアドレスを指定したとしても、MBR格納部8に記録されたデータ(ブートプログラム)ではなく、MBR Shadow格納部35に格納されたデータ(Shadowプログラム)をホスト部5に送信する。すなわち、MBR Shadow機能がオンの場合、MBR Shadow格納部35に格納されたプログラム(Shadowプログラム)が起動処理部12に格納されたプログラムの次に実行されることになる。
本実施形態のデータ記録装置3は、ホスト部5がデータ記録部6をロックする機能を備え、MBR Shadow格納部35に格納されたプログラムをOSないしOS上で動作するアプリケーションに先立ち実行し、そのプログラム上でサービス提供サーバ1と認証処理を行い、その認証結果によってデータ記録部6のロック解除の制御を行う点に特徴がある。
次にMBR Shadow格納部35に格納されるプログラムの処理手順について述べる。図3はMBR Shadow格納部35に格納されるShadowプログラムの処理手順を示すフローチャートである。まず、プロセッサは、起動処理部12に格納された起動プログラムの実行を開始する(ステップS1)。
プロセッサは起動プログラムに従って、ドライブ部4の所定の領域(例えばLBA0番地、すなわちMBRに格納されたプログラムが格納されているアドレス)にアクセスして、データを読み出す(ステップS2)。このとき、LBA0番地の読み出し命令を受信したドライブ部はMBR Shadow設定部の設定を確認し、MBR Shadow機能が有効かどうかを判定する(ステップS3)。このステップはシャドウ判定部に対応する。MBR Shadow機能が有効な場合は、データ記録部6のMBR格納部8に格納されているブートプログラム(MBR)ではなく、MBR Shadow格納部35に格納されているプログラム(以後、Shadowプログラムと呼ぶ)が読み出されてホスト部5に送信されて、起動処理部12に格納される(ステップS4)。このステップS4はシャドウ読み込み部に対応する。
ここで、ドライブ部4内のOS格納部9とユーザデータ格納部10に対する読み出しと書き込みはロックされているものとする。すなわち、ホスト認証部32はホスト部5との認証が未完了の状態にあり、ロック制御部33の設定によりOS格納部9とユーザデータ格納部10はロックされているものとする。
次に、ホスト部5はShadowプログラムを実行し、サーバ認証処理部23にてサービス提供サーバ1と認証を行う(ステップS5)。このステップS5はシャドウ実行部に対応する。
ここで、ステップS5の認証(サーバ認証)処理とは、(1)サービス提供サーバ1が期待する通信相手であるかどうかをデータ記録装置3が認証する手法、(2)データ記録装置3が期待する通信相手であるかどうかをサービス提供サーバ1が認証する手法、(3)相互に認証する手法の3通りがある。認証の手法にはISO/IEC 9798-3やISO/IEC 9798-2のようなよく知られた手法を用いればよい。また、公開鍵方式の認証手法を用いる場合、(1)のケースではデータ記録装置3はサービス提供サーバ1の公開鍵、または公開鍵を含んだ証明書を保持しておく必要がある。(2)のケースではデータ記録装置3は秘密鍵を保持しておく必要がある。(3)のケースではデータ記録装置3はサービス提供サーバ1の公開鍵、または公開鍵を含んだ証明書と秘密鍵の両方を保持しておく必要がある。これら認証に必要なデータも予めMBR Shadow格納部35に格納しておく。
次に、サービス提供サーバ1との認証に成功したか否かを判定し(ステップS6)、認証に失敗するとエラー処理を行う(ステップS7)。認証に成功すると、ホスト認証処理を行う(ステップS8~S15)。
ホスト認証処理では、まずOS格納部9はロックされているか否かを判定し(ステップS8)、OSがロックされている場合にはホスト部5からドライブ部4にパスワードを送信する(ステップS9)。ここで、パスワードとは、ドライブ部のロック、アンロックに使うデータである。パスワードはドライブ部4のホスト認証部32に予め登録しておく。このホスト認証部32への登録の方法として、製造時に埋め込んでおく方法、ホスト部5のプロセッサ上で動作するプログラムを使ってユーザが任意の値を設定する方法、ホスト部5のプロセッサ上で動作するプログラムを使ってネットワーク経由でサーバから配信した値を設定する方法などがある。ホスト部5がドライブ部4を解除するために使うパスワードは、例えばShadowプログラムに予め含めておいてもよいし、ホスト部5の任意の領域(たとえばフラッシュメモリ)に保存しておきShadowプログラムがその領域から読みだしてもよい。
次に、ホスト部5から送信されたパスワードがホスト認証部32に予め登録されているパスワードと一致するか否かを判定する(ステップS10)。一致しない場合はエラー処理を行い(ステップS7)、一致する場合はロック制御部33にロック解除命令を送信する。これにより、OS格納部9はアンロックされる(ステップS11)。
次に、ユーザデータ格納部10はロックされているか否かを判定し(ステップS12)、ロックされている場合にはホスト部5からドライブ部4にパスワードを送信する(ステップS13)。
次に、ホスト部5から送信されたパスワードがホスト認証部32に予め登録されているパスワードと一致するか否かを判定する(ステップS14)。一致しない場合はエラー処理を行い(ステップS7)、一致する場合はロック制御部33にロック解除命令を送信する。これにより、ユーザデータ格納部10はアンロックされる(ステップS15)。
上述したステップS9とS13はパスワード送信部に対応し、ステップS10とS14はパスワード照合部に対応する。
ここで、OS格納部9をアンロックするか否かを判断するためのパスワードと、ユーザデータ格納部10をアンロックするか否かを判断するためのパスワードは、それぞれ別個にホスト部5に登録されている。これらのパスワードをまとめて登録してから、ステップS8~S15の処理を続けて行ってもよいし、OS格納部9用のパスワード登録とアンロック制御を行った後に、ユーザデータ格納部10用のパスワード登録とアンロック制御を行ってもよい。
上記ステップS12でユーザデータ格納部10はロックされていないと判定された場合、あるいはステップS15の処理が終了した場合は、プロセッサはOS格納部9からOSを読み込んで(ステップS16)、OSを起動する(ステップS17)。これにより、起動処理は完了する。
なお、ホスト部5からドライブ部4に送信されるパスワードは、前述のShadowプログラムの中に埋め込む方法以外にも、サービス提供サーバ1との認証に成功した場合に限りサービス提供サーバ1から配信されているようになっていてもよい。サービス提供サーバ1から配信される場合は、サービス提供サーバ1とデータ記録装置3との間でパスワードが漏えいしないように暗号化等の手段を用いて保護して送信することが望ましい。
また、ドライブ部4が複数のOS格納部9を備えている場合にはロックする領域ごとに異なるパスワードを設定し、サービス提供サーバ1によってアンロックするOSを切り替えてもよい。具体的には、第1のOS格納部9と第2のOS格納部9をそれぞれ別の領域として設定しておき、起動時にはロック状態に設定しておく。そして、ロックを解除するための認証にはそれぞれ別々のパスワードが必要となるように設定しておく。第1のサービス提供サーバ1との認証に成功した場合には、第1のOS格納部9のパスワードを使って第1のOS格納部9のロックを解除し、第2のOS格納部9のロックは解除しない。これにより、第1のサービス提供サーバ1用のOSを実行させることができる。
このように、データ記録装置3の起動前にはドライブ部4の各領域にはロックがかかっており、サービス提供側がデータ記録装置3との認証に成功しなければデータ記録装置3に記録したデータは外部に公開されないため、サービス提供サーバ1は安全にデータを格納する領域を外部に確保できる。
図3のフローチャートでは、OS格納部9のアンロック制御を行った後にユーザデータ格納部10のアンロック制御を行っているが、その順番は特に問わない。また、OS格納部9のロック/アンロック制御は省略してもよい。すなわち、OS格納部9にはロックをかけずに、ユーザデータ格納部10のみをロックしておき、サーバ1との認証やパスワード照合などの所定の条件を満たしたときにユーザデータ格納部10をアンロックしてもよい。
なお、サービス提供サーバ1との認証時に、Shadowプログラムはプラットホームが予め想定した状態と一致するかチェックを行ってもよい。ここで、プラットホームとは、例えば、MACアドレスやCPU ID、OSのシリアルIDなどであり、これらの情報が期待された値であるかのチェックを行ってもよい。これにより、仮にドライブ部4が物理的に他のデータ記録装置3から取り外されて他のデータ記録装置3に取り付けられたとしても、データ記録装置3のMACアドレスやCPU ID、OSのシリアルIDは異なるため、ドライブ部4が取り外されたことを検出できる。すなわち、サービス提供サーバ1にとってみれば、特定のデータ記録装置3でしか起動しないシステムを構築できる。
また、ドライブ部4のユーザデータ格納部10が複数のユーザにそれぞれ異なるパーティションを割り当てていれば、サービス提供サーバ1によって、またはサービス提供サーバ1との認証の結果によってShadowプログラムがアンロックするユーザデータ格納部10内の領域を切り替えることで、ユーザデータ格納部10に格納されたOSやアプリケーションが使うライブラリを変更できる。
例えば、サービス提供サーバ1との認証に成功した場合にはライブラリAが格納された領域をアンロックし、失敗した場合にはライブラリBが格納された領域をアンロックするように設定してもよい。OSはそのアンロックされた領域を利用する。これはサービス提供者がデータ記録装置3で実行されるプログラムを秘匿したいという要望がある際に特に有用である。典型的な例は映画や動画コンテンツの保護に利用される著作権保護ソフトウェア(DRMソフトウェア)に用いられるライブラリである。著作権保護ソフトウェアは一般的に暗号化されたコンテンツを復号するための鍵やアルゴリズムをソフトウェア内部に隠ぺいしておく必要がある。ところが、それら秘匿すべき情報をソフトウェアライブラリ内部に隠ぺいしておく手法は解析に対して脆弱である。本実施形態では、サービス提供サーバ1との認証に成功しない限り、ライブラリが格納された領域はPINコード等のパスワードによってロック状態が維持されるため、ロックされた領域に格納されたライブラリを取り出すことはできない。
また、本実施形態では、サービス提供サーバ1との認証時にプラットホームのチェックも行えるため、不正なプラットホームであると判断した場合にはアンロック処理を中断することも可能である。
このように、本実施形態によれば、ライブラリをソフトウェアで実装したとしても、不正なプラットホームではロックを解除できないため、ライブラリの不正取得と不正な解析を防止できる。
また、ユーザの観点からは、正当なサービス事業者に限りデータを公開するという要求がある場合にも有用である。例えば写真などのプライベートなデータをユーザデータ格納部10に記録しておき、正当なサービス事業者に限りそのサービス(サービス事業者が運営するサーバ
)からユーザデータ格納部10にアクセスできるように公開するといったケースを考える。この時も、サービス提供サーバ1と認証に成功しない限り、プライベートデータが格納されたユーザデータ格納部10はPINコードでロックされたままであり、アンロックされないため、ロックされた領域に格納されたプライベートデータを取り出すことはできない。
)からユーザデータ格納部10にアクセスできるように公開するといったケースを考える。この時も、サービス提供サーバ1と認証に成功しない限り、プライベートデータが格納されたユーザデータ格納部10はPINコードでロックされたままであり、アンロックされないため、ロックされた領域に格納されたプライベートデータを取り出すことはできない。
非特許文献1に記載されているような従来の方式ではユーザが直接キーボードからパスワードを入力することによりデータ記録部6全体ないし一部を解除する。一方、本実施形態では、サーバ1と認証を行うことによりユーザが直接パスワードを入力するのではなく、サーバ1との認証成功後にMBR Shadow格納部35に含まれたパスワードまたはネットワーク処理部22によりサービス提供サーバ1から与えられたパスワードを利用する点が異なる。また、サービス提供サーバ1との認証に成功した場合に限り、どの領域のロックを解除するかを動的に選択することができる。
本実施形態では、MBR格納部8のプログラムやOSの処理に先んじて、MBR Shadow格納部35に格納されたShadowプログラムを利用してサーバ1との認証処理やデータ記録部6のアンロック処理を起動時に行うことが第一の特徴である。一般的にOSが起動してから不正なプログラムを挿入したりメモリに不正な処理を挿入したりすることでOSの処理を改変したり、アプリケーションの挙動を変更したりするアプリケーションレベルでの攻撃については様々な手法が存在するが、本実施形態では、MBRやOSの起動前に、サーバ1との認証処理やデータ記録部6のロック制御を行うため、データ記録部6に格納された情報をより安全に保護することができる。
また、MBR Shadow格納部35に格納されたShadowプログラムを改変するには、ドライブ部4に内蔵されたフラッシュメモリ等に格納されたデータにアクセスする必要があり、攻撃者にとって難易度が高くなるため、Shadowプログラムが改変されるリスクは低い。これによりセキュリティの安全レベルを向上させることができる。
また、データ記録装置3のドライブ部4とホスト部5は別々のベンダーから供給されるのが一般的である。従来のドライブ部4はMBR Shadow格納部35やアクセス制御部7を備えていなかったため、MBR Shadow格納部35に相当する機能をホスト部5に設けるしかなかった。このような場合に、仮にドライブ部4だけを取り出して、別のデータ記録装置3に入れて起動することを考えると、差し替えた先のデータ記録装置3のホスト部5がMBR Shadow格納部35に相当する機能を持っていない限り、上述したセキュリティ保護は行えない。また、この別のデータ記録装置3のホスト部5がMBR Shadow格納部35に相当する機能を持っていた場合でも、Shadowプログラムをホスト部5にインストールする必要があり、作業が繁雑で使い勝手が悪くなる。
本実施形態では、MBR Shadow格納部35をホスト部5とは独立したドライブ部4に備えている。これにより、ドライブ部4を別のデータ記録装置3に差し替えたとしても、Shadowプログラムはドライブ部4に備わっているため、ホスト部5がMBR Shadow格納部35に相当する機能を備えている必要もなく、元のデータ記録装置3と同じShadowプログラムを別のデータ記録装置3でも継続して利用できるようにすることを比較的容易に実現できる。
また、本実施形態のデータ記録装置3は、データ記録装置3を組み込んだ機器(例えばPC)を製造および販売するセットメーカ側にとって以下の利点がある。PCのセットメーカは、ドライブ部4(例えばHDD)を他社から購入してPCに組み込んで販売する。データ記録部6のロック/アンロック方式は標準化されていないため、MBR Shadowの機能がないと、組み込むHDDの種類により、データ記録部6のロック/アンロックを制御するプログラムをホスト部5にインストールする必要がある。
一方、MBR Shadow機能があると、データ記録部6をロック/アンロックするプログラムはMBR Shadow格納部35にインストールされるため、HDDのメーカ側で適切なShadowプログラムをMBR Shadow格納部35にインストールして販売すれば、PCメーカ側はそれを利用するだけであるため、HDDのメーカに依存せずにPCに組み込むことができ、機器の製造コストを削減できる。
また、本実施形態のデータ記録装置3は、ユーザ側にとっても以下の利点がある。例えば、データ記録装置3が組み込まれた機器(例えばPCやレコーダ)からドライブ部4を抜き出して、別の機器に入れた場合でも、ドライブ部4にMBR Shadowの機能があるため、ホスト部5を改変せずに、データ記録部6のロック/アンロック制御を行うことができる。
このように、第1の実施形態では、MBRやOSの起動に先立って、MBRのshadowプログラムを起動させ、このshadowプログラムの中で、サーバ認証を行い、サーバ認証に成功した場合には、Shadowプログラムに登録されたパスワードとホスト認証部32に予め登録されたパスワードとの照合を行って、照合に成功すると、そのパスワードを使ってOS格納部9とユーザデータ格納部10のアンロックを行うため、データ記録部6内の情報をより安全に保護できる。
(第2の実施形態)
第1の実施形態では、データ記録部6のロックを解除するためのパスワードをMBR Shadow格納部35に格納されたプログラム(Shadowプログラム)に保存しておいた。これに対して、第2の実施形態のホスト部5は、秘密情報格納部に保存しておくものである。
第1の実施形態では、データ記録部6のロックを解除するためのパスワードをMBR Shadow格納部35に格納されたプログラム(Shadowプログラム)に保存しておいた。これに対して、第2の実施形態のホスト部5は、秘密情報格納部に保存しておくものである。
図4は第2の実施形態によるデータ記録装置3の内部構成の一例を示すブロック図である。図4では、ホスト部5に秘密情報格納部15を備える点が図2と異なる。また、図2では省略していたが、ホスト部5には、プロセッサ26と主メモリ27が設けられる。
図5は秘密情報格納部15の内部構成の一例を示すブロック図である。図5の秘密情報格納部15は、ID管理部41と、鍵管理部42と、暗号処理部43と、復号処理部44と、状態管理部45と、コマンド処理部46とを有する。
ID管理部41は秘密情報格納部15に固有のIDを格納する。IDは工場出荷時に決めた値、ないしは最初に生成した値から変更できないように保護して保存しておくのが望ましい。
鍵管理部42は、ホスト部5からのコマンドに基づいて秘密情報格納部15の内部で鍵を生成する機能と、生成した鍵を保存しておく機能を備える。なお、秘密情報格納部15は、秘密鍵の値を外部に出力するインターフェースを持たないため、秘密鍵の値が秘密情報格納部15の外に漏えいするおそれはない。
状態管理部45はデータを記憶するレジスタ(不図示)を内部に備えている。レジスタは起動時(電源をONした時)にのみリセットすることができ、リセット時の初期値は固定の一定の値(例えば0)とする。状態管理部45は、入力データ"Input"が与えられると、次の(1)式にしたがってレジスタの値を更新する。
NewValue = hash (Input || OriginalValue) …(1)
NewValue = hash (Input || OriginalValue) …(1)
ここで、||はデータを結合する記号を表す。またhashはSHAファミリー(SHA1, SHA256など)やMD5のようなハッシュ関数を示す。(1)式は、もともとレジスタに記憶されていたデータ(OriginalValue)と入力データ(Input)を結合してハッシュ関数の入力とし、ハッシュ関数の出力値(NewValue)をレジスタの新しい値として記憶する。このレジスタは、外部から任意の値をセットするインターフェースを持たない。つまり、
NewValue = Input
というように入力値をそのままレジスタの値に設定するようなインターフェースは持たない。
NewValue = Input
というように入力値をそのままレジスタの値に設定するようなインターフェースは持たない。
状態管理部45は内部に複数のレジスタを備えていてもよい。その場合、以下の(2)式のように、hash関数の引数にどのレジスタの値を更新させるかを示すレジスタ番号(Register#)を設ければよい。
NewValue = hash (Register#, Input || OriginalValue) …(2)
NewValue = hash (Register#, Input || OriginalValue) …(2)
状態管理部はRegister #に対応するレジスタの値を使い、(1)式に従ってRegister#に対応するレジスタの値を更新する。
また、暗号処理部43は暗号化対象の入力値(Input)とレジスタの値(RegisterValue)を入力とし、入力値を鍵管理部42が持つ秘密鍵で暗号化した値を出力する。具体的には以下の(3)式にしたがって入力されたデータを暗号化する。
Output = Encrypt (Input, RegisterValue, Key) …(3)
Output = Encrypt (Input, RegisterValue, Key) …(3)
ここで、EncryptはAESやDESのようなよく知られた共通鍵方式の暗号化関数であり、第2引数(RegisterValue)と第3引数(Key)を鍵として第1引数の値を暗号化し、その暗号化結果が出力(Output)である。第2引数と第3引数を鍵とする手法とは、第2引数と第3引数を結合する手法や、第3引数によって第2引数をAESなどの関数により暗号化した値を鍵とする手法などの手法を用いればよい。
暗号処理部43を使ってデータを暗号化する際、ホスト部5は秘密情報格納部15のコマンド処理部46にInputとRegister#の二つの引数を与える。もしもレジスタが一つしかない場合はRegister #は不要である。
(3)式のInputは暗号化対象となる平文のデータであり、Register#は状態管理部45のレジスタ番号である。つまりRegisterValueはRegister#で指定されたレジスタ番号に対応するレジスタの現在の値である。つまり暗号処理部43は、鍵管理部42が持つ秘密鍵と状態管理部45のレジスタの二つの値を使って入力データを暗号化することにより、入力データは鍵管理部42と状態管理部45のレジスタの両方にバインドされることになる。ここで、入力データとは、後述するように、Shadowプログラムで生成されるパスワードであり、暗号処理部43は(3)式に基づいて暗号化パスワードを生成する。
復号処理部44は復号対象の入力値とレジスタの値(RegisterValue)を入力とし、入力値(Input)を鍵管理部42が持つ秘密鍵の値(Key)で復号した値を出力する。具体的には、以下の(4)式にしたがって入力値を復号する。
Output = Decrypt (Input, RegisterValue, Key) …(4)
Output = Decrypt (Input, RegisterValue, Key) …(4)
ここで、Decryptは暗号化に用いた暗号化関数に対応する復号関数であり、第2および第3引数を鍵として第1引数の値を復号し、その復号結果が出力(Output)である。復号処理部44の入力値は、暗号化パスワードであり、(4)式にて暗号化前のパスワードが復元される。
この復号処理部44を使ってデータ(暗号化パスワード)を復号する場合、ホスト部5は秘密情報格納部15のコマンド処理部46に対して暗号化処理と同様にInputとRegister#の二つの引数を与える。もしもレジスタが一つしかない場合はRegister #は不要である。
上述したように、(4)式のInputは復号対象の暗号化パスワードであり、またRegister#は状態管理部45が備えるレジスタの番号である。RegisterValueはRegister#で指定されたレジスタ番号に対応するレジスタの現在の値である。つまり鍵管理部42の秘密鍵と状態管理部45のレジスタの二つの値を使って暗号化パスワードを復号する。
以上は暗号処理部43に共通鍵暗号を用いた場合の例であるが、共通鍵方式の代わりに公開鍵方式を用いてもよい。図6は公開鍵方式を使う場合の秘密情報格納部15aの内部構成の一例を示す図である。公開鍵管理部47を備える点と、鍵管理部42の代わりに秘密鍵管理部48を備える点が図5と異なる。
公開鍵管理部47は、公開鍵ペアを備えており、ホスト部5からのコマンドに基づいて公開鍵管理部47に格納された秘密鍵を使ってデータ(暗号化パスワード)を復号したり、データに対する署名を生成したりする機能を持つ。公開鍵暗号方式としてはRSAのようなよく知られた方式を用いればよい。
秘密鍵管理部48は、ホスト部5からのコマンドに基づいて秘密情報格納部15aの内部で秘密鍵と共通鍵を生成する機能と、生成した秘密鍵を保存しておく機能を備える。
公開鍵方式を採用する場合の秘密情報格納部15aは、公開鍵を外部に出力するためのインターフェースを備えており、Shadowプログラムやデータ記録装置3で実行されるその他のプログラムから公開鍵情報を参照できるようにしてもよい。
なお、公開鍵には秘密情報格納部15aを製造したベンダー、データ記録装置3を実装した製造、あるいは業界で秘密情報管理部を管理するような組織の秘密鍵によって署名が施されていてもよい。
また、公開鍵を用いて入力値(Input)を暗号化する場合は上述の暗号化関数EncryptのKeyの部分を鍵管理部42が持つ公開鍵と置き換えればよい。なお、入力値を暗号化する際、公開鍵を用いるため、暗号化の処理は必ずしも秘密情報格納部15aで実行する必要はなく、秘密情報格納部15aが暗号処理部43を備えている必要は必ずしもない。秘密情報格納部15aで入力値の暗号化処理を行わない場合は、Shadowプログラムなどホスト部5で動作するプログラムで暗号化計算を行うようにすればよい。同様に復号する場合は復号関数DecryptのKeyの部分を鍵管理部42が持つ秘密鍵と置き換えればよい。
以下では特に記載のない限り共通鍵方式を用いた例について説明する。
状態管理部45に入力されるデータ(ハッシュ関数のInput)を、暗号処理もしくは復号処理のコマンドを発行するプログラムしか知らない秘密の値とすることで、Inputデータを保護することができる。この秘密の値はコマンドを送信するプログラムしか知り得ない鍵の値でもよいし、メモリ上の任意のデータでもよい。
プロセッサ26がプログラムを実行する際には、そのプログラムが主メモリ27上に展開されるため、例えば、プログラムが特定の命令を実行するときの主メモリ27の特定位置A(あるいは特定範囲A)の値(例えばステップXを実行した時の主メモリ27に存在するデータA)をInputの値とすることで、特定のプログラムがある特定の状態にある時のみデータを暗号化/復号することを実現できる。他にもこれを応用することにより、特定のプログラムがステップA、ステップBの順序で実行したときの主メモリ27に存在するデータをInputの値とすることによって、悪意のある第三者がプログラムを改変した場合には正しいInputの値をDecrypt関数に入力できなくなり、セキュリティ性能が向上する。
あるいは、特定のプログラムがステップCを実行した時の主メモリ27に存在するデータと、ステップDを実行したときの主メモリ27に存在するデータとをつなぎ合わせたデータを状態管理部45のレジスタに記憶してもよい。この場合、ステップCをスキップした場合や、ステップDからステップCの順番で実行した場合には、状態管理部45のレジスタに記憶される値が異なった値になるため、正しい暗号化および復号化が行えなくなり、不正なプログラムの改変を防止できる。
上述したように、第2の実施形態は、ドライブ部4と認証を行うためのパスワードを格納する際、秘密情報格納部15(または15a)を利用する点が第1の実施形態と異なる。
第2の実施形態の処理手順の技術的特徴は、パスワードを秘密情報格納部15に保護して格納するパスワード設定フェーズと、設定したパスワードを使ってドライブ部4をアンロックするアンロックフェーズの二つを備えることである。
図7はShadowプログラムが行うパスワード設定フェーズの処理手順の一例を示すフローチャートである。なお、以降では、特に断りがない限り、MBR Shadow機能が有効であるとする。
図7のパスワード設定フェーズでは、まずプロセッサ26は起動プログラムを実行し(ステップS31)、このプログラムの中でShadowプログラムを読み込む(ステップS32)。
状態管理部45のレジスタの値は電源ON時にリセットされ、ShadowプログラムはOS起動前に実行されるので、状態管理部45のレジスタの値は初期値であることが保証される。Shadowプログラムは不図示の乱数生成器(Shadowプログラム内部でソフトウェアとして乱数を生成してもよいし、秘密情報格納部15に乱数生成器を備えている場合はその乱数生成器を使ってもよい)を使ってパスワードを生成する(ステップS33)。このステップS33はパスワード生成部に対応する。
Shadowプログラムは、ステップS33で生成されたパスワードを、ドライブ部4をアンロックするか否かのパスワード照合に使用するべく、ドライブ部4のホスト認証部32に送信する(ステップS34)。ホスト認証部32は、送信されてきたパスワードを登録する(ステップS35)。
次に、プロセッサ26は、Shadowプログラムの特定命令を実行するたびに(ステップS36)、Shadowプログラムを展開した主メモリ27の特定位置または特定範囲の値を状態管理部45のレジスタに登録する(ステップS37)。これにより状態管理部45のレジスタの値は更新される(ステップS38)。
Shadowプログラムは、状態管理部45のレジスタの値を1回以上更新した後に、まだ暗号化されていない平文パスワードを秘密情報格納部15に送信し(ステップS39)、秘密情報格納部15の鍵管理部42に格納されている秘密鍵と上述した状態管理部45のレジスタの値を用いて暗号処理部43により暗号化する(ステップS40)。ここでは、例えば上述した(3)式に従って暗号化を行う。
公開鍵暗号を使う場合は鍵管理部42に格納されている秘密鍵に対応する公開鍵を用いて暗号処理部43ないしはShadowプログラムが暗号化する。暗号化したパスワードはホスト部5の不揮発性主メモリ27ないしはドライブ部4のロックがかかっていないデータ記録部6に保存すればよい。
次に、Shadowプログラムは、ドライブ部4にロック命令を送信する(ステップS41)。ロック命令を受けたロック制御部33は、データ記録部6をロックする(ステップS42)。以後、データ記録部6は登録されたパスワードが送信されない限りはアンロック状態となる。
なお、図7のパスワード設定フェーズは、実際には、OS格納部9用のパスワード設定フェーズと、ユーザデータ格納部10用のパスワード設定フェーズの二つに分けて行われる。二つのパスワード設定フェーズを連続して行って二種類の暗号化パスワードを生成した後に、OS格納部9とユーザデータ格納部10をともにロックしてもよいし、いずれか一方(例えばOS格納部9)のパスワード設定フェーズを行ってOS格納部9をロックした後に、他方(例えばユーザデータ格納部10)のパスワード設定フェーズを行ってユーザデータ格納部10をロックしてもよい。
次に、アンロックフェーズについて説明する。このアンロックフェーズも、OS格納部9のアンロックフェーズとユーザデータ格納部10のアンロックフェーズが別個に行われる。以下では、どちらか一方のアンロックフェーズについて説明する。
図8はShadowプログラムが行うアンロックフェーズの処理手順の一例を示すフローチャートである。起動プログラムがShadowプログラムを読み込む手順までは第1の実施形態と同じである(ステップS51,S52)。
アンロックフェーズではShadowプログラムがサーバ認証を行う(ステップS53)。そして、サーバ認証に成功したか否かを判定し(ステップS54)、サーバ認証に失敗した場合はエラー処理を行う(ステップS55)。
サーバ認証に成功した場合はパスワード設定フェーズで設定した状態管理部45の値と同じ値になるような処理(図7のステップS36~S37と同様の処理)を実行し(ステップS56、S57)、状態管理部45の値を更新する(ステップS58)。このとき、正規のShadowプログラムであれば、パスワードを暗号化したときの状態管理部45のレジスタの値と、現在のレジスタの値は一致するはずである。したがって、秘密情報格納部15に暗号化パスワードを送信して(ステップS59)、秘密情報格納部15内の復号処理部44で暗号化パスワードを復号することができる(ステップS60)。復号されたパスワードは、正規のShadowプログラムであれば、図7で暗号化パスワードを生成する元のパスワードと同じはずである。
Shadowプログラムは、復号されたパスワードをドライブ部4に送信する(ステップS61)。ドライブ部4のホスト認証部33は、送信したパスワードと予め登録されているパスワードとを照合し、照合に成功すれば、ロック制御部33はデータ記録部6をアンロックする(ステップS62)。
なお、上述した処理フローの例ではShadowプログラムがアンロック用のパスワードを生成する手法について示したが、Shadowプログラムがインターネット2上のサーバ1と通信を行い、サーバ1からネットワーク経由でパスワードを入手してもよい。この場合、サーバ1から送信されるパスワードがサーバ1とデータ記録装置3間の通信経路上で第三者に盗み見られないようにパスワードを保護して伝送する必要がある。これを実現する手法としては、データ記録装置3の公開鍵による公開鍵暗号を用いればよい。
上述のように鍵管理部42が公開鍵方式を採用する場合、鍵管理部42は公開鍵ペアを備えており、ホスト部5からのコマンドに基づいて鍵管理部42に格納された秘密鍵を使ってデータを復号したり、データに対する署名を生成したりする。
図9はサーバ1からパスワードを入手する場合におけるShadowプログラムの処理手順の一例を示すフローチャートである。起動プログラムがShadowプログラムを読み込むまでの処理(ステップS71,S72)は図7と同様であるが、その後に、サーバ認証を実行する(ステップS73)。この認証処理は、公開鍵管理部47の証明書を用いて、サーバ1がデータ記録装置3を認証するクライアント認証処理である。証明書の署名を検証することによって認証に成功したか否かを判断し(ステップS74)、データ記録装置3が正しい証明書を持たないとサーバ1が判断した場合は認証に失敗したとみなしてエラー処理を行う(ステップS75)。
一方、データ記録装置3が正しい証明書を持っているとサーバ1が判断できれば、認証に成功したとみなして、証明書に含まれる公開鍵の値を用いてパスワードを暗号化して送信する。一方、サーバ1との認証に失敗した場合にはパスワードは送信しない。
Shadowプログラムは、サーバ1からの暗号化パスワードを受信すると(ステップS76)、そのパスワードを復号してドライブ部4のホスト認証部32に送信する(ステップS77)。その後、ステップS36~S42と同様の処理が行われ、パスワードによってデータ記録部6がロックされる(ステップS79~S85)。
図9の処理手順によりロックしたドライブのアンロック処理は、図8と同様のアンロックフェーズにて行われる。
一般に、パスワードの値はデータ記録装置3ごとに異なる方が望ましい。なぜならば、一台のデータ記録装置3のパスワードが漏えいした場合、ほかの同一のパスワードを設定しているデータ記録装置3もアンロック可能となってしまうからである。したがって、もしShadowプログラムにパスワードの値を含める場合にはShadowプログラムにデータ記録装置3ごとに異なるパスワードを設定する必要がある。
これに対して、ドライブ部4をアンロックするのに用いるパスワードをサーバ1が発行して管理する場合は、Shadowプログラムにパスワードの値を含ませる必要がなくなる。
Shadowプログラムにデータ記録装置3ごとに異なるパスワードを設定する場合は、異なるパスワードを含む複数のShadowプログラムを生成し、それぞれ別のデータ記録装置3にインストールする必要があるが、パスワードをサーバ1が発行する場合には同じ内容のShadowプログラムをすべてのデータ記録装置3にインストールできるため、データ記録装置3へのインストール作業が容易になり、製造コスト削減が図れる。また、Shadowプログラムを更新する際にも同じプログラムを配布できるため、メンテナンスコストも下げることができる。また、パスワードはサーバ1が管理しているため、MBR Shadow格納部35が故障してShadowプログラムが破損してしまった場合や、Shadowプログラムが何らかの原因でクラッシュした場合でも、サーバ1が管理するパスワードをデータ記録装置3に送信することにより、簡易にパスワードを回復でき、Shadowプログラムの復旧も容易であるという利点もある。
なお、図7と図9のフローチャートでは、状態管理部45のレジスタに特定命令の実行後の主メモリ27の状態を記憶させてパスワードの暗号化の鍵の一部としていたが、この他にも、いくつかのバリエーションが考えられる。
例えば、図10および図11はそれぞれ、Shadowプログラムが行うパスワード設定フェーズの処理手順の一例を示すフローチャートである。図10は、サーバ1が管理するパスワードを取得するのと同様の手順で、サーバ1から別の値を取得し、この値を状態管理部45のレジスタに記憶して状態管理部45のレジスタを更新する処理手順を示している。また、図11は、図7の手順でパスワードを生成するが、サーバ1から取得した値を状態管理部45のレジスタに記憶して状態管理部45のレジスタを更新する処理手順を示している。
図10の処理では、サーバ1からパスワードを取得してホスト認証部32に登録した後(ステップS97)、サーバ1から別の値を取得し(ステップS99)、この取得した値を状態管理部45のレジスタに記憶して状態管理部45のレジスタを更新する(ステップS101)。
図11の処理では、Shadowプログラムを用いてパスワードを生成してホスト認証部32に登録した後(ステップS115)、サーバ1から値を取得し(ステップS116)、この取得した値を状態管理部45のレジスタに記憶して状態管理部45のレジスタを更新する(ステップS118)。
図12はサーバ1から取得した値を状態管理部45のレジスタに記憶した場合に対応するアンロックフェーズの処理手順の一例を示すフローチャートである。この処理手順は、図10および図11のパスワード設定フェーズに対応するアンロックフェーズの処理手順を示している。
図12の処理では、Shadowプログラムを起動処理部12に格納して実行した後(ステップS131,S132)、サーバ認証を実行する(ステップS133)。サーバ認証に成功すると、サーバ1から値を取得し(ステップS136)、この取得した値を秘密情報格納部15に送信する(ステップS137)。この値は、秘密情報格納部15の状態管理部45のレジスタに記憶され、状態管理部45のレジスタが更新される(ステップS138)。
その後は、図8のステップS59~S62と同様の処理が行われる(ステップS139~S142)。これにより、復号されたパスワードを用いてドライブをアンロックする(ステップS109)。
第1および第2の実施形態では、MBR Shadow格納部35に格納されるShadowプログラムにパスワードが含まれる例を説明した。Shadowプログラムはもともと最初に実行されるプログラムであり、ホスト部5の起動処理部12にロードされた後に実行されるため、起動処理部12が改変されない限り、Shadowプログラムの内容を取得することは困難である。しかし、何らかの手法でプログラムの解析が成功するとドライブ部4をアンロックするパスワードの値も解析される危険性がある。
一方、この実施形態では、パスワードの値がサーバ1から送られてくる値と、秘密情報格納部15の秘密鍵によって暗号化して格納される例も説明した。Shadowプログラムを解析しただけではパスワードを取得することができず、サーバ1から送信される暗号化されたパスワードを復号するためには、正規の証明書と秘密情報格納部15の秘密鍵を使ってサーバ1と認証を行い、サーバ1から送られてくる値を復号して入手する必要があるが、秘密情報格納部15は秘密鍵を秘密情報格納部15の外に出力するインターフェースを持たないため、不正に秘密鍵を取得することは非常に困難であり、よってパスワードを不正に取得することも非常に困難である。
このように、第2の実施形態では、ホスト部5の秘密情報格納部15にてアンロック用のパスワードを生成するようにしたため、パスワードを不正に取得されるおそれが少なくなり、より安全にデータ記録部6のアンロック制御を行える。
(第3の実施形態)
第1および第2の実施形態では、MBR Shadow格納部35に格納するプログラム(Shadowプログラム)は、機器製造メーカが機器出荷時に予め埋め込んでおくことを前提としていた。これに対して、以下に説明する第3の実施形態では、Shadowプログラムを機器製造時に組み込まれる部分と、サーバ1からダウンロードしてくる部分とに分けることを特徴とする。
第1および第2の実施形態では、MBR Shadow格納部35に格納するプログラム(Shadowプログラム)は、機器製造メーカが機器出荷時に予め埋め込んでおくことを前提としていた。これに対して、以下に説明する第3の実施形態では、Shadowプログラムを機器製造時に組み込まれる部分と、サーバ1からダウンロードしてくる部分とに分けることを特徴とする。
図13は第3の実施形態におけるデータ記録装置3の概略構成を示すブロック図である。図13に示すように、MBR Shadow格納部35が初期インストール用格納部35aとダウンロード用格納部35bを有することと、データ記録部6のユーザデータ格納部10が複数のデータ領域10aに分けられていることとが図4と異なる。初期インストール用格納部35aは、機器製造メーカが機器出荷時に予め埋め込んでおくプログラムを格納しておく処理部である。ダウンロード用格納部35bは、サーバ1からダウンロードしてくるプログラムを格納しておく処理部である。
第1の実施形態で説明したように、ユーザデータ格納部10はロックする領域ごとに異なるパスワードを設定することができる。例えば、データ記録装置3内部に留めておきたいようなプライバシーに関するユーザデータなどはデータ領域1に、第1のサービス提供サーバ1との認証が完了するまでは第1のサービス提供サーバ1に対するアクセスを拒否しておきたいようなサービスに関する設定データや管理データはデータ領域2に、第2のサービス提供サーバ1との認証が完了するまでは第2のサービス提供サーバ1に対するアクセスを拒否しておきたいようなサービスに関する設定データや管理データはデータ領域3にそれぞれ保存しておくものとする。
まずパスワード設定フェーズについて説明する。初期インストール用格納部35aに格納したプログラムでデータ領域1に格納したユーザデータをどのような条件の時に公開するかを設定する。この条件としては、例えば秘密情報格納部15のID管理部41に格納されたIDの値と一致することとしてもよいし、サーバ1との認証に成功することとしてもよい。ID管理部41のIDと一致するかどうかを確認する手段としては、ID管理部41のIDの値を状態管理部45のレジスタにセットしておき、その状態で暗号処理部43を用いてパスワードを暗号化しておく。初期インストール用格納部35aに格納したプログラムを実行する際、同プログラムの中でID管理部41のIDの値をレジスタにセットし、暗号化したパスワードを入力として復号処理部44で復号させて、レジスタにセットした値と一致するかどうかを照合する。このように、予めパスワードを暗号化して保存しておけば、初期インストール用格納部35aに格納したプログラムを実行する際、暗号化に用いたID管理部41のIDの値と同じ値でなければパスワードを正しく復号できないため、データ領域1のアンロックを禁止できる。
このような仕組みにより、仮にドライブ部4を別のデータ記録装置3に差し替えて起動させたとしても、その別のデータ記録装置3に備わっているID管理部41のIDの値は、もともとドライブ部4がインストールされていたデータ記録装置3に備わっているID管理部41のIDの値は異なるため、初期インストール用格納部35aに格納したプログラムを実行しても状態管理部45のレジスタにセットするIDは別の値であり、その状態で復号処理部44で暗号化パスワードを復号しても正しい値を得ることはできない。このように、ドライブ部4とデータ記録装置3を関連づけることができる。
同様に、ダウンロード用格納部35bに格納したプログラム(以下、ダウンロードプログラム)で、データ領域2に格納したサーバ1の扱うデータをどのような条件の時に公開するかを設定する。なお、この設定はユーザが条件を指定してもよいし、予めダウンロードプログラムに条件を記述しておき、サーバ1がこのプログラムを配布することによりユーザが条件を指定できなくしてもよい。サーバ1からダウンロードプログラムをダウンロードする指示方法としては、初期インストール用格納部35aに格納されたプログラムの命令によりダウンロードを指示してもよいし、OS起動後にアプリケーションがダウンロードプログラムをダウンロードし、それをダウンロード用格納部35bに格納してもよい。
次にアンロックフェーズについて説明する。図14はShadowプログラムが行うアンロックフェーズの処理手順の一例を示すフローチャートである。図14の処理では、起動プログラムがShadowプログラムを読み込む処理までは図8と同じである(ステップS151,S152)。次に、Shadowプログラムのうち、初期インストール用格納部35aに格納されたプログラムが実行される(ステップS153)。このプログラムの中で、データ領域1をアンロックしてもよいかどうかの条件検査がなされる(ステップS154)。
条件に合致しているか否かを判定し(ステップS155)、もしも条件に合致しなければエラー処理を行い(ステップS156)、データ領域1はアンロックされない。条件に合致すれば、まずはOS格納部9がアンロックされ(ステップS157)、引き続いてデータ領域1がアンロックされる(ステップS158)。
次に、Shadowプログラムに含まれるダウンロード用格納部35bのプログラムが実行される(ステップS159)。ダウンロード用格納部35bのプログラムはサーバ1と認証処理を行う(ステップS160)。
次に、サーバ認証に成功したか否かを判定し(ステップS161)、サーバ認証に失敗した場合はエラー処理を行う(ステップS156)。サーバ認証に成功した場合はデータ領域2をアンロックする(ステップS162)。
初期インストール用格納部35aに格納されたプログラムが最後の命令を実行する際、主メモリ27上の値を使って状態管理部45のレジスタに記憶する処理を実行すれば、ダウンロード用格納部35bのプログラムはこのときの状態管理部45のレジスタの値を確認することにより、初期インストール用格納部35aに格納されたプログラムが確実に実行されたか否かを確認できる。この確認処理を追加した処理手順は図15に示している。
図15において、データ領域1をアンロックするまでの処理(ステップS171~S178)は図14と同様である。初期インストール用格納部35aに格納されたプログラムは特定のステップを実行するごとに状態管理部45に特定の主メモリ27上の値を入力として与える。これにより状態管理部45のレジスタの値は更新される(ステップS179,S180)。
初期インストール用格納部35aに格納されたプログラムの実行が終了すると、次にダウンロード用格納部35bのプログラムを実行する(ステップS181)。ダウンロード用格納部35bに格納されたプログラムは、現在の状態管理部45の値を確認する(ステップS182)。
現在の状態管理部45の値が期待値と一致するか否かを判定し(ステップS183)、一致しなければエラー処理を行う(ステップS176)。一致した場合は、ダウンロード用格納部35bに格納されたプログラムはサーバ認証処理を行って、認証に成功したらデータ領域2をアンロックする(ステップS184~S186)。
もし仮にデータを不正に復号することを目的として初期インストール用格納部35aに格納したプログラムを改変した場合、状態管理部45のレジスタには期待する値が記憶されない。したがってダウンロード用格納部35bに格納されたプログラムは状態管理部45のレジスタの値を確認することで、不正なプログラムがそうでないかを確認することができる。
なお、状態管理部45の値が期待値と一致しているか否かを確認する手段として、状態管理部45の値を直接比較する手法の他に、秘密情報格納部15の暗号処理部43と復号処理部44を使う手法もある。初期インストール用格納部35aに格納されたプログラムとダウンロード用格納部35bに格納されたプログラムが予め同じ値を合意しておき、初期インストール用格納部35aに格納されたプログラムは秘密情報格納部15の暗号処理部43によりその値を暗号化しておく。もし状態管理部45の値が期待された値と一致していれば、ダウンロード用格納部35bに格納されたプログラムが秘密情報格納部15の復号処理部44により暗号化した値を復号すれば、予め合意した値を得ることができる。そうでなければ状態管理部45のレジスタの値が異なるため、合意した値を得ることはできない。
このように、第3の実施形態では、Shadowプログラムを機器製造時に組み込んでおく部分とサーバ1からダウンロードしてくる部分とに分け、かつユーザデータ格納部10の領域を分割することにより、ローカルで使うデータとサーバ1が使うデータについてそれぞれ異なるロック/アンロック制御を行うことができる。また、初期インストール用格納部35aに格納されたプログラムを実行させた段階で、プログラムの改変を行ったか否かを確認できるため、不正の疑いがあれば、ダウンロード用格納部35bに格納されたプログラムの実行を禁止でき、その後のOSの起動やユーザデータ格納部10のアンロックも阻止できる。
(第4の実施形態)
上述した第2および第3の実施形態では、MBR Shadow格納部35に格納されたShadowプログラム自身が状態管理部45に主メモリ27上の特定の値を設定して現在の値を確認することで、その時点までプログラムが正しく実行されたことを確認し、かつ状態管理部45の値を使って保護対象のパスワードを復号していた。これに対して、以下に説明する第4の実施形態では、Shadowプログラムを実行するプロセッサ26が状態管理部45に主メモリ27上の特定の値を設定する機能を持つ点が第2および第3の実施形態と異なる。
上述した第2および第3の実施形態では、MBR Shadow格納部35に格納されたShadowプログラム自身が状態管理部45に主メモリ27上の特定の値を設定して現在の値を確認することで、その時点までプログラムが正しく実行されたことを確認し、かつ状態管理部45の値を使って保護対象のパスワードを復号していた。これに対して、以下に説明する第4の実施形態では、Shadowプログラムを実行するプロセッサ26が状態管理部45に主メモリ27上の特定の値を設定する機能を持つ点が第2および第3の実施形態と異なる。
図16は第4の実施形態におけるデータ記録装置3の概略構成を示すブロック図である。図16のプログラム処理部11のプロセッサ26aは特殊命令Xを実行可能で、かつ不図示の暗号化データ蓄積部を備えている点に特徴がある。なお、第4の実施形態におけるデータ記録装置3では、必ずしもデータ記録部6にユーザデータ格納部10を設ける必要はないため、図示を省略している。同様にMBRを介してOSを起動するのではなく、起動処理部12が直接OSを読み込んで起動する構成でもよいため、図16ではMBR格納部8も省略している。これに伴い、アクセス制御部7の要求データ範囲確認部31、ホスト認証部32、ロック制御部33もそれぞれ省略している。なお、省略した各部は、省略せずに設けても構わない。
図17は特殊命令Xを実行可能なプロセッサ26aの内部構成の一例を示すブロック図である。第1、第2および第3の実施形態でもプロセッサ26を備えていたが、汎用の命令セットを備えていればよかった。これに対して、本実施形態のプロセッサ26aは、特殊命令Xを実行可能であり、特殊命令Xに必要なレジスタを備えている。より具体的には、図17のプロセッサ26aは、汎用コマンド処理部51と、特殊命令処理部52と、主メモリ27範囲指定レジスタ53と、実行開始アドレス指定レジスタ54と、ハッシュ計算処理部55とを有する。
汎用コマンド処理部51は汎用の命令を処理する処理部である。主メモリ27範囲指定レジスタ53は、特殊命令Xが発行された場合に主メモリ27上のどこからどこまでのハッシュ値を計算すべきか、その位置を指定するためのレジスタである。
ハッシュ計算処理部55は、特殊命令Xが発行された場合に主メモリ27範囲指定レジスタ53によって指定された主メモリ27範囲のデータのハッシュ値を計算する処理を行う。
実行開始アドレス指定レジスタ54は特殊命令Xが発行された最後の処理として、汎用コマンド処理部51に対してどの命令から実行すべきかを指示する。
特殊命令処理部52は、主メモリ27範囲指定レジスタ53で指定された範囲の主メモリ27のハッシュ値を計算してプロセッサ状態管理部49に設定し、実行開始アドレス指定レジスタ54で指定されたアドレスに格納された命令を汎用コマンド処理部51で実行する機能を備える。すなわち、プロセッサ26aが特殊命令Xを実行した後は実行開始アドレス指定レジスタ54で指定されたアドレスに格納された命令から処理が継続されることになる。
図18は第4の実施形態に係る秘密情報格納部15bの概略構成の一例を示すブロック図である。図18の秘密情報格納部15bは、図5の秘密情報格納部15にプロセッサ状態管理部49と判定部50を追加した構成になっている。
プロセッサ状態管理部49は、不図示のレジスタを有し、指定された値をこのレジスタに設定する機能を備える。
判定部50はプロセッサ26aからの指示に基づいてのみ、プロセッサ状態管理部49のレジスタに指定された値を設定する制御を行う。図5や図6に示した状態管理部45が、プログラムから特殊命令Xを介さずに指定された値を状態管理部45のレジスタに設定することができたのに対し、プロセッサ状態管理部49はプログラムから特殊命令Xを介さずに設定命令を受けた場合にはエラーを返す点が異なる。
この他、暗号化されたデータを蓄積しておく暗号化データ蓄積部を設けてもよいが、必須ではないため、図18では省略している。
第4の実施形態では、サーバ1と認証を行う処理に先立ち、サーバ1と認証を行うための秘密鍵をデータ記録装置3にインストールする処理を行う。秘密鍵を生成する際に、公開鍵方式を採用する場合と共有鍵を採用する場合がある。
図19(a)は公開鍵方式を採用する場合の認証用秘密鍵の設定フェーズの処理手順の一例を示すフローチャート、図19(b)は共通鍵方式を採用する場合の認証用秘密鍵の設定フェーズの処理手順の一例を示すフローチャートである。
図19(a)の処理では、データ記録装置3の製造側またはサーバ1側で、まずShadowプログラムと認証用の秘密鍵を生成する(ステップS191)。そして、Shadowプログラムのハッシュ値(HashValue)を計算し(ステップS192)、データ記録装置3の公開鍵を取得する(ステップS193)。次に、以下の(5)式にしたがって認証用の秘密鍵鍵(ServerKey)を暗号化して(ステップS194)、データ記録装置3の暗号化データ蓄積部(不図示)に保存しておく(ステップS195)。データ記録装置3が暗号化データ蓄積部を備えていない場合は、Shadowプログラムと共にMBR Shadow格納部35に保存してもよい。
Output = Encrypt (ServerKey, HashValue, Key) …(5)
Output = Encrypt (ServerKey, HashValue, Key) …(5)
ここで、Encryptとは第2の実施形態で示した関数と同一である。すなわち、第2および第3引数を鍵として第1引数の値を暗号化し、その暗号化結果が出力(Output)となる。Key(鍵)には秘密情報格納部15の鍵管理部42に格納された鍵の値を用いる。
暗号化方式に公開鍵方式を用いる場合、秘密情報格納部15の鍵管理部42の秘密鍵に対応する公開鍵によって認証用の秘密鍵を暗号化することになるが、サーバ1が公開鍵をデータ記録装置3からネットワーク経由で取得して認証用の秘密鍵を暗号化してもよいし、データ記録装置3の製造時に暗号化してもよいし、認証用の秘密鍵はサーバ1からネットワーク上に配布してデータ記録装置3がインストールする際にデータ記録装置3内のプログラムで鍵管理部42の公開鍵で暗号化して暗号化認証鍵を保存するようにしてもよい。
図19(b)の処理は、ステップS203の処理だけが図19(a)と異なる。ステップS203では、データ記録装置3の秘密鍵を取得する。ステップS204では、秘密鍵を暗号化する。
暗号化に共通鍵方式を用いる場合、秘密情報格納部15の鍵管理部42に格納された値をサーバ1側でも管理している場合は、上述の認証用秘密鍵の暗号化処理をサーバ1側で行ってもよいし、データ記録装置3の製造時に行ってもよいし、認証用の秘密鍵はサーバ1からネットワーク上で配布してデータ記録装置3がインストールする際にデータ記録装置3内のプログラムで鍵管理部42の秘密鍵で暗号化して暗号化認証鍵を保存するようにしてもよい。
次に、Shadowプログラムと認証用秘密鍵を使ってサーバ1と認証を行う処理について説明する。
図20は第4の実施形態におけるShadowプログラムの処理手順の一例を示すフローチャートである。
一般に、プログラムが実行される際、プログラムを主メモリ27上に展開し、プロセッサ26aはその主メモリ27上のプログラムを実行する。Shadowプログラムも同様に主メモリ27上に展開されてプロセッサ26aにより実行される(ステップS211)。主メモリ27上に展開するまでの処理は起動プログラム格納部21に格納された起動プログラムが行えばよい。この起動プログラムがShadowプログラムを読み込んで実行する。
Shadowプログラムは、プロセッサ26aの特殊命令Xが発行された場合に、主メモリ27上に展開されたプログラム情報のどこからどこまでのハッシュ値を計算すべきかを指示するために、主メモリ27のアドレスと範囲をプロセッサ26aの主メモリ27範囲指定レジスタ53に設定する(ステップS212)。このときにShadowプログラムが設定する範囲は、主メモリ27上に展開されたShadowプログラムのプログラム部分、もしくはプログラム部分とデータ部分となるように設定する。さらに、プログラム開始アドレスはハッシュ値計算に用いたアドレス範囲に含まれる位置とするように設定する。また、プロセッサ26aが特殊命令Xの実行後に実行するプログラムのアドレスを指定するために実行開始アドレス指定レジスタ54にアドレスを設定する。
その後、Shadowプログラムはプロセッサ26aに対して特殊命令Xを発行する(ステップS213)。プロセッサ26aは特殊命令Xを実行するが、この時に特定のレジスタに設定された値を参照し、その値が指し示す主メモリ27アドレスの範囲のハッシュ値を計算し(ステップS214)、計算されたハッシュ値を秘密情報格納部15のプロセッサ状態管理部49に格納することを指示するコマンドを発行する(ステップS215)。このハッシュ値の計算とコマンドの発行の処理はプログラムではなく、プロセッサ26a自身が行う。
秘密情報格納部15は、受信したコマンドがプロセッサ26aからか、あるいはプロセッサ26aで実行されたプログラムからかを判別し(ステップS216)、プロセッサ26aからの場合のみ受け付け、プロセッサ26aで実行されたプログラムからであれば拒否してエラーを返す(ステップS217)。
受信したコマンドがプロセッサ26aであれば、プロセッサ状態管理部49にハッシュ値が設定される(ステップS218)。
その後、プロセッサ26aは実行開始アドレス指定レジスタ54で指定されたアドレスに存在する命令を汎用コマンド処理部51で処理する。このアドレスにはShadowプログラムのコード部分が指定されており、Shadowプログラムの処理が継続する。
Shadowプログラムは秘密情報格納部15に対して、サーバ認証用暗号化秘密鍵に蓄積されているデータを復号するようコマンドを送信する(ステップS219)。秘密情報格納部15はこのコマンドを受信すると、以下の(6)式にしたがって暗号化秘密鍵を復号する(ステップS220)。
Output = Decrypt (Input, RegisterValue, Key) …(6)
Output = Decrypt (Input, RegisterValue, Key) …(6)
ここで、Decryptとは第2の実施形態で示した関数と同一である。すなわち、第2および第3引数を鍵として第1引数の値を復号し、その復号結果が出力(Output)である。ここで、Inputは暗号化サーバ認証用秘密鍵であり、RegisterValueにはプロセッサ状態管理部49の値が入力値となる。出力値(Output)が平文サーバ認証用秘密鍵の値となる。
次に、この平文サーバ認証用秘密鍵の値を使ってサーバ1と認証処理を行うが(ステップS221)、その処理手順については、上述した第1~第3実施形態で述べた手順に従えばよい。
なお、特殊命令Xを送信してから平文サーバ認証用秘密鍵を取得するまでの処理については、割り込み処理が発生して他のプログラムが動作することや、デバッグモードに遷移することのないようプロセッサ26aを制御することが望ましい。
なお、Shadowプログラムを終了する前に、主メモリ27上で平文サーバ認証用秘密鍵を配置した部分を別の値で上書きするなどして消去しておくことが望ましい。
このように、第4の実施形態では、RegisterValueはプロセッサ状態管理部49の値、すなわちプロセッサ26aしか設定できない値である点がポイントである。一般にプロセッサ26aは、ハードウェアで実現される。ハードウェアの改変は非常に困難であるため、プロセッサ状態管理部49にShadowプログラムのハッシュ値以外の値を格納するよう攻撃することも困難である。また、秘密情報格納部15に格納されたShadowプログラムのハッシュ値が正当な値でないと平文サーバ1用認証秘密鍵を取得することができない。これにより、Shadowプログラムしか平文サーバ1用認証秘密鍵を復号できないことが保証できるため、安全にパスワードを保護することができる。また平文サーバ認証用秘密鍵はShadowプログラムとは独立して配布することができるため、サーバ認証用秘密鍵を更新する場合でも、Shadowプログラムを更新する必要がない。
なお、これまでは説明を簡略化するためにドライブ部4がデータ記録部6を備えていない構成を説明した。ドライブ部4にデータ記録部6があり、サーバ認証用秘密鍵を保護する代わりに、データ記録部6のアンロック制御に用いるパスワードを保護する場合にも、本実施形態を適用可能である。
図21はアンロック制御用のパスワードを保護可能な第4の実施形態におけるデータ記録装置3の概略構成の一例を示すブロック図である。図21のデータ記録装置3は、図16のアクセス制御部7とデータ記録部6の内部構成を図4と同様にしたものであり、ブロック構成として比較すると、図4のプロセッサ26とは別個のプロセッサ26aを設けたことのみが異なる。
図20の処理でShadowプログラムとサーバ認証用暗号化秘密鍵をデータ記録装置3にインストールした手順と同様の手順で、Shadowプログラムとデータ記録部6のアンロック制御用の暗号化パスワードをインストールすればよい。暗号化パスワードを復号したパスワードは、データ記録部6をアンロックするために用いられ、このパスワードは、アクセス制御部7のホスト認証部32に格納されたパスワードの値と一致するようにしておく。
暗号化パスワードのインストール処理は、データ記録装置3の製造時に行ってもよいし、データ記録装置3の製造時にデータ記録装置3のShadowプログラムの中に暗号化パスワードを含めてMBR Shadow設定部34にインストールしておいてもよいし、インターネット2のサーバ1側でパスワードを生成し、インターネット2経由でパスワードをデータ記録装置3に送信し、データ記録装置3のShadowプログラムが上述の式にしたがってパスワードを暗号化して暗号化データ蓄積部(不図示)に保存してもよいし、暗号化パスワードを含んだShadowプログラムを生成してインターネット2経由でShadowプログラムをデータ記録装置3に送信し、データ記録装置3がMBR Shadow設定部34にインストールしてもよい。
次に、Shadowプログラムとパスワードを使ってデータ記録部6をアンロックする処理について説明する。
図22は第4の実施形態におけるShadowプログラムが行うアンロックフェーズの処理手順の一例を示すフローチャートである。図20ではサーバ認証用秘密鍵を保護対象として、プロセッサ状態管理部49の値を使って復号したのに対し、図22ではデータ記録部6をアンロックするためのパスワードを保護対象とする点が異なるが、全体的な処理の流れは図20と同様である。
なお、ステップS240で暗号化パスワードを復号して平文パスワードを生成する。その後、サーバ1との認証を行い(ステップS241)、サーバ1との認証に成功すると、平文パスワードの値をドライブ部4に送信して、ロック制御部33によりデータ記録部6をアンロックする(ステップS242)。ステップS242の処理については、上述した第1~第3実施形態で説明した手順に従えばよい。これにより、特定のShadowプログラムでしか平文パスワードを取得できなくなり、安全にパスワードを保護することができる
このように、第4の実施形態では、プロセッサ26aが特殊命令Xを実行することにより、サーバ認証用秘密鍵やデータ記録部6のアンロック制御用の暗号化パスワードを生成するため、Shadowプログラム自体で秘密鍵やパスワードを暗号化する場合よりも、より安全に暗号化処理を行え、不正に暗号化の仕組みを解読されるおそれが少なくなる。
このように、第4の実施形態では、プロセッサ26aが特殊命令Xを実行することにより、サーバ認証用秘密鍵やデータ記録部6のアンロック制御用の暗号化パスワードを生成するため、Shadowプログラム自体で秘密鍵やパスワードを暗号化する場合よりも、より安全に暗号化処理を行え、不正に暗号化の仕組みを解読されるおそれが少なくなる。
(第5の実施形態)
第4の実施形態では、Shadowプログラムが暗号化されていない平文の状態か、暗号化されていてもShadowプログラムを復号するための鍵はShadowプログラムに内包されていた。第5の実施形態では、Shadowプログラムを機器にインストールする前に、Shadowプログラムそのものを事前に暗号化しておき、かつ暗号化Shadowプログラムと、暗号化Shadowプログラムを復号する鍵を別々に配布することに特徴がある。
第4の実施形態では、Shadowプログラムが暗号化されていない平文の状態か、暗号化されていてもShadowプログラムを復号するための鍵はShadowプログラムに内包されていた。第5の実施形態では、Shadowプログラムを機器にインストールする前に、Shadowプログラムそのものを事前に暗号化しておき、かつ暗号化Shadowプログラムと、暗号化Shadowプログラムを復号する鍵を別々に配布することに特徴がある。
第5の実施形態によるデータ記録装置3の概略構成は図16と同一である。第5の実施形態では、Shadowプログラムとパスワードを使ってデータ記録部6をアンロックする処理に先立ち、暗号化プログラム鍵とShadowプログラムをデータ記録装置3にインストールする処理を行う。このインストール処理を行うために、まずShadowプログラムと平文パスワードを生成する。
図23は第5の実施形態におけるShadowプログラムの構造の一例を示す図である。Shadowプログラムは平文コード部分71、暗号化コード部分72、それにデータ部分73から構成される。
平文コード部分71は少なくともShadowプログラムの最初に実行される部分(エントリーポイント74)を含む。
暗号化コード部分72は平文コード部分71の次に実行される部分である。この部分は後述するプログラム鍵によって暗号化されている。
データ部分73はShadowプログラムの保有するデータが格納されている部分である。
プログラム鍵は暗号化コード部分72を暗号化する鍵であり、Shadowプログラムとは別に用意しておく。このプログラム鍵(ProgramKey)は少なくとも暗号化コード部分72を含むプログラムのハッシュ値(HashValue)を使って以下の(7)式にしたがって暗号化する。
Output = Encrypt (Program Key, HashValue, Key) …(7)
Output = Encrypt (Program Key, HashValue, Key) …(7)
ここで、Encryptとは第2の実施形態で示した関数と同一である。すなわち、第2および第3引数を鍵として第1引数の値を暗号化し、その暗号化結果が出力(Output)となる。Key(鍵)には秘密情報格納部15の鍵管理部42に格納された鍵の値を用いる。
暗号化方式に公開鍵方式を用いる場合、秘密情報格納部15の鍵管理部42の秘密鍵に対応する公開鍵によってプログラム鍵を暗号化することになるが、サーバ1が公開鍵をデータ記録装置3からネットワーク経由で取得してプログラム鍵を暗号化してもよいし、データ記録装置3の製造時に暗号化してもよいし、プログラム鍵はサーバ1からネットワーク上で配布してデータ記録装置3がインストールする際にデータ記録装置3内のプログラムで鍵管理部42の公開鍵で暗号化して暗号化プログラム鍵を保存してもよい。
暗号化に共通鍵方式を用いる場合、秘密情報格納部15の鍵管理部42に格納された値をサーバ1側でも管理している場合は、上述のプログラム鍵の暗号化処理をサーバ1側で行ってもよいし、データ記録装置3の製造時に行ってもよいし、プログラム鍵はサーバ1からネットワーク上で配布してデータ記録装置3がインストールする際にデータ記録装置3内のプログラムで鍵管理部42のプログラム鍵で暗号化して暗号化プログラム鍵を保存するようにしてもよい。
次に、Shadowプログラムを復号する処理について説明する。図24は第5の実施形態におけるShadowプログラムが行う復号処理手順の一例を示すフローチャートである。
まず、プロセッサ26aは、起動プログラム格納部21に格納された起動プログラムを実行し、この起動プログラムからShadowプログラムを読み込む。Shadowプログラム中の最初に実行される部分は平文コードのエントリーポイント74(通常は平文コードの最初のアドレス)である(ステップS251)。
次に、Shadowプログラムは、プロセッサ26aの特殊命令Xが発行された場合にどこからどこまでのハッシュ値を計算すべきかを指示するために、アドレスと範囲をプロセッサ26aの主メモリ27範囲指定レジスタ53に設定する(ステップS252)。この主メモリ27範囲は少なくとも暗号化コード部分72を含み、主メモリ27の内容は上述したプログラム鍵を暗号化する時に用いた内容と一致していなければならない。
その後、Shadowプログラムはプロセッサ26aに対して特殊命令Xを発行する。プロセッサ26aは第4の実施形態で示したのと同じ手法で特殊命令Xを実行する(ステップS253)。その後、図22のステップS194~S198と同様の手順で、ハッシュ値をプロセッサ状態管理部49に蓄積する(ステップS254~S258)。
次に、Shadowプログラムは秘密情報格納部15に対して、暗号化プログラム鍵を復号するようコマンドを送信する(ステップS259)。暗号化プログラム鍵は、予めホスト部5の不図示の暗号化データ蓄積部に保存されているか、あるいはShadowプログラムに含まれているか、あるいはサーバから取得するものとする。秘密情報格納部15はこのコマンドを受信すると、以下の(8)式にしたがってデータを復号する(ステップS260)。
Output = Decrypt (Input, RegisterValue, Key) …(8)
Output = Decrypt (Input, RegisterValue, Key) …(8)
ここで、Decryptとは第2の実施形態で示した関数と同一である。すなわち、第2および第3引数を鍵として第1引数の値を復号し、その復号結果が出力(Output)である。ここで、Inputは暗号化プログラム鍵であり、RegisterValueにはプロセッサ状態管理部49の値が入力値となる。出力値(Output)が平文プログラム鍵の値となる。
Shadowプログラムは平文プログラム鍵を使い、暗号コード部分を復号する(ステップs261)。そして平文の暗号コード部分に含まれた命令を実行する。
この後、暗号コード部分のShadowプログラムの中で、サーバ認証を行ったり、ドライブ部4のデータ記録部6がロックされている場合はアンロック処理を行ったりする。Shadowプログラムの中でサーバ認証用の秘密鍵やデータ記録部6をアンロックするパスワードなどの秘密データを取得する手法として、(1)予め暗号コードの中に秘密データを埋め込んでおく手法、(2)暗号コードの中には秘密データを復号する鍵を埋め込んでおき、秘密データはデータ部分73に暗号化して埋め込んでおく。暗号化コード部分72に埋め込んでおいた鍵を使ってデータ部分73の秘密データを復号する手法などがある。
なお、暗号コードの中に予め暗号コード部分のハッシュ値を埋め込んでおき、そのハッシュ値と秘密情報管理部のプロセッサ状態管理部49の値が一致するか確認処理を行い、値が一致しない場合は以降の処理は行わずにエラー処理を行うようにしてもよい。
このように、第5の実施形態では、Shadowプログラムと、Shadowプログラムの復号に用いるプログラム鍵を別々に暗号化しておき蓄積しておく。MBR Shadow格納部35に格納されている間、Shadowプログラムは暗号化されている。したがって、仮に攻撃者がファイルやイメージデータとしてShadowプログラムを入手したとしても、暗号化されているため解析は困難である。また暗号化されたShadowプログラムを復号するためのプログラム鍵はShadowプログラムの実行時にのみ平文になり、プログラム鍵の復号も容易ではない。また、Shadowプログラムの中に秘密のデータを含めても解読されるおそれがないため、サーバ認証用の秘密データや、データ記録部6をアンロックするパスワードなど別のデータをShadowプログラムに安全に含めることができる。
さらに、Shadowプログラムとプログラム鍵は暗号化された状態でMBR Shadow格納部35に格納されるため、サーバ1で予め暗号化したShadowプログラムとプログラム鍵を生成すれば、サーバ1とデータ記録装置3の間の通信経路での漏洩を気にする必要はない。このため、サーバ1側でShadowプログラムとプログラム鍵を更新して配布する作業を安全かつ簡易に行うことができる。
最後に、本明細書に出てくる種々の鍵あるいはパスワードの役割をまとめて説明する。プログラム鍵とは、プログラムを復号するために使用する鍵である。パスワードとは、ドライブ部4をアンロックするために使用する値である。サーバ認証用の秘密鍵とは、サーバとの認証を行うために使用する鍵である。鍵管理部42の秘密鍵とは鍵管理部42に格納されており、秘密情報格納部15bが入力データを暗号化・復号するために使用する値である。これら鍵およびパスワードは、以下の順序で使用される。
1)暗号化プログラム鍵を秘密情報格納部で復号する。この時の鍵は鍵管理部の秘密鍵を用いる暗号化プログラム鍵は、暗号化データ蓄積部に保存されているか、Shadowプログラムに含まれているか、サーバから受信する。
2)プログラム鍵を使ってプログラムを復号する。
3)暗号化パスワードと暗号化サーバ認証用秘密鍵を復号し、それぞれパスワードとサーバ認証用の秘密鍵を取得する。暗号化パスワードと暗号化サーバ認証用秘密鍵は、Shadowプログラムに含まれている。
4)復号したサーバ認証用秘密鍵を使用してサーバ認証を行う。
5)復号したパスワードを使用してドライブ部4をアンロックする。
2)プログラム鍵を使ってプログラムを復号する。
3)暗号化パスワードと暗号化サーバ認証用秘密鍵を復号し、それぞれパスワードとサーバ認証用の秘密鍵を取得する。暗号化パスワードと暗号化サーバ認証用秘密鍵は、Shadowプログラムに含まれている。
4)復号したサーバ認証用秘密鍵を使用してサーバ認証を行う。
5)復号したパスワードを使用してドライブ部4をアンロックする。
なお、昨今では原子力や火力など従来の発電に加えて、太陽光や風力などの再生可能エネルギーを併用する際、電力品質の安定化を図るために次世代電力網(スマートグリッド)が構築されている。
図25は次世代電力網の概略構成の一例を示すブロック図である。図25に示すように、次世代電力網では、電力使用量を集計するスマートメーター(SM)61と、家電機器を管理するホームサーバ(Home Energy Management System, HEMS)62が各家庭に設置される。また、商業ビルを対象として、ビル内の電気機器を管理するサーバ(Building Energy Management System, BEMS)63がビル毎に設置される。SM61は、コンセントレータ64とよばれる中継器によって数台ごとにまとめられ、通信網を介してメーターデータ管理システム(Meter Data Management System, MDMS)65と通信する。MDMS65は、各家庭のSMから一定の間隔で電力使用量を受信して、記憶する。エネルギー管理システム(Energy Management System, EMS)66は、MDMS65に集まった複数の家庭の電力使用量あるいは、電力系統に設置されたセンサからの情報に基づいて、各家庭のSM61やホームサーバ62に対して電力使用を抑制するよう要求するなどの電力制御を行う。また、EMS66は遠隔端末ユニット(Remote Terminal Unit, RTU)67に接続された太陽光発電や風力発電などの分散電源68、同じくRTU67に接続された蓄電装置69、またRTU67に接続された発電側との間を制御する送配電制御装置70を制御し、グリッド全体の電圧および周波数を安定化するための制御を行う。
このように、MDMS65とコンセントレータ64、BEMS63とEMS66、EMS66とHEMS62はネットワーク71で接続されており、かつ、スマートメーター61で動作するプログラムはプライバシー情報などの秘密情報を格納する可能性がある。
上述した各実施形態で示した構成において、データ記録装置3をスマートメーター61内に設置し、サービス提供サーバ1をMDMS65内に設けることにより、上記各実施形態に係る情報提供システムは次世代電力網にも応用することが可能である。
さらに、上述した第3の実施形態を応用すれば、サーバ1を介してShadowプログラムを容易に配布できるため、スマートメーター61で動作するプログラムの一部をShadowプログラムとして構成することにより、プログラムの改変等を確実に防止して、プログラムの更新を安全に行うことができる。
上述した実施形態で説明した情報記録装置は、ハードウェアで構成してもよいし、ソフトウェアで構成してもよい。ソフトウェアで構成する場合には、情報処理装置の少なくとも一部の機能を実現するプログラムをフレキシブルディスクやCD-ROM等の記録媒体に収納し、コンピュータに読み込ませて実行させてもよい。記録媒体は、磁気ディスクや光ディスク等の携帯可能なものに限定されず、ハードディスク装置や主メモリ27などの固定型の記録媒体でもよい。
また、情報記録装置の少なくとも一部の機能を実現するプログラムを、インターネット等の通信回線(無線通信も含む)を介して頒布してもよい。さらに、同プログラムを暗号化したり、変調をかけたり、圧縮した状態で、インターネット等の有線回線や無線回線を介して、あるいは記録媒体に収納して頒布してもよい。
上記の記載に基づいて、当業者であれば、本発明の追加の効果や種々の変形を想到できるかもしれない。したがって、本発明の態様は、上述した個々の実施形態には限定されない。特許請求の範囲に規定された内容およびその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲で種々の追加、変更および部分的削除が可能である。
1 サーバ
3 データ記録装置
4 ドライブ部
5 ホスト部
6 データ記録部
7 アクセス制御部
8 MBR格納部
9 OS格納部
10 ユーザデータ格納部
11 プログラム処理部
12 起動処理部
15 秘密情報格納部
26 プロセッサ
27 主メモリ
32 ホスト認証部
33 ロック制御部
34 MBR Shadow設定部
35 MBR Shadow格納部
42 鍵管理部
43 暗号処理部
44 復号処理部
45 状態管理部
52 特殊命令処理部
55 ハッシュ計算処理部
61 スマートメーター
3 データ記録装置
4 ドライブ部
5 ホスト部
6 データ記録部
7 アクセス制御部
8 MBR格納部
9 OS格納部
10 ユーザデータ格納部
11 プログラム処理部
12 起動処理部
15 秘密情報格納部
26 プロセッサ
27 主メモリ
32 ホスト認証部
33 ロック制御部
34 MBR Shadow設定部
35 MBR Shadow格納部
42 鍵管理部
43 暗号処理部
44 復号処理部
45 状態管理部
52 特殊命令処理部
55 ハッシュ計算処理部
61 スマートメーター
Claims (11)
- デジタルコンテンツを含むデジタル情報を記録するドライブ部と、
前記ドライブ部に対するデジタル情報の記録および読み出しを制御するホスト部と、を備え、
前記ホスト部は、
サーバとの通信を行うネットワーク処理部と、
ブートプログラムに先だって実行されるシャドウ・ブートプログラムの実行が可能か否かを判定するシャドウ判定部と、
前記シャドウ判定部により実行可能と判定された場合に、前記ドライブ部から前記シャドウ・ブートプログラムを読み込むシャドウ読み込み部と、
前記シャドウ・ブートプログラムを実行するシャドウ実行部と、
前記シャドウ・ブートプログラムの処理手順に従って、前記サーバとの認証を行うサーバ認証部と、
前記サーバとの認証に成功した場合に、前記ドライブ部に前記ドライブ部のアンロックに使用するパスワードを送信するパスワード送信部と、を備え、
前記ドライブ部は、
前記シャドウ・ブートプログラムを格納するシャドウ・ブートプログラム格納部と、
前期ブートプログラムを格納するブートプログラム格納部と、
任意のデジタルデータを含むユーザデータを格納するユーザデータ格納部と、
前記ホスト部から送信されたパスワードが予め登録されたパスワードと一致するか否かを判定するパスワード照合部と、
前記パスワード照合部にて一致すると判定されると、前記ユーザデータ格納部のロックを解除してアクセスを許可するロック制御部と、を備えることを特徴とする情報記録装置。 - 前記ホスト部は、
前記パスワードを生成するパスワード生成部と、
前記シャドウ・ブートプログラムの実行時に、コード情報およびデータが展開される主メモリと、
前記シャドウ・ブートプログラムが特定命令を実行した場合における前記主メモリの特定位置または特定範囲の値、あるいは前記サーバ認証部による認証成功後に前記サーバから取得した値を用いて、前記パスワードを暗号化した暗号化パスワードを生成する暗号処理部と、を有し、
前記ロック制御部は、前記パスワードを用いて前記ユーザデータ格納部をロックすることを特徴とする請求項1に記載の情報記録装置。 - 前記ホスト部は、
前記サーバ認証部による認証成功後に前記サーバから前記パスワードを取得するパスワード取得部と、
前記シャドウ・ブートプログラムの実行時に、コード情報およびデータが展開される主メモリと、
前記シャドウ・ブートプログラムが特定命令を実行した場合における前記主メモリの特定位置または特定範囲の値、あるいは前記サーバ認証部による認証成功後に前記サーバから取得した値を用いて、前記パスワードを暗号化した暗号化パスワードを生成する暗号処理部と、を有し、
前記ロック制御部は、前記パスワードを用いて前記ユーザデータ格納部をロックすることを特徴とする請求項1に記載の情報記録装置。 - 前記サーバ認証部による認証成功後に、前記シャドウ・ブートプログラムが前記特定命令を実行した場合における前記主メモリの特定位置または特定範囲の値、あるいは前記サーバ認証部による認証成功後に前記サーバから取得した値を用いて、前記前記暗号化パスワードを復号する復号処理部を備え、
前記ロック制御部は、前記復号処理部で復号されたパスワードが前記パスワード照合部にて一致すると判定されると、前記ユーザデータ格納部のロックを解除してアクセスを許可することを特徴とする請求項2に記載の情報記録装置。 - 前記ユーザデータ格納部は、複数のデータ領域に分かれており、
前記暗号処理部は、前記複数のデータ領域のそれぞれごとに、固有の前記暗号化パスワードを生成し、
前記ロック制御部は、前記複数のデータ領域のそれぞれごとに、ロックおよびアンロックの制御を行うことを特徴とする請求項2に記載の情報記録装置。 - プログラムを記録するドライブ部と、
プログラムを実行するホスト部と、を備え、
前記ホスト部は、
ブートプログラムに先だって実行されるシャドウ・ブートプログラムの実行が可能か否かを判定するシャドウ判定部と、
前記シャドウ判定部により実行可能と判定された場合に、前記ドライブ部から前記シャドウ・ブートプログラムを読み込むシャドウ読み込み部と、
暗号化されたプログラム鍵を格納する暗号化データ蓄積部と、
固有の鍵を格納する秘密情報格納部と、
前記シャドウ・ブートプログラムは、暗号化されていない平文プログラムと、暗号化された暗号化プログラムとを含み、
前記シャドウ・ブートプログラムの平文プログラムにて特定の命令が発行されると、前記シャドウ・ブートプログラムを展開した主メモリの特定位置または特定範囲のハッシュ値を計算し、前記秘密情報格納部に格納するハッシュ計算部と、
前記秘密情報格納部に格納したハッシュ値と、前記秘密情報格納部に格納した前記固有の鍵を用いて前記暗号化データ蓄積部に格納された前記暗号化された秘密鍵を復号する復号処理部と、
前期復号処理部で復号した復号した前記秘密鍵を使い、前記シャドウ・ブートプログラムの前記暗号化された暗号化プログラムを復号するプログラム復号部と、
前記シャドウ・ブートプログラムを実行する演算処理部と、を有することを特徴とする情報記録装置。 - 前記シャドウ・ブートプログラム格納部は、
前記ドライブ部に元からインストール済で最初に実行される初期プログラムを格納する初期プログラム格納部と、
所定の条件を満たしたときに前記サーバからダウンロードされて前記初期プログラムに引き続いて実行されるダウンロードプログラムを格納するダウンロード格納部と、を有し、
前記ユーザデータ格納部は、前記初期プログラムに対応したユーザデータを格納する第1のデータ領域と、前記ダウンロードプログラムに対応したユーザデータを格納する第2のデータ領域とを有し、
前記ロック制御部は、前記シャドウ実行部が前記初期プログラムを実行した結果、前記所定の条件を満たす場合には前記第1のデータ領域のロックを解除し、その後に前記シャドウ実行部が前記ダウンロードプログラムを実行し、前記サーバとの認証に成功した場合には前記第2のデータ領域のロックを解除することを特徴とする請求項1に記載の情報記録装置。 - 前記ホスト部は、前記シャドウ・ブートプログラムの実行時に、コード情報およびデータが展開される主メモリを有し、
前記ロック制御部は、前記シャドウ実行部が前記初期プログラムを実行した結果、前記所定の条件を満たす場合には前記第1のデータ領域のロックを解除し、その後に前記シャドウ実行部が前記ダウンロードプログラムを実行し、前記主メモリの特定位置または特定範囲の値が期待値と一致し、かつ前記サーバとの認証に成功した場合には前記第2のデータ領域のロックを解除することを特徴とする請求項7に記載の情報記録装置。 - 前記ドライブ部は、オペレーティング・システムのプログラムを格納するOS格納部を有し、
前記ロック制御部は、前記シャドウ実行部が前記初期プログラムを実行した結果、前記所定の条件を満たす場合には、前記OS格納部および前記第1のデータ領域のロックを解除することを特徴とする請求項7に記載の情報記録装置。 - デジタル情報を記録するドライブ部と、
前記ドライブ部に対するデジタル情報の記録および読み出しを制御するホスト部と、を備え、
前記ホスト部は、
サーバとの通信を行うネットワーク処理部と、
ブートプログラムに先だって実行されるシャドウ・ブートプログラムの実行が可能か否かを判定するシャドウ判定部と、
前記シャドウ判定部により実行可能と判定された場合に、前記ドライブ部から前記シャドウ・ブートプログラムを読み込むシャドウ読み込み部と、
前記シャドウ・ブートプログラムを実行する演算処理部と、
暗号化された秘密鍵を格納する秘密鍵格納部と、
前記演算処理部により生成された暗号情報を用いて前記秘密鍵を復号する秘密鍵復号部と、
前記秘密鍵復号部で復号された前記秘密鍵を用いて、前記サーバとの認証を行うサーバ認証部と、を有し、
前記演算処理部は、前記シャドウ・ブートプログラムにて特定の命令が発行されると、前記シャドウ・ブートプログラムを展開した主メモリの特定位置または特定範囲の値を用いて前記暗号情報を生成することを特徴とする情報記録装置。 - 前記ドライブ部は、前記シャドウ・ブートプログラムを格納するシャドウ・ブートプログラム格納部と
前記ブートプログラムを格納するブートプログラム格納部とを有し、
前記シャドウ・ブートプログラムは、暗号化されていない平文プログラムと、暗号化された暗号化プログラムとを含み、
前記ホスト部は、前記暗号情報を用いて前記暗号化プログラムを復号するプログラム復号部を有することを特徴とする請求項10に記載の情報記録装置。
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012506744A JP5380604B2 (ja) | 2010-03-26 | 2010-03-26 | 情報記録装置 |
PCT/JP2010/055426 WO2011118034A1 (ja) | 2010-03-26 | 2010-03-26 | 情報記録装置 |
US13/626,972 US20130024679A1 (en) | 2010-03-26 | 2012-09-26 | Information recording apparatus |
US15/055,686 US9756033B2 (en) | 2010-03-26 | 2016-02-29 | Information recording apparatus with shadow boot program for authentication with a server |
US15/647,408 US10547604B2 (en) | 2010-03-26 | 2017-07-12 | Information recording apparatus with shadow boot program for authentication with a server |
US16/711,592 US11297045B2 (en) | 2010-03-26 | 2019-12-12 | Information recording apparatus with shadow boot program for authentication with a server |
US17/689,173 US11838282B2 (en) | 2010-03-26 | 2022-03-08 | Information recording apparatus with server-based user authentication for accessing a locked operating system storage |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2010/055426 WO2011118034A1 (ja) | 2010-03-26 | 2010-03-26 | 情報記録装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/626,972 Continuation US20130024679A1 (en) | 2010-03-26 | 2012-09-26 | Information recording apparatus |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2011118034A1 true WO2011118034A1 (ja) | 2011-09-29 |
Family
ID=44672623
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2010/055426 WO2011118034A1 (ja) | 2010-03-26 | 2010-03-26 | 情報記録装置 |
Country Status (3)
Country | Link |
---|---|
US (3) | US20130024679A1 (ja) |
JP (1) | JP5380604B2 (ja) |
WO (1) | WO2011118034A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10028038B2 (en) | 2013-12-13 | 2018-07-17 | Kabushiki Kaisha Toshiba | Communication control device |
JP2021077041A (ja) * | 2019-11-07 | 2021-05-20 | 日本電気株式会社 | メモリデバイス管理システム、メモリデバイス管理方法およびプログラム |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11297045B2 (en) * | 2010-03-26 | 2022-04-05 | Kioxia Corporation | Information recording apparatus with shadow boot program for authentication with a server |
JP6017336B2 (ja) * | 2013-02-12 | 2016-10-26 | 株式会社東芝 | データ管理装置および電力使用量計算システム |
US10454676B2 (en) * | 2015-02-13 | 2019-10-22 | International Business Machines Corporation | Automatic key management using enterprise user identity management |
US10348727B2 (en) | 2015-02-13 | 2019-07-09 | International Business Machines Corporation | Automatic key management using enterprise user identity management |
US10382201B1 (en) * | 2015-09-22 | 2019-08-13 | Seagate Technology Llc | Removable circuit for unlocking self-encrypting data storage devices |
CN106557802B (zh) | 2015-09-30 | 2019-08-30 | 东芝存储器株式会社 | 存储装置以及信息处理系统 |
CN108885653B (zh) | 2016-03-29 | 2022-12-09 | 株式会社理光 | 服务提供系统、服务递送系统、服务提供方法和程序 |
JP6620884B2 (ja) * | 2016-03-29 | 2019-12-18 | 株式会社リコー | サービス提供システム、サービス授受システム、サービス提供方法、及びプログラム |
CN108780426B (zh) | 2016-03-29 | 2022-06-21 | 株式会社理光 | 服务提供系统、服务递送系统、服务提供方法和程序 |
US10721067B2 (en) * | 2016-08-10 | 2020-07-21 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Secure processor for multi-tenant cloud workloads |
CN106650476B (zh) * | 2016-12-14 | 2020-07-14 | 惠州Tcl移动通信有限公司 | 一种移动终端个人信息的自动防护方法及系统 |
US10460110B1 (en) | 2017-02-17 | 2019-10-29 | Seagate Technology Llc | Systems and methods for unlocking self-encrypting data storage devices |
US10678953B1 (en) | 2017-04-26 | 2020-06-09 | Seagate Technology Llc | Self-contained key management device |
US10484371B2 (en) * | 2017-05-22 | 2019-11-19 | Seagate Technology Llc | Device controller security system |
US11120151B1 (en) | 2017-08-02 | 2021-09-14 | Seagate Technology Llc | Systems and methods for unlocking self-encrypting data storage devices |
US10855451B1 (en) | 2017-08-02 | 2020-12-01 | Seagate Technology Llc | Removable circuit for unlocking self-encrypting data storage devices |
JP2019133345A (ja) | 2018-01-30 | 2019-08-08 | 東芝メモリ株式会社 | データ蓄積装置、データ処理システムおよびデータ処理方法 |
CN108959903B (zh) * | 2018-06-11 | 2022-03-04 | 超越科技股份有限公司 | 一种移动存储设备安全管控方法及系统 |
JP2021060721A (ja) | 2019-10-04 | 2021-04-15 | キオクシア株式会社 | メモリシステム |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000215167A (ja) * | 1999-01-26 | 2000-08-04 | Toshiba Corp | コンピュ―タシステム及びそのシステムのリモ―ト制御方法 |
JP2003196162A (ja) * | 2001-10-30 | 2003-07-11 | Hewlett Packard Co <Hp> | コンピュータセキュリティシステム |
JP2009246459A (ja) * | 2008-03-28 | 2009-10-22 | Konica Minolta Holdings Inc | 通信制御方法、通信制御プログラムおよび情報処理装置 |
JP2010020753A (ja) * | 2008-07-14 | 2010-01-28 | Toshiba Corp | 初期ブート画像のインストール方法、初期ブート画像の更新方法、及び記憶装置 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6711688B1 (en) * | 1999-11-30 | 2004-03-23 | International Business Machines Corporation | Pre-execution logon (PEL) |
US20020178366A1 (en) * | 2001-05-24 | 2002-11-28 | Amiran Ofir | Method for performing on behalf of a registered user an operation on data stored on a publicly accessible data access server |
JP4087149B2 (ja) * | 2002-05-20 | 2008-05-21 | 株式会社日立製作所 | ディスク装置共有システム、及び計算機 |
TW588243B (en) * | 2002-07-31 | 2004-05-21 | Trek 2000 Int Ltd | System and method for authentication |
US8386797B1 (en) * | 2002-08-07 | 2013-02-26 | Nvidia Corporation | System and method for transparent disk encryption |
US7584509B2 (en) | 2004-06-12 | 2009-09-01 | Microsoft Corporation | Inhibiting software tampering |
US7664834B2 (en) * | 2004-07-09 | 2010-02-16 | Maxsp Corporation | Distributed operating system management |
JP2006344112A (ja) * | 2005-06-10 | 2006-12-21 | Matsushita Electric Ind Co Ltd | 情報処理装置のセキュリティ装置およびセキュリティ方法 |
JP4793628B2 (ja) * | 2005-09-01 | 2011-10-12 | 横河電機株式会社 | Os起動方法及びこれを用いた装置 |
US7984283B2 (en) * | 2006-05-22 | 2011-07-19 | Hewlett-Packard Development Company, L.P. | System and method for secure operating system boot |
JP4956142B2 (ja) * | 2006-10-31 | 2012-06-20 | 株式会社東芝 | 情報処理装置、および日時情報変更方法 |
US20080133905A1 (en) * | 2006-11-30 | 2008-06-05 | David Carroll Challener | Apparatus, system, and method for remotely accessing a shared password |
TW201009581A (en) * | 2008-08-26 | 2010-03-01 | Asustek Comp Inc | Method and system for protecting data |
US8001581B2 (en) * | 2008-12-17 | 2011-08-16 | Dell Products L.P. | Methods and systems for embedded user authentication and/or providing computing services using an information handling system configured as a flexible computing node |
JP4672778B2 (ja) * | 2009-01-29 | 2011-04-20 | 東芝ストレージデバイス株式会社 | データ記憶装置 |
-
2010
- 2010-03-26 JP JP2012506744A patent/JP5380604B2/ja active Active
- 2010-03-26 WO PCT/JP2010/055426 patent/WO2011118034A1/ja active Application Filing
-
2012
- 2012-09-26 US US13/626,972 patent/US20130024679A1/en not_active Abandoned
-
2016
- 2016-02-29 US US15/055,686 patent/US9756033B2/en active Active
-
2017
- 2017-07-12 US US15/647,408 patent/US10547604B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000215167A (ja) * | 1999-01-26 | 2000-08-04 | Toshiba Corp | コンピュ―タシステム及びそのシステムのリモ―ト制御方法 |
JP2003196162A (ja) * | 2001-10-30 | 2003-07-11 | Hewlett Packard Co <Hp> | コンピュータセキュリティシステム |
JP2009246459A (ja) * | 2008-03-28 | 2009-10-22 | Konica Minolta Holdings Inc | 通信制御方法、通信制御プログラムおよび情報処理装置 |
JP2010020753A (ja) * | 2008-07-14 | 2010-01-28 | Toshiba Corp | 初期ブート画像のインストール方法、初期ブート画像の更新方法、及び記憶装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10028038B2 (en) | 2013-12-13 | 2018-07-17 | Kabushiki Kaisha Toshiba | Communication control device |
JP2021077041A (ja) * | 2019-11-07 | 2021-05-20 | 日本電気株式会社 | メモリデバイス管理システム、メモリデバイス管理方法およびプログラム |
US11573912B2 (en) | 2019-11-07 | 2023-02-07 | Nec Corporation | Memory device management system, memory device management method, and non-transitory computer-readable recording medium erasing data stored in memory device if a value of a first key and second key are different |
Also Published As
Publication number | Publication date |
---|---|
US10547604B2 (en) | 2020-01-28 |
US9756033B2 (en) | 2017-09-05 |
US20160182483A1 (en) | 2016-06-23 |
US20130024679A1 (en) | 2013-01-24 |
JPWO2011118034A1 (ja) | 2013-07-04 |
JP5380604B2 (ja) | 2014-01-08 |
US20170324720A1 (en) | 2017-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5380604B2 (ja) | 情報記録装置 | |
JP4906854B2 (ja) | 情報処理装置、情報記録装置、情報処理システム、プログラムアップデート方法、プログラムおよび集積回路 | |
US20200184042A1 (en) | Modular software protection | |
JP4064914B2 (ja) | 情報処理装置、サーバ装置、情報処理装置のための方法、サーバ装置のための方法および装置実行可能なプログラム | |
JP4278327B2 (ja) | コンピュータ・プラットフォームおよびその運用方法 | |
JP5021838B2 (ja) | 暗号化されたストレージデバイスについてのチップセット鍵管理サービスの利用の強制 | |
US9571484B2 (en) | Device certificate based appliance configuration | |
WO2009157142A1 (ja) | 情報処理装置、暗号鍵の管理方法、コンピュータプログラム及び集積回路 | |
CN113545006A (zh) | 远程授权访问锁定的数据存储设备 | |
US10282549B2 (en) | Modifying service operating system of baseboard management controller | |
KR20040030454A (ko) | 콘텐츠 이용권한 관리시스템, 콘텐츠 이용권한 관리방법및 정보처리장치와 컴퓨터 프로그램 | |
WO2013107362A1 (zh) | 一种保护数据的方法和系统 | |
US9055041B2 (en) | Device certificate based appliance configuration | |
EP2051181A1 (en) | Information terminal, security device, data protection method, and data protection program | |
US11838282B2 (en) | Information recording apparatus with server-based user authentication for accessing a locked operating system storage | |
JP5118700B2 (ja) | 仮想マシンのアクティブ化を伴う携帯可能な大容量記憶装置 | |
US20150047001A1 (en) | Application program execution device | |
US8667278B2 (en) | Information processing apparatus and data transmission method of information processing apparatus | |
JP5049179B2 (ja) | 情報処理端末装置及びアプリケーションプログラムの起動認証方法 | |
JP2012058803A (ja) | シンクライアントシステム、およびオペレーティングシステム更新方法 | |
KR101003242B1 (ko) | 유에스비 메모리 장치에 저장된 소프트웨어 불법복제방지 시스템 및 유에스비 메모리 장치에 저장된 소프트웨어를 실행하는 방법 | |
KR20180113292A (ko) | 외부 저장 장치에 저장되는 파일을 보안하는 보안 브로커 시스템 및 그 방법 | |
KR101611104B1 (ko) | 인터넷 인증 및 2차 생성 파일 암호화를 이용한 소프트웨어 부정 사용 방지 방법 | |
CN115756515A (zh) | 容器软件部署权限的校验方法、装置、设备及存储介质 | |
CN118656821A (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: 10848427 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2012506744 Country of ref document: JP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 10848427 Country of ref document: EP Kind code of ref document: A1 |