WO2008004524A1 - Dispositif de certification, dispositif de vérification, système de vérification, programme informatique et circuit intégré - Google Patents

Dispositif de certification, dispositif de vérification, système de vérification, programme informatique et circuit intégré Download PDF

Info

Publication number
WO2008004524A1
WO2008004524A1 PCT/JP2007/063248 JP2007063248W WO2008004524A1 WO 2008004524 A1 WO2008004524 A1 WO 2008004524A1 JP 2007063248 W JP2007063248 W JP 2007063248W WO 2008004524 A1 WO2008004524 A1 WO 2008004524A1
Authority
WO
WIPO (PCT)
Prior art keywords
program
terminal
information
key
verification
Prior art date
Application number
PCT/JP2007/063248
Other languages
English (en)
French (fr)
Inventor
Kouichi Kanemura
Yoshikatsu Ito
Tomoyuki Haga
Hideki Matsushima
Takayuki Ito
Original Assignee
Panasonic Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corporation filed Critical Panasonic Corporation
Priority to EP07768023.9A priority Critical patent/EP2037388A4/en
Priority to JP2008523675A priority patent/JP4950195B2/ja
Priority to US12/306,816 priority patent/US8296561B2/en
Publication of WO2008004524A1 publication Critical patent/WO2008004524A1/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • G06F21/445Program or device authentication by mutual authentication, e.g. between devices or programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3234Cryptographic 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 involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2129Authenticate client device independently of the user

Definitions

  • Verification device verification device, verification system, computer program, and integrated circuit
  • the present invention relates to a technology for proving its validity and verifying the validity of the other party in an information processing device that operates according to a computer program.
  • Patent Document 1 when a server that supplies an update program and an update module of a terminal perform mutual authentication and recognize that each other is correct, the update program is passed and the program in the terminal is updated.
  • the technology to update with the update program is disclosed.
  • Patent Document 2 the update program stored in the card after the card storing the update program and the update module of the terminal perform mutual authentication.
  • a technology is disclosed in which the terminal acquires the terminal and the terminal itself updates the terminal program.
  • Patent Document 1 JP-A-10-198571
  • Patent Document 2 Japanese Patent Laid-Open No. 2003-330745
  • the program update according to the conventional technology is configured such that the card server that supplies the update program and the update module of the terminal perform mutual authentication and recognize that they are correct, and then pass the update program. ing. This mechanism depends on the reliability of the update module on the terminal side.
  • the reliability of the update module may be impaired, and it is difficult to ensure reliable program updates.
  • the update module is also composed of software, the update module itself may be hacked. In this case, if the update module itself has been tampered with, it is possible to avoid the original update process itself or to make a mistaken decision as to whether or not the update is necessary. Disappear.
  • An object of the present invention is to provide a verification system, a verification device, a verification device, a verification method, a verification method, a computer program, and an integrated circuit.
  • the present invention provides a verification system comprising a verification device and a verification device, wherein the verification device targets the verification device as an operation target and has a hierarchical relationship.
  • a storage means for storing a plurality of operation programs, and a measurement means for measuring a characteristic amount indicating a characteristic of each of the operation programs loaded when each of the operation programs is loaded;
  • the proof means for generating proof information reflecting the feature quantity acquired for each of the other operation programs that have been loaded, and the generated proof information
  • the verification device is necessary for operating the one operation program and the one operation program in the acquisition device for acquiring the certification information and the verification device.
  • the verification information reflecting the feature quantity obtained when each of the other operation programs is not falsified is recorded in advance using the recording means, the acquired certification information, and the verification information.
  • a judging means for judging the validity of the
  • the proof device generates proof information that reflects at least the feature quantity indicating the feature of the operation program by the tamper-proof proof means, and thus the generated proof information is reliable.
  • the verification device determines the validity of the verification device using the acquired certification information, it has an excellent effect that the verification can be reliably verified.
  • the verification system uses a configuration certification technique specified by the Trusted Computing Group (TCG), and the certification means configures a Trusted Platform Module specified by the TCG,
  • TCG Trusted Computing Group
  • the determination means may determine the validity of the proving device by a verification process specified by TCG.
  • the certification means is composed of the Trusted Platform Module specified by the TCG, so the generated certification information is reliable and the verification specified by the TCG. Since the validity of the proving device is judged by the process, the validity can be surely verified.
  • the proving means has a plurality of platform configuration registers for storing the feature values, and receives designation of one of the plurality of platform configuration registers from the verification device. The proof information is generated based on the feature quantity stored in the register indicated by the received designation.
  • the acquisition unit acquires the generated certification information based on the feature amount stored in the platform configuration register related to the designation of the verification device, and the determination unit stores in the platform configuration register. The validity of the certification device may be determined using the feature quantity to be stored and the acquired certification information.
  • the proving device has a plurality of platform configuration registers for storing feature amounts, and is based on the feature amounts stored in the register indicated by the designation of the verification device.
  • the verification device generates the proof information, and the verification device performs PCR by determining the validity of the proof device using the feature quantity to be stored in the designated platform configuration register and the acquired proof information. It is possible to limit the size of data transmitted on the communication path between the proving device and the verification device, and to suppress the network load between the proving device and the verification device. In addition, since PCR is limited, the burden of generating proof information in the proof device can be reduced.
  • the verification device further verifies the validity of the generated verification device 1 based on at least a feature amount indicating a feature of an operation program having the verification device as an operation target.
  • Acquisition means for acquiring proof information to be performed, and determination means for determining the validity of the verification device using the acquired proof information.
  • the verification apparatus further includes a storage unit that stores a plurality of operation programs having a hierarchical relationship, and each of the operation programs is loaded. And measuring means for measuring the characteristic quantity indicating the characteristics of each of the loaded operation programs, and when tamper-resistant and one of the plurality of operation programs is loaded.
  • Proof that generates proof information that reflects the feature quantities acquired for the one action program and the feature quantities obtained for each of the other action programs that are necessary and loaded to operate the one action program And means for outputting the generated proof information.
  • the storage means further stores the second operation program including the plurality of computer instructions for the proof device as an operation target
  • the proof device further includes a tamper-resistant second proof.
  • the second proof means proves its validity to the proof means
  • the proof means verifies the validity of the second proof means
  • the measurement means further includes: Measuring the second feature value indicating the characteristics of the second operation program when the second operation program is loaded, and the second proof means confirms the validity of the second proof means by the proof means. If confirmed, second proof information for certifying the validity of the proof device is generated based on at least the second feature value, and the output means further outputs the second proof information.
  • the acquisition means further includes a second proof that proves the validity of the generated proof device based on at least a feature quantity indicating a feature of the second operation program whose operation target is the proof device.
  • the information may be acquired, and the determination unit may further determine the validity of the proof device using the acquired second proof information.
  • the proving device includes two TPMs corresponding to the two operation programs, and the verification device considers that each of the TPMs is to be verified. Since TPM verifies the legitimacy of the second TPM, it is possible to provide a higher security environment for a certification device in which multiple operation programs operate in cooperation.
  • the verification device is a card storing second proof information indicating the validity of the verification device, and the verification means further confirms the validity of the verification device by the verification device. If successful, the second proof information is acquired from the verification device, and the validity of the verification device is determined using the acquired second proof information.
  • the verification device is a card, and further, verification information storage means storing second verification information indicating the validity of the verification device, and confirmation of the validity of the verification device by the determination means. An output means for outputting the second certification information when successful is included.
  • the verification device is a card, and when the verification of the validity of the certification device is successful, the verification device outputs the second certification information indicating its validity, and the certification device acquires The second proof information is used to determine the validity of the verification device. Mutual authentication with the verification device is possible.
  • the proof device when its validity is confirmed by the verification device
  • the storage means further stores a plurality of second operation programs having a hierarchical relationship with the certification device as an operation target.
  • the measuring means further measures a second feature amount indicating a feature of each of the second programs to be loaded when each of the second operation programs is loaded. Further, when the second operation program is loaded with the tamper resistance and one of the plurality of second operation programs is loaded, the feature quantity acquired for the one second operation program, and Including second proof means for generating second proof information reflecting the feature quantity acquired for each of the other second operation programs that are necessary and loaded to operate the second operation program.
  • the output unit may further output the generated second certification information to the second verification device.
  • the proving device has two TPMs corresponding to the two operation programs, and the first verification device verifies the first TPM and succeeds. Since the second verification device verifies against the second TPM, it is possible to provide a higher security environment for a certification device that operates in cooperation with multiple operation programs.
  • the proof device further includes a request means for requesting secret information from the verification device, and the confidential information and the operation according to the verification result of the validity of the proof device in the verification device.
  • the receiving means for receiving one of the update programs for program update, and the operation program stored in the storage means according to the received update program when the update program is received! Update means for updating.
  • the verification device further stores information update means for securely holding confidential information, and an update program for updating the operation program including a plurality of computer instructions, the verification device being an operation target.
  • the secret information held in the information holding means is output to the proof device, and when it is confirmed that it is not valid, Output means for outputting the update program stored in the program storage means to the certification device.
  • the secret information is a cryptographic device key generated by encrypting a device key assigned to the certification device based on a device identifier for identifying the certification device.
  • the encryption device key is received, and the verification device further uses the received encryption device key as a device identifier for identifying the verification device.
  • Decryption means for decrypting and generating a device key is included.
  • the information holding means holds, as the secret information, a cryptographic device key generated by encrypting a device key assigned to the certification device based on a device identifier for identifying the certification device.
  • the output means outputs the encryption device key when the validity of the certification device is confirmed.
  • the information transmitted from the verification device to the certification device is encrypted using a device identifier unique to the certification device, so that an unauthorized device impersonating the certification device It is possible to prevent unauthorized acquisition of information.
  • the proof means generates the proof information based on the feature amount obtained by the measuring means and a device identifier for identifying the proof device. Further, the acquisition means acquires the proof information generated based on the feature amount and a device identifier for identifying the proof device, and the verification device further includes a normal feature indicating a feature of a normal operation program. Verification information acquisition means for acquiring verification information generated based on a quantity and a device identifier for identifying the certification device, wherein the determination means uses the certification information and the verification information to The validity of the device may be determined.
  • the proof information is generated based on the feature amount obtained by the measuring means and the device identifier for identifying the proof device
  • the verification information is a normal one indicating the characteristics of the normal operation program. It is generated based on the feature quantity and the device identifier that identifies the certifying device, and the validity of the certifying device is judged using the proof information and the verification information, so that the unauthorized device impersonates the certifying device. Can be prevented.
  • the certification means generates the certification information based on the feature quantity obtained by the measurement means and a device identifier for identifying the certification device.
  • the acquisition means acquires the proof information generated based on the feature amount and a device identifier for identifying the proof device
  • the verification device further includes a normal feature indicating a feature of a normal operation program.
  • a normal feature amount acquiring means for acquiring a quantity, and a verification information generating means for generating verification information for verifying the validity of the proving device based on the acquired normal feature amount and a device identifier for identifying the proving device;
  • the determination means may determine the validity of the proof device using the proof information and the verification information.
  • the proof information is generated based on the feature amount obtained by the measurement means and the device identifier for identifying the proof device
  • the verification information is a normal one indicating the feature of the normal operation program. It is generated based on the feature quantity and the device identifier that identifies the certifying device, and the validity of the certifying device is judged using the proof information and the verification information, so that the unauthorized device impersonates the certifying device. Can be prevented.
  • the verification device further encrypts an identifier acquisition means for acquiring a device identifier for identifying the certification device, and a device key assigned to the certification device based on the acquired device identifier.
  • Encryption means for generating an encrypted device key, and device key storage means for storing the generated encrypted device key in the information holding means.
  • the device key assigned to the proving device is encrypted to generate an encrypted device key, and the generated encrypted device key is output to the proving device. Therefore, even if it is assumed that an unauthorized device impersonating the proving device has illegally obtained the encryption device key, the unauthorized device that does not know the correct device identifier correctly decrypts the encryption device key. This prevents unauthorized use of device keys.
  • the secret information is an encrypted device key generated by encrypting a device key
  • the certification device further includes an encryption unit
  • the reception unit includes the verification unit
  • the encryption key device key is received, and the encryption means is received based on a device identifier for identifying the certification device.
  • the encryption device key is encrypted to generate a double encryption device key
  • the verification apparatus further includes device key holding means for holding the generated double encryption key device key.
  • the certification device includes an encryption unit that encrypts an encryption device key, the information holding unit holds an encryption device key as the secret information, and the determination unit includes the certification device.
  • the validity of the device the validity of the encryption means included in the certification device is determined, and the output means confirms the encryption device key when the validity of the encryption means is confirmed. You may output to an apparatus.
  • the encryption device key is transmitted to the verification apparatus power proving apparatus, and the encryption means possessed by the proving apparatus uses the encryption means described above.
  • the encryption device key is encrypted based on the device identifier for identifying the verification device, a double encryption device key is generated, and the generated double encryption device key is retained. Authentication can be performed more reliably, and the device key leakage can be further strengthened by double encryption.
  • the encryption means stores an encryption program including a plurality of computer instructions constituting an encryption algorithm and a storage unit that operates and a microprocessor that operates according to the encryption program
  • the receiving means includes a plurality of computer instructions constituting a cryptographic algorithm as the update program when the validity of the cryptographic key means is not confirmed by the verification device.
  • the encrypted encryption program is received, and the received regular encryption program is overwritten on the encryption program stored in the storage unit, and the encryption means is configured as described above according to the regular encryption program.
  • the operation of the microprocessor achieves the function of the encryption key algorithm.
  • the encryption means included in the proving device stores a cryptographic key program including a plurality of computer instructions constituting a cryptographic key algorithm, a storage unit, and a microprocessor that operates according to the cryptographic program
  • the program storage means stores a regular encryption program including a plurality of computer instructions constituting the encryption algorithm as the update program
  • the output means stores the encryption program.
  • the legitimate encryption program may be output to the certification device.
  • the reception means further includes a key that is essential for decryption of the received encryption device key from the verification device.
  • the output means further outputs a key that is essential for decryption of the encryption device key when the determination means confirms that the encryption program for performing individual encryption has been deleted. Also good.
  • FIG. 1 is a block diagram showing a configuration of a content distribution system in Embodiment 1 of the present invention.
  • FIG. 2 is a block diagram showing the hardware configuration of terminal A in Embodiment 1 of the present invention.
  • FIG. 3 is a flowchart showing the operation of the right purchase control program in Embodiment 1 of the invention.
  • FIG. 4 is a flowchart showing the operation of the playback control program in Embodiment 1 of the present invention.
  • FIG. 5 is a flowchart showing the operation of PCR extended command processing in Embodiment 1 of the present invention.
  • FIG. 6 is a flowchart showing the operation at the time of starting the terminal in the first embodiment of the present invention.
  • FIG. 7 is a block diagram showing a hardware configuration of terminal N in Embodiment 1 of the present invention.
  • FIG. 8 is a block diagram showing a hardware configuration of a card in Embodiment 1 of the present invention.
  • FIG. 10 is a flowchart showing the operation of the right confirmation 'key generation program in Embodiment 1 of the present invention. Mouth 1 ⁇ Chiya 1 ⁇ ⁇
  • FIG. 13 is a diagram showing a data structure of a CRL database existing on a server in Embodiment 1 of the present invention.
  • FIG. 14 is a diagram showing a data structure of a CRL database existing on a card in Embodiment 1 of the present invention.
  • FIG. 16 is a block diagram showing a configuration of a device key distribution system 2000 in the first modified example.
  • ⁇ 17 It is a diagram showing a flow of generation of individual encrypted secret information.
  • FIG. 18 is a flowchart showing the operation of the device key distribution system 2000.
  • FIG. 19 is a diagram showing an example of the data structure of a management table T2000.
  • FIG. 20 is a block diagram showing a configuration of a device key distribution system 2000a in a second modified example.
  • FIG. 21 is a block diagram showing a configuration of a device key distribution system 2000b in a third modified example.
  • FIG. 22 is a flowchart showing the operation of the device key distribution system 2000b.
  • FIG. 23 is a block diagram showing a configuration of a device key distribution system 2100 in the fourth modification example.
  • FIG. 24 is a diagram showing a flow of generation of secret information.
  • FIG. 25 is a diagram showing an example of a data structure of a secret information management table T2100.
  • FIG. 26 is a flowchart showing the operation of the device key distribution system 2100. Continue to Figure 27.
  • FIG. 27 is a flowchart showing the operation of the device key distribution system 2100. Continued from Figure 26.
  • FIG. 28 is a configuration diagram showing the configuration in the other embodiment 1.
  • FIG. 29 is a configuration diagram showing a hardware configuration of the terminal device 3001.
  • FIG. 30 is a diagram showing the internal configuration of a PCR (Platform Configuration Register) 3146.
  • FIG. 31 shows an example of a program stored in the TPM program storage unit 3156. ⁇ 32] A functional block diagram showing functional configurations of the terminal device 3001 and the CA server device 3002.
  • FIG. 33 shows an example of information stored in a certificate storage unit 3114.
  • FIG. 34 shows an example of information stored in the key storage unit 3120.
  • FIG. 35 is a flowchart showing operations of the terminal device 3001 (certification device) and the CA server device 3002 (verification device) in the Attestation process.
  • FIG. 36 is a flowchart showing operations of the terminal device 3001 (certification device) and the CA server device 3002 (verification device) in the Attestation process.
  • FIG. 37 is a flowchart showing operations of the terminal device 3001 (certification device) and the CA server device 3002 (verification device) in the Attestation process.
  • FIG. 38 is a flowchart showing operations of the terminal device 3001 and the CA server device 3002 in the AIK credential acquisition process.
  • FIG. 39 is a flowchart showing operations of the terminal device 3001 and the CA server device 3002 in the AIK credential acquisition process.
  • FIG. 40 is a configuration diagram showing a configuration in other embodiment 2.
  • FIG. 41 is a block diagram showing a functional configuration of a content providing server 3202.
  • FIG. 42 is a block diagram showing a functional configuration of a memory card 3204.
  • ⁇ 43 Shows the mutual authentication operation, data flow, and verification data update processing by terminal device # 1 (3201) and memory card # 2 (3204).
  • FIG. 44 is a diagram showing a functional configuration of a terminal device 3301 and a memory card 3302 and a verification operation of the terminal device 3301 by the memory card 3302 in other embodiment 3.
  • FIG. 45 is a diagram showing a configuration and an operation of a terminal device 3371 and a memory card 3372 in other embodiment 4.
  • FIG. 46 is a diagram showing a configuration and an operation of a terminal device 3392, a memory card 3372, and a content card 3392 in another modification of the fourth embodiment.
  • FIG. 47 is a diagram showing a configuration and an operation of a terminal device 3416 and a SIM card 3341 according to another modification of the fourth embodiment.
  • FIG. 48 is a block diagram showing a functional configuration of a terminal device 3431 according to other embodiment 5.
  • FIG. 49 is a block diagram showing a functional configuration of a terminal apparatus 3500 according to another modification of the fifth embodiment.
  • FIG. 50 is a block diagram showing a functional configuration of a terminal device 3600 according to another modification of the fifth embodiment. Explanation of symbols
  • FIG. 1 shows the configuration of the content distribution system 0100.
  • Content distribution system ⁇ Sano 0101, terminal ⁇ 0102, terminal B0103 to terminal ⁇ 0104, terminal ⁇ 0105 to terminal ⁇ 0106, card 0107 Connected.
  • Terminal ⁇ 0105 and terminal Z0106 do not have means for directly communicating with server 0101.
  • Terminal A010
  • Terminal B0103 to Terminal ⁇ 0104 and Terminal N0105 to Terminal Z0106 are provided with a card interface as described later, and data can be exchanged via the card 0107.
  • terminals connected to server 0101 are terminals ⁇ 0102 and terminal B010.
  • terminal M0104 Although only the terminal M0104 is shown, one or more terminal powers having the same configuration as the terminal A0102 or the like may be present in the content distribution system 0100. There may also be fewer units than shown in Fig. 1. Thereafter, terminal ⁇ 0103 and terminal M0104 have the same configuration as that of terminal A0102, so terminals other than terminal A0102 are used except when necessary. The explanation about the end is omitted. Further, in FIG. 1, only the terminal N0105 and the terminal Z0106 are shown as terminals not connected to the server 0101, but one or more terminal capabilities including the same configuration as the terminal N105 or the terminal Z0106 May exist in system 010 0; There may also be fewer units than shown in Figure 1. Thereafter, since terminal Z0106 has the same configuration as terminal N0105, description of terminals other than terminal N0105 will be omitted unless necessary.
  • the terminal A0102 communicates with the server 0101 via the Internet 0108, and has a function for downloading content such as music and movies and a function for reproducing the downloaded content.
  • the content is copyright-protected and downloaded to the terminal AO 102 in an encrypted form.
  • the card 0107 communicates with the server 0101 via the terminal A0102 and the Internet 0108, acquires a key obtained by encrypting the content, and passes the key obtained by encrypting the content to the terminal AO102 based on the request from the terminal A0102.
  • the card 0107 is configured so as to confirm whether or not the terminal A0102 is a legitimate terminal when delivering a key obtained by encrypting the content, and does not output the key unless it is a legitimate terminal. Specifically, after confirming the legitimacy of the other party using a known mutual authentication, etc., the key is handed over.
  • FIG. 2 shows a configuration of terminal A0102.
  • Terminal B0103 and terminal M0104 may have the same configuration.
  • the program storage unit 0208 stores an operating system 0209, a right purchase control program 0210, a playback control program 0211, and a program certificate 0212.
  • the processor 0201 executes the boot code 0203 and a program loaded in the RAM 0202 and performs various processes of the terminal A0102.
  • the RAM 0202 is loaded with a program to be executed by the processor 0201.
  • the program to be loaded is stored in the program storage unit 0208.
  • Boot code 0203 is executed by processor 0201 first after terminal A0102 is reset.
  • the code to be executed (boot code) is stored.
  • the boot code 0203 expands the operating system 0209 stored in the program storage unit 0208 to the RAM 0202.
  • the card interface 0204 is an interface for connecting the card 0107 and the terminal A0102.
  • a program operating on the processor 0201 can communicate with the card 0107 by communicating with the card interface 0204.
  • a program running on terminal A0102 always uses card interface 0204 when communicating with card 0107.
  • the description of the card interface 0204 is omitted.
  • Communication unit 0205 is an interface for connecting Internet 0108 and terminal A0102.
  • a program running on the processor 0201 can communicate with the server 0101 via the Internet 0108 by communicating with the communication unit 0205.
  • the content storage unit 0206 is a place where the content downloaded from the server 0101 by the terminal A0102 is stored.
  • the secure module 0207 is a device having the same function as a TPM (Trusted Platform Module) standardized by the TCG (Trusted Computing Group).
  • TPM Trusted Platform Module
  • TCG Trusted Computing Group
  • Secure module 0207 includes a register called PCR (Platform Configuration Register), in which a value depending on the software configuration of terminal A0102 is stored.
  • PCR Plate Configuration Register
  • the secure module 0207 provides a command to update the PCR.When the command is executed, the current PCR value and the argument of the command are combined, and a one-way function is applied to the combined value. The PCR is updated with the result.
  • this command is referred to as a PCR extended command.
  • the secure module 0207 can provide a service for signing the PCR value using the private key held in the secure module 0207 without being taken out to the outside. This service is called Attestation.
  • a program running in terminal A0102 is related to the Attestation service of secure module 0207 Use the command to get the current signed PCR value and send it to the server 0101.
  • the server 0101 can verify that the transmitted value is the value of the PCR generated by the secure module 0207 by verifying the signature using the public key of the secure module 0207 that has obtained the certification authority. it can.
  • the secure module 0207 is tamper-resistant, and the PCR extension command processing executed in the secure module 0207 and the command processing related to the Attestation service cannot be changed illegally. It's like! /
  • the program storage unit 0208 is a place for storing programs that operate on the terminal A0102, and stores the operating system 0209, the right purchase control program 0210, the playback control program 0211, and the program certificate 0212! /,
  • the operating system 0209 stores the operating system 0209, the right purchase control program 0210, the playback control program 0211, and the program certificate 0212! /,
  • the operating system 0209 is the basic software of the general terminal A 0102 and provides services to applications that run on the operating system 0209.
  • the operating system 0209 loads the application stored in the program storage unit 0208 into the RAM 0202.
  • FIG. 3 shows an operation flow of the right purchase control program 0210.
  • the right purchase control program 0210 is an application that runs on the operating system 0209.
  • the right purchase control program 0210 performs processing for requesting the card 0107 to acquire the right of the content provided from the server 0101 and downloading the content at the terminal A0102. Details of this process will be described below.
  • the right purchase control program 0210 When the right purchase control program 0210 is loaded by the operating system 0209 and obtains the control right, first, the right purchase control program 0210 makes an inquiry to the server 0101 to obtain a list of purchaseable contents.
  • the list contains information that can identify the content, such as the content ID, content title, and content overview.
  • the right purchase control program 0210 transmits the ID of the content requested to be purchased to the card 0107 to the server 0101, downloads the corresponding content from the server 0101, and stores it in the content storage unit 0206.
  • the content to be downloaded is encrypted, the copyright is protected even if the content storage unit can copy it illegally (step S0302).
  • terminal A0102 may purchase content for another terminal not connected to the Internet 0108 such as terminal N0105.
  • the terminal ID included in the content purchase request is the terminal ID of the terminal N0105 or the like.
  • an additional step of moving the content to the card 0107 is executed after step S0302.
  • FIG. 4 shows an operation flow of the playback control program 0211.
  • the playback control program 0 211 is an application that runs on the operating system 0209.
  • the playback control program 0211 obtains the key for encrypting the content to be played from the card 0107, decrypts the content with the key, and plays the content.
  • the card requests to update the program in the terminal A0102, the program stored in the program storage unit 0208 is updated.
  • the details of the processing of the playback control program 0211 are described below. .
  • the playback control program 0211 When the playback control program 0211 is loaded into the operating system 0209 and obtains the control right, the playback control program 0211 acquires a list of contents stored in the content storage unit 0206, and inquires the card 0107 to create a list of contents that can be played To do.
  • the card 0107 stores the key for encrypting the content stored in the card 0107 and the content ID corresponding to the key.
  • the playback control program 0211 encrypts the content stored in the card 0107.
  • a list of content IDs corresponding to the key that is converted to! / Speak is obtained, and a list of reproducible contents is created by comparison with the list of content IDs stored in the content storage unit 0206. This list is, for example, a list of contents whose keys are stored in the card (step S0401).
  • the playback control program 0211 can also acquire a list of content IDs stored in the card 0107 from the card 0107 and add it to the list of reproducible content.
  • This additional list is created in the same procedure as the procedure for creating a list of reproducible content for the content stored in terminal A0102.
  • the list including this additional list is a list of contents corresponding to the keys existing on the terminal including the card, and can be played back on the terminal (regardless of the power stored in the content storage unit 0206). This list shows the list of contents.
  • the playback control program 0211 presents the list of reproducible content generated in step S0401 to the user of the terminal A0102, causes the user to select content to be played back, and obtains the content ID.
  • the playback control program 0211 transmits key output request information including the content ID to the card 0107, and requests output of a key that encrypts the corresponding content (step S0402).
  • the key output request information includes the content ID, terminal ID, program certificate, and signed current PCR value.
  • the signed current PCR value is obtained by the playback control program 0211 using a command related to the Attestation service for the secure module, and the PCR value is currently operating on the terminal. The value depends on the software used.
  • the playback control program 0211 inquires of the card 0107 whether the requested key is output to the card 0107. (Step S0403) If a key has been output (YES in Step S0403), content decryption processing (Step S0404) is performed using the key. If the key has not been output (NO in step S0403), processing for confirming whether there is a program update request from card 0107 (step S0406) is performed.
  • a program update request is a request to request that the program be updated before handing over the key when the card 0107 determines that a security hole has been found in the content processing program. It is.
  • reproduction control program 0211 inquires whether card 0107 has a program update request. If there is a program update request (YES in step S0406), an update program and a normal PCR value to be described later are acquired from the card, and the program storage unit 0208 program and a program certificate 0212 to be described later are updated (step S0407). ).
  • the program to be updated and the normal PCR value of the program are acquired from the server 0101 and stored in the card as will be described later.
  • a signature created using a secret key known only to the terminal manufacturer is attached to the regular PCR value, and this signature becomes the program certificate 0212.
  • the playback control program 0211 transmits a system reset request to the operating system 0209 in order to restart the terminal A0102 (step S0408).
  • step S0406 If there is no program update request (NO in step S0406), playback control program 0211 ends the process.
  • the program certificate 0212 is data signed with a secret key known only to the manufacturer of the terminal AO 102 with respect to the PCR value of the secure module 0207.
  • the PCR value to be signed is the PCR value after the terminal A0102 is activated and the operating system 0209 and various applications are input. At this time, the manufacturer signs after confirming whether the operating system 0209 and various applications satisfy the requirements of various copyright protection standards.
  • the secret key used for the signature is not installed in the terminal A0102, the program certificate 0212 cannot be generated in the terminal A0102.
  • the program certificate 0212 is generated at a manufacturer's factory, for example.
  • the PCR value is updated by executing a PCR extension command with the hash value of the program loaded on the terminal A0102 as an argument in order to make it depend on the software configuration of the terminal A0102. If the hash value of the program to be loaded is always calculated when the program is loaded and the PCR is updated using the PCR extension command, the PCR value can always depend on the software configuration of the terminal A0102. .
  • FIG. 5 shows a flow of processing for updating the PCR in the secure module 0207 and storing a value depending on the software configuration of the terminal A 0102 in the PCR. This process is commonly included in the operations of the boot code 0203 for loading the operating system 0209 and the operating system 0209 for loading various application programs. This is because the boot code 0203 reads the operating system 0209 to change the software configuration in the terminal A0102, and the operating system 0209 reads the application program to change the software configuration in the terminal A0102.
  • the program that loads another program (the boot code 0203 in the former and the operating system 0209 in the latter) and the program that is called (the operating system 0209 in the former)
  • the application program in the latter case is called the “load target program”.
  • the program to be loaded first calculates the hash value of the program to be loaded by using a Nosh function algorithm (step S0501). Next, the PCR extension command is executed using this hash value as an argument, and the PCR value in the secure module 0207 is updated (step S0502). The program to be loaded expands the program to be loaded into RAM0202 after the PCR update process (step S0502) is completed (step S0503). Finally, the program to be loaded branches to the program loaded in RAM0202 (step S0504).
  • Terminal A0102 loads operating system 0209 and various applications into RAM0202 after power-on or after reset release, that is, when the terminal is activated.
  • the terminal A0102 loads the program, it updates the PCR as described in FIG.
  • FIG. 6 is a flowchart showing the operation at the time of activation of the terminal A0102.
  • the processor 0201 executes the boot code 0203 (step S0601).
  • the boot code 0203 performs initial setting of the hardware of the terminal A0102, calculates the hash value of the boot code 0203 itself, and updates the PCR of the secure module 0207 using this hash value as an argument of the PCR extended command.
  • the PCR of secure module 0207 is assumed to have been initialized after power-on or reset release.
  • the boot code 0203 loads the operating system 0209 into the RAM 0202.
  • the boot code 0203 calculates the hash value of the operating system 0209 and updates the PCR of the secure module 0207 according to the procedure shown in FIG.
  • the processor 0201 executes the operating system 0209 and initializes the operating system 0209.
  • the operating system 0209 performs loading of various applications (step S0603).
  • the hash value of each application is calculated and the PCR of the secure module 0207 is updated according to the procedure shown in FIG.
  • the terminal A0102 waits for an input from the user, and executes an application program process corresponding to the input (S0604).
  • terminal A0102 updates the PCR of secure module 0207 using the PCR extension command with the hash value of the program operating on terminal A0102 including boot code 0203. Go.
  • the PCR of the secure module 0207 becomes a value that depends on the program operating on the terminal A0102.
  • FIG. 7 shows the configuration of terminal N0105.
  • the terminal Z0106 may have the same configuration. It consists of a terminal ⁇ 0105 ⁇ , processor 0701, RAM0702, boot code 0703, card interface 0704, content storage unit 0706, secure module 0707, and program storage unit 0708. These elements are connected to each other via a bus 0713. Yes.
  • the program storage unit 0708 stores an operating system 0709, a playback control program 0711, and a program certificate 0712.
  • terminal N0105 Since these components of terminal N0105 have the same functions as the components of terminal A0102 shown in Fig. 2, description thereof will be omitted. However, the terminal N0105 has no components corresponding to the communication unit 0205 and the right purchase control program 0210 of the terminal A0102.
  • FIG. 12 shows the configuration of the server 0101.
  • the server 0101 includes a communication unit 1201, a CRL database 1202, a CRL management unit 1203, and a right management unit 1204.
  • the CRL database 1202 is connected to the CRL management unit 1203.
  • the CRL management unit 1203 and the rights management unit 1204 are connected to the communication unit 1201.
  • the communication unit 1201 is connected to the Internet 0108, and communicates with the terminal A0102 to the terminal M0104.
  • the CRL management unit 1203 and the rights management unit 1204 communicate with the card 0107 connected to the terminal A0102 to the terminal M0104, the terminal A0102, and the like via the communication unit 1201.
  • the CRL database 1202 includes the terminal ID of the revoked terminal, the update program after removing the cause of the revocation of the terminal, and the update program when the update program is executed on the terminal. Stores the PCR value.
  • revocation of a terminal also means disabling a terminal that has a defect that cannot be recovered by updating the program, such as disabling the terminal when a malicious user's terminal has been identified.
  • a terminal having a defect that can be recovered by updating the program will be described as a revocation target.
  • terminals that continue to use old software with security holes are recorded in the CRL database as power revocation targets.
  • FIG. 13 is a diagram showing the configuration of the CRL database 1202.
  • the CRL database 1202 is composed of CRL entries ⁇ 1301, ⁇ 1302, ⁇ 1303, etc., and each CRL entry has an area for terminal ID, update program, and regular PCR value.
  • the CRL database 1202 includes information on the revoked terminal.
  • the terminal ID area stores the ID of the revoked terminal.
  • the update program area the update program of the revoked terminal is stored. If the cause of the revocation is in the software, the terminal can continue to operate if the terminal is updated using this update program. Specific examples of such cases are when the software is found to have been hacked or when a security hole is found in the software.
  • the terminal manufacturer updates the PCR value when the terminal is updated with the update program stored in the update program area and operates normally. Stores information with a signature created with a secret key known only to the public.
  • the CRL management unit 1203 performs mutual authentication with the card 0107 via the communication unit 1201 and the terminal A0102, confirms that the card is a legitimate card, and provides CRL information via the communication unit 1201. More specifically, the CRL management unit 1203 checks whether the terminal ID sent from the card 0107 exists in the CRL database 1202, and if it exists, updates the corresponding entry update program and the normal PCR value to the card. Provided on 0107.
  • the right management unit 1204 manages content right information, performs billing processing in response to a request from the terminal, and provides content right information.
  • the rights management unit 1204 performs mutual authentication with the card 0107, confirms that the card is a valid card 0107, and then performs billing processing and provision of rights information.
  • the rights management unit 1204 is connected to the Internet 0108 via the communication unit 1201.
  • FIG. 8 shows the configuration of the card 0107.
  • the card 0107 includes a processor 0801, a RAM 0802, a boot code 0803, a terminal IZF0804, a CRL database 0805, a content storage unit 0807, and a program storage unit 0808. These components are coupled to each other via a bus 081 3. ing. Further, the card 0107 has tamper resistance, so that the program and data in the card are not easily exposed.
  • the processor 0801 executes the boot code 0803 and a program loaded in the RAM 0802 and performs various processes of the card 0107.
  • the RAM 0802 is loaded with a program executed by the processor 0801.
  • the program to be loaded is stored in the program storage unit 0808.
  • the boot code 0803 stores a code (boot code) executed first by the processor 0801 after the card 0107 is reset.
  • the boot code 0803 expands the operating system 0809 stored in the program storage unit 0808 to the RAM 0802.
  • the terminal I / F 0804 is an interface for connecting the card 0107 and the terminal.
  • a program running on processor 0801 can communicate with the terminal by communicating with terminal IZF0804.
  • a program running on the card 0107 always uses the terminal IZF0804 when communicating with the terminal IZF0804.
  • description of the terminal IZF0804 is omitted.
  • FIG. 14 is a diagram showing the configuration of the CRL database 0805.
  • the CRL database 08 05 is composed of CRL entries ⁇ 1401, ⁇ 1402, ⁇ 1403..., And each CRL entry has an area for terminals, update programs, and regular PCR values.
  • the terminal ID acquired by the card 0107 is stored.
  • “ID-A”, “ID-B”, and “ID-N” written in the terminal ID area are the terminal IDs of terminal A102, terminal B103, and terminal N105, respectively.
  • the update program area if a terminal with the corresponding terminal ID has been revoked, the update program for that terminal is stored.
  • the regular PCR value area stores the PCR value when the terminal is updated and updated normally using the update program stored in the update program area.
  • the regular PCR value is attached with a signature created using a private key known only to the terminal manufacturer as described above.
  • the update program is NULL, and the regular PCR value is the current PCR value.
  • This entry is the state after the card 0107 has received the key output request information, and the update program has not been acquired. For example, this is the state immediately after the card 0107 is inserted into the terminal N0105 for the first time and the key output request information is received.
  • the content storage unit 0807 stores encrypted content and content rights. This content is downloaded by a terminal that can be connected to the server 0101 such as the terminal A0102, and stored in the content storage unit 0807.
  • the content storage unit 0807 is used to supply content to a terminal that cannot access the server 0101 via the Internet 0108 such as the terminal N0105. Further, the content right is acquired from the server 0101 by the right purchase program 0810, which will be described later, and stored in the content storage unit 0807.
  • the right of the content stored in the content storage unit 0807 cannot be directly accessed from the outside of the card 0107, and only the right confirmation 'key generation program 0811 described later is stored.
  • the implementation is inaccessible. Specifically, it is possible to implement such implementation by encrypting such that the right confirmation 'key generation program 081 1 can only be decrypted! /
  • the program storage unit 0808 stores an operating system 0809, a right purchase program 0 810, and a right confirmation / key generation program 0811.
  • the operating system 0809 is basic software of the general card 0107, and provides a service to an application running on the operating system 0809.
  • the operating system 0809 loads the application stored in the program storage unit 0808 into the RAM 0202.
  • the right purchase program 0810 communicates with the server 0101 using the communication function of the terminal based on the content purchase request received from the right purchase control program 0210 of the terminal. Update.
  • the content purchase request includes the content ID to be purchased and the terminal ID for identifying the terminal that purchases the content, as described in the description of the terminal A0102.
  • FIG. 9 is a flowchart showing the operation of the right purchase program 0810.
  • the right purchase program 0810 acquires the terminal ID included in the content purchase request and stores it in the CRL database 0805 (step S0901).
  • the right purchase program 0810 operates the CRL database 0805, creates a CRL entry, and stores the acquired terminal ID in the terminal ID area.
  • the right purchase program 0810 does not create a CRL entry when there is a CRL entry having the terminal ID already acquired in the terminal ID area.
  • the right purchase program 0810 performs mutual authentication with the server 0101, and performs content purchase processing and content right acquisition (step S0902).
  • the acquired content rights are safely stored in the content storage unit 0807.
  • the content right stores the content usage conditions such as the content expiration date and the number of times of use, and a key for encrypting the content.
  • the content right is stored in encrypted form in the content storage unit.
  • the right purchase program 0810 makes an inquiry to the server 0101 and updates the CRL database 0805 (step S0903).
  • right purchase program 0810 is CRL All terminal IDs stored in the CRL entry of the database 0805 are transmitted to the server 0101.
  • the CRL management unit 1203 of the server 0101 confirms whether or not the received terminal ID is stored in the CRL database 1202, and if the corresponding terminal ID exists, the terminal ID is stored and updated in the CRL entry.
  • the right purchase program 0810 stores the received update program and regular PCR value in the CRL entry including the corresponding terminal ID in the CRL database 0805.
  • FIG. 10 is a flowchart showing the operation of the right confirmation / key generation program 0811.
  • the right confirmation 'key generation program 0811 confirms whether or not the terminal has been revoked, and if not, checks the content usage conditions and outputs the content encryption key to the terminal if it can be played. If revoked, the update program is output to the terminal.
  • Rights confirmation 'Key generation program 0811 acquires the terminal ID included in the key output request information and stores it in CRL database 0805 (step S1001).
  • the right confirmation 'key generation program 0811 operates the CRL database 0805, creates a CRL entry, and stores the acquired terminal ID in the terminal ID area.
  • Rights confirmation 'Key generation program 0811 does not create a CRL entry if there is a CRL entry that has the terminal ID already acquired in the terminal ID area.
  • the right purchase program 0810 has a function to perform the same processing. This step is executed in order to obtain a terminal ID by a terminal not connected to the Internet 0108 such as the terminal NO 105. This is because a terminal such as the terminal N0105 does not execute the right purchase program 0810. For these terminals, it is assumed that a device connected to the Internet 0108 such as the terminal A0102 plays content previously purchased using the card 0107.
  • the right confirmation 'key generation program 0811 verifies the signature of the PCR value signed by the Attestation service included in the key output request information (step S1002). If it is determined that the PCR value is not authentic as a result of the signature verification (NO in step S1002), the right confirmation / key generation program 0811 ends the process.
  • step S 100 2 is OK
  • the right confirmation 'key generation program 0811 uses the PCR value to confirm the validity of the terminal (step S1003).
  • the right confirmation 'key generation program 0811 refers to the CRL database 0805, and compares the normal PCR value in the CRL entry that matches the terminal ID included in the key output request information with the PCR value obtained from the terminal. . If the comparison result is OK (OK in step S1003), the process proceeds to the right confirmation process. If the comparison result is NG (NG in step S1003), the program update processing is performed.
  • the comparison result is OK
  • the PCR value and the normal PCR value match
  • the comparison result is NG, the PCR value and the normal PCR value do not match.
  • the right confirmation 'key generation program 0811 is added to the program certificate included in the key output request information. After confirming whether the included PCR value is the one generated by the terminal maker using the terminal manufacturer's public key, the validity of the terminal is confirmed by using it instead of the regular PCR value. If the comparison result is OK (OK in step S1003), the process proceeds to the right confirmation process. If the comparison result is NG (NG in step S1003), the program update processing is started.
  • the right confirmation key generation program 0811 obtains the PCR value in the program certificate included in the key output request information only when the regular PCR value is obtained from the server! It is stored in the entry and used for the subsequent validity check of the terminal. Since this program certificate is signed by the company with a PCR value that represents the software configuration of the device at the time of shipment, the card 0107 is essentially a software configuration when the terminal is shipped. It can only be verified. However, as will be described later, in this embodiment, it is checked whether an update program exists for all terminal IDs stored in the CRL entry during the process of purchasing rights. If an update program exists, the update program and the regular PCR corresponding to the update program are stored in the CRL entry of the card 0107.
  • the right confirmation 'key generation program 0811 displays the right information of the content corresponding to the content ID included in the key output request' blueprint. Acquired from the storage unit 0807 and check the usage conditions (step S1 004). If the usage condition check is NG (NG in step S1004), the right confirmation 'key generation program 0811 ends the process.
  • step S 1004 If the usage condition check is OK (OK in step S 1004), the right confirmation 'key generation program 0811 outputs the content encryption key included in the content right information to the terminal, right confirmation ⁇ key generation The program processing is terminated (step S 1005).
  • the right confirmation 'key generation program 0811 refers to the CRL database 0805, and the terminal ID included in the key output request It is checked whether there is an update program in the update program area of the CRL entry corresponding to (Step S1006). If there is no update program (NG in step S1006), the right confirmation 'key generation program 0811 ends the process.
  • step S 1006 If an update program exists (OK in step S 1006), an output process of the update program and the value of regular PC R is performed (step S 1007).
  • the update program and the regular PCR value are those of the CRL entry corresponding to the terminal ID included in the key output request information stored in the CRL database 0805.
  • terminals terminal A 0102 to terminal M 0104
  • server 0101 via Internet 0108
  • the power terminals B0103 to M0104 which are described using the terminal AO 102 as an example, have the same configuration, and therefore perform the same operations as those described below.
  • FIG. 11 is a flowchart showing the operation of the content distribution system 0100 when the terminal A0102 purchases the right from the server 0101 using the card 0107 and plays back the content acquired from the server 0101 on the terminal AO102.
  • terminal A0102 has been revoked
  • the CRL database 1202 of server 0101 has a CRL entry including the terminal ID of terminal A0102.
  • the update program and its corresponding It is assumed that the regular PCR value is also stored in the corresponding CRL entry in the CRL database 1202.
  • the operation of the content distribution system 0100 will be described below according to the flowchart shown in FIG.
  • Terminal A0102 performs terminal activation processing based on the terminal activation flow described in FIG. 6 (step S1101).
  • the PCR in the secure module 0207 of the terminal 0102 becomes a value depending on the program running on the terminal 0102.
  • the card 0107 loads the operating system 0809 into the RAM 0802 using the boot code 0803, and then the operating system 0809 activates various applications to make the card 0107 usable.
  • Next terminal A0102 uses right purchase control program 0210 as shown in FIG. 3, and performs a right purchase process using card 0107 (step S1102).
  • the card 0107 operates the right purchase program as shown in FIG. 9 and performs right purchase processing.
  • right purchase program 0810 stores the corresponding update program and regular PCR value from servo 0101 in CRL database 0805 (step S 1103).
  • terminal A0102 operates the playback control program 0211 as shown in FIG. 4 to play back the content.
  • the playback control program 0211 requests the card 0107 to output a key
  • the right confirmation 'key generation program 0811 operates as shown in FIG.
  • the right confirmation 'key generation program 0811 performs terminal validity confirmation (S1003).
  • the terminal's validity confirmation is NG (NG in S1003). Therefore, the card 0107 has a CRL entry including the terminal ID of the terminal A0102 in the CRL database 0805, and an update program and a normal PCR value exist. Therefore, the card 0107 outputs the update program and the normal PCR value to the terminal A0102.
  • the playback control program 0211 stores the received update program and normal PCR value in the program storage unit 0208, and restarts the terminal A0102 (step S1104). Thereafter, terminal A0102 starts up in the same manner as in step S1101.
  • the terminal A0102 operates the playback control program 0211, and requests the right confirmation / key generation program 0811 of the card 0107 again for the key output process.
  • Rights confirmation ⁇ Key generation pro In step S1003 of Gram 0811, the validity of the terminal is confirmed (step S1105). If the program has been updated correctly (OK in step S1105), the PCR value obtained from the secure module 0207 of terminal A01 02 matches the PCR value stored in CRL database 0805 of card 0107. Therefore, it is confirmed that terminal A0102 is valid, and the key is output.
  • step S1105 If the program has been updated correctly (OK in step S1105), the content encryption key is output from card 0107 (step S1106).
  • the reproduction control program 0211 retrieves the encrypted content from the content storage unit 0206, decrypts it using the key, and reproduces it (step S1107).
  • the content encryption key is not output unless it is confirmed that the program has been correctly updated using the PCR value. If the program has not been correctly updated, the validity of the terminal is determined. Since the check is NG and the key that encrypted the content is not output to the terminal, it is necessary to update the program in order to play the content correctly. Even if the updated program is tampered with, the validity check of the terminal becomes NG and the content cannot be played back, so the copyright of the content can be protected appropriately.
  • the present invention it is possible to force a program update without tamper-proofing the entire program update means as in the prior art.
  • the card 0107 in order to realize the above-described processing, it is only necessary to mount the card 0107 and the secure module 0207 with tamper resistance, so that the number of places where tamper resistance should be mounted can be greatly reduced.
  • the card 0107 when requesting the right to play the content, the card 0107 always checks the validity of the terminal and updates the terminal program if it is NG. As long as you try to live, it will be updated. This ensures that the revoked terminal software can be updated.
  • the software update can be forced at other timings by changing the above-described processing power at the time of content playback to the recording time.
  • terminals N0105 to Z0106 The operation of the terminals (terminals N0105 to Z0106) will be described.
  • the terminal N0105 will be described as an example.
  • the terminal Z0106 has the same configuration, the same operation as described below is performed.
  • FIG. 15 is a flowchart showing the operation of the content distribution system 0100 when updating the program of the terminal N0105 that cannot be connected to the server 0101 via the Internet 0108.
  • terminal N0105 has been revoked and that a CRL entry including the terminal ID of terminal N0105 exists in CRL database 1202 of server 0101.
  • the update program and the corresponding regular PCR value are also stored in the corresponding CRL entry in the CRL database 1202.
  • the right purchase is performed using the terminal A0102, and the content and the right can be used on the terminal N0105 by using the card 0107. It becomes.
  • the operation of the content distribution system 0100 will be described with reference to the flowchart shown in FIG.
  • Terminal A0102 performs terminal activation processing and right purchase processing as described in step S1101 and step SI102 in FIG. 11, respectively.
  • the terminal A 0102 stores the downloaded content in the content storage unit 0807 of the card 0107 so that the terminal N 0105 can also play the downloaded content.
  • Terminal N0105 performs terminal activation processing based on the terminal activation flow described in FIG. 6 (step S1503).
  • the PCR in the secure module 0707 of the terminal 0105 becomes a value that depends on the program running on the terminal N0105.
  • the card 0 107 is moved from the terminal A 0102 to the terminal N 0105 in order to play back the content purchased at the terminal A 0102 on the terminal N 0105.
  • the terminal N0105 operates the playback control program 0711 and makes a content key output request to the card 0107.
  • Card 010 7 activates the right confirmation 'key generation program 0811 that performs the operation shown in FIG.
  • the right confirmation 'key generation program adds the terminal ID of terminal N0105 to the CRL database in step S1001, and creates a CRL entry including the terminal ID of terminal N0105 (step S 1504).
  • Rights confirmation 'Key generation program 0811 then checks the validity of terminal N0105 in step S1003 (step S1505).
  • the right confirmation 'key generation program 0811 refers to the CRL database 0805 and finds a CRL entry including the terminal ID of the terminal N0105, but since there is no regular PCR value, the program certificate 0712 of the terminal N0105 The legitimacy of the terminal is confirmed using the stored PCR value. If the PCR value of the secure module 0707 of the terminal N0105 and the PCR value of the program certificate 0712 do not match (NG in step S1505), the terminal determines that it is not valid, and confirms the right. finish.
  • step S 1505 If the validity of the terminal is confirmed (OK in step S 1505), the right confirmation 'key generation program 0811 is stored in the content storage unit 0807 after performing the right confirmation process S 1004. The content encryption key within the content right is decrypted and output to terminal NO 105 (step S 1506).
  • the playback control program 0711 of the terminal N0105 decrypts the content stored in the content storage unit 0807 of the card 0107 using the content number key received from the card 0107, and plays it back (step S 1507). .
  • the content may be played after the content is transferred from the content storage unit 0807 of the card 0107 to the content storage unit 0706 of the terminal N0105.
  • the card 010 7 is inserted into the terminal A0102.
  • the flow for purchasing content rights at terminal A0102 will be described below.
  • the terminal A0102 uses the right purchase control program 0210 as shown in FIG. 3, and performs the right purchase process using the card 0107 (step S1508). As shown in FIG. 9, the card 0107 operates the right purchase program and performs right purchase processing. The content downloaded at the time of purchasing the right is stored in the content storage unit 0807 of the card 0107. [0104] Here, since terminal N0105 has been revoked, right purchase program 0810 stores the corresponding update program and regular PCR value from servo 0101 in CRL database 0805 (step S1509).
  • the terminal ID of the terminal N1005 CRL database 1202 is searched. As a result of the search, a CRL entry including the terminal ID of terminal NO 105 exists in the CRL database 1202. Therefore, the right purchase program 0810 also updates the CRL entry power with the update program of the terminal N0105 and the regular PCR value of the card 0107. Stored in the CRL entry containing the terminal ID of terminal N0105 existing in 0805.
  • Terminal N0105 updates the program of terminal NO 105 as performed by terminal A0102 in step S1104 of FIG. 11 (step S1510).
  • the terminal N0105 confirms the validity by using the card 0107 by making a key output request to the card 0107 as performed by the terminal A0102 in step S1105 in FIG. 11 (step S1511). .
  • the validity is confirmed (OK in step S1511), the content encryption key is output from the card 0107 to the terminal N0105.
  • the playback control program 0711 of the terminal N0105 that performs the program update process is altered from a malicious one and the program is not updated (NG in Step S1511)
  • the secure module of the terminal N0105 The terminal N010 5 in which the PCR value acquired from 0707 and the PCR value stored in the CRL database 0805 of the card 0107 do not match is determined to be invalid, and the processing of the terminal N0105 ends.
  • step S1512 If the program is updated correctly (OK in step S1511), the content key number is output from card 0107 (step S1512).
  • the playback control program 0711 of the terminal N0105 decrypts the content stored in the content storage unit 0807 of the card 0107 using the content number key received from the card 0107, and then plays back (step S1513).
  • Card 0107 content storage Content may be played after content is transferred from unit 0807 to content storage unit 0706 of terminal N0105.
  • the terminal can be revoked and the program can be updated.
  • the update target may be software, and may be applied to a system that updates configuration information of power hardware.
  • a specific example of such hardware is a reconfigurable processor.
  • the program for controlling any of the card, the terminal, and the server operates on the operating system.
  • the present invention is not limited to this! /. If an application program is written in a language that can be directly processed by a processor, an operating system is not necessarily required.
  • Power that PCR is a hash value is not limited to this. Any value can be used as long as it can be used for falsification detection. For example, it may be a value obtained by encrypting a part of the program or a checksum of the program.
  • the card 0107 is not limited to the force used to confirm whether or not the terminal is revoked when a key is requested.
  • Other than the key information other information may be used as long as it is disadvantageous if it is passed to an unauthorized terminal.
  • the processing performed by the terminal is not limited to content reproduction.
  • the terminal may process a database that handles personal information. In this case, the terminal The timing for confirming whether or not the power is received is when a request for personal information is received from the terminal.
  • the card 0107 is not limited to the force used to confirm whether or not the terminal is revoked.
  • the server may check whether the terminal has been revoked when providing the right information.
  • the terminal sends a PCR with a request for rights information.
  • the server stores the normal PCR, and updates the terminal program when the PCR sent by the terminal does not match the normal PCR (ie, NG).
  • the detailed processing is the same as the update processing between the terminal and the card, and is therefore omitted.
  • the force that the terminal is restarted after the program is updated is not limited to this. If it is a small update that does not require a restart, the process may continue. That is, after the update is completed, the key information may be output to the terminal without being restarted, and the content decryption and playback processing may be performed.
  • Each of the above devices is specifically a computer system including a microprocessor, ROM, RAM, a hard disk unit, a display unit, a keyboard, a mouse, and the like.
  • a computer program is stored in the RAM or hard disk unit.
  • Microprocessor power Each device achieves its functions by operating according to the computer program.
  • the computer program is configured by combining a plurality of instruction codes indicating instructions to the computer in order to achieve a predetermined function.
  • a part or all of the constituent elements constituting each of the above devices may be constituted by one system LSI (Large Scale Integration).
  • a system LSI is an ultra-multifunctional LSI that is manufactured by integrating multiple components on a single chip. Specifically, it is a computer system that includes a microprocessor, ROM, RAM, and so on. It is. A computer program is stored in the RAM. By operating according to the above-mentioned computer program S, the microprocessor power S
  • each part of the constituent elements constituting each of the above devices may be individually chipped, or may be chipped so as to include a part or all of them.
  • IC integrated circuit
  • LSI High Speed Interconnect
  • Ultra LSI Ultra LSI
  • the method of circuit integration is not limited to LSI, and may be realized by a dedicated circuit or a general-purpose processor. You can use an FPGA (Field Programmable Gate Array) that can be programmed after manufacturing the LSI, or a reconfigurable 'processor that can reconfigure the connection and settings of the circuit cells inside the LSI.
  • FPGA Field Programmable Gate Array
  • the constituent elements constituting each of the above devices may be configured as an IC card that can be attached to and detached from each device or a single module force.
  • the IC card or the module is a computer system composed of a microprocessor, ROM, RAM, and the like.
  • the IC card or the module may include the super multifunctional LSI described above.
  • the IC card or the module achieves its functions by the microprocessor operating according to the computer program. This IC card or module may be tamper resistant! /.
  • the present invention may be the method described above. Further, the present invention may be a computer program that realizes these methods by a computer, or may be a digital signal that also has the computer program power.
  • the present invention also provides a computer-readable recording medium capable of reading the computer program or the digital signal, such as a flexible disk, hard disk, CD-ROM, MO, DVD, DVD-ROM, DVD-RAM, BD (Blu- ray disc), semiconductor memory, etc. Also, it may be the digital signal recorded on these recording media.
  • a computer-readable recording medium capable of reading the computer program or the digital signal, such as a flexible disk, hard disk, CD-ROM, MO, DVD, DVD-ROM, DVD-RAM, BD (Blu- ray disc), semiconductor memory, etc. Also, it may be the digital signal recorded on these recording media.
  • the computer program or the digital signal is transmitted to an electric communication line, a wireless or wired communication line, a network represented by the Internet, a data release, etc. It may be transmitted via transmission or the like.
  • the present invention may be a computer system including a microprocessor and a memory, wherein the memory stores the computer program, and the microprocessor operates according to the computer program.
  • the program or the digital signal is recorded on the recording medium and transferred, or the program or the digital signal is transferred via the network or the like. It may be implemented by a computer system.
  • the present invention is an information processing apparatus constituted by a terminal and a card separable from the terminal, the terminal measuring and storing the characteristics of the program running on the terminal, A program storage means for storing a program that operates on the terminal, and a program update means for updating the program stored in the program storage means, and an update program storage means for storing the update program for the terminal Terminal measurement means, legitimacy confirmation means for confirming the legitimacy of the terminal using the obtained information, and secret information held in the card only when the legitimacy confirmation means determines that the terminal is legitimate.
  • the update program stored in the update program storage means only when the terminal is determined not to be valid by the confidential information providing means for providing the terminal to the terminal and the validity confirmation means.
  • Program output means force for outputting a ram program update means also characterized in that it is configured.
  • the card further includes a terminal ID storage means for storing the terminal ID of the terminal once connected, and a terminal connected to the card when the terminal can be connected to the network.
  • the update program stored in the ID storage means and associated with the terminal ID is acquired from the server and stored in the update program storage means.
  • the update program acquisition means is stored in the update program storage means and is associated with the update program acquired by the update program acquisition means. If the terminal can be connected to the network, it is associated with the update program acquired by the update program acquisition means.
  • the correctness confirmation information is obtained from Sano It is provided with a validity confirmation information acquisition means stored in the payment means, and the validity confirmation means confirms the validity of the terminal using the validity confirmation information acquired from the validity confirmation information storage means. .
  • unauthorized terminals that do not disable revoked terminals can be made legitimate terminals through program updates, so that content playback can continue.
  • the program since the program is updated by a mechanism inside the card, the program can be updated even by a terminal that cannot be connected to the Internet.
  • An information recording apparatus is an information recording apparatus that is used together with an information processing apparatus that operates according to a program and records information used by the information processing apparatus.
  • output means for outputting an update program to the information processing apparatus when confirmed.
  • the information recording apparatus is characterized in that the output means further outputs information to the information processing apparatus only when it is confirmed that the program is valid.
  • the information processing apparatus cannot obtain the requested information unless it is determined that the program is valid. From this, the information making the access request In order to achieve this, the information processing apparatus must update the program, so that the program can be forced to update.
  • the information recording apparatus further includes normal feature information storage means for storing normal feature information that is characteristic information of a legitimate program that operates the information processing apparatus, and the validity confirmation means includes information Processing device power It is characterized by checking whether the program is valid or not by comparing the received feature information with the regular feature information.
  • the information recording apparatus can confirm whether or not the program of the information processing apparatus is valid based on the feature information.
  • the receiving means further acquires the identification information of the information processing apparatus together with the access request
  • the update program storage means is one or more information processing apparatuses that have made access requests in the past
  • the identification information and the update program for each information processing device are stored in association with each other, and the output means outputs an update program for the information processing device corresponding to the identification information received together with the access request.
  • the update program storage means further adds the identification information of the new information processing apparatus to the stored content when an access request from the new information processing apparatus is received. It is characterized by that.
  • the information recording apparatus can manage the update program for all of the information processing apparatuses that have received access requests in the past.
  • the information recording apparatus further includes: a transmission means for transmitting the identification information of the information processing apparatus stored in the update program storage means to the server providing the update program; Obtaining means for obtaining an update program for the information processing apparatus corresponding to the transmitted identification information, and the update program storing means records the obtained update program in association with the identification information.
  • the information recording apparatus can acquire and record the updated update program for the information processing apparatus managed by the information recording apparatus when the update program is upgraded. it can.
  • the information recording apparatus according to the present invention is a portable recording medium. According to this configuration, the program in the information processing apparatus is updated by the mechanism inside the portable recording medium, so that the information processing apparatus is forced to update the program even if it cannot connect to the Internet. be able to.
  • the information processing apparatus is an information processing apparatus that is used in conjunction with an information recording apparatus that operates according to a program and confirms the validity of the program based on the characteristic information of the program. According to the confirmation by the information recording device, the characteristic information calculating means for calculating the information, the transmission means for transmitting the calculated characteristic information to the information recording device when making an access request to the information recorded by the information recording device. And receiving means for receiving an update program for information or an information processing device, and update means for updating the program by the received update program when the update program is received.
  • the information processing apparatus when the information processing apparatus requests information from the information recording medium, the information processing apparatus can update itself if the program is illegal.
  • the information recording apparatus is characterized in that the characteristic information calculation means is protected by tamper resistance.
  • the validity check by the card is OK.
  • the card has the power to output the key to decrypt the content, but is not limited to this
  • the card may output a new U device key to update the device key unique to the terminal! /.
  • a secret encryption method is used as an information encryption method.
  • a device key is a key unique to each terminal, and is used to encrypt and decrypt a key for encrypting and decrypting content (hereinafter referred to as a content key).
  • the device key distribution system 2000 includes a terminal (certification device) 2001, a card (verification device) 2002, a network connection terminal 2003, and a server 2004.
  • Terminal 2001 is a terminal not connected to the network, and corresponds to terminal N0105,..., Terminal Z0106 shown in the above embodiment.
  • the terminal 2001 has a device key and a program for decrypting the encrypted content key (hereinafter, content key decryption program).
  • the card 2002 When the card 2002 is attached to a terminal, the card 2002 acquires and stores a terminal ID for identifying the terminal.
  • the card 2002 stores a terminal ID for identifying the terminal 2001 in advance. That is, it is assumed that the card 2002 has been installed in the terminal 2001 once in the past.
  • the card 2002 outputs the terminal ID stored in advance to the network connection terminal 2003 when updating the CRL shown in the above embodiment.
  • the network connection terminal 2003 transmits the terminal ID to the server 2004 via the network.
  • the network connection terminal 2003 receives from the server 2004 an update program for the content key decryption program, correctness confirmation information (a normal PCR value in the above embodiment), and a normal device key that is individually encrypted with the transmitted terminal ID ( Hereinafter, it is referred to as secret information or individual encrypted secret information), and each received information is output to the card 2002.
  • the server 2004 Upon receiving the terminal ID from the network connection terminal 2003, the server 2004 transmits the update program, the validity confirmation information, and the secret information based on the received terminal ID.
  • the individual encryption key of the regular device key will be described.
  • the server 2004 calculates a value converted from the terminal ID and the terminal common key (hereinafter referred to as “encrypted conversion value”) (step S2000).
  • the terminal ID is identification information unique to each terminal, and the terminal common key is a key common to the terminals.
  • the method for calculating the encryption conversion value is obtained, for example, by concatenating the terminal common key to the terminal ID and applying a one-way function to the result.
  • the terminal ID may be encrypted by a secret key encryption method using the terminal common key as an encryption key. In either case, the encryption conversion value depends on the terminal ID.
  • the server 2004 encrypts the secret information (device key) using the calculated encryption conversion value as an encryption key by the secret key encryption method, and generates individual encrypted secret information (step S205).
  • the terminal 2001 includes an ID storage unit 2010, a program storage unit 2011, a terminal measurement unit 2012, a program update unit 2013, and a secret information decryption unit 2014, as shown in FIG.
  • terminal 2001 is composed of a single system LSI (Large Scale Integration), and the system LSI is the same type as terminal 2001.
  • a key common to the terminal (the above-mentioned terminal common key) is stored.
  • the terminal common key has confidentiality due to tamper resistance.
  • the ID storage unit 2010 stores the terminal ID 2015 of the terminal in advance.
  • the ID storage unit 2010 has tamper resistance, and the terminal ID 2015 cannot be falsified.
  • the program storage unit 2011 corresponds to the program storage unit 0708 in the above embodiment.
  • the program storage unit 2011 stores a program (hereinafter referred to as secret information decryption) for decrypting a legitimate device key that is individually encrypted in addition to each program stored in the program storage unit 0708 in the above embodiment. Program) and content key decryption program are stored in advance. [0141] (A— 1— 1— 2) Terminal measurement unit 2012
  • the terminal measurement unit 2012 corresponds to the secure module 0707 and the secure module 0707 control portion of the boot code 0703, operating system 0709, and playback control program 0711 in the above embodiment.
  • the terminal measurement unit 2012 measures (calculates) the PCR value of the content key decryption program and outputs the measured PCR value to the card 2002.
  • the measurement timing is when the content key decryption program is loaded, and the output timing is when the content is reproduced, as in the above embodiment.
  • the program update unit 2013 performs processing corresponding to steps S0407 and S0408 shown in FIG. 4 in the above embodiment.
  • the program update unit 2013 Upon receiving an update program for the content key decryption program from the card 2002, the program update unit 2013 updates the content key decryption program using the received update program.
  • the program update unit 2013 After updating the content key decryption program, the program update unit 2013 requests the operating system of the terminal 2001 to reset the system, similarly to step S0408.
  • the secret information decryption unit 2014 is realized by starting and executing the secret information decryption program stored in the program storage unit 2011.
  • the secret information decryption unit 2014 acquires the individual encryption key secret information corresponding to the terminal from the card 2002.
  • Secret information decryption unit 2014 obtains a terminal ID from ID storage unit 2010 and a terminal common key from system LSI.
  • the secret information decryption unit 2014 uses the acquired terminal ID and terminal common key to calculate the decryption conversion value by the same method as the encryption conversion value calculation method performed by the server 2004.
  • the secret information decryption unit 2014 uses the calculated conversion value for decryption to Is decrypted to generate a device key.
  • the secret information decryption unit 2014 updates the currently stored device key to the generated device key.
  • the terminal 2001 stores the individual encryption key secret information including the device key to be updated after receiving a strong secret, and performs the above-described method when a new device key is required. Use it for decryption.
  • the card 2002 includes a secret information provision unit 2020, a terminal ID storage unit 2021, a validity confirmation information storage unit 2022, an update program storage unit 2023, a secret information acquisition unit 2 024, and validity confirmation information.
  • An acquisition unit 2025, an update program acquisition unit 2026, a validity confirmation unit 2027, and a program output unit 2028 are included.
  • the secret information providing unit 2020 includes a secret information storage unit 2029 and a switch 2030 as shown in FIG.
  • the secret information storage unit 2029 corresponds to the content storage unit 0807 described in the above embodiment.
  • the secret information storage unit 2029 stores the individual encrypted secret information received from the server 2004 via the network connection terminal 2003.
  • secret information storage section 2029 stores secret information encrypted using terminal ID of terminal 2001.
  • the switch 2030 corresponds to the operation of outputting the content key in step S1005 of FIG. 10 shown in the above embodiment, and operates under the control of the validity confirmation unit 2027.
  • the switch 2030 connects the terminal and the secret information storage unit 2029 so that the terminal can acquire the individual encrypted secret information.
  • the switch 2030 does not connect the terminal and the secret information storage unit 2029.
  • the secret information providing unit 2020 When the terminal 2001 and the secret information storage unit 2029 are connected, the secret information providing unit 2020 outputs the individual cipher key secret information corresponding to the terminal 2001 and sends it to the operating system of the terminal 2001. Request to start the secret information decryption program.
  • connection by switch 2030 'Non-connection operation is controlled by the validity check unit 2027 Is done.
  • the switch 2030 may be controlled by the secret information providing unit 2020 based on the confirmation result of the validity confirmation unit 2027.
  • the terminal ID storage unit 2021 is a terminal of the CRL database 0805 shown in the above embodiment
  • the terminal ID storage unit 2021 stores a terminal ID of a terminal attached in the past. Here, the terminal ID of terminal 2001 is stored.
  • the network connection terminal 2003 acquires the terminal ID stored in the terminal ID storage unit 2021.
  • the validity confirmation information storage unit 2022 corresponds to the storage part of the valid PCR value of the CRL database 08 05 in the above embodiment.
  • the validity confirmation information storage unit 2022 stores the validity confirmation information received from the server 2004 via the network connection terminal 2003 in association with the terminal ID stored in the terminal ID storage unit 2021. is doing. Here, it is assumed that the validity confirmation information storage unit 2022 stores validity confirmation information (PCR value) for the content key decryption program in association with the terminal ID 2015 of the terminal 2001.
  • PC value validity confirmation information
  • the update program storage unit 2023 corresponds to the storage part of the update program in the CRL database 0805 in the above embodiment.
  • the update program storage unit 2023 stores the update program received by the server 2004 via the network connection terminal 2003 in association with the terminal ID stored in the terminal ID storage unit 2021.
  • update program storage section 2023 stores an update program for the content key decryption program in association with terminal ID 2015 of terminal 2001.
  • the CRL database 0805 shown above is composed of the terminal ID storage unit 2021, the validity confirmation information storage unit 2022, and the update program storage unit 2023 shown in this modification. You can see that
  • the secret information acquisition unit 2024 performs a process corresponding to the right purchase process in FIG. 9 shown in the above embodiment.
  • the secret information acquisition unit 2024 Upon receiving the individual encrypted secret information from the server 2004 via the network connection terminal 2003, the secret information acquisition unit 2024 stores the received individual encrypted secret information in the secret information storage unit 2029.
  • the timing of receipt and storage of the individually encrypted secret information by the secret information acquisition unit 2024 is, for example, when the content is purchased.
  • the validity confirmation information acquisition unit 2025 performs the CRL update process in FIG. 9 shown in the above embodiment, particularly the process corresponding to the update of the regular PCR value in the CRL database.
  • the validity confirmation information acquisition unit 2025 stores the received validity confirmation information in the validity confirmation information storage unit 2022.
  • the update program acquisition unit 2026 performs the CRL update process in FIG. 9 shown in the above embodiment, particularly the process corresponding to the update program update of the CRL database. Upon receiving the server 2004 update program via the network connection terminal 2003, the update program acquisition unit 2026 stores the received update program in the update program storage unit 2023.
  • the validity confirmation unit 2027 performs a process corresponding to the process of S 1003 in FIG. 10 shown in the above embodiment.
  • the validity confirmation unit 2027 Upon receiving the PCR value of the content key decryption program from the terminal 2001, the validity confirmation unit 2027 receives the validity confirmation information of the content key decryption program associated with the terminal 2001 from the validity confirmation information storage unit 2022. get.
  • the validity confirmation unit 2027 determines whether the received PCR value matches the validity confirmation information. Judging.
  • the validity confirmation unit 2027 closes the switch 2030 so as to connect the terminal and the confidential information storage unit 2029 as described above.
  • the validity confirmation unit 2027 When determining that they do not match, the validity confirmation unit 2027 outputs NG information indicating that they do not match to the program output unit 2028.
  • the validity confirmation unit 2027 is assumed to correspond to only step S1003.
  • the present invention is not limited to this.
  • the validity confirmation unit 2027 may correspond to steps S1002 and S1003.
  • the validity checking unit 2027 performs the signature verification of the PCR value as in the above embodiment, and when the signature verification is OK, the PCR value received from the terminal 2001 and the validity checking information And compare.
  • the program output unit 2028 When the program output unit 2028 receives the NG information from the validity confirmation unit 2027, the program output unit 2028 also acquires the update program of the content key decryption program for the terminal 2001, as well as the update program storage unit 2023.
  • the program output unit 2028 outputs the acquired update program to the program update unit 2013 of the terminal 2001.
  • the network connection terminal 2003 acquires the terminal ID of the terminal 2001 from the terminal ID storage unit 2021 of the card 2002 attached to the network connection terminal 2003, the network connection terminal 2003 outputs the acquired terminal ID to the server 2004 via the network.
  • the network connection terminal 2003 receives the update program, the validity confirmation information, and the individual encryption secret information associated with the output terminal ID from the server 2004 via the network, and each received information is stored in the card. Store in 2002.
  • the server 2004 has a CRL database and manages and updates update programs to be distributed to each terminal and regular PCR values (validity confirmation information).
  • the update program and the validity confirmation information are different for each terminal model.
  • the In other words, the update program and the validity confirmation information are common for the same terminal model, and different for different terminal models.
  • the server 2004 stores and manages the terminal common key in advance.
  • the server 2004 generates a plurality of secret information (device keys) in advance, and stores and manages the generated secret information. Server 2004 manages such that confidential information once distributed to the terminal is not distributed again. Note that the plurality of pieces of confidential information managed by the server 2004 are different from each other. Further, when all secret information managed is distributed, the server 2004 generates a plurality of secret information different from each of the plurality of secret information managed so far. As described above, each of a plurality of secret information generated again is different from each other.
  • the server 2004 Upon receiving the terminal ID from the network connection terminal 2003 via the network, the server 2004 identifies the model from the received terminal ID, and the model common information (update program, validity) corresponding to the identified model. Confirmation information and terminal common key).
  • the server 2004 generates a cryptographic conversion value using the acquired terminal common key and the received terminal ID.
  • the server 2004 acquires one piece of secret information (device key) out of a plurality of pieces of secret information (device key) stored in advance, and encrypts the acquired secret information using the encryption conversion value as an encryption key. To generate individual encrypted secret information.
  • the server 2004 outputs the terminal individual data type (the generated individual encrypted secret information, the acquired update program and the validity confirmation information) to the network connection terminal 2003 via the network.
  • the card 2002 When the card 2002 is inserted in the terminal 2001, the card 2002 acquires the terminal ID of the terminal 2001 and stores the acquired terminal ID in the terminal ID storage unit 2021 (step S 2010).
  • the card 2002 is attached to the network connection terminal 2003, and when the device key is acquired from the server 2004, the card 2002 is stored in the terminal 2001 stored in the terminal ID storage unit 2021.
  • the terminal ID is transmitted to the server 2004 via the network connection terminal 2003 (step S20 15).
  • the server 2004 When the server 2004 receives the terminal ID of the terminal 2001 from the card 2002 via the network connection terminal 2003, the server 2004 identifies the model from the received terminal ID, and the model common information corresponding to the identified model (update program, validity check information) And terminal common key) (step S2020).
  • the server 2004 performs individual encryption processing on the secret information (device key) to generate individual encrypted secret information (step S2025). Specifically, the server 2004 generates an encryption conversion value using the acquired terminal common key and the received terminal ID. The server 2004 generates secret information (device key), encrypts the secret information using the encryption conversion value as an encryption key, and generates individual encrypted secret information.
  • the server 2004 outputs the terminal individual data type (the generated individual encrypted secret information, the acquired update program and the validity confirmation information) to the network connection terminal 2003 via the network (step S 2030).
  • the card 2002 When the card 2002 receives the terminal individual data type from the server 2004 via the network connection terminal 2003, the card 2002 stores each information (data) (step S2035). Specifically, the secret information acquisition unit 2024 of the card 2002 The individual encrypted secret information is received, and the received individual encrypted secret information is stored in the secret information storage unit 2029. When receiving the validity confirmation information, the validity confirmation information acquisition unit 2025 stores the received validity confirmation information in the validity confirmation information storage unit 2022. When the update program acquisition unit 2026 receives the update program, the update program acquisition unit 2026 stores the received update program in the update program storage unit 2023.
  • Card 2002 outputs the update program to terminal 2001 (step S2040).
  • the terminal 2001 installs the update program (step S2045).
  • the validity checking unit 2027 of the card 2002 determines the validity of the terminal 2001 (step S2050).
  • the secret information output request corresponds to step S0402 shown in FIG. 4 in the above embodiment, and includes the PCR value of the content key decryption program.
  • the validity checking unit 2027 of the card 2002 includes the validity checking information for the latest update program received from the server 2004 and Compare with the PCR value included in the secret information output request received from the terminal 2001.
  • card 2002 If it is determined that it is not valid ("NG" in step S2050), card 2002 outputs an update program to terminal 2001 (step S2055). Specifically, the validity confirmation unit 2027 outputs NG information to the program output unit 2028. When receiving the NG information from the validity checking unit 2027, the program output unit 2028 acquires the update program of the content key decryption program for the terminal 2001 from the update program storage unit 2023, and acquires the acquired update program in the program update unit 2013 of the terminal 2001. Output to.
  • the entire program installed in the power terminal 2001 for which only the content key decryption program is to be updated may be the update target. In the following, the content decryption program will be described as the update target, but the entire program may be the update target.
  • card 2002 If it is determined to be valid ("OK" in step S2050), card 2002 outputs the individual encrypted secret information to terminal 2001 (step S2060). Specifically, the confidential information storage unit 2029 confirms that the update program has been correctly installed under the control of the validity checking unit 2027, and notifies that the confidential information can be output. 2020 outputs the individual encryption key secret information corresponding to the terminal 2001.
  • the program update unit 2013 of the terminal 2001 installs the received update program (step S2065). Specifically, when receiving an update program for the content key decryption program from the card 2002, the program update unit 2013 updates the content key decryption program using the received update program. After updating the content key decryption program, the program update unit 2013 requests the operating system of the terminal 2001 to reset the system, as in step S0408.
  • the secret information decryption unit 2014 of the terminal 2001 installs the individual encrypted secret information (step S2070). Specifically, the secret information decryption unit 2014 acquires the individual encryption secret information corresponding to the terminal from the card 2002. The secret information decryption unit 2014 obtains the terminal ID from the ID storage unit 2010 and the terminal common key from the system LSI. Using the acquired terminal ID and terminal common key, the secret information decryption unit 2014 is the same as the method for calculating the encryption conversion value by the server 2004. The decoding conversion value is calculated in the same manner. Using the calculated conversion value for decryption, the secret information decryption unit 2014 decrypts the individual encrypted secret information to generate a device key, and updates the device key from the currently stored device key to the generated device key. .
  • the terminal 2001 performs the operations after step S0403 shown in FIG. 4, and the card 2002 executes the right confirmation “key generation program shown in FIG.
  • step S2010 is executed when the card 2002 is inserted into the terminal 2001.
  • step S2015 to step S2035 are executed when the card 2002 is attached to the network connection terminal 2003.
  • step S2040 to S2045 are executed when the program of terminal 2001 is updated by the service person.
  • step S2050 are executed when the user of terminal 2001 requests content playback.
  • the plurality of secret information managed by the server 2004 is managed in plain text (state before encryption), but is not limited to this!
  • the server 2004 may manage each of the plurality of secret information to be managed in a state of being individually encrypted.
  • the server 2004 encrypts each of the plurality of pieces of secret information using different terminal IDs by the same encryption method as in the first modified example.
  • the server 2004 manages the generated individual encryption key secret information in association with the terminal ID used for the encryption key.
  • the server 2004 receives the terminal ID for the network connection terminal power, the server 2004 obtains the individual encryption secret information corresponding to the received terminal ID.
  • the server 2004 stores a plurality of secret information in advance.
  • the power that you are doing is not limited to this.
  • Server 2004 generates secret information each time it receives a terminal ID for network connection terminals.
  • the device key distribution system 2000 has the power to update the content key decryption program of the terminal 2001 by the service person by steps S2040 and S2045 shown in FIG. Not limited.
  • steps S2040 and S2045 need not be performed.
  • the conversion values (the conversion value for encryption and the conversion value for decryption) generated from the terminal ID and the terminal common key are used. It is not limited to this.
  • the conversion value is generated from the terminal ID and the terminal common key, but the present invention is not limited to this.
  • the conversion value may be a value uniquely associated with the terminal ID.
  • the card 2002 is a force for storing the terminal ID 2015 of the terminal 2001 itself, but is not limited to this.
  • (6-1) Card 2002 is a value (hereinafter referred to as second terminal ID) obtained by applying a one-way function (eg, S HA— 1) to terminal ID (hereinafter referred to as first terminal ID). May be stored.
  • a one-way function eg, S HA— 1
  • the conversion from the first terminal ID (terminal ID 2015) to the second terminal ID may be performed by the card 2002 2 or by the terminal 2001 !.
  • the server 2004 has the management table T2000 shown in FIG. 19.
  • the management table T2000 stores one or more sets of terminal IDs before conversion and terminal IDs after conversion. Has an area for.
  • the pre-conversion terminal ID indicates the terminal ID for the terminal, that is, the first terminal ID
  • the post-conversion terminal ID is the second terminal ID obtained by applying a one-way function (for example, SHA-1) to the terminal ID. Indicates.
  • the card 2002 sends the second terminal ID to the server 2004 via the network connection terminal 2003. Send.
  • the server 2004 When the server 2004 receives the second terminal ID from the card 2002 via the network connection terminal 2003, the server 2004 acquires the first terminal ID corresponding to the received second terminal ID from the management table T2000. The server 2004 generates individual encryption secret information using the acquired first terminal ID.
  • Sano 2004 upon receiving the second terminal ID "IDA-1" from the card 2002, Sano 2004 receives the first terminal ID "IDA” corresponding to the second terminal ID "IDA-1" (ie, The same ID as the terminal ID 2015) is acquired, and individual encrypted secret information is generated using the acquired first terminal ID “IDA” (terminal ID 2015).
  • An individual encryption key or secret key may be generated using the second terminal ID.
  • the card 2002 transmits the second terminal ID to the server 2004 via the network connection terminal 2003 in the same manner as described above.
  • the server 2004 When the server 2004 receives the second terminal ID from the card 2002 via the network connection terminal 2003, the server 2004 generates individual encryption secret information using the received second terminal ID.
  • the terminal 2001 generates a second terminal ID, and decrypts the individual encryption secret key using the generated second terminal ID.
  • the terminal 2001 is a non-network-connected terminal, but is not limited to this.
  • the terminal 2001 may be a terminal that can be connected to the network. That is, the terminal 2001 can be realized by combining the operation performed by the network connection terminal 2003 shown in the first modified example.
  • the program to be updated is common to each model. Therefore, if the mechanism of the above embodiment is applied to device key distribution as it is, the device key is distributed to the clone terminal only by the confirmation by the validity confirmation means, and the clone terminal distributes the distributed device.
  • the key can be used.
  • a clone terminal is an unauthorized terminal that is different from a legitimate terminal only in the terminal ID and other components are the same.
  • the data to be sent here, the device key
  • the card is valid for the clone terminal. Even if the device key is distributed, the encrypted device key cannot be decrypted by the clone terminal.
  • the device key since the device key is sent only after the program update is confirmed, the device key that can be used by a program with an unauthorized or security hole can be safely updated.
  • the device key distribution system 2000a is a terminal (certification device) 2001a.
  • a card (verification device) 2002a A card (verification device) 2002a, a network connection terminal 2003a, and a server 2004a.
  • Terminal 2001a is a terminal that is not connected to the network, and similarly to terminal 2001 shown in the above embodiment, a device key and a program for decrypting the encrypted content key ( Hereinafter, a content key decryption program) is included.
  • the card 2002a When the card 2002a is installed in the terminal, the card 2002a acquires and stores a terminal ID for identifying the terminal. Similarly to the card 2002 shown in the first modification, the card 2002a stores in advance the terminal ID of the terminal 200 la. When the CRL is updated, the card 2002a outputs the previously stored terminal ID to the network connection terminal 2003a.
  • the network connection terminal 2003a transmits the terminal ID to the server 2004a via the network.
  • the network connection terminal 2003a receives, from the server 2004a, the update program for the decryption program, the validity confirmation information, and the individual encryption key secret information individually encrypted by the transmitted terminal ID, and receives each received information from the card 2002a. Output to.
  • the server 2004a Upon receiving the terminal ID from the network connection terminal 2003a, the server 2004a transmits the update program, the validity confirmation information, and the secret information based on the received terminal ID.
  • the individual encryption key of the legitimate device key is the same as in the first modification example, so The description here is omitted.
  • the terminal 2001a includes an ID storage unit 2010a, a program storage unit 201la, a terminal measurement unit 2012a, a program update unit 2013a, and a secret information decryption unit 2014a as shown in FIG.
  • the terminal 2001a stores the terminal common key, like the terminal 2001 shown in the first modification.
  • the terminal common key has confidentiality due to tamper resistance.
  • the ID storage unit 2010a stores the terminal ID 2015a of the terminal in advance.
  • the ID storage unit 2010a has tamper resistance, and the terminal ID 2015a cannot be falsified.
  • the program storage unit 201la is the same as that in the first modified example, and a description thereof will be omitted.
  • the terminal measurement unit 2012a corresponds to the secure module 0707 and the secure module 0707 control part of the boot code 0703, operating system 0709, and playback control program 0711 in the above embodiment.
  • the terminal measurement unit 2012a measures (calculates) the PCR value of the content key decryption program as in the above embodiment.
  • the terminal measurement unit 2012a applies a PCR value extension command to the terminal ID 2015a stored in the ID storage unit 2010a and the calculated PCR value, and adds the terminal ID 2015a to the PCR value of the content key decryption program.
  • Generate a PCR value that reflects (hereinafter referred to as PCR value with ID). It should be noted that here, the power that reflects the terminal ID after measuring the PCR value of the content key decryption program may reflect the content key decryption program after reflecting the terminal ID.
  • the terminal measurement unit 2012a outputs the generated PCR value with ID to the card 2002a.
  • the measurement timing and output timing are the same as those in the first modification. It is the same.
  • program update unit 2013a is the same as the program update unit 2013 shown in the first modified example, description thereof is omitted here.
  • the secret information decryption unit 2014a is the same as the secret information decryption unit 2014 shown in the first modified example, and a description thereof will be omitted here.
  • the card 2002a includes a secret information providing unit 2020a, a terminal ID storage unit 2021a, a validity confirmation information storage unit 2022a, an update program storage unit 2023a, a secret information acquisition unit 2024a, and validity confirmation information. It consists of an acquisition unit 2025a, an update program acquisition unit 2026a, and a validity confirmation unit 2027a.
  • the secret information providing unit 2020a has a secret information accumulating unit 2029a and a switch 2030a.
  • each of the secret information storage unit 2029a and the switch 2030a is the same as each of the secret information storage unit 2029 and the switch 2030 shown in the first modified example, description thereof is omitted here.
  • the terminal ID storage unit 2021a is the same as the terminal ID storage unit 2021 shown in the first modified example, and a description thereof will be omitted here.
  • the validity confirmation information storage unit 2022a corresponds to the storage part of the valid PCR value in the CRL database 08 05 in the above embodiment.
  • the validity confirmation information storage unit 2022a stores the validity confirmation information (a PCR value with a regular ID) received from the server 204a via the network connection terminal 2003a in the terminal ID storage unit 2021a. It is stored in association with the terminal ID.
  • the validity confirmation information storage unit 2022a is valid for the content key decryption program and the terminal ID 2015a. It is assumed that confirmation information (PCR value with regular ID) is stored in association with terminal ID 2015a of terminal 2001a.
  • the update program storage unit 2023a corresponds to the storage part of the update program in the CRL database 0805 in the above embodiment.
  • the update program storage unit 2023a is the same as the update program storage unit 2023 shown in the first modified example, and a description thereof will be omitted here.
  • the CRL database 0805 shown above is composed of the terminal ID storage unit 2021a, the validity confirmation information storage unit 2022a, and the update program storage unit 2023a shown in this modification.
  • the secret information acquisition unit 2024a is the same as the secret information acquisition unit 2024 shown in the first modified example, and a description thereof will be omitted here.
  • the validity confirmation information acquisition unit 2025a performs the CRL update process in FIG. 9 shown in the above embodiment, particularly the process corresponding to the update of the regular PCR value in the CRL database.
  • the correctness confirmation information acquisition unit 2025a receives the correctness confirmation information (PCR value with a valid ID) from the server 2004a via the network connection terminal 2003a, the correctness confirmation information storage unit Store in 2022a.
  • the update program acquisition unit 2026a is the same as the update program acquisition unit 2026 shown in the first modified example, and a description thereof will be omitted here.
  • the validity confirmation unit 2027a performs a process corresponding to the process of S1003 in FIG. 10 shown in the above embodiment.
  • the validity confirmation unit 2027a Upon receiving the content key decryption program and the PCR value with ID for the terminal ID 2015 15a from the terminal 2001a, the validity confirmation unit 2027a receives the content key decryption program associated with the terminal 2001a and the validity confirmation information for the terminal ID 2015a ( (PCR value with regular ID) Acquired from the validity confirmation information storage unit 2022a.
  • the validity confirmation unit 2027a determines whether or not the received PCR value with ID matches the validity confirmation information.
  • the operation according to the determination result is the same as the operation according to the determination result of the validity confirmation unit 2027 shown in the first modified example, and thus description thereof is omitted here.
  • validity confirmation unit 2027a may correspond to steps S1002 and S1003, as in the first modification.
  • program output unit 2028a is the same as the program output unit 2028 shown in the first modified example, description thereof is omitted here.
  • the network connection terminal 2003a acquires the terminal ID of the terminal 2001a from the terminal ID storage unit 2021a of the card 2002a attached to the network connection terminal 2003a
  • the network connection terminal 2003a outputs the acquired terminal ID to the server 2004a via the network.
  • the network connection terminal 2003a receives and receives the update program associated with the output terminal ID, the validity confirmation information (PCR value with ID), and the individual encrypted secret information from the server 2004a via the network. Each information is stored in the card 2002a.
  • the server 2004a has a CRL database and manages update programs to be distributed and regular PCR values (validity confirmation information) for each terminal. Note that the update program and the validity confirmation information differ for each terminal model, as in the first modification.
  • the server 2004a stores and manages the terminal common key in advance.
  • the server 2004a generates a plurality of secret information (device keys) in advance, and stores and manages the generated secret information.
  • Server 2004a manages the confidential information once distributed to the terminal so that it is not distributed again. Note that the plurality of pieces of confidential information managed by the server 2004a are different from each other.
  • Server 2004a is responsible for all confidential information it manages. When the information is distributed, it is managed so far! /, And multiple secret information different from each secret information is generated. As described above, the plurality of secret information generated again are different from each other.
  • the Sano 2004a Upon receiving the terminal ID from the network connection terminal 2003a via the network, the Sano 2004a identifies the model from the received terminal ID and updates the content key decryption program corresponding to the identified model. Get value and terminal common key.
  • the server 2004a performs a PCR value extension command on the terminal ID received from the network connection terminal 2003a and the obtained PCR value, and checks the validity of the terminal ID reflected in the PCR value of the content key decryption program. Generate information (PCR value with regular ID).
  • the server 2004a generates the individual encrypted secret information by the same method as the server 2004 shown in the first modified example.
  • Server 2004a outputs the terminal individual data formula (generated individual encrypted secret information, acquired update program and validity check information (PCR value with proper ID)) to the network connection terminal 2003a via the network. .
  • the operation of the device key distribution system 2000a differs from the operation of the device key distribution system 2000 shown in Fig. 18 only in the data content of the validity confirmation information, and the system operation can be realized in the same flow. Therefore, explanation here is omitted.
  • the ID-added PCR value is generated by applying the PCR value extension command to the PCR value of the content key decryption program and the terminal ID 2015a.
  • the PCR value extension command is not limited to this.
  • the PCR value with ID may be generated by adding the hash value obtained by applying a one-way function to terminal ID 2015a to the PCR value of the content key decryption program! (2)
  • the terminal 2001a is a non-network-connected terminal, but is not limited to this.
  • the terminal 2001a may be a terminal that can be connected to the network. That is, the terminal 2001a can be realized by eliminating the operation performed by the network connection terminal 2003a shown in the second modified example.
  • the PCR value with the ID is calculated using the PCR value of the program and the terminal ID, and the validity of the terminal is confirmed using the calculated PCR value. Unauthorized devices that have been taken cannot obtain device keys! /.
  • the device key is sent only after the program update is confirmed, so that the device key can be updated safely.
  • the PCR value reflecting the terminal ID is generated by the server, but the present invention is not limited to this.
  • the PCR value reflecting the terminal ID may be generated by the card.
  • the device key distribution system 2000b includes a terminal (certification device) 2001b, a card (verification device) 2002b, a network connection terminal 2003b, and a server 2004b.
  • Terminal 2001b is a terminal that is not connected to the network, and similarly to terminal 2001 shown in the above embodiment, a program for decrypting a device key and an encrypted content key ( Hereinafter, a content key decryption program) is included.
  • the terminal 2001b receives the device key encrypted with the value associated with the terminal ID of the terminal 2001b from the card 2002b (hereinafter referred to as an individual encryption device key) and decrypts the received individual encryption device key. , Get the device key corresponding to the terminal [0222]
  • the card 2002b acquires and stores a terminal ID for identifying the terminal.
  • the card 2002b stores in advance the terminal ID of the terminal 2001b.
  • the CRL is updated, the card 2002b outputs the previously stored terminal ID to the network connection terminal 2003b.
  • the network connection terminal 2003b sends the terminal ID to the server 2004b via the network.
  • the network connection terminal 2003b receives from the server 2004b the update program for the decryption program, the correctness confirmation information, and the individual encryption key secret information individually encrypted with the transmitted terminal ID. Output to.
  • the server 2004b Upon receiving the terminal ID as well as the network connection terminal 2003b, the server 2004b transmits the update program, the validity confirmation information, and the secret information based on the received terminal ID.
  • the individual encryption key of the regular device key is the same as that in the first modified example, and the description thereof is omitted here.
  • the legitimate device key is encrypted using the conversion value converted from the terminal ID and the terminal common key as the secret key.
  • the terminal 2001b includes an ID storage unit 2010b, a program storage unit 201 lb, a terminal measurement unit 2012b, a program update unit 2013b, and a secret information decryption unit 2014b, as shown in FIG.
  • the terminal 2001b stores the terminal common key in the same manner as the terminal 2001 shown in the first modification.
  • the terminal common key has confidentiality due to tamper resistance.
  • the ID storage unit 2010b stores the terminal ID 2015b of the terminal in advance.
  • the ID storage unit 2010b has tamper resistance, and the terminal ID 2015b cannot be falsified.
  • the terminal measurement unit 2012b includes the secure module 0707 and the above embodiment. And the boot code 0703, the operating system 0709, and the playback control program 0711 corresponding to the secure module 0707 control portion.
  • the terminal measurement unit 2012b generates the PCR value with ID by the same operation as in the second modification. Note that the detailed operation is shown in the second modified example, and the description thereof is omitted here.
  • the program update unit 2013b is the same as the program update unit 2013 shown in the first modified example, and a description thereof will be omitted here.
  • the secret information decryption unit 2014b is realized by starting and executing the secret information decryption program stored in the program storage unit 201 lb.
  • the secret information decryption unit 2014b acquires the individual encryption device key from the card 2002b.
  • the secret information decryption unit 2014b obtains the terminal ID from the ID storage unit 2010b and the terminal common key from the system LSI.
  • the secret information decryption unit 2014b decrypts the individual encryption device key using the acquired terminal ID and terminal common key, and generates a device key.
  • the secret information decryption unit 2014b updates the generated device key from the device key that is currently stored!
  • the card 2002b includes a secret information providing unit 2020b, a terminal ID storage unit 2021b, a validity confirmation information storage unit 2022b, an update program storage unit 2023b, a secret information acquisition unit 2024b, and validity confirmation information. It consists of an acquisition unit 2025b, an update program acquisition unit 2026b, a validity confirmation unit 2027b, a confirmation information individualization unit 2040b, a device key individualization unit 2041b, a card ID storage unit 2042b, and a terminal common key storage unit 2043b.
  • the card ID storage unit 2042b stores a card ID unique to the card 2002b.
  • the card ID storage unit 2042b has tamper resistance, and the card ID cannot be falsified.
  • (C- 1-2- 2) Confidential information provider 2020b As shown in FIG. 21, the secret information providing unit 2020b has a secret information accumulating unit 2029b and a switch 2030b.
  • the secret information storage unit 2029b stores a plurality of device keys encrypted with the card ID stored in the card ID storage unit 2042b (hereinafter referred to as secret information or a distribution encryption device key). is doing.
  • the switch 2030b is the same as the switch 2030 shown in the first modified example, and a description thereof will be omitted.
  • the secret information providing unit 2020b manages secret information that has been output to the terminal in the past so that it is not output again.
  • a flag is associated with each of a plurality of secret information.
  • the secret information providing unit 2020b associates the value “0” with the secret information that has not been output and the value “1” with the secret information that has already been output.
  • the distribution encryption device key is generated by a secret key encryption method using the card ID as a secret key.
  • Terminal ID storage unit 2021b Terminal common key storage unit 2043b
  • the terminal ID storage unit 202 lb is the same as the terminal ID storage unit 2021 shown in the first modified example, and a description thereof will be omitted here.
  • Terminal common key storage section 2043b stores one or more terminal common keys in association with the model of the terminal in which the terminal common key is stored. Here, it is assumed that the terminal common key corresponding to the terminal 2001b is stored!
  • the terminal common key storage unit 2043b has tamper resistance, and the terminal common key cannot be falsified.
  • the validity confirmation information storage unit 2022b corresponds to the storage part of the valid PCR value in the CRL database 0805 in the above embodiment.
  • the legitimacy confirmation information storage unit 2022b has legitimate confirmation information (regular PCR value) for the content key decryption program managed by the server 2004b and a legitimate ID-added PCR value generated from the terminal ID 2015b (hereinafter, (Also called personalization confirmation information) The information is stored in association with the terminal ID stored in unit 2021b.
  • the validity confirmation information storage unit 2022b records the personalization confirmation information (PCR value with a regular ID) for the content key decryption program and the terminal ID 2015b in association with the terminal ID 2015b of the terminal 200 lb. And shall be
  • the update program storage unit 2023b corresponds to the update program storage part of the CRL database 0805 in the above embodiment.
  • the update program storage unit 2023b is the same as the update program storage unit 2023 shown in the first modified example, and a description thereof will be omitted here.
  • CRL database 0805 shown above is composed of the terminal ID storage unit 2021b, the validity confirmation information storage unit 2022b, and the update program storage unit 2023b shown in this modification.
  • the secret information acquisition unit 2024b When the secret information acquisition unit 2024b receives a plurality of distribution encryption device keys (secret information) from the server 2004b via the network connection terminal 2003b, the plurality of distribution encryption device keys (secret information) received. Is stored in the secret information storage unit 2029b.
  • the validity confirmation information acquisition unit 2025b corresponds to the CRL update processing in FIG. 9 shown in the above embodiment, particularly the regular PCR value update of the CRL database.
  • the validity confirmation information acquisition unit 2025b When the validity confirmation information acquisition unit 2025b receives the validity confirmation information (regular PCR value) from the server 204b via the network connection terminal 2003b, it outputs the received validity confirmation information to the confirmation information individualization unit 2040b. To do.
  • the validity confirmation information regular PCR value
  • the update program acquisition unit 2026b is the same as the update program acquisition unit 2026 shown in the first modified example, and a description thereof will be omitted here.
  • the validity confirmation unit 2027b performs a process corresponding to S1003 in FIG. 10 shown in the above embodiment. [0240] Upon receiving the PCR value with ID for the content key decryption program and the terminal ID 2015b from the terminal 2001b, the validity confirmation unit 2027b confirms the validity for the content key decryption program associated with the terminal 2001b and the terminal ID 2015b. Information (PCR value with regular ID) is acquired from the validity confirmation information storage unit 2022b.
  • the validity confirmation unit 2027b determines whether the received PCR value with ID matches the validity confirmation information.
  • the validity confirmation unit 2027b closes the switch 2030b so as to connect the terminal and the secret information storage unit 2029b, and divides OK information indicating that they match into device key individualization. Output to part 2041b.
  • the validity confirmation unit 2027b When determining that they do not match, the validity confirmation unit 2027b outputs NG information indicating that they do not match to the program output unit 2028b.
  • the validity confirmation unit 2027b is not limited to this force, which is equivalent to only step S1003.
  • the validity confirmation unit 2027b may correspond to steps S1002 and S1003.
  • program output unit 2028b is the same as the program output unit 2028 shown in the first modified example, description thereof is omitted here.
  • the confirmation information individualization unit 2040b When receiving the validity confirmation information (regular PCR value) from the validity confirmation information acquisition unit 2025b, the confirmation information individualization unit 2040b acquires the terminal ID 2015b from the terminal ID storage unit 2021b.
  • the legitimate PCR value received from server 2004b has not yet been associated with the terminal ID.
  • the confirmation information personalization unit 2040b performs the same processing as the PCR value extension command from the validity confirmation information and the terminal ID 2015b, and personalizes the terminal ID in the PCR value of the content key decryption program. Confirmation information (PCR value with regular ID) is generated.
  • the confirmation information individualization unit 2040b stores the generated individualization confirmation information in the validity confirmation information storage unit 2022b. [0245] (C— 1— 2— 12) Device key individualization unit 204 lb
  • the device ID personalizing unit 204 lb receives the terminal ID 2015b from the terminal ID storage unit 2021b and the flag from the secret information storage unit 2029b.
  • One distribution encryption key device key (secret information) having a value of “0” is obtained from the card ID storage unit 2042b.
  • the device key individualizing unit 204 lb generates a device key by decrypting the obtained one distribution encryption device key using the card ID.
  • the device key individualization unit 204 lb is implemented using the terminal common key (stored in the terminal common key storage unit 2043b) and the terminal ID 2015b (stored in the terminal ID storage unit 2021b) stored in the card 2002b in advance.
  • the device key is encrypted by a secret encryption method using the value generated by the conversion method in FIG. 17 shown in FIG. 17 as a secret key, and an individual encryption device key is generated.
  • the device key individualizing unit 204 lb outputs the generated individual encryption device key to the terminal 2001b and requests the operating system of the terminal 2001b to start the secret information decryption program.
  • the network connection terminal 2003b acquires the terminal ID of the terminal 2001a from the terminal ID storage unit 2021a of the card 2002b attached to the network connection terminal 2003b and the card ID from the card ID storage unit 2042b
  • the network connection terminal 2003b acquires the acquired terminal ID and card ID. And output to server 2004b via the network.
  • the card ID storage unit 2042b outputs the encrypted card ID in such a way that the confidentiality of the card ID is not impaired in the communication path between the card 2002b and the Sano 2004b.
  • the data is output after being encrypted with a common key with server 2004b by a known method for constructing a secure communication path.
  • the network connection terminal 2003b transmits the update program associated with the terminal ID output from the server 2004b via the network, its validity confirmation information (PCR value), and a plurality of secret information (for distribution). And the received information is stored in the card 2002b.
  • PCR value validity confirmation information
  • secret information for distribution
  • the server 2004b has a CRL database and manages update programs to be distributed and regular PCR values (validity confirmation information) for each terminal. Note that the update program and the validity confirmation information are different for each terminal model.
  • the server 2004b generates a plurality of device keys in advance, and stores and manages the generated secret information.
  • Server 2004b manages the confidential information once distributed to the terminal so that it is not distributed again. Note that the plurality of device keys managed by the server 2004b are different from each other. Further, when all secret information managed is distributed, the server 2004b generates a plurality of device keys different from each of the plurality of device keys managed so far. As described above, the plurality of device keys generated again are different from each other.
  • the server 2004b Upon receiving the terminal ID and card ID from the network connection terminal 2003b via the network, the server 2004b identifies the terminal ID capability model received, an update program for the content key decryption program corresponding to the identified model, And obtain the PCR value.
  • the server 2004b manages and acquires a predetermined number (two or more) of device keys from among the plurality of device keys.
  • Sano 2004b encrypts each acquired number of device keys by a secret key encryption method using a card ID as a secret key via a secure communication path of card 2002b. Generate a number of cryptographic key devices (secret information) for distribution.
  • the server 2004b outputs the terminal individual data formula (the plurality of secret information generated, the acquired update program and its validity check information (regular PCR value)) to the network connection terminal 2003b via the network.
  • the card 2002b When the card 2002b is attached to the terminal 2001b, it acquires the terminal ID of the terminal 2001b, and stores the acquired terminal ID 2015b in the terminal ID storage unit 202 lb (step S 2100).
  • the card 2002b is attached to the network connection terminal 2003b and updates the CRL data.
  • the card ID storage unit 2042b also acquires the card ID, and transmits the acquired card ID and the terminal ID 2015b of the terminal 2001b stored in the terminal ID storage unit 2021b to the server 2004b via the network connection terminal 2003b. (Step S2105).
  • Server 2004b manages to obtain a predetermined number (two or more) of device keys from among a plurality of device keys, and each of the acquired predetermined number of device keys is a secret using the received card ID as a secret key. Encryption by the key encryption method is performed to generate a predetermined number of secret information (distribution encryption device key) (step S2115).
  • the server 2004b transmits the terminal-specific data type (generated secret information (distribution encryption key device key), acquired update program and its validity check information) to the network connection terminal 2003b via the network. (Step S2120).
  • the card 2002b When the card 2002b receives the terminal-specific data type from the server 2004b via the network connection terminal 2003b, the card 2002b stores each information (data) (step S2125). Specifically, the card 2002b secret information acquisition unit 2024b Receives a plurality of secret information (distribution encryption key device key), and stores the received plurality of secret information in the secret information storage unit 2029b. Upon receipt of the validity confirmation information, the validity confirmation information acquisition unit 2025b stores the received validity confirmation information in the validity confirmation information storage unit 2022b. When receiving the update program, the update program acquisition unit 2026b stores the received update program in the update program storage unit 2023b.
  • the card 2002b secret information acquisition unit 2024b Receives a plurality of secret information (distribution encryption key device key), and stores the received plurality of secret information in the secret information storage unit 2029b.
  • the validity confirmation information acquisition unit 2025b Upon receipt of the validity confirmation information, stores the received validity confirmation information in the validity confirmation information storage unit 2022b.
  • the card 2002b outputs the update program to the terminal 2001b (step S2130).
  • the terminal 2001b installs the update program (step S2135).
  • the legitimacy confirmation unit 2027b of the card 2002b determines the legitimacy of the terminal 2001b (step S2140).
  • the secret information output request corresponds to step S0402 shown in FIG. 4 in the above embodiment, and includes the PCR value with ID of the content key decryption program.
  • the validity checking unit 2027b of the card 2002b is The validity confirmation information for the content key decryption program is compared with the PCR value with ID included in the received confidential information output request.
  • card 2002b If it is determined that it is not valid ("NG" in step S2140), card 2002b outputs an update program to terminal 2001b (step S2145). Specifically, the validity confirmation unit 2027b outputs NG information to the program output unit 2028b. When receiving the NG information from the validity checking unit 2027b, the program output unit 2028b acquires the update program of the content key decryption program for the terminal 2001b from the update program storage unit 2023b, and updates the acquired update program of the terminal 2001b. Output to part 2013b.
  • the card 2002b When it is determined to be valid ("O:" in step S2140), the card 2002b generates an individual encryption key device key and outputs the generated individual encryption key device key to the terminal 2001b. (Step S2150). Specifically, the validity confirmation unit 2027b outputs OK information to the device key individualization unit 2041b. When the device key individualizing unit 2041b receives OK information from the validity checking unit 2027b, the device key individualizing unit 2041b receives the terminal ID 2015b from the terminal ID storage unit 2021b and the flag information value “0” from the secret information storage unit 2029b. The distribution encryption key device key (secret information) is acquired from the card ID storage unit 2042b.
  • the device key personalization unit 2041b generates a device key by decrypting the obtained single encryption device key for distribution using the card ID.
  • the device key individualization unit 2041b uses the terminal common key stored in the card 2002b and the terminal ID 2015b in advance as a secret key for the device generated by the secret encryption method using the value generated by the conversion method shown in FIG. Encrypt the key to generate an individual encryption key device key.
  • the device key individualizing unit 2041b outputs the generated individual encryption device key to the terminal 2001b.
  • the program update unit 2013b of the terminal 2001b installs the received update program (step S2155). Specifically, when receiving an update program for the content key decryption program from the card 2002b, the program update unit 2013b updates the content key decryption program using the received update program. After updating the decryption program, the program update unit 2013b requests the operating system of the terminal 2001b to reset the system as in step S0408. [0260] When the secret information decryption unit 2014b of the terminal 2001b receives the individual encrypted secret information and also the card 2002b, it installs the individual encryption device key (step S2160).
  • the secret information decryption unit 2014b obtains the individual encryption device key corresponding to the terminal from the card 2002b and the terminal ID from the ID storage unit 2010b.
  • the secret information decryption unit 2014b decrypts the individual encrypted device key using the acquired terminal ID and terminal common key, and generates a device key.
  • the secret information decryption unit 2014b updates the currently stored device key to the generated device key.
  • the terminal 2001b performs the operations in and after step S0403 shown in FIG. 4, and the force 2002b executes the right confirmation 'key generation program shown in FIG.
  • step S2010 is executed when the card 2002b is inserted into the terminal 2001b.
  • step S2015 to step S2035 are executed when the card 2002b is attached to the network connection terminal 2003b.
  • Steps S2040 to S2045 are executed until the serviceman updates the program on the terminal 2001b.
  • step S2050 are executed when the user of terminal 2001b requests content reproduction.
  • the number of device keys (predetermined number) acquired by the server 2004b is two or more, but is not limited to this.
  • Server 2004b Force The number of device keys to be acquired need only be one or more.
  • the number of device keys acquired by the server 2004b is a predetermined number (predetermined number), but is not limited to this.
  • Server 2004b obtains information about the number of device keys to be acquired at the network connection terminal. When transmitting, the user may specify.
  • the network connection terminal 2003b transmits the acquisition number designated by the user to the server 2004b.
  • the server 2004b receives the number of acquired network connection terminals 2003b, the server 2004b acquires device keys for the acquired number of acquired devices.
  • the secret information storage unit 2029b stores a plurality of distribution encryption device keys.
  • the present invention is not limited to this.
  • the secret information storage unit 2029b may store a plurality of decrypted device keys.
  • the card ID storage unit 2042b When the secret information acquisition unit 2024b receives a plurality of distribution encryption device keys from the server 2004b, the card ID storage unit 2042b also acquires the card ID.
  • the secret information acquisition unit 2024b generates a device key by decrypting each of the distribution encryption device keys using the acquired card ID.
  • the secret information acquisition unit 2024b generates the same number of device keys as the number of distribution encryption device keys received and the number of distribution encryption device keys received for this decryption operation.
  • the secret information acquisition unit 2024b stores the generated device keys in the secret information storage unit 2029b.
  • the terminal 2001b is a non-network-connected terminal, but is not limited to this.
  • the terminal 2001b may be a terminal that can be connected to the network. That is, the terminal 2001b can be realized by eliminating the operation performed by the network connection terminal 2003b shown in the third modified example.
  • the device key distribution system 2000b updates the content key decryption program of the terminal 2001b by the serviceman through steps S2130 and S2135 shown in FIG. Power is not limited to this.
  • Steps S2130 and S2135 do not have to be performed for the operation of the Denois key distribution system 2000b!
  • the secret information providing unit 2020b is stored in the secret information accumulating unit 2029b so that the secret information output to the terminal in the past is not output again.
  • the flag is associated with each of the plurality of secret information, the present invention is not limited to this.
  • the secret information providing unit 2020b generates a list that also has one or more output secret information capabilities, and uses the generated list to manage the secret information that was previously output to the terminal so that it is not output again. Good.
  • the secret information providing unit 2020b may delete the output secret information.
  • the device key individualizing unit 2041b uses the terminal ID when generating the individual encrypted device key, but is not limited to this.
  • the device key individualization unit 204 lb encrypts the device key using the individualization confirmation information (that is, the PCR value with ID) used in the validity confirmation unit 2027b as a private key, and You can generate a device key.
  • the individualization confirmation information that is, the PCR value with ID
  • the server 2004b has the power to generate a distribution encryption device key using the card ID.
  • the server 2004b uses the conversion value (encryption conversion value) generated from the terminal ID and the terminal common key in the same way as in the first and second modifications. You can also generate an encryption device key for distribution using only the terminal ID! / ⁇ .
  • the device key personalization unit 2041b of the card 2002b decrypts the distribution encryption device key encrypted with the encrypted conversion value or the terminal ID, and then encrypts it with the terminal ID and encrypts the individual encryption key.
  • a device key may be generated, or the encryption device key for distribution itself may be encrypted with the device ID, that is, a double encryption key may be used to generate an individual encryption device key. .
  • the terminal 2001b When double encryption is performed, the terminal 2001b first decrypts the individual encryption device key with the terminal ID to generate a distribution encryption device key. Next, the terminal 2001b generates a decryption conversion value from the terminal ID and the terminal common key, and decrypts the generated distribution encryption device key using the generated decryption conversion value to obtain the device key. Generate.
  • the distribution encryption device key may be generated with a secret key shared in advance between the card 2002b and the server 2004b.
  • the card 2002b has a configuration in which the terminal common key is stored in advance. The present invention is not limited to this.
  • the card 2002b may receive the terminal common key from the server 2004b.
  • the server 2004b when the server 2004b receives the terminal ID and the card ID from the card 2002b, the server 2004b acquires the terminal common key corresponding to the model specified by the received terminal ID, and uses the acquired terminal common key as the received card ID.
  • the encrypted terminal common key is transmitted to the card 2002b.
  • the card 2002b Upon receiving the encrypted terminal common key, the card 2002b stores the received encrypted terminal common key in the terminal common key storage unit 2043b.
  • the card 2002b decrypts the encrypted terminal common key when generating the individual encryption device key.
  • a plurality of device keys are encrypted with a card ID, so a plurality of device keys to be stored for each card are individualized. can do. This allows different device keys to be distributed to multiple terminals using a single card.
  • one card stores a plurality of device keys (here, the distribution encryption device key), the number of accesses to the server can be reduced.
  • the device key is individualized on the card, but the present invention is not limited to this.
  • Device key individualization may be performed by a terminal to which a device key is distributed.
  • the device key is a key for encrypting and decrypting a key for encrypting and decrypting content (hereinafter referred to as a content key).
  • the device key distribution system 2100 includes a terminal (certification device) 2101, a card (verification device) 2102, a network connection terminal 2103, and a server 2104. ing.
  • Terminal 2101 is a terminal that is not connected to the network, and corresponds to terminal N0105,..., Terminal Z0106 shown in the above embodiment.
  • the terminal 2101 has a device key and a program for decrypting the encrypted content key (hereinafter, content key decryption program).
  • the terminal 2101 receives an individual encryption program for encrypting the device key from the card 2102 when the device key is acquired (updated). The individual encryption program will be described later.
  • the card 2102 When the card 2102 is attached to a terminal, the card 2102 acquires and stores a terminal ID for identifying the terminal.
  • the card 2102 stores a terminal ID for identifying the terminal 2101 in advance. That is, it is assumed that the card 2102 has been attached to the terminal 2101 once in the past.
  • the card 2102 outputs the terminal ID stored in advance to the network connection terminal 2103 at the time of updating the CRL shown in the above embodiment.
  • the network connection terminal 2103 transmits the terminal ID to the server 2104 via the network.
  • the network connection terminal 2103 receives from the server 2104 an update program for the individual encryption program (hereinafter referred to as the first update program) and an update program for the content key decryption program (hereinafter referred to as the second update program).
  • the first validity confirmation information for the individual encryption program, the second validity confirmation information for the content key decryption program, and a plurality of secret information are received, and each received information is output to the card 2102.
  • the secret information consists of a pair of a distribution encryption device key and encryption individual delivery key.
  • the distribution encryption device key is obtained by encrypting a device key with an individual delivery key assigned to each device key.
  • the encrypted individual delivery key is obtained by encrypting the individual delivery key with the terminal common key.
  • the encryption method here is a secret key encryption method as described above.
  • the server 2104 Upon receiving the terminal ID from the network connection terminal 2103, the server 2104 transmits an update program corresponding to the terminal ID, validity check information, and a plurality of secret information.
  • encryption of a regular device key and an individual delivery key will be described.
  • the server 2104 encrypts the device key with the corresponding individual delivery key as shown in FIG.
  • the encrypted encryption device key is generated (step S2200).
  • the server 2104 encrypts the individual delivery key with the terminal common key, and generates an encrypted individual delivery key (step S2205).
  • the server 2104 transmits to the card 2102 secret information composed of the generated distribution encryption key device key and encryption key individual delivery key.
  • the terminal 2101 includes an ID storage unit 2110, a first program storage unit 2111, a second program storage unit 2112, a terminal measurement unit 2113, a first program update unit 2114, a second program storage unit 2112, The program update unit 2115, device key individualization unit 2116, individualized device key storage unit 2117, and device key decryption unit 2118 are configured.
  • terminal common key has confidentiality due to tamper resistance.
  • ID storage unit 2110 (D—1— 1— 1) ID storage unit 2110, first program storage unit 2011, second program storage unit 2112
  • the ID storage unit 2110 stores a terminal ID 2200 of the terminal in advance.
  • ID storage unit 2110 has tamper resistance, and terminal ID 2200 cannot be tampered with.
  • the first program storage unit 2111 and the second program storage unit 2112 correspond to the program storage unit 0708 in the above embodiment.
  • the first program storage unit 2111 has an area for storing an individual encryption key program.
  • the individual encryption program is stored when the device key is received, and thereafter, the individual encryption program is deleted when the operation of the second program update unit 2115 starts. .
  • the second program storage unit 2112 decrypts a legitimate device key that is individually encrypted in addition to each program stored in the program storage unit 0708 in the above embodiment.
  • a program hereinafter referred to as a device key decryption program
  • a content key decryption program are stored in advance.
  • the terminal measurement unit 2113 corresponds to the secure module 0707 and the secure module 0707 control part of the boot code 0703, operating system 0709, and playback control program 0711 in the above embodiment.
  • the terminal measurement unit 2113 measures (calculates) the PCR value of the individual encryption key program (hereinafter referred to as the first PCR value).
  • the terminal measurement unit 2113 acquires the terminal ID 2200 stored in the ID storage unit 2110.
  • the terminal measurement unit 2113 applies a PCR value extension command to the acquired terminal ID 2200 and the calculated first PCR value, and the PRC value (terminal ID 2200 is reflected in the PCR value of the individual encryption program) ( Hereinafter, the first PCR value with ID is generated.)
  • the terminal measurement unit 2113 outputs the generated first PCR value with ID to the card 2102.
  • Terminal measurement section 2113 measures (calculates) the PCR value of the content key decryption program (hereinafter referred to as the second PCR value).
  • the terminal measurement unit 2113 acquires the terminal ID 2200 stored in the ID storage unit 2110.
  • the terminal measurement unit 2113 applies a PCR value extension command to the acquired terminal ID 2200 and the calculated second PCR value, and the PRC value (terminal ID 2200 is reflected in the PCR value of the content key decryption program ( Hereinafter, this is referred to as the second PCR value with ID).
  • the terminal measurement unit 2113 outputs the generated first PCR value with ID to the card 2102.
  • First program update unit 2114 receives an individual encryption program (hereinafter referred to as the first update program) from the card 2102.
  • the first update program received is stored in the first program storage unit 2111.
  • first program update unit 2114 After storing the individual encryption key program, first program update unit 2114 performs step S040. Similar to 8, request the operating system of the terminal 2101 to reset the system.
  • the second program update unit 2115 receives an update program for the content key decryption program (hereinafter referred to as the second update program) from the card 2102, the second program update unit 2115 stores the individual encryption program stored in the first program storage unit 2111. Erase program
  • the second program update unit 2115 updates the content key decryption program using the received second update program, and then performs a system reset in the same manner as in step S0408. To ask.
  • the device key personalization unit 2116 is stored in the first program storage unit 2011, and is realized by starting and executing the individual encryption key program.
  • the device key individualizing unit 2116 Upon receiving one distribution encryption device key from the card 2102, the device key individualizing unit 2116 acquires the terminal ID 2200 from the ID storage unit 2110.
  • the device key individualizing unit 2116 encrypts the received distribution encryption device key using the acquired terminal ID, and generates an individual encryption device key.
  • the device key individualizing unit 2116 stores the generated individual encryption device key in the individualized device key accumulating unit 2117.
  • the individualized device key storage unit 2117 has an area for storing the individual encrypted device key generated by the device key individualizing unit 2116.
  • the device key decryption unit 2118 is realized by starting and executing the device key decryption program stored in the second program storage unit 2011.
  • the device key decryption unit 2118 receives, from the card 2102, a cryptographic key individual delivery key corresponding to the individual cryptographic key device key stored in the personalized device key storage unit 2117.
  • the device key individualizing unit 2116 stores the received encryption key individual delivery key in a predetermined storage area (for example, the individualized device key storage unit 2117).
  • the device key decryption unit 2118 acquires the individual encryption key device key corresponding to the received encryption key individual delivery key from the individualized device key storage unit 2117. [0296] The device key decryption unit 2118 acquires the terminal 102200 from the ID storage unit 2110, and decrypts the individual encryption device key acquired from the individualized device key storage unit 2117 using the acquired terminal ID 2200. And generate a distribution encryption device key.
  • the device key decryption unit 2118 acquires the terminal common key of the terminal, decrypts the received encrypted individual delivery key using the acquired terminal common key, and generates an individual delivery key.
  • the device key individualizing unit 2116 generates a device key by decrypting the encrypted device key for distribution using the generated individual delivery key.
  • the card 2102 includes a secret information providing unit 2120, a terminal ID storage unit 2121, a validity confirmation information storage unit 2122, a first update program storage unit 2123, and a second update program storage unit. 2124, secret information acquisition unit 2125, validity check information acquisition unit 2126, first update program acquisition unit 2127, second update program acquisition unit 2128, validity check unit 2 129, first program output unit 2130, first It consists of two program output units 2131 and a confirmation information individualizing unit 2140.
  • the secret information providing unit 2120 includes a secret information storage unit 2132 and a switch 2133 as shown in FIG.
  • the secret information storage unit 2132 corresponds to the content storage unit 0807 described in the above embodiment.
  • the secret information storage unit 2132 stores a plurality of secret information received from the server 2104 via the network connection terminal 2103.
  • the secret information storage unit 2132 has a secret information management table T2100 as shown in FIG.
  • the secret information management table T2100 has an area for storing one or more sets of a distribution encryption device key and an encrypted individual delivery key.
  • the distribution encryption key device key and the encryption key individual delivery key have already been described above, and a description thereof will be omitted here.
  • E (x, y) indicates the result of encrypting the data y with the encryption key X.
  • DK1, DK2, D K3, ... are device keys
  • Deli-Key 1, Deli—Key2, Deli-Key 3, ... are individual delivery keys corresponding to DK 1, DK2, DK3,. Indicates the terminal common key.
  • the switch 2133 corresponds to the operation of outputting the content key in step S1005 of FIG. 10 shown in the above embodiment, and operates under the control of the validity confirmation unit 2129. If it is determined that the terminal is legitimate, the switch 2133 determines whether the terminal and the secret information can be acquired so that the terminal can obtain one distribution encryption device key and the corresponding encryption key individual delivery key. Connect the storage unit 2132. When it is determined that the terminal is not valid, the switch 2133 does not connect the terminal and the secret information storage unit 2132. Specifically, the connection means that the terminal 2101 can acquire information from the secret information storage unit 2132.
  • the confidential information providing unit 2120 receives the first OK information indicating that the terminal 2101 is valid by the validity confirmation using the first PCR value from the validity confirmation unit 2129, The switch is controlled so that the secret information storage unit 2132 is connected, and the operating system of the terminal 2101 is requested to start the individual encryption key program.
  • the confidential information providing unit 2120 receives the second OK information indicating that the terminal 2101 is valid by using the second PCR value from the validity confirming unit 2129 and confirming that the terminal 2101 is valid, the secret information providing unit 2120 The switch is controlled so that the storage unit 2132 is connected, and the operating system of the terminal 2101 is requested to start the device key decryption program.
  • the secret information providing unit 2120 When the secret information providing unit 2120 receives NG information indicating that the terminal 2101 is not valid from the validity checking unit 2129, the secret information providing unit 2120 controls the switch so that the terminal 2101 and the secret information storage unit 2132 are not connected.
  • the secret information providing unit 2120 manages the distribution encryption device key that has been output to the terminal in the past so that it is not output again. For example, a flag is associated with each of a plurality of confidential information. Specifically, the secret information providing unit 2120 corresponds to a value “0” for an unoutput distribution encryption device key and a value “1” for an output distribution encryption device key. wear.
  • Secret information providing section 2120 manages the distribution encryption device key in association with the terminal ID of the terminal that is the output destination of the distribution encryption device key.
  • the device key decryption unit 2118 shown above receives the encrypted individual delivery key corresponding to the distribution encryption device key that has been output and is associated with the terminal 2101. By acquiring the device key, a device key can be generated.
  • the terminal ID storage unit 2121 is the same as the terminal ID storage unit 2021 shown in the first modified example, and a description thereof is omitted here.
  • the validity confirmation information storage unit 2122 corresponds to the storage part of the valid PCR value of the CRL database 08 05 in the above embodiment.
  • the validity confirmation information storage unit 2122 receives the first validity confirmation information received from the server 2004 via the network connection terminal 2003 and the first ID-added PCR value (hereinafter referred to as the PCR value with the ID). , Also referred to as first personalization confirmation information) is stored in the terminal ID storage unit 2121 and stored in association with the terminal ID.
  • the validity confirmation information storage unit 2122 stores the second validity confirmation information received from the server 2004 via the network connection terminal 2003 and the second PCR value with ID (hereinafter referred to as the second PCR value) generated from the terminal ID 2200. Is also stored in the terminal ID storage unit 2121 in association with the terminal ID.
  • the validity confirmation information storage unit 2122 stores the first and second individualization confirmation information in association with the terminal ID 2200 of the terminal 2101, respectively.
  • the first update program storage unit 2123 and the second update program storage unit 2124 correspond to update program storage parts of the CRL database 0805 in the above embodiment.
  • the first update program storage unit 2123 stores the first update program (individual encryption key program) received from the server 2 104 via the network connection terminal 2103 in the terminal ID storage unit 2121. It is stored in association with the terminal ID.
  • the first update program storage unit 2123 stores the first update program in association with the terminal ID 2200 of the terminal 2101.
  • the second update program storage unit 2124 is connected to the server 2 via the network connection terminal 2103.
  • the second update program received from 104 is stored in association with the terminal ID stored in terminal ID storage unit 2121.
  • second update program storage section 2124 stores the second update program in association with terminal ID 2200 of terminal 2101.
  • the CRL database 0805 shown above includes the terminal ID storage unit 2121, the validity confirmation information storage unit 2122, the first update program storage unit 2123, and the second update program storage unit shown in the present modification. As can be seen from FIG.
  • the secret information acquisition unit 2125 corresponds to the right purchase process in FIG. 9 shown in the above embodiment.
  • the secret information acquisition unit 2125 Upon receiving a plurality of secret information from the server 2104 via the network connection terminal 2103, the secret information acquisition unit 2125 stores the received plurality of secret information in the secret information management table T2100 of the secret information storage unit 2132 .
  • the timing of receipt and storage of the individually encrypted secret information by the secret information acquisition unit 2125 is, for example, when the content is purchased.
  • the validity confirmation information acquisition unit 2126 corresponds to the CRL update processing in FIG. 9 shown in the above embodiment, particularly the regular PCR value update of the CRL database.
  • the validity confirmation information acquisition unit 2126 receives the first validity confirmation information for the individual encryption program and the second validity confirmation information for the content key decryption program from the server 2004 via the network connection terminal 2003. When received, the received first and second validity confirmation information is output to the confirmation information individualization unit 2140.
  • the first update program acquisition unit 2127 and the second update program acquisition unit 2128 correspond to the CRL update processing in FIG. 9 shown in the above embodiment, particularly the update program update of the CRL database.
  • the first update program acquisition unit 2127 receives the server 2 via the network connection terminal 2103.
  • the first update program (individual encryption key program) is received from 104
  • the received first update program is stored in the first update program storage unit 2123.
  • the second update program acquisition unit 2128 Upon receiving the second update program from the server 2104 via the network connection terminal 2103, the second update program acquisition unit 2128 stores the received second update program in the second update program storage unit 2124.
  • the validity confirmation unit 2129 corresponds to S1003 in FIG. 10 shown in the above embodiment.
  • the validity confirmation unit 2129 When receiving the first PCR value with ID from the terminal 2101, the validity confirmation unit 2129 acquires the first individualization confirmation information associated with the terminal 210 1 from the validity confirmation information storage unit 2122. The validity confirmation unit 2129 determines whether or not the received first ID-added PCR value matches the first individualization confirmation information. When it is determined that they match, the validity confirmation unit 2129 outputs the first OK information to the secret information providing unit 2120. If it is determined that they do not match, the validity confirmation unit 2129 outputs NG information to the secret information providing unit 2120 and the first program output unit 2130.
  • the validity checking unit 2129 receives the second PCR value with the ID from the terminal 2101, the first update program (individual encryption program) is erased in the first program storage unit 2111 of the terminal 2101. Judge whether or not it has been.
  • the second personalization confirmation information may be used to determine whether or not it has been deleted. A comparison may be made between the second PCR value with ID received from the terminal 2101 and the second personalization confirmation information, and if they match, it may be determined that they have been deleted.
  • the individual encryption key program is not included in the target program used to generate the second individualization confirmation information. Because.
  • the validity confirmation unit 2129 requests the operating system of the terminal 2101 to erase the first update program (individual encryption key program), and then Again, it is determined whether or not the first update program (individual encryption program) is erased in the first program storage unit 2111 of the terminal 2101.
  • the validity checking unit 2129 associates with the terminal 2101.
  • the obtained second individualization confirmation information is acquired from the validity confirmation information storage unit 2122.
  • the validity confirmation unit 2129 determines whether or not the received second PCR value with ID matches the second individualization confirmation information. If it is determined that they match, the validity confirmation unit 2129 outputs the second OK information to the secret information providing unit 2120. When determining that they do not match, the validity confirmation unit 2129 outputs the NG information to the secret information providing unit 2120 and the second program output unit 2131.
  • the validity confirmation unit 2129 may correspond to steps S1002 and S1003.
  • Second program output unit 2131 When the second program output unit 2131 receives the NG information from the validity confirmation unit 2129, the second program output unit 2131 acquires the second update program for the terminal 2101 from the second update program storage unit 2124. Second program output unit 2130 outputs the acquired second update program to second program update unit 2115 of terminal 210 1.
  • the confirmation information individualization unit 2140 acquires the terminal ID 2200 from the terminal ID storage unit 2121.
  • the confirmation information individualization unit 2140 performs processing equivalent to the PCR value extension command on the first validity confirmation information and the terminal ID 2200, and adds the terminal ID to the PCR value of the individual encryption key program. Generated first personalization confirmation information is generated. The confirmation information individualization unit 2140 stores the generated first individualization confirmation information in the validity confirmation information storage unit 2122.
  • the confirmation information individualization unit 2140 performs processing equivalent to the PCR value extension command on the second validity confirmation information and the terminal ID 2200, and adds the terminal ID to the PCR value of the content key decryption program. Generate personalization confirmation information. Confirmation information personalization unit 2140 generates The second individualization confirmation information is stored in the validity confirmation information storage unit 2122.
  • the network connection terminal 2103 When the network connection terminal 2103 acquires the terminal ID of the terminal 2101 from the terminal ID storage unit 21 21 of the card 2102 attached to the network connection terminal 2103, the network connection terminal 2103 outputs the acquired terminal ID to the server 2104 via the network.
  • the network connection terminal 2103 transmits the first and second update programs associated with the terminal ID output from the server 2104 via the network, the first and second validity confirmation information, and a plurality of pieces of information.
  • the confidential information is received, and each received information is stored in the card 2102.
  • the server 2104 has a CRL database, and manages the first and second update programs and the first and second validity confirmation information to be distributed for each terminal. . It is assumed that the first and second update programs and the first and second validity confirmation information differ for each terminal model.
  • the server 2104 stores and manages the terminal common key in advance.
  • the server 2004 generates a plurality of device keys in advance, and stores and manages the generated secret information.
  • the server 2104 manages such that confidential information once distributed to the terminal is not distributed again. Note that the plurality of pieces of secret information managed by the server 2104 are different from each other. Further, when all secret information managed is distributed, the server 2104 generates a plurality of secret information different from each of the plurality of secret information managed so far. As described above, each of the plurality of secret information generated again is different from each other.
  • the server 2104 Upon receiving the terminal ID from the network connection terminal 2103 via the network, the server 2104 identifies the model from the received terminal ID, and the model common information corresponding to the identified model (first, second) Update program, first and second validity confirmation information, and terminal common key).
  • the server 2104 obtains a predetermined number (two or more) of device keys out of a plurality of managed device keys and individual delivery keys corresponding to the device keys.
  • the server 2104 acquires the predetermined Each of the number of device keys is encrypted by a secret key encryption method using the corresponding individual delivery key as a secret key to generate a predetermined number of distribution encryption device keys.
  • the server 2104 encrypts each of the predetermined number of individual delivery keys used for generating the distribution encryption device key by a secret key encryption method using the terminal common key as a secret key. A predetermined number of encrypted individual delivery keys are generated.
  • the server 2104 transmits the terminal individual data type (the generated plurality of secret information, the acquired first and second update programs, and the first and second validity confirmation information) via the network to the network connection terminal 2103. Output to.
  • the secret key is a set of a distribution encryption key device key and an encryption key individual delivery key.
  • the server 2104 When the server 2104 receives the terminal ID from the network connection terminal 2103 via the network, the server 2104 identifies the model from the received terminal ID, and the model common information corresponding to the identified model (first and second update programs). , First and second validity confirmation information, and terminal common key). The server 2104 obtains a predetermined number (two or more) of device keys among a plurality of managed device keys and individual delivery keys corresponding to the device keys. The server 2104 encrypts each of the obtained predetermined number of device keys using the corresponding individual delivery key to generate a predetermined number of distribution encryption device keys.
  • the server 2104 encrypts each of the predetermined number of individual delivery keys used to generate the encryption device key for distribution by a secret key encryption method using the terminal common key as a secret key, and a predetermined number of encrypted individual keys. Generate a delivery key (step S2500).
  • the server 2104 transmits the terminal individual data type (the generated plurality of secret information, the acquired first and second update programs, and the first and second validity confirmation information) to the network connection terminal 2
  • the data is output to the card 2102 via 103 (steps S2505, S2510, S2515, S2520).
  • the card receives a set of individual terminal data from the server 2104 via the network connection terminal 2103, the card stores it in a predetermined storage area.
  • the secret information acquisition unit 2125 stores the received plurality of secret information in the secret information management table T2100.
  • the validity confirmation information acquisition unit 2126 Upon receipt of the first and second validity confirmation information from Sano 2004, the validity confirmation information acquisition unit 2126 outputs the received first and second validity confirmation information to the confirmation information individualization unit 2140.
  • the first update program acquisition unit 2127 Upon receiving the first update program (individual encryption program) from the server 2104, the first update program acquisition unit 2127 stores the received first update program into the first update program storage unit 2123. Pay.
  • the second update program acquisition unit 2128 stores the received second update program in the second update program storage unit 2124.
  • confirmation information individualizing section 2140 Upon receipt of the first and second validity confirmation information, confirmation information individualizing section 2140 obtains terminal ID 2200 of terminal 2 101 (step S2530). Specifically, the confirmation information individualization unit 2140 acquires the terminal ID 2200 from the terminal ID storage unit 2121.
  • Confirmation information individualized unit 2140 using the acquired terminal ID2200, for each first and second validation information to generate first and second personalization confirmation information (step S2525) 0 specifically Then, confirmation information individualization section 2140 performs a PCR value extension command on the first validity confirmation information and terminal ID 2200 to generate first individualization confirmation information.
  • the confirmation information individualization unit 2140 generates a second individualization confirmation information by applying a PCR value extension command to the second validity confirmation information and the terminal ID 2200.
  • the confirmation information individualization unit 2140 stores the generated first and second individualization confirmation information in the validity confirmation information storage unit 2122.
  • the card 2102 outputs the individual encryption program to the terminal 2101 (step S2540).
  • the terminal 2101 installs the individual encryption program (step S2545).
  • the terminal 2101 outputs the device key acquisition request and the first PCR value with ID to the validity confirmation unit 2129 of the card 2102 (step S2550).
  • the validity confirmation unit 2129 When the device key acquisition request and the first ID-attached PCR value are received, the validity of terminal 2101 is determined (step S2555).
  • the validity confirmation unit 2129 of the card 2102 compares the first individualization confirmation information with the received first PCR value with ID.
  • card 2102 If it is determined that it is not valid ("NG" in step S2555), card 2102 outputs an individual encryption key program to terminal 2101 (step S2560). Upon receiving the individual encryption key program (step S2565), terminal 2101 returns to step S2545. Specifically, the validity confirmation unit 2129 outputs NG information to the first program output unit 2130. When receiving the NG information from the validity checking unit 2129, the first program output unit 2130 acquires the individual encryption key program for the terminal 2101 from the first update program storage unit 2123, and acquires the acquired individual encryption key. The program is output to the first program update unit 2114 of the terminal 2101. When the first program update unit 2114 receives the individual encryption key program from the card 2102, it overwrites the individual encryption key program stored in the first program storage unit 2111 with the received individual encryption key program. And request the operating system of the terminal 2101 to reset the system.
  • secret information providing unit 2120 of card 2102 When it is determined to be legitimate ("O:" in step S2555), secret information providing unit 2120 of card 2102 outputs one distribution encryption key device key to terminal 2101 (step S2570). Specifically, the validity confirmation unit 2129 outputs the first OK information to the secret information providing unit 2120. When the secret information providing unit 2120 receives the first OK information from the validity confirmation unit 2129, it obtains one distribution encryption key device key with the flag value S “0” from the secret information storage unit 2132. To do. The secret information providing unit 2120 outputs the acquired one encryption key device key for distribution to the terminal 2101.
  • the device key individualizing unit 2116 of the terminal 2101 uses the received distribution encryption device key to receive the individual encryption key.
  • a device key is generated, and the generated individual encryption device key is stored in the individualized device key storage unit 2117 (step 32580).
  • the device key individualizing unit 2116 acquires the terminal ID 2200 from the ID storage unit 2110.
  • the device key personalization unit 2116 encrypts the received distribution encryption device key using the acquired terminal ID, generates an individual encryption device key, and The generated individual encryption device key is stored in the individualized device key storage unit 2117.
  • the card 2102 outputs the second update program to the terminal 2101 (step S2585).
  • the terminal 2101 installs the second update program (step S2590), and then erases the individual encryption program stored in the first program storage unit 2111 (step S2595).
  • the terminal 2101 outputs the encrypted individual delivery key acquisition request and the second PCR value with ID to the validity checking unit 2129 of the card 2102 (step S 2600).
  • the validity confirmation unit 2129 Upon receiving the encryption key individual delivery key acquisition request and the second ID-attached PCR value from the terminal 2101, the validity confirmation unit 2129 receives the first update program (individually) in the first program storage unit 2111 of the terminal 2101. It is determined whether or not the encryption key program has been erased (step S2 605).
  • step S2605 If it is determined that it has not been erased ("NO" in step S2605), the validity confirmation unit 2129 erases the first update program (individual encryption key program) in the operating system of the terminal 2101. (Step S2610), and then return to Step S2605.
  • step S2615 the validity confirmation unit 2129 of the card 2102 compares the second individualization confirmation information with the received second PCR value with ID.
  • the card 2102 When determining that it is not valid ("NG" in step S2615), the card 2102 outputs the second update program to the terminal 2101 (step S2620). Upon receiving the second update program (step S2625), terminal 2101 returns to step S2590. Specifically, the validity confirmation unit 2129 outputs NG information to the second program output unit 2131. Upon receiving the NG information from the validity confirmation unit 2129, the second program output unit 2131 acquires the second update program for the terminal 2 101 from the second update program storage unit 2124, and acquires the acquired second update program Is output to the second program update unit 2115 of the terminal 2101.
  • the second program update unit 2115 When the second program update unit 2115 receives the second update program from the card 2102, it updates the content key decryption program using the received second update program, and resets the system to the operating system of the terminal 2101. Ask. [0337] If it is determined to be legitimate ("O:" in step S2615), the secret information providing unit 2120 of the card 2102 individually selects the encryption key corresponding to the distribution encryption key device key output in step S2570. The delivery key is output to the terminal 2101 (step S2630). Specifically, the validity confirmation unit 2129 outputs the second OK information to the secret information providing unit 2120.
  • the device key decryption unit 2118 When the device key decryption unit 2118 receives the encrypted individual delivery key from the card 2102 (step S2635), the device key decryption unit 2118 stores the received encrypted key individual delivery key in a predetermined storage area (for example, the individualized device key storage unit). 2117) (step S2640).
  • a predetermined storage area for example, the individualized device key storage unit. 2117
  • the device key decryption unit 2118 generates a device key from the individual encryption device key stored in the individualized device key storage unit 2117 (step S2645). Specifically, the device key decryption unit 2118 acquires an individual encryption key device key corresponding to the received encryption key individual delivery key from the individualized device key storage unit 2117. The device key decryption unit 2118 acquires the terminal 102200 from the ID storage unit 2110, uses the acquired terminal ID 2200 to decrypt the individual encryption device key acquired from the individualized device key storage unit 2117, and Generate an encrypted device key. The device key decryption unit 2118 obtains the terminal common key of the terminal, decrypts the received encrypted individual delivery key using the obtained terminal common key, and generates an individual delivery key. The device key individualizing unit 2116 uses the generated individual delivery key to decrypt the distribution encryption device key and generate a device key.
  • step S2500 to S2535 are executed when the card 2102 is inserted into the network connection terminal 2103.
  • step S2540 to S2545 and the operations from step S2585 to S2595 are executed when the serviceman updates the program of the terminal 2101.
  • Steps S2550 Power and operations up to S2580, Step S2555 NG step
  • the operation from S2545, the operation from step S2600 to S2645, and the operation from step S2590 to S2595 at the time of NG in step S2615 are executed when the user of terminal 2101 requests content reproduction.
  • the (predetermined number) is 2 or more, but is not limited to this.
  • the number of device keys to be acquired need only be one or more.
  • the number of device keys that the server 2104 acquires is a predetermined number (predetermined number).
  • predetermined number a predetermined number
  • the present invention is not limited to this.
  • the number of device keys that the server 2104 acquires may be specified by the user when transmitting information at the network connection terminal.
  • the network connection terminal 2103 transmits the acquisition number designated by the user to the server 2104.
  • the server 2104 receives the acquired number from the network connection terminal 2103, the server 2104 acquires device keys for the received acquired number.
  • the terminal 2101 is a non-network-connected terminal, but is not limited to this.
  • the terminal 2101 may be a terminal that can be connected to a network. That is, the terminal 2101 can be realized by also having the operation performed by the network connection terminal 2103 shown in the fourth modified example.
  • the device key distribution system 2100 uses the individual encryption key of the terminal 2101 by the serviceman by steps S2540 and S2545 and steps S2585 and S2590 shown in FIG.
  • the program and the content key decryption program are updated, the present invention is not limited to this.
  • the secret information providing unit 2120 stores the secret information previously output to the terminal in the secret information storage unit 2132 so as not to output again.
  • a flag is associated with each of a plurality of secret information, the present invention is not limited to this.
  • the secret information providing unit 2120 may generate a list including one or more output secret information powers, and manage the secret information that has been output to the terminal in the past so that the list is not output again using the generated list.
  • the secret information providing unit 2120 may delete the output secret information.
  • the terminal 2101 erases the individual encryption key program after using the individual encryption program.
  • the present invention is not limited to this.
  • the terminal 2101 may not delete the individual encryption key program.
  • the card 2102 does not output the distribution encryption key device key to the terminal until it is confirmed that the individual encryption key program has been updated. Therefore, the unauthorized individual encryption key program is distributed. Prevents the leakage of the encryption key device key.
  • the individual encryption of the device key can be performed correctly if it is a legitimate terminal. Therefore, after the validity is confirmed, the device key (here, the encryption device key for distribution) is used. By outputting, fraud at the time of individual encryption can be prevented.
  • the terminal 2101 uses a dedicated program (individual encryption key program) for the individual encryption key and erases the individual encryption key program used after the individual encryption, the individual encryption method Leakage can be prevented.
  • the card 2102 indicates that the individual encryption key program in the terminal 2101 has not been erased. Since the encrypted individual delivery key is not output to the terminal 2101, erasure of the individual encrypted program can be forced.
  • the device key is not limited to the force generated in advance by the server.
  • the device key may be generated by a card.
  • the card outputs the generated device key to the attached terminal, and stores the terminal ID for identifying the output destination terminal in association with the output device key in a predetermined storage area.
  • the card sends / receives data to / from the server via the network connection terminal, the card transmits the stored device key and the corresponding terminal ID to the server.
  • the server Upon receiving the device key and the corresponding terminal ID, the server manages the received device key and terminal ID.
  • the card authenticates by comparing the PCR value of the program actually loaded on the terminal with the regular PCR value (authentication by Attestation).
  • the present invention is not limited to this.
  • the card may confirm the validity of the terminal by checking the version of the program.
  • the card may obtain the program specific key (firmware specific key) to confirm the validity of the terminal.
  • the card may confirm the validity of the terminal by challenge response authentication.
  • the card is not limited to the ability to receive an update program from Sano through the network.
  • the card may receive an update program transmitted from Sano via broadcast waves via a terminal (broadcast receiving terminal) that can be attached to the card and can receive broadcast waves. Good.
  • the server transmits information indicating that the program needs to be updated on the broadcast wave (update information). Only) may be sent.
  • the card receives the update information via the broadcast receiving terminal, and outputs (displays) a message to the effect that the update information has been received to the user via the broadcast receiving terminal. After that, the card receives an update program from the server via the network and the network connection terminal by user operation.
  • the device key is output when it is determined that the terminal is valid by checking the validity of the terminal using the card.
  • the present invention is not limited to this.
  • the data output from the card to the terminal may be other data.
  • music data For example, music data, image data, other keys (work key, content key, key ticket), a program having a new function (new program), and the like.
  • the data output from the card to the terminal is data that is protected by copyright (equivalent to the above-mentioned music data and image data) or highly confidential. Data (corresponding to other keys and new programs mentioned above) may be used.
  • the card receives copyright-protected data or highly confidential data instead of the device key via the network connection terminal from Sano.
  • each device key distribution system is the same as (6-1) or (6-2) in “ ⁇ -1-6 (other modifications)”. Similarly, a configuration using the second terminal ID may be used.
  • the system may update (renew) other information for the terminal.
  • the terminal measurement unit corresponds to the secure module in the above-described embodiment, the terminal measurement unit is standardized by TCG (Trusted Computing Group), and TPM (Trusted Platform). It has the same function as Module)! /
  • the terminal TPM (terminal measurement unit) Can be sent to.
  • a card instead of a card, it may be a device (hereinafter referred to as an authentication device) having the same components as the card.
  • an authentication device a device having the same components as the card.
  • the authentication apparatus may be incorporated in the server described above, or may be an apparatus different from the server.
  • the terminal is connected to the network connection terminal with a dedicated cable, and receives the update program and the device key (secret information) via the network connection terminal from the update terminal.
  • each of the above devices is a computer system including a microprocessor, ROM, RAM, a hard disk unit, a display unit, a keyboard, a mouse, and the like.
  • a computer program is stored in the RAM or hard disk unit.
  • Microprocessor power Each device achieves its functions by operating according to the computer program.
  • the computer program is configured by combining a plurality of instruction codes indicating instructions to the computer in order to achieve a predetermined function.
  • a system LSI is an ultra-multifunctional LSI that is manufactured by integrating multiple components on a single chip. Specifically, it is a computer system that includes a microprocessor, ROM, RAM, and so on. It is. A computer program is stored in the RAM. By operating according to the above-mentioned computer program S, the microprocessor power S The system LSI achieves its functions.
  • each part of the components constituting each of the above devices may be individually chipped, or may be chipped so as to include a part or all of them.
  • IC integrated circuit
  • LSI High Speed Interconnect
  • Ultra LSI Ultra LSI
  • the method of circuit integration is not limited to LSI, and may be realized by a dedicated circuit or a general-purpose processor. You can use an FPGA (Field Programmable Gate Array) that can be programmed after manufacturing the LSI, or a reconfigurable 'processor that can reconfigure the connection and settings of the circuit cells inside the LSI.
  • FPGA Field Programmable Gate Array
  • the constituent elements constituting each of the above devices may be configured as an IC card that can be attached to and detached from each device or a single module force.
  • the IC card or the module is a computer system composed of a microprocessor, ROM, RAM, and the like.
  • the IC card or the module may include the super multifunctional LSI described above.
  • the IC card or the module achieves its functions by the microprocessor operating according to the computer program. This IC card or module may be tamper resistant! /.
  • the present invention may be the method described above. Further, the present invention may be a computer program that realizes these methods by a computer, or may be a digital signal that also has the computer program power.
  • the present invention provides a recording medium capable of reading the computer program or the digital signal, such as a flexible disk, a hard disk, a CD-ROM ⁇ MO, a DVD ⁇ DVD-ROM ⁇ DVD-RAM ⁇ BD ( It may be recorded on a Blu-ray Disc) or a semiconductor memory. Further, it may be the digital signal recorded on these recording media.
  • a recording medium capable of reading the computer program or the digital signal, such as a flexible disk, a hard disk, a CD-ROM ⁇ MO, a DVD ⁇ DVD-ROM ⁇ DVD-RAM ⁇ BD ( It may be recorded on a Blu-ray Disc) or a semiconductor memory. Further, it may be the digital signal recorded on these recording media.
  • the computer program or the digital signal is transmitted as an electric It may be transmitted via an air communication line, a wireless or wired communication line, a network represented by the Internet, a data broadcast, or the like.
  • the present invention is a computer system including a microprocessor and a memory, wherein the memory stores the computer program, and the microprocessor operates according to the computer program. Also good.
  • the program or the digital signal is recorded on the recording medium and transferred, or the program or the digital signal is transferred via the network or the like. It may be implemented by another computer system.
  • Embodiment 1 relates to the present invention.
  • Embodiment 1 focuses on device authentication based on the TCG standard will be described. 1.
  • the verification system 3000 includes a terminal device (certification device) 3001, a CA server device (verification device) 3002, and a TPM server device 3003 connected to the Internet 3005.
  • the terminal device (certification device) 3001 a terminal device (certification device) 3001, a CA server device (verification device) 3002, and a TPM server device 3003 connected to the Internet 3005.
  • the terminal device (certification device) 3001 a CA server device (verification device) 3002
  • TPM server device 3003 connected to the Internet 3005.
  • the terminal device 3001 is equipped with a TPM (Trusted Platform Module) and is a device having a valid configuration (nodware and software) from the CA server device at the first startup or immediately after initialization. Obtain an AIK (Attestation Identity Key) credential (AIK certificate) that certifies the certificate.
  • TPM Trusted Platform Module
  • AIK Attestation Identity Key credential
  • the TPM is a hardware module having a function of performing an extension process and recording an integrity value (to be described later) indicating the integrity of a program included in the terminal device 3001.
  • the CA server device 3002 becomes a verification device at a predetermined timing to verify the validity of the terminal device 3001 (such as in the TCG standard). Verification is called Attestation). Specifically, it is verified whether the program has been tampered with or is operating normally.
  • CA server device 3002 force that issues AIK credentials to terminal device 3001 Power that is a verification device in Attestation
  • CA server device 3002 is the role of the Attestation verification device when an individual device operates the terminal device 3001 It may be configured to fulfill
  • terminal apparatus 3001 the hardware configuration of terminal apparatus 3001 will be described with reference to FIG.
  • the terminal device 3001 and the internal node 3160 connect the transmission / reception unit 3103, the CPU 3141, the RAM 3145, the hard disk unit 3142, the secure ROM 3143, and the TPM 3117.
  • the transmission / reception unit 3103 includes an interface that can be connected to the Internet 3005 and transmits / receives information to / from an external device connected to the Internet 3005.
  • the secure ROM 3143 stores device-specific information (device ID, model number, etc.) and a series of programs for starting the terminal device 3001 such as the BIO S3109 and the boot loader 3162.
  • the BIOS 3109 is a group of programs that control peripheral devices such as a disk drive, keyboard, and video power connected to the computer, and is a program that is executed first at startup. As shown in FIG. 29, the BIOS 3109 describes CRTM3163 (described later) in the boot block 3165 that is executed immediately after the power is turned on.
  • the boot loader 3162 includes a procedure for calling an OS kernel.
  • RTM Root of Trust Measurements
  • the integrity value is a value indicating the integrity of the program.
  • the hash value of the called program code is the integrity value.
  • No, SHA-1 is used for the shush function. This is an example, and another one-way function may be used, or the integrity value may be measured by other methods such as counting the number of bits of the program to be called.
  • BIOS3109 is the first program to be executed, and the RTM code included in BIOS3109 (CRTM1363 in Figure 29) is different from the RTM code included in other programs. It includes the procedure to measure and the procedure to measure the integrity value of the program called by BIOS3109.
  • BIOS3109 is recorded in secure ROM 3143 that cannot be rewritten, and based on the reliability of the integrity value of BIOS3109 measured by the RTM code included in boot block 3156 of BIOS310, the PCR value (described later) Reliability is guaranteed. Therefore, the RTM code included in BIOS3109 is called CRTM (Core Root of Trust for Masurement) to distinguish it from other program RTM codes.
  • CRTM Core Root of Trust for Masurement
  • the CPU 3141 realizes the following various functional units by executing various programs stored in the secure ROM 3143, hard disk unit 3142, and RAM 3145.
  • the RAM 3145 is a volatile storage medium, and stores a program executed by the CPU 3141 from the hard disk unit 3142 or the secure ROM 3143.
  • the hard disk unit 3142 is a non-volatile, writable and erasable recording medium.
  • the hard disk unit 3142 stores an OS and an application such as a verification program as shown in FIG.
  • the hard disk unit 3142 stores various data and user data used by the CPU 3141 in addition to the program.
  • TPM3117 has interface 3144, PCR (Platform Configuration Register ) 3146, non-volatile memory 3110, execution engine 3148, tongue L number generator 3151, SHA-1 calculator 3152, 1 ⁇ ⁇ calculator 3153, key generator 3154 and program code storage unit 3156 formed on one chip It is.
  • the PCR is composed of a volatile memory
  • FIG. 30 shows the inside of the PCR3146.
  • the PCR 3146 includes a plurality of storage areas 3171, 3172, 3173.
  • the PCR values stored in the storage areas 3171, 3172, 3173,... are described as PCRO, PCR 1, PCR2-.
  • Each storage area uniquely corresponds to each program stored in the hard disk unit 3142 or the secure ROM 3143.
  • the storage area 3171 corresponds to the BIOS! /.
  • the nonvolatile memory 3110 stores various keys. These keys will be explained in the explanation of the function section.
  • the non-volatile memory 3110 stores various keys in a hierarchical structure and stores lower-level keys encrypted using higher-level keys. Also remember the SRK (StorageRootKey), which is the root key of the hierarchical structure!
  • the execution engine 3148 operates in accordance with a program stored in the program code storage unit 3156, and implements various functions by controlling each arithmetic unit.
  • the random number generator 3151 generates and outputs a random number (nonce).
  • the SHA-1 calculator 3152 substitutes the input data into a hash function to calculate a hash value.
  • SHA-1 is used as an example, but another one-way function may be used.
  • the RSA calculator 3153 performs an encryption operation or a decryption operation according to the RSA encryption method using the input data and key.
  • the key generator 3154 is a circuit that generates a key pair used for RSA encryption.
  • the program code storage unit 3156 stores various programs such as a storage access program 3157, a log storage program 3158, a PCR value calculation program 3159. These programs are written in a machine language format that can be executed by the execution engine 3148. In addition, the engine 3148 temporarily stores various data such as data necessary for executing each program and data being calculated.
  • the above-mentioned storage access program 3157 is a storage medium (here, RAM3145, hard disk unit 3142, and secure ROM).
  • the log storage program 3158 acquires the PCR value group stored in the PCR3146 every time any of the PCR values stored in the PCR3146 changes, and the storage access program 3157 acquires the PCR value group acquired. Is stored in the node disk unit 3142 and includes a procedure for generating log information.
  • the PCR value calculation program 3159 uses the SHA-1 calculator 3152 to calculate the PCR value corresponding to the program that is newly loaded into the memory 3108 (described later), and the calculated PCR value is stored in the PCR3146. This program includes a procedure for writing to an appropriate area.
  • the input unit 3166 is connected to input devices such as a keyboard and a mouse, receives operations of users of these devices, and notifies the CPU 3141 of operation information indicating the received operations.
  • Display unit 3167 is connected to a monitor and outputs various images output from CPU 3141 to the monitor.
  • FIG. 32 is a functional block diagram showing functional configurations of the terminal device 3001 and the CA server device. The arrows in the figure indicate the data flow in the Attestation of the terminal device 3001.
  • the terminal device 3001 includes an ID storage unit 3101, a control unit 3102, a transmission / reception unit 3103, a measured value notification unit 3104, a program storage unit 3106, an RTM3107, a memory 3108, a BI OS 3109, and a key storage unit. 3120, a PCR value storage unit 3111, a log acquisition unit 3112, a PCR value calculation unit 3113, a certificate storage unit 3114, and a log storage unit 3116.
  • the measured value notification unit 3104, the TPM control unit 3118, the key storage unit 3120,? A 0 ⁇ value storage unit 3111, a log acquisition unit 3112, and a PCR value calculation unit 3113 are realized by a circuit formed on the TPM.
  • the 0 ⁇ value calculation unit 3113, the certificate storage unit 3114, the log storage unit 3116, and the verification unit 3119 are realized.
  • the ID storage unit 3101 includes a secure ROM 3143, and stores a device ID that uniquely identifies the terminal device 3001.
  • the control unit 3102 controls the operation of each component according to various programs loaded in the memory 3108. At this time, the control unit 3102 outputs a control signal to each functional unit, although not specifically shown. It also accepts data and instructions input by the user, and controls each part according to the received instructions.
  • control unit 3102 stores whether or not the AIK credential (described later) has been acquired. If the terminal device 3001 is activated without acquiring the AIK credential, the control unit 3102 goes to the TPM control unit 311 8. , Notify that ALK credentials have not been acquired. Here, it is assumed that the activation is a state in which the OS is loaded into the memory 3108 and can be executed.
  • the control unit 3102 receives the newly generated AIK public key from the TPM control unit 3118.
  • an AIK public key is received, an ID assigned to the newly generated AIK private key and AIK public key (hereinafter referred to as an AIK key pair if necessary) in TPM3117 is generated.
  • control section 3102 reads EK credential 3121 and PF (platform) credential 3122 (described later) from certificate storage section 3114. Subsequently, the generated ID, AIK public key, the read EK credential, and the PF credential are transmitted to the CA server device 3002 via the transmission / reception unit 3103, and a request for issuing the AIK credential is made.
  • the control unit 3102 receives the encrypted AIK credential via the transmission / reception unit 3103.
  • Encrypted AIK credentials are encrypted AIK credentials using an EK public key.
  • the control unit 3102 decrypts the encrypted AIK credential received using the EK secret key, and generates the AIK credential.
  • the control unit 3102 writes the generated AIK credentials in the certificate storage unit 3114.
  • Figure 33 already shows AIK The certificate storage unit 3114 after obtaining the credential 3123 is shown.
  • control unit 3102 instead of reading the EK secret key and decrypting the encrypted AIK credential, the control unit 3102 itself may output the encrypted AIK credential to the TPM control unit in the TPM3117 and request decryption. . In this way, the EK private key is not output outside the TPM chip, further increasing security.
  • an activation notification indicating that the own device has been activated is transmitted to the CA server device 3002 via the transmission / reception unit 3103. Subsequently, an operation permission notification or an operation prohibition notification is received from the CA server device 3002. If an operation permission notification is received, control of the operation of each component continues.
  • the operation prohibition notification is received, a warning screen is displayed on the monitor notifying that the terminal device 3001 has an illegal configuration or is operating illegally, and the operation of the terminal device 3001 is stopped.
  • control unit 3102 achieves its functions by the CPU 3141 operating according to the computer program stored in the memory 3108, the secure ROM 3143, and the node disk unit 3142.
  • the transmission / reception unit 3103 transmits / receives various types of information between an external device connected to the Internet 3005 and each functional unit in the terminal device 3001.
  • the CA server apparatus 3002 corresponds to the external device.
  • a one-time key (session key) is generated, and data is encrypted using the generated session key, which is securely transmitted and received. Since the present invention is not directly related to the present invention, description of encryption and decryption processing using a session key during communication is omitted in the following description.
  • the program storage unit 3106 includes a hard disk unit 3142, and stores various programs including an operating system (hereinafter referred to as OS). Some functional units are realized by being loaded into the program power memory 3108 and executed. [0395] (2—5) Memory 3108
  • the memory 3108 mainly includes a RAM 3145, and includes a part of the hard disk unit 3142 and a secure ROM 3143.
  • the memory 3108 loads various programs executed by the CPU 3141 from the program storage unit 3106 and stores them in an executable state.
  • the BIOS 3109 is a kind of IPL, and specifically is a program stored in the secure ROM 3143. When the terminal device 3001 is activated, it is first loaded into the memory 3108 and executed.
  • the RTM 3107 measures the integrity value of the program, and outputs the measured integrity value and an identifier indicating the loaded program to the PCR value calculation unit 3113.
  • the value of the program code to be measured is the integrity value.
  • SHA-1 is used for the hash value function.
  • RTM3107 is a functional unit realized by the CPU 3141 executing the CRTM3163 included in the BIOS 3109 and the RTM code in each program loaded in the memory 3108.
  • BIOS3109 which is the program that is loaded and executed first, the CRTM3163 included in the boot block 3156 measures and outputs the integrity value of the BIOS3109 itself.
  • each program contains RTM code! /, which is assumed to be a force in the TCG standard, this is not mandatory CPU3141 force
  • the configuration may be such that the integrity value of a program newly loaded into the memory 3108 is measured.
  • the certificate storage unit 3114 is specifically composed of a hard disk unit 3142.
  • an EK (Endorsement Key) credential (certificate) 3 121 As an example, as shown in FIG. 33, an EK (Endorsement Key) credential (certificate) 3 121, a PF credential 3122, and an AIK (Attestation Identity Key) Remembers credential 3123.
  • EK credential 3121 is issued by TPM manufacturer or terminal device manufacturer A certificate that proves the validity of the EK public key.
  • An EK public key and an EK private key 3126 described later are a key pair corresponding to RSA encryption.
  • the EK private key 3126 and the EK public key are a key pair corresponding to the TPM chip.
  • the EK credential 3121 is generated by the TPM manufacturer or the terminal device manufacturer during the manufacturing process of the terminal device 3001 and is a certificate. It is written in the storage unit 3114.
  • the PF credential 3122 is an attribute certificate that clarifies the configuration and manufacturer of the platform (for example, the terminal device 3001 itself, the component on which the TPM chip in the terminal device 3001 is mounted), and the characteristics of the platform. is there. It also proves that the platform has a valid TPM. Specifically, when the platform is the terminal device 3001 itself, it includes identification information indicating the manufacturer of the terminal device 3001, the identification number of the installed TPM and CPU, the type of OS, information indicating the software configuration, and the like. If the platform is a mother board, it includes identification information indicating the manufacturer of the mother board, the model number of the TPM and CPU mounted on the mother board, and the OS type. The PF credential 3122 is issued by the platform manufacturer, and is written in the certificate storage unit 3114 during the manufacturing process of the terminal device 3001.
  • Each credential is written in X.509 format as an example, and uses an identification number that uniquely identifies the credential, issuer name, expiration date, and issuer (issuing device) private key (hereinafter referred to as server private key). And the book title data generated in this way, and information indicating the algorithm used to generate the signature data.
  • the certificate storage unit 3114 may be mounted in the force TPM 3117 that is configured by the hard disk unit 3142.
  • the log storage unit 3116 includes a hard disk unit 3142.
  • the mouth storage unit 3116 stores the history of the PCR value group from when the terminal device 3001 is activated to the present.
  • this history is referred to as log information.
  • the log information includes at least identification information indicating a program corresponding to each PCR value and a history of each PCR value, but may also include program version information and information indicating program behavior.
  • this log information is called SML (Stored Measurement Log). The following explanation and In the drawing, log information is abbreviated as SML as necessary.
  • the log storage unit 3116 may be mounted in the force TPM 3117 that is configured by the hard disk unit 3142.
  • the key storage unit 3120 stores an EK private key 3126, an AIK private key 3127, an 811 ⁇ public key 3128, and an SRK3129 '. As described in the description of the hardware configuration, these keys are stored in a hierarchical structure having SRK3129 as a root key. Omitted.
  • the EK private key 3126 is a private key that is paired with the EK public key included in the EK credential 3121, and corresponds to one of the key pairs used for RSA encryption.
  • the EK private key 3126 and the EK public key are keys that uniquely correspond to the TPM chip.
  • the EK private key 3126 and the EK credential 3121 are written by the TPM manufacturer or the manufacturer of the terminal device 3001 before shipment. .
  • the AIK private key 3127 and the eight-one public key 3128 are a key pair generated by the key generator 3154 in the TPM 3117 when the terminal device 3001 is started for the first time and immediately after the initialization. It corresponds to. Since the AIK public key 3128 is the same as the public key included in the AIK credential 3123, it is not necessarily written in the key storage unit 3120. In addition, the timing of acquiring the AIK key pair may be written in the manufacturing process, not limited to the time of initial activation and immediately after initialization.
  • the key storage unit 3120 in the state after the AIK key pair is generated at the first activation and the AIK credential 3123 is obtained has been described.
  • the PCR value storage unit 3111 stores the PCR0, PCR1, and PCR2 ′, ′ with the PCR3146 having the function.
  • Each PCR value corresponds to each program stored in the BIOS 3109 and the program storage unit 3106, respectively.
  • each storage area in FIG. Specifically, the storage areas 3171, 3172, 3173... Correspond to the BIOS 3109, the boot loader, and the OS '. Therefore, PCR0 corresponds to BIOS3109, PCR1 corresponds to the boot loader, and PCR2 corresponds to the OS!
  • the TPM control unit 3118 controls the operation of each functional unit in the TPM 3117. Although not shown, the TPM control unit 3118 outputs a control signal to each part inside and outside the TPM.
  • a random number and an Attestation (configuration certification) request are received from the CA server device 3002 via the transmission / reception unit 3103.
  • the received random number is output to the measured value notification unit 3104 (described later).
  • the log information is read from the log storage unit 3116, and the AIK credential 3123 is read from the certificate storage unit 3114.
  • the signature data generated by the measurement value notification unit 3104, the read AIK credential 3123 and log information are transmitted to the CA server device 3002 via the transmission / reception unit 3103.
  • the TPM control unit 3118 is notified by the control unit 3102 that the AIK credentials have not been acquired when the terminal device 3001 is initially activated or immediately after initialization. Upon receiving this notification, the TPM control unit 3118 generates an AIK key pair, and writes the generated AIK key pair in the key storage unit 3120. Subsequently, the generated AIK public key is output to the control unit 3102.
  • the execution engine 3148 operates according to the program stored in the program code storage unit 3156, and achieves its function by operating each arithmetic unit.
  • the PCR value calculation unit 3113 receives the identifier and integrity value (hash value) of the program newly loaded into the memory 3108 from the RTM3107.
  • the PCR value calculation unit 3113 Upon receiving these, the PCR value calculation unit 3113 stores in the PCR value storage unit 3111 the PC stored in the area immediately before the area in which the PCR value corresponding to the received identifier is stored. Read the R value. Next, the PCR value calculation unit 3113 combines the read PCR value and the received integrity value and substitutes them into the hash function. The calculated hash value is written as a PCR value in the area corresponding to the received identifier in the PCR value storage unit 3111.
  • the received integrity value is directly substituted into the hash function.
  • a value obtained by combining a predetermined initial value and an integrity value of CRTM3163 may be substituted into a hash function to calculate a no-shake value.
  • calculating the PCR value by performing such an operation on the measured integrity value is called an extension process.
  • the BIOS, boot loader, and OS correspond to PCR0, PCR1, and PCR2, respectively.
  • Each program is loaded and executed in the memory 3108 in the order of BIOS, boot loader, OS, and device driver.
  • the PCR value calculation unit 3113 receives from the RTM3107 an identifier indicating the OS and an integrity value measured from the OS. Upon receiving these, the PCR value calculation unit 3113 reads PCR 1 based on the received identifier, combines the read PCR 1 and the received integrity value, and assigns them to the hash function (extended processing). Next, the PCR value calculation unit 3113 writes the calculated hash value (PCR2) in a predetermined storage area 3173.
  • the terminal device 3001 includes a plurality of applications, and the order of loading the applications is not determined, and the order in which the applications are loaded may be determined by the operation of the user.
  • the PCR3 corresponding to the OS is used to extend the integrity value measured for the application force to be loaded, and the PCR value corresponding to each application is calculated.
  • the PCR value calculation unit 3113 is configured such that the execution engine 3148 is stored in the program code storage unit 3156 and operates according to the program to operate each calculator. Achieve function.
  • Log acquisition unit 3112 The log acquisition unit 3112 monitors the PCR value group stored in the PCR value storage unit 3111. When any PCR value changes, the log acquisition unit 3112 reads the 1 ⁇ 1 ⁇ value group from the PCR value storage unit 3111. Write the read PCR value group to the log storage unit 3116. Further, the contents of the memory 3108 are monitored, and information indicating the operation state of the program is generated and written to the log storage unit 3116.
  • the log acquisition unit 3112 achieves its function by the execution engine 3148 operating according to a program stored in the program code storage unit 3156 and operating each computing unit.
  • the measurement value notification unit 3104 receives a random number (nonce) from the CA server device 3002 via the Internet 3005 and the transmission / reception unit 3103.
  • the measured value notification unit 3104 Upon receipt of the random number, the measured value notification unit 3104 reads the AIK private key from the key storage unit 3120 and reads the 1 ⁇ 1 ⁇ value group from the PCR value storage unit 3111. Next, using the read AIK private key, the signature data is generated by applying the signature generation algorithm to the received random number and PCR value group.
  • the signature generation algorithm may use other algorithms.
  • the generated signature data is transmitted to CA server apparatus 3002 via transmission / reception unit 3103 under the control of TPM control unit 3118.
  • the measurement value notification unit 3104 achieves its function by the execution engine 3148 operating according to the program stored in the program code storage unit 3156 and operating each arithmetic unit.
  • the verification unit 3119 is a functional unit that verifies the validity of the other device when the terminal device 3001 becomes a verification device and performs an Attestation process with the other device.
  • the specific configuration is the same as that of the verification unit 3013 (described later) in the CA server device 3002, and a detailed description thereof will be omitted here.
  • the verification unit 3013 includes a random number generation unit 3012.
  • the power verification unit 3119 may include a random number generation unit therein or may request a TPM chip to generate random numbers. Since the verification unit 3013 performs verification using various information stored in the verification data storage unit 3018 !, the verification unit 3119 also has similar information ( Verification data) is required. Here, although this information is not shown in the functional block diagram of FIG. 32, it is assumed that the same verification data is stored in the hard disk unit 3142.
  • the CA server device 3002 is a device held by a private CA, which is a fair third party organization.
  • CA server apparatus 3002 includes transmission / reception unit 3015, control unit 3011, verification unit 3013, and verification data storage unit 3018.
  • the verification unit 3013 includes a random number generation unit 3012, a certificate verification unit 3014, a signature verification unit 3016, and a log verification unit 3017.
  • an input unit that receives input of data and instructions by an operator and a display unit that displays various types of information are included.
  • the CA server device 3002 is a computer system configured to include a microprocessor, RAM, and ROM, and a computer program is stored in the RAM and ROM.
  • the microprocessor power
  • the CA server apparatus 3002 achieves a part of its functions by operating according to the computer program.
  • the transmission / reception unit 3015 includes an interface that can be connected to the Internet 3005. Under the control of the control unit 3011, the transmission / reception unit 3015 transmits / receives data to / from each functional unit with the external device connected via the Internet 3005. .
  • the verification data storage unit 3018 stores verification data used for the Attestation processing by the verification unit 3013.
  • a server public key 3021, a random number 3022, a normal PCR value group 3023, and normal log information 3024 are stored.
  • the server public key 3021 is a key corresponding to the server private key, and these correspond to the RSA encryption.
  • the random number 3022 is a pseudo-random number generated by the random number generation unit 3012 in the process of Attestation.
  • the normal PCR value group 3023 is the P value calculated when the terminal device 3001 operates normally. Includes CR value.
  • the regular log information 3024 is log information to be generated when the certification device operates normally, and includes at least the history of each PCR value group when the certification device operates normally.
  • the control unit 3011 controls the operation of each component in the CA server device 3002.
  • the control unit 3011 receives an activation notification from the terminal device 3001 via the Internet 3005 and the transmission / reception unit 3015.
  • control unit 3011 transmits the ID indicating the AIK key pair, the AIK public key, the EK credential, the PF credential, and the AIK credential issuance request via the Internet 3005 and the transmission / reception unit 3015. And receive.
  • control unit 3011 Upon receiving the activation notification, the control unit 3011 instructs the verification unit 3013 to start Attestation with the terminal device 3001.
  • the verification unit 3013 notifies the result of Attestation.
  • the control unit 3011 transmits an operation permission notification to the terminal device 3001 via the transmission / reception unit 3015.
  • the control unit 3011 transmits an operation prohibition notification to the terminal device 3001 via the transmission / reception unit 3015.
  • the control unit 3011 When the control unit 3011 receives the AIK credential issue request, it sends the EK credential and PF credential to the received EK credential and PF credential issuer, and inquires whether the credential is valid.
  • EK credentials are transmitted to TPM server apparatus 3003 shown in FIG. 28, and PF credentials are transmitted to terminal server apparatus 3004.
  • the control unit 3011 generates AIK credentials.
  • the AIK credentials generated here include at least the signature data generated by applying the signature generation algorithm to the AIK public key using the AC server device's private key (hereinafter referred to as server private key).
  • server private key the control unit 3011 encrypts the generated AIK credentials with the EK public key included in the EK credentials via the transmission / reception unit 3015, and generates encrypted AIK credentials.
  • the generated encrypted AIK credentials are transmitted to the terminal device 3001 via the transmission / reception unit 3015.
  • the control unit 3011 transmits an unissuable notification indicating that the AIK credentials cannot be issued.
  • the verification unit 3013 includes a random number generation unit 3012, a certificate verification unit 3014, a signature verification unit 3016, and a log verification unit 3017.
  • the random number generation unit 3012 includes a pseudo-random number generation engine, and generates a random number when receiving an instruction to start Attestation from the control unit 3011.
  • the generated random number is written in the verification data storage unit 3018, and the generated random number and an Attestation request are transmitted via the transmission / reception unit 3015.
  • the certificate verification unit 3014 receives the AIK certificate, signature data, and log information from the terminal device 3001 within a predetermined time after the transmission of the Attestation request by the random number generation unit 3012.
  • the CA server device 3002 stores the AIK credential CRL indicating the invalid AIK credential and is connected to the external storage 3026 !.
  • the certificate verification unit 3014 verifies whether or not the received AIK certificate is registered in the AIK credential CRL!
  • the certificate verification unit 3014 reads the server public key from the verification data storage unit 3018, and verifies the signature data included in the received AIK certificate using the read server public key. If the verification shows that the AIK certificate is valid, the certificate verification unit 3014 outputs the received signature data, log information, and the AIK public key included in the AIK certificate to the signature verification unit 3016. .
  • the signature verification unit 3016 receives the signature data, the log information, and the AIK public key from the certificate verification unit 3014. Upon receiving these, the signature verification unit 3016 generates a random number and a PCR value group by applying a signature verification algorithm to the signature data using the received AIK public key. The generated random number and PCR value group are called the proof random number and the proof PCR value group, respectively.
  • the signature verification algorithm uses RSA encryption.
  • Signature verification unit 3016 reads random number 3022 and normal PCR value group 3023 from verification data storage unit 3018. Compare the generated proof random number with the read random number 3022. If they match, each of the proof PCR values that make up the generated proof PCR value group is compared with each of the normal PCR values that make up the read normal PCR value group 3023. When all the proof PCR values match the regular PCR values, the signature verification unit 3016 outputs the received log information to the log verification unit 3017.
  • the signature verification unit 3016 A verification result indicating that the device 3001 is illegal is output to the control unit 3011.
  • the log verification unit 3017 receives the received log information from the signature verification unit 3016. When the log information is received, the log verification unit 3017 reads the regular log information 3024 from the verification data storage unit 3018, and compares the received log information with the read regular log information 3024.
  • the log verification unit 3017 outputs a verification result indicating that the terminal device 3001 is valid to the control unit 3011.
  • the log verification unit 3017 If they do not match as a result of the comparison, the log verification unit 3017 outputs a verification result indicating that the terminal device 3001 is invalid to the control unit 3011.
  • the TPM server device 3003 is a device owned by the TPM vendor, and manages the EK credentials that prove the EK key pair and EK public key unique to each TPM chip.
  • the TPM server device 3003 is connected to the external storage that stores the EK credential CRL indicating the invalid EK credential.
  • the terminal server device 3004 is a device owned by the terminal device vendor, and manages PF credentials unique to the terminal device (or the platform within the device).
  • the terminal server device 3004 is connected to the external storage that stores the PF credential CRL indicating the invalid PF credential.
  • 35 to 37 are flowcharts showing the operation of each device in the Attestation process.
  • the operation of each device in the Attestation process will be described below with reference to FIGS.
  • the integrity value of program A is written as In (A) for ease of description. Note that the same step numbers are assigned to the data flows in FIG. 32 corresponding to the operations in FIG. 35 to FIG.
  • BIOS integrity value In BIOS
  • the functional unit RTM3107 realized by the CRTM and the RTM code outputs the measured integrity value In (BIOS) and an identifier indicating the BI OS to the PCR value calculation unit 3113.
  • the PCR value calculation unit 3113 receives the integrity value In (BIOS), and calculates PCR0 corresponding to the BIOS by the following calculation (step S3006).
  • PCR0 SHA1 (In (BIOS))
  • the PCR value calculation unit 3113 calculates! ⁇ ! ⁇ ! ! ⁇ ! ⁇ Value storage section! :! :! Write to (Step S3008).
  • BIOS PCR value When the BIOS PCR value is stored, the BIOS is loaded into the memory 3108 and executed (step S3009).
  • the RTM 3107 measures the boot loader integrity value In (BL) and outputs it to the PCR value calculator ⁇ 113 (step S 3012).
  • the PCR value calculation unit 3113 receives the integrity value In (BL), and calculates the boot loader PCR value by the following calculation (step S3013).
  • PCR1 SHA1 (PCRO + In (BL))
  • the PCR value calculation unit 3113 writes the calculated PCR1 into the PCR value storage unit 3111 (step S3014).
  • PCR1 is written into the PCR value storage unit 3111
  • the boot loader is loaded into the memory 3108 and executed (step S3016).
  • control unit 3102 sends an activation notification indicating that the terminal device 3001 has been activated to the CA server device 3002. (Step S3024).
  • control unit 3102 moves the process to step S3023.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)

Description

明 細 書
証明装置、検証装置、検証システム、コンピュータプログラム及び集積回 路
技術分野
[0001] 本発明は、コンピュータプログラムによって動作する情報処理機器において、自身 の正当性を証明し、相手の正当性を検証する技術に関する。
背景技術
[0002] デジタルコンテンツの普及により、コンテンツの不正コピーが社会問題となっている 。コンテンツの処理機能をソフトウェアで実現する場合、不正コピーを試みる悪意のあ るユーザ力もプログラムを保護する必要がある。コンテンツの処理機能を実現するプ ログラムが悪意のあるユーザ力 改竄や盗聴された場合、コンテンツが平文状態で抜 き取られたり、プログラム力もコンテンツを暗号ィ匕している鍵を不正取得されコンテン ッが復号ィ匕される危険性がある。デジタルコンテンツは、インターネットによる再配布 が容易なため、平文状態のコンテンツが不正に配布されると権利者の利益が大きく 損なわれる。このような事態を防止するため、コンテンツの処理プログラムへの攻撃を 防止することは重要である。
[0003] し力しながら、処理プログラムのリリース時には、セキュリティホールがない完全なプ ログラムの提供を保証することは難しいため、悪意のあるユーザがこれらのセキユリテ ィホールを突 、てコンテンツ処理用のプログラムを改竄し、デジタルコンテンツを不正 にコピーすることなどが予想される。このような事実が判明した場合には、そのプログ ラムをセキュリティホールへの対策を施した新しいプログラムに更新する必要があるが 、そのような技術として以下のようなものがある。
[0004] 例えば、特許文献 1では、更新プログラムを供給するサーバと、端末のアップデート モジュールとが相互認証を行い、お互い正しいと認識しあった場合に、更新プロダラ ムを渡し、端末内のプログラムをその更新プログラムでアップデートする技術が開示さ れている。また、特許文献 2では、更新プログラムを格納するカードと端末のアップデ 一トモジュールとが相互認証を行った上で、カードに格納されて 、る更新プログラム を端末が取得し、端末自身が端末のプログラムをアップデートする技術が開示されて いる。
特許文献 1 :特開平 10— 198571号公報
特許文献 2:特開 2003 - 330745号公報
発明の開示
発明が解決しょうとする課題
[0005] 従来技術によるプログラムのアップデートは、更新プログラムを供給するカードゃサ ーバと、端末のアップデートモジュールとが相互認証を行い、お互い正しいと認識し あった後、更新プログラムを渡す構成となっている。この仕組みは端末側のアップデ 一トモジュールの信頼性に依存した方法である。
しかし、従来技術では、端末カ 、ッキングされている場合、アップデートモジュール の信頼性が損なわれて 、る可能性があるので、確実なプログラムのアップデートを保 証することは困難である。例えば、アップデートモジュールもソフトウェアで構成されて いる場合、アップデートモジュール自身もハッキングされている可能性がある。この場 合、アップデートモジュール自体が改竄されていると、本来のアップデート処理自体 を回避したり、アップデートが必要である力否かの判断を誤らせることができるので、 ソフトウェアのアップデートを強制することができなくなる。
[0006] アップデートモジュール自身のハッキングを防止するためには、プログラム更新シス テムに対して更新対象のプログラムより強固な耐タンパシールドが必要となる。従来 技術では耐タンパイ匕の例として、プログラム更新システムをノヽードウエアによりすベて 構成する方法が開示されて 、るが、プログラム更新システムはインターネットとの通信 等も含むので大規模なシステムとなることが多ぐ全体をノヽードウエアとすることは事 実上困難である。
[0007] そこで本発明は、上記の問題点に鑑みなされたものであって、正当なコンピュータ プログラムを有することを示しつつ自身の正当性を証明することができ、また前記証 明に対して検証することができる検証システム、証明装置、検証装置、証明方法、検 証方法、コンピュータプログラム及び集積回路を提供することを目的とする。
課題を解決するための手段 [0008] 上記目的を達成するために、本発明は、証明装置及び検証装置から構成される検 証システムであって、前記証明装置は、当該証明装置を動作対象とし、階層的な関 係を有する複数個の動作プログラムを格納して!/、る格納手段と、前記動作プログラム のそれぞれがロードされるときに、ロードされる前記動作プログラムそれぞれの特徴を 示す特徴量を測定する測定手段と、耐タンパ化され、前記複数個の動作プログラム のうちの 1つの動作プログラムがロードされているときに、当該 1つの動作プログラムに ついて取得した特徴量、及び当該 1つの動作プログラムを動作させるために必要で ありロード済である他の動作プログラムそれぞれについて取得した特徴量を反映した 証明情報を生成する証明手段と、生成した前記証明情報を出力する出力手段とを備 え、前記検証装置は、前記証明情報を取得する取得手段と、前記証明装置におい て、前記 1つの動作プログラム、及び当該 1つの動作プログラムを動作させるために 必要である他の動作プログラムのそれぞれにつ ヽて改竄がな ヽ場合に得られる特徴 量を反映した検証情報を予め記録して!/、る記録手段と、取得した前記証明情報及び 前記検証情報を用いて、前記証明装置の正当性を判断する判断手段とを備える。 発明の効果
[0009] この構成によると、証明装置は、耐タンパ化された証明手段により、少なくとも動作 プログラムの特徴を示す特徴量を反映した証明情報を生成するので、生成された証 明情報は、信頼できるものであり、また、検証装置は、取得した証明情報を用いて、 証明装置の正当性を判断するので、確実に正当性の検証を行うことができるという優 れた効果を奏する。
[0010] ここで、前記検証システムは、 Trusted Computing Group(TCG)により仕様化されて いる構成証明技術を用い、前記証明手段は、 TCGにより仕様ィ匕されている Trusted P latform Moduleを構成し、前記判断手段は、 TCGにより仕様ィ匕されている検証プロセ スにより、前記証明装置の正当性を判断するとしてもよい。
この構成によると、証明手段は、 TCGにより仕様化されている Trusted Platform Mod uleにより構成されるので、生成された証明情報は、信頼できるものであり、また、 TCG により仕様ィ匕されている検証プロセスにより、証明装置の正当性を判断するので、確 実に正当性の検証を行うことができる。 [0011] ここで、前記証明手段は、前記特徴量を記憶するための複数のプラットフォーム構 成レジスタを有し、前記検証装置から、複数のプラットフォーム構成レジスタのうちの 1 個のレジスタの指定を受け取り、受け取った指定により示されるレジスタに記憶されて いる前記特徴量に基づいて、前記証明情報を生成する。また、前記取得手段は、当 該検証装置の指定に係るプラットフォーム構成レジスタに記憶されている特徴量に基 づいて、生成された前記証明情報を取得し、前記判断手段は、前記プラットフォーム 構成レジスタに記憶されるべき特徴量と、取得した前記証明情報を用いて、前記証 明装置の正当性を判断してもよい。
[0012] これらの構成によると、証明装置は、特徴量を記憶するための複数のプラットフォー ム構成レジスタを有し、検証装置の指定により示されるレジスタに記憶されている特 徴量に基づいて、前記証明情報を生成し、検証装置は、指定に係るプラットフォーム 構成レジスタに記憶されるべき特徴量と、取得した前記証明情報を用いて、証明装 置の正当性を判断することにより、 PCRを限定し、証明装置と検証装置との間の通信 路で伝送されるデータのサイズを削減し、証明装置と検証装置との間のネットワーク の負荷を抑えることができる。また、 PCRが限定されるので、証明装置における証明 情報の生成の負荷を小さくすることができる。
[0013] ここで、前記証明装置は、さらに、少なくとも前記検証装置を動作対象とする動作プ ログラムの特徴を示す特徴量に基づ 1、て、生成された前記検証装置の正当性を証 明する証明情報を取得する取得手段と、取得した前記証明情報を用いて、前記検証 装置の正当性を判断する判断手段とを含むとしてもよい。また、前記検証装置は、さ らに、当該検証装置を動作対象とし、階層的な関係を有する複数個の動作プロダラ ムを格納している格納手段と、前記動作プログラムのそれぞれがロードされるときに、 ロードされる前記動作プログラムそれぞれの特徴を示す特徴量を測定する測定手段 と、耐タンパイ匕され、前記複数個の動作プログラムのうちの 1つの動作プログラムが口 ードされているときに、当該 1つの動作プログラムについて取得した特徴量、及び当 該 1つの動作プログラムを動作させるために必要でありロード済である他の動作プロ グラムそれぞれについて取得した特徴量を反映した証明情報を生成する証明手段と 、生成した前記証明情報を出力する出力手段とを含むとしてもよい。 [0014] これらの構成〖こよると、検証装置と証明装置との間で相互の認証を行うので、より高 V、セキュリティ環境を提供することが可能となる。
ここで、前記格納手段は、さらに、当該証明装置を動作対象とし、複数のコンビユー タ命令を含む第 2動作プログラムを格納しており、前記証明装置は、さらに、耐タンパ 化された第 2証明手段を含み、第 2証明手段は、前記証明手段に対して、自身の正 当性を証明し、前記証明手段は、前記第 2証明手段の正当性を検証し、前記測定手 段は、さらに、前記第 2動作プログラムがロードされるときに前記第 2動作プログラムの 特徴を示す第 2特徴量を測定し、前記第 2証明手段は、前記証明手段により、第 2証 明手段の正当性が確認された場合に、少なくとも前記第 2特徴量に基づいて、当該 証明装置の正当性を証明する第 2証明情報を生成し、前記出力手段は、さらに、第 2 証明情報を出力する。また、前記取得手段は、さらに、少なくとも前記証明装置を動 作対象とする第 2動作プログラムの特徴を示す特徴量に基づ ヽて、生成された前記 証明装置の正当性を証明する第 2証明情報を取得し、前記判断手段は、さらに、取 得した前記第 2証明情報を用いて、前記証明装置の正当性を判断してもよい。
[0015] これらの構成によると、証明装置が、 2個の動作プログラムに対応する 2個の TPM を備え、検証装置が、各 TPMに対してそれぞれ、検証することにカ卩えて、第 1の TP Mが第 2の TPMの正当性を検証するので、複数の動作プログラムが連携して動作す る証明装置について、より高いセキュリティ環境を提供することが可能となる。
ここで、前記検証装置は、当該検証装置の正当性を示す第 2証明情報を記憶して いるカードであり、前記証明手段は、さらに、前記検証装置による前記証明装置の正 当性の確認が成功した場合に、前記検証装置から前記第 2証明情報を取得し、取得 した前記第 2証明情報を用いて、前記検証装置の正当性を判断する。また、前記検 証装置は、カードであり、さらに、当該検証装置の正当性を示す第 2証明情報を記憶 している証明情報格納手段と、前記判断手段による前記証明装置の正当性の確認 が成功した場合に、前記第 2証明情報を出力する出力手段を含むとしてもよい。
[0016] これらの構成によると、検証装置は、カードであり、証明装置の正当性の確認が成 功した場合に、自身の正当性を示す第 2証明情報を出力し、証明装置は、取得した 第 2証明情報を用いて、検証装置の正当性を判断するので、証明装置と、カードであ る検証装置との間の相互の認証が可能となる。
ここで、前記証明装置は、前記検証装置により、自身の正当性が確認された場合に
、さらに、第 2検証装置に対して自身の正当性を証明し、前記格納手段は、さらに、 当該証明装置を動作対象とし、階層的な関係を有する複数個の第 2動作プログラム を格納しており、前記測定手段は、さらに、前記第 2動作プログラムのそれぞれが口 ードされるときに、ロードされる前記第 2プログラムそれぞれの特徴を示す第 2特徴量 を測定し、前記証明装置は、さらに、耐タンパ化され、前記複数個の第 2動作プログ ラムのうちの 1つの第 2動作プログラムがロードされているときに、当該 1つの第 2動作 プログラムにつ 、て取得した特徴量、及び当該 1つの第 2動作プログラムを動作させ るために必要でありロード済である他の第 2動作プログラムそれぞれについて取得し た特徴量を反映した第 2証明情報を生成する第 2証明手段を含み、前記出力手段は 、さらに、生成した前記第 2証明情報を第 2検証装置へ出力してもよい。
この構成によると、証明装置が、 2個の動作プログラムに対応する 2個の TPMを備 え、第 1の検証装置が、第 1の TPMに対して検証し、成功した場合に、さらに、第 2の 検証装置が第 2の TPMに対して検証するので、複数の動作プログラムが連携して動 作する証明装置について、より高いセキュリティ環境を提供することが可能となる。 ここで、前記証明装置は、さらに、前記検証装置に対して、秘密情報を要求する要 求手段と、前記検証装置における当該証明装置の正当性の確認結果に応じて、秘 密情報及び前記動作プログラムの更新のための更新プログラムのいずれか一方を受 信する受信手段と、更新プログラムを受信した場合に、受信した更新プログラムに従 つて、前記格納手段に格納されて!、る前記動作プログラムを更新する更新手段とを 含む。また、前記検証装置は、さらに、秘密情報を安全に保持する情報保持手段と、 前記証明装置を動作対象とし、複数のコンピュータ命令を含む動作プログラムの更 新のための更新プログラムを格納して 、るプログラム格納手段と、前記証明装置の正 当性が確認された場合に、前記情報保持手段に保持されて ヽる前記秘密情報を前 記証明装置へ出力し、正当でないと確認された場合、前記プログラム格納手段に格 納されている前記更新プログラムを前記証明装置へ出力する出力手段とを含むとし てもよい。 [0018] これらの構成によると、証明装置が、受信した更新プログラムにより動作プログラム を更新しなければ、証明装置が所望する秘密情報の取得ができないので、証明装置 に対して、動作プログラムの更新を強制することができる。
ここで、前記秘密情報は、当該証明装置を識別する装置識別子に基づいて、当該 証明装置に割り当てられるデバイス鍵を暗号ィ匕して生成した暗号ィ匕デバイス鍵であり 、前記受信手段は、前記検証装置により当該証明装置の正当性が確認された場合 に、前記暗号化デバイス鍵を受信し、前記証明装置は、さらに、受信した前記暗号化 デバイス鍵を、当該証明装置を識別する装置識別子に基づいて、復号して、デバイ ス鍵を生成する復号手段を含む。また、前記情報保持手段は、前記秘密情報として 、前記証明装置を識別する装置識別子に基づいて、当該証明装置に割り当てられる デバイス鍵を暗号ィ匕して生成した暗号ィ匕デバイス鍵を保持しており、前記出力手段 は、前記証明装置の正当性が確認された場合に、前記暗号ィ匕デバイス鍵を出力して ちょい。
[0019] これらの構成によると、検証装置から証明装置へ伝送する情報を、証明装置に固 有の装置識別子により暗号ィ匕しておくことにより、証明装置になりすました不正な装 置が、当該情報を不正に取得することを防止することができる。
ここで、前記証明手段は、測定手段により得られた前記特徴量及び当該証明装置 を識別する装置識別子に基づいて、前記証明情報を生成する。また、前記取得手段 は、前記特徴量、及び前記証明装置を識別する装置識別子に基づいて生成された 前記証明情報を取得し、前記検証装置は、さらに、正規の動作プログラムの特徴を 示す正規特徴量及び前記証明装置を識別する装置識別子に基づ ヽて、生成された 検証情報を取得する検証情報取得手段を含み、前記判断手段は、前記証明情報と 前記検証情報とを用いて、前記証明装置の正当性を判断してもよい。
[0020] これらの構成〖こよると、証明情報は、測定手段により得られた特徴量及び証明装置 を識別する装置識別子に基づいて生成され、検証情報は、正規の動作プログラムの 特徴を示す正規特徴量及び証明装置を識別する装置識別子に基づいて生成され、 前記証明情報と前記検証情報とを用いて、証明装置の正当性が判断されるので、不 正な装置が証明装置になりすますことを防止することができる。 [0021] ここで、前記証明手段は、測定手段により得られた前記特徴量及び当該証明装置 を識別する装置識別子に基づいて、前記証明情報を生成する。また、前記取得手段 は、前記特徴量及び前記証明装置を識別する装置識別子に基づいて、生成された 前記証明情報を取得し、前記検証装置は、さらに、正規の動作プログラムの特徴を 示す正規特徴量を取得する正規特徴量取得手段と、取得した前記正規特徴量及び 前記証明装置を識別する装置識別子に基づいて、前記証明装置の正当性を検証す る検証情報を生成する検証情報生成手段とを含み、前記判断手段は、前記証明情 報と前記検証情報とを用いて、前記証明装置の正当性を判断してもよい。
[0022] これらの構成〖こよると、証明情報は、測定手段により得られた特徴量及び証明装置 を識別する装置識別子に基づいて生成され、検証情報は、正規の動作プログラムの 特徴を示す正規特徴量及び証明装置を識別する装置識別子に基づいて生成され、 前記証明情報と前記検証情報とを用いて、証明装置の正当性が判断されるので、不 正な装置が証明装置になりすますことを防止することができる。
[0023] ここで、前記検証装置は、さらに、前記証明装置を識別する装置識別子を取得する 識別子取得手段と、前記証明装置に割り当てられるデバイス鍵を、取得した前記装 置識別子に基づいて暗号化して暗号化デバイス鍵を生成する暗号化手段と、生成し た暗号化デバイス鍵を前記情報保持手段に格納するするデバイス鍵格納手段とを 含むとしてもよい。
この構成によると、証明装置を識別する装置識別子に基づいて、前記証明装置に 割り当てられるデバイス鍵を暗号ィ匕して暗号ィ匕デバイス鍵を生成し、生成した暗号化 デバイス鍵を証明装置へ出力するので、証明装置になりすました不正な装置が、暗 号化デバイス鍵を不正に取得したと仮定しても、正 ヽ装置識別子を知らな ヽ不正 な装置は、暗号ィ匕デバイス鍵を正しく復号することができず、デバイス鍵の不正な使 用を防止することができる。
[0024] ここで、前記秘密情報は、デバイス鍵を暗号ィ匕して生成した暗号ィ匕デバイス鍵であ り、前記証明装置は、さらに、暗号化手段を含み、前記受信手段は、前記検証装置 により前記暗号ィ匕手段の正当性が確認された場合に、前記暗号ィ匕デバイス鍵を受信 し、前記暗号化手段は、当該証明装置を識別する装置識別子に基づいて、受信した 暗号化デバイス鍵を暗号化して二重暗号化デバイス鍵を生成し、前記証明装置は、 さらに、生成した二重暗号ィ匕デバイス鍵を保持するデバイス鍵保持手段を含む。また 、前記証明装置は、暗号化デバイス鍵を暗号化する暗号化手段を含み、前記情報 保持手段は、前記秘密情報として、暗号化デバイス鍵を保持しており、前記判断手 段は、前記証明装置の正当性として、前記証明装置が有する前記暗号化手段の正 当性を判断し、前記出力手段は、前記暗号化手段の正当性が確認された場合に、 暗号ィ匕デバイス鍵を前記証明装置へ出力してもよい。
[0025] これらの構成によると、証明装置が有する暗号ィ匕手段の正当性が確認された場合 に、暗号ィヒデバイス鍵が検証装置力 証明装置へ伝送され、証明装置が有する前 記暗号化手段により、証明装置を識別する装置識別子に基づいて暗号化デバイス 鍵が暗号ィ匕されて二重暗号ィ匕デバイス鍵が生成され、生成された二重暗号化デバイ ス鍵が保持されるので、証明装置の認証がより確実に行えるとともに、二重暗号化に より、デバイス鍵の漏洩の防止をより強化することができる。
[0026] ここで、前記暗号化手段は、暗号ィ匕アルゴリズムを構成する複数のコンピュータ命 令を含む暗号化プログラムを記憶して!/、る記憶部と、前記暗号化プログラムに従って 動作するマイクロプロセッサとから構成され、前記受信手段は、前記検証装置により 前記暗号ィ匕手段の正当性が確認されな力つた場合に、前記更新プログラムとして、 暗号ィ匕アルゴリズムを構成する複数のコンピュータ命令を含む正規の暗号ィ匕プロダラ ムを受信し、受信した正規の暗号ィ匕プログラムを、前記記憶部に記憶されている暗号 化プログラムに上書きし、前記暗号化手段は、正規の暗号化プログラムに従って、前 記マイクロプロセッサが動作することにより、暗号ィ匕アルゴリズムの機能を達成する。 また、前記証明装置が有する前記暗号化手段は、暗号ィ匕アルゴリズムを構成する複 数のコンピュータ命令を含む暗号ィ匕プログラムを記憶して 、る記憶部と、前記暗号化 プログラムに従って動作するマイクロプロセッサとから構成され、前記プログラム格納 手段は、前記更新プログラムとして、前記暗号ィ匕アルゴリズムを構成する複数のコン ピュータ命令を含む正規の暗号化プログラムを記憶しており、前記出力手段は、前記 暗号ィ匕手段が正当でないと確認された場合に、正規の前記暗号ィ匕プログラムを前記 証明装置へ出力してもよい。 [0027] これらの構成によると、証明装置が、受信した正規の暗号ィ匕プログラムにより、元の 暗号ィ匕プログラムを更新しなければ、証明装置が所望するデバイス鍵の取得ができ ないので、証明装置に対して、正規の暗号ィ匕プログラムへの更新を強制することがで きる。
ここで、前記受信手段は、さらに、個別暗号化を行う前記暗号化プログラムが消去さ れたことが確認された場合、前記検証装置から、受信した暗号ィ匕デバイス鍵の復号 に必須となる鍵を受け取る。また、前記出力手段は、さらに、個別暗号化を行う前記 暗号ィヒプログラムが消去されたことが前記判断手段により確認された場合、前記暗号 化デバイス鍵の復号に必須となる鍵を出力してもよい。
[0028] これらの構成によると、証明装置が、受信した暗号ィ匕プログラムを消去しなければ、 デバイス鍵の復号に必須となる鍵の取得ができないので、証明装置に対して、暗号 化プログラムの消去を強制することができる。
図面の簡単な説明
[0029] [図 1]本発明の実施の形態 1におけるコンテンツ配布システムの構成を示すブロック 図
[図 2]本発明の実施の形態 1における端末 Aのハードウェア構成を示すブロック図 [図 3]本発明の実施の形態 1における権利購入制御プログラムの動作を示すフロー チャート
[図 4]本発明の実施の形態 1における再生制御プログラムの動作を示すフローチヤ一 卜
[図 5]本発明の実施の形態 1における PCR拡張コマンド処理の動作を示すフローチ ヤート
[図 6]本発明の実施の形態 1における端末起動時の動作を示すフローチャート
[図 7]本発明の実施の形態 1における端末 Nのハードウェア構成を示すブロック図 [図 8]本発明の実施の形態 1におけるカードのハードウェア構成を示すブロック図 [図 9]本発明の実施の形態 1における権利購入プログラムの動作を示すフローチヤ一 卜
[図 10]本発明の実施の形態 1における権利確認'鍵生成プログラムの動作を示すフ 口1 ~~チヤ1 ~~卜
[図 11]本発明の実施の形態 1におけるコンテンツ配布システム全体の動作を示すフ 口1 ~~チヤ1 ~~卜
圆 12]本発明の実施の形態 1におけるサーバの構成を示すブロック図
[図 13]本発明の実施の形態 1におけるサーバ上に存在する CRLデータベースのデ ータ構造を示す図
[図 14]本発明の実施の形態 1におけるカード上に存在する CRLデータベースのデー タ構造を示す図
[図 15]本発明の実施の形態 1におけるコンテンツ配布システム全体の動作を示すフ 口1 ~~テャ1 ~~卜
[図 16]第 1の変形例におけるデバイス鍵配布システム 2000の構成を示すブロック図 である。
圆 17]個別暗号化秘密情報の生成の流れを示す図である。
[図 18]デバイス鍵配布システム 2000の動作を示す流れ図である。
[図 19]管理テーブル T2000のデータ構造の一例を示す図である。
[図 20]第 2の変形例におけるデバイス鍵配布システム 2000aの構成を示すブロック 図である。
[図 21]第 3の変形例におけるデバイス鍵配布システム 2000bの構成を示すブロック 図である。
[図 22]デバイス鍵配布システム 2000bの動作を示す流れ図である。
[図 23]第 4の変形例におけるデバイス鍵配布システム 2100の構成を示すブロック図 である。
[図 24]秘密情報の生成の流れを示す図である。
[図 25]秘密情報管理テーブル T2100のデータ構造の一例を示す図である。
[図 26]デバイス鍵配布システム 2100の動作を示す流れ図である。図 27へ続く。
[図 27]デバイス鍵配布システム 2100の動作を示す流れ図である。図 26から続く。
[図 28]その他の実施の形態 1における構成を示す構成図である。
圆 29]端末装置 3001のハードウ ア構成を示す構成図である。 [図 30]PCR (Platform Configulation Register) 3146の内部構成を示した図で ある。
[図 31]TPMプログラム格納部 3156に記憶されているプログラムの一例を示す。 圆 32]端末装置 3001及び CAサーバ装置 3002の機能的構成を示した機能ブロック 図である。
[図 33]証明書記憶部 3114に記憶されている情報の一例を示す。
[図 34]鍵記憶部 3120に記憶されている情報の一例を示す。
[図 35]Attestation処理における、端末装置 3001 (証明装置)及び CAサーバ装置 3002 (検証装置)の動作を示すフローチャートである。
[図 36]Attestation処理における、端末装置 3001 (証明装置)及び CAサーバ装置 3002 (検証装置)の動作を示すフローチャートである。
[図 37]Attestation処理における、端末装置 3001 (証明装置)及び CAサーバ装置 3002 (検証装置)の動作を示すフローチャートである。
[図 38]AIKクレデンシャル取得処理における端末装置 3001及び CAサーバ装置 30 02の動作を示すフローチャートである。
[図 39]AIKクレデンシャル取得処理における端末装置 3001及び CAサーバ装置 30 02の動作を示すフローチャートである。
[図 40]その他の実施の形態 2における構成を示す構成図である。
[図 41]コンテンツ提供サーバ 3202の機能的構成を示すブロック図である。
[図 42]メモリカード 3204の機能的構成を示すブロック図である。
圆 43]端末装置 # 1 (3201)及びメモリカード # 2 (3204)による相互認証の動作及 びデータフロー、検証データの更新処理におけるデータフローを示す。
[図 44]その他の実施の形態 3における端末装置 3301及びメモリカード 3302の機能 的構成及びメモリカード 3302による端末装置 3301の検証動作を示す図である。
[図 45]その他の実施の形態 4における端末装置 3371及びメモリカード 3372の構成 及び動作を示す図である。
[図 46]その他の実施の形態 4の変形例における端末装置 3392、メモリカード 3372 及びコンテンツカード 3392の構成及び動作を示す図である。 [図 47]その他の実施の形態 4の変形例における端末装置 3416及び SIMカード 341 1の構成と動作を示す図である。
圆 48]その他の実施の形態 5に係る端末装置 3431の機能的構成を示すブロック図 である。
圆 49]その他の実施の形態 5の変形例に係る端末装置 3500の機能的構成を示す ブロック図である。
圆 50]その他の実施の形態 5の変形例に係る端末装置 3600の機能的構成を示す ブロック図である。 符号の説明
2000、 2000aゝ 2000bゝ 2100 デバイス鍵配布システム
2001、 2001aゝ 2001bゝ 2101 端末
2002、 2002a, 2002bゝ 2102 カード
2003、 2003a, 2003bゝ 2103 ネットワーク接続端末
2004、 2004aゝ 2004bゝ 2104 サーバ
2010、 2010aゝ 2010bゝ 2110 ID格納部
2011、 2011aゝ 2011b プログラム格納部
2012、 2012aゝ 2012bゝ 2113 端末測定部
2013、 2013aゝ 2013b プログラム更新部
2014、 2014aゝ 2014b 秘密情報復号部
2020、 2020a, 2020bゝ 2120 秘密情報提供部
2021、 2021aゝ 2021bゝ 2121 端末 ID格納部
2022、 2022a, 2022bゝ 2122 正当性確認情報格納部
2023、 2023a, 2023b 更新プログラム格納部
2024、 2024aゝ 2024bゝ 2125 秘密情報取得部
2025、 2025a, 2025bゝ 2126 正当性確認情報取得部
2026、 2026a, 2026b 更新プログラム取得部
2027、 2027aゝ 2027bゝ 2129 正当性確認部
2028、 2028a, 2028b プログラム出力部 2029、 2029a, 2029b, 2132 秘密情報蓄積部
2030、 2030a, 2030b, 2133 スィッチ
2040b 確認情報個別化部
2041b デバイス鍵個別化部
2042b カード ID格納部
2043b 端末共通鍵格納部
2111 第 1のプログラム格納部
2112 第 2のプログラム格納部
2114 第 1のプログラム更新部
2115 第 2のプログラム更新部
2116 デバイス鍵個別化部
2117 個別化デバイス鍵蓄積部
2118 デバイス鍵復号部
2123 第 1の更新プログラム格納部
2124 第 2の更新プログラム格納部
2127 第 1の更新プログラム取得部
2128 第 2の更新プログラム取得部
2130 第 1のプログラム出力部
2131 第 2のプログラム出力部
2140 確認情報個別化部
3000 検証システム
3001 端末装置
3002 CAサーバ装置
3003 TPMサーバ装置
3004 端末サーバ装置
3005 インターネット
3102 制御部
3103 送受信部 3104 測定値通知部
3106 プログラム記憶部
3107 RTM
3108 メモリ
3111 PCR値記憶部
3112 ログ取得部
3113 PCR値算出部
3114 証明書記憶部
3116 ログ記憶部
3117 TPM
3118 TPM制御部
3119 検証部
3120 ¾ίι!し fe p[5
発明を実施するための最良の形態
[0031] 以下、本発明の実施の形態について、図面を参照しながら説明する。
図 1は、コンテンツ配布システム 0100の構成を示している。コンテンツ配布システム ΟΙΟΟίま、サーノ 0101、端末 Α0102、端末 B0103〜端末 Μ0104、端末 Ν0105〜 端末 Ζ0106、カード 0107から構成されており、サーバ 0101は、端末 Α0102、端末 Β0103、および端末 M0104とインターネット 0108を介して接続されている。端末 Ν 0105、端末 Z0106はサーバ 0101と直接通信する手段を持っていない。端末 A010
2、端末 B0103〜端末 Μ0104、および端末 N0105〜端末 Z0106は、後述するよう にカードインターフェースを備えており、カード 0107を介してデータのやり取りが可能 となっている。
[0032] なお、図 1ではサーバ 0101と接続されている端末として、端末 Α0102、端末 B010
3、端末 M0104しか図示していないが、端末 A0102等と同一の構成を持つ 1台以 上の端末力 さらに、コンテンツ配布システム 0100に存在してもよい。また図 1に示し た台数よりも少ない台数だけ存在していてもよい。以後、端末 Β0103、端末 M0104 は端末 A0102と同様の構成であるため、必要な場合を除いて端末 A0102以外の端 末についての説明は省略する。また、図 1では、サーバ 0101と接続されていない端 末として、端末 N0105、端末 Z0106しか図示していないが、端末 N105または端末 Z0106と同一の構成を含む 1台以上の端末力 さらに、コンテンツ配布システム 010 0に存在してもよい。また、図 1に示した台数よりも少ない台数だけ存在していてもよ い。以後、端末 Z0106は端末 N0105と同様の構成であるため、必要な場合を除い て端末 N0105以外の端末についての説明は省略する。
[0033] 端末 A0102は、インターネット 0108を介してサーバ 0101と通信し、音楽や映画な どのコンテンツをダウンロードする機會 とダウンロードしたコンテンツを再生する機會 を有している。ここで、コンテンツは著作権保護されており暗号化された形で端末 AO 102にダウンロードされる。
カード 0107は、端末 A0102、およびインターネット 0108を介してサーバ 0101と通 信し、コンテンツを暗号化した鍵を取得し、端末 A0102の依頼に基づいてコンテンツ を暗号化した鍵を端末 AO 102に渡す。ここで、カード 0107はコンテンツを暗号化し た鍵を渡す際に、端末 A0102が正当な端末かどうかを確かめて、正当な端末でなけ れば鍵を出力しないよう構成されている。具体的には、公知の相互認証等により、相 手の正当性を確認した上で鍵を渡して 、る。
[0034] 図 2は、端末 A0102の構成を示している。なお、端末 B0103、端末 M0104も同様 の構成をして ヽる。端末 Α0102ίま、プロセッサ 0201、 RAM0202,ブートコード 020 3、カードインターフェース 0204、通信部 0205、コンテンツ格納部 0206、セキュアモ ジユーノレ 0207、プログラム格糸内咅 0208で構成されており、ノ ス 0213でネ目互【こ接続 されている。プログラム格納部 0208には、オペレーティングシステム 0209、権利購 入制御プログラム 0210、再生制御プログラム 0211、プログラム証明書 0212が格納 されている。
[0035] プロセッサ 0201は、ブートコード 0203、および RAM0202にロードされているプロ グラムを実行し、端末 A0102の各種処理を行う。
RAM0202は、プロセッサ 0201で実行するプログラムがロードされる。ロードされる プログラムはプログラム格納部 0208に格納されている。
ブートコード 0203は、端末 A0102がリセットされた後、プロセッサ 0201が初めに実 行するコード (ブートコード)が格納されている。ブートコード 0203は、プログラム格納 部 0208に格納されているオペレーティングシステム 0209を RAM0202へ展開する
[0036] カードインターフェース 0204は、カード 0107と端末 A0102を接続するインターフ エースである。プロセッサ 0201で動作するプログラムは、カードインターフェース 020 4と通信することで、カード 0107と通信することができる。端末 A0102で動作するプ ログラムはカード 0107と通信する時には常にカードインターフェース 0204を使用す る。以下、端末 A0102で動作するプログラムとカード 0107の通信について記述する 場合はカードインターフェース 0204の記述は省略する。
[0037] 通信部 0205は、インターネット 0108と端末 A0102を接続するインターフェースで ある。プロセッサ 0201で動作するプログラムは、通信部 0205と通信することで、イン ターネット 0108を介してサーバ 0101と通信することができる。
コンテンツ格納部 0206は、端末 A0102がサーバ 0101からダウンロードしたコンテ ンッを格納しておく場所である。
[0038] セキュアモジュール 0207は、 TCG (Trusted Computing Group)で規格化さ れている TPM (Trusted Platform Module)と同様の機能を有するデバイスであ る。 TPMの詳細な仕様については、 TCGのホームページ <URL :http : ZZwww . trastedcomputmggroup . org>" 2r開されている。
[0039] セキュアモジュール 0207は、 PCR (Platform Configuration Register)と呼ば れるレジスタを含んでおり、そのレジスタには端末 A0102のソフトウェア構成に依存 する値が格納される。セキュアモジュール 0207は、 PCRを更新するコマンドを提供し ており、そのコマンドが実行されると現在の PCRの値とそのコマンドの引数を結合し、 その結合した値に対して一方向性関数を施した結果で PCRが更新される。以下、こ のコマンドを PCR拡張コマンドと呼ぶ。
[0040] セキュアモジュール 0207は、セキュアモジュール 0207内に外部に取り出されない 形で保持されて 、る秘密鍵を用いて、 PCRの値に対し署名を施すサービスを提供す ることができる。このサービスは Attestationと呼ばれる。例えば、端末 A0102内で 動作するプログラムがセキュアモジュール 0207の Attestationサービスに関連する コマンドを用い、署名された現在の PCR値を取得してサーバ 0101に送信する。この 場合、サーバ 0101は、認証局力も得たセキュアモジュール 0207の公開鍵を用いて 署名検証することによって、送信された値がセキュアモジュール 0207で生成された P CRの値であることを確かめることができる。なお、セキュアモジュール 0207には耐タ ンパ処理が施されており、セキュアモジュール 0207内で実行される PCR拡張コマン ド処理、および Attestationサービスに関連するコマンド処理を不正に変更すること はできな!、ようになって!/、る。
[0041] プログラム格納部 0208は、端末 A0102で動作するプログラムを格納する場所であ り、オペレーティングシステム 0209、権利購入制御プログラム 0210、再生制御プロ グラム 0211、プログラム証明書 0212を格納して!/、る。
オペレーティングシステム 0209は、一般的な端末 A0102の基盤ソフトウェアであり 、オペレーティングシステム 0209上で動作するアプリケーションにサービスを提供す る。オペレーティングシステム 0209は、プログラム格納部 0208内に格納されている アプリケーションを RAM0202にロードする。
[0042] 続いて、各プログラムが行う処理について説明する。
図 3は権利購入制御プログラム 0210の動作フローを示して 、る。権利購入制御プ ログラム 0210はオペレーティングシステム 0209上で動作するアプリケーションである 。権利購入制御プログラム 0210は、端末 A0102において、サーバ 0101から提供さ れるコンテンツの権利の取得をカード 0107に依頼する処理とそのコンテンツのダウ ンロードを行う。以下、この処理の詳細を説明する。
[0043] 権利購入制御プログラム 0210は、オペレーティングシステム 0209にローデイング され制御権を取得すると、まず、サーバ 0101に問い合わせて購入可能なコンテンツ のリストを取得する。そのリストにはコンテンツを識別できる情報、例えば、コンテンツ の IDやコンテンツのタイトル、コンテンツの概要等が含まれている。次に、そのリストを 端末 A0102のユーザに提示し、購入するコンテンツを選択させ、選択したコンテンツ の IDおよびそのコンテンツを購入する端末を識別する端末 ID (端末 A0102の端末 I D)を含むコンテンツ購入要求をカード IZF0204を介して、カード 0107に送信する( ステップ S0301)。 [0044] 次に、権利購入制御プログラム 0210は、カード 0107に購入依頼したコンテンツの I Dをサーバ 0101に送信し、該当するコンテンツをサーバ 0101からダウンロードし、コ ンテンッ格納部 0206に格納する。ここで、ダウンロードするコンテンツは暗号ィ匕され ているので、コンテンツ格納部カゝら不正にコピーできたとしても著作権は保護される ( ステップ S0302)。
[0045] なお、端末 A0102は、端末 N0105等のインターネット 0108に接続されていない 他の端末のためにコンテンツを購入する場合がある。この場合、コンテンツ購入要求 に含ませる端末 IDは、端末 N0105等の端末 IDとなる。さら〖こ、コンテンツを端末 NO 105等に渡すため、ステップ S0302の後にコンテンツをカード 0107に移動するステ ップが追加で実行される。
[0046] 図 4は再生制御プログラム 0211の動作フローを示している。再生制御プログラム 0 211はオペレーティングシステム 0209上で動作するアプリケーションである。再生制 御プログラム 0211は、再生するコンテンツを暗号化している鍵をカード 0107から取 得し、その鍵でコンテンツを復号ィ匕してコンテンツを再生する。また、カードから端末 A0102内のプログラムの更新を依頼された場合は、プログラム格納部 0208に格納 されているプログラムを更新する。以下、再生制御プログラム 0211の処理の詳細を 述べ。。
[0047] 再生制御プログラム 0211は、オペレーティングシステム 0209にローデイングされ 制御権を取得すると、コンテンツ格納部 0206に格納されているコンテンツのリストを 取得し、カード 0107に問い合わせて再生可能なコンテンツのリストを作成する。カー ド 0107は、カード 0107に格納されているコンテンツを暗号化している鍵とその鍵に 対応するコンテンツ IDを格納しており、再生制御プログラム 0211は、カード 0107に 格納されて ヽるコンテンツを暗号化して!/ヽる鍵に対応するコンテンツ IDのリストを取得 して、コンテンツ格納部 0206に格納されているコンテンツ IDのリストと比較して再生 可能なコンテンツのリストを作成する。このリストは例えばカードに鍵が格納されている コンテンツのリストとなる(ステップ S0401)。
[0048] なお、再生制御プログラム 0211は、カード 0107に格納されているコンテンツ IDの リストもカード 0107から取得し、再生可能なコンテンツのリストに追加することができる 。この追加リストは、端末 A0102内に格納されているコンテンツに対する再生可能な コンテンツのリストの作成手順と同様の手順で作成される。この追加リストも含めたリス トは、カードを含む端末上に存在する鍵に対応したコンテンツのリストとなり、(コンテ ンッ格納部 0206に格納されている力否かは問わず)その端末で再生できるコンテン ッの一覧を示すリストとなる。
[0049] 再生制御プログラム 0211は、ステップ S0401で生成した再生可能なコンテンツのリ ストを端末 A0102のユーザに提示し、再生したいコンテンツを選択させ、そのコンテ ンッの IDを取得する。再生制御プログラム 0211は、コンテンツ IDを含む鍵出力依頼 情報をカード 0107に送信し、対応するコンテンツを暗号ィ匕している鍵の出力を依頼 する (ステップ S0402)。鍵出力依頼情報は、コンテンツ ID、端末 ID、プログラム証明 書、署名された現在の PCR値を含む。ここで、署名された現在の PCR値は、再生制 御プログラム 0211がセキュアモジュールに対して Attestationサービスに関連する コマンドを用いて取得したものであり、その PCRの値は現在、端末で動作しているソ フトウエアに依存する値となっている。
[0050] 次に、再生制御プログラム 0211は、カード 0107に依頼した鍵が出力されたかどう かをカード 0107に問い合わせる。 (ステップ S0403)もし、鍵が出力されているので あれば (ステップ S0403で YES)、その鍵を用いてコンテンツ復号処理 (ステップ S04 04)を行う。もし、鍵が出力されていないのであれば (ステップ S0403で NO)、カード 0107からプログラムの更新依頼があるかどうかを確かめる処理 (ステップ S0406)を 行う。ここで、プログラムの更新依頼は、コンテンツの処理プログラムにセキュリティホ ール等が発見されているとカード 0107が判断した場合に、鍵を渡す前に、そのプロ グラムをアップデートすることを要求する依頼である。
[0051] 再生制御プログラム 0211は、鍵が出力されているのであれば (ステップ S0403で Y ES)、カード 0107から鍵を取得し、再生すべきコンテンツをコンテンツ格納部 0206 、もしくはカード 0107から取得して、コンテンツを復号化する(ステップ S0404)。 再生制御プログラム 0211は、コンテンツが復号化されるとそのコンテンツを再生す る。(ステップ S0405)再生制御プログラム 0211は、復号ィ匕されたコンテンツの種別 に応じた再生を行う。以降の再生の手順は一般的な再生方法であるので、説明は省 略する。
[0052] 再生制御プログラム 0211は、鍵が出力されていないのであれば (ステップ S0403 で NO)、カード 0107にプログラムの更新依頼があるかどうかを問い合わせる。もし、 プログラムの更新依頼があれば (ステップ S0406で YES)、カードから更新プログラム と後述する正規 PCR値を取得し、プログラム格納部 0208のプログラムと後述するプ ログラム証明書 0212を更新する (ステップ S0407)。ここで、更新対象のプログラムと そのプログラムの正規 PCR値は、後述するようにサーバ 0101から取得され、カード に格納される。なお、この正規 PCR値には後述するように端末メーカのみ知る秘密鍵 を用いて作られた署名が付されており、この署名がプログラム証明書 0212となる。そ の後、再生制御プログラム 0211は、端末 A0102を再起動するためにシステムリセッ ト依頼をオペレーティングシステム 0209に送信する(ステップ S0408)。
[0053] もし、プログラムの更新依頼がなければ (ステップ S0406で NO)、再生制御プログ ラム 0211は、処理を終了する。
以上が再生制御プログラム 0211が行う処理の説明である。以下、プログラム格納 部 0208が格納して 、る情報の説明に戻る。
プログラム証明書 0212は、セキュアモジュール 0207の PCRの値に対して端末 AO 102を製造したメーカのみ知る秘密鍵で署名したデータである。署名する PCRの値 は、端末 A0102が起動し、オペレーティングシステム 0209や各種アプリケーション 力 ーデイングされた後の PCRの値である。この時、メーカはオペレーティングシステ ム 0209や各種アプリケーションが各種著作権保護規格の実装要件を満たしている 力どうかを確認した後、署名する。ここで、署名に用いる秘密鍵は端末 A0102には 搭載されて 、な 、ため、プログラム証明書 0212は端末 A0102では生成できな 、。 プログラム証明書 0212は、例えばメーカの工場で生成される。
[0054] PCRの値は、端末 A0102のソフトウェア構成に依存させるために、端末 A0102上 でローデイングされるプログラムのハッシュ値を引数として PCR拡張コマンドを実行す ることで更新される。プログラムのロード時に必ずロード対象のプログラムのハッシュ 値を計算し、 PCR拡張コマンドを用いて、そのハッシュ値で PCRを更新していけば、 PCR値を端末 A0102のソフトウェア構成に常に依存させることができる。 [0055] 図 5は、セキュアモジュール 0207内の PCRを更新し、 PCRに端末 A0102のソフト ウェア構成に依存する値を格納する処理のフローを示している。この処理は、ォペレ 一ティングシステム 0209をローデイングするブートコード 0203、および各種アプリケ ーシヨンプログラムをローデイングするオペレーティングシステム 0209の動作に共通 して含まれる。これは、ブートコード 0203はオペレーティングシステム 0209を読み込 むことで端末 A0102内のソフトウェア構成を変更し、オペレーティングシステム 0209 はアプリケーションプログラムを読み込むことで端末 A0102内のソフトウェア構成を変 更するからである。
[0056] 以下の説明では、別のプログラムを呼び出す側(前者におけるブートコード 0203と 、後者におけるオペレーティングシステム 0209)を「ロードするプログラム」と、呼び出 される側のプログラム(前者におけるオペレーティングシステム 0209、後者における アプリケーションプログラム)を「ロード対象プログラム」と呼ぶ。
ロードするプログラムは、まず、ロード対象プログラムのハッシュ値をノヽッシュ関数ァ ルゴリズムで計算する(ステップ S0501)。次に、このハッシュ値を引数として、 PCR 拡張コマンドを実行し、セキュアモジュール 0207内の PCRの値を更新する(ステップ S0502)。ロードするプログラムは、 PCR更新処理 (ステップ S0502)終了後、ロード 対象プログラムを RAM0202に展開する(ステップ S0503)。最後に、ロードするプロ グラムは RAM0202にロードしたプログラムに分岐する(ステップ S0504)。
[0057] 端末 A0102は、電源投入後、もしくはリセット解除後、すなわち端末起動時、オペ レーティングシステム 0209や各種アプリケーションを RAM0202にロードしていく。 端末 A0102は、プログラムをロードする時、図 5で説明したように PCRの更新を行う。 図 6は、端末 A0102の起動時の動作を表すフローチャートである。
[0058] 電源投入後、もしくはリセット解除後、プロセッサ 0201は、ブートコード 0203を実行 する(ステップ S0601)。ブートコード 0203は、端末 A0102のハードウェアの初期設 定を行った後、ブートコード 0203自身のハッシュ値を計算し、このハッシュ値を PCR 拡張コマンドの引数として、セキュアモジュール 0207の PCRを更新する。ここで、セ キュアモジュール 0207の PCRは、電源投入、もしくはリセット解除後には初期化され ているものとする。 [0059] 次にブートコード 0203は、オペレーティングシステム 0209を RAM0202にローデ イングする。ブートコード 0203は、オペレーティングシステム 0209をローデイングする 際、図 5に示す手順で、オペレーティングシステム 0209のハッシュ値を計算し、セキ ユアモジュール 0207の PCRを更新する。その後、プロセッサ 0201は、オペレーティ ングシステム 0209を実行し、オペレーティングシステム 0209の初期化を行う。
[0060] オペレーティングシステム 0209は、その後、各種アプリケーションのローデイングを 行う(ステップ S0603)。各種アプリケーションがローデイングされる際、図 5に示す手 順で、各種アプリケーションのハッシュ値を計算し、セキュアモジュール 0207の PCR を更新する。
その後、端末 A0102は、ユーザからの入力を待ち、その入力に応じたアプリケーシ ヨンプログラムの処理を実行する(S0604)。
[0061] このように、端末 A0102は、電源投入後、もしくはリセット後、ブートコード 0203を 含む端末 A0102で動作するプログラムのハッシュ値で PCR拡張コマンドを用い、セ キュアモジュール 0207の PCRを更新していく。その結果、セキュアモジュール 0207 の PCRは、端末 A0102で動作して!/、るプログラムに依存した値となる。
以上で端末 A0102の構成の説明を終わる。続いて、端末 N0105の構成の説明に 移る。
[0062] 図 7は、端末 N0105の構成を示している。なお、端末 Z0106も同様の構成をして ヽる。端末 Ν0105ίま、プロセッサ 0701、 RAM0702,ブートコード 0703、カードイン ターフェース 0704、コンテンツ格納部 0706、セキュアモジュール 0707、プログラム 格納部 0708で構成されており、これらの要素はバス 0713で相互に接続されている 。プログラム格納部 0708には、オペレーティングシステム 0709、再生制御プログラム 0711、プログラム証明書 0712が格納されて!、る。
[0063] 端末 N0105のこれらの構成要素は、図 2に示す端末 A0102の構成要素と同一の 機能を有するため説明は省略する。ただし、端末 N0105には、端末 A0102の通信 部 0205、権利購入制御プログラム 0210に相当する構成要素は存在しない。
以上で端末 N0105の構成の説明を終わる。続いて、サーバ 0101の構成の説明を 行う。 [0064] 図 12は、サーバ 0101の構成を示している。サーバ 0101は、通信部 1201、 CRL データベース 1202、 CRL管理部 1203、権利管理部 1204で構成されている。 CRL データベース 1202は CRL管理部 1203と接続されている。また、 CRL管理部 1203 、権利管理部 1204は、通信部 1201と接続されている。
通信部 1201は、インターネット 0108と接続されており、端末 A0102〜端末 M010 4と通信を行う。 CRL管理部 1203、および権利管理部 1204は、この通信部 1201を 介して端末 A0102〜端末 M0104、および端末 A0102等に接続されたカード 0107 と通信する。
[0065] CRLデータベース 1202は、リボーク(無効ィ匕)されている端末の端末 ID、その端末 のリボークされた原因を取り除いた後の更新プログラム、およびその更新プログラムが 端末上で実行された時の PCR値が格納されている。なお、端末のリボークは、一般 的には、悪意の利用者の端末が特定できている場合にその端末を無効化することな ど、プログラムの更新によって回復できない欠陥を持った端末の無効化も示すが、本 実施の形態では、プログラムの更新によって回復できる欠陥を持った端末をリボーク 対象として説明する。具体的には、本実施の形態では、セキュリティホールを持った 古いソフトウェアを使用し続けている端末など力 リボーク対象として CRLデータべ一 スに記録される。
[0066] 図 13は、 CRLデータベース 1202の構成を示した図である。 CRLデータベース 12 02は、 CRLエントリ Τ1301、 Τ1302、 Τ1303 · · ·力ら構成され、各 CRLエントリには 、端末 ID、更新プログラム、および正規 PCR値のエリアが存在する。 CRLデータべ ース 1202は、リボークされている端末の情報により構成される。
[0067] 端末 IDエリアには、リボークされている端末の IDが格納される。更新プログラムエリ ァには、リボークされた端末の更新プログラムが格納される。リボークされた原因がソ フトウエアにある場合、この更新プログラムを用いて端末をアップデートすれば、端末 は動作し続けることができる。このようなケースの具体例としては、ソフトウェアがハツキ ングされたことが判明した場合や、ソフトウェアにセキュリティホールが発見された場 合などである。正規 PCR値エリアには、端末が更新プログラムエリアに格納されてい る更新プログラムでアップデートされ、正常に動作して 、る時の PCR値に端末メーカ のみ知る秘密鍵で作られた署名が付した情報が格納される。
[0068] この正規 PCR値を用い、端末側でプログラムが正しくアップデートされて 、る力どう かを確かめることができる。
CRL管理部 1203は、通信部 1201および端末 A0102を介してカード 0107と相互 認証を行 、正規のカードであることを確かめ、 CRL情報を通信部 1201を介して提供 する。より具体的には、 CRL管理部 1203は、カード 0107から送られてくる端末 IDが CRLデータベース 1202に存在するかどうか確かめ、存在していれば該当するェント リの更新プログラムおよび正規 PCR値をカード 0107に提供する。
[0069] 権利管理部 1204は、コンテンツの権利情報を管理し、端末の要求に応じて課金処 理を行い、コンテンツの権利情報を提供する。権利管理部 1204は、カード 0107と相 互認証を行い、正当なカード 0107であることを確かめた後に課金処理および権利情 報の提供を行う。権利管理部 1204は、通信部 1201を介してインターネット 0108と 接続される。
[0070] 以上でサーバ 0101の構成の説明を終わる。続いて、カード 0107の構成の説明に 移る。
図 8は、カード 0107の構成を示している。カード 0107は、プロセッサ 0801、 RAM 0802、ブートコード 0803、端末 IZF0804、 CRLデータベース 0805、コンテンツ格 納部 0807、プログラム格納部 0808で構成されており、これらの構成要素はバス 081 3で相互に結合されている。また、カード 0107は、耐タンパ性を有しており、カード内 のプログラムやデータを容易に暴露されることは無 、ようになって 、る。
[0071] プロセッサ 0801は、ブートコード 0803、および RAM0802にロードされているプロ グラムを実行し、カード 0107の各種処理を行う。
RAM0802は、プロセッサ 0801で実行するプログラムがロードされる。ロードされる プログラムはプログラム格納部 0808に格納されている。
ブートコード 0803は、カード 0107がリセットされた後、プロセッサ 0801が初めに実 行するコード(ブートコード)が格納されている。ブートコード 0803は、プログラム格納 部 0808に格納されているオペレーティングシステム 0809を RAM0802へ展開する 。なお、カード 0107は、端末に挿入され電力が供給された時点でリセットされる。 [0072] 端末 I/F0804は、カード 0107と端末を接続するインターフェースである。プロセッ サ 0801で動作するプログラムは、端末 IZF0804と通信することで、端末と通信する ことができる。カード 0107で動作するプログラムは端末 IZF0804と通信する時には 常に端末 IZF0804を使用する。以下、カード 0107で動作するプログラムと端末との 通信について記述する場合は端末 IZF0804の記述は省略する。
[0073] 図 14は、 CRLデータベース 0805の構成を示した図である。 CRLデータベース 08 05は、 CRLエントリ Τ1401、 Τ1402、 Τ1403 · · 'から構成され、各 CRLエントリには 、端末 、更新プログラム、および正規 PCR値のエリアが存在する。
端末 IDエリアには、カード 0107が取得した端末の IDが格納される。なお、端末 ID のエリアに書かれている「ID— A」「ID— B」「ID— N」はそれぞれ、端末 A102、端末 B103、端末 N105の端末 IDである。更新プログラムエリアには、該当する端末 IDを 持つ端末がリボークされている場合、その端末の更新プログラムが格納される。正規 PCR値エリアには、端末が更新プログラムエリアに格納されている更新プログラムで アップデートされ、正常に動作している時の PCR値が格納される。ここで正規 PCR値 には、前述したように端末メーカのみ知る秘密鍵を用いて作られた署名が付されて!ヽ る。なお、 T1403では、更新プログラムが NULLに、正規の PCR値が現状の PCR値 となっている。このエントリはカード 0107が鍵出力依頼情報を受け取った後の状態で ありかつ更新プログラムを取得していない状態である。例えば、カード 0107が初めて 端末 N0105に挿入されて、鍵出力依頼情報を受け取った直後の状態である。
[0074] コンテンツ格納部 0807には、暗号化されたコンテンツとコンテンツの権利が格納さ れる。このコンテンツは端末 A0102のようなサーバ 0101に接続可能な端末でダウン ロードされ、コンテンツ格納部 0807に格納される。コンテンツ格納部 0807は、端末 N0105のようなインターネット 0108を経由してサーバ 0101にアクセスできない端末 にコンテンツを供給するために用いられる。また、コンテンツの権利は、後述する権利 購入プログラム 0810によってサーバ 0101から取得されてコンテンツ格納部 0807に 格納される。
[0075] コンテンツ格納部 0807に格納されるコンテンツの権利は、カード 0107の外部から 直接アクセスすることはできず、後述する権利確認'鍵生成プログラム 0811しかァク セスできないような実装となっている。具体的には、権利確認 '鍵生成プログラム 081 1でしか復号できな!/、ように暗号ィ匕したりすることで、このような実装を行うことができる
[0076] プログラム格納部 0808は、オペレーティングシステム 0809、権利購入プログラム 0 810、権利確認 ·鍵生成プログラム 0811を格納して!/、る。
オペレーティングシステム 0809は、一般的なカード 0107の基盤ソフトウェアであり 、オペレーティングシステム 0809上で動作するアプリケーションにサービスを提供す る。オペレーティングシステム 0809は、プログラム格納部 0808内に格納されている アプリケーションを RAM0202にロードする。
[0077] 権利購入プログラム 0810は、端末の権利購入制御プログラム 0210から受け取つ たコンテンツ購入要求に基づき、サーバ 0101と端末の通信機能を用いて通信して 権利の購入およびカード 0107の CRLデータベース 0805の更新を行う。なお、コン テンッ購入要求には、端末 A0102の説明で述べたように、購入対象のコンテンツ ID およびそのコンテンツを購入する端末を識別する端末 IDが含まれている。
[0078] 図 9は、権利購入プログラム 0810の動作を示すフローチャートである。権利購入プ ログラム 0810は、コンテンッ購入要求に含まれる端末 IDを取得して CRLデータべ一 ス 0805に格納する(ステップ S0901)。権利購入プログラム 0810は、 CRLデータべ ース 0805を操作し、 CRLエントリを作成して端末 IDエリアに取得した端末 IDを格納 する。権利購入プログラム 0810は、既に取得した端末 IDを端末 IDエリアに持つ CR Lエントリが存在する場合には CRLエントリの作成は行わない。
[0079] 権利購入プログラム 0810は、サーバ 0101と相互認証を行い、コンテンツの購入処 理およびコンテンツの権利の取得を行う(ステップ S0902)。取得したコンテンツの権 利は、コンテンツ格納部 0807に安全に保存される。コンテンツの権利には、コンテン ッの利用期限、利用回数などのコンテンツ利用条件、およびコンテンツを暗号ィ匕して V、る鍵が格納されて 、る。コンテンツの権利は暗号ィ匕された形でコンテンツ格納部 0 807〖こ保持される。
[0080] 次に、権利購入プログラム 0810は、サーバ 0101に問い合わせ、 CRLデータべ一 ス 0805の更新を行う(ステップ S0903)。ここで、権利購入プログラム 0810は、 CRL データベース 0805の CRLエントリに格納されて 、るすべての端末 IDをサーバ 0101 に送信する。サーバ 0101の CRL管理部 1203は、受け取った端末 IDが CRLデータ ベース 1202に格納されているかどうかを確かめ、該当する端末 IDが存在する場合、 その端末 IDが格納されて 、る CRLエントリ内の更新プログラムと正規 PCR値を権利 購入プログラム 0810に送信する。権利購入プログラム 0810は、受け取った更新プロ グラムと正規 PCR値を CRLデータベース 0805の該当する端末 IDを含む CRLェント リに格納する。
[0081] 図 10は、権利確認.鍵生成プログラム 0811の動作を示すフローチャートである。
権利確認'鍵生成プログラム 0811は、端末がリボークされていないかどうか確認し 、されていなければ、コンテンツ利用条件をチェックして再生可能な状態であればコ ンテンッの暗号鍵を端末に出力する。また、リボークされている場合、更新プログラム を端末に出力する。
[0082] 権利確認 '鍵生成プログラム 0811は、鍵出力依頼情報に含まれる端末 IDを取得し て CRLデータベース 0805に格納する(ステップ S1001)。権利確認'鍵生成プログ ラム 0811は、 CRLデータベース 0805を操作し、 CRLエントリを作成して端末 IDエリ ァに取得した端末 IDを格納する。権利確認 '鍵生成プログラム 0811は、既に取得し た端末 IDを端末 IDエリアに持つ CRLエントリが存在する場合には CRLエントリの作 成は行わない。権利購入プログラム 0810にも同様の処理を行う機能がある力 この ステップは端末 NO 105のようなインターネット 0108に接続されない端末で端末 IDを 取得するために実行される。端末 N0105のような端末は、権利購入プログラム 0810 を実行することはないからである。なお、これらの端末については、端末 A0102等の インターネット 0108に接続された機器がカード 0107を用 ヽて事前に購入したコンテ ンッを再生することを想定して 、る。
[0083] 権利確認'鍵生成プログラム 0811は、鍵出力依頼情報に含まれる Attestationサ 一ビスにより署名された PCR値の署名検証を行う(ステップ S1002)。署名検証の結 果、 PCR値が正規のものでないと判断された場合 (ステップ S 1002で NO)、権利確 認 ·鍵生成プログラム 0811は処理を終了する。
署名検証の結果、 PCRの値が正規のものであると確認された場合 (ステップ S 100 2で OK)、権利確認'鍵生成プログラム 0811は、端末の正当性確認を PCR値を用 いて行う(ステップ S1003)。権利確認'鍵生成プログラム 0811は、 CRLデータべ一 ス 0805を参照し、鍵出力依頼情報に含まれる端末 IDと一致する CRLエントリ内の正 規 PCR値と、端末より取得した PCR値を比較する。比較結果が OKの場合 (ステップ S 1003で OK)、権利確認処理に移る。比較結果が NGの場合 (ステップ S 1003で N G)、プログラム更新処理に移る。ここで、比較結果が OKとは PCR値と正規 PCR値と がー致することを意味し、比較結果が NGとは PCR値と正規 PCR値とがー致しな 、こ とを意味する。
[0084] なお、鍵出力依頼情報に含まれる端末 IDと一致する CRLエントリ内の正規 PCR値 が存在しない場合、権利確認'鍵生成プログラム 0811は、鍵出力依頼情報に含まれ るプログラム証明書に含まれる PCR値を、その PCR値が端末メーカにより生成された ものであるかどうかを端末メーカの公開鍵で確認した後、正規 PCR値の替わりに用い て端末の正当性を確認する。比較結果が OKの場合 (ステップ S 1003で OK)、権利 確認処理に移る。比較結果が NGの場合 (ステップ S 1003で NG)、プログラム更新 処理に移る。
[0085] ここで、権利確認 ·鍵生成プログラム 0811は、正規 PCR値をサーバから取得して!/ヽ ない場合に限って、鍵出力依頼情報に含まれるプログラム証明書中の PCR値を CR Lエントリに格納し、その後の端末の正当性確認に用いる。このプログラム証明書はメ 一力が出荷時に機器のソフトウエア構成を表す PCR値を含む状態で署名して ヽるも のであるため、実質的にはカード 0107は端末が出荷時のソフトウェア構成であるか どうかの検証しかできないこととなる。し力しながら、後述するが、本実施の形態では、 権利を購入する処理の中で CRLエントリに格納されて ヽる端末 IDすべてにっ 、て更 新プログラムが存在するかどうかの確認が行われ、更新プログラムが存在して 、る場 合は更新プログラムおよびその更新プログラムに対応した正規 PCRがカード 0107の CRLエントリに格納される。そのため、一度端末 IDが CRLエントリに格納され、権利 購入処理が発生すると正規 PCR値を用いた端末の正当性検証が完全に機能するこ ととなる。端末の利用者はコンテンツ配信サービスを受け続けるためには権利購入処 理の実行が不可欠となるため、正規 PCR値の取得操作を避けることは困難である。 [0086] 端末が正当であると判断された場合 (ステップ S1003で OK)、権利確認'鍵生成プ ログラム 0811は、鍵出力依頼 '青報に含まれるコンテンツ IDに該当するコンテンツの 権利情報をコンテンツ格納部 0807から取得し、利用条件をチヱックする (ステップ S1 004)。利用条件のチェックが NGの場合 (ステップ S1004で NG)、権利確認'鍵生 成プログラム 0811は処理を終了する。
[0087] 利用条件のチェックが OKの場合 (ステップ S 1004で OK)、権利確認'鍵生成プロ グラム 0811は、コンテンッの権利情報に含まれるコンテンッ暗号鍵を端末に出力し、 権利確認 ·鍵生成プログラムの処理を終了する (ステップ S 1005)。
端末の正当性確認ステップで端末が正当でな 、と判断された場合 (ステップ S100 3で NG)、権利確認 '鍵生成プログラム 0811は、 CRLデータベース 0805を参照し、 鍵出力要求に含まれる端末 IDに該当する CRLエントリの更新プログラムエリアに更 新プログラムが存在するかどうかを確かめる(ステップ S 1006)。更新プログラムが存 在しない場合 (ステップ S 1006で NG)、権利確認 '鍵生成プログラム 0811は、処理 を終了する。
[0088] 更新プログラムが存在する場合 (ステップ S 1006で OK)、更新プログラムと正規 PC Rの値の出力処理を行う(ステップ S 1007)。ここで、更新プログラムおよび正規 PCR 値は、 CRLデータベース 0805内に格納されている鍵出力依頼情報に含まれる端末 IDに該当する CRLエントリのものである。
次に、コンテンツ配布システム 0100の動作を説明する。
[0089] まず、インターネット 0108を介してサーバ 0101に接続されて 、る端末 (端末 A010 2〜端末 M0104)についての動作を説明する。以下、端末 AO 102を例として説明す る力 端末 B0103〜端末 M0104も同様の構成を備えているため、以下で説明する ものと同様の動作を行う。
図 11は、端末 A0102においてカード 0107を用いてサーバ 0101から権利を購入 し、サーバ 0101から取得したコンテンッを端末 AO 102で再生する場合のコンテンツ 配布システム 0100の動作を示すフローチャートである。ここで、端末 A0102はリボー クされており、サーバ 0101の CRLデータベース 1202には、端末 A0102の端末 ID を含む CRLエントリが存在していると仮定する。また、更新プログラムとそれに対応す る正規 PCR値も CRLデータベース 1202の該当する CRLエントリ内に格納されてい るとする。以下、図 11に示すフローチャートに従ってコンテンツ配布システム 0100の 動作ついて説明する。
[0090] 端末 A0102は、図 6で説明した端末起動フローに基づき端末の起動処理を行う(ス テツプ S1101)。その結果、端末 0102のセキュアモジュール 0207内の PCRが端末 0102で動作しているプログラムに依存する値となる。カード 0107は、ブートコード 08 03を用いてオペレーティングシステム 0809を RAM0802にローデイングし、その後 、オペレーティングシステム 0809が各種アプリケーションを起動することでカード 010 7を利用可能な状態にする。
[0091] 次〖こ端末 A0102は、図 3に示すように権利購入制御プログラム 0210を用い、権利 の購入処理をカード 0107を用いて行う(ステップ S1102)。カード 0107は、図 9に示 すように権利購入プログラムを動作させ権利購入処理を行う。
ここで、端末 A0102はリボークされているので、権利購入プログラム 0810は、サー ノ 0101から該当する更新プログラムと正規 PCR値を CRLデータベース 0805に格 納する(ステップ S 1103)。
[0092] 次に端末 A0102は、図 4に示すように再生制御プログラム 0211を動作させコンテ ンッの再生を行う。再生制御プログラム 0211がカード 0107に対し鍵の出力を依頼 すると図 10に示すように権利確認 '鍵生成プログラム 0811が動作する。ここで、権利 確認'鍵生成プログラム 0811は、端末の正当性確認 (S1003)を行う。ここで、端末 A0102はリボークされているので、端末の正当性確認は NGとなる(S1003で NG)。 そのため、カード 0107は、 CRLデータベース 0805内に端末 A0102の端末 IDを含 む CRLエントリがあり、また更新プログラムおよび正規 PCR値が存在するため、更新 プログラムおよび正規 PCR値を端末 A0102に出力する。再生制御プログラム 0211 は、受け取った更新プログラムおよび正規 PCR値をそれぞれプログラム格納部 0208 に格納し、端末 A0102を再起動する(ステップ S1104)。その後、端末 A0102は、ス テツプ S1101と同様に起動する。
[0093] 次に端末 A0102は、再生制御プログラム 0211を動作させ、再度、カード 0107の 権利確認 ·鍵生成プログラム 0811に鍵出力処理を依頼する。権利確認 ·鍵生成プロ グラム 0811のステップ S1003で端末の正当性の確認が行われる(ステップ S1105) 。もし、正しくプログラムが更新されているならば (ステップ S1105の OK)、端末 A01 02のセキュアモジュール 0207から取得した PCR値とカード 0107の CRLデータべ ース 0805に格納されている PCR値が一致することから、端末 A0102が正当である ことが確認され、鍵が出力される。
[0094] 一方、プログラムの更新処理を行う端末 A0102の再生制御プログラム 0211が悪意 のあるものから改竄され、プログラムの更新が行われなかった場合 (ステップ S 1105 の NG)、端末 A0102のセキュアモジュール 0207から取得した PCR値とカード 0107 の CRLデータベース 0805に格納されている PCR値は一致することなぐ端末 A010 2は正当でないと判断され、端末 A0102の処理は終了する。
[0095] プログラムの更新が正しく行われた場合 (ステップ S1105で OK)、カード 0107から コンテンツの暗号鍵が出力される(ステップ S1106)。
鍵が出力されると、再生制御プログラム 0211は、コンテンツ格納部 0206から暗号 ィ匕されたコンテンツを取り出し、鍵を用いて復号ィ匕した後に再生する (ステップ S110 7)。
[0096] このように、 PCR値を用いてプログラムが正しく更新されたことを確認しないとコンテ ンッ暗号鍵を出力しない構成とすることで、もし、正しくアップデートされていないなら ば、端末の正当性チェックが NGとなり、コンテンツを暗号ィ匕した鍵は端末に出力され ないので、コンテンツを正しく再生するためには、プログラムをアップデートすることが 必要となる。また、アップデートしたプログラムが改竄された場合であっても端末の正 当性チェックが NGとなり、コンテンツが再生できなくなるため、コンテンツの著作権を 適切に保護することができる。
[0097] さらに、本発明では、従来技術のようにプログラムアップデート手段全体を耐タンパ 実装することなぐプログラムのアップデートを強制することができる。つまり、上述の 処理を実現するためには、カード 0107とセキュアモジュール 0207のみを耐タンパ実 装していればよくなるため、耐タンパ実装すべき箇所を大きく削減することができる。 また、コンテンツを再生する権利を要求する際に、必ずカード 0107が端末の正当 性を確認し、 NGの場合に端末のプログラムをアップデートするので、コンテンツを再 生しょうとする限り、必ずアップデートが行われることとなる。これにより、リボークされ た端末のソフトウェアのアップデートを確実に行うことができる。なお、本実施の形態 では、コンテンツの再生時に上記の処理を行った力 これを記録時等に変更すること で、他のタイミングでもソフトウェアのアップデートを強制することができることは言うま でもない。
[0098] 続!、て、インターネット 0108と接続できな!/、端末(端末 N0105〜Z0106)につ!/、て の動作の説明を行う。以下では端末 N0105を例として説明するが、端末 Z0106も同 様の構成を備えているため、以下で説明するものと同様の動作を行う。
図 15は、インターネット 0108を介してサーバ 0101に接続することができない端末 N0105のプログラムを更新する場合のコンテンツ配布システム 0100の動作を示す フローチャートである。ここで、端末 N0105はリボークされており、サーバ 0101の CR Lデータベース 1202には、端末 N0105の端末 IDを含む CRLエントリが存在してい ると仮定する。また、更新プログラムとそれに対応する正規 PCR値も CRLデータべ一 ス 1202の該当する CRLエントリ内に格納されているとする。ここで、端末 N0105は、 インターネット 0108を介してサーバ 0101に接続することができないため、権利の購 入は端末 A0102を用いて行い、コンテンツとその権利はカード 0107を用いることで 端末 N0105で利用可能となる。以下、図 15に示すフローチャートに従ってコンテン ッ配布システム 0100の動作について説明する。
[0099] 端末 A0102は、端末起動処理、および権利購入処理をそれぞれ図 11のステップ S1101、およびステップ SI 102で説明したように行う。ここで、端末 N0105でもダウ ンロードしたコンテンツを再生できるようにするため、端末 A0102はカード 0107のコ ンテンッ格納部 0807にダウンロードしたコンテンツを格納する。
端末 N0105は、図 6で説明した端末起動フローに基づき端末の起動処理を行う( ステップ S1503)。その結果、端末 0105のセキュアモジュール 0707内の PCRが端 末 N0105で動作しているプログラムに依存する値となる。
[0100] 次に、端末 A0102で購入したコンテンツを端末 N0105で再生するためにカード 0 107を端末 A0102から端末 N0105に移動させる。端末 N0105は、再生制御プログ ラム 0711を動作させ、カード 0107に対し、コンテンツ鍵出力依頼を行う。カード 010 7は、図 10に示すような動作を行う権利確認'鍵生成プログラム 0811を動作させる。 ここで、権利確認'鍵生成プログラムは、ステップ S1001で端末 N0105の端末 IDを CRLデータベースに追加し、端末 N0105の端末 IDを含む CRLエントリを作成する( ステップ S 1504)。
[0101] 権利確認 '鍵生成プログラム 0811はその後、ステップ S1003で端末 N0105の正 当性確認を行う(ステップ S1505)。ここで、権利確認'鍵生成プログラム 0811は、 C RLデータベース 0805を参照し、端末 N0105の端末 IDを含む CRLエントリを発見 するが、正規 PCR値が存在しないため、端末 N0105のプログラム証明書 0712に格 納されている PCR値を用いて端末の正当性を確認する。端末 N0105のセキュアモ ジュール 0707の PCR値とプログラム証明書 0712の PCR値が一致しなければ (ステ ップ S1505で NG)、端末は正当で無いと判断し、権利確認 '鍵生成プログラムは処 理を終了する。
[0102] 端末の正当性が確認された場合 (ステップ S 1505で OK)、権利確認'鍵生成プロ グラム 0811は、権利確認処理 S 1004を行った後、コンテンツ格納部 0807に格納さ れて 、るコンテンツの権利内のコンテンッ暗号化鍵を復号化し、端末 NO 105に出力 する(ステップ S 1506)。
端末 N0105の再生制御プログラム 0711は、カード 0107から受け取ったコンテン ッ喑号鍵を用いて、カード 0107のコンテンツ格納部 0807に格納されているコンテン ッを復号化した後、再生する(ステップ S 1507)。なお、カード 0107のコンテンツ格納 部 0807から端末 N0105のコンテンツ格納部 0706にコンテンツを転送した後にコン テンッの再生を行っても良い。
[0103] 次に、カード 0107を用いて新たにコンテンツの権利を購入するために、カード 010 7は端末 A0102に挿入される。以下、端末 A0102においてコンテンツの権利を購入 するフローについて説明する。
端末 A0102は、図 3に示すように権利購入制御プログラム 0210を用い、権利の購 入処理をカード 0107を用いて行う(ステップ S1508)。カード 0107は、図 9に示すよ うに権利購入プログラムを動作させ権利購入処理を行う。権利購入の際にダウンロー ドされたコンテンツは、カード 0107のコンテンツ格納部 0807に格納される。 [0104] ここで、端末 N0105はリボークされているので、権利購入プログラム 0810は、サー ノ 0101から該当する更新プログラムと正規 PCR値を CRLデータベース 0805に格 納する(ステップ S1509)。カード 0107の CRLデータベース 0805には、端末 N010 5の端末 IDを含む CRLエントリが存在しているので、権利購入プログラム 0810の CR L更新処理 (ステップ S0903)において、端末 N1005の端末 IDでサーバ 0101の CR Lデータベース 1202が検索される。検索の結果、端末 NO 105の端末 IDを含む CR Lエントリが CRLデータベース 1202に存在するので、権利購入プログラム 0810は、 その CRLエントリ力も端末 N0105の更新プログラムと正規 PCR値をカード 0107の C RLデータベース 0805に存在する端末 N0105の端末 IDを含む CRLエントリに格納 する。
[0105] 次に、カード 0107は、端末 N0105でコンテンツを再生するために端末 N0105に 挿入される。以下、端末 N0105におけるコンテンツ再生動作について説明する。 端末 N0105は、図 11のステップ S1104において端末 A0102が行ったように端末 NO 105のプログラムを更新する(ステップ S 1510)。
端末 N0105は、図 11のステップ S1105にお!/、て端末 A0102が行ったようにカー ド 0107に対し鍵出力依頼を行うことで、カード 0107によって正当性の確認を行われ る(ステップ S1511)。正当性が確認された場合 (ステップ S1511で OK)、カード 010 7からコンテンツの暗号化鍵がカード 0107から端末 N0105に出力される。
[0106] 一方、プログラムの更新処理を行う端末 N0105の再生制御プログラム 0711が悪意 のあるものから改竄され、プログラムの更新が行われな力つた場合 (ステップ S 1511 の NG)、端末 N0105のセキュアモジュール 0707から取得した PCR値とカード 0107 の CRLデータベース 0805に格納されている PCR値は一致することなぐ端末 N010 5は正当でないと判断され、端末 N0105の処理は終了する。
[0107] プログラムの更新が正しく行われた場合 (ステップ S1511で OK)、カード 0107から コンテンッの喑号鍵が出力される(ステップ S 1512)。
端末 N0105の再生制御プログラム 0711は、カード 0107から受け取ったコンテン ッ喑号鍵を用いて、カード 0107のコンテンツ格納部 0807に格納されているコンテン ッを復号化した後、再生する(ステップ S1513)。なお、カード 0107のコンテンツ格納 部 0807から端末 N0105のコンテンツ格納部 0706にコンテンツを転送した後にコン テンッの再生を行っても良い。
[0108] これにより、インターネット 0108経由でサーバ 0101に接続できない端末 N0105の ような端末であっても、端末のリボークおよびプログラムの更新が可能となる。
また、一度カード 0107が使用された端末に対応するリボケーシヨンリストのみカード 0107に取得するため、カード 0107の少ないリソースでもリボケーシヨンリストが取り扱 える。
[0109] また、端末がネットワーク接続されている場合の動作説明で述べたものと同様の効 果が得られることは言うまでもな 、。
(変形例)
なお、本発明を上記実施の形態に基づいて説明してきた力 本発明は、上記の実 施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる
[0110] (1) 上述した実施の形態では、更新対象はソフトウェアであった力 ハードウェア の構成情報を更新するシステムに適用してもよい。このようなハードウェアの具体的な 例としてはリコンフィギュアラブルプロセッサなどが考えられる。
(2) 上述した実施の形態では、カード、端末、サーバのいずれを制御するプロダラ ムもオペレーティングシステムの上で動作して 、たが、これに限られるものではな!/、。 アプリケーションプログラム等が直接プロセッサで処理できる言語で書かれている場 合には、必ずしもオペレーティングシステムはなくてもよい。
[0111] (3) PCRはハッシュ値であるとした力 これに限られるものではない。改竄検出に 用いることのできる値であれば、どのようなものであってもよい。例えば、プログラムの 一部を暗号ィ匕した値であったり、プログラムのチェックサム等であってもよ 、。
(4) 上述した実施の形態では、カード 0107は、鍵の要求があった場合に端末がリ ボークされている力否かを確認するとした力 これに限られるものではない。鍵情報以 外にも、不正な端末に渡すと不利益のある情報であれば、他の情報であってもよい。 さらに、端末が行う処理もコンテンツの再生に限るものではない。例えば、端末は、個 人情報を取り扱うデータベースの処理を行うとしてもよい。この場合、端末がリボーク されて ヽる力否かを確認するタイミングは、個人情報の要求が端末からあった場合な どになる。
[0112] (5) 上述した実施の形態では、カード 0107が端末がリボークされている力否かを 確認するとした力 これに限られるものではない。例えば、サーバが、権利情報を提 供する際に、端末がリボークされているか否かを確認しても良い。この場合、端末は、 権利情報の要求と共に PCRを送信する。また、サーバは、正規 PCRを記憶しており 、端末力 送られてきた PCRと正規 PCRとが不一致の場合 (すなわち、 NGの場合) に端末のプログラムをアップデートさせる。なお、詳細な処理については、端末とカー ドとの間でのアップデートの処理と同様であるので省略する。
[0113] (6) 上述した実施の形態では、プログラムがアップデートされた後、端末は再起動 されるとした力 これに限られるものではない。再起動を必要としない小さなアップデ ートであれば、そのまま処理を続行してもよい。すなわち、アップデートが完了した後 、再起動を行わずに、鍵情報が端末に出力され、コンテンツの復号及び再生処理が 行われるとしてもよ 、。
[0114] (7)上記の各装置は、具体的には、マイクロプロセッサ、 ROM, RAM,ハードディ スクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュー タシステムである。前記 RAMまたはハードディスクユニットには、コンピュータプロダラ ムが記憶されている。前記マイクロプロセッサ力 前記コンピュータプログラムにしたが つて動作することにより、各装置は、その機能を達成する。ここでコンピュータプロダラ ムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが 複数個組み合わされて構成されたものである。
[0115] (8)上記の各装置を構成する構成要素の一部または全部は、 1個のシステム LSI ( Large Scale Integration:大規模集積回路)から構成されているとしてもよい。シ ステム LSIは、複数の構成部を 1個のチップ上に集積して製造された超多機能 LSIで あり、具体的には、マイクロプロセッサ、 ROM、 RAMなどを含んで構成されるコンビ ユータシステムである。前記 RAMには、コンピュータプログラムが記憶されている。前 記マイクロプロセッサ力 S、前記コンピュータプログラムにしたがって動作することにより
、システム LSIは、その機能を達成する。 [0116] また、上記の各装置を構成する構成要素の各部は、個別に 1チップィ匕されていても 良!、し、一部又は全てを含むように 1チップィ匕されてもょ 、。
また、ここでは、システム LSIとした力 集積度の違いにより、 IC、 LSI,スーパー LS I、ウルトラ LSIと呼称されることもある。また、集積回路化の手法は LSIに限るもので はなぐ専用回路又は汎用プロセッサで実現してもよい。 LSI製造後に、プログラムす ることが可能な FPGA (Field Programmable Gate Array)や、 LSI内部の回路 セルの接続や設定を再構成可能なリコンフィギユラブル'プロセッサーを利用しても良 い。
[0117] さらには、半導体技術の進歩又は派生する別技術により LSIに置き換わる集積回 路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積ィ匕を行って もよい。バイオ技術の適応等が可能性としてありえる。
(9)上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能 な ICカードまたは単体のモジュール力も構成されて 、るとしてもよ 、。前記 ICカード または前記モジュールは、マイクロプロセッサ、 ROM, RAMなどから構成されるコン ピュータシステムである。前記 ICカードまたは前記モジュールは、上記の超多機能 L SIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動 作することにより、前記 ICカードまたは前記モジュールは、その機能を達成する。この ICカードまたはこのモジュールは、耐タンパ性を有するとしてもよ!/、。
[0118] (10)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンビュ ータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプ ログラム力もなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号をコンビユー タ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、 CD— R OM、 MO、 DVD, DVD-ROM, DVD -RAM, BD (Blu— ray Disc)、半導体 メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前 記デジタル信号であるとしてもよ 、。
[0119] また、本発明は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信 回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放 送等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、 前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは 、前記コンピュータプログラムにしたがって動作するとしてもよい。
[0120] また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送する ことにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経 由して移送すること〖こより、独立した他のコンピュータシステムにより実施するとしても よい。
(11)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。 (まとめ)
(1)本発明は、端末と端末から分離可能なカードによって構成される情報処理装置 であって、端末は、端末で動作しているプログラムの特徴を測定し、保存する端末測 定手段と、端末で動作するプログラムを格納するプログラム格納手段と、プログラム格 納手段に格納されて 、るプログラムを更新するプログラム更新手段力 構成され、力 ードは、端末の更新プログラムを格納する更新プログラム格納手段と、端末測定手段 力 得た情報を用い端末の正当性を確認する正当性確認手段と、正当性確認手段 により端末が正当であると判断された場合のみ、カード内に保持されている秘密情報 を端末に提供する秘密情報提供手段と、正当性確認手段により端末が正当でないと 判断された場合のみ、更新プログラム格納手段に格納された更新プログラムをプログ ラム更新手段に出力するプログラム出力手段力も構成されることを特徴とする。
[0121] また、本発明のデータ処理装置において、カードはさらに、一度接続された端末の 端末 IDを格納する端末 ID格納手段と、接続されて!ヽる端末がネットワークに接続で きる場合、端末 ID格納手段に格納されて 、る端末 IDに関連付けられて 、る更新プロ グラムをサーバから取得し、更新プログラム格納手段に格納する更新プログラム取得 手段と、更新プログラム取得手段で取得した更新プログラムに関連付けられて 、る端 末の正当性確認情報を格納する正当性確認情報格納手段と、接続されて!、る端末 がネットワークに接続できる場合、更新プログラム取得手段で取得した更新プロダラ ムに関連付けられている正当性確認情報をサーノ から取得し、正当性確認情報格 納手段に格納する正当性確認情報取得手段を具備し、正当性確認手段が正当性 確認情報格納手段より取得した正当性確認情報を用いて、端末の正当性を確認す ることを特徴とする。
[0122] アップデートモジュール自体の信頼性に依存しな!、、プログラムのアップデート方 法を提供することが可能となる。
さらに、リボークされた端末を動作不能にすることなぐ不正な端末をプログラムのァ ップデートにより正当な端末にすることができるので、コンテンツの再生を継続できる
。リボークして動作不能にすることによるユーザへの被害を防止しつつ、コンテンツ配 布システムの健全性を保つことが可能となる。
[0123] また、カード内部の機構によってプログラムをアップデートしているので、インターネ ットに接続できない端末でもプログラムのアップデートが可能となる。
(2)また、本発明に係る情報記録装置は、プログラムによって動作する情報処理装 置とともに用いられ、情報処理装置により利用される情報を記録している情報記録装 置であって、情報処理装置から情報へのアクセス要求を受け付ける受付手段と、情 報処理装置を動作させる更新プログラムを格納する更新プログラム格納手段と、ァク セス要求が受け付けられた場合に、アクセス要求を行った情報処理装置を動作させ ているプログラムの特徴情報を取得する取得手段と、特徴情報に基づいて、情報処 理装置を動作させて 、るプログラムの正当性を確認する正当性確認手段と、プロダラ ムが正当でないと確認された場合に、情報処理装置に対して更新プログラムを出力 する出力手段とを備えることを特徴とする。
[0124] この構成によれば、情報記録装置に対して情報を要求している情報処理装置を動 作させて!/ヽるプログラムが正当なものでな ヽと確認された場合、そのプログラムが更 新プログラムにアップデートされる。したがって、情報を利用しょうとする装置に対して 、プログラムのアップデートを強制することができる。
(3)本発明に係る情報記録装置は、出力手段は、さらに、プログラムが正当であると 確認された場合にのみ、情報を情報処理装置に出力することを特徴とする。
[0125] この構成によれば、情報処理装置は、プログラムが正当であると判定されない限り、 要求している情報を得ることができない。このことから、アクセス要求を出している情報 を得るためには、情報処理装置はプログラムのアップデートを行わざるを得なくなるの で、プログラムのアップデートを強制することができる。
(4)本発明に係る情報記録装置は、さらに、情報処理装置を動作させる正当なプロ グラムの特徴情報である正規特徴情報を格納する正規特徴情報格納手段を備え、 正当性確認手段は、情報処理装置力 受信した特徴情報と正規特徴情報とを比較 することにより、プログラムが正当であるか否かを確認することを特徴とする。
[0126] この構成によれば、情報記録装置は、情報処理装置のプログラムが正当であるか 否かを特徴情報に基づ 、て確認することができる。
(5)本発明に係る情報記録装置は、受信手段は、さらに、アクセス要求と共に情報 処理装置の識別情報を取得し、更新プログラム格納手段は、過去にアクセス要求を 行った 1以上の情報処理装置の識別情報と、情報処理装置のそれぞれに向けた更 新プログラムとを対応付けて格納し、出力手段は、アクセス要求とともに受信した識別 情報に対応する情報処理装置向けの更新プログラムを出力することを特徴とする。
[0127] この構成によれば、情報記録装置が複数の情報処理装置で共有される場合でも、 各情報処理装置に対して適切な更新プログラムを出力することができる。
(6)本発明に係る情報記録装置は、更新プログラム格納手段は、さらに、新たな情 報処理装置からのアクセス要求が受け付けられると、新たな情報処理装置の識別情 報を格納内容に追加することを特徴とする。
[0128] この構成によれば、情報記録装置は、過去にアクセス要求を受け付けた情報処理 装置の全てについて、更新プログラムの管理を行うことができる。
(7)本発明に係る情報記録装置は、さらに、更新プログラムを提供するサーバに対 して、更新プログラム格納手段が格納して 、る情報処理装置の識別情報を送信する 送信手段と、サーバから送信した識別情報に対応する情報処理装置用の更新プロ グラムを取得する取得手段とを備え、更新プログラム格納手段は、取得した更新プロ グラムを識別情報と対応付けて記録することを特徴とする。
[0129] この構成によれば、情報記録装置は、 自身が管理している情報処理装置について 、更新プログラムのバージョンアップがあった場合、バージョンアップ後の更新プログ ラムを取得して記録することができる。 (8)本発明に係る情報記録装置は、可搬型の記録媒体であることを特徴とする。 この構成によれば、可搬型の記録媒体内部の機構によって、情報処理装置内のプ ログラムをアップデートして 、るので、インターネットに接続できな 、情報処理装置に 対してもプログラムのアップデートを強制することができる。
[0130] (9)また、本発明に係る情報処理装置は、プログラムによって動作し、プログラムの 特徴情報によりプログラムの正当性を確認する情報記録装置と共に用いられる情報 処理装置であって、プログラムの特徴情報を算出する特徴情報算出手段と、情報記 録装置が記録する情報へのアクセス要求を行う際に、算出した特徴情報を情報記録 装置へ送信する送信手段と、情報記録装置による確認に応じて、情報もしくは情報 処理装置用の更新プログラムを受信する受信手段と更新プログラムを受信した場合 、受信した更新プログラムによりプログラムを更新する更新手段とを備えることを特徴 とする。
[0131] この構成によれば、情報処理装置は、情報記録媒体に情報の要求を行う際に、自 身を動作させて 、るプログラムが不正なものであれば、アップデートすることができる
(10)本発明に係る情報記録装置は、特徴情報算出手段は、耐タンパ化により保護 されていることを特徴とする。
この構成によれば、不正解析者による特徴情報の改ざんを防止できるので、情報 処理装置を動作させて 、るプログラムが不正なものである場合に、より確実に更新プ ログラムへのアップデートを行わせることができる。また、特徴情報算出手段さえ保護 していれば、上述した不正を防止できるので、装置全体を耐タンパ化する場合に比 ベて、低コストでプログラムのアップデートを強制することができる。
[0132] (11)また、本発明を、上述した特徴を持つ情報記録装置および情報処理装置から 構成されるシステム、プログラムアップデート方法、プログラム、および集積回路として 実現した場合もそれぞれ同様の効果を発揮することができる。
(その他の変形例)
(A— 1)第 1の変形例
上記実施の形態では、カードによる正当性の確認(図 10のステップ S1003)が OK である場合に、カードは、コンテンツを復号する鍵を出力した力 これに限定されない
[0133] 正当性の確認が OKである場合に、カードは、端末固有のデバイス鍵を更新するた めに新 U、デバイス鍵を出力してもよ!/、。
ここで、本変形例では、情報の暗号化方法として、秘密暗号方式を用いる。また、 デバイス鍵とは各端末に固有の鍵であり、ここではコンテンツを暗号ィ匕及び復号する ための鍵 (以下、コンテンツ鍵という。)を暗号化及び復号するために用いる。
[0134] 以下、この場合のシステムの構成及び、各装置の構成について説明する。
デバイス鍵配布システム 2000は、図 16にて示すように、端末 (証明装置) 2001、 カード (検証装置) 2002、ネットワーク接続端末 2003及びサーバ 2004から構成され ている。
端末 2001は、ネットワークとは非接続の端末であり、上記実施の形態にて示す端 末 N0105、 · · ·、端末 Z0106に相当する。端末 2001は、デバイス鍵と、暗号化され たコンテンツ鍵を復号するためのプログラム(以下、コンテンツ鍵復号プログラム)とを 有している。
[0135] カード 2002は、端末に装着されると、当該端末を識別するための端末 IDを取得し 、記憶する。ここでは、カード 2002は、端末 2001を識別するための端末 IDを予め記 憶している。つまり、カード 2002は、過去に一度、端末 2001に装着されたものとする 。カード 2002は、上記実施の形態にて示す CRL更新時にて、予め記憶している端 末 IDをネットワーク接続端末 2003へ出力する。
[0136] ネットワーク接続端末 2003は、端末 IDをサーバ 2004へネットワークを介して送信 する。ネットワーク接続端末 2003は、サーバ 2004から、コンテンツ鍵復号プログラム に対する更新プログラム、正当性確認情報 (上記実施の形態における正規の PCR値 )、及び送信した端末 IDにより個別暗号化された正規のデバイス鍵 (以下、秘密情報 若しくは個別暗号化秘密情報という。)を受け取り、受け取った各情報をカード 2002 へ出力する。
[0137] サーバ 2004は、端末 IDをネットワーク接続端末 2003から受け取ると、更新プログ ラム、正当性確認情報、及び受信した端末 IDに基づく秘密情報を送信する。 ここで、正規のデバイス鍵の個別暗号ィ匕につ 、て説明する。
サーバ 2004は、図 17にて示すように、端末 IDと端末共通鍵とから変換された値( 以下、暗号用変換値)を算出する (ステップ S2000)。端末 IDは各端末に固有の識 別情報であり、端末共通鍵は端末に共通の鍵である。ここで、暗号用変換値の算出 方法は、例えば、端末 IDに端末共通鍵を連結させて、その結果に一方向性関数を 施すことで得られる。また、別の算出方法として、端末共通鍵を暗号化鍵として端末 I Dを秘密鍵暗号ィ匕方式にて暗号ィ匕してもよい。いずれの場合でも、暗号用変換値は 、端末 IDに依存する値となる。
[0138] サーバ 2004は、算出した暗号用変換値を暗号化鍵として、秘密情報 (デバイス鍵) を秘密鍵暗号化方式にて暗号化して個別暗号化秘密情報を生成する (ステップ S20 05)。
(A— 1 1)端末 2001
端末 2001は、図 16にて示すように、 ID格納部 2010、プログラム格納部 2011、端 末測定部 2012、プログラム更新部 2013、及び秘密情報復号部 2014から構成され ている。
[0139] なお、端末 2001の構成要素の一部または全部は、 1個のシステム LSI (Large Sc ale Integration:大規模集積回路)から構成されているものとし、システム LSIには 端末 2001と同種の端末と共通の鍵 (上記の端末共通鍵)が記憶されている。ここで、 端末共通鍵は、耐タンパ性により秘匿性を有して 、る。
(A— 1— 1— 1) ID格納部 2010、プログラム格納部 2011
ID格納部 2010は、当該端末の端末 ID2015を予め記憶している。
[0140] ここで、 ID格納部 2010は、耐タンパ性を有しており、端末 ID2015の改竄はできな い。
プログラム格納部 2011は、上記実施の形態におけるプログラム格納部 0708に相 当する。プログラム格納部 2011は、上記実施の形態におけるプログラム格納部 070 8が記憶して 、る各プログラムに加えて、個別暗号ィ匕された正規のデバイス鍵を復号 するためのプログラム(以下、秘密情報復号プログラム)、及びコンテンツ鍵復号プロ グラムを予め記憶している。 [0141] (A— 1— 1— 2)端末測定部 2012
端末測定部 2012は、上記実施の形態におけるセキュアモジュール 0707、および ブートコード 0703、オペレーティングシステム 0709、再生制御プログラム 0711のセ キュアモジュール 0707制御部分に相当する。
端末測定部 2012は、コンテンツ鍵復号プログラムの PCR値を測定 (算出)し、測定 した PCR値をカード 2002へ出力する。
[0142] なお、測定のタイミングは、上記実施の形態と同様に、コンテンツ鍵復号プログラム のロード時であり、出力のタイミングは、コンテンツの再生時である。
測定方法については、上記実施の形態と同様であるので、ここでの説明は省略す る。
(A- 1 - 1 - 3)プログラム更新部 2013
プログラム更新部 2013は、上記実施の形態における図 4にて示すステップ S0407 及び S0408に相当する処理を行う。
[0143] プログラム更新部 2013は、カード 2002からコンテンツ鍵復号プログラムに対する 更新プログラムを受け取ると、受け取った更新プログラムを用いてコンテンツ鍵復号 プログラムを更新する。
プログラム更新部 2013は、コンテンツ鍵復号プログラムの更新後、ステップ S0408 と同様に、システムのリセットを端末 2001のオペレーティングシステムに依頼する。
[0144] (A- 1 - 1 -4)秘密情報復号部 2014
秘密情報復号部 2014は、プログラム格納部 2011にて格納されて 、る秘密情報復 号プログラムが起動され、実行されることで実現される。
秘密情報復号部 2014は、カード 2002から当該端末に対応する個別暗号ィ匕秘密 情報を取得する。
[0145] 秘密情報復号部 2014は、 ID格納部 2010から端末 IDを、システム LSIから端末共 通鍵を、それぞれ取得する。
秘密情報復号部 2014は、取得した端末 IDと端末共通鍵とを用いて、サーバ 2004 による暗号用変換値の算出方法と同様の方法にて、復号用変換値を算出する。 秘密情報復号部 2014は、算出した復号用変換値を用いて、個別暗号化秘密情報 を復号し、デバイス鍵を生成する。秘密情報復号部 2014は、現在記憶しているデバ イス鍵から、生成したデバイス鍵へと更新する。
[0146] なお、端末 2001は、更新対象のデバイス鍵が含まれる個別暗号ィ匕秘密情報を力 一ドカも受け取った後に格納しておき、新しいデバイス鍵が必要となった時点で前述 した方法を用いて復号ィ匕してもょ ヽ。
(A— 1— 2)カード 2002
カード 2002は、図 16にて示すように、秘密情報提供部 2020、端末 ID格納部 202 1、正当性確認情報格納部 2022、更新プログラム格納部 2023、秘密情報取得部 2 024、正当性確認情報取得部 2025、更新プログラム取得部 2026、正当性確認部 2 027、及びプログラム出力部 2028から構成されている。
[0147] (A—1— 2—1)秘密情報提供部 2020
秘密情報提供部 2020は、図 16にて示すように、秘密情報蓄積部 2029及びスイツ チ 2030を有している。
秘密情報蓄積部 2029は、上記実施の形態にて示すコンテンツ格納部 0807に相 当している。秘密情報蓄積部 2029は、ネットワーク接続端末 2003を介してサーバ 2 004から受け取った個別暗号化秘密情報を蓄積している。ここでは、秘密情報蓄積 部 2029は、端末 2001の端末 IDを用いて暗号ィ匕された秘密情報を蓄積しているも のとする。
[0148] スィッチ 2030は、上記実施の形態にて示す図 10のステップ S1005におけるコンテ ンッの鍵を出力する動作に相当し、正当性確認部 2027の制御により動作する。端末 が正当であると判断される場合には、スィッチ 2030は、端末が個別暗号化秘密情報 を取得できるように、端末と秘密情報蓄積部 2029とを接続する。端末が正当でない と判断される場合には、スィッチ 2030は、端末と秘密情報蓄積部 2029とを接続しな い。
[0149] 秘密情報提供部 2020は、端末 2001と秘密情報蓄積部 2029とが接続されると、 端末 2001に対応する個別暗号ィ匕秘密情報を出力するとともに、端末 2001のォペレ 一ティングシステムに対して秘密情報復号プログラムの起動を要求する。
ここで、スィッチ 2030による接続 '非接続の動作は、正当性確認部 2027にて制御 される。なお、スィッチ 2030は、正当性確認部 2027の確認結果に基づいて、秘密 情報提供部 2020にて制御してもよ 、。
[0150] (A— 1 2— 2)端末 ID格納部 2021
端末 ID格納部 2021は、上記実施の形態にて示す CRLデータベース 0805の端末
IDの格納部位に相当する。
端末 ID格納部 2021は、過去に装着された端末が有する端末 IDを記憶している。 ここでは、端末 2001の端末 IDを記憶している。
[0151] また、カード 2002がネットワーク接続端末 2003に装着されている場合には、ネット ワーク接続端末 2003は、端末 ID格納部 2021にて格納されて 、る端末 IDを取得す る。
(A- 1 2— 3)正当性確認情報格納部 2022
正当性確認情報格納部 2022は、上記実施の形態における CRLデータベース 08 05の正当な PCR値の格納部位に相当する。
[0152] 正当性確認情報格納部 2022は、ネットワーク接続端末 2003を介してサーバ 200 4から受け取った正当性確認情報を、端末 ID格納部 2021にて記憶されて ヽる端末 I Dと対応付けて蓄積している。ここでは、正当性確認情報格納部 2022は、コンテンツ 鍵復号プログラムに対する正当性確認情報 (PCR値)を、端末 2001の端末 ID2015 と対応付けて記憶して 、るものとする。
[0153] (A— 1 - 2-4)更新プログラム格納部 2023
更新プログラム格納部 2023は、上記実施の形態における CRLデータベース 0805 の更新プログラムの格納部位に相当する。
更新プログラム格納部 2023は、ネットワーク接続端末 2003を介してサーバ 2004 力も受け取った更新プログラムを、端末 ID格納部 2021にて記憶されて 、る端末 IDと 対応付けて蓄積している。ここでは、更新プログラム格納部 2023は、コンテンツ鍵復 号プログラムに対する更新プログラムを、端末 2001の端末 ID2015と対応付けて記 憶しているものとする。
[0154] なお、上記にて示す CRLデータベース 0805は、本変形例にて示す端末 ID格納 部 2021、正当性確認情報格納部 2022及び更新プログラム格納部 2023から構成さ れていることが分かる。
(A- 1 - 2- 5)秘密情報取得部 2024
秘密情報取得部 2024は、上記実施の形態にて示す図 9における権利購入処理に 相当する処理を行う。
[0155] 秘密情報取得部 2024は、ネットワーク接続端末 2003を介してサーバ 2004から個 別暗号化秘密情報を受け取ると、受け取った個別暗号化秘密情報を秘密情報蓄積 部 2029へ格納する。
ここで、秘密情報取得部 2024による個別暗号化秘密情報の受け取り、及び格納の タイミングは、例えば、コンテンツの購入時である。
[0156] (A- 1— 2— 6)正当性確認情報取得部 2025
正当性確認情報取得部 2025は、上記実施の形態にて示す図 9における CRL更 新処理、特に CRLデータベースの正規の PCR値の更新に相当する処理を行う。 正当性確認情報取得部 2025は、ネットワーク接続端末 2003を介してサーバ 200 4から正当性確認情報を受け取ると、受け取った正当性確認情報を正当性確認情報 格納部 2022へ格納する。
[0157] (A— 1 - 2- 7)更新プログラム取得部 2026
更新プログラム取得部 2026は、上記実施の形態にて示す図 9における CRL更新 処理、特に CRLデータベースの更新プログラムの更新に相当する処理を行う。 更新プログラム取得部 2026は、ネットワーク接続端末 2003を介してサーバ 2004 力 更新プログラムを受け取ると、受け取った更新プログラムを更新プログラム格納部 2023へ格納する。
[0158] (A— 1 2— 8)正当性確認部 2027
正当性確認部 2027は、上記実施の形態にて示す図 10における S 1003の処理に 相当する処理を行う。
正当性確認部 2027は、端末 2001からコンテンツ鍵復号プログラムの PCR値を受 け取ると、端末 2001と対応付けられたコンテンッ鍵復号プログラムの正当性確認情 報を、正当性確認情報格納部 2022から取得する。
[0159] 正当性確認部 2027は、受け取った PCR値と正当性確認情報とがー致するカゝ否か を判断する。
一致すると判断する場合には、正当性確認部 2027は、上述したように、端末と秘 密情報蓄積部 2029とを接続するようにスィッチ 2030を閉じる。
一致しないと判断する場合には、正当性確認部 2027は、一致しない旨を示す NG 情報をプログラム出力部 2028へ出力する。
[0160] なお、本変形例では、正当性確認部 2027はステップ S1003のみに相当するとした 力 これに限定されない。
正当性確認部 2027はステップ S1002及び S1003に相当するとしてもよい。この場 合、正当性確認部 2027は、上記実施の形態と同様に、 PCR値の署名検証を行い、 署名検証が OKである場合に、端末 2001から受け取った PCR値と、正当性確認情 報とを比較する。
[0161] (A— 1 2— 9)プログラム出力部 2028
プログラム出力部 2028は、正当性確認部 2027から NG情報を受け取ると、端末 2 001に対するコンテンツ鍵復号プログラムの更新プログラムを更新プログラム格納部 2023力も取得する。
プログラム出力部 2028は、取得した更新プログラムを端末 2001のプログラム更新 部 2013へ出力する。
[0162] (A— 1— 3)ネットワーク接続端末 2003
ネットワーク接続端末 2003は、自身に装着されたカード 2002の端末 ID格納部 20 21から端末 2001の端末 IDを取得すると、取得した端末 IDを、ネットワークを介して サーバ 2004へ出力する。
その後、ネットワーク接続端末 2003は、サーバ 2004からネットワークを介して、出 力した端末 IDと対応付けられた更新プログラム、正当性確認情報、及び個別暗号ィ匕 秘密情報を受け取り、受け取った各情報をカード 2002へ格納する。
[0163] (A— 1 4)サーバ 2004
サーバ 2004は、上記実施の形態と同様に、 CRLデータベースを有しており、端末 毎に配布すべき更新プログラム及び正規の PCR値 (正当性確認情報)を管理して!/ヽ る。なお、更新プログラム及び正当性確認情報は、端末の機種毎に異なるとする。す なわち、更新プログラム及び正当性確認情報は、同一の端末機種同士であれば共 通であり、異なる端末の機種同士では異なるものとする。
[0164] また、サーバ 2004は、端末共通鍵を予め記憶し、管理して!/、る。
サーバ 2004は、複数の秘密情報 (デバイス鍵)を予め生成しており、生成した秘密 情報を記憶'管理している。サーバ 2004は、端末に一度配布した秘密情報を再度 配布しないように管理している。なお、サーバ 2004が管理している複数の秘密情報 それぞれは、互いに異なる。さらに、サーバ 2004は、管理している全ての秘密情報 を配布した場合、これまでに管理して!/、た複数の秘密情報それぞれとは異なる複数 の秘密情報を生成する。上述したように、再度生成された複数の秘密情報それぞれ 【こつ ヽてち、互 ヽ【こ異なる。
[0165] サーバ 2004は、ネットワーク接続端末 2003からネットワークを介して、端末 IDを受 け取ると、受け取った端末 IDから機種を特定し、特定した機種に対応する機種共通 情報 (更新プログラム、正当性確認情報、及び端末共通鍵)を取得する。
サーバ 2004は、取得した端末共通鍵と、受け取った端末 IDとを用いて、暗号用変 換値を生成する。
[0166] サーバ 2004は、予め記憶している複数の秘密情報 (デバイス鍵)のうち 1つの秘密 情報 (デバイス鍵)を取得し、暗号用変換値を暗号鍵として、取得した秘密情報を暗 号化して個別暗号化秘密情報を生成する。
サーバ 2004は、端末個別データー式 (生成した個別暗号化秘密情報と、取得した 更新プログラム及び正当性確認情報)を、ネットワークを介してネットワーク接続端末 2003へ出力する。
[0167] (A- 1 - 5)デバイス鍵配布システム 2000の動作
デバイス鍵配布システム 2000の動作について、図 18にて示す流れ図を用いて説 明する。
カード 2002は、端末 2001に装着されると、端末 2001の端末 IDを取得し、取得し た端末 IDを端末 ID格納部 2021に格納する(ステップ S 2010)。
[0168] カード 2002は、ネットワーク接続端末 2003に装着され、且つデバイス鍵をサーバ 2004から取得する時において、端末 ID格納部 2021に格納された端末 2001の端 末 IDを、ネットワーク接続端末 2003を介してサーバ 2004へ送信する (ステップ S20 15)。
サーバ 2004は、カード 2002からネットワーク接続端末 2003を介して端末 2001の 端末 IDを受信すると、受信した端末 IDから機種を特定し、特定した機種に対応する 機種共通情報 (更新プログラム、正当性確認情報、及び端末共通鍵)を取得する (ス テツプ S2020)。
[0169] サーバ 2004は、秘密情報 (デバイス鍵)に個別暗号化処理を施して個別暗号化秘 密情報を生成する (ステップ S2025)。具体的には、サーバ 2004は、取得した端末 共通鍵と、受け取った端末 IDとを用いて、暗号用変換値を生成する。サーバ 2004 は、秘密情報 (デバイス鍵)を生成し、暗号用変換値を暗号鍵として、秘密情報を暗 号化して個別暗号化秘密情報を生成する。
[0170] サーバ 2004は、端末個別データー式 (生成した個別暗号化秘密情報と、取得した 更新プログラム及び正当性確認情報)を、ネットワークを介してネットワーク接続端末 2003へ出力する(ステップ S 2030)。
カード 2002は、サーバ 2004からネットワーク接続端末 2003を介して、端末個別 データー式を受信すると、各情報 (データ)を格納する (ステップ S2035)、具体的に は、カード 2002の秘密情報取得部 2024は、個別暗号化秘密情報を受信し、受信し た個別暗号化秘密情報を秘密情報蓄積部 2029へ格納する。正当性確認情報取得 部 2025は、正当性確認情報を受信すると、受信した正当性確認情報を正当性確認 情報格納部 2022へ格納する。更新プログラム取得部 2026は、更新プログラムを受 信すると、受信した更新プログラムを更新プログラム格納部 2023へ格納する。
[0171] カード 2002は、更新プログラムを端末 2001へ出力する(ステップ S2040)。
端末 2001は、更新プログラムをインストールする(ステップ S2045)。
カード 2002の正当性確認部 2027は、端末 2001から秘密情報 (デバイス鍵)出力 要求を受け取ると、端末 2001の正当性を判断する (ステップ S2050)。秘密情報出 力要求は、上記実施の形態における図 4にて示すステップ S0402に相当し、コンテ ンッ鍵復号プログラムの PCR値を含む。ここでは、カード 2002の正当性確認部 202 7は、サーバ 2004から受け取った最新の更新プログラムに対する正当性確認情報と 、端末 2001から受け取った秘密情報出力要求に含まれる PCR値との比較を行う。
[0172] 正当でないと判断する場合 (ステップ S2050における「NG」)、カード 2002は、更 新プログラムを端末 2001へ出力する (ステップ S 2055)。具体的には、正当性確認 部 2027は、 NG情報をプログラム出力部 2028へ出力する。プログラム出力部 2028 は、正当性確認部 2027から NG情報を受け取ると、端末 2001に対するコンテンツ鍵 復号プログラムの更新プログラムを更新プログラム格納部 2023から取得し、取得した 更新プログラムを端末 2001のプログラム更新部 2013へ出力する。なお、ここではコ ンテンッ鍵復号プログラムのみを更新対象としている力 端末 2001に搭載されるプロ グラム全体を更新対象としてもよい。以下でも、コンテンツ復号プログラムを更新対象 として説明をするが、プログラム全体を更新対象としてもょ ヽ。
[0173] 正当であると判断する場合 (ステップ S2050における「OK」)、カード 2002は個別 暗号化秘密情報を端末 2001へ出力する (ステップ S2060)。具体的には、正当性確 認部 2027の制御により秘密情報蓄積部 2029によって更新プログラムが正しくインス トールされたと確認され、秘密情報を出力可能である旨が通知されると、秘密情報提 供部 2020は端末 2001に対応する個別暗号ィ匕秘密情報を出力する。
[0174] 端末 2001のプログラム更新部 2013は、カード 2002から更新プログラムを受け取 ると、受け取った更新プログラムのインストールを行う(ステップ S2065)。具体的には 、プログラム更新部 2013は、カード 2002からコンテンツ鍵復号プログラムに対する 更新プログラムを受け取ると、受け取った更新プログラムを用いてコンテンツ鍵復号 プログラムを更新する。プログラム更新部 2013は、コンテンツ鍵復号プログラムの更 新後、ステップ S0408と同様に、システムのリセットを端末 2001のオペレーティング システムに依頼する。
[0175] 端末 2001の秘密情報復号部 2014は、個別暗号化秘密情報を、カード 2002から 受け取ると、個別暗号化秘密情報のインストールを行う(ステップ S2070)。具体的に は、秘密情報復号部 2014は、カード 2002から当該端末に対応する個別暗号ィ匕秘 密情報を取得する。秘密情報復号部 2014は、 ID格納部 2010から端末 IDを、シス テム LSIから端末共通鍵を、それぞれ取得する。秘密情報復号部 2014は、取得した 端末 IDと端末共通鍵とを用いて、サーバ 2004による暗号用変換値の算出方法と同 様の方法にて、復号用変換値を算出する。秘密情報復号部 2014は、算出した復号 用変換値を用いて、個別暗号化秘密情報を復号してデバイス鍵を生成し、現在記憶 して 、るデバイス鍵から、生成したデバイス鍵へと更新する。
[0176] 以降、例えば、端末 2001が図 4にて示すステップ S0403以降の動作を行い、カー ド 2002が図 10にて示す権利確認'鍵生成プログラムを実行する。
以下、各ステップが実行されるタイミングの一例を示す。
ステップ S2010の動作は、カード 2002が端末 2001に装着された場合に実行され る。
[0177] ステップ S2015力らステップ S2035までの動作は、カード 2002がネットワーク接続 端末 2003に装着された場合に実行される。
ステップ S2040力ら S2045までの動作は、サービスマンにより端末 2001のプログ ラムのアップデートを行う場合に実行される。
ステップ S2050以降の動作は、端末 2001の利用者によりコンテンツの再生の要求 があった場合に実行される。
[0178] (A— 1 6)その他の変形例
なお、本発明を上記第 1の変形例に基づいて説明してきたが、本発明は、上記第 1 の変形例に限定されないのは、もちろんである。以下のような場合も本発明に含まれ る。
(1)上記第 1の変形例において、サーバ 2004が管理している複数の秘密情報は、 平文 (暗号化前の状態)で管理するとしたが、これに限定されな!、。
[0179] サーバ 2004は、管理する複数の秘密情報それぞれを、予め個別暗号化された状 態で管理してもよい。
この場合、サーバ 2004は、複数の秘密情報それぞれを、異なる端末 IDを用いて、 上記第 1の変形例と同様の暗号化方法によって暗号化する。サーバ 2004は、生成 した複数の個別暗号ィ匕秘密情報を管理する場合には、暗号ィ匕に用いた端末 IDと対 応付けて管理する。サーバ 2004は、ネットワーク接続端末力も端末 IDを受け取ると、 受け取った端末 IDに対応する個別暗号ィ匕秘密情報を取得する。
[0180] (2)上記第 1の変形例において、サーバ 2004は、複数の秘密情報を予め記憶'管 理しているとした力 これに限定されない。
サーバ 2004は、ネットワーク接続端末力も端末 IDを受け取る度に、秘密情報を生 成してちょい。
(3)上記第 1の変形例において、デバイス鍵配布システム 2000は、図 18にて示す ステップ S2040力ら S2045により、サービスマンによる端末 2001の ンテンッ鍵復 号プログラムのアップデートを行うとした力 これに限定されな 、。
[0181] デバイス鍵配布システム 2000の動作において、ステップ S2040力ら S2045を行わ なくてもよい。
(4)上記第 1の変形例において、秘密情報の暗号化及び復号時には、端末 IDと端 末共通鍵とから生成された変換値 (暗号用変換値、復号用変換値)を用いたが、これ に限定されない。
[0182] 秘密情報の暗号化及び復号時には、端末 IDのみを鍵として用いてもよい。
(5)上記第 1の実施の形態において、変換値は、端末 IDと端末共通鍵とから生成さ れたが、これに限定されない。
変換値は、端末 IDに一意に紐づ 、て 、る値であってもよ 、。
(6)上記実施の形態において、カード 2002は、端末 2001の端末 ID2015そのも のを格納するとした力 これに限定されない。
[0183] (6— 1)カード 2002は、端末 ID (以下、第 1の端末 ID)に一方向性関数 (例えば、 S HA— 1)を施して得られる値 (以下、第 2の端末 IDという。)を格納してもよい。
この場合、第 1の端末 ID (端末 ID2015)から第 2の端末 IDへの変換は、カード 200 2にて行ってもよ!、し、端末 2001にて行ってもよ!、。
[0184] また、この場合、サーバ 2004は、図 19にて示す管理テーブル T2000を有している 管理テーブル T2000は、変換前端末 IDと変換後端末 IDとからなる組を 1個以上記 憶するための領域を有している。変換前端末 IDは、端末に対する端末 ID、つまり第 1の端末 IDを示し、変換後端末 IDは、端末 IDに一方向性関数 (例えば、 SHA— 1) を施して得られる第 2の端末 IDを示す。
[0185] カード 2002は、ネットワーク接続端末 2003を介してサーバ 2004へ第 2の端末 ID を送信する。
サーバ 2004は、カード 2002からネットワーク接続端末 2003を介して、第 2の端末 I Dを受信すると、受信した第 2の端末 IDに対応する第 1の端末 IDを管理テーブル T2 000から取得する。サーバ 2004は、取得した第 1の端末 IDを用いて個別暗号ィ匕秘 密情報を生成する。
[0186] 例えば、サーノ 2004は、第 2の端末 ID「IDA—1」をカード 2002から受信すると、 第 2の端末 ID「IDA— 1」に対応する第 1の端末 ID「IDA」(つまり、端末 ID2015と同 一の ID)を取得し、取得した第 1の端末 ID「IDA」(端末 ID2015)を用いて個別暗号 化秘密情報を生成する。
(6 - 2)第 2の端末 IDを用いて個別暗号ィ匕秘密鍵を生成してもよ 、。
[0187] この場合、カード 2002は、上記と同様に、ネットワーク接続端末 2003を介してサー バ 2004へる第 2の端末 IDを送信する。
サーバ 2004は、カード 2002からネットワーク接続端末 2003を介して、第 2の端末 I Dを受信すると、受信した第 2の端末 IDを用いて個別暗号ィ匕秘密情報を生成する。
[0188] 端末 2001では、第 2の端末 IDを生成し、生成した第 2の端末 IDを用いて、個別暗 号化秘密鍵を復号する。
(7)上記第 1の変形例において、端末 2001は、非ネットワーク接続の端末であると したが、これに限定されない。
端末 2001は、ネットワーク接続可能な端末であるとしてもよい。つまり、端末 2001 は、上記第 1の変形例にて示すネットワーク接続端末 2003が行う動作をも兼ね備え ることで実現できる。
[0189] (8)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよ!/ヽ。
(A— 1 7)まとめ
通常、更新対象のプログラムは、機種ごとに共通である。したがって、上記実施の形 態の仕組みをデバイス鍵配布にそのまま適用すると、正当性確認手段による確認の みでは、クローン端末に対してもデバイス鍵を配布してしまい、クローン端末は配布さ れたデバイス鍵を使用することができる。ここで、クローン端末とは、正規の端末とは、 端末 IDのみが異なり、他の構成要素等は同一である不正な端末である。 [0190] し力しながら、上記第 1の変形例によると、送り込むデータ (ここでは、デバイス鍵)を 、端末 IDを用いて個別暗号ィ匕するので、カードがクローン端末に対して正当であると 判断し、デバイス鍵を配布しても、クローン端末では暗号ィ匕されたデバイス鍵を復号 することはできない。
また、プログラムの更新が確認された後でのみデバイス鍵を送り込むので、送り込ん だデバイス鍵が不正またはセキュリティホールのあるプログラムによって利用されるこ とがなぐデバイス鍵を安全に更新することができる。
[0191] (B— 1)第 2の変形例
ここでは、正当性確認の変形例について、上記第 1の変形例と異なる点を中心に説 明する。
以下、この場合のシステムの構成及び、各装置の構成について説明する。 デバイス鍵配布システム 2000aは、図 20にて示すように、端末 (証明装置) 2001a
、カード (検証装置) 2002a、ネットワーク接続端末 2003a及びサーバ 2004aから構 成されている。
[0192] 端末 2001aは、ネットワークとは非接続の端末であり、上記実施の形態にて示す端 末 2001と同様に、デバイス鍵と、暗号ィ匕されたコンテンツ鍵を復号するためのプログ ラム(以下、コンテンツ鍵復号プログラム)とを有している。
カード 2002aは、端末に装着されると、当該端末を識別するための端末 IDを取得 し、記憶する。カード 2002aは、第 1の変形例にて示すカード 2002と同様に、端末 2 00 laの端末 IDを予め記憶している。カード 2002aは、 CRL更新時にて、予め記憶 している端末 IDをネットワーク接続端末 2003aへ出力する。
[0193] ネットワーク接続端末 2003aは、端末 IDをサーバ 2004aへネットワークを介して送 信する。ネットワーク接続端末 2003aは、サーバ 2004aから、復号プログラムに対す る更新プログラム、正当性確認情報、及び送信した端末 IDにより個別暗号化された 個別暗号ィ匕秘密情報を受け取り、受け取った各情報をカード 2002aへ出力する。
[0194] サーバ 2004aは、端末 IDをネットワーク接続端末 2003aから受け取ると、更新プロ グラム、正当性確認情報、及び受信した端末 IDに基づく秘密情報を送信する。 ここで、正規のデバイス鍵の個別暗号ィ匕は、上記第 1の変形例と同様であるので、 ここでの説明は省略する。
(B— 1— 1)端末 2001a
端末 2001aは、図 20にて示すように、 ID格納部 2010a、プログラム格納部 201 la 、端末測定部 2012a、プログラム更新部 2013a、及び秘密情報復号部 2014aから 構成されている。
[0195] なお、端末 2001aは、第 1の変形例にて示す端末 2001と同様に、端末共通鍵を記 憶している。ここで、端末共通鍵は、耐タンパ性により秘匿性を有している。
(B- 1 - 1 - 1) ID格納部 2010a、プログラム格納部 201 la
ID格納部 2010aは、当該端末の端末 ID2015aを予め記憶している。
ここで、 ID格納部 2010aは、耐タンパ性を有しており、端末 ID2015aの改竄はでき ない。
[0196] プログラム格納部 201 laは、上記第 1の変形例と同様であるので、ここでの説明は 省略する。
(B— 1 1 2)端末測定部 2012a
端末測定部 2012aは、上記実施の形態におけるセキュアモジュール 0707、および ブートコード 0703、オペレーティングシステム 0709、再生制御プログラム 0711のセ キュアモジュール 0707制御部分に相当する。
[0197] 端末測定部 2012aは、先ず、上記実施の形態と同様に、コンテンツ鍵復号プロダラ ムの PCR値を測定 (算出)する。次に、端末測定部 2012aは、 ID格納部 2010aに格 納されている端末 ID2015aと、算出した PCR値とに対して、 PCR値拡張コマンドを 施して、コンテンツ鍵復号プログラムの PCR値に端末 ID2015aを反映した PCR値 ( 以下、 ID付 PCR値という。)を生成する。なお、ここではコンテンツ鍵復号プログラム の PCR値を測定した後に端末 IDを反映している力 端末 IDを反映した後にコンテン ッ鍵復号プログラムを反映してもよ 、。
[0198] 端末測定部 2012aは、生成した ID付 PCR値をカード 2002aへ出力する。
なお、 PCR値拡張コマンドについては、上記実施の形態にて説明しているので、こ こでの説明は省略する。
また、測定のタイミング、及び出力のタイミングのそれぞれは、上記第 1の変形例と 同様である。
[0199] (B- 1 - 1 - 3)プログラム更新部 2013a
プログラム更新部 2013aは、上記第 1の変形例にて示すプログラム更新部 2013と 同様であるので、ここでの説明は省略する。
(B— 1 1 4)秘密情報復号部 2014a
秘密情報復号部 2014aは、上記第 1の変形例にて示す秘密情報復号部 2014と同 様であるので、ここでの説明は省略する。
[0200] (B— 1— 2)カード 2002a
カード 2002aは、図 20にて示すように、秘密情報提供部 2020a、端末 ID格納部 2 021a,正当性確認情報格納部 2022a、更新プログラム格納部 2023a、秘密情報取 得部 2024a、正当性確認情報取得部 2025a、更新プログラム取得部 2026a、及び 正当性確認部 2027aから構成されている。
[0201] (B— 1 2— 1)秘密情報提供部 2020a
秘密情報提供部 2020aは、図 20にて示すように、秘密情報蓄積部 2029a及びス イッチ 2030aを有して!/、る。
秘密情報蓄積部 2029a及びスィッチ 2030aのそれぞれは、上記第 1の変形例にて 示す秘密情報蓄積部 2029及びスィッチ 2030のそれぞれと同様であるので、ここで の説明は省略する。
[0202] (B— 1— 2— 2)端末 ID格納部 2021a
端末 ID格納部 2021aは、上記第 1の変形例にて示す端末 ID格納部 2021と同様 であるので、ここでの説明は省略する。
(B— 1— 2— 3)正当性確認情報格納部 2022a
正当性確認情報格納部 2022aは、上記実施の形態における CRLデータベース 08 05の正当な PCR値の格納部位に相当する。
[0203] 正当性確認情報格納部 2022aは、ネットワーク接続端末 2003aを介してサーバ 20 04aから受け取った正当性確認情報 (正規の ID付 PCR値)を、端末 ID格納部 2021 aにて記憶されている端末 IDと対応付けて蓄積している。ここでは、正当性確認情報 格納部 2022aは、コンテンッ鍵復号プログラム及び端末 ID2015aに対する正当性 確認情報(正規の ID付 PCR値)を、端末 2001aの端末 ID2015aと対応付けて記憶 しているちのとする。
[0204] (B- 1 - 2-4)更新プログラム格納部 2023a
更新プログラム格納部 2023aは、上記実施の形態における CRLデータベース 080 5の更新プログラムの格納部位に相当する。
更新プログラム格納部 2023aは、上記第 1の変形例にて示す更新プログラム格納 部 2023と同様であるので、ここでの説明は省略する。
[0205] なお、上記にて示す CRLデータベース 0805は、本変形例にて示す端末 ID格納 部 2021a、正当性確認情報格納部 2022a及び更新プログラム格納部 2023aから構 成されていることが分かる。
(B- 1 - 2- 5)秘密情報取得部 2024a
秘密情報取得部 2024aは、上記第 1の変形例にて示す秘密情報取得部 2024と同 様であるので、ここでの説明は省略する。
[0206] (B- 1 2— 6)正当性確認情報取得部 2025a
正当性確認情報取得部 2025aは、上記実施の形態にて示す図 9における CRL更 新処理、特に CRLデータベースの正規の PCR値の更新に相当する処理を行う。 正当性確認情報取得部 2025aは、ネットワーク接続端末 2003aを介してサーバ 20 04aから正当性確認情報 (正規の ID付 PCR値)を受け取ると、受け取った正当性確 認情報を正当性確認情報格納部 2022aへ格納する。
[0207] (B- 1 - 2- 7)更新プログラム取得部 2026a
更新プログラム取得部 2026aは、上記第 1の変形例にて示す更新プログラム取得 部 2026と同様であるので、ここでの説明は省略する。
(B- 1— 2— 8)正当性確認部 2027a
正当性確認部 2027aは、上記実施の形態にて示す図 10における S1003の処理 に相当する処理を行う。
[0208] 正当性確認部 2027aは、端末 2001aからコンテンツ鍵復号プログラムと端末 ID20 15aに対する ID付 PCR値を受け取ると、端末 2001aと対応付けられたコンテンツ鍵 復号プログラムと端末 ID2015aに対する正当性確認情報 (正規の ID付 PCR値)を、 正当性確認情報格納部 2022aから取得する。
正当性確認部 2027aは、受け取った ID付 PCR値と正当性確認情報とがー致する か否かを判断する。
[0209] 以下、判断結果に応じた動作は、第 1の変形例にて示す正当性確認部 2027の判 断結果に応じた動作と同様であるので、ここでの説明は省略する。
なお、正当性確認部 2027aをステップ S1002及び S1003に相当するとしてもよい ことも第 1の変形例と同様である。
(B— 1— 2— 9)プログラム出力部 2028a
プログラム出力部 2028aは、上記第 1の変形例にて示すプログラム出力部 2028と 同様であるので、ここでの説明は省略する。
[0210] (B— 1— 3)ネットワーク接続端末 2003a
ネットワーク接続端末 2003aは、自身に装着されたカード 2002aの端末 ID格納部 2021aから端末 2001aの端末 IDを取得すると、取得した端末 IDを、ネットワークを介 してサーバ 2004aへ出力する。
その後、ネットワーク接続端末 2003aは、サーバ 2004aからネットワークを介して、 出力した端末 IDと対応付けられた更新プログラム、正当性確認情報 (ID付 PCR値) 、及び個別暗号化秘密情報を受け取り、受け取った各情報をカード 2002aへ格納す る。
[0211] (B— 1—4)サーノ 2004a
サーバ 2004aは、上記実施の形態と同様に、 CRLデータベースを有しており、端 末毎に配布すべき更新プログラム及び正規の PCR値 (正当性確認情報)を管理して いる。なお、更新プログラム及び正当性確認情報は、第 1の変形例と同様に端末の 機種毎に異なるとする。
[0212] また、サーバ 2004aは、端末共通鍵を予め記憶し、管理して!/、る。
サーバ 2004aは、複数の秘密情報 (デバイス鍵)を予め生成しており、生成した秘 密情報を記憶'管理している。サーバ 2004aは、端末に一度配布した秘密情報を再 度配布しないように管理している。なお、サーバ 2004aが管理している複数の秘密情 報それぞれは、互いに異なる。さらに、サーバ 2004aは、管理している全ての秘密情 報を配布した場合、これまでに管理して!/、た複数の秘密情報それぞれとは異なる複 数の秘密情報を生成する。上述したように、再度生成された複数の秘密情報それぞ れについても、互いに異なる。
[0213] サーノ 2004aは、ネットワーク接続端末 2003aからネットワークを介して、端末 IDを 受け取ると、受け取った端末 IDから機種を特定し、特定した機種に対応するコンテン ッ鍵復号プログラムに対する更新プログラム、その PCR値、及び端末共通鍵を取得 する。
サーバ 2004aは、ネットワーク接続端末 2003aから受け取った端末 IDと、取得した PCR値とに対して、 PCR値拡張コマンドを施して、コンテンツ鍵復号プログラムの PC R値に端末 IDが反映された正当性確認情報 (正規の ID付 PCR値)を生成する。
[0214] サーバ 2004aは、上記第 1の変形例にて示すサーバ 2004と同様の方法により、個 別暗号化秘密情報を生成する。
サーバ 2004aは、端末個別データー式 (生成した個別暗号化秘密情報と、取得し た更新プログラム及び正当性確認情報 (正規の ID付 PCR値) )を、ネットワークを介し てネットワーク接続端末 2003aへ出力する。
[0215] (B- 1 - 5)デバイス鍵配布システム 2000aの動作
デバイス鍵配布システム 2000aの動作は、図 18にて示すデバイス鍵配布システム 2000の動作と比べて、正当性確認情報のデータの内容のみが異なり、システムの動 作については、同一の流れで実現できるので、ここでの説明は省略する。
(B— 1 6)その他の変形例
なお、本発明を上記第 2の変形例に基づいて説明してきたが、本発明は、上記第 2 の変形例に限定されないのは、もちろんである。以下のような場合も本発明に含まれ る。
[0216] (1)上記第 2の変形例にぉ 、て、 ID付 PCR値は、コンテンツ鍵復号プログラムの P CR値と、端末 ID2015aとに対して、 PCR値拡張コマンドを施すことで生成されたが 、これに限定されない。
ID付 PCR値は、コンテンツ鍵復号プログラムの PCR値に、端末 ID2015aに一方 向性関数を施して得られたハッシュ値を加算することで、生成されてもよ!、。 [0217] (2)上記第 2の変形例において、端末 2001aは、非ネットワーク接続の端末である としたが、これに限定されない。
端末 2001aは、ネットワーク接続可能な端末であるとしてもよい。つまり、端末 2001 aは、上記第 2の変形例にて示すネットワーク接続端末 2003aが行う動作をも兼ね備 免ることで実現できる。
[0218] (3)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよ!/ヽ。
(B— 1 7)まとめ
上記第 2の変形例では、プログラムの PCR値と端末 IDとを用いて、 ID付 PCR値を 算出し、算出した PCR値を用いて端末の正当性を確認するので、他の端末 IDを詐 取した不正な端末は、デバイス鍵を入手することができな!/、。
[0219] これにより、クローン端末の生成を防止することができる。
また、第 1の変形例と同様、プログラムの更新が確認された後でのみデバイス鍵を 送り込むので、デバイス鍵を安全に更新することができる。
(C 1)第 3の変形例
上記第 2の実施の形態では、端末 IDを反映した PCR値をサーバで生成したが、こ れに限定されない。
[0220] 端末 IDを反映した PCR値は、カードで生成してもよい。
以下、この場合のこの場合のシステムの構成及び、各装置の構成について、上記 第 1及び第 2の変形例と異なる点を中心に説明する。
デバイス鍵配布システム 2000bは、図 21にて示すように、端末 (証明装置) 2001b 、カード (検証装置) 2002b、ネットワーク接続端末 2003b及びサーバ 2004bから構 成されている。
[0221] 端末 2001bは、ネットワークとは非接続の端末であり、上記実施の形態にて示す端 末 2001と同様に、デバイス鍵と、暗号ィ匕されたコンテンツ鍵を復号するためのプログ ラム(以下、コンテンツ鍵復号プログラム)とを有している。
端末 2001bは、カード 2002bから端末 2001bの端末 IDに関連づけられた値で暗 号化されたデバイス鍵 (以下、個別暗号ィ匕デバイス鍵)を受け取り、受け取った個別 暗号化デバイス鍵を復号することにより、当該端末に対応するデバイス鍵を取得する [0222] カード 2002bは、端末に装着されると、当該端末を識別するための端末 IDを取得 し、記憶する。カード 2002bは、第 2の変形例にて示すカード 2002aと同様に、端末 2001bの端末 IDを予め記憶している。カード 2002bは、 CRL更新時にて、予め記 憶している端末 IDをネットワーク接続端末 2003bへ出力する。
ネットワーク接続端末 2003bは、端末 IDをサーバ 2004bへネットワークを介して送 信する。ネットワーク接続端末 2003bは、サーバ 2004bから、復号プログラムに対す る更新プログラム、正当性確認情報、及び送信した端末 IDにより個別暗号化された 個別暗号ィ匕秘密情報を受け取り、受け取った各情報をカード 2002bへ出力する。
[0223] サーバ 2004bは、端末 IDをネットワーク接続端末 2003b力も受け取ると、更新プロ グラム、正当性確認情報、及び受信した端末 IDに基づく秘密情報を送信する。 ここで、正規のデバイス鍵の個別暗号ィ匕は、上記第 1の変形例と同様であるので、 ここでの説明は省略する。つまり、正規のデバイス鍵は、端末 IDと端末共通鍵とから 変換された変換値を秘密鍵として、暗号化される。
[0224] (C 1 1)端末 2001b
端末 2001bは、図 21にて示すように、 ID格納部 2010b、プログラム格納部 201 lb 、端末測定部 2012b、プログラム更新部 2013b、及び秘密情報復号部 2014bから 構成されている。
なお、端末 2001bは、第 1の変形例にて示す端末 2001と同様に、端末共通鍵を 記憶している。ここで、端末共通鍵は、耐タンパ性により秘匿性を有している。
[0225] (C— 1— 1— 1) ID格納部 2010b、プログラム格納部 201 lb
ID格納部 2010bは、当該端末の端末 ID2015bを予め記憶して 、る。 ここで、 ID格納部 2010bは、耐タンパ性を有しており、端末 ID2015bの改竄はで きない。
プログラム格納部 201 lbは、上記第 1の変形例と同様であるので、ここでの説明は 省略する。
[0226] (C 1 1 2)端末測定部 2012b
端末測定部 2012bは、上記実施の形態におけるセキュアモジュール 0707、およ びブートコード 0703、オペレーティングシステム 0709、再生制御プログラム 0711の セキュアモジュール 0707制御部分に相当する。
端末測定部 2012bは、上記第 2の変形例と同様の動作にて ID付 PCR値を生成す る。なお、詳細な動作については、上記第 2の変形例にて示しているので、ここでの 説明は省略する。
[0227] (C 1 1 3)プログラム更新部 2013b
プログラム更新部 2013bは、上記第 1の変形例にて示すプログラム更新部 2013と 同様であるので、ここでの説明は省略する。
(C 1 1 4)秘密情報復号部 2014b
秘密情報復号部 2014bは、プログラム格納部 201 lbにて格納されて ヽる秘密情報 復号プログラムが起動され、実行されることで実現される。
[0228] 秘密情報復号部 2014bは、カード 2002bから個別暗号ィ匕デバイス鍵を取得する。
秘密情報復号部 2014bは、 ID格納部 2010bから端末 IDを、システム LSIから端末 共通鍵を、それぞれ取得する。
秘密情報復号部 2014bは、取得した端末 ID及び端末共通鍵を用いて、個別暗号 化デバイス鍵を復号し、デバイス鍵を生成する。秘密情報復号部 2014bは、現在記 憶して!/ヽるデバイス鍵から、生成したデバイス鍵へと更新する。
[0229] (C— 1— 2)カード 2002b
カード 2002bは、図 21にて示すように、秘密情報提供部 2020b、端末 ID格納部 2 021b、正当性確認情報格納部 2022b、更新プログラム格納部 2023b、秘密情報取 得部 2024b、正当性確認情報取得部 2025b、更新プログラム取得部 2026b、正当 性確認部 2027b、確認情報個別化部 2040b、デバイス鍵個別化部 2041b、カード I D格納部 2042b、及び端末共通鍵格納部 2043bから構成されて ヽる。
[0230] (C 1 2— 1)カード ID格納部 2042b
カード ID格納部 2042bは、カード 2002bに固有のカード IDを格納している。
ここで、カード ID格納部 2042bは、耐タンパ性を有しており、カード IDの改竄はで きない。
[0231] (C- 1 - 2- 2)秘密情報提供部 2020b 秘密情報提供部 2020bは、図 21にて示すように、秘密情報蓄積部 2029b及びス イッチ 2030bを有して!/、る。
秘密情報蓄積部 2029bは、カード ID格納部 2042bにて格納されているカード ID にて暗号化された複数のデバイス鍵 (以下、秘密情報、若しくは配布用暗号ィ匕デバ イス鍵という。)を格納している。
[0232] スィッチ 2030bは、上記第 1の変形例にて示すスィッチ 2030と同様であるので、こ こでの説明は省略する。
秘密情報提供部 2020bは、過去に、端末へ出力した秘密情報を、再度出力しない ように管理している。
例えば、複数の秘密情報それぞれに、フラグを対応付ける。具体的には、秘密情報 提供部 2020bは、未出力の秘密情報には値「0」を、出力済の秘密情報には値「1」 を、それぞれ対応付ける。
[0233] また、配布用暗号ィ匕デバイス鍵は、カード IDを秘密鍵とする秘密鍵暗号化方式に よって生成される。
(C 1 2— 3)端末 ID格納部 2021b、端末共通鍵格納部 2043b
端末 ID格納部 202 lbは、上記第 1の変形例にて示す端末 ID格納部 2021と同様 であるので、ここでの説明は省略する。
[0234] 端末共通鍵格納部 2043bは、 1以上の端末共通鍵それぞれを、当該端末共通鍵 が格納される端末の機種と対応付けて格納している。なお、ここでは、端末 2001bに 対応する端末共通鍵を格納して!/ヽるものとする。
ここで、端末共通鍵格納部 2043bは、耐タンパ性を有しており、端末共通鍵の改竄 はできない。
[0235] (C- 1 2— 4)正当性確認情報格納部 2022b
正当性確認情報格納部 2022bは、上記実施の形態における CRLデータベース 0 805の正当な PCR値の格納部位に相当する。
正当性確認情報格納部 2022bは、サーバ 2004bにて管理されているコンテンツ鍵 復号プログラムに対する正当性確認情報 (正規の PCR値)と、端末 ID2015bとから 生成された正規の ID付 PCR値 (以下、個別化確認情報ともいう。)を、端末 ID格納 部 2021bにて記憶されている端末 IDと対応付けて蓄積している。ここでは、正当性 確認情報格納部 2022bは、コンテンツ鍵復号プログラム及び端末 ID2015bに対す る個別化確認情報 (正規の ID付 PCR値)を、端末 200 lbの端末 ID2015bと対応付 けて記'隐して ヽるものとする。
[0236] (C 1 2— 5)更新プログラム格納部 2023b
更新プログラム格納部 2023bは、上記実施の形態における CRLデータベース 080 5の更新プログラムの格納部位に相当する。
更新プログラム格納部 2023bは、上記第 1の変形例にて示す更新プログラム格納 部 2023と同様であるので、ここでの説明は省略する。
[0237] なお、上記にて示す CRLデータベース 0805は、本変形例にて示す端末 ID格納 部 2021b、正当性確認情報格納部 2022b及び更新プログラム格納部 2023bから構 成されていることが分かる。
(C- 1 - 2-6)秘密情報取得部 2024b
秘密情報取得部 2024bは、複数の配布用暗号化デバイス鍵 (秘密情報)を、サー バ 2004bからネットワーク接続端末 2003bを介して受け取ると、受け取った複数の配 布用暗号化デバイス鍵 (秘密情報)を秘密情報蓄積部 2029bへ格納する。
[0238] (C- 1— 2— 7)正当性確認情報取得部 2025b
正当性確認情報取得部 2025bは、上記実施の形態にて示す図 9における CRL更 新処理、特に CRLデータベースの正規の PCR値の更新に相当する。
正当性確認情報取得部 2025bは、ネットワーク接続端末 2003bを介してサーバ 20 04bから正当性確認情報 (正規の PCR値)を受け取ると、受け取った正当性確認情 報を確認情報個別化部 2040bへ出力する。
[0239] (C- 1 - 2-8)更新プログラム取得部 2026b
更新プログラム取得部 2026bは、上記第 1の変形例にて示す更新プログラム取得 部 2026と同様であるので、ここでの説明は省略する。
(C 1 2— 9)正当性確認部 2027b
正当性確認部 2027bは、上記実施の形態にて示す図 10における S1003に相当 する処理を行う。 [0240] 正当性確認部 2027bは、端末 2001bからコンテンツ鍵復号プログラムと端末 ID20 15bとに対する ID付 PCR値を受け取ると、端末 2001bと対応付けられたコンテンツ 鍵復号プログラムと端末 ID2015bとに対する正当性確認情報 (正規の ID付 PCR値) を、正当性確認情報格納部 2022bから取得する。
正当性確認部 2027bは、受け取った ID付 PCR値と正当性確認情報とがー致する か否かを判断する。
[0241] 一致すると判断する場合には、正当性確認部 2027bは、端末と秘密情報蓄積部 2 029bとを接続するようにスィッチ 2030bを閉じ、一致した旨を示す OK情報をデバイ ス鍵個別化部 2041bへ出力する。
一致しないと判断する場合には、正当性確認部 2027bは、一致しない旨を示す N G情報をプログラム出力部 2028bへ出力する。
[0242] なお、本変形例では、正当性確認部 2027bはステップ S1003のみに相当するとし た力 これに限定されない。
なお、第 1の変形例と同様、正当性確認部 2027bをステップ S1002及び S1003に 相当するとしてもよい。
(C— 1 2— 10)プログラム出力部 2028b
プログラム出力部 2028bは、上記第 1の変形例にて示すプログラム出力部 2028と 同様であるので、ここでの説明は省略する。
[0243] (C- 1 - 2- 11)確認情報個別化部 2040b
確認情報個別化部 2040bは、正当性確認情報取得部 2025bから正当性確認情 報(正規の PCR値)を受け取ると、端末 ID格納部 2021bから端末 ID2015bを取得 する。ここで、サーバ 2004bから受け取った正規の PCR値は、まだ端末 IDに関連付 けられていない。
[0244] 確認情報個別化部 2040bは、正当性確認情報と、端末 ID2015bとから PCR値拡 張コマンドと同等の処理を施して、コンテンツ鍵復号プログラムの PCR値に端末 IDが 反映された個別化確認情報 (正規の ID付 PCR値)を生成する。
確認情報個別化部 2040bは、生成した個別化確認情報を正当性確認情報格納部 2022bへ格納する。 [0245] (C— 1— 2— 12)デバイス鍵個別化部 204 lb
デバイス鍵個別化部 204 lbは、正当性確認部 2027bから OK情報 (正当性が確認 された旨を示す)を受け取ると、端末 ID格納部 2021bから端末 ID2015bを、秘密情 報蓄積部 2029bからフラグの値力「0」である 1個の配布用暗号ィ匕デバイス鍵 (秘密 情報)を、カード ID格納部 2042bからカード IDをそれぞれ取得する。
[0246] デバイス鍵個別化部 204 lbは、取得した 1個の配布用暗号ィ匕デバイス鍵を、カード IDを用いて復号してデバイス鍵を生成する。
デバイス鍵個別化部 204 lbは、予めカード 2002bに格納してある端末共通鍵 (端 末共通鍵格納部 2043bにて格納)と端末 ID2015b (端末 ID格納部 2021bにて格納 )を用いて上記実施の形態にて示す図 17における変換方式で生成した値を秘密鍵 として秘密暗号方式によりデバイス鍵を暗号ィ匕して、個別暗号ィ匕デバイス鍵を生成す る。
[0247] デバイス鍵個別化部 204 lbは、生成した個別暗号ィ匕デバイス鍵を端末 2001bへ 出力するともに、端末 2001bのオペレーティングシステムに対して秘密情報復号プロ グラムの起動を要求する。
(C 1 3)ネットワーク接続端末 2003b
ネットワーク接続端末 2003bは、自身に装着されたカード 2002bの端末 ID格納部 2021aから端末 2001aの端末 IDを、カード ID格納部 2042bからカード IDをそれぞ れ取得すると、取得した端末 ID及びカード IDを、ネットワークを介してサーバ 2004b へ出力する。この時、カード ID格納部 2042bでは、カード 2002bとサーノ 2004bと の通信路でカード IDの秘匿性が損なわれないようカード IDを暗号ィ匕した上で出力さ れる。具体的には、公知の安全な通信路を構築する方法等により、サーバ 2004bと 共通の鍵で暗号化した上で出力する。
[0248] その後、ネットワーク接続端末 2003bは、サーバ 2004bからネットワークを介して、 出力した端末 IDと対応付けられた更新プログラムと、その正当性確認情報 (PCR値) と、複数の秘密情報 (配布用暗号ィ匕デバイス鍵)とを受け取り、受け取った各情報を カード 2002bへ格納する。
(C— 1—4)サーノ 2004b サーバ 2004bは、上記実施の形態と同様に、 CRLデータベースを有しており、端 末毎に配布すべき更新プログラム及び正規の PCR値 (正当性確認情報)を管理して いる。なお、更新プログラム及び正当性確認情報は、端末の機種毎に異なるとする。
[0249] サーバ 2004bは、複数のデバイス鍵を予め生成しており、生成した秘密情報を記 憶'管理している。サーバ 2004bは、端末に一度配布した秘密情報を再度配布しな いように管理している。なお、サーバ 2004bが管理している複数のデバイス鍵それぞ れは、互いに異なる。さらに、サーバ 2004bは、管理している全ての秘密情報を配布 した場合、これまでに管理して!/、た複数のデバイス鍵それぞれとは異なる複数のデ バイス鍵を生成する。上述したように、再度生成された複数のデバイス鍵それぞれに ついても、互いに異なる。
[0250] サーバ 2004bは、ネットワーク接続端末 2003bからネットワークを介して、端末 ID 及びカード IDを受け取ると、受け取った端末 ID力 機種を特定し、特定した機種に 対応するコンテンツ鍵復号プログラムに対する更新プログラム、及びその PCR値を取 得する。
サーバ 2004bは、管理して 、る複数のデバイス鍵のうち所定数(2個以上)のデバ イス鍵を取得する。
[0251] サーノ 2004bは、取得した所定数のデバイス鍵それぞれを、カード 2002b力も安 全な通信路を経由してカード IDを秘密鍵とする秘密鍵暗号ィ匕方式により暗号ィ匕して 、所定数の配布用暗号ィ匕デバイス鍵 (秘密情報)を生成する。
サーバ 2004bは、端末個別データー式 (生成した複数の秘密情報と、取得した更 新プログラム及びその正当性確認情報 (正規の PCR値) )を、ネットワークを介してネ ットワーク接続端末 2003bへ出力する。
[0252] (C 1 5)デバイス鍵配布システム 2000bの動作
デバイス鍵配布システム 2000bの動作について、図 22にて示す流れ図を用いて 説明する。
カード 2002bは、端末 2001bに装着されると、端末 2001bの端末 IDを取得し、取 得した端末 ID2015bを端末 ID格納部 202 lbに格納する(ステップ S 2100)。
[0253] カード 2002bは、ネットワーク接続端末 2003bに装着され、且つ CRLデータの更 新時において、カード ID格納部 2042b力もカード IDを取得し、取得したカード IDと、 端末 ID格納部 2021bに格納された端末 2001bの端末 ID2015bとを、ネットワーク 接続端末 2003bを介してサーバ 2004bへ送信する (ステップ S2105)。
[0254] サーノ 2004bは、カード 2002bからネットワーク接続端末 2003bを介して、カード 2 002bのカード IDと、端末 2001bの端末 IDとを受信すると、受信した端末 IDから機 種を特定し、特定した機種に対応する機種共通情報 (更新プログラム、及びその正 当性確認情報 (PCR値) )を取得する (ステップ S2110)。
サーバ 2004bは、管理して 、る複数のデバイス鍵のうち所定数(2個以上)のデバ イス鍵を取得し、取得した所定数のデバイス鍵それぞれを、受信したカード IDを秘密 鍵とする秘密鍵暗号化方式により暗号化して、所定数の秘密情報 (配布用暗号化デ バイス鍵)を生成する (ステップ S2115)。
[0255] サーバ 2004bは、端末個別データー式 (生成した複数の秘密情報 (配布用暗号ィ匕 デバイス鍵)と、取得した更新プログラム及びその正当性確認情報)を、ネットワークを 介してネットワーク接続端末 2003bへ出力する (ステップ S2120)。
カード 2002bは、サーバ 2004bからネットワーク接続端末 2003bを介して、端末個 別データー式を受信すると、各情報 (データ)を格納する (ステップ S2125)、具体的 には、カード 2002bの秘密情報取得部 2024bは、複数の秘密情報 (配布用暗号ィ匕 デバイス鍵)を受信し、受信した複数の秘密情報を秘密情報蓄積部 2029bへ格納す る。正当性確認情報取得部 2025bは、正当性確認情報を受信すると、受信した正当 性確認情報を正当性確認情報格納部 2022bへ格納する。更新プログラム取得部 20 26bは、更新プログラムを受信すると、受信した更新プログラムを更新プログラム格納 部 2023bへ格納する。
[0256] カード 2002bは、更新プログラムを端末 2001bへ出力する(ステップ S2130)。
端末 2001bは、更新プログラムをインストールする(ステップ S2135)。
カード 2002bの正当性確認部 2027bは、秘密情報 (デバイス鍵)出力要求を受け 取ると、端末 2001bの正当性を判断する (ステップ S2140)。秘密情報出力要求は、 上記実施の形態における図 4にて示すステップ S0402に相当し、コンテンツ鍵復号 プログラムの ID付 PCR値を含む。ここでは、カード 2002bの正当性確認部 2027bは 、コンテンツ鍵復号プログラムに対する正当性確認情報と、受け取った秘密情報出力 要求に含まれる ID付 PCR値との比較を行う。
[0257] 正当でないと判断する場合 (ステップ S2140における「NG」)、カード 2002bは、更 新プログラムを端末 2001bへ出力する (ステップ S2145)。具体的には、正当性確認 部 2027bは、 NG情報をプログラム出力部 2028bへ出力する。プログラム出力部 20 28bは、正当性確認部 2027bから NG情報を受け取ると、端末 2001bに対するコン テンッ鍵復号プログラムの更新プログラムを更新プログラム格納部 2023bから取得し 、取得した更新プログラムを端末 2001bのプログラム更新部 2013bへ出力する。
[0258] 正当であると判断する場合 (ステップ S2140における「O :」)、カード 2002bは、個 別暗号ィ匕デバイス鍵を生成し、生成した個別暗号ィ匕デバイス鍵を端末 2001bへ出 力する (ステップ S2150)。具体的には、正当性確認部 2027bは、 OK情報をデバイ ス鍵個別化部 2041bへ出力する。デバイス鍵個別化部 2041bは、正当性確認部 20 27bから OK情報を受け取ると、端末 ID格納部 2021bから端末 ID2015bを、秘密情 報蓄積部 2029bからフラグの値力 「0」である 1個の配布用暗号ィ匕デバイス鍵 (秘密 情報)を、カード ID格納部 2042bからカード IDをそれぞれ取得する。デバイス鍵個 別化部 2041bは、取得した 1個の配布用暗号ィ匕デバイス鍵を、カード IDを用いて復 号してデバイス鍵を生成する。デバイス鍵個別化部 2041bは、予めカード 2002bに 格納してある端末共通鍵と端末 ID2015bを用いて上記実施の形態にて示す図 17 における変換方式で生成した値を秘密鍵として秘密暗号方式によりデバイス鍵を喑 号化して、個別暗号ィ匕デバイス鍵を生成する。デバイス鍵個別化部 2041bは、生成 した個別暗号ィ匕デバイス鍵を端末 2001bへ出力する。
[0259] 端末 2001bのプログラム更新部 2013bは、カード 2002bから更新プログラムを受 け取ると、受け取った更新プログラムのインストールを行う(ステップ S2155)。具体的 には、プログラム更新部 2013bは、カード 2002bからコンテンツ鍵復号プログラムに 対する更新プログラムを受け取ると、受け取った更新プログラムを用いてコンテンツ鍵 復号プログラムを更新する。プログラム更新部 2013bは、復号プログラムの更新後、 ステップ S0408と同様に、システムのリセットを端末 2001bのオペレーティングシステ ムに依頼する。 [0260] 端末 2001bの秘密情報復号部 2014bは、個別暗号化秘密情報を、カード 2002b 力も受け取ると、個別暗号ィ匕デバイス鍵のインストールを行う(ステップ S2160)。具 体的には、秘密情報復号部 2014bは、カード 2002bから当該端末に対応する個別 暗号ィ匕デバイス鍵を、 ID格納部 2010bから端末 IDをそれぞれ取得する。秘密情報 復号部 2014bは、取得した端末 IDと端末共通鍵を用いて、個別暗号化デバイス鍵 を復号し、デバイス鍵を生成する。秘密情報復号部 2014bは、現在記憶しているデ バイス鍵から、生成したデバイス鍵へと更新する。
[0261] 以降、例えば、端末 2001bが図 4にて示すステップ S0403以降の動作を行い、力 ード 2002bが図 10にて示す権利確認'鍵生成プログラムを実行する。
以下、各ステップが実行されるタイミングの一例を示す。
ステップ S2010の動作は、カード 2002bが端末 2001bに装着された場合に実行さ れる。
[0262] ステップ S2015力らステップ S2035までの動作は、カード 2002bがネットワーク接 続端末 2003bに装着された場合に実行される。
ステップ S2040力ら S2045までの動作 ίま、サービスマンにより端末 2001bのプログ ラムのアップデートを行う場合に実行される。
ステップ S2050以降の動作は、端末 2001bの利用者によりコンテンツの再生の要 求があった場合に実行される。
[0263] (C 1 6)その他の変形例
なお、本発明を上記第 3の変形例に基づいて説明してきたが、本発明は、上記第 3 の変形例に限定されないのは、もちろんである。以下のような場合も本発明に含まれ る。
(1)上記第 3の実施の形態において、サーバ 2004bが、取得するデバイス鍵の個 数 (所定数)は 2個以上としたが、これに限定されない。
[0264] サーバ 2004b力 取得するデバイス鍵の個数は 1個以上であればよい。
(2)上記第 3の実施の形態において、サーバ 2004bが、取得するデバイス鍵の個 数は予め決められた個数 (所定数)としたが、これに限定されない。
サーバ 2004bが、取得するデバイス鍵の個数は、ネットワーク接続端末にて情報を 送信する際に、ユーザが指定してもよい。
[0265] この場合、ネットワーク接続端末 2003bは、ユーザから指定された取得個数を、サ ーバ 2004bへ送信する。サーバ 2004bは、ネットワーク接続端末 2003b力も取得個 数を受信すると、受信した取得個数分のデバイス鍵を取得する。
(3)上記第 3の実施の形態において、秘密情報蓄積部 2029bは、複数の配布用暗 号ィ匕デバイス鍵を格納するとしたが、これに限定されな ヽ。
[0266] 秘密情報蓄積部 2029bは、復号された複数のデバイス鍵を格納してもよい。
この場合におけるカード 2002bの動作について、以下に説明する。
秘密情報取得部 2024bは、サーバ 2004bから複数の配布用暗号ィ匕デバイス鍵を 受け取ると、カード ID格納部 2042b力もカード IDを取得する。
秘密情報取得部 2024bは、取得したカード IDを用いて、配布用暗号ィ匕デバイス鍵 それぞれを復号して、デバイス鍵を生成する。秘密情報取得部 2024bは、この復号 の動作を受信した配布用暗号ィ匕デバイス鍵の個数分行 ヽ、受信した配布用暗号ィ匕 デバイス鍵の個数と同数のデバイス鍵を生成する。
[0267] 秘密情報取得部 2024bは、生成した複数のデバイス鍵を秘密情報蓄積部 2029b へ格納する。
(4)上記第 3の変形例において、端末 2001bは、非ネットワーク接続の端末である としたが、これに限定されない。
端末 2001bは、ネットワーク接続可能な端末であるとしてもよい。つまり、端末 2001 bは、上記第 3の変形例にて示すネットワーク接続端末 2003bが行う動作をも兼ね備 免ることで実現できる。
[0268] (5)上記第 3の変形例において、デバイス鍵配布システム 2000bは、図 22にて示 すステップ S2130力ら S2135により、サービスマンによる端末 2001bの ンテンッ鍵 復号プログラムのアップデートを行うとした力 これに限定されな 、。
デノイス鍵酉己布システム 2000bの動作にお!ヽて、ステップ S2130力ら S2135を行 わなくてもよい。
[0269] (6)上記第 3の変形例において、秘密情報提供部 2020bは、過去に、端末へ出力 した秘密情報を、再度出力しないように、秘密情報蓄積部 2029bにて格納されてい る複数の秘密情報それぞれに、フラグを対応付けたが、これに限定されない。
秘密情報提供部 2020bは、出力した 1以上の秘密情報力もなるリストを生成し、生 成したリストを用いて、過去に、端末へ出力した秘密情報を、再度出力しないように管 理してちよい。
[0270] または、秘密情報提供部 2020bは、出力した秘密情報を、消去してもよい。
つまり、端末に対する秘密情報のインストール状況をアップロードして、出力済の秘 密情報の管理、未出力に秘密情報の管理、若しくはその双方の管理ができればよい
(7)上記第 3の変形例において、デバイス鍵個別化部 2041bは、個別暗号化デバ イス鍵を生成する際に、端末 IDを用いたがこれに限定されない。
[0271] デバイス鍵個別化部 204 lbは、正当性確認部 2027bで用いた個別化確認情報( つまり、 ID付 PCR値)を秘密鍵として用いて、デバイス鍵を暗号ィ匕して、個別暗号ィ匕 デバイス鍵を生成してもよ ヽ。
(8)上記第 3の実施の形態において、サーバ 2004bは、カード IDを用いて配布用 暗号ィ匕デバイス鍵を生成した力 これに限定されな!ヽ。
[0272] サーバ 2004bは、第 1、及び第 2の変形例と同様に、端末 IDと端末共通鍵とから生 成された変換値 (暗号用変換値)を用いて配布用暗号ィ匕デバイス鍵を生成してもよ!ヽ し、端末 IDのみを用いて配布用暗号ィ匕デバイス鍵を生成してもよ!/ヽ。
このとき、カード 2002bのデバイス鍵個別化部 2041bは、暗号用変換値若しくは端 末 IDで暗号化された配布用暗号ィ匕デバイス鍵を復号した後、端末 IDで暗号ィ匕して 個別暗号ィ匕デバイス鍵を生成してもよいし、配布用暗号ィ匕デバイス鍵そのものを端 末 IDで暗号化、つまり 2重の暗号ィ匕をして個別暗号ィ匕デバイス鍵を生成してもよ ヽ。
[0273] 2重の暗号ィ匕した場合、端末 2001bは、先ず、個別暗号ィ匕デバイス鍵を端末 IDで 復号して、配布用暗号ィ匕デバイス鍵を生成する。次に、端末 2001bは、端末 IDと端 末共通鍵とから復号用変換値を生成し、生成した復号用変換値を用いて、生成した 配布用暗号ィ匕デバイス鍵を復号してデバイス鍵を生成する。
また、カード 2002bとサーバ 2004bで予め共有している秘密鍵で配布用暗号ィ匕デ バイス鍵を生成してもよい。 [0274] (9)上記第 3の実施の形態において、カード 2002bが予め端末共通鍵を格納して いる構成とした力 これに限定されない。
カード 2002bは、端末共通鍵を、サーバ 2004bから受け取ってもよい。 この場合、サーバ 2004bは、カード 2002bから端末 ID及びカード IDを受け取ると、 受け取った端末 IDにより特定される機種に対応する端末共通鍵を取得し、取得した 端末共通鍵を、受け取ったカード IDにて暗号ィ匕して、暗号ィ匕した端末共通鍵をカー ド 2002bへ送信する。
[0275] カード 2002bは、暗号ィ匕された端末共通鍵を受け取ると、受け取った暗号化された 端末共通鍵を端末共通鍵格納部 2043bへ格納する。
カード 2002bは、個別暗号ィ匕デバイス鍵の生成時に、暗号化された端末共通鍵を 復号する。
(10)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよ!/、。
[0276] (C— 1— 7)まとめ
上記第 3の変形例では、上記第 2の変形例により生じる効果に加え、複数のデバイ ス鍵をカード IDにて暗号ィ匕するので、カード毎に格納すべき複数のデバイス鍵を個 別化することができる。これにより、 1枚のカードを用いて複数の端末それぞれに、異 なるデバイス鍵を配布することができる。
[0277] また、 1枚のカードは、複数のデバイス鍵 (ここでは、配布用暗号ィ匕デバイス鍵)を格 納するので、サーバへのアクセス回数を減らすことができる。
(D— 1)第 4の変形例
上記第 3の変形例では、カードにてデバイス鍵の個別化を行ったが、これに限定さ れない。デバイス鍵の個別化は、デバイス鍵の配送対象である端末で行ってもよい。
[0278] ここで、本変形例では、情報の暗号化方法として、秘密暗号方式を用いる。また、 デバイス鍵とは、コンテンツを暗号ィ匕及び復号するための鍵 (以下、コンテンツ鍵とい う。)を暗号ィ匕及び復号するための鍵である。
以下、この場合のシステムの構成及び、各装置の構成について説明する。 デバイス鍵配布システム 2100は、図 23にて示すように、端末 (証明装置) 2101、 カード (検証装置) 2102、ネットワーク接続端末 2103及びサーバ 2104から構成され ている。
[0279] 端末 2101は、ネットワークとは非接続の端末であり、上記実施の形態にて示す端 末 N0105、 · · ·、端末 Z0106に相当する。端末 2101は、デバイス鍵と、暗号化され たコンテンツ鍵を復号するためのプログラム(以下、コンテンツ鍵復号プログラム)とを 有している。また、端末 2101は、デバイス鍵の取得 (更新)時に、カード 2102からデ バイス鍵を暗号ィ匕するための個別暗号ィ匕プログラムを受け取る。個別暗号化プロダラ ムについては後述する。
[0280] カード 2102は、端末に装着されると、当該端末を識別するための端末 IDを取得し 、記憶する。ここでは、カード 2102は、端末 2101を識別するための端末 IDを予め記 憶している。つまり、カード 2102は、過去に一度、端末 2101に装着されたものとする 。カード 2102は、上記実施の形態にて示す CRL更新時にて、予め記憶している端 末 IDをネットワーク接続端末 2103へ出力する。
[0281] ネットワーク接続端末 2103は、端末 IDをサーバ 2104へネットワークを介して送信 する。ネットワーク接続端末 2103は、サーバ 2104から、個別暗号化プログラムに対 する更新プログラム(以下、第 1の更新プログラムという。)、コンテンツ鍵復号プロダラ ムに対する更新プログラム (以下、第 2の更新プログラムという。)、個別暗号ィ匕プログ ラムに対する第 1の正当性確認情報、コンテンツ鍵復号プログラムに対する第 2の正 当性確認情報、及び複数の秘密情報を受け取り、受け取った各情報をカード 2102 へ出力する。
[0282] ここで、秘密情報とは、配布用暗号ィ匕デバイス鍵と暗号ィ匕個別配送鍵との組からな る。配布用暗号ィ匕デバイス鍵は、デバイス鍵を、デバイス鍵毎に個別に割り当てられ た個別配送鍵にて暗号ィ匕したものである。暗号化個別配送鍵は、個別配送鍵を、端 末共通鍵にて暗号ィ匕したものである。ここでの、暗号化方式は、上述したように秘密 鍵暗号化方式である。
[0283] サーバ 2104は、端末 IDをネットワーク接続端末 2103から受け取ると、端末 IDに対 応する更新プログラム、及び正当性確認情報と、複数の秘密情報とを送信する。 ここで、正規のデバイス鍵、及び個別配送鍵の暗号化について説明する。 サーバ 2104は、図 24にて示すように、デバイス鍵を、対応する個別配送鍵にて暗 号化して、配布用暗号ィ匕デバイス鍵を生成する (ステップ S2200)。
[0284] サーバ 2104は、個別配送鍵を、端末共通鍵にて暗号化して、暗号化個別配送鍵 を生成する(ステップ S2205)。
サーバ 2104は、生成した配布用暗号ィ匕デバイス鍵と暗号ィ匕個別配送鍵との組か らなる秘密情報をカード 2102へ送信する。
(D— 1— 1)端末 2101
端末 2101は、図 23にて示すように、 ID格納部 2110、第 1のプログラム格納部 211 1、第 2のプログラム格納部 2112、端末測定部 2113、第 1のプログラム更新部 2114 、第 2のプログラム更新部 2115、デバイス鍵個別化部 2116、個別化デバイス鍵蓄積 部 2117、デバイス鍵復号部 2118から構成されている。
[0285] なお、端末 2101の構成要素の一部または全部は、 1個のシステム LSI (Large Sc ale Integration:大規模集積回路)から構成されているものとし、システム LSIには 、端末 2101と同種の端末と共通の鍵 (以下、端末共通鍵)を記憶している。ここで、 端末共通鍵は、耐タンパ性により秘匿性を有して 、る。
(D—1— 1— 1) ID格納部 2110、第 1のプログラム格納部 2011、第 2のプログラム 格納部 2112
ID格納部 2110は、当該端末の端末 ID2200を予め記憶している。
[0286] ここで、 ID格納部 2110は、耐タンパ性を有しており、端末 ID2200の改竄はできな い。
第 1のプログラム格納部 2111及び第 2のプログラム格納部 2112は、上記実施の形 態におけるプログラム格納部 0708に相当する。
第 1のプログラム格納部 2111は、個別暗号ィ匕プログラムを記憶するための領域を 有している。
[0287] 第 1のプログラム格納部 2111は、デバイス鍵の受信時に、個別暗号ィ匕プログラムが 格納され、その後、第 2のプログラム更新部 2115の動作開始時には、個別暗号化プ ログラムは消去される。
第 2のプログラム格納部 2112は、上記実施の形態におけるプログラム格納部 0708 が記憶して 、る各プログラムに加えて、個別暗号ィ匕された正規のデバイス鍵を復号 するためのプログラム(以下、デバイス鍵復号プログラム)、及びコンテンツ鍵復号プ ログラムを予め記憶して 、る。
[0288] (D— 1 1 2)端末測定部 2113
端末測定部 2113は、上記実施の形態におけるセキュアモジュール 0707、および ブートコード 0703、オペレーティングシステム 0709、再生制御プログラム 0711のセ キュアモジュール 0707制御部分に相当する。
端末測定部 2113は、個別暗号ィ匕プログラムの PCR値 (以下、第 1の PCR値)を測 定 (算出)する。端末測定部 2113は、 ID格納部 2110に格納されている端末 ID220 0を取得する。端末測定部 2113は、取得した端末 ID2200と、算出した第 1の PCR 値とに対して、 PCR値拡張コマンドを施して、個別暗号ィ匕プログラムの PCR値に端末 ID2200が反映された PRC値 (以下、第 1の ID付 PCR値という。)を生成する。端末 測定部 2113は、生成した第 1の ID付 PCR値をカード 2102へ出力する。
[0289] 端末測定部 2113は、コンテンツ鍵復号プログラムの PCR値 (以下、第 2の PCR値) を測定 (算出)する。端末測定部 2113は、 ID格納部 2110に格納されている端末 ID 2200を取得する。端末測定部 2113は、取得した端末 ID2200と、算出した第 2の P CR値とに対して、 PCR値拡張コマンドを施して、コンテンツ鍵復号プログラムの PCR 値に端末 ID2200が反映された PRC値 (以下、第 2の ID付 PCR値という。)を生成す る。端末測定部 2113は、生成した第 1の ID付 PCR値をカード 2102へ出力する。
[0290] なお、各測定のタイミングは、上記実施の形態と同様に、個別暗号ィ匕プログラムの ロード時、コンテンツ鍵復号プログラムのロード時であり、各出力のタイミングは、共に コンテンツの再生時である。
測定方法については、上記実施の形態と同様であるので、ここでの説明は省略す る。
(D— 1— 1— 3)第 1のプログラム更新部 2114、第 2のプログラム更新部 2115 第 1のプログラム更新部 2114は、カード 2102から個別暗号ィ匕プログラム (以下、第 1の更新プログラムともいう。)を受け取ると、受け取った第 1の更新プログラムを第 1の プログラム格納部 2111へ格納する。
[0291] 第 1のプログラム更新部 2114は、個別暗号ィ匕プログラムの格納後、ステップ S040 8と同様に、システムのリセットを端末 2101のオペレーティングシステムに依頼する。 第 2のプログラム更新部 2115は、カード 2102からコンテンツ鍵復号プログラムに対 する更新プログラム(以下、第 2の更新プログラム)を受け取ると、第 1のプログラム格 納部 2111に格納されて 、る個別暗号化プログラムを消去する。
[0292] 第 2のプログラム更新部 2115は、受け取った第 2の更新プログラムを用いてコンテ ンッ鍵復号プログラムを更新し、その後、ステップ S0408と同様〖こ、システムのリセッ トを端末 2101のオペレーティングシステムに依頼する。
(D- 1 - 1 -4)デバイス鍵個別化部 2116
デバイス鍵個別化部 2116は、第 1のプログラム格納部 2011にて格納されて 、る個 別暗号ィ匕プログラムが起動され、実行されることで実現される。
[0293] デバイス鍵個別化部 2116は、カード 2102から 1個の配布用暗号ィ匕デバイス鍵を 受け取ると、 ID格納部 2110から端末 ID2200を取得する。
デバイス鍵個別化部 2116は、取得した端末 IDを用いて、受け取った配布用暗号 化デバイス鍵を暗号ィ匕して、個別暗号ィ匕デバイス鍵を生成する。
デバイス鍵個別化部 2116は、生成した個別暗号ィ匕デバイス鍵を、個別化デバイス 鍵蓄積部 2117に格納する。
[0294] (D— 1 1 5)個別化デバイス鍵蓄積部 2117
個別化デバイス鍵蓄積部 2117は、デバイス鍵個別化部 2116にて生成された個別 暗号化デバイス鍵を格納する領域を有して!/、る。
(D- 1 - 1 -6)デバイス鍵復号部 2118
デバイス鍵復号部 2118は、第 2のプログラム格納部 2011にて格納されて 、るデバ イス鍵復号プログラムが起動され、実行されることで実現される。
[0295] デバイス鍵復号部 2118は、カード 2102から、個別化デバイス鍵蓄積部 2117に格 納されている個別暗号ィ匕デバイス鍵に対応する暗号ィ匕個別配送鍵を受け取る。 デバイス鍵個別化部 2116は、受け取った暗号ィ匕個別配送鍵を、所定の格納領域 (例えば、個別化デバイス鍵蓄積部 2117)に格納する。
デバイス鍵復号部 2118は、受け取った暗号ィ匕個別配送鍵に対応する個別暗号ィ匕 デバイス鍵を、個別化デバイス鍵蓄積部 2117から取得する。 [0296] デバイス鍵復号部 2118は、 ID格納部 2110から端末102200を取得し、取得した 端末 ID2200を用いて、個別化デバイス鍵蓄積部 2117から取得した個別暗号ィ匕デ バイス鍵を復号して、配布用暗号ィ匕デバイス鍵を生成する。
デバイス鍵復号部 2118は、当該端末の端末共通鍵を取得し、取得した端末共通 鍵を用いて、受け取った暗号ィ匕個別配送鍵を復号して、個別配送鍵を生成する。
[0297] デバイス鍵個別化部 2116は、生成した個別配送鍵を用いて、配布用暗号化デバ イス鍵を復号して、デバイス鍵を生成する。
(D— 1— 2)カード 2102
カード 2102は、図 23にて示すように、秘密情報提供部 2120、端末 ID格納部 212 1、正当性確認情報格納部 2122、第 1の更新プログラム格納部 2123、第 2の更新プ ログラム格納部 2124、秘密情報取得部 2125、正当性確認情報取得部 2126、第 1 の更新プログラム取得部 2127、第 2の更新プログラム取得部 2128、正当性確認部 2 129、第 1のプログラム出力部 2130、第 2のプログラム出力部 2131、及び確認情報 個別化部 2140から構成されて 、る。
[0298] (D—1— 2—1)秘密情報提供部 2120
秘密情報提供部 2120は、図 23にて示すように、秘密情報蓄積部 2132及びスイツ チ 2133を有している。
秘密情報蓄積部 2132は、上記実施の形態にて示すコンテンツ格納部 0807に相 当している。秘密情報蓄積部 2132は、ネットワーク接続端末 2103を介してサーバ 2 104から受け取った複数の秘密情報を蓄積している。具体的には、秘密情報蓄積部 2132は、図 25にて示すように秘密情報管理テーブル T2100を有している。
[0299] 秘密情報管理テーブル T2100は、配布用暗号化デバイス鍵と暗号化個別配送鍵 とからなる組を 1個以上記憶するための領域を有している。
配布用暗号ィ匕デバイス鍵及び暗号ィ匕個別配送鍵については、上述しているので、 ここでの説明は省略する。
ここで、 E (x、 y)は、データ yを暗号ィ匕鍵 Xで暗号した結果を示す。 DK1、 DK2, D K3、…は、デバイス鍵を、 Deli-Key 1, Deli— Key2、 Deli -Key 3,…は、 DK 1、 DK2, DK3、 . . .に対応する個別配送鍵を、 MKは、端末共通鍵を、それぞれ示 す。
[0300] スィッチ 2133は、上記実施の形態にて示す図 10のステップ S1005におけるコンテ ンッの鍵を出力する動作に相当し、正当性確認部 2129の制御により動作する。端末 が正当であると判断される場合には、スィッチ 2133は、端末が 1つの配布用暗号ィ匕 デバイス鍵と、それに対応する暗号ィ匕個別配送鍵とを取得できるように、端末と秘密 情報蓄積部 2132とを接続する。端末が正当でないと判断される場合には、スィッチ 2133は、端末と秘密情報蓄積部 2132とを接続しない。具体的に、接続するとは端 末 2101が秘密情報蓄積部 2132から情報を取得できる状態にすることである。
[0301] 秘密情報提供部 2120は、正当性確認部 2129から第 1の PCR値を用いた正当性 確認により端末 2101が正当であることを示す第 1の OK情報を受け取ると、端末 210 1と秘密情報蓄積部 2132とが接続するようスィッチを制御し、端末 2101のオペレー ティングシステムに対して個別暗号ィ匕プログラムの起動を要求する。
秘密情報提供部 2120は、正当性確認部 2129から第 2の PCR値を用 、た正当性 確認により端末 2101が正当であることを示す第 2の OK情報を受け取ると、端末 210 1と秘密情報蓄積部 2132とが接続するようスィッチを制御し、端末 2101のオペレー ティングシステムに対してデバイス鍵復号プログラムの起動を要求する。
[0302] 秘密情報提供部 2120は、正当性確認部 2129から端末 2101が正当でないことを 示す NG情報を受け取ると、端末 2101と秘密情報蓄積部 2132とが接続しないように スィッチを制御する。
秘密情報提供部 2120は、過去に、端末へ出力した配布用暗号ィ匕デバイス鍵を、 再度出力しないように管理している。例えば、複数の秘密情報それぞれに、フラグを 対応付ける。具体的には、秘密情報提供部 2120は、未出力の配布用暗号化デバイ ス鍵には値「0」を、出力済の配布用暗号ィ匕デバイス鍵には値「1」を、それぞれ対応 付ける。
[0303] 秘密情報提供部 2120は、配布用暗号ィ匕デバイス鍵を、当該配布用暗号ィ匕デバイ ス鍵の出力先である端末の端末 IDとを対応付けて管理している。
これにより、上記にて示すデバイス鍵復号部 2118は、出力済であり、且つ当該端 末 2101と対応付けられた配布用暗号化デバイス鍵に対応する暗号化個別配送鍵を 取得することにより、デバイス鍵を生成することができる。
[0304] (D— 1— 2— 2)端末 ID格納部 2121
端末 ID格納部 2121は、上記第 1の変形例にて示す端末 ID格納部 2021と同様で あるので、ここでの説明は省略する。
(D 1— 2— 3)正当性確認情報格納部 2122
正当性確認情報格納部 2122は、上記実施の形態における CRLデータベース 08 05の正当な PCR値の格納部位に相当する。
[0305] 正当性確認情報格納部 2122は、ネットワーク接続端末 2003を介してサーバ 200 4から受け取った第 1の正当性確認情報と、端末 ID2200とから生成された第 1の ID 付 PCR値 (以下、第 1の個別化確認情報ともいう。)を、端末 ID格納部 2121にて記 憶されて 、る端末 IDと対応付けて蓄積して 、る。
正当性確認情報格納部 2122は、ネットワーク接続端末 2003を介してサーバ 200 4から受け取った第 2の正当性確認情報と、端末 ID2200とから生成された第 2の ID 付 PCR値 (以下、第 2の個別化確認情報ともいう。)を、端末 ID格納部 2121にて記 憶されて 、る端末 IDと対応付けて蓄積して 、る。
[0306] ここでは、正当性確認情報格納部 2122は、第 1及び第 2の個別化確認情報それぞ れを、端末 2101の端末 ID2200と対応付けて記憶して 、るものとする。
(D— 1 2— 4)第 1の更新プログラム格納部 2123、第 2の更新プログラム格納部 2 124
第 1の更新プログラム格納部 2123及び第 2の更新プログラム格納部 2124は、上記 実施の形態における CRLデータベース 0805の更新プログラムの格納部位に相当す る。
[0307] 第 1の更新プログラム格納部 2123は、ネットワーク接続端末 2103を介してサーバ 2 104から受け取った第 1の更新プログラム (個別暗号ィ匕プログラム)を、端末 ID格納 部 2121にて記憶されている端末 IDと対応付けて蓄積している。ここでは、第 1の更 新プログラム格納部 2123は、第 1の更新プログラムを、端末 2101の端末 ID2200と 対応付けて記憶して 、るものとする。
[0308] 第 2の更新プログラム格納部 2124は、ネットワーク接続端末 2103を介してサーバ 2 104から受け取った第 2の更新プログラムを、端末 ID格納部 2121にて記憶されてい る端末 IDと対応付けて蓄積している。ここでは、第 2の更新プログラム格納部 2124は 、第 2の更新プログラムを、端末 2101の端末 ID2200と対応付けて記憶しているもの とする。
[0309] なお、上記にて示す CRLデータベース 0805は、本変形例にて示す端末 ID格納 部 2121、正当性確認情報格納部 2122、第 1の更新プログラム格納部 2123及び第 2の更新プログラム格納部 2124から構成されていることが分かる。
(D- 1 - 2- 5)秘密情報取得部 2125
秘密情報取得部 2125は、上記実施の形態にて示す図 9における権利購入処理に 相当する。
[0310] 秘密情報取得部 2125は、ネットワーク接続端末 2103を介してサーバ 2104から複 数の秘密情報を受け取ると、受け取った複数の秘密情報を秘密情報蓄積部 2132の 秘密情報管理テーブル T2100へ格納する。
ここで、秘密情報取得部 2125による個別暗号化秘密情報の受け取り、及び格納の タイミングは、例えば、コンテンツの購入時である。
[0311] (D— 1 2— 6)正当性確認情報取得部 2126
正当性確認情報取得部 2126は、上記実施の形態にて示す図 9における CRL更 新処理、特に CRLデータベースの正規の PCR値の更新に相当する。
正当性確認情報取得部 2126は、ネットワーク接続端末 2003を介してサーバ 200 4から、個別暗号ィ匕プログラムに対する第 1の正当性確認情報、及びコンテンツ鍵復 号プログラムに対する第 2の正当性確認情報を受け取ると、受け取った第 1及び第 2 の正当性確認情報を確認情報個別化部 2140へ出力する。
[0312] (D— 1 2— 7)第 1の更新プログラム取得部 2127、第 2の更新プログラム取得部 2 128
第 1の更新プログラム取得部 2127、及び第 2の更新プログラム取得部 2128は、上 記実施の形態にて示す図 9における CRL更新処理、特に CRLデータベースの更新 プログラムの更新に相当する。
[0313] 第 1の更新プログラム取得部 2127は、ネットワーク接続端末 2103を介してサーバ 2 104から第 1の更新プログラム (個別暗号ィ匕プログラム)を受け取ると、受け取った第 1 の更新プログラムを第 1の更新プログラム格納部 2123へ格納する。
第 2の更新プログラム取得部 2128は、ネットワーク接続端末 2103を介してサーバ 2 104から第 2の更新プログラムを受け取ると、受け取った第 2の更新プログラムを第 2 の更新プログラム格納部 2124へ格納する。
[0314] (D— 1 2— 8)正当性確認部 2129
正当性確認部 2129は、上記実施の形態にて示す図 10における S1003に相当す る。
正当性確認部 2129は、端末 2101から第 1の ID付 PCR値を受け取ると、端末 210 1と対応付けられた第 1の個別化確認情報を、正当性確認情報格納部 2122から取 得する。正当性確認部 2129は、受け取った第 1の ID付 PCR値と第 1の個別化確認 情報とがー致するカゝ否かを判断する。一致すると判断する場合には、正当性確認部 2129は、第 1の OK情報を秘密情報提供部 2120へ出力する。一致しないと判断す る場合には、正当性確認部 2129は、 NG情報を秘密情報提供部 2120及び第 1の プログラム出力部 2130へ出力する。
[0315] 正当性確認部 2129は、端末 2101から第 2の ID付 PCR値を受け取ると、端末 210 1の第 1のプログラム格納部 2111に第 1の更新プログラム (個別暗号ィ匕プログラム)が 消去されているカゝ否かを判断する。なお、消去されているカゝ否かの判断に第 2の個別 化確認情報を用いてもよい。端末 2101から受け取った第 2の ID付 PCR値と第 2の個 別化確認情報との比較を行い、一致していれば消去されていると判断してもよい。こ こで、個別暗号ィ匕プログラムが消去されているか否かを判断できるのは、第 2の個別 化確認情報を生成するために用いた対象となるプログラムに個別暗号ィ匕プログラム が含まれないからである。
[0316] 消去されていないと判断する場合には、正当性確認部 2129は、端末 2101のオペ レーティングシステムに第 1の更新プログラム (個別暗号ィ匕プログラム)を消去するよう に依頼し、その後、再度、端末 2101の第 1のプログラム格納部 2111に第 1の更新プ ログラム (個別暗号ィ匕プログラム)が消去されて 、る力否かを判断する。
消去されていると判断する場合には、正当性確認部 2129は、端末 2101と対応付 けられた第 2の個別化確認情報を、正当性確認情報格納部 2122から取得する。正 当性確認部 2129は、受け取った第 2の ID付 PCR値と第 2の個別化確認情報とがー 致するか否かを判断する。一致すると判断する場合には、正当性確認部 2129は、 第 2の OK情報を秘密情報提供部 2120へ出力する。一致しないと判断する場合に は、正当性確認部 2129は、 NG情報を秘密情報提供部 2120及び第 2のプログラム 出力部 2131へ出力する。
[0317] なお、第 1の変形例と同様、正当性確認部 2129をステップ S1002及び S1003に 相当するとしてもよい。
(D— 1— 2— 9)第 1のプログラム出力部 2130、第 2のプログラム出力部 2131 第 1のプログラム出力部 2130は、正当性確認部 2129から NG情報を受け取ると、 端末 2101に対する第 1の更新プログラム (個別暗号ィ匕プログラム)を第 1の更新プロ グラム格納部 2123から取得する。第 1のプログラム出力部 2130は、取得した第 1の 更新プログラムを端末 2101の第 1のプログラム更新部 2114へ出力する。
[0318] 第 2のプログラム出力部 2131は、正当性確認部 2129から NG情報を受け取ると、 端末 2101に対する第 2の更新プログラムを第 2の更新プログラム格納部 2124から取 得する。第 2のプログラム出力部 2130は、取得した第 2の更新プログラムを端末 210 1の第 2のプログラム更新部 2115へ出力する。
(D— 1 2— 10)確認情報個別化部 2140
確認情報個別化部 2140は、正当性確認情報取得部 2126から第 1の正当性確認 情報、及び第 2の正当性確認情報を受け取ると、端末 ID格納部 2121から端末 ID22 00を取得する。
[0319] 確認情報個別化部 2140は、第 1の正当性確認情報と、端末 ID2200とに PCR値 拡張コマンドと等価な処理を施して、個別暗号ィ匕プログラムの PCR値に端末 IDが付 加された第 1の個別化確認情報を生成する。確認情報個別化部 2140は、生成した 第 1の個別化確認情報を正当性確認情報格納部 2122へ格納する。
確認情報個別化部 2140は、第 2の正当性確認情報と、端末 ID2200とに PCR値 拡張コマンドと等価な処理を施して、コンテンツ鍵復号プログラムの PCR値に端末 ID が付加された第 2の個別化確認情報を生成する。確認情報個別化部 2140は、生成 した第 2の個別化確認情報を正当性確認情報格納部 2122へ格納する。
[0320] (D— 1— 3)ネットワーク接続端末 2103
ネットワーク接続端末 2103は、自身に装着されたカード 2102の端末 ID格納部 21 21から端末 2101の端末 IDを取得すると、取得した端末 IDを、ネットワークを介して サーバ 2104へ出力する。
その後、ネットワーク接続端末 2103は、サーバ 2104からネットワークを介して、出 力した端末 IDと対応付けられた第 1及び第 2の更新プログラムと、第 1及び第 2の正 当性確認情報と、複数の秘密情報を受け取り、受け取った各情報をカード 2102へ 格納する。
[0321] (D— 1 4)サーバ 2104
サーバ 2104は、上記実施の形態と同様に、 CRLデータベースを有しており、端末 毎に配布すべき第 1及び第 2の更新プログラム及び第 1及び第 2の正当性確認情報 を管理している。なお、第 1、第 2の更新プログラム及び第 1、第 2の正当性確認情報 は、端末の機種毎に異なるとする。
[0322] また、サーバ 2104は、端末共通鍵を予め記憶し、管理して!/、る。
サーバ 2004は、複数のデバイス鍵を予め生成しており、生成した秘密情報を記憶 '管理している。サーバ 2104は、端末に一度配布した秘密情報を再度配布しないよ うに管理している。なお、サーバ 2104が管理している複数の秘密情報それぞれは、 互いに異なる。さらに、サーバ 2104は、管理している全ての秘密情報を配布した場 合、これまでに管理して!/、た複数の秘密情報それぞれとは異なる複数の秘密情報を 生成する。上述したように、再度生成された複数の秘密情報それぞれについても、互 いに異なる。
[0323] サーバ 2104は、ネットワーク接続端末 2103からネットワークを介して、端末 IDを受 け取ると、受け取った端末 IDから機種を特定し、特定した機種に対応する機種共通 情報 (第 1、第 2の更新プログラム、第 1、第 2の正当性確認情報、及び端末共通鍵) を取得する。
サーバ 2104は、管理している複数のデバイス鍵のうち所定数(2個以上)のデバイ ス鍵と、それぞれに対応する個別配送鍵を取得する。サーバ 2104は、取得した所定 数のデバイス鍵それぞれを、対応する個別配送鍵を秘密鍵とする秘密鍵暗号化方 式により暗号ィ匕して、所定数の配布用暗号ィ匕デバイス鍵を生成する。
[0324] サーバ 2104は、配布用暗号ィ匕デバイス鍵の生成に用いた所定数の個別配送鍵そ れぞれを、端末共通鍵を秘密鍵とする秘密鍵暗号ィ匕方式により暗号ィ匕して、所定数 の暗号化個別配送鍵を生成する。
サーバ 2104は、端末個別データー式 (生成した複数の秘密情報と、取得した第 1 、第 2の更新プログラム及び第 1、第 2の正当性確認情報)を、ネットワークを介してネ ットワーク接続端末 2103へ出力する。
[0325] ここで、秘密鍵とは、上述したように、配布用暗号ィ匕デバイス鍵と暗号ィ匕個別配送 鍵とからなる組である。
(D- 1 - 5)デバイス鍵配布システム 2100の動作
デバイス鍵配布システム 2100の動作について、図 26及び図 27にて示す流れ図を 用いて説明する。
[0326] 以下の説明では、カード 2102が、図 18にて示すステップ S2010、 S2015を実行 し、端末 2101の端末 ID2200をサーバ 2104へ送信した後の動作について説明す る。
サーバ 2104は、ネットワーク接続端末 2103からネットワークを介して、端末 IDを受 け取ると、受け取った端末 IDから機種を特定し、特定した機種に対応する機種共通 情報 (第 1、第 2の更新プログラム、第 1、第 2の正当性確認情報、及び端末共通鍵) を取得する。サーバ 2104は、管理している複数のデバイス鍵のうち所定数(2個以上 )のデバイス鍵と、それぞれに対応する個別配送鍵を取得する。サーバ 2104は、取 得した所定数のデバイス鍵それぞれを、対応する個別配送鍵を用いて暗号化して、 所定数の配布用暗号ィ匕デバイス鍵を生成する。サーバ 2104は、配布用暗号化デバ イス鍵の生成に用いた所定数の個別配送鍵それぞれを、端末共通鍵を秘密鍵とす る秘密鍵暗号化方式により暗号化して、所定数の暗号化個別配送鍵を生成する (ス テツプ S2500)。
[0327] サーバ 2104は、端末個別データー式 (生成した複数の秘密情報と、取得した第 1 、第 2の更新プログラム及び第 1、第 2の正当性確認情報)を、ネットワーク接続端末 2 103を介してカード 2102へ出力する(ステップ S2505、 S2510, S2515, S2520) 。カードは、サーバ 2104からネットワーク接続端末 2103を介して、端末個別データ 一式を受け取ると、所定の格納領域へ格納する。具体的には、秘密情報取得部 212 5は、サーバ 2104から複数の秘密情報を受け取ると、受け取った複数の秘密情報を 秘密情報管理テーブル T2100へ格納する。正当性確認情報取得部 2126は、サー ノ 2004から第 1及び第 2の正当性確認情報を受け取ると、受け取った第 1及び第 2 の正当性確認情報を確認情報個別化部 2140へ出力する。第 1の更新プログラム取 得部 2127は、サーバ 2104から第 1の更新プログラム (個別暗号ィ匕プログラム)を受 け取ると、受け取つた第 1の更新プログラムを第 1の更新プログラム格納部 2123へ格 納する。第 2の更新プログラム取得部 2128は、サーバ 2104から第 2の更新プロダラ ムを受け取ると、受け取った第 2の更新プログラムを第 2の更新プログラム格納部 212 4へ格納する。
[0328] 確認情報個別化部 2140は、第 1及び第 2の正当性確認情報を受け取ると、端末 2 101の端末 ID2200を取得する (ステップ S2530)。具体的には、確認情報個別化部 2140は、端末 ID格納部 2121から端末 ID2200を取得する。
確認情報個別化部 2140は、取得した端末 ID2200を用いて、第 1及び第 2の正当 性確認情報それぞれに対する第 1及び第 2の個別化確認情報を生成する (ステップ S2525) 0具体的には、確認情報個別化部 2140は、第 1の正当性確認情報と端末 I D2200とに対して、 PCR値拡張コマンドを施して、第 1の個別化確認情報を生成す る。確認情報個別化部 2140は、第 2の正当性確認情報と、端末 ID2200とに PCR 値拡張コマンドを施して、第 2の個別化確認情報を生成する。確認情報個別化部 21 40は、生成した第 1及び第 2の個別化確認情報を正当性確認情報格納部 2122へ 格納する。
[0329] カード 2102は、個別暗号化プログラムを端末 2101へ出力する(ステップ S2540) 端末 2101は、個別暗号ィ匕プログラムをインストールする(ステップ S2545)。
端末 2101は、デバイス鍵取得要求と、第 1の ID付 PCR値をカード 2102の正当性 確認部 2129へ出力する(ステップ S2550)。正当性確認部 2129は、端末 2101から デバイス鍵取得要求と、第 1の ID付 PCR値とを受け取ると、端末 2101の正当性を判 断する(ステップ S2555)。ここでは、カード 2102の正当性確認部 2129は、第 1の個 別化確認情報と、受け取った第 1の ID付 PCR値との比較を行う。
[0330] 正当でないと判断する場合 (ステップ S2555における「NG」)、カード 2102は、個 別暗号ィ匕プログラムを端末 2101へ出力する (ステップ S2560)。端末 2101は、個別 暗号ィ匕プログラムを受け取ると (ステップ S2565)、ステップ S2545へ戻る。具体的に は、正当性確認部 2129は、 NG情報を第 1のプログラム出力部 2130へ出力する。 第 1のプログラム出力部 2130は、正当性確認部 2129から NG情報を受け取ると、端 末 2101に対する個別暗号ィ匕プログラムを第 1の更新プログラム格納部 2123から取 得し、取得した個別暗号ィ匕プログラムを端末 2101の第 1のプログラム更新部 2114へ 出力する。第 1のプログラム更新部 2114は、カード 2102から個別暗号ィ匕プログラム を受け取ると、受け取った個別暗号ィ匕プログラムを、第 1のプログラム格納部 2111に 格納されている個別暗号ィ匕プログラムに上書きして更新し、システムのリセットを端末 2101のオペレーティングシステムに依頼する。
[0331] 正当であると判断する場合 (ステップ S2555における「O :」)、カード 2102の秘密 情報提供部 2120は、 1個の配布用暗号ィ匕デバイス鍵を端末 2101へ出力する (ステ ップ S2570)。具体的には、正当性確認部 2129は、第 1の OK情報を秘密情報提供 部 2120へ出力する。秘密情報提供部 2120は、正当性確認部 2129から第 1の OK 情報を受け取ると、秘密情報蓄積部 2132からフラグの値力 S「0」である 1個の配布用 暗号ィ匕デバイス鍵を取得する。秘密情報提供部 2120は、取得した 1個の配布用暗 号ィ匕デバイス鍵を端末 2101へ出力する。
[0332] 端末 2101のデバイス鍵個別化部 2116は、カード 2102から 1個の配布用暗号ィ匕 デバイス鍵を受け取ると (ステップ S2575)、受け取った配布用暗号ィ匕デバイス鍵を 用いて個別暗号ィ匕デバイス鍵を生成し、生成した個別暗号ィ匕デバイス鍵を個別化デ バイス鍵蓄積部 2117に格納する(ステップ32580)。具体的には、デバイス鍵個別 化部 2116は、 1個の配布用暗号ィ匕デバイス鍵を受け取ると、 ID格納部 2110から端 末 ID2200を取得する。デバイス鍵個別化部 2116は、取得した端末 IDを用いて、受 け取った配布用暗号ィ匕デバイス鍵を暗号ィ匕して、個別暗号化デバイス鍵を生成し、 生成した個別暗号ィ匕デバイス鍵を個別化デバイス鍵蓄積部 2117に格納する。
[0333] カード 2102は、第 2の更新プログラムを端末 2101へ出力する(ステップ S2585)。
端末 2101は、第 2の更新プログラムをインストールし (ステップ S2590)、その後、 第 1のプログラム格納部 2111にて格納されて 、る個別暗号化プログラムを消去する( ステップ S2595)。
[0334] 端末 2101は、暗号化個別配送鍵取得要求と、第 2の ID付 PCR値をカード 2102の 正当性確認部 2129へ出力する (ステップ S 2600)。
正当性確認部 2129は、端末 2101から暗号ィ匕個別配送鍵取得要求と、第 2の ID 付 PCR値とを受け取ると、端末 2101の第 1のプログラム格納部 2111に第 1の更新 プログラム (個別暗号ィ匕プログラム)が消去されて 、るか否かを判断する (ステップ S2 605)。
[0335] 消去されていないと判断する場合には (ステップ S2605における「NO」)、正当性 確認部 2129は、端末 2101のオペレーティングシステムに第 1の更新プログラム (個 別暗号ィ匕プログラム)を消去するように依頼し (ステップ S2610)、その後、ステップ S 2605に戻る。
消去されていると判断する場合には (ステップ S2605における「YES」)、端末 210 1の正当性を判断する (ステップ S2615)。ここでは、カード 2102の正当性確認部 21 29は、第 2の個別化確認情報と、受け取った第 2の ID付 PCR値との比較を行う。
[0336] 正当でないと判断する場合 (ステップ S2615における「NG」)、カード 2102は、第 2 の更新プログラムを端末 2101へ出力する (ステップ S2620)。端末 2101は、第 2の 更新プログラムを受け取ると (ステップ S2625)、ステップ S2590へ戻る。具体的には 、正当性確認部 2129は、 NG情報を第 2のプログラム出力部 2131へ出力する。第 2 のプログラム出力部 2131は、正当性確認部 2129から NG情報を受け取ると、端末 2 101に対する第 2の更新プログラムを第 2の更新プログラム格納部 2124から取得し、 取得した第 2の更新プログラムを端末 2101の第 2のプログラム更新部 2115へ出力 する。第 2のプログラム更新部 2115は、カード 2102から第 2の更新プログラムを受け 取ると、受け取った第 2の更新プログラムを用いてコンテンツ鍵復号プログラムを更新 し、システムのリセットを端末 2101のオペレーティングシステムに依頼する。 [0337] 正当であると判断する場合 (ステップ S2615における「O :」)、カード 2102の秘密 情報提供部 2120は、ステップ S2570にて出力した配布用暗号ィ匕デバイス鍵に対応 する暗号ィ匕個別配送鍵を、端末 2101へ出力する (ステップ S2630)。具体的には、 正当性確認部 2129は、第 2の OK情報を秘密情報提供部 2120へ出力する。秘密 情報提供部 2120は、正当性確認部 2129から第 2の OK情報を受け取ると、秘密情 報蓄積部 2132からフラグの値が「1」であり、且つ端末 2101の端末 ID2200と対応 付けられた配布用暗号ィ匕デバイス鍵に対応する暗号ィ匕個別配送鍵を取得し、取得し た暗号化個別配送鍵を端末 2101のデバイス鍵復号部 2118へ出力する。
[0338] デバイス鍵復号部 2118は、カード 2102から、暗号化個別配送鍵を受け取ると (ス テツプ S2635)、受け取った暗号ィ匕個別配送鍵を所定の格納領域 (例えば、個別化 デバイス鍵蓄積部 2117)に格納する (ステップ S2640)。
デバイス鍵復号部 2118は、個別化デバイス鍵蓄積部 2117に格納されて 、る個別 暗号ィ匕デバイス鍵からデバイス鍵を生成する (ステップ S2645)。具体的には、デバ イス鍵復号部 2118は、受け取った暗号ィ匕個別配送鍵に対応する個別暗号ィ匕デバイ ス鍵を、個別化デバイス鍵蓄積部 2117から取得する。デバイス鍵復号部 2118は、 I D格納部 2110から端末102200を取得し、取得した端末 ID2200を用いて、個別化 デバイス鍵蓄積部 2117から取得した個別暗号ィ匕デバイス鍵を復号して、配布用暗 号化デバイス鍵を生成する。デバイス鍵復号部 2118は、当該端末の端末共通鍵を 取得し、取得した端末共通鍵を用いて、受け取った暗号ィ匕個別配送鍵を復号して、 個別配送鍵を生成する。デバイス鍵個別化部 2116は、生成した個別配送鍵を用い て、配布用暗号ィ匕デバイス鍵を復号して、デバイス鍵を生成する。
[0339] 以下、各ステップが実行されるタイミングの一例を示す。
ステップ S2500から S2535までの動作は、カード 2102がネットワーク接続端末 21 03に装着された場合に実行される。
ステップ S2540力ら S2545までの動作、及びステップ S2585力ら S2595までの動 作は、サービスマンにより端末 2101のプログラムのアップデートを行う場合に実行さ れる。
[0340] ステップ S2550力ら S2580までの動作、ステップ S2555における NG時のステップ S2545の動作、ステップ S2600力ら S2645までの動作、ステップ S2615における N G時のステップ S2590力ら S2595までの動作は、端末 2101の利用者によりコンテン ッの再生の要求があった場合に実行される。
(D— 1 6)その他の変形例
なお、本発明を上記第 4の変形例に基づいて説明してきたが、本発明は、上記第 4 の変形例に限定されないのは、もちろんである。以下のような場合も本発明に含まれ る。
[0341] (1)上記第 4の実施の形態において、サーバ 2104が、取得するデバイス鍵の個数
(所定数)は 2個以上としたが、これに限定されない。
サーバ 2104力 取得するデバイス鍵の個数は 1個以上であればよい。
(2)上記第 4の実施の形態において、サーバ 2104が、取得するデバイス鍵の個数 は予め決められた個数 (所定数)としたが、これに限定されない。
[0342] サーバ 2104が、取得するデバイス鍵の個数は、ネットワーク接続端末にて情報を 送信する際に、ユーザが指定してもよい。
この場合、ネットワーク接続端末 2103は、ユーザから指定された取得個数を、サー バ 2104へ送信する。サーバ 2104は、ネットワーク接続端末 2103から取得個数を受 信すると、受信した取得個数分のデバイス鍵を取得する。
[0343] (3)上記第 4の変形例において、端末 2101は、非ネットワーク接続の端末であると したが、これに限定されない。
端末 2101は、ネットワーク接続可能な端末であるとしてもよい。つまり、端末 2101 は、上記第 4の変形例にて示すネットワーク接続端末 2103が行う動作をも兼ね備え ることで実現できる。
[0344] (4)上記第 4の変形例において、デバイス鍵配布システム 2100は、図 26にて示す ステップ S2540力ら S2545、及びステップ S2585力ら S2590により、サービスマン による端末 2101の個別暗号ィ匕プログラム及びコンテンツ鍵復号プログラムのアップ デートを行うとしたが、これに限定されない。
デバイス鍵配布システム 2000bの動作において、ステップ S2540力ら S2545、及 びステップ S2585力ら S2590を行わなくてちょ!ヽ。 [0345] (5)上記第 4の変形例において、秘密情報提供部 2120は、過去に、端末へ出力し た秘密情報を、再度出力しないように、秘密情報蓄積部 2132にて格納されている複 数の秘密情報それぞれに、フラグを対応付けたが、これに限定されない。
秘密情報提供部 2120は、出力した 1以上の秘密情報力もなるリストを生成し、生成 したリストを用いて、過去に、端末へ出力した秘密情報を、再度出力しないように管理 してちよい。
[0346] または、秘密情報提供部 2120は、出力した秘密情報を、消去してもよい。
つまり、端末に対する秘密情報のインストール状況をアップロードして、出力済の秘 密情報の管理、未出力に秘密情報の管理、若しくはその双方の管理ができればよい
(6)上記第 4の実施の形態において、端末 2101は、個別暗号化プログラムの利用 後、個別暗号ィ匕プログラムを消去したが、これに限定されない。
[0347] 端末 2101は、個別暗号ィ匕プログラムを消去しなくてもよい。
この場合、端末 2101は、カード 2102による正当性確認時に正当でないと判断され る場合、つまり不正な個別暗号ィ匕プログラムが格納されている場合に、新しい個別暗 号ィ匕プログラム (正規の個別暗号ィ匕プログラム)を受け取る。この場合、カードは、個 別暗号ィ匕プログラムを更新したことが確認された後でなくては配布用暗号ィ匕デバイス 鍵を端末に出力しな ヽので、不正な個別暗号ィ匕プログラムが配布暗号ィ匕デバイス鍵 を漏洩することを防げる。
[0348] (7)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよ!/、。
(D— 1 7)まとめ
上記第 4の変形例において、正規の端末であれば、デバイス鍵の個別暗号化も正 しく実施することができるので、正当性確認後に、デバイス鍵 (ここでは、配布用暗号 化デバイス鍵)を出力することで、個別暗号化時の不正を防止することができる。
[0349] また、端末 2101は、個別暗号ィ匕には専用にプログラム (個別暗号ィ匕プログラム)を 用い、個別暗号化後に、使用した個別暗号ィ匕プログラムを消去するので、個別暗号 化方法の漏洩を防止することができる。
また、カード 2102は、端末 2101内の個別暗号ィ匕プログラムが消去されていないと 、暗号化個別配送鍵を、端末 2101に出力しないようにしているので、個別暗号化プ ログラムの消去を強制することができる。
[0350] (E— 1)その他の変形例
なお、本発明を上記実施の形態及び第 1から第 4の変形例に基づいて説明してき たが、本発明は、上記実施の形態及び第 1から第 4の変形例に限定されないのは、も ちろんである。以下のような場合も本発明に含まれる。
(1)上記各変形例において、デバイス鍵はサーバにて予め生成されるとした力 こ れに限定されない。
[0351] デバイス鍵はカードにて生成してもよい。
この場合、カードは、装着された端末に、生成したデバイス鍵を出力するとともに、 出力先の端末を識別する端末 IDと出力したデバイス鍵とを対応付けて、所定の記憶 領域に格納しておく。カードは、ネットワーク接続端末を介してサーバとデータの送受 信を行う際に、格納しているデバイス鍵と対応する端末 IDとをサーバへ送信する。
[0352] サーバは、デバイス鍵と対応する端末 IDとを受け取ると、受け取ったデバイス鍵と 端末 IDとを管理する。
(2)上記各実施の形態において、端末の正当性を確認するために、カードは、実 際に端末にロードされたプログラムの PCR値と、正規の PCR値との比較による認証( Attestationによる認証)を行ったが、これに限定されない。
[0353] カードは、プログラムのバージョンチェックによる端末の正当性を確認してもよい。
または、カードは、プログラムに固有の鍵 (ファームフェアに固有の鍵)を取得して、 端末の正当性を確認してもよい。
または、カードは、チャレンジレスポンス認証により端末の正当性を確認してもよい。
(3)上記各実施の形態において、カードは、サーノくからネットワークを介して、更新 プログラムを受け取った力 これに限定されない。
[0354] カードは、サーノ から放送波にて送信された更新プログラムを、カードを装着するこ とができ、且つ放送波を受信することのできる端末 (放送受信端末)を介して受け取つ てもよい。
または、サーバは、放送波にて、プログラムの更新が必要である旨の情報(更新情 報)のみを送信してもよい。この場合、カードは、放送受信端末を介して、更新情報を 受け取り、放送受信端末を介してユーザへ更新情報を受け取った旨のメッセージを 出力(表示)する。その後、カードは、ユーザの操作にて、サーバから、ネットワーク及 びネットワーク接続端末を介して、更新プログラムを受け取る。
[0355] また、ネットワークを介さずに、サーバへ直接カードを差し込んで更新プログラムを 受け取るとしてもよ 、。サーバとしてキオスク端末を用いる場合などが考えられる。
(4)上記各変形例において、カードによる端末の正当性の確認にて端末が正当で あると判断された場合にデバイス鍵を出力したが、これに限定されない。
端末が正当であると判断された場合に、カードから端末に出力するデータは、他の データであってもよい。
[0356] 例えば、音楽データ、画像データ、他の鍵 (ワーク鍵、コンテンツ鍵、鍵のチケット) 、新しい機能を有するプログラム (新プログラム)などである。つまり、端末が正当であ ると判断された場合に、カードから端末に出力するデータは、著作権が保護されるデ ータ(上記の音楽データや画像データに相当)や、機密性の高 、データ(上記の他 の鍵や新プログラムに相当)であればよい。
[0357] このとき、カードは、サーノくからネットワーク接続端末を介して、デバイス鍵の代わり に、著作権が保護されるデータや、機密性の高いデータを受け取ることとなる。
(5)上記第 2、第 3及び第 4の変形例において、各デバイス鍵配布システムは、 ΓΑ - 1 -6 (その他の変形例)」の(6— 1)、若しくは(6— 2)と同様に、第 2の端末 IDを用 いた構成であってもよい。
[0358] (6)上記各変形例にて示すシステムは、端末に固有のデバイス鍵を配布し、端末 に対するデバイス鍵の更新 (リニューアル)を行ったが、これに限定されな!、。
システムは、端末に対する他の情報の更新 (リニューアル)を行ってもよ 、。 ここで、端末測定部は上述したように、上記実施の形態におけるセキュアモジユー ルに相当しているので、端末測定部は、 TCG (Trusted Computing Group)で 規格化されて 、る TPM (Trusted Platform Module)と同様の機能を有して!/、る
[0359] 他の情報の更新(リニューアル)の一例として、 TPMに含まれるプラットフォーム(P1 atform)証明書の更新 (リニューアル)について、説明する。
上記第 1の変形例における端末共有鍵を、 TPMにて含まれるエンド一スメントキ一 (EK秘密鍵)に変更し、デバイス鍵をプラットフォーム証明書と変更することで、端末 の TPM (端末測定部)へ送り込むことができる。
[0360] もちろんプラットフォーム証明書の更新に限らず、 EK秘密鍵を用いて他の情報を 更新してちょい。
(7)上記各変形例にて示すシステムは、カードを具備する構成としたが、これに限 定されない。
カードの代わりに、当該カードと同様の構成要素を有する装置 (以下、認証装置)で あってもよい。
[0361] ここで、認証装置は、上記にて示すサーバに組み込まれてもよいし、サーバとは異 なる装置であってもよい。
この場合、例えば、端末は、ネットワーク接続端末と専用のケーブルにて接続され、 更新端末カゝらネットワーク接続端末を介して、更新プログラム、デバイス鍵 (秘密情報 )を受け取る。
[0362] (8)上記の各装置は、具体的には、マイクロプロセッサ、 ROM, RAM,ハードディ スクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュー タシステムである。前記 RAMまたはハードディスクユニットには、コンピュータプロダラ ムが記憶されている。前記マイクロプロセッサ力 前記コンピュータプログラムにしたが つて動作することにより、各装置は、その機能を達成する。ここでコンピュータプロダラ ムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが 複数個組み合わされて構成されたものである。
[0363] (9)上記の各装置を構成する構成要素の一部または全部は、 1個のシステム LSI ( Large Scale Integration:大規模集積回路)から構成されているとしてもよい。シ ステム LSIは、複数の構成部を 1個のチップ上に集積して製造された超多機能 LSIで あり、具体的には、マイクロプロセッサ、 ROM、 RAMなどを含んで構成されるコンビ ユータシステムである。前記 RAMには、コンピュータプログラムが記憶されている。前 記マイクロプロセッサ力 S、前記コンピュータプログラムにしたがって動作することにより 、システム LSIは、その機能を達成する。
[0364] また、上記の各装置を構成する構成要素の各部は、個別に 1チップィ匕されていても 良!、し、一部又は全てを含むように 1チップィ匕されてもょ 、。
また、ここでは、システム LSIとした力 集積度の違いにより、 IC、 LSI,スーパー LS I、ウルトラ LSIと呼称されることもある。また、集積回路化の手法は LSIに限るもので はなぐ専用回路又は汎用プロセッサで実現してもよい。 LSI製造後に、プログラムす ることが可能な FPGA (Field Programmable Gate Array)や、 LSI内部の回路 セルの接続や設定を再構成可能なリコンフィギユラブル'プロセッサーを利用しても良 い。
[0365] さらには、半導体技術の進歩又は派生する別技術により LSIに置き換わる集積回 路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積ィ匕を行って もよい。バイオ技術の適用等が可能性としてありえる。
(10)上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能 な ICカードまたは単体のモジュール力も構成されて 、るとしてもよ 、。前記 ICカード または前記モジュールは、マイクロプロセッサ、 ROM, RAMなどから構成されるコン ピュータシステムである。前記 ICカードまたは前記モジュールは、上記の超多機能 L SIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動 作することにより、前記 ICカードまたは前記モジュールは、その機能を達成する。この ICカードまたはこのモジュールは、耐タンパ性を有するとしてもよ!/、。
[0366] (11)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンビュ ータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプ ログラム力もなるデジタル信号であるとしてもよい。
(12)また、本発明は、前記コンピュータプログラムまたは前記デジタル信号をコン ピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、 C D—ROMゝ MO、 DVDゝ DVD— ROMゝ DVD— RAMゝ BD (Blu—ray Disc)、半 導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されてい る前記デジタル信号であるとしてもよ 、。
[0367] (13)また、本発明は、前記コンピュータプログラムまたは前記デジタル信号を、電 気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、デ ータ放送等を経由して伝送するものとしてもよい。
(14)また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであ つて、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセ ッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
[0368] ( 15)また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移 送することにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク 等を経由して移送すること〖こより、独立した他のコンピュータシステムにより実施すると してちよい。
(16)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよ!/、。 <その他の実施の形態 >
以下に、本発明に関する他の実施の形態について図面を用いて説明する。ここで は、特に TCG規格に準拠した機器認証に着目した実施形態について説明する。 1.実施の形態 1
1. 1 概要
実施の形態 1に係る検証システム 3000は、図 28に示すように、インターネット 3005 に相互に接続された端末装置 (証明装置) 3001、 CAサーバ装置 (検証装置) 3002 、 TPMサーバ装置 3003により構成される。
[0369] 端末装置 3001は TPM (Trusted Platform Module)を搭載しており、初起動 時又は初期化直後に、 CAサーバ装置から、正当な構成 (ノヽ一ドウエア及びソフトゥェ ァ)を有する機器であることを証明する AIK (Attestation Identity Key)クレデン シャル (AIK証明書)を取得する。
TPMは、端末装置 3001の有するプログラムの完全性を示すインテグリティ値 (後 述する)に、拡張処理を施して記録する機能を有するハードウェアモジュールである。
[0370] また、端末装置 3001が実際に動作する際にも、所定のタイミングで、 CAサーバ装 置 3002が検証装置となって、端末装置 3001の正当性を検証 (TCG規格におけるこ のような検証を Attestationと呼ぶ)する。具体的には、プログラムに不正な改竄が加 えられていないか、正常に動作しているかなどを検証する。なお、本実施の形態では 、端末装置 3001に AIKクレデンシャルを発行する CAサーバ装置 3002力 Attest ationにおける検証装置となっている力 CAサーバ装置 3002とは、個別の装置が、 端末装置 3001の動作時における Attestationの検証装置の役割を果たす構成で あっても良い。
1. 2 端末装置 3001の構成
(1)ハードウェア構成
ここで、端末装置 3001のハードウェア構成について図 29を用いて説明する。
[0371] 端末装置 3001ίま、内咅ノ ス 3160により、送受信咅 3103、 CPU3141、 RAM31 45、ハードディスクユニット 3142、セキュア ROM3143及び TPM3117を接続して 構成される。
(1 1)送受信部 3103
送受信部 3103は、インターネット 3005に接続可能なインタフェースを備えており、 インターネット 3005に接続された外部機器との間で情報の送受信を行う。
[0372] (1— 2)セキュア ROM3143
セキュア ROM3143には、機器固有の情報 (機器 ID、機種番号など)、及び、 BIO S3109、ブートローダー 3162といった端末装置 3001を起動する一連のプログラム 群を記憶している。
BIOS3109は、コンピュータに接続されたディスクドライブ、キーボード、ビデオ力 ードなどの周辺機器を制御するプログラム群であって、起動時に最初に実行されるプ ログラムである。 BIOS3109は、複数のブロック力も構成される力 図 29に示すように 、電源投入直後に実行されるブートブロック 3165に CRTM3163 (後述する)が記述 されている。
[0373] ブートローダー 3162は、 OSのカーネルを呼び出す手順を含む。
これらのプログラム及び、ハードディスクユニット 3142に、記憶されている各プログ ラムには、 RTM (Root of Trust Measurements) 3161力含まれて! /、る。これは 、各プログラムが呼び出すプログラムのインテグリティ値を計測する機能を実現するコ ードである。インテグリティ値とは、そのプログラムの完全性を示す値であって、ここで は一例として、呼び出されるプログラムコードのハッシュ値をインテグリティ値とする。 ノ、ッシュ関数には SHA— 1を用いる。これは、一例であって、他の一方向関数を用い ても良いし、呼び出すプログラムのビット数を計数するなど、他の方法でインテグリテ ィ値を計測しても良い。
[0374] 特に、 BIOS3109は、最初に実行されるプログラムであり、 BIOS3109に含まれる RTMコード(図 29の CRTM1363)は、他のプログラムに含まれる RTMコードとは異 なり、 BIOS3109自体のインテグリティ値を計測する手順、及び、 BIOS3109により 呼び出されるプログラムのインテグリティ値を計測する手順を含む。
[0375] BIOS3109は、書き換え不能なセキュア ROM3143に記録されており、 BIOS310 のブートブロック 3156に含まれる RTMコードによって計測された BIOS3109のイン テグリティ値の信頼性を根拠として、 PCR値 (後述する)の、信頼性が保証される。そ のため、 BIOS3109に含まれる RTMコードは、他のプログラムの RTMコードと区別 して CRTM (Core Root of Trust for Masurement)と呼ばれる。
[0376] (1 - 3) CPU3141
CPU3141は、セキュア ROM3143、ハードディスクユニット 3142、 RAM3145に 記憶されて 、る各種のプログラムを実行することで、下記の各種の機能部を実現する
(1—4) RAM (Random Access Memory) 3145
RAM3145は、揮発性の記憶媒体であって、 CPU3141により実行されるプロダラ ムを、ハードディスクユニット 3142又はセキュア ROM3143からロードし、記憶してい る。
[0377] (1— 5)ハードディスクユニット 3142
ハードディスクユニット 3142は、不揮発性で、書き込み及び消去可能な記録媒体 である。ハードディスクユニット 3142は、一例として、図 29に示すような OS及び検証 プログラム等のアプリケーションを記憶して 、る。
図 29には図示していないが、ハードディスクユニット 3142は、プログラムの他にも C PU3141により用いられる各種のデータ、ユーザデータなどを記憶して 、る。
[0378] (1 -6)TPM3117
TPM3117は、インタフェース 3144、 PCR (Platform Configulation Register ) 3146、不揮発メモリ 3110、実行エンジン 3148、舌 L数生成器 3151、 SHA— 1演算 器 3152、 1^\演算器3153、鍵生成器 3154及びプログラムコード格納部 3156を 1 チップ上に形成したものである。
[0379] PCRは、揮発性のメモリで構成され、図 30は、 PCR3146内部を示している。 PCR 3146は、複数の記憶領域 3171、 3172、 3173 · · ·を含んでいる。説明の便宜上、 記憶領域 3171、 3172、 3173 · · ·に記憶される PCR値を、それぞれ、 PCRO、 PCR 1、 PCR2- · ·と記載する。各記憶領域は、ハードディスクユニット 3142又はセキュア ROM3143に記憶されている各プログラムと一意に対応している。例えば、記憶領域 3171は、 BIOSと対応して!/、る。
[0380] 不揮発メモリ 3110は、各種の鍵が記憶されている。これらの鍵については、機能部 の説明において説明する。不揮発メモリ 3110は、各種の鍵を、階層構造を形成して 記憶しており、下位の鍵を上位の鍵を用いて暗号ィ匕して保持している。また、階層構 造のルート鍵となる SRK (StorageRootKey)を記憶して!/、る。
実行エンジン 3148は、プログラムコード格納部 3156に記憶されているプログラム に従って動作し、各演算器を制御することで、各種の機能を実現する。
[0381] 乱数生成器 3151は、乱数 (ノンス)を生成して出力する。
SHA- 1演算器 3152は、入力されたデータをハッシュ関数に代入してハッシュ値 を算出する。ここでは、一例として SHA—1を用いるが、他の一方向関数でも良い。
RSA演算器 3153は、入力されたデータ及び鍵を用いて RSA暗号方式に従った 暗号化演算又は復号演算を行う。
[0382] 鍵生成器 3154は、 RSA暗号に用いられる鍵ペアを生成する回路である。
プログラムコード格納部 3156は、一例として、図 31に示すようにストレージアクセス プログラム 3157、ログ保存プログラム 3158、 PCR値算出プログラム 3159 · · 'など各 種のプログラムを記憶している。これらのプログラムは、実行エンジン 3148により実行 可能な機械語形式で述されている。また、実行エンジン 3148が各プログラムを実行 する際に必要なデータ、演算途中のデータなど、各種のデータを一時的に記憶する
[0383] 上記のストレージアクセスプログラム 3157は、 TPM3117外の記憶媒体(ここでは、 RAM3145、ハードディスクユニット 3142、セキュア ROM)にアクセスする手順を含 むプログラムである。
ログ保存プログラム 3158は、 PCR3146の記憶している PCR値の何れかの値が変 わるたびに、 PCR3146の記憶している PCR値群を取得し、ストレージアクセスプログ ラム 3157により、取得した PCR値群をノヽードディスクユニット 3142に蓄積し、ログ情 報を生成する手順を含むプログラムである。
[0384] PCR値算出プログラム 3159は、 SHA— 1演算器 3152を用いて、メモリ 3108 (後 述)に新たにロードされるプログラムに対応する PCR値を算出し、算出した PCR値を 、 PCR3146内の適切な領域に書き込む手順を含むプログラムである。
(1— 7)入力部 3166及び表示部 3167
入力部 3166は、キーボード、マウスなどの入力機器と接続されており、これらの機 器の利用者の操作を受け付け、受け付けた操作を示す操作情報を CPU3141へ通 知する。
[0385] 表示部 3167は、モニタと接続されており、 CPU3141から出力される各種の画像を モニタへ出力する。
(2)機能的構成
図 32は、端末装置 3001及び CAサーバ装置の機能的構成を示した機能ブロック 図である。図中の矢印は、端末装置 3001の Attestationにおけるデータフローを示 している。
[0386] 図 32に示すように、端末装置 3001は、 ID記憶部 3101、制御部 3102、送受信部 3103、測定値通知部 3104、プログラム記憶部 3106、 RTM3107,メモリ 3108、 BI OS3109、鍵記憶部 3120、 PCR値記憶部 3111、ログ取得部 3112、 PCR値算出 部 3113、証明書記憶部 3114及びログ記憶部 3116から構成される。ここで、測定値 通知部 3104、 TPM制御部3118、鍵記憶部 3120、?0^値記憶部3111、ログ取得 部 3112及び PCR値算出部 3113が TPM上に形成される回路により実現される。
[0387] 上述したノ、一ドウエアが適切に動作することにより、 ID記憶部 3101、制御部 3102 、送受信部 3103、測定値通知部 3104、プログラム記憶部 3106、 RTM3107、メモ リ 3108、 BIOS3109,鍵記憶部 3120、 TPM制御部 3118、 PCR値記憶部 3111、 ログ取得部 3112、?0^値算出部3113、証明書記憶部 3114、ログ記憶部 3116及 び検証部 3119は実現される。
[0388] 以下に、各機能部について説明する。
(2—1) ID記憶部 3101
ID記憶部 3101は、セキュア ROM3143により構成されており、当該端末装置 300 1を一意に識別する機器 IDを記憶して 、る。
(2— 2)制御部 3102
制御部 3102は、メモリ 3108にロードされている各種のプログラムに従って、各構成 要素の動作を制御する。このとき制御部 3102は、具体的には図示していないが、各 機能部へ制御信号を出力している。また、利用者によるデータ及び指示の入力を受 け付け、受け付けた指示に従って各部を制御する。
[0389] また、制御部 3102は、 AIKクレデンシャル (後述する)を取得済みである力否かを 記憶しており、未取得の状態で端末装置 3001が起動された場合、 TPM制御部 311 8へ、 ALKクレデンシャルが未取得であることを通知する。ここで、起動とは、 OSがメ モリ 3108にロードされ実行可能な状態であるとする。
続いて、制御部 3102は、 TPM制御部 3118から、新たに生成された AIK公開鍵を 受け取る。 AIK公開鍵を受け取ると、 TPM3117内にぉぃて新たに生成されたAIK 秘密鍵と AIK公開鍵 (以下、必要に応じて AIK鍵ペアと呼ぶ)に割り当てる IDを生成 する。
[0390] 次に、制御部 3102は、証明書記憶部 3114から、 EKクレデンシャル 3121と PF (プ ラットフオーム)クレデンシャル 3122 (後述する)とを読み出す。続いて、送受信部 31 03を介して、生成された ID、 AIK公開鍵、読み出した EKクレデンシャル、 PFクレデ ンシャルを、 CAサーバ装置 3002に送信し、 AIKクレデンシャルの発行を要求する。
[0391] 要求が認められると、制御部 3102は、送受信部 3103を介して暗号化 AIKクレデ ンシャルを受信する。暗号化 AIKクレデンシャルは、 EK公開鍵を用いて AIKクレデ ンシャルを暗号ィ匕したものである。制御部 3102は、 EK秘密鍵を用いて受信した暗 号化 AIKクレデンシャルを復号し、 AIKクレデンシャルを生成する。制御部 3102は、 生成した AIKクレデンシャルを証明書記憶部 3114に書き込む。図 33は、既に AIK クレデンシャル 3123取得後の証明書記憶部 3114を示している。
[0392] なお、制御部 3102自身が EK秘密鍵を読み出し、暗号化 AIKクレデンシャルの復 号を行う代わりに、 TPM3117内 TPM制御部へ、暗号化 AIKクレデンシャルを出力 し、復号を依頼してもよい。このようにすれば、 EK秘密鍵が、 TPMチップ外へ出力さ れることがなくなり、より安全性が高まる。
AIKクレデンシャルを取得済みの状態で、端末装置 3001が起動された場合、自機 が起動したことを示す起動通知を、送受信部 3103を介して、 CAサーバ装置 3002 へ送信する。続いて、 CAサーバ装置 3002から、動作許可通知又は動作禁止通知 を受信する。動作許可通知を受信した場合は、そのまま、各構成要素の動作の制御 を続行する。動作禁止通知を受信した場合は、当該端末装置 3001が不正な構成で あるか、不正動作をしている旨を通知する警告画面をモニタに表示し、端末装置 300 1の動作を停止させる。
[0393] 制御部 3102は、具体的には CPU3141が、メモリ 3108、セキュア ROM3143、ノヽ ードディスクユニット 3142に記憶されているコンピュータプログラムに従って動作する ことで、その機能を達成する。
(2— 3)送受信部 3103
送受信部 3103は、インターネット 3005に接続された外部機器と、端末装置 3001 内の各機能部との間で各種の情報の送受信を行う。ここで、前記外部機器には、 CA サーバ装置 3002が該当する。実際に、機器間で通信を行う際には、使い捨ての鍵( セッション鍵)を生成し、生成したセッション鍵でデータを暗号ィ匕して、安全に送受信 を行うが、これは、公知の技術により実現可能であり、本発明には直接関係が無いの で、以下の説明において、通信時におけるセッション鍵による暗号化、復号の処理に ついての説明は省略する。
[0394] (2—4)プログラム記憶部 3106
プログラム記憶部 3106は、具体的にはハードディスクユニット 3142により構成され 、オペレーティングシステム(以下 OS)を初めとする各種のプログラムを記憶している 。これらのプログラム力 メモリ 3108にロードされ、実行されることで、いくつかの機能 部は実現される。 [0395] (2— 5)メモリ 3108
メモリ 3108は、主に RAM3145から構成され、ハードディスクユニット 3142の一部 、セキュア ROM3143を含む。メモリ 3108は、 CPU3141の実行する各種のプログラ ムを、プログラム記憶部 3106などからロードし、実行可能な状態で記憶している。
[0396] (2-6) BIOS3109
BIOS3109は、 IPLの一種であり、具体的には、セキュア ROM3143内に記憶さ れているプログラムである。端末装置 3001が、起動されると、最初にメモリ 3108に口 ードされ実行される。
(2- 7)RTM3107
RTM3107は、メモリ 3108に新たなプログラムがロードされる前、そのプログラムの インテグリティ値を計測し、計測したインテグリティ値とロードされるプログラムを示す 識別子を PCR値算出部 3113へ出力する。ここでは、計測対象のプログラムコードの ノ、ッシュ値をインテグリティ値とする。ハッシュ値関数には、 SHA— 1を用いる。
[0397] RTM3107は、 BIOS3109に含まれる CRTM3163、及びメモリ 3108にロードさ れている各プログラム内の RTMコードを CPU3141が実行することで実現される機 能部である。また、最初にロード実行されるプログラムである BIOS3109に関しては、 ブートブロック 3156に含まれる CRTM3163が BIOS3109自身のインテグリティ値を 計測して出力する。
[0398] なお、ここでは、各プログラムに RTMコードが含まれて!/、るとした力 TCG規格で は、これは必須ではなぐ CPU3141力 BIOS3109に埋め込まれている、 CRTM3 163を実行することで、新たにメモリ 3108にロードされるプログラムのインテグリティ値 を計測する構成であっても良い。
(2— 8)証明書記憶部 3114
証明書記憶部 3114は、具体的にはハードディスクユニット 3142により構成され、 一例として、図 33に示すように EK (Endorsement Key)クレデンシャル(証明書) 3 121、 PFクレデンシャル 3122、 AIK (Attestation Identity Key)クレデンシャル 3123を記憶している。
[0399] EKクレデンシャル 3121は、 TPM製造者又は端末装置製造者によって発行される 証明書であって、 EK公開鍵の正当性を証明する。 EK公開鍵と後述する EK秘密鍵 3126は、 RSA暗号に対応する鍵ペアである。 EK秘密鍵 3126及び前記 EK公開鍵 は、 TPMチップに対応する鍵ペアであって、 EKクレデンシャル 3121は、 TPM製造 者又は端末装置製造者によって、端末装置 3001の製造過程おいて生成され、証明 書記憶部 3114に書き込まれる。
[0400] PFクレデンシャル 3122は、プラットフォーム(例えば、端末装置 3001自体、端末 装置 3001内の TPMチップを搭載した部品)の構成及び製造者を明確にし、プラット フォームの特性を明らかにする属性証明書である。また、プラットフォームが正当な T PMを搭載していることを証明するものである。具体的には、プラットフォームを端末 装置 3001自体とすると、端末装置 3001の製造業者を示す識別情報、搭載している TPM及び CPUの識別番号、 OSの種類、ソフトウェア構成を示す情報などを含む。 また、プラットフォームをマザ一ボードとすると、マザ一ボードの製造業者を示す識別 情報、マザ一ボードに搭載されている TPM及び CPUの機種番号、 OSの種類などを 含む。 PFクレデンシャル 3122は、プラットフォーム製造者により発行され、端末装置 3001の製造過程において、証明書記憶部 3114に書き込まれる。
[0401] 各クレデンシャルは、一例として X. 509形式で記述され、クレデンシャルを一意に 示す識別番号、発行者名、有効期限、発行者 (発行装置)の秘密鍵 (以下、サーバ 秘密鍵)を用いて生成された書名データ、前記署名データの生成に用いられたアル ゴリズムを示す情報などを含んで 、る。
なお、ここでは、証明書記憶部 3114はハードディスクユニット 3142により構成され るとしている力 TPM3117内に実装されても良い。
[0402] (2— 9)ログ記憶部 3116
ログ記憶部 3116は、具体的にはハードディスクユニット 3142により構成される。口 グ記憶部 3116は、端末装置 3001が起動して力も現在までの、 PCR値群の履歴を 記憶している。以下、この履歴をログ情報と呼ぶ。ログ情報は、少なくとも各 PCR値と 対応するプログラムを示す識別情報と各 PCR値の履歴を含むが、他にも、プログラム のバージョン情報、プログラムの挙動を示す情報を含んでも良い。なお、 TCG規格で は、このログ情報を S ML (Stored Measurement Log)と呼ぶ。以下の説明及び 図面において、必要に応じてログ情報を SMLと略して記載する。
[0403] なお、ここでは、ログ記憶部 3116は、ハードディスクユニット 3142により構成される としている力 TPM3117内に実装されても良い。
(2— 10)鍵記憶部 3120
鍵記憶部 3120は、一例として、図 34に示すように EK秘密鍵 3126、 AIK秘密鍵 3 127、八11^公開鍵3128、 SRK3129 ' · ·を記憶している。ハードウェア構成の説明に おいて述べたように、これらの鍵は、 SRK3129をルート鍵とする階層構造を形成し て記憶されているが、ここでは、説明の便宜上、前述の階層構造に関する説明は省 略する。
[0404] EK秘密鍵 3126は、 EKクレデンシャル 3121に含まれる EK公開鍵と対になる秘密 鍵であって、 RSA暗号に用いられる鍵ペアの一方に当たる。 EK秘密鍵 3126及び 前記 EK公開鍵は、 TPMチップに一意に対応する鍵であり、 EK秘密鍵 3126及び E Kクレデンシャル 3121は、 TPM製造者又は端末装置 3001の製造者によって、出 荷前に書き込まれる。
[0405] AIK秘密鍵 3127及び八1 公開鍵3128は、当該端末装置 3001の初起動時及び 初期化直後の起動時に、 TPM3117内の鍵生成器 3154により生成された鍵ペアで あって、 RSA暗号に対応している。 AIK公開鍵 3128は、 AIKクレデンシャル 3123 に含まれる公開鍵と同一であるので、鍵記憶部 3120に必ずしも書き込まれている必 要はない。また、 AIK鍵ペアの取得のタイミングは、初起動時及び初期化直後に限 定されるものではなぐ製造過程において、書き込まれるとしてもよい。
[0406] SRK3129については、既に述べた通りであるので、説明を省略する。
ここでは、初起動時に AIK鍵ペアが生成され、 AIKクレデンシャル 3123の取得後 の状態の鍵記憶部 3120について説明した。
(2- 11) PCR値記憶部 3111
PCR値記憶部 3111は、 PCR3146がその機能を担っており、 PCR0、 PCR1、 PC R2','を記憶している。
[0407] 各 PCR値は、それぞれ、 BIOS3109、プログラム記憶部 3106に記憶されている各 プログラムと対応している。つまり、図 30の各記憶領域は、それぞれ、異なるプロダラ ムと対応しており、具体的には、記憶領域 3171、 3172、 3173 · · ·は、それぞれ、起 動される順に、 BIOS3109、ブートローダー、 OS ' · ·と対応している。従って、 PCR0 は、 BIOS3109と対応しており、 PCR1は、ブートローダーと対応しており、 PCR2は 、 OSと対応して!/ヽる。
[0408] なお、上述の各 PCR値とプログラムとの対応は、一例であって、これに限定されるも のではない。
( 2— 12) TPM制御部 3118
TPM制御部 3118は、 TPM3117内の各機能部の動作を制御する。図示していな いが、 TPM制御部3118は、 TPM内外の各部へ制御信号を出力している。
[0409] 具体的には、送受信部 3103を介して、 CAサーバ装置 3002から、乱数と Attesta tion (構成証明)要求を受信する。 Attestation要求を受信すると、受信した乱数を 測定値通知部 3104 (後述)へ出力する。次に、ログ記憶部 3116からログ情報を読み 出し、証明書記憶部 3114から AIKクレデンシャル 3123を読み出す。続いて、測定 値通知部 3104により生成された署名データと、読み出した AIKクレデンシャル 3123 とログ情報とを、送受信部 3103を介して、 CAサーバ装置 3002へ送信する。
[0410] また、 TPM制御部3118は、端末装置 3001の初起動時又は初期化直後の起動時 に、制御部 3102から AIKクレデンシャルが未取得である旨を通知される。この通知 を受けると、 TPM制御部3118は、 AIK鍵ペアを生成し、生成した AIK鍵ペアを、鍵 記憶部 3120に書き込む。続いて、生成された AIK公開鍵を制御部 3102へ出力す る。
[0411] TPM制御部 3118は、具体的には、実行エンジン 3148が、プログラムコード格納 部 3156に格納されているプログラムに従って動作し、各演算機を操作することにより 、その機能を達成する。
(2— 13) PCR値算出部 3113
PCR値算出部 3113は、 RTM3107力ら、新たにメモリ 3108にロードされるプログ ラムの識別子とインテグリティ値 (ハッシュ値)とを受け取る。
[0412] これらを受け取ると、 PCR値算出部 3113は、 PCR値記憶部 3111において、受け 取った識別子と対応する PCR値が格納される領域の直前領域に記憶されている PC R値を読み出す。次に、 PCR値算出部 3113は、読み出した PCR値と受け取ったィ ンテグリティ値を結合してハッシュ関数に代入する。算出されたハッシュ値を PCR値と して、 PCR値記憶部 3111内において、受け取った識別子と対応する領域に書き込 む。
[0413] ただし、 BIOS3109と対応する PCROを算出する場合、記憶領域 3171が先頭の 記憶領域であるので、受け取ったインテグリティ値をそのままハッシュ関数に代入す る。若しくは、予め決められた初期値と CRTM3163のインテグリティ値を結合した値 をハッシュ関数に代入し、ノ、ッシュ値を算出しても良い。
TCG規格にぉ 、て、計測されたインテグリティ値にこのような演算を施して PCR値 を算出することを、拡張処理という。
[0414] 以下に、具体例を挙げて説明する。
BIOS,ブートローダー、 OSは、それぞれ、 PCR0、 PCR1、 PCR2と対応している。 各プログラムは、 BIOS、ブートローダー、 OS、デバイスドライノく · · ·の順にメモリ 310 8にロードされ実行される。 OSをメモリ 3108にロードするとき、 PCR値算出部 3113 は、 RTM3107から、 OSを示す識別子と OSから計測されたインテグリティ値を受け 取る。これらを受け取ると、 PCR値算出部 3113は、受け取った識別子を基に、 PCR 1を読み出し、読み出した PCR1と受け取ったインテグリティ値とを結合してハッシュ 関数に代入する (拡張処理)。次に、 PCR値算出部 3113は、算出されたハッシュ値( PCR2)を所定の記憶領域 3173に書き込む。
[0415] なお、端末装置 3001が複数のアプリケーションを備えており、各アプリケーションの ロードの順序が決まっておらず、アプリケーションが、ロードされる順序は、利用者の 操作によって決まる場合が考えられる。このような場合、一例として、 OSと対応する P CR3を用いて、ロードされるアプリケーション力も計測されたインテグリティ値を拡張し 、各アプリケーションに対応する PCR値を算出する。
[0416] なお、 PCR値算出部 3113は、具体的には、実行エンジン 3148が、プログラムコー ド格納部 3156に格納されて 、るプログラムに従って動作し、各演算機を操作するこ とにより、その機能を達成する。
(2— 14)ログ取得部 3112 ログ取得部 3112は、 PCR値記憶部 3111の記憶して 、る PCR値群を監視しており 、何れかの PCR値が変化すると、 PCR値記憶部 3111から1^1^値群を読み出し、読 み出した PCR値群をログ記憶部 3116へ書き込む。また、メモリ 3108の内容を監視 し、プログラムの動作状態を示す情報を生成してログ記憶部 3116に書き込む。
[0417] ログ取得部 3112は、具体的には、実行エンジン 3148が、プログラムコード格納部 3156に格納されて ヽるプログラムに従って動作し、各演算機を操作することにより、 その機能を達成する。
(2— 15)測定値通知部 3104
測定値通知部 3104は、インターネット 3005及び送受信部 3103を介して、 CAサ ーバ装置 3002から、乱数 (ノンス)を受信する。
[0418] 乱数を受信すると、測定値通知部 3104は、鍵記憶部 3120から AIK秘密鍵を読み 出し、 PCR値記憶部 3111から1^1^値群を読み出す。次に、読み出した AIK秘密鍵 を用いて、受信した乱数と PCR値群に署名生成アルゴリズムを施して署名データを 生成する。ここでは、一例として署名生成アルゴリズムとして RSA暗号を利用する力 他のアルゴリズムを用いても良 、。
[0419] 次に、 TPM制御部 3118の制御に従って、生成した署名データを、送受信部 3103 を介して、 CAサーバ装置 3002へ送信する。
測定値通知部 3104は、具体的には、実行エンジン 3148が、プログラムコード格納 部 3156に格納されているプログラムに従って動作し、各演算機を操作することにより 、その機能を達成する。
[0420] (2— 16)検証部 3119
検証部 3119は、端末装置 3001が、検証装置となって他の機器との間で Attestat ion処理を行う場合に、前記他の機器の正当性を検証する機能部である。具体的な 構成は、 CAサーバ装置 3002内の検証部 3013 (後述する)同様であるので、ここで は詳細な説明は省略する。なお、検証部 3013内は乱数生成部 3012を備えている 力 検証部 3119は、内部に乱数生成部を備えていても良いし、乱数生成を TPMチ ップに依頼する構成でも良い。また、検証部 3013は、検証データ記憶部 3018の記 憶して!/、る各種の情報を用いた検証を行って 、るので、検証部 3119も同様の情報( 検証データ)が必要である。ここで、この情報は、図 32の機能ブロック図には示されて いないが、ハードディスクユニット 3142に同様の検証データが記憶されているとする
1. 3 CAサーバ装置 3002の構成
CAサーバ装置 3002は、図 28に示すように、公正な第三者機関であるプライバシ 一 CAの保持する装置である。
[0421] CAサーバ装置 3002は、図 32に示すように、送受信部 3015、制御部 3011、検証 部 3013、検証データ記憶部 3018から構成される。さらに、検証部 3013は、乱数生 成部 3012、証明書検証部 3014、署名検証部 3016、ログ検証部 3017を含む。また 、図示していないが、操作者によるデータ及び指示の入力を受け付ける入力部、各 種の情報を表示する表示部を含んで 、る。
[0422] CAサーバ装置 3002は、具体的には、マイクロプロセッサ、 RAM、 ROMを含んで 構成されるコンピュータシステムであって、前記 RAM、 ROMには、コンピュータプロ グラムが記憶されている。前記マイクロプロセッサ力 前記コンピュータプログラムに 従って動作することで、 CAサーバ装置 3002は、その機能の一部を達成する。
(1)送受信部 3015
送受信部 3015は、インターネット 3005に接続可能なインタフェースを備えており、 制御部 3011の制御の下、インターネット 3005を介して接続された外部機器と、各機 能部との間のデータの送受信を行う。
[0423] (2)検証データ記憶部 3018
検証データ記憶部 3018は、検証部 3013による Attestation処理に用 、られる検 証データを記憶している。図 32では、その一例として、サーバ公開鍵 3021、乱数 30 22、正規 PCR値群 3023、正規ログ情報 3024を記憶している。
サーバ公開鍵 3021は、サーバ秘密鍵と対応する鍵であって、これらは RSA暗号 に対応している。
[0424] 乱数 3022は、 Attestationの過程において、乱数生成部 3012により生成された 擬似乱数である。
正規 PCR値群 3023は、端末装置 3001が、正常に動作した場合に算出される各 P CR値を含む。
正規ログ情報 3024は、証明装置が正常に動作した場合に生成されるべきログ情 報であって、少なくとも、正常に動作した場合の各 PCR値群の履歴を含む。
[0425] (3)制御部 3011
制御部 3011は、 CAサーバ装置 3002内の各構成要素の動作を制御する。
制御部 3011は、インターネット 3005及び送受信部 3015を介して、端末装置 300 1から、起動通知を受信する。
また、制御部 3011は、インターネット 3005及び送受信部 3015を介して、端末装 置 3001力ら、 AIK鍵ペアを示す IDと、 AIK公開鍵と、 EKクレデンシャルと、 PFタレ デンシャルと、 AIKクレデンシャル発行要求とを受信する。
[0426] (3-1) Attestationの制御
起動通知を受信すると、制御部 3011は、検証部 3013へ端末装置 3001との間の Attestationの開始を指示する。
次に、検証部 3013から Attestationの結果を通知される。 Attestationの結果、 端末装置 3001が正当であると通知されると、制御部 3011は、送受信部 3015を介し て、端末装置 3001に動作許可通知を送信する。
[0427] Attestationの結果、端末装置 3001が不正であると通知されると、制御部 3011は 、送受信部 3015を介して、端末装置 3001に動作禁止通知を送信する。
(3- 2) AIKクレデンシャルの発行
制御部 3011は、 AIKクレデンシャル発行要求を受信すると、受信した EKクレデン シャル及び PFクレデンシャルの発行元へ、それぞれ、 EKクレデンシャル及び PFタレ デンシャルを送信し、クレデンシャルが有効であるか否かを問い合わせる。ここでは、 図 28に示す TPMサーバ装置 3003へ、 EKクレデンシャルを送信し、 PFクレデンシ ャルを端末サーバ装置 3004へ送信する。 制御部 3011は、 AIKクレデンシャルを生成する。ここで生成される AIKクレデンシャ ルは、 ACサーバ装置の秘密鍵 (以下、サーバ秘密鍵)を用いて、少なくとも AIK公 開鍵に署名生成アルゴリズムを施して生成された署名データを含む。 続いて、制御部 3011は、送受信部 3015を介して、生成した AIKクレデンシャルを EKクレデンシャルに含まれる EK公開鍵で暗号化し、暗号化 AIKクレデンシャルを 生成する。次に、送受信部 3015を介して、生成した暗号化 AIKクレデンシャルを、 端末装置 3001へ送信する。
[0429] 問合せの結果、端末装置 3001から受信したいずれかのクレデンシャルが無効であ れば、制御部 3011は、 AIKクレデンシャルの発行ができない旨を示す発行不可通 知を送信する。
(4)検証部 3013
検証部 3013は、図 32に示すように乱数生成部 3012、証明書検証部 3014、署名 検証部 3016及びログ検証部 3017から構成される。
[0430] (4 1)乱数生成部 3012
乱数生成部 3012は、擬似乱数生成エンジンを備え、制御部 3011から、 Attestati onの開始の指示を受け取ると乱数を生成する。
次に、生成した乱数を検証データ記憶部 3018に書き込むとともに、送受信部 301 5を介して、生成した乱数及び Attestation要求を送信する。
[0431] (4— 2)証明書検証部 3014
証明書検証部 3014は、乱数生成部 3012による Attestation要求の送信後、所定 時間内に、端末装置 3001から、 AIK証明書と署名データとログ情報とを受信する。
CAサーバ装置 3002は、無効になった AIKクレデンシャルを示す AIKクレデンシャ ル CRLを記憶して!/、る外部ストレージ 3026と接続されて!、る。
[0432] 証明書検証部 3014は、受信した AIK証明書が AIKクレデンシャル CRLに登録さ れて!ヽるか否かを検証する。
登録されていない場合、証明書検証部 3014は、検証データ記憶部 3018からサー バ公開鍵を読み出し、読み出したサーバ公開鍵を用いて、受信した AIK証明書に含 まれる署名データを検証する。検証の結果、 AIK証明書が正当であると証明されると 、証明書検証部 3014は、受信した署名データ、ログ情報及び AIK証明書に含まれ る AIK公開鍵を署名検証部 3016へ出力する。
[0433] 受信した AIKクレデンシャルが AIKクレデンシャル CRLに登録されている場合、及 び、受信した AIKクレデンシャルに含まれる署名データの検証、 AIKクレデンシャル が正当でな 、場合、端末装置 3001が不正である旨を示す検証結果を制御部 3011 へ出力する。
(4 3)署名検証部 3016
署名検証部 3016は、証明書検証部 3014から署名データとログ情報と AIK公開鍵 とを受け取る。これらを受け取ると、署名検証部 3016は、受け取った AIK公開鍵を 用いて、署名データに署名検証アルゴリズムを施して乱数と PCR値群を生成する。こ こで生成された乱数、 PCR値群をそれぞれ、証明用乱数、証明用 PCR値群と呼ぶ。 なお署名検証アルゴリズムには、 RSA暗号を用いる。
[0434] 署名検証部 3016は、検証データ記憶部 3018から乱数 3022と正規 PCR値群 30 23とを読み出す。生成した証明用乱数と読み出した乱数 3022とを比較する。両者 がー致すれば、続いて、生成した証明用 PCR値群を構成する各証明用 PCR値と、 読み出した正規 PCR値群 3023を構成する各正規 PCR値とを、それぞれ比較する。 全ての証明用 PCR値と正規 PCR値とがー致すると、署名検証部 3016は、受信した ログ情報をログ検証部 3017へ出力する。
[0435] 生成した証明用乱数と読み出した乱数 3022とが一致しない場合、及び、何れか一 組でも、証明用 PCR値と正規 PCR値とがー致しない場合、署名検証部 3016は、端 末装置 3001が不正である旨を示す検証結果を制御部 3011へ出力する。
(4— 4)ログ検証部 3017
ログ検証部 3017は、署名検証部 3016から、受信されたログ情報を受け取る。ログ 情報を受け取ると、ログ検証部 3017は、検証データ記憶部 3018から、正規ログ情 報 3024を読み出し、受け取ったログ情報と読み出した正規ログ情報 3024とを比較 する。
[0436] 比較の結果、両者が一致すると、ログ検証部 3017は、端末装置 3001が正当であ る旨を示す検証結果を制御部 3011へ出力する。
比較の結果、両者が一致しなければ、ログ検証部 3017は、端末装置 3001が不正 である旨を示す検証結果を制御部 3011へ出力する。
1. 4 TPMサーバ装置 3003 TPMサーバ装置 3003は、 TPMベンダの所有する装置であって、各 TPMチップ に固有の EK鍵ペア及び EK公開鍵を証明する EKクレデンシャルを管理する。
[0437] TPMサーバ装置 3003は、無効になった EKクレデンシャルを示す EKクレデンシャ ル CRLを記憶している外部ストレージと接続されており、 CAサーバ装置 3002から、
EKクレデンシャルの有効性の問合せを受け付ける。
1. 5 端末サーバ装置 3004
端末サーバ装置 3004は、端末装置ベンダの所有する装置であって、端末装置( 又は装置内のプラットフォーム)に固有の PFクレデンシャルを管理する。
[0438] 端末サーバ装置 3004は、無効になった PFクレデンシャルを示す PFクレデンシャ ル CRLを記憶している外部ストレージと接続されており、 CAサーバ装置 3002から P
Fクレデンシャルの有効性の問合せを受け付ける。
1. 6 動作
以下に、フローチャートを用いて、各装置の動作について説明する。
[0439] (1) Attestation処理における動作
図 35〜図 37は Attestation処理における各機器の動作を示したフローチャートで ある。以下に、図 35〜図 37を用いて Attestation処理における各機器の動作につ いて説明する。以下、記載を簡単にするためプログラム Aのインテグリティ値を In (A) と記載する。なお、図 32中データフローと図 35〜図 37の動作のうち対応するものに は、同一のステップ番号を付している。
[0440] 端末装置 3001に電源が入ると(ステップ S3000)、 BIOS3109のブートブロック 31 65に記述されている CRTM3163が実行され (ステップ S3001)、その結果、 BIOS のインテグリティ値 In (BIOS)が計測される(ステップ S3004)。 CRTM及び RTMコ ードにより実現される機能部 RTM3107は、計測したインテグリティ値 In (BIOS)と BI OSを示す識別子とを、 PCR値算出部 3113へ出力する。
[0441] PCR値算出部 3113は、インテグリティ値 In (BIOS)を受け取り、以下の演算により BIOSと対応する PCR0を算出する(ステップ S3006)。
PCR0 = SHA1 (In (BIOS) )
続いて、 PCR値算出部 3113は、算出した!^!^!を!^!^値記憶部 :!:!:!に書き込 む(ステップ S3008)。
[0442] BIOSの PCR値が記憶されると、 BIOSは、メモリ 3108にロードされ、実行される(ス テツプ S3009)。
BIOSの実行過程において、ブートローダーをメモリ 3108に読み出す必要が生じる と、 RTM3107は、ブートローダーのインテグリティ値 In (BL)を計測し、 PCR値算出 咅 113へ出力する(ステップ S 3012)。
[0443] PCR値算出部 3113は、インテグリティ値 In (BL)を受け取り、以下の演算により、ブ ートローダーの PCR値を算出する(ステップ S3013)。
PCR1 = SHA1 (PCRO+In (BL) )
ここで、上記の式の「 +」は連結を意味する。
PCR値算出部 3113は、算出した PCR1を PCR値記憶部 3111に書き込む (ステツ プ S3014)。
[0444] PCR1が PCR値記憶部 3111に書き込まれると、ブートローダーは、メモリ 3108に ロードされ、実行される(ステップ S3016)。
同様にして、!^!!^^:^ァ及び!^!^値算出部 :!!^は、 OSと対応する PCR値を算 出し(PCR2 = SHA1 (PCRl +In (OS) ) ) ,算出した PCR2を PCR値記憶部 3111 に書き込む(ステップ S 3018)。
[0445] ここで、上記の式の「 +」は連結を意味する。
?0^2が!^1^値記憶部3111に書き込まれると、 OSは、メモリ 3108にロードされ実 行される(ステップ S3021)。
ここで、当該端末装置 3001が既に、 AIKクレデンシャルを取得済みであれば (ステ ップ S3022の YES)、制御部 3102は、端末装置 3001が起動したことを示す起動通 知を、 CAサーバ装置 3002へ送信する(ステップ S3024)。
[0446] AIKクレデンシャルを未取得であれば (ステップ S3022の NO)、制御部 3102は、 ステップ S3023へ処理を移す。
CAサーバ装置 3002の制御部 3011は、端末装置 3001から起動通知を受信する (ステップ S3024)。起動通知を受信すると、制御部 3011は、検証部 3013へ Attest ationの開始を指示する。 [0447] Attestationの開始を指示されると、検証部 3013内の乱数生成部 3012は、乱数 を生成する(ステップ S3026)。次に、乱数生成部 3012は、生成した乱数と Attesta tion要求とを端末装置 3001へ送信すると共に (ステップ S3027)、生成した乱数を 検証データ記憶部 3018へ書き込む (ステップ S3028)。
[0448] 端末装置 3001の TPM制御部 3118は、乱数及び Attestation要求を受信し (ス テツプ S3027)、受信した乱数を測定値通知部 3104へ出力する。
測定値通知部 3104は、乱数を受け取ると、鍵記憶部 3120から AIK秘密鍵 3127 を読み出す (ステップ S3029)。続いて、 PCR値記憶部 3111から各1^1^値を読み 出す (ステップ S3030)。次に、測定値通知部 3104は、読み出した秘密鍵を用いて 、受け取った乱数と、読み出した PCR値群に署名生成アルゴリズムを施して、署名デ ータを生成する(ステップ S3031)。
[0449] TPM制御部 3118は、証明書記憶部 3114から AIKクレデンシャル 3123を読み出 し、ログ記憶部 3116からログ情報を読み出す (ステップ S3032)。
次に、 TPM制御部 3118は、測定値通知部 3104により生成された署名データと、 読み出した AIKクレデンシャルとログ情報とを CAサーバ装置 3002へ送信する (ステ ップ S3033)。
[0450] CAサーバ装置 3002内の証明書検証部 3014は、端末装置 3001から、署名デー タと AIKクレデンシャルとログ情報とを受信すると (ステップ S3033)、受信した AIKク レデンシャルが AIKクレデンシャル CRLに登録されて!、るか否かを確認し、登録され ている場合 (ステップ S3034の YES)、ステップ S3041へ処理を移す。
[0451] 受信した AIKクレデンシャルカ AIKクレデンシャル CRLに登録されて!、な!/、場合
(ステップ S3034の NO)、証明書検証部 3014は、検証データ記憶部 3018に記憶さ れて 、るサーバ公開鍵 3021を用いて AIKクレデンシャルを検証する(ステップ S303 6)。
署名検証部 3016は、受信した AIKクレデンシャルに含まれる AIK公開鍵を用いて 受信した署名データに署名検証アルゴリズムを施して証明用乱数と、証明用 PCR値 群を生成する(ステップ S3037)。続いて、検証データ記憶部 3018に記憶されてい る乱数 3022及び正規 PCR値群 3023を基に、証明用乱数と証明用 PCR値群とを検 証する(ステップ S 3038)。
[0452] ログ検証部 3017は、検証データ記憶部 3018に記憶されている正規ログ情報 302 4を基に受信したログ情報を検証する(ステップ S3041)。ステップ S3036〜ステップ S3041までの全ての検証のうち、いずれか一つでも失敗であれば (ステップ S3042 の NO)、制御部 3011は、端末装置 3001に動作禁止通知を送信する (ステップ S30 43)。全ての検証が成功であれば (ステップ S3042の YES)、制御部 3011は、端末 装置 3001へ動作許可通知を送信する(ステップ S3046)。
[0453] 端末装置 3001は、 CAサーバ装置 3002から、動作禁止通知又は動作許可通知を 受信する。
動作許可通知を受信した場合 (ステップ S3047の YES)、制御部 3102は、メモリに ロードされているプログラムを実行し、必要に応じて他のプログラムをメモリにロードし 実行する(ステップ S 3049)。
[0454] 動作禁止通知を受信した場合 (ステップ S3047の NO)、制御部 3102は、当該端 末装置 3001の構成が不正であることを示す警告画面を表示した後、端末装置 300 1の動作を停止させ、電源を OFFにする(ステップ S3052)。
(2)AIKクレデンシャルの取得動作
起動前の端末装置 3001は AIKクレデンシャルを保持しておらず、初起動時に CA サーバ装置 3002から AIKクレデンシャルを取得する。図 38、図 39は AIKクレデンシ ャルの取得における各機器の動作を示すフローチャートである。なお、これは、図 36 のステップ S3023の詳細である。
[0455] 以下に、図 38及び図 39を用いて AIKクレデンシャルの取得動作について説明す る。
先ず、 TPM制御部3118は、 RSA暗号に対応した新たな AIK鍵ペアを生成し (ス テツプ S3061)、生成した AIK鍵ペアを鍵記憶部 3120に書き込む(ステップ S3062 ) o次に、生成した AIK公開鍵を制御部 3102へ出力する。
[0456] 制御部 3102は、証明書記憶部 3114から EKクレデンシャル 3121と PFクレデンシ ャル 3122とを読み出す (ステップ S3063)。続いて、新たに生成された AIK鍵ペアを 識別する IDを生成する(ステップ S 3066)。 次に、制御部 3102は、 ID、 EKクレデンシャル、 PFクレデンシャル、 AIK公開鍵を CAサーバ装置 3002へ送信し、 AIKクレデンシャルの発行を要求する(ステップ S30 67)。
[0457] CAサーバ装置 3002の制御部 3011は、端末装置 3001から ID、 EKクレデンシャ ル、 PFクレデンシャル、 AIK公開鍵及び AIKクレデンシャルの発行要求を受信する( ステップ S 3067)。
これらを受信すると、制御部 3011は、 TPMサーバ装置 3003及び端末サーバ装 置 3004へ、それぞれ、 EKクレデンシャル及び PFクレデンシャルの正当性を問い合 わせる(ステップ S 3069)。
[0458] 問合せの結果、 EKクレデンシャル及び PFクレデンシャルのうち一方でも正当なけ れば (ステップ S3071の NO)、制御部 3011は、 AIKクレデンシャル発行に関する処 理を終了する。
問合せの結果、 EKクレデンシャル及び PFクレデンシャルの両方が正当であれば( ステップ S3071の YES)、制御部 3011は、受信した ID及び AIK公開鍵を含む AIK クレデンシャルを生成し (ステップ S3072)、受信した EKクレデンシャルに含まれる E K公開鍵を用いて、生成した AIKクレデンシャルを暗号ィ匕する(ステップ S3073)。
[0459] 次に、制御部 3011は、生成した暗号化 AIKクレデンシャルを端末装置 3001へ送 信する (ステップ S 3047)。
端末装置 3001の制御部 3102は、 CAサーバ装置 3002から暗号化 AIKクレデン シャルを受信すると (ステップ S3074)、鍵記憶部 3120から EK秘密鍵 3126を読み 出し (ステップ S3076)、読み出した EK秘密鍵を用いて暗号化 AIKクレデンシャルを 復号して、 AIKクレデンシャルを生成する(ステップ S3077)。
[0460] 続、て、制御部 3102は、生成した AIKクレデンシャルを証明書記憶部 3114へ書 き込む(ステップ S 3079)。
1. 7 実施の形態 1に関する変形例
(1)更新プログラムの取得
上記の実施の形態 1において、 Attestationが失敗した場合、 CAサーバ装置 300 2は動作禁止通知を送信し、端末装置 3001は、これを受信すると、動作を停止し、 電源を OFFにするとしたが、これに限るものではなぐ一部機能を制限した形で起動 するとしても良い。
[0461] また、上記の実施の形態及び変形例と同様に、 CAサーバ装置 3002は、各プログ ラムを最新バージョンに更新するための更新プログラムを送信し、端末装置 3001は 、受信した更新プログラムにより、各プログラムを最新版に更新するとしてもよい。 更新後、端末装置 3001は、再起動して、改めて Attestationを行う。
(2) Attestationのタイミング
上記の実施の形態 1では、 OSがメモリにロードされ実行可能になった時点で、起動 通知を送信し、 Attestationが開始されるが、これは、一例であって、他のタイミング であっても良い。
[0462] 例えば、 OSに続いて、デバイスドライノく、アプリケーションロードされた時点であつ ても良 、し、ブートローダーがロードされた時点であってもよ 、。
(3)特定の PCR値の指定
実施の形態 1では、測定値通知部 3104は、全ての PCR値を読み出し、読み出した PCR値群に署名を施して送信して 、るが、この構成に限るものではな!/、。
[0463] 具体的には、 CAサーバ装置 3002は、乱数と共に、何れか一つ(複数でも良い)の PCR値を示す識別情報を送信する。
測定値通知部 3104は、識別情報の示す PCR値のみを読み出し、読み出した PC R値と受信した乱数に署名を施して送信する。
これに合わせて、 TPM制御部3118は、ログ情報についても、受信した識別情報の PCR値に係るログ情報のみを抽出して送信する。
[0464] このようにすることで、機器間で送受信されるデータ量を少なくすることができる。
(4) RTM機能を実現する構成
上記の実施の形態では、 BIOSはブートブロックに CRTMを含み、各プログラムは 、 RTMコードを含んでおり、 CPUが CRTM及び各プログラムの RTMコードを実行 することで RTMの機能を実現している力 この後世に限定されるものではない。
[0465] 以下に、一例を紹介する。
端末装置は、ブートブロックに CRTMを含む BIOSを記憶している。これにカ卩えて、 RTM (ソフトウェア、以下機能部である RTMと区別するため RTMプログラムと呼ぶ) 及び Measurement Agentを記 '慮して!/、る。
CRTMは、 RTMのインテグリティ値を計測する手順を含む。
[0466] RTMプログラムは、指定されたプログラムのインテグリティ値を計測する手順を含む
Measurement Agentは、各種のプログラムから呼び出され、 RTMプログラムに インテグリティ値の計測を要求する手順を含むプログラムである。
BIOS,ローダー、 OS、及びその他のプログラムは、 Measurement Agentを呼 び出し、 自身が次に呼び出そうとしているプログラムを Measurement Agentに通 知するコードを含む。
[0467] 以上の構成により、各プログラムは、他のプログラムをメモリにロードする前に、 Mea surement Agentを呼び出して前記他のプログラムを通知し、 Measurement Ag entは、 RTMプログラムを呼び出し、通知されたプログラムのインテグリティ値の計測 を要求する。この要求を受けると、 RTMプログラム力 通知されたプログラムのインテ ダリティ値を算出する。
[0468] このような仕組みにより RTMの機能を実現してもよ 、。
2. 実施の形態 2
2. 1 概要
実施の形態 2に係るコンテンッ再生システムは、図 40に示すようにコンテンッ提供 サーバ 3202、端末装置 # 1 (3201)、端末装置 # 3 (3203)力も構成される。コンテ ンッ提供サーバ 3202及び端末装置 # 1 (3201)は、インターネット 3005に接続可 能である。端末装置 # 3 (3203)は、インターネット通信機能を有して 、な!/、。
[0469] メモリカード # 2 (3204)は、端末装置 # 1 (3201)及び端末装置 # 2 (3203)の何 れにも装着可能であり、コンテンツ及びコンテンツの利用権 (鍵、有効期限などを含 む)を保持している。
端末装置 # 1 (3201)及び端末装置 # 3 (3203)は、メモリカード # 2 (3204)に記 憶されているコンテンツを復号、伸長し再生する機能を有する。これに先立って、端 末装置とメモリカードが交互に検証装置及び証明装置となり、相互に Attestation処 理を行う。相互に相手の構成が正当であると認証した場合、端末装置はメモリカード
# 2からコンテンツ及び権利情報を取得し、コンテンツを再生することができる。
[0470] また、メモリカード # 2 (3204)は、端末装置 # 1 (3201)に装着された状態で、端末 装置 # 1 (3201)の通信機能を利用して、コンテンツ提供サーバ 3202から、新たなコ ンテンッ及び権利情報の購入処理を行う。
ところで、各機器の備えるプログラムはインターネットや、記録媒体、他の機器を介 してアップグレードされることが考えられる。
[0471] その場合、前述の Attestationに用いられる検証データを更新する必要が生じる。
コンテンツ提供サーバ 3202は、コンテンツ及び権利情報の販売に関する処理に加 えて、前述の Attestation処理に用いられる最新の検証データを保持して 、る。 メモリカード # 2 (3204)は、端末措置 # 1 (3201)に装着された状態で、端末装置 # 1 (3201)の通信機能を利用して、コンテンツ提供サーバ 3202と通信し、新たなコ ンテンッ及びコンテンツ利用権 (復号鍵、有効期限などを含む)を取得する。これに 先立って、コンテンツ提供サーバから、前述の Attestation処理に用いられる最新の 検証データを取得する。このときメモリカードは、自身が用いる検証データのみならず 、端末装置 # 1及び端末装置 # 3の用いる検証データも取得し、それぞれの端末装 置機器に装着された際に、取得した検証データを配布する。
2. 2 端末装置の構成 # 1及び端末装置 # 2の構成
端末装置 # 1の物理的構成及び機能的構成は実施の形態にぉ 、て説明した端末 装置 3001とほぼ同様であるのでここでは、詳細な説明を省略し相違点のみ説明す る。
[0472] 端末装置 # 1と端末装置 3001の相違点は、メモリカード # 2を装着可能な入出力 部を備えることと、 OS以上のアプリケーションとして音楽データを再生する手順を含 む再生制御プログラムを記憶している点である。また、ハードディスクユニットにより構 成される検証データ記憶部を有する。検証データ記憶部には、メモリカード # 2の正 当性を検証するための情報が記憶されて 、る。
[0473] また、端末装置 3001は、 OSが起動した時点で、外部の CAサーバ装置 3002と At testation処理を行ったり、 CAサーバ装置 3002から AIK証明書を取得したりして!/ヽ る力 本実施の形態において、これは必須ではなぐ端末装置 # 1 (3201)の製造時 に AIK鍵ペア及び AIK証明書を記録してお!ヽても良い。
端末装置 # 1は、電源が ONになると、 BIOSから順に再生制御プログラムまでメモ リにロードする。再生制御プログラムがロードされると、先ず、装着しているメモリカー ド # 2との間で相互に、自身の機器 IDを送信し合う。続 、て、端末装置 # 1が検証装 置となってメモリカード # 2との間で第 1の Attestation処理を行う。
[0474] 第 1の Attestationが成功すれば続いて、端末装置 # 1が証明装置となって、第 2 の Attestation処理を行う。 2回の Attestationの結果、相互に正当な構成の機器 であることが証明されると、端末装置 # 1は、続いて再生制御プログラムを実行し、利 用者の操作に従って音楽再生をすることができる。
また、新たなコンテンツの購入を要求する利用者の操作を受け付けると、購入要求 をメモリカード # 2へ出力し、メモリカード # 2内の DRM (Digital Rights Manage ment)アプリ(後述)の実行によるコンテンツ購入処理などにぉ ヽて、通信機能を提 供する。
[0475] また、端末装置 # 1は、メモリカード # 2から、最新検証データを受け取ると、受け取 つた最新検証データにより、検証データ記憶部の記憶して ヽる検証データを書き換 える。
端末装置 # 3も端末装置 # 1とほぼ同様の構成であるが、端末装置 # 3は、インタ 一ネット 3005に接続可能な送受信部を持たない点が端末装置 # 1と異なる。
また、端末装置 # 3にメモリカード # 2が装着され、相互に機器 IDを送信しあう。続 いて、端末装置 # 3は、先ず、メモリカード # 2から、最新の検証データを受け取り、 受け取った最新の検証データにより、自身の記憶している検証データを書き換える。
[0476] 続、て、端末装置 # 1の場合と同様に、相互に Attestationを行う。
2. 3 コンテンツ提供サーバ
コンテンツ提供サーバ 3202は、コンテンツプロバイダの所有するサーバ装置であり 、主に、インターネット 3005を介して、外部機器との間で、コンテンツ及び利用権 (鍵 、有効期限などを含む)の販売に係る処理を行う。
[0477] 図 41は、コンテンツ提供サーバ 3202の構成を示す機能ブロック図である。図 41に 示すよう ίこ、コンテンツ提供サーノ 3202ίま、送受信咅 3211、 DRM処理咅 3212、コ ンテンッ DB (データベース) 3213、最新検証データ記憶部 3214、制御部 3216、表 示部 3217及び入力部 3218から構成される。
コンテンツ提供サーバ 3202は、具体的にはマイクロプロセッサ、 RAM, ROMを含 んで構成されるコンピュータシステムであって、前記 RAM、 ROMには、コンピュータ プログラムが記憶されている。前記マイクロプロセッサ力 前記コンピュータプログラム に従って動作することで、コンテンツ提供サーバ 3202は、その機能の一部を達成す る。
[0478] (1)コンテンツ DB3213
コンテンツ DBは、大容量のハードディスクユニットから構成され、複数の暗号化コン テンッ及び各暗号ィ匕コンテンツに対応する権利情報を記憶している。
暗号ィ匕コンテンツは、音楽データを圧縮し暗号ィ匕して生成されたものである。権利 情報は、暗号化コンテンツを復号するための復号鍵、復号鍵の有効期限、価格情報 などを含んでいる。
[0479] (2)最新検証データ記憶部 3214
最新検証データ記憶部 3214は、複数の最新検証データ 3221、 3226 · · ·を記憶 している。各最新検証データは、機器 、正規 PCR値群、正規 SML (ログ情報)から なる。最新検証データは、機器 IDの示す機器の正当性を検証するための情報である
。以下、説明の便宜上、機器 ID :ID # n(n= l、 2、 3 · · ·)の機器の正当性を検証す るためのデータを検証データ # n、検証データ # nに含まれる正規 PCR値群を正規 P
CR# n、正規 SMLを正規 SML # nと記載する。
[0480] 一例として最新検証データ # 1 (3221)は、 ID # 1 (3222)、正規 PCR # 1 (3221) 及び正規 SML # 1を含み、 ID # 1の示す端末装置 # 1の正当性の検証に用いられ る。
(3) 01^1処理部3212
DRM処理部 3212は、制御部 3216の制御の下、インターネット 3005を介して接 続された外部機器との間で、コンテンツ販売に係る処理を行う機能部である。
[0481] 具体的には、外部機器から、コンテンツ購入要求を受信し、ユーザ認証、コンテン ッリストの送信、コンテンツの選択の受信、課金処理、暗号化コンテンツ及び権利情 報の送信などの一連の処理を行う。
(4)送受信部 3211
送受信部 3211は、インターネット 3005に接続可能なインタフェースを含んで構成 され、インターネット 3005に接続された外部機器と、各機能部との間で、各種の情報 の送受信を行う。
[0482] (5)制御部 3216
制御部 3216は、各機能部へ制御信号(図示していない)を出力し、コンテンツ提供 サーバ 3202を構成する各機能部の動作を制御する。
また、制御部 3216は、インターネット 3005及び端末装置 # 1を介してメモリカード # 2から、最新検証データ要求を受信する。最新更新データ要求は、 1以上の機器 I Dを含んでおり、前記機器 IDの正当性検証に用いられる最新の検証データを要求 するものである。
[0483] 最新検証データ要求を受信すると、制御部 3216は、最新検証データ記憶部 3214 内で、受信した機器 IDと同一の機器 IDを含む最新検証データを検出し、検出した最 新検証データを読み出す。続いて、制御部 3216は、読み出した最新検証データを、 送受信部 3211を介して、メモリカード # 2へ送信する。
2. 4 メモリカード # 2 (3204)の構成
図 42は、メモリカード # 2 (3204)の機能的構成を示した機能ブロック図である。図 42【こ示すよう【こ、メモリカード、 # 2 (3204) ίま、 ff¾御咅 3231、メモリ 3232、ブートプロ グラム 3233、コンテンツ記憶部 3236、 RTM3237,入出力部 3239、証明書記憶部 3241、プログラム記憶部 3244、ログ記憶部 3251、 ΤΡΜチップ 3247、検証部 325 6、 ID記憶部 3266及び検証データ記憶部 3257から構成される。
[0484] メモリカード # 2 (3204)は、具体的には、 RAM、 ROMを含んだコンピュータシス テムであって、 RAM, ROMにはコンピュータプログラムが記憶されている。前記マイ クロプロセッサが、前記コンピュータプログラムに従って動作することにより、メモリカー ド # 2 (3204)は、その機能の一部を達成する。
以下に、各構成要素について、説明する。 [0485] なお、証明書記'隐咅 3241、メモリ 3232、ログ記'隐咅 ^3251、 RTM3237【こつ!ヽて は、実施の形態 1において説明した証明書記憶部、メモリ、ログ記憶部、 RTMと同様 の機能を有するので、ここでは、説明を省略する。
(1)入出力部 3239
入出力部 3239は、外部機器と接続可能なインタフェースを備える。ここで、外部機 器とは、端末装置 # 1及び端末装置 # 2とが該当する。入出力部 3239は、外部機器 とメモリカード # 2内の各機能部との間で情報の送受信を行う。
[0486] また、入出力部 3239は、外部機器から電力の供給を受ける電力端子を備えており 、電力端子を介して外部機器から供給される電力を各構成要素へ配布する。
(2)コンテンツ記憶部 3236
コンテンツ記憶部 3236は、暗号ィ匕コンテンツ及び権利情報を記憶するための機能 部である。ここに記憶される暗号ィ匕コンテンツ及び権利情報は、前述のコンテンツ提 供サーバの保持する暗号化コンテンツ及び権利情報と同様である。
[0487] (3)プログラム記憶部 3244
プログラム記憶部 3244は、フラッシュメモリなどの不揮発性の記憶媒体により構成 され、 OS3245及び DRMアプリ 3246を記憶している。端末装置側と同様に OS324 5は RTMコードを含んで!/、る。
DRMアプリ 3246は、コンテンツ提供サーバとの間で、コンテンツ購入に関する処 理を行い、端末装置によるコンテンツの再生要求に対して権利情報の確認、暗号ィ匕 コンテンツ及び復号鍵の出力などを行う手順を含むプログラムである。
[0488] (4)ブートプログラム 3233
ブートプログラム 3233は、端末装置における BIOSと同様に、メモリカードのセキュ ァな領域に記憶され、電力の供給が開始されると最初にロード実行されるプログラム である。ブートプログラム 3233は、前述の BIOSと同様に CRTM3262を含んでいる
[0489] メモリカード # 2に電力が供給されると、ブートプログラム、 OS、 DRMアプリの順に メモリにロードされ、実行される。特に、メモリカード # 2 (3204)内のプロセッサは、ブ ートプログラム 3233内の CRTM3262を、最初に実行する。 (5) ID記憶部 3266
ID記憶部 3266は、不揮発性の記憶媒体から構成され、一般領域 3267とセキュア 領域 3268から構成される。
[0490] セキュア領域 3268には、メモリカード #2 (3204)の製造時に書き込まれたメモリ力 ード # 2を一意に示す機器 ID「ID # 2」 3273が記憶されて 、る。
一般領域 3267には、メモリカード # 2が装着された事のある機器の機器 ID3271 及び機器 ID3272が記憶されている。具体的には、端末装置 # 1を示す機器 ID「ID # 1」 3271と、端末装置 # 3を示す機器 ID「ID # 3」 3272を記憶して 、る。以下、記 述を簡略にするため、これらの機器 IDを単に ID #1、 ID #2、 ID #3と記載する。
[0491] (6)検証データ記憶部 3257
検証データ記憶部 3257は、複数の検証データ 3258、 3259、 3261· ··を記憶し ている。
各検証データは、機器 ID、正規 PCR群、正規 SMLを含み、機器 IDの示す機器の 正当性の検証に用いられる。
[0492] 検証データ 3259は、メモリカード # 2の正当性の検証に用いられ、検証データ 325 8, 3261···は、それぞれ、端末装置 # 1、端末装置 # 3…の正当性検証に用いら れる。以下、これらを単に検証データ #n(n=l、 2、 3···)と記載し、検証データ #n を構成する機器 ID、正規 PCR群、正規 SMLをそれぞれ、 ID# 1、正規 PCR#n、正 規 SML#nと記載する。
[0493] 一例として、検証データ # 1は、端末装置 # 1を示す ID # 1 (3262)、端末装置 # 1 が正当な構成を有する場合に算出されるべき正規 PCR# 1 (3259)、及び、端末装 置 # 1正当な構成を有する場合の PCR値群の履歴を含む正規 SML# 1 (3264)か ら構成される。
(7)TPM#2(3247)
メモリカード # 2 (3204)に搭載されて!ヽる、 TPMチップ 3247 (以下、 TPM # 2と 記載する)は、ネットワークプロバイダにより提供され、メモリカード # 2に実装されたも のである。
[0494] TPM#2は、実施の形態 1の TPM3117と同様に、 TPM# 2内の各機能部により 、メモリカード # 2の正当性を示す情報である PCR値の算出及び蓄積を行う。 TPM # 2の詳細な構成は、実施の形態 1の TPM3117と同様であるので、図 42では、省 略して記載している。
本実施の形態で、各機器内の TPMチップの保持する EK秘密鍵、 AIK秘密鍵、 P CR値群をそれぞれ、 EK # n、 AIK # n、 PCR # n (n= 1、 2、 3 · · · )と記載する。また 各秘密鍵と対応する公開鍵の証明書を証明書 # n、ログ記憶部の記憶して!/、る SM Lを SML # nと記載する。
[0495] (8)検証部 3256
検証部 3256は、制御部 3231から当該メモリカード # 2 (検証装置)の装着されてい る端末装置 (証明装置)との Attestationを指示される。このとき、制御部 3231から、 端末装置の機器 IDを受け取る。
Attestationを指示されると、検証部 3256は、受け取った機器 IDを含む検証デー タを読み出す。続いて、読み出した検証データを用いて、端末装置の正当性検証を 行う。検証の詳細は、実施の形態 1において説明した検証部 3013による検証と同様 であるのでここでは説明を省略する。
[0496] 次に検証部 3256は、 Attestationの結果を制御部 3231へ通知する。
(9)制御部 3231
制御部 3231は、各構成要素の構成を制御する機能部である。
制御部 3231は、いずれかの端末装置に装着されると、 ID記憶部 3266から、 ID #
2を読み出し、端末装置に出力する。また、端末装置から機器 IDを受け取りメモリ 32
02に,じ'|怠 る。
[0497] ここで、機器 IDには、通信機能を有する再生装置であるか否か、また、記録媒体で あるかを示す情報が含まれる。例えば、通信機能を有するものは先頭ビット「11」から 始まり、通信機能を有さないものは、先頭ビット「10」から始まり、記録媒体は、先頭ビ ット「00」力 始まる機器 IDを有する。
続いて、制御部 3231は、端末装置から、 Attestation要求と乱数 (ノンス)とを受け 取る。これらを受け取ると、 TPM # 2 (3247)へ、受け取ったノンスを出力し Attestat ionを指示する。 [0498] メモリカード # 2の正当性が証明され、端末装置から動作許可通知を受信すると、 制御部 3231は、検証部 3256へ、端末装置の正当性検証 (Attestation)の指示を 出力する。このとき、メモリ 3232に書き込んだ端末 IDを読み出し、 Attestationの指 示と共に読み出した端末 IDを、検証部 3256へ出力する。
次に、制御部 3231は、検証部 3256力 、 Attestationの結果を通知される。通知 された結果により、端末装置が不正であると判断された場合、制御部 3231は、以後 端末装置との通信を停止する。
[0499] 通知された結果により端末装置が正当であると判断された場合、端末装置の利用 者の操作に従って、暗号ィ匕コンテンツの出力などの処理を行う。
(9- 1)端末装置 # 1に装着された場合の処理
以下に、端末装置 # 1に装着された場合に行われる処理について説明する。 メモリカード # 2が、端末装置 # 1に装着された状態で、端末装置 # 1から、コンテン ッの購入要求を受け取る。この要求を受け取ると、制御部 3231は、 ID記憶部 3266 に記憶されている全ての機器 IDを読み出す。続いて、最新の検証データの送信を要 求する最新検証データ要求を生成し、生成した最新検証データ要求を、端末装置 # 1の通信機能を利用してコンテンツ提供サーバ 3202へ送信する。最新検証データ 要求には、読み出した全ての機器 IDが含まれている。
[0500] 続いて、端末装置 # 1を介して、コンテンツ提供サーバ 3202から、複数の最新検 証データを受信する。受信した最新検証データに含まれる機器 IDを基に、検証デー タ記憶部 3257に記憶されている検証データを、受信した検証データにより書き換え る。
次に、制御部 3231は、メモリカード # 2自身を示す ID # 2を含む検証データ # 2を 読み出し、読み出した検証データ # 2を最新検証データ # 2として端末装置 # 1へ出 力する。
[0501] 出力した後、制御部 3231は、メモリ 3232にロードされている DRMプログラムの示 す手順に従って、コンテンツの購入処理を行う。
(9- 2)端末装置 # 2に装着された場合の処理
以下に、端末装置 # 2に装着された場合に行われる処理について説明する。 制御部 3231は、受け取った機器 IDの先頭の 2ビットが「10」の場合、 Attestation に先立って、自身を示す ID # 2を含む検証データ 3259を読み出し、読み出した検 証データ 3259を最新検証データとして出力する。
2. 5 動作
以下に、 Attestationに関連する各機器の動作について説明する。
[0502] なお、メモリカード # 2と端末装置との相互の Attestation処理に関する動作は、何 れの端末装置の場合も同じであるので、ここでは、端末装置 # 2とメモリカード # 2と の相互 Attestationにつ!/、ての説明は省略する。
(1)相互 Attestation
メモリカード # 2が端末装置 # 1に装着された状態で、端末装置 # 1の電源が ON になり、双方のブートプロセスが終了すると、端末装置 # 1が検証装置となって、メモ リカード # 2の正当性を検証する第 1の Attestationが行われる(ステップ S3101〜 ステップ S3103)
先ず、端末装置 # 1の検証部 3281は、ノンス # 2を生成してメモリカード # 2へ出 力する(ステップ S3101)。
[0503] メモリカード # 2の TPM # 2は、ノンス # 2を受け取ると、 AIK # 2を用いて、受け取 つたノンス # 2と、自身が保持して ヽる PCR # 2とに署名を施して署名データを生成 する。生成した署名データ「AIK # 1 (ノンス # 2、 PCR # 2)」と、 AIK証明書 # 2と S ML # 2とを、端末装置 # 1へ出力する (ステップ S3102)。以下、その他の実施の形 態において鍵 Aを用いて、データ B、 C- - -に署名を施して生成された署名データを「 A (B、 C · · · )」と記載する。一例として前述の「AIK # 1 (ノンス # 2、 PCR # 2)」は、 鍵「AIK # 1」を用いて「ノンス # 2、 PCR # 2」に署名を施して生成されたものである。
[0504] 端末装置 # 1の検証部 3281は、メモリカード # 2から、署名データと AIK証明書 # 2と SLM # 2とを受け取る。これらを受け取ると、 AIK証明書 # 2の検証、署名データ の検証 (具体的には、ノンス # 2の検証及び PCR# 2の検証)、 SML # 2の検証を順 次行う(ステップ S3103)。これらの検証には、サーバ公開鍵(図示せず)、 AIK証明 書 # 2に含まれる SIK公開鍵 # 2、検証データ記憶部 3282に記憶されている正規 P CR # 2及び正規 SML # 2が用いられる。 [0505] 第 1の Attestationが成功であれば、続!、て、メモリカード # 2が検証装置となって 、端末装置 # 1の正当性を検証する第 2の Attestationが行われる(ステップ S3106 〜ステップ S3108)。
先ず、メモリカード # 2の検証部 3256は、ノンス # 1を生成し、生成したノンス # 1を 、端末装置 # 1へ出力する (ステップ S3106)。
[0506] 端末装置 # 1の TPM # 1は、ノンス # 1を受け取ると、 AIK# 1を用いて、受け取つ たノンス # 1及び自身の保持して ヽる PCR # 1に署名を施して署名データを生成し、 AIK証明書 # 1と、生成した署名データと、 SML # 1とをメモリカード # 2へ出力する (ステップ S3107)。
メモリカード # 2の検証部 3256は、端末装置 # 1から AIK証明書 # 1と署名データ と SML # 1とを受け取る。これらを受け取ると、 AIK証明書 # 1の検証、署名データ の検証 (具体的には、ノンス # 1の検証及び PCR# 1)、 SML # 1の検証を順次行う ( ステップ S3108)。これらの検証には、サーバ公開鍵(図示せず)、 AIK証明書 # 1に 含まれる AIK公開鍵 # 1、検証データ記憶部 3257の記憶している正規 PCR# 1及 び正規 SML # 1が用いられる。
[0507] 第 2の Attestationが成功であれば、端末装置 # 1は、再生制御プログラムを実行 し、利用者の操作に従ってコンテンツの再生を開始する。
(2)最新検証データの取得
図 43の太線矢印は、最新の検証データ取得に関する動作を示している。以下に図 43を用いて、最新の検証データ取得処理における各機器の動作を説明する。
[0508] 利用者による、新たなコンテンツの購入を要求する操作をトリガとして、メモリカード
# 2の制御部 3231は、最新検証データ要求をコンテンツ提供サーバ 3202へ送信 する。この要求を受けて、コンテンツ提供サーバは、最新の検証データをメモリカード
# 2へ送信する (ステップ S 3111)。
メモリカード # 2の制御部 3231は、端末装置 # 1の通信機能を利用して、最新検証 データを受信し (ステップ S3111)、自身の記憶して 、る検証データを、受信した最 新の検証データにより書き換える。
[0509] 続 、て、自身の機器 IDと対応する最新の検証データ (最新の正規 PCR # 2及び最 新の正規 SML)を端末装置 # 1へ出力する (ステップ S3112)。
端末装置 # 1の制御部は、メモリカード # 2から最新の検証データ (最新の正規 PC R # 2及び最新の正規 SML)を受け取り(ステップ S3112)、受け取った最新の検証 データにより、検証データ記憶部 3282の保持している検証データを書き換える。
[0510] 双方において検証データの書き換えが終了すると、メモリカード # 2は、メモリ 3232 上の DRMアプリを実行して、利用者の操作に従って新たなコンテンツの購入処理を 行う。
また、その後、端末装置 # 3に装着されると、メモリカード # 2は、自身の機器 IDと対 応する最新の正規 PCR値 # 2と最新の正規 SML # 2とを、端末装置 # 3へ出力する (ステップ S3113)。端末装置 # 3は、自身の検証データ記憶部 3283に記憶してい る検証データを、受け取った最新の正規 PCR値 # 2と最新の正規 SML # 2により、 書き換える。
2. 6 実施の形態 2に関する変形例
(1)特定の PCR値の指定
実施の形態 1の変形例(3)と同様に、本実施の形態の Attestation処理において も、検証側の機器は、ノンスとともに何れか一つ (複数でも良い)の PCR値を示す識 別情報を送信し、証明側の機器は識別情報の示す PCR値のみを読み出して署名デ ータを生成し送信する。これに合わせて、ログ情報についても、受信した識別情報の PCR値に係るログ情報のみを抽出して送信するとしてもよい。
[0511] (2)複数のメモリカード
本実施の形態では 1枚のメモリカード # 2が複数の端末装置に装着される場合を例 に説明してきたが、逆に、 1台の端末装置 # 1に複数のメモリカードが装着される場合 ち考免られる。
この場合、端末装置 # 1は、過去に装着されたメモリカードの機器 IDを記憶してい る。また、各機器 IDと対応する検証データ(正規 PCR値群、正規 SML)を記憶して いる。検証部 3281は、現在装着されているメモリカードを示す機器 IDと対応する検 証データを選択し、端末装置が検証装置となる Attestationにおいて、選択した検 証データを用いる。 3. 実施の形態 3
3. 1 概要
本実施の形態も、実施の形態 2と同様に、アプリケーションとして、再生制御プログ ラムを有する端末装置 3301 (証明装置)と暗号化コンテンツを保持するメモリカード 3 302 (検証装置)から構成される。
[0512] 端末装置 3301は、それぞれ個別の提供者力も提供された 2個の TPMを搭載して いる。ここでは、一例としてデバイス製造者の提供した TPMとネットワークプロバイダ により提供された TPMとを搭載している。説明の便宜上前者を TPM # 1、後者を TP M # 2と記載する。
このように 1台の端末に複数の提供者からの TPMが搭載されるモデルを、 TCG規格 では、マルチステークホルダーモデルと呼ぶ
各 TPMは、それぞれ異なるプログラムの PCR値及び SMLを管理して!/、る。
[0513] メモリカード 3302は、先ず下位層のプログラムを管理している TPM # 1との間で At testationを行い、検証の結果、下位層のプログラム群の構成が正当であることが証 明されると、上位層のプログラム(アプリケーション)を管理する TPM # 2との間で Att estationを行 、、上位層のプログラム構成が正当であることを確認する。
[0514] また、端末装置 3301内においても、下位のプログラム群を管理する TPM # 1が上 位のプログラムを管理する TPM # 2の正当性を検証し、正当な TPMである力否かを 検証し、正当であると証明されると TPM # 1の管理するプログラム群のうち最上位の プログラムと対応する PCR値を出力し、 TPM # 2は、受け取った PCR値を用いて、 T PM # 2の管理するプログラムの PCR値を算出する。
[0515] また、検証の結果、 TPM # 2が不正であると判断すると、 TPM # 2への電力供給を 停止する。
図 44は、各機器の構成及び各構成の動作を示す構成図である。図中の矢印は、 各機器内及び機器間のデータフローを示している。また、図中において、各機器の 構成及び各構成の保持するデータには、数字のみの参照符号を付しており、動作を 示す部分には「S」で始まるステップ番号を付している。以下、図 44を用いて、各機器 の構成及び、動作について説明する。 3. 2 端末装置 3301の構成
端末装置 3301は、再生制御部 3311、 TPM # 2 (3312)、メモリ 3313、 RTM331 8、ログ記憶部 3319、証明書記憶部 3326、 TPM # 1 (3134)力 構成される。これ らの他にも、各種のデータ及びプログラムを記憶している不揮発性の記憶部、利用者 の操作を受け付ける入力部、表示部、メモリカードを装着し、各種の情報の入出力及 び電力供給を行う入出力部などを備える力 図 42では、これらを省略し、 Attestatio nに関連する部分のみを記載して 、る。
[0516] (1)再生制御部 3311
再生制御部 3311は、 CPUが、メモリ 3313上にロードされた再生制御プログラム 3 314を実行することにより実現される機能部であって、メモリカード 3302から、暗号ィ匕 コンテンツを読み出し、読み出した暗号ィ匕コンテンツを復号、伸長して再生する。
[0517] (2)TPM # 2 (3312)
TPM # 2は、自身を示す TPM識別子「ID # 2」を記憶して 、る。
また、 TPM # 2は、上位層のプログラムを示す識別情報を 1以上記憶している。 TP M # 2は、記憶している識別情報の示すプログラムの、正当性を示す情報 (PCR値 及び SML)を管理する。ここでは、具体的には再生制御プログラム 3314を示す識別 情報を記憶しており、このプログラムの完全性を示す情報を生成及び管理する。
[0518] また、図中の「EK# 2」は、 TPM # 2に固有の EK秘密鍵を示しており、「AIK# 2」 は、 AIK秘密鍵を示しており、 PCR# 2は、 TPM # 2の記憶している PCR値群を示 す。
TPM # 2は、 RTM3318力ら、各プログラムを示す識別情報とそのプログラムのィ ンテグリティ値を受け取る。受け取った識別情報が、自身の管理するプログラムの識 別情報と一致すれば、受け取ったインテグリティ値を用いて、 PCR値を算出し、記憶 する。また、自身の記憶している PCR# 2の履歴をログ記憶部 3319へ書き込む。受 け取った識別情報が、自身の管理するプログラムの識別情報と一致しなければ、受 け取ったデータを破棄する。
[0519] また、 TPM # 2 (証明側)は、 TPM # 1 (検証側)による正当性検証を受ける。ここで の検証方法は任意であっては、一例として、チャレンジ &レスポンスのような所定の 演算を含むものであっても良いし、 IDチェックや証明書チェックのような簡単な検証 であってもよい。
検証の結果 TPM # 1から、正当であると認められると、 TPM # 2は、 TPM # 1の管 理するプログラム群のうち、最上位のプログラムである OS3316と対応する PCR値を 受け取る。これを受け取ると、受け取った PCR値を PCROとして記憶する。
[0520] 再生制御プログラム 3314力メモリにロードされるとき、記憶している PCROと RTM3 318から受け取った、再生制御プログラム 3314のインテグリティ値とを基に再生制御 プログラムの PCR値 (PCR1)を算出して記憶する。
さらに、 TPM # 2は、メモリカード 3302から、 TPM識別子「ID # 2」、ノンス # 2及 び Attestation要求を受ける。これらを受け取ると、上記の実施の形態と同様に、自 身が管理するプログラム群に関する正当性を証明する Attestation処理を行う。(詳 細は、下記の動作において説明する)
Attestationにより、 TPM # 2の管理するプログラムの正当性が証明されると、 TP M # 2は、メモリカード 3302から暗号化コンテンツ及び、暗号化コンテンツ鍵を受け 取る。暗号ィ匕コンテンツ鍵は、 AIK# 2と対になる公開鍵 (以下 AIK # 2Pと記載する )を用いて、コンテンツ鍵を暗号ィ匕して生成されたものである。暗号化コンテンツは、 音楽データを圧縮して生成された圧縮音楽データを、コンテンツ鍵を用いて暗号ィ匕 したものである。
[0521] これらを受け取ると、 TPM # 2は、 AIK# 2を用いて暗号化コンテンツ鍵を復号して コンテンッ鍵を生成し、生成したコンテンッ鍵と受け取つた B音号ィ匕コンテンッとを再生 制御部 3311へ出力する。
なお、暗号ィ匕コンテンツ鍵の生成に用いられる暗号鍵は AIK# 2Pに限定されるも のではない。例えば、使い捨てのセッション鍵を用いるなど、他の鍵を用いても良い。
[0522] (3)メモリ 3313
メモリ 3313は、主に RAM力 構成され、 CPUにより実行される各種のプログラムを 記憶している。
図 44では、一例として再生制御プログラム 3314、 OS3316が記憶されている。
[0523] 再生制御プログラム 3314は、メモリカード 3302に記憶されている暗号化コンテンツ を復号、伸長し再生する手順を含む。
OS3316は、アプリケーション (ここでは、音楽再生プログラム)を呼び出す手順を 含む。その他にも、利用者による操作の受け付け、メモリカードの検出など、端末装 置 3301の基本的な動作を制御する手順を含むプログラムある。 OS3316は、 TPM # 1により、 TPM # 2が正当であると判断されると、再生制御プログラム 3314をメモリ 3313にロードする。
[0524] (4)RTM3318
RTM3318は、上記の実施の形態 1において説明した RTM3107と同様に BIOS に含まれる CRTM及び各プログラムに含まれる RTMコードを CPUが実行することに より実現される機能部である。なお、その他の実施の形態 1における変形例 (4)で説 明したように、各プログラムが RTMコードを含まな 、構成であってもよ!/、。
[0525] RTM3318は、次に、メモリ 3313にロードされるプログラムのインテグリティ値を計 測し、計測したインテグリティ値と計測対象となったプログラムを示す識別情報とを、 T PM # 1及び TPM # 2双方に出力する。
(5)ログ記憶部 3319
ログ記憶部 3319は、 RAMなどの揮発性メモリから構成され、 SML # 2 (3322)及 び SML # 1 (3323)を記憶して!/、る。
[0526] SML # 2 (3322)は、 TPM # 2の管理するプログラムと対応する PCR # 2の履歴 情報を含む。
SML # 1 (3323)は、 TPM # 1の管理するプログラム群と対応する PCR値群(以下 PCR# 1)の履歴情報を含む。
(6)証明書記憶部 3326
証明書記憶部 3326は、フラッシュメモリなど不揮発性のメモリにより構成され、一例 として、 EK証明書 # 2 ( 3327)、 AIK証明書 # 2 ( 3328)、 EK証明書 # 1 (3329)及 び AIK証明書 # 1 (3331)を記憶している。
[0527] EK証明書 # 2 (3327)は、 TPM # 2の保持している EK # 2と対応する EK公開鍵 の正当性を証明する証明書である。
AIK証明書 # 2 (3328)は、 TPM # 2の保持して ヽる AIK # 2と対応する公開鍵( AIK# 2P)の正当性を証明する証明書である。
EK証明書 # 1 (3329)は、 TPM # 1の保持している EK # 1と対応する EK公開鍵 の正当性を証明する証明書である。
[0528] AIK証明書 # 1 (3331)は、 TPM # 1の保持している AIK# 1と対応する AIK公開 鍵の正当性を証明する証明書である。
各証明書の構成については、実施の形態 1において説明した通りであるので、ここ では説明を省略する。
また、これらにカ卩えて、各 TPMに対応する PF証明書 (具体的には、ネットワークプ ロバイダの証明書及び端末装置製造者の証明書)を記憶していても良い。
[0529] (7)TPM # 1 (3334)
TPM # 1 (3334)は、デバイス製造者により提供されたものであり、自身を識別する TPM識別子「ID # 1」及び、 BIOS力 OSまでの下位層のプログラム群の識別情報 を記憶している。 TPM # 1は、記憶している識別情報の示す各プログラムの正当性 を示す情報 (PCR値及び SML)を管理する。
[0530] また、図中の「EK# 1」は、 TPM # 1に固有の EK秘密鍵を示しており、「AIK# 1」 は、 AIK秘密鍵を示しており、 PCR# 1は、 TPM # 1の記憶している PCR値群を示 す。
TPM # 1は、 RTM3318からインテグリティ値とインテグリティ値の計測対象となつ たプログラムを示す識別情報とを受け取る。受け取った識別情報と記憶して 、る識別 情報の何れかと一致すれば、受け取ったインテグリティ値を基に識別情報の示すプ ログラムの PCR値を算出し、記憶する。一致しない場合は、受け取ったインテグリティ 値を破棄する。
[0531] また、メモリ 3313に OS3316力 Sロードされ、かつ、メモリカード 3302のブート処理が 完了すると、 TPM # 1は、メモリカード 3302から、 TPM識別子「ID # 1」、ノンス # 1 及び Attestation要求を受け取る。これらを受け取ると、 TPM # 1は、メモリカード 33 02 (検証装置)との間で Attestations処理を行う。
[0532] Attestationの結果、 TPM # 1の管理するプログラム群の正当性が証明されると、 TPM # 1は、次に、 TPM # 2を検証する。検証の結果、 TPM # 2が正当であると判 断すると、 TPM # 1の管理するプログラム群のうち、最上位層のプログラムである OS
3316と対応するPCR値(PCR(OS) )をTPM # 2へ出カする。
3. 3 メモリカード 3302の構成
図 44には、メモリカード 3302の機能的構成を示している。図 44に示すように、メモ リカード 3302は、検証部 3341、 DRM処理部 3342、コンテンツ記憶部 3343及び検 証データ記憶部 3344から構成される。この他にも、端末装置 3301との間でデータ の入出力を行い電力の供給を受ける入出力部、ブートプログラムを初めとする各種の プログラムを記憶している不揮発性メモリなどを含んでいる力 ここでは、 Attestatio n処理に関連する部分のみを記載して 、る。
[0533] 以下に、各機能部について説明する。
(1)検証部 3341
検証部 3341は、メモリカード 3302が装着される端末装置 3301に搭載されており 下位層のプログラム群を管理する TPMの TPM識別子「ID # 1」と、上位層のプログ ラムを管理する TPMの TPM識別子「ID # 2」とを記憶して 、る。
[0534] メモリカード 3302のブート処理が終了すると、検証部 3341は、ノンス # 1を生成し 、自身の記憶して 、る ID # 1と生成したノンス # 1と、 Attestation要求とを端末装置 3301へ出力する。これをトリガとして、端末装置 3301内の TPM # 1との間で Attest ation処理行う。
Attestationの結果、 TPM # 1の管理するプログラム群の構成が不正であると判 断すると、検証部 3341は、以後、メモリカード 3302と端末装置 3301との通信を禁止 する。
[0535] Attestationの結果、 TPM # 1の管理するプログラム群の構成が正当であると判 断すると、検証部 3341は、検証が成功であることを端末装置 3301内の TPM # 1へ 通知する。
前記通知の後、検証部 3341は、ノンス # 2を生成し、記憶している ID # 2と生成し たノンス # 2と、 Attestation要求を端末装置 3301へ出力する。これをトリガとして、 端末装置 3301内の TPM # 2との間で Attestation処理を行う。
[0536] Attestationの結果、 TPM # 2の管理するプログラム群の構成が不正であると判 断すると、検証部 3341は、以後、メモリカード 3302と端末装置 3301との通信を禁止 する。
Attestationの結果、 TPM # 2の管理するプログラム群の構成が正当であると判 断すると、検証部 3341は、 TPM # 2との Attestationにおいて受け取った AIK証明 書 # 2から AIK# 2Pを抽出し、抽出した AIK# 2Pと TPM # 2を示す ID # 2とを DR M処理部 3342へ出力する。
[0537] (2)コンテンツ記憶部 3343
コンテンツ記憶部 3343は、フラッシュメモリなどの不揮発性の記憶媒体により構成 され、暗号ィ匕コンテンツ及び暗号ィ匕コンテンツに対応する権利情報を記憶して 、る。 権利情報には暗号ィ匕コンテンツを復号するためのコンテンツ鍵、コンテンツの視聴が 許可される期限などが含まれている。
[0538] (3) DRM処理部 3342
DRM処理部 3342は、端末装置 3301の通信機能を利用して、コンテンツプロバイ ダのサーバ装置との間でコンテンツ購入に関する処理を行ったり、コンテンツ記憶部 3343に記憶されている各暗号ィ匕コンテンツの有効期限の管理を行ったりする。 また、 DRM処理部 3342は、検証部 3341から、コンテンツ再生に係るプログラムを 管理する TPM # 2を示す ID # 2と公開鍵 API # 2Pとを受け取り記憶する。
[0539] DRM処理部 3342は、端末装置 3301を操作する利用者によるコンテンツ視聴要 求を受ける。コンテンツの視聴要求を受けると、 DRM処理部 3342は、検証部 3341 力 受け取った AIK# 2Pを用いて、コンテンツ鍵を暗号化して暗号化コンテンツ鍵を 生成し、生成した暗号ィ匕コンテンツ鍵と、 ID # 2と、 B音号化コンテンツとを、端末装置 3301へ出力する。
[0540] (4)検証データ記憶部 3344
検証データ記憶部 3344は、不揮発性の記憶媒体により構成され、一例として、検 証データ 3347、 CA公開鍵 3351及び検証データ 3352とを記憶している。
CA公開鍵は、 AIK証明書 # 1及び AIK証明書 # 2の発行元である第三者機関の 公開鍵であって、これらの証明書に含まれる署名データの生成に用いられた CA秘 密鍵と対になる鍵である。 [0541] 検証データ 3347は、検証部 3341と端末装置 3301内の TPM # 2との Attestatio nに用いられる検証データである。以下、検証データ # 2と記載する。
検証データ 3352は、検証部 3341と端末装置 3301内の TPM # 1との Attestatio nに用いられる検証データである。以下、検証データ # 1と記載する。
具体的に、検証データ # 1は、ノンス # 1 (3353)と、正規 PCR# 1 (3354)と、正規 SML # 1 (3356)力も構成される。これらのデータについては、上記の実施の形態 1 、実施の形態 2にお 、て説明した通りであるので詳細な説明は割愛する。
3. 4 動作
以下に、端末装置 3301の起動力もコンテンツ再生に至るまでの動作について、図 44を用いて説明する。なお、メモリカード 3302は、端末装置 3301に装着されており 、端末装置 3301から電力が供給され、一連のブート処理を終了しているとする。
[0542] メモリカード 3302のブート処理が終了すると、検証部 3341は、ノンス # 1を生成し( ステップ S3131)、生成したノンス # 1、下位層のプログラムを管理する TPMを示す I D # 1を端末装置 3301送信し、 Attestationを要求する(ステップ S3132)。送信と 共に、検証部 3341は、生成したノンス # 1を検証データ記憶部 3344へ書き込む (ス テツプ S3133)。
[0543] 端末装置 3301の TPM # 1は、メモリカード 3302から ID # 1、ノンス # 1及び Attes tation要求を受け取る(ステップ S3132)。これらを受け取ると、 TPM # 1は、自身の 保持する AIK # 1を用いて、受け取ったノンス # 1及び記憶している PCR# 1に署名 生成アルゴリズムを施して署名データ「AIK# 1 (ノンス # 1、 PCR# 1)」を生成する( ステップ S3134)。
[0544] 次に、自身を示す ID # 1と、生成した署名データと、 AIK証明書 # 1と、 SML # 1と をメモリカード 3302へ出力する(ステップ S3136)。
メモリカード 3302の検証部 3341は、署名データ「AIK# 1 (ノンス # 1、 PCR# 1)」 と、 AIK証明書 # 1と、 SML # 1とを受け取る (ステップ S3136)。これらを受け取ると 、検証部 3341は、検証データ記憶部 3344から、 CA公開鍵 3351と検証データ # 1 とを読み出し (ステップ S3137)、読み出した CA公開鍵 3351と検証データ # 1とを 用いて、受信したデータを検証する (ステップ S3138)。具体的には、 AIK証明書 # 1の検証、署名データの検証 (ノンス # 1及び PCR# 1の検証)、 SML # 1の検証を 順次行う。
[0545] 検証の結果、 TPM # 1の管理するプログラム群の正当性が証明されると、検証部 3 341は、 ID # 1と検証結果 (OK)を端末装置 3301へ出力する (ステップ S3139)。 端末装置 3301の TPM # 1は、メモリカード 3302から、 ID # 1と検証結果 (OK)と を受け取る(ステップ S3139)。これらを受け取ると、 TPM # 1は、 TPM # 2の正当性 を検証し、正当であると判断すると、 OS3316と対応する PCR値 (以下、 PCR(OS) と記載する)を TPM # 2へ出力する (ステップ S3141)。
[0546] TPM # 2は、受け取った PCR (OS)を PCR0として記憶し、続!、て、 PCR0及び再 生制御プログラム 3314のインテグリティ値から、 PCR1を算出する。
TPM # 1の Attestationが成功すると、メモリカード 3302の検証部 3341は、ノン ス # 2を生成し (ステップ S3144)、生成したノンス # 2と記憶している ID # 2とを端末 装置 3301へ出力し、 Attestationを要求する(ステップ S3146)。
[0547] 端末装置 3301の TPM # 2は、メモリカード 3302力ら、 ID # 2とノンス # 2と Attest ation要求を受け取る(ステップ S3146)。これらを受け取ると TPM # 2は、 AIK # 2 を用いて、受け取ったノンス # 2と保持している PCR# 2とに署名生成アルゴリズムを 施して署名データ「AIK # 2 (ノンス # 2、 PCR # 2)」を生成する (ステップ S3149)。
[0548] 続いて、 TPM # 2は、 ID # 2と、生成した署名データと、 AIK証明書 # 2と、 SML
# 2とをメモリカード 3302へ出力する(ステップ S3151)。
メモリカード 3302の検証部 3341は、端末装置 3301から ID # 2と、署名データと、 AIK証明書 # 2と、 SML # 2とを受け取る(ステップ S3151)。これらを受け取ると、検 証部 3341は、検証データ記憶部 3344から、 CA公開鍵 3351と検証データ # 2とを 読み出し (ステップ S3152)、読み出した CA公開鍵 3351と検証データ # 2とを用い て受け取ったデータを検証する(ステップ S3153)。具体的には、 AIK証明書 # 2の 検証、署名データの検証、 SML # 2の検証を順次行う。
[0549] 検証が成功し、 TPM # 2の管理するプログラム群の構成が正当であると判断すると 、検証部 3341は、受け取った ID # 2と、 AIK証明書 # 2に含まれる AIK# 2Pとを D RM処理部 3342へ出力する(ステップ S 3154)。 DRM処理部 3342は、受け取った ID # 2と AIK# 2Pを記憶しておく。利用者の操 作によりコンテンツの再生を要求されると、 DRM処理部 3342は、要求に対応する暗 号ィ匕コンテンッ及びコンテンッ鍵をコンテンッ記憶部 3343から読み出す (ステップ S 3155)。続いて、記憶している AIK # 2Pを用いてコンテンツ鍵を暗号ィ匕する(ステツ プ S3156)。次に、 DRM処理部 3342は、記憶している ID # 2と、読み出した暗号化 コンテンツと、生成した暗号ィ匕コンテンツ鍵とを端末装置 3301へ出力する (ステップ S3158)。
[0550] 端末装置 3301の TPM # 2は、メモリカード 3302から ID # 2と、暗号化コンテンツと 、暗号ィ匕コンテンツ鍵とを受け取る (ステップ S3158)。これらを受け取ると、受け取つ た暗号ィ匕コンテンツをそのまま再生制御部 3311へ出力し、次に、記憶している AIK # 2を用いて暗号ィ匕コンテンツ鍵を復号してコンテンツ鍵を生成する (ステップ S316 D o次に、 TPM # 2は、生成したコンテンツ鍵を再生制御部 3311へ出力する (ステ ップ S3162)。
[0551] 再生制御部 3311は、 TPM # 2から、暗号化コンテンツ及びコンテンツ鍵を受け取 る(ステップ S3162)。これらを受け取ると、受け取ったコンテンツ鍵で暗号化コンテン ッを復号してコンテンツを生成し、生成したコンテンツを再生する (ステップ S3163)。 復号により生成されたコンテンツが圧縮されていれば、伸長して再生する。
3. 5 実施の形態 3に関する変形例
(l)TPM間の検証
上記の実施の形態では、 TPM # 1の管理するプログラム群の正当性が証明された 後、 TPM # 1が TPM # 2を検証するとした力 これは必須ではない。
[0552] TPM # 1の管理するプログラム群の正当性が証明された後、 TPM # 1は TPM # 2 をァクティべイトし、 OSの PCR値を出力するだけでも良い。
逆に、メモリカード 3302との TPM # 1との Attestationに先立って、 TPM間で相 互認証を行うとしても良い。
また、 TPM # 1が、 TPM # 2の正当性を検証する方法について、上記の実施の形 態 3では、詳細には言及していないが、任意の方法で検証すればよい。例えば、チヤ レンジ &レスポンスのような、所定の演算により正当性を確認しても良いし、 TPM識 別子をチェックするような簡易な方法でも良い。
[0553] また、上記の実施の形態 3では、 TPM # 1による TPM # 2の正当性検証が失敗し た場合、 TPM # 1は、 TPM # 2への電力供給を停止すると記載したが、これに限定 されるものではなぐ例えば TPM # 2の起動を停止してもよいし、 TPM # 2の機能を 帘 U限するとしてもよ 、。
(2) TPM # 2が独立して動作
上記の実施の形態 3では、 TPM # 2は、 TPM # 1から OS3316と対応する PCR( OS)を受け取り、これを PCR0として記憶し、 PCR0と再生制御プログラム 3314のィ ンテグリティ値と力も再生制御プログラム 3314の PCR値 (PCR1)を算出しているがこ の構成に限るものではない。
[0554] 一例として、 TPM # 2内の不揮発性のメモリに所定の初期値 PCR0を記憶しておき 、これを用いて PCR1を算出しても良い。このように、 TPM # 2は、 TPM # 1とは独立 に動作する構成でも良い。
このように TPM # 2が、独自に PCR値を算出する場合、 TPM間の検証方法は、 T PM # 1が検証装置、 TPM # 2が証明装置となって、 Attestationを行っても良い。
[0555] (3)TPM # 2のソフトウェア実装
上記の実施の形態 3では、端末装置 3301は、ハードウェアである TPM # 2を搭載 しているとして説明してきた。しかし、 TPM # 2の機能の一部又は全部をソフトウェア により実現しても良い。
この場合、 TPM # 1は、メモリカード 3302との Attestationが成功すると、 TPM # 2の機能を担うハードウェア部分及びソフトウェア部分をそれぞれ検証する。具体的な 検証方法は任意である。一例として、 TPM # 1は、予めソフトウェア部分の検証デー タ (ハッシュ値など)を保持しておき、メモリにロードされる前にソフトウェア部分の証明 データ (ハッシュ値など)を算出し、両者を比較することで、ソフトウェア部分の正当性 を検証する。
[0556] また、 TPM # 2のハードウェア部分の検証につ!、ては、上記の TPM # 2の検証と 同様に IDの確認、チャレンジ &レスポンスなどにより正当性を検証する。
(4)検証失敗後の動作 上記の実施の形態 3では、 Attestationにより、端末装置 3301の構成が不正であ ると判断されると、メモリカード 3302内の検証部 3341は、端末装置 3301との通信を 禁止するとしている力 このような構成に限定されるものではない。
[0557] 例えば、メモリカードが端末装置に提供する機能、データを制限するとしても良い。
また、端末装置 3301は、自身の備えるプログラムを更新する更新制御部を備えて いても良い。
この場合、端末装置 3301の構成が不正であると判断されると更新制御部は、外部 サーバ(端末製造者のサーバ、ネットワークプロバイダのサーバ、コンテンツプロバイ ダのサーバ)から、更新プログラムをダウンロードし、ダウンロードした更新プログラム により、各プログラムを最新バージョンに書き換えた後、端末装置 3301を再起動する としてちよい。
[0558] (5)端末装置の構成通知
本実施の形態では、メモリカード 3302は、予め、端末装置 3301に 2つの TPMが 搭載されていることを知っており、各 TPMに対応する検証データを保持しているとし たが、端末装置に装着された時点で、端末装置の内部構成を示す構成情報を取得 してもよい。構成情報には、端末装置の搭載する TPMの数及び、 TPM識別子、さら に、複数の TPMを搭載する場合は、各 TPMの管理するプログラムの上下関係を示 す階層情報 (上記実施の形態では TPM # 1が下位層のプログラム群、 TPM # 2が 上位層のプログラム群と対応して 、る)が含まれる。
[0559] この場合、メモリカード 3302は、さらに、検証データ # 3を記憶している。検証デー タ # 3は、 TPMを 1個のみ搭載して!/、る端末装置との Attestationに用いられる正規 PCR # 3及び正規 SML # 3を含む。
メモリカード 3302の検証部 3341は、取得した構成情報により検証の手順を選択す る。端末装置に 2個の TPMが搭載されている場合には、上記の実施の形態 3と同様 に、下位層プログラム群を管理する TPMと Attestationを行った後、上位層のプログ ラム群を管理する TPMと Attestationを行う。
[0560] 端末装置が 1個の TPMを搭載している場合には、検証部 3341は、検証データ # 3を用いて、端末装置の構成の正当性を検証する。 4. 実施の形態 4
4. 1 概要
端末装置に記憶されているプログラムを更新する必要が生じたとき、更新プログラム を、メモリカードを介して配布する場合がある。
[0561] ここでは、端末装置内のプログラムのうちキャリア 3373 (通信事業者)が提供してい るプログラムを更新するための更新プログラムを、メモリカードを介して配布する。端 末装置には、コンピュータにより動作の一部又は全部を制御される様々な機器が該 当するが、例えば、携帯電話、コンテンツ再生装置、ゲーム機などが該当する。 端末装置 3371は、上記の実施の形態 1と同様に TPMを搭載しており、起動してか らメモリにロードされる各プログラムの完全性及びプログラム構成の正当性を示す PC R値群及び SML (PCR値群の履歴を含む)を生成し記録する。また、端末装置 337 1は、キャリアにより提供されたプログラム (キャリア提供プログラム)を記憶している。
[0562] キャリア 3373は、メモリカード 3372に更新プログラムと、メモリカードが正当なキヤリ ァカゝら配布されたことを証明するキャリア証明書とを記録したメモリカードを配布する 場合を想定して説明する。
メモリカード 3372 (検証装置)は、端末装置 3371 (証明装置)に装着されると、端末 装置 3371との間で Attestationを行 、、端末装置 3371の構成の正当性を検証す る。端末装置 3371の構成が正当であることが証明されると、メモリカード 3372は、記 憶しているデータを端末装置 3371へ出力する。
[0563] 端末装置 3371は、メモリカード 3372から出力された更新プログラムによる更新を 行う前に、キャリア証明書の検証を行い、自身に装着されているメモリカード 3372が 正当なキャリア 3373から配布されたメモリカードであることを確認する。
4. 2 メモリカード 3372の構成
メモリカード 3372は、上記の実施の形態と同様に、入出力部、制御部、メモリ、検 証部、検証データ記憶部など各機能部により動作するが、これらは、上記の実施の 形態と同様であるので、ここでは、具体的な構成の説明は省略し、メモリカード 3372 の保持するデータについて説明する。
[0564] (1)更新プログラム 3376 更新プログラム 3376は、端末装置 3371の保持するキャリア提供プログラム 3384 の一部又は全部を書き換える手順や書き換える内容を含む。更新プログラム 3376は 、端末装置 3371内の更新制御部 3382により解読され実行される。
(2)キャリア証明書 3377
キャリア証明書 3377は、メモリカード 3372が正当なキャリア 3373により配布された ことを示す証明書であって、更新プログラム 3376をハッシュ関数に代入して生成され た更新プログラムハッシュ値 3378と、キャリア 3373の秘密鍵 (以下、キャリア秘密鍵 と呼ぶ)を用いて、少なくとも更新プログラムハッシュ値 3378に署名生成アルゴリズム を施して生成された署名データ 3379とを含む。これら以外にも、発行元であるキヤリ ァ 3373を示す識別情報、証明書の形式を示す形式情報、署名生成アルゴリズムを 示す情報などを含んで 、る。
4. 3 端末装置 3371
端末装置 3371についても、メモリカードと同様に、各機能部を備え、それらが動作 することにより各機能を実現する力 ここでは、本実施の形態に特に関係のある構成 及びデータのみを記載し、その他の構成及びデータの記載は省略する。
[0565] 端末装置 3371は、キャリア 3373により提供されたキャリア提供 TPM3381を搭載 している。また、キャリア 3373により提供されたキャリア提供プログラム 3384、キャリア 秘密鍵と対になるキャリア公開鍵 3386を記憶している。また、プログラムの更新を実 行する更新制御部 3328を備える。
以下に、端末装置 3371の備える構成及びデータについて説明する。
[0566] (1)キャリア公開鍵 3386
キャリア公開鍵 3386は、キャリア秘密鍵と対なる公開鍵であって、製造時に、端末 装置 3371に書き込まれる。又は、出荷後にネットワーク、メモリカードなどを介して安 全に取得しても良い。
キャリア秘密鍵とキャリア公開鍵 3386の鍵ペアは、 RSA暗号に対応している。
[0567] (2)キャリア提供プログラム 3384
キャリア提供プログラム 3384は、キャリア 3373により提供されるプログラムであって 、端末装置 3371は、このプログラムを実行することで、キャリア 3373の提供する所定 のサービスを利用することができる。
(3)キャリア提供 TPM3381
キャリア提供 TPM3381は、キャリア 3373により提供された TPMであって、少なくと もキャリア提供プログラム 3384と対応する PCR値及び SMLを生成し、記録する機能 を備える。
[0568] また、更新制御部 3382からキャリア証明書を受け取り、キャリア証明書の検証を依 頼される。この依頼を受けると、キャリア提供 TPM3381は、キャリア公開鍵 3386を 読み出し、読み出したキャリア公開鍵 3386を用いて、キャリア証明書に含まれる署名 データの検証を行 、、検証結果を更新制御部 3382に通知する。
(4)更新制御部 3382
更新制御部 3382は、キャリア提供 TPM3381とメモリカード 3372による Attestati onが成功すると、メモリカード 3372から更新プログラム 3376とキャリア証明書 3377 を読み出す。
[0569] これらを読み出すと、読み出したキャリア証明書をキャリア提供 TPM3381へ出力し
、キャリア証明書の検証を依頼する。
続いて、キャリア提供 TPM3381からキャリア証明書の検証結果を通知される。検 証の失敗を示す検証結果を通知された場合、読み出した更新プログラム及びキヤリ ァ証明書を削除し、プログラムの更新を中止する。
[0570] 検証の成功を示す検証結果を通知された場合、更新制御部 3382は続 、て、読み 出した更新プログラムのハッシュ値を算出し、算出したハッシュ値とキャリア証明書に 含まれる更新プログラムノ、ッシュ値 3378とを比較する。
両者が一致する場合、更新制御部 3382は、読み出した更新プログラムに従って、 キャリア提供プログラム 3384の一部又は全部を書き換える。
[0571] 両者が一致しない場合、読み出した更新プログラムが不正に改竄されている可能 性があるので、更新制御部 3382は更新を中止し、読み出した更新プログラム 3376 及びキャリア証明書を削除する。
4. 4 動作
以下に、図 45を用いて、端末装置 3371によるプログラム更新の動作を、順を追つ て説明する。なお、ここでは、メモリカード 3372は、正当なキャリア力も発行され、端 末装置 3371に装着されるまでに、記録して 、るデータに不正な改竄をされて 、な!/ヽ ものとして説明する。
[0572] メモリカード 3372が端末装置 3371に装着されると、端末装置 3371内のキャリア提 供 TPM3381とメモリカード 3372 (検証装置)は Attestationを行う(ステップ S3181
) o
Attestationが正常に終了すると、更新制御部 3382は、メモリカード 3372は、更 新プログラム 3376及びキャリア証明書 3377を読み出す (ステップ S3182)。
[0573] 次に、更新制御部 3382は、読み出したキャリア証明書をキャリア提供端末へ出力 して、検証を依頼する (ステップ S3184)。
キャリア提供 TPM3381は、更新制御部 3382の依頼を受けると (ステップ S3184) 、キャリア公開鍵 3386を読み出し (ステップ S3186)、読み出した、キャリア公開鍵 33 86を用いてキャリア証明書に含まれる署名データを検証する (ステップ S3187)。
[0574] 続いて、キャリア提供 TPM3381は、更新制御部 3382へ検証が成功である旨を通 知する(ステップ S3188)。
更新制御部 3382は、キャリア証明書の検証が成功した旨の通知を受け (ステップ S 3188)、続いて、読み出した更新プログラムハッシュ値を算出する。算出したハッシュ 値とキャリア証明書に含まれるノ、ッシュ値とがー致することを確認した後、更新プログ ラムに従ってキャリア提供プログラム 3384を更新する (ステップ S3182)。
4. 5 実施の形態 4に関する変形例
( 1 )コンテンツ再生に関する TPM
本変形例では、端末装置 3391は、上記の実施の形態 4において説明した端末装 置 3371と同様に、少なくともキャリア提供プログラムを管理する TPMを搭載しており 、キャリア 3373により発行されたメモリカード 3372を介してキャリア提供プログラム 33 84を更新する。
[0575] これにカ卩えて、図 46に示すように、端末装置 3391はコンテンツプロバイダ(以下 C Pと記載) 3400により提供された CP提供再生制御プログラム 3393を記憶しており、 少なくとも CP提供再生制御プログラム 3393の正当性を証明する PCR値及び SML を生成、記録する CP提供 TPM3396を搭載している。また、端末装置 3391にコンテ ンッカード 3392が装着されると、所定の検証の後、端末装置 3391はコンテンツの再 生を行う。
[0576] 端末装置 3391にメモリカード 3372が装着された場合の動作は、上記の実施の形 態 4と同様であるので説明を省略する。
正当なコンテンツプロバイダ 3400により発行されたコンテンツカード 3392には、喑 号化コンテンツ 3401と暗号化コンテンツ 3401を復号するための復号鍵 3402と CP 証明書 3403が記録されている。 CP証明書 3403は、少なくとも所定の情報と、 CP秘 密鍵を用 、て前記所定の情報に署名を施して生成された署名データが含まれる。所 定の情報とは、一例として、コンテンツプロバイダ 3400を示す識別情報、復号鍵 340 2のハッシュ値などが考えられる。
[0577] 端末装置 3391は、 CPにより提供され、コンテンツの復号及び再生の手順を含む C P提供再生制御プログラム 3393と、 CP公開鍵 3394が記憶されている。 CP公開鍵 は CP秘密鍵と対になる鍵である。
以下、端末装置にコンテンツカード 3392が装着された場合の動作について説明す る。
[0578] コンテンツカード 3392が装着されると、端末装置 3391内の CP提供 TPM3396と コンテンツカード 3392 (検証装置)の間で Attestationが行われる(ステップ S3191 )。 Attestationの結果、 CP提供 TPM3396の管理するプログラム群の構成が正当 であることが証明されると、 CP提供再生制御プログラム 3393は(より正確には、 CPU により CP提供再生制御プログラム 3393が実行されることで実現される再生制御部) は、コンテンツカード 3392力ら、暗号化コンテンツ 3401、復号鍵 3402及び CP証明 書 3403を読み出す (ステップ S3192)。これらを読み出すと、 CP提供再生制御プロ グラム 3393は、読み出した CP証明書を CP提供 TPMへ出力し、 CP証明書の検証 を依頼する(ステップ S3195)。
[0579] CP提供 TPM3396は、この依頼を受けると、 CP公開鍵を読み出し (ステップ S) 31 94)、読み出した CP公開鍵を用いて CP証明書に含まれる署名データの検証を行う( ステップ S3195)。続いて、検証の結果を CP提供再生制御プログラムへ通知する (ス テツプ S3196)。
CP提供再生制御プログラム 3393は、 CP証明書が正当である旨の通知を受けると 、読み出した復号鍵で暗号ィ匕コンテンツを復号し、再生する (ステップ S3197)。
[0580] (2)他者の提供した TPMの検証
上記の変形例(1)において、メモリカード及びコンテンツカードは、それぞれ、キヤリ ァ提供 TPM、 CP提供 TPMと Attestationを行っている力 例えば、 CPにより発行 されたコンテンツカード 3392 (検証装置)はキャリア提供 TPM3381とも Attestatio nを行い、メモリカード 3372 (検証装置)は、 CP提供 TPM3396とも Attestationを 行う構成であっても良い。
[0581] また、実施の形態 3のように、いずれのカードを装着した場合も、先ず、下位層のプ ログラムを管理する TPMと Attestationを行い、 Attestationが成功すると、下位層 のプログラムを管理する TPMがもう一方の TPMをァクティべイトし、その後、起動さ れた TPM (上位層のプログラム群を管理する)と Attestationを行 、つてもよ!、。
[0582] (3) SIMカード
実施の形態 4において、端末装置はメモリカードに代えて SIM (Subscriber Iden tity Module Card)カードを検証装置として Attestationを行い、正当性が証明さ れると SIMカード内の情報を取得できる構成であっても良い。図 47は、 SIMカード 3 411の保持する情報、端末装置 3416 (この場合、携帯電話が該当する)の構成及び 動作を示している。ここでは、端末装置には、例えば、携帯電話が該当する。
[0583] SIMカード 3411にはキャリア証明書 3412とキャリア固有鍵 3413を記憶している。
SIMカード 3411には、これらの他に、契約者情報などが記録されている。
キャリア証明書 3412には、少なくとも、キャリアを識別する識別情報及び、キャリア 秘密鍵を用いて、少なくとも前記キャリア識別情報に署名生成アルゴリズムを施して 生成された署名データが含まれて!/、る。
[0584] 端末装置 3416はキャリア提供 TPM3417を搭載しており、暗号化プログラム 3418 及びキャリア公開鍵 3419を記憶している。
キャリア提供 TPM3417は、共通鍵暗号(例えば AES ( Advanced Encryption Standard) )エンジンを搭載して!/、る。 暗号ィ匕プログラム 3418は、所定のサービスを提供するプログラムをキャリア固有鍵 で暗号ィ匕して生成されたものである。
[0585] キャリア公開鍵 3419はキャリア秘密鍵と対なる公開鍵であって、これらの鍵ペアは 、 RSA暗号に対応している。
以下、端末装置 3416の動作を簡単に説明する。
先ず、キャリア提供 TPM3417 (証明装置)と SIMカード 3411 (検証装置)間で Att estationを行い、端末装置 3416内でメモリにロードされたプログラム群の構成の正 当性を検証する(ステップ S3201)。 Attestation力 正常に終了すると、キャリア提 供 TPM3417は、 SIMカード 3411からキャリア証明書 3412を読み出す (ステップ S 3202)。次に、キャリア公開鍵 3419を読み出し (ステップ S3204)、読み出したキヤリ ァ公開鍵を用いてキャリア証明書に含まれる署名データの検証を行う(ステップ S32 06)。検証が成功であれば、キャリア提供 TPM3417は、 SIMカード 3411から、キヤ リア固有鍵 3413を読み出す (ステップ S3207)。次に、自身の備える共通鍵暗号ェ ンジンにより、読み出したキャリア固有鍵を用いて暗号ィ匕プログラム 3418を復号する (ステップ S3208)。
[0586] (4)端末固有鍵
上記変形例(3)において、 SIMカードには、キャリア固有鍵が記憶されているとした 力 これに代えて、端末固有鍵を記憶している構成であっても良い。
この場合、端末装置の記憶している暗号ィ匕プログラムは、プログラムを前記端末固 有鍵により暗号ィ匕して生成されたものであって、前記端末装置だけが暗号化プロダラ ムを復号して、前記プログラムを利用することができる。
5. 実施の形態 5
5. 1 概要
本実施の形態では、端末装置 3431は、 Attestationの検証装置の機能を内部に 備える。検証データには、署名が施され改竄されたとしても、容易に改竄の検出をす ることができるようになって!/、る。
[0587] 端末装置 3431内の検証部 3438は、先ず、検証データに改竄がないことを確認し 、続いて、内部の TPM (証明者)と Attestationを行い、端末内の構成が正当である か否かを検証する。
5. 2 構成
図 48は、端末装置 3431の機能的構成を示すブロック図である。端末装置 3431は 、図示していない各種の機能部を備える力 ここでは、 Attestationに関連のある部 分のみを記載している。
[0588] 以下に各構成について説明する。
(1)メモリ 3432
メモリ 3432は、 RAM及び ROMから構成され、一例として、図 48に示すように BIO S、 OS、アプリケーションが記憶されている。これらのプログラムには、実施の形態 1 にお 、て説明したように CRTMコード又は RTMコードを含んで!/、るとしても良!、し、 実施の形態 1の変形例 (4)のように、各プログラムとは個別に、 RTMプログラムが存 在する構成でも良い。
[0589] また、 BIOSには、 OSをロードする手順が含まれており、 OSにはアプリケーションを ロードする手順が含まれて 、る。
(2) TPM3433
TPM3433は、実施の形態 1と同様に、 RTM3437からインテグリティ値を受け取り 、各プログラムに対応する PCR値を算出し、 PCR記憶部 3436に記憶している。また 、いずれかの PCR値が変わるたびに、 PCR値の履歴を不揮発メモリ 3439に書き込 み、 SML3443を生成する。なお、本実施の形態の場合、 AIK鍵ペアの生成及び AI K証明書の取得は必須ではなぐ検証部 3438による検証においては、 PCR値群を そのまま出力するが、実施の形態 1と同様に、 AIK証明書を取得し、 AIK秘密鍵を用 V、て署名を施した PCR値群を出力しても良 、。
[0590] (3)不揮発メモリ 3439
不揮発メモリ 3439は、具体的にはハードディスクユニット、フラッシュメモリ、 ROM などで構成され、図 48に示すように EK証明書 3441、 PF証明書 3442、 SML3443 、検証用公開鍵 3446、正規 PCR証明書群 3445、正規 SML証明書 3451を記憶し ている。
[0591] EK証明書 3441、 PF証明書 3442、 SML3443は、上記の実施の形態において 説明したとおりであるので、ここでは説明を省略する。
検証用公開鍵 3446、正規 PCR証明書群 3445、正規 SML証明書 3451は、端末 装置 3431の製造過程において、不揮発メモリ 3439の、書き換え不可領域に書き込 まれる。
[0592] 検証用公開鍵 3446は、 RSA暗号に対応した公開鍵であって、検証用秘密鍵 (後 述する)と対になる鍵である。検証用秘密鍵と検証用公開鍵の鍵ペアは、一例として RSA暗号に対応している。
正規 PCR証明書群 3445は、複数の正規 PCR証明書 3447、 3448、 3449 · · 'か ら構成される、各正規 PCR証明書は、少なくとも、端末装置 3431に記憶されている 各プログラムの識別情報と、そのプログラムが正当である場合に算出されるべき PCR 値とその PCR値に、検証用秘密鍵を用いて署名生成アルゴリズムを施して生成され た署名データとを含む。
[0593] 例えば、正規 PCR証明書 3447は、 BIOSと対応しており、 BIOSを示す識別情報と 、正当な BIOSコードに基づいて算出されるべき正規 PCR値 (正規 PCR1)と、検証 用秘密鍵を用いて正規 PCR1に署名生成アルゴリズムを施して生成された署名デー タとを含んでいる。
正規 SML証明書 3451は、上記の実施の形態において説明した正規 SMLと、検 証用秘密鍵を用いて、正規 SMLに署名生成アルゴリズムを施して生成された署名 データとを含んでいる。
[0594] (4)検証部 3438
検証部 3438は、端末装置 3431が起動すると、不揮発メモリ 3439から検証用公開 鍵 3446と正規 PCR証明書群 3445と正規 SML証明書 3451を読み出し、読み出し た検証用公開鍵 3446を用いて各証明書に含まれる署名データを検証する。何れか 一つでも、検証に失敗した場合、端末装置 3431の動作を停止させる。
[0595] 各証明書の検証が正常に終了すると、 TPM3433内の PCR記憶部 3436から PC R値群を読み出し、読み出した PCR値群を構成する各 PCRと、各正規 PCR証明書 に含まれる正規 PCR値とがー致することを確認する。何れか一組でも、 PCR値と正 規 PCR値とがー致しなければ、端末装置 3431の動作を停止させる。 全ての PCR値につて、読み出した PCR値と正規 PCR値とがー致すると、検証部 3 438は、不揮発メモリ 3439力ら SML3443を読み出し、読み出した SMLと正規 SM L証明書 3451に含まれる正規 SMLとを比較する。両者が一致しない場合は、端末 装置 3431の動作を停止させる。
[0596] 両者が一致すれば、検証部 3438は、検証の処理を終了する。
なお、確実な検証を行うために、検証部 3448は、メモリ 3432にロードされるプログ ラム群及び CPUとは、独立であることが望ましい。従って、ハードウェアとして実装さ れるか、書き換え不可のセキュア領域に記憶されるプログラムにより実現される、もし くは、耐タンパ実装されていることにより実現される。
[0597] また、検証が失敗した場合、端末装置 3451の動作を停止させると記載しているが、 これに限るものではなぐ例えば、所定の動作を制限して動作を継続しても良いし、 外部機器又はメモリカードから更新用プログラム及び、最新の正規 PCR証明書群と 正規 SML証明書を取得しても良い。
5. 3 実施の形態 5の変形例
(1)階層ごとの TPM
上記の実施の形態 5において、端末装置 3431は、 1個の TPMを搭載しており、検 証部 3438は、この TPMにより算出される各プログラムと対応する PCR値を検証して V、たが、プログラムの階層ごとに TPM及び検証部を備える構成であっても良 、。
[0598] 図 49は、この変形例における端末装置 3500の構成を示している。端末装置 3500 これらの他にも、ハードディスクユニット、通信部、入出力部、 CPUなどを含んで構成 される力 図 49では、端末装置 3500の構成の検証に関連する部分のみを記載して いる。また、図中の矢印は、各構成間のデータフローを示している。
図 49【こ示すよう【こ、端末装置 3500ίま、メモリ 3501、 TPM3511, 3513、 3516、 R TM3521, 3523、 3526、検証部 3522、 3524, 3527及びセキュアメモ U3531を 含んで構成される。
[0599] TPM3511と RTM3521と検証咅 3522は、アプリケーション 3502と対応しており、 TPM3513と RTM3523と検証咅 3524は、 OS3503と対応しており、 TPM3516と RTM3526と検証咅 3527は、 BIOS3504と対応して! /、る。 以下に、各構成について説明するが上記の実施の形態と重複する説明は省略し、 本変形例に特有の部分を中心に説明する。
[0600] (1— 1)メモリ 3501
メモリ 3501は、 RAM, ROMから構成され、 CPUが実行するプログラムを記憶する 。メモリ 3501【こ ίま、 BIOS3504, OS3503, プリゲーシヨン 3502の jl匿【こロード、され 、各プログラムには上位のプログラムをメモリ 3501にロードする手順が含まれる。
[0601] (1— 2)セキュアメモリ 3531
セキュアメモリ 3531は、書き込み及び消去不可のメモリであって、検証用公開鍵 35 32、正規 PCR証明書 3533、 3534及び 3536を記憶している。これらの構成は、前 述の実施の形態 5と同様であるので説明を省略する。
正規 PCR証明書 3536、 3534、 3533はそれぞれ、階層の異なるプログラム、 BIO S3504, OS3503,アプリケーション 3502と対応して! /、る。
[0602] (1— 3)RTM3526、 3523及び 3521
RTM3526は、 BIOS3504に含まれる CRTMコードを CPUが実行することにより 実現される機能部であって、 BIOS自身のインテグリティ値及び BIOSの呼び出すプ ログラム (OS)のインテグリティ値を算出する。
RTM3523及び 3521は、それぞれ、 OS3503及びアプリケーション 3502に含ま れる RTMコードを CPUが実行することにより実現する機能部であって、それぞれ、 対応するプログラムが呼び出そうとするプログラムのインテグリティ値を計測する機能 を備える。
[0603] — 4)検証部 3527、 3524、 3522
3つの検証部はそれぞれ、対応する TPMによって算出された PCR値の正当性を 検証する。検証の手順は、実施の形態 5と同様に、セキュアメモリ 3531から検証用公 開鍵 3532と正規 PCR証明書 (ここでは、各検証部と対応する正規 PCR証明書のみ )とを読み出し、読み出した正規 PCR証明書の検証、続いて、対応する TPMの保持 する PCR値と読み出した正規 PCR証明書に含まれる正規 PCR値とを比較する。一 致しなければ、端末装置 3500の動作を停止させる。又は、対応するプログラムによる 次のプログラムのロードを中止するとしてもよい。 [0604] 対応する TPMの保持する PCR値と読み出した正規 PCR証明書に含まれる正規 P CR値とがー致すれば、検証部は、対応する RTMに、対応するプログラムがロードし ようとしているプログラムのインテグリティ値の計測を指示する。これと同時に、対応す る TPMへ記憶して!/、る PCR値を上位の TPMへ出力するように指示する。
(1— 5)TPM3516、 3513、 3511
各 TPMは、対応するプログラムの PCR値を算出し、記憶する機能を有する。また、 対応する検証部の指示に従って記憶している PCR値を上位の TPMへ出力する。
[0605] (1 6)動作
BIOS3504力ら j噴に プリゲーシヨン 3502力 Sメモリ 3501に口一、されるまでの、端 末装置 3500内の各部の処理を、順を追って説明する。
電源が ONになると先ず BIOSに含まれる CRTMコードが実行されることで実現さ れる機會部である RTM3526により、 BIOS3504内の CRTMコードのインテグリティ 値が算出され、これを基に、 TPMは、 PCR0を算出する。続いて、 RTM3526は、 BI OS3504のインテグリティ値を計測し、 TPM3516は、計測されたインテグリティ値と PCR0とを基に、 BIOSと対応する PCR値 3517 (PCR1)を算出し、記憶する。 PCR 1が算出されると BIOS3504力メモリ 3501にロードされ、実行される。
[0606] また、検証部 3527は、検証用公開鍵 3532と正規 PCR証明書 (BIOS用) 3536を セキュアメモリ 3531から読み出し、正規 PCR証明書(BIOS用) 3536を検証し、続い て、正規 PCR証明書 3536に含まれる正規 PCR値と PCR1を比較する。両者が一致 すると、検証部 3527は、 RTM3526へ次にロードされるプログラム(OS3503)のィ ンテグリティ値の計測を指示し、 TPM3516へ PCR1の出力を指示する。
[0607] RTM3526は、 033503のィンテグリティ値111(03)を計測して、上位の TPM351 3へ出力する。また、 TPM3516は、上位の TPM3513へ、記憶している PCR1を出 力する。
TPM3513は、 1^[1^3526から033503のィンテグリティ値111 (03)を受け取り、 T PM3516から PCR1を受け取る。これらを受け取ると、受け取った111 (03)と130^1か ら PCR2を算出し、記憶する。
[0608] PCR2が算出されると、 BIOS3504は OS3503をメモリ 3501へロードする。また、 検証部 3524は、セキュアメモリ 3531から、検証用公開鍵 3532と正規 PCR証明書( OS用) 3534を読み出し、正規 PCR証明書(OS用) 3534の検証、 PCR2の検証を 順次行う。
PCR2が正規 PCR証明書 (OS用) 3534に含まれる正規 PCR値と一致すると判断 すると、検証部 3524は、 RTM3523へ OS3503がロードしょうとしているプログラム( アプリケーション 3502)のインテグリティ値 In (アプリ)の算出を指示し、 TPM3513へ 、 PCR2を上位の TPM3511へ出力するように指示する。
[0609] 検証部 3524の指示に従って、 RTM3523はアプリケーションのインテグリティ値 In
(アプリ)を算出し、 TPM3511へ出力する。同様に、 TPM3513は、記憶している P CR2を TPM3511へ出力する。
TPM3511は、 RTM3523から In (アプリ)を受け取り、 TPM3513力ら PCR2を受 け取る。これらを受け取ると、 TPM3511は、アプリケーション 3502と対応する PCR 値 3512 (PCR3)を算出する。
[0610] PCR3力算出されると、 OS3503は、アプリケーション 3502をメモリ 3501にロード する。
(2)上位層の検証
上記の変形例(1)では、各検証部は、自身と対応するプログラムの構成が正当であ るカゝ否かを検証し、正当であることが証明されると、上位層の TPMへ、演算に必要な パラメータ(具体的には、下位層の PCR値と上位層のプログラムのハッシュ値)を出 力する構成であった力 これに代わって、検証部は、上位の層の検証部及び RTM の正当性を検証する構成であっても良い。以下の説明の便宜上、 BIOS3504, OS 3503、アプリケーションと 3502の属する層をそれぞれ BIOS層、 OS層、アプリ層と 呼ぶ。
[0611] 図 50は、この変形例における端末装置 3600の構成のうち、検証に関連する部分 のみを記載している。図中の矢印は、下位層の検証部による上位層の検証部及び R TMの検証動作を示している。また、変形例(1)と重複する構成には同一の参照符 号を付している。
以下に、変形例(1)と異なる構成及び動作について説明する。 [0612] (2— 1)RTM3622、 3623及び 3627
RTM3627, 3624及び 3622は、それぞれ、 BIOS層、 OS層、アプリケーション層 に属し、自身の属する層のプログラムのインテグリティ値を計測する。続いて、計測し たインテグリティ値を、それぞれの層の TPM3516、 3513、 3511へ出力する。
[0613] 例えば、 RTM3627は、 BIOS3504のインテグリティ値を計測し、 TPM3516へ出 力する。
また、 RTM3623及び 3627がハードウェアにより構成されている場合、下位層の 検証部から、乱数を受け取る。乱数を受け取ると、 RTM3623及び 3627は、受け取 つた乱数に所定の演算を施して、下位層の検証部へ演算結果を出力する。
[0614] (2— 2)TPM3516、 3513及び 3511
TPM3516, 3513及び 3511は、それぞれ、 RTM3622, 3623及び 3627力も、 自身の属する層のプログラムのインテグリティ値を受け取り、受け取ったインテグリティ 値を拡張して PCR値を算出し、記憶する。
また、同一の層に属する検証部の要求に従って、記憶している PCR値を検出部へ 出力する。
[0615] 例えば、 TPM3516は、 RTM3627力ら、インテグリティ値を受け取り、受け取った インテグリティ値を拡張して PCR1を算出し、記憶する。また、検証部 3626から、 PC R値出力要求を受けると、 TPM3516は、記憶している PCR1を検証部 3626へ出力 する。
(2— 3)セキュアメモリ 3531
セキュアメモリ 3531は、上記の変形例(1)において説明した情報にカ卩えて、 OS層 検証データ 3622とアプリ層検証データ 3631とを記憶している。
[0616] OS層検証データ 3622は及びアプリ層検証データ 3631は、それぞれ、検証部 36 26及び 3623上位層の検証部と RTMの正当性を検証するために用いるデータであ る。
具体的に、検証部及び RTMが、ソフトウェアにより実現されている場合、 OS層検証 データ 3622は、検証部 3623及び RTM3624の機能を実現する正常なプログラムコ ードに所定の演算を施して算出されるべき値である。所定の演算は、任意であるが、 一例として、 SHA— 1のような一方向関数や、 AES暗号化演算、署名演算などが考 えられる。アプリ層検証データ 3631につ 、ても同様である。
[0617] また、上位層の検証部及び RTM力 ハードウェアにより実現されている場合、 OS 層検証データ 3622は、検証部 3623及び RTM3624の機能を備える回路により算 出されるべき値である。この場合、 OS層検証データは、検証部 3626により書き込ま れる。
アプリ層検証データ 3131についても、同様であって、検証部 3623により書き込ま れる。
[0618] (2— 4)検証部 3626、 3623及び 3621
検証部 3626、 3623及び 3621は、変形例(1)の 3つ検証部と同様に、それぞれ対 応するプログラムの正当性の検証を行う。検証の手順は、変形例(1)と同様であるの で、説明は割愛する。
対応するプログラムの正当性が証明されると、検証部 3626及び 3623は、上位の 層の検証部と RTMの正当性を検証する。
[0619] 具体的には、各検証部及び RTMがソフトウェアにより実現されている場合、検証部 3626は、検証部 3623を実現するプログラムコードと RTM3624を実現するプログラ ムコードを連結して連結コードを生成し、生成した連結コードに所定の演算を施す。 次に、検証部 3626は、セキュアメモリ 3531から OS層検証データ 3623を読み出し、 読み出した OS層検証データ 3623と演算結果とを比較する。両者が一致した場合、 検証部 3626は、上位層の検証部 3623及び RTM3624が正当であると判断し、検 証部 3623及び RTM3624をァクティべイトする。
[0620] ここで、所定の演算は、どのような演算であっても良いが、一例として、一方向関数 、暗号化演算などが考えられる。また、その他の演算であっても良い。
検証部 3623による検証部 3621及び RTM3622の検証手順も同様である。
なお、本変形例では、検証部 3623が所定の演算を施すとあるが、所定の演算を R TM3627が有する関数を利用してもよい。また、検証部 3623を実現するプログラム コードと RTM3624を実現するプログラムコードを連結した連結コードに対して所定 の演算を施している力 連結せず、それぞれに対して所定の演算を施しても良い。 [0621] 両者が一致しなかった場合、検証部 3626は、上位層の検証部 3623及び RTM36 24が不正であると判断し、端末装置 3600の動作を停止する。又は、所定機能を制 限する。
また、各検証部及び RTMがハードウェアにより実現されている場合、検証部 3626 は、乱数を生成し、生成した乱数を検証部 3623及び RTM3624へ出力する。続い て、検証部 3626は、生成した乱数に、検証部 3623及び RTM3624が正当である場 合に施されるべき演算を施して OS層検証データを生成し、セキュアメモリ 3531に書 き込む。次に、検証部 3623及び RTM3624から、所定の演算結果を受け取る。
[0622] 演算結果を受け取ると、検証部 3626は、セキュアメモリ 3531から、 OS層検証デー タ 3632を読み出し、受け取った演算結果と読み出した OS層検証データとを比較す る。両者が一致すると、検証部 3626は、上位層の検証部 3623及び RTM3624が 正当であると判断し、これらをァクティべイトする。
両者が一致しなカゝつた場合、検証部 3626は、上位層の検証部 3623及び RTM36 24が不正であると判断し、端末装置 3600の動作を停止する。又は、所定機能を制 限する。
[0623] 検証部 3623による検証部 3621及び RTM3622の検証手順も同様であるので説 明を省略する。
また、検証部 3621及び 3623がハードウェアにより実現されている場合、下位層の 検証部から乱数を受け取る。乱数を受け取ると、検証部 3621及び 3623は、受け取 つた乱数に所定の演算を施し、演算結果を下位層の検証部へ出力する。
[0624] (2— 5)まとめ
以上の構成によると、電源投入後、 BIOSの正当性検証、 OS層の検証部及び RT Mの正当性検証、 OSの正当性検証、アプリ層の検証部及び RTMの正当性検証、 アプリケーションの正当性検証が順次行われる。
全ての検証が成功であれば、端末装置 3600は、正常に動作することができる。
[0625] なお、図 50では、各 TPMは、各自の属する層のプログラムのインテグリティ値を受 け取り、受け取ったインテグリティ値を拡張して PCR値を算出し、記憶しているが、こ れは、必須ではなぐインテグリティ値をそのまま記憶していても良い。 6. その他の変形例
以上、本発明を上記の実施の形態に基づいて説明してきたが、本発明は、上記の 実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれ る。
[0626] (1)上記の実施の形態、及び、その変形例において、端末装置及びメモリカードは TCG規格に準拠した TPMチップを搭載しているとしてきた力 これに限定されるもの ではない。規格外であっても、同様に、各機器の正当性を証明する情報を生成、蓄 積する機能を有するセキュアな集積回路であれば良 、。
(2)各実施の形態において、端末装置はそれぞれ、パーソナルコンピュータ、音楽 プレーヤー、携帯端末などであるとして説明してきた力 これらに限るものではなぐメ モリ及びメモリにロードされたコンピュータプログラムに従って動作するコンピュータシ ステムを搭載した様々な機器に適応することができる。
[0627] 一例としては、サーバ装置を初めとするネットワーク機器、コンピュータ制御された 電ィ匕製品 (AV機器、調理機器など)、自動車、ロボットなどが挙げられる。
メモリカードに関しても同様に、端末装置に装着されて使用されるものを例に説明し てきたが、非接触 ICカードのようなものであってもよ 、。
(3)上記の各装置は、具体的には、マイクロプロセッサ、 ROM、 RAM,ハードディ スクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータ システムである。前記 RAM、 ROM,前記ハードディスクユニットには、コンピュータプ ログラムが記憶されている。前記マイクロプロセッサ力 前記コンピュータプログラムに 従って動作することにより、各装置は、その機能を達成する。ここで、コンピュータプロ グラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コー ドが複数個組み合わされて構成されたものである。
[0628] (4)上記の各装置を構成する構成要素の一部又は全部は、 1個のシステム LSI (La rge Scale Integration:大規模集積回路)から構成されているとしてもよい。シス テム LSIは、複数の構成部を 1個のチップ上に集積して製造された超多機能 LSIであ り、具体的には、マイクロプロセッサ、 ROM、 RAMなどを含んで構成されるコンビュ ータシステムである。前記 RAMには、コンピュータプログラムが記憶されている。前 記マイクロプロセッサ力 前記コンピュータプログラムに従って動作することにより、シ ステム LSIは、その機能を達成する。
[0629] (5)上記の各装置を構成する構成要素の一部又は全部は、各装置に脱着可能な I Cカード又は単体のモジュール力 構成されて 、るとしてもよ 、。前記 ICカード又は 前記モジュールは、マイクロプロセッサ、 ROM, RAM,などから構成されるコンビュ ータシステムである。前記 ICカード又は前記モジュールは、上記の超多機能 LSIを 含むとしてもよい。マイクロプロセッサが、コンピュータプログラムに従って動作するこ とにより、前記 ICカード又は前記モジュールは、その機能を達成する。この ICカード 又はこのモジュールは、耐タンパ性を有するとしてもよ!/、。
[0630] (6)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンビュ ータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプ ログラム力もなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラム又は前記デジタル信号をコンピュータ 読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、 CD— RO M、 MO、 DVD, DVD-ROM, DVD -RAM, BD (Blu— ray Disc)、半導体メ モリなど、〖こ記録したものとしてもよい。また、これらの記録媒体に記録されている前 記コンピュータプログラム又は前記デジタル信号であるとしてもよい。
[0631] また、本発明は、前記コンピュータプログラム又は前記デジタル信号を、電気通信 回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送 等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリとを備えたコンピュータシステムであって 、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサ は、前記コンピュータプログラムに従って動作するとしてもよい。
[0632] また、前記プログラム又は前記デジタル信号を前記記録媒体に記録して移送する ことにより、又は前記プログラム又は前記デジタル信号を、前記ネットワーク等を経由 して移送すること〖こより、独立した他のコンピュータシステムにより実施するとしてもよ い。
(7)また、上記実施例におけるメモリカード、 SIMカードの機能ブロックの全てが集 積回路である LSIとして実現される場合も本発明に含まれる。また、機能ブロックの全 てに限らず一部が LSIとして実現される場合も本発明に含まれる。これらは個別に 1 チップ化されても良いし、一部又は全てを含むように 1チップ化されてもよい。ここで は、 LSIとした力 集積度の違いにより、 IC、システム LSI、スーパー LSI、ウルトラ LS Iと呼称されることちある。
[0633] また、集積回路化の手法は LSIに限るものではなぐ専用回路又は汎用プロセッサ で実現してもよい。 LSI製造後に、プログラムすることが可能な FPGA (Field Program mable Gate Array)や LSI内部の回路セルの接続や設定を再構成可能なリコンフィギ ュラブノレ ·プロセッサを利用しても良!、。
更には、半導体技術の進歩又は派生する別技術により LSIに置き換わる集積回路 化の技術が登場すれば、当然その技術を用いて機能ブロックの集積ィ匕を行ってもよ い。バイオ技術の適応などが可能性として有り得る。
[0634] (8)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよ!/、。
産業上の利用可能性
[0635] 本発明を構成する各装置及びカードは、これらを製造する製造業、販売する販売 業において、経営的、つまり反復的かつ継続的に利用されうる。

Claims

請求の範囲
[1] 証明装置及び検証装置カゝら構成される検証システムであって、
前記証明装置は、
当該証明装置を動作対象とし、階層的な関係を有する複数個の動作プログラムを 格納している格納手段と、
前記動作プログラムのそれぞれがロードされるときに、ロードされる前記動作プログ ラムそれぞれの特徴を示す特徴量を測定する測定手段と、
耐タンパイ匕され、前記複数個の動作プログラムのうちの 1つの動作プログラムがロー ドされているときに、当該 1つの動作プログラムについて取得した特徴量、及び当該 1 つの動作プログラムを動作させるために必要でありロード済である他の動作プロダラ ムそれぞれについて取得した特徴量を反映した証明情報を生成する証明手段と、 生成した前記証明情報を出力する出力手段とを備え、
前記検証装置は、
前記証明情報を取得する取得手段と、
前記証明装置において、前記 1つの動作プログラム、及び当該 1つの動作プロダラ ムを動作させるために必要である他の動作プログラムのそれぞれにつ 、て改竄がな
V、場合に得られる特徴量を反映した検証情報を予め記録して!/ヽる記録手段と、 取得した前記証明情報及び前記検証情報を用いて、前記証明装置の正当性を判 断する判断手段とを備える
ことを特徴とする検証システム。
[2] 前記検証システムは、 Trusted Computing Group(TCG)により仕様化されて!/、る構 成証明技術を用い、
前記証明手段は、 TCGにより仕様化されている Trusted Platform Moduleを構成し、 前記判断手段は、 TCGにより仕様ィ匕されている検証プロセスにより、前記証明装置 の正当性を判断する
ことを特徴とする請求項 1に記載の検証システム。
[3] 検証装置に対して自身の正当性を証明する証明装置であって、
当該証明装置を動作対象とし、階層的な関係を有する複数個の動作プログラムを 格納している格納手段と、
前記動作プログラムのそれぞれがロードされるときに、ロードされる前記動作プログ ラムそれぞれの特徴を示す特徴量を測定する測定手段と、
耐タンパイ匕され、前記複数個の動作プログラムのうちの 1つの動作プログラムがロー ドされているときに、当該 1つの動作プログラムについて取得した特徴量、及び当該 1 つの動作プログラムを動作させるために必要でありロード済である他の動作プロダラ ムそれぞれについて取得した特徴量を反映した証明情報を生成する証明手段と、 生成した前記証明情報を出力する出力手段と
を備えることを特徴とする証明装置。
[4] 前記証明装置は、 Trusted Computing Group(TCG)により仕様化されて!/、る構成証 明技術を用い、
前記証明手段は、 TCGにより仕様化されている Trusted Platform Moduleを構成す る
ことを特徴とする請求項 3に記載の証明装置。
[5] 前記証明手段は、
前記特徴量を記憶するための複数のプラットフォーム構成レジスタを有し、 前記検証装置から、複数のプラットフォーム構成レジスタのうちの 1個のレジスタの 指定を受け取り、受け取った指定により示されるレジスタに記憶されている前記特徴 量に基づいて、前記証明情報を生成する
ことを特徴とする請求項 3に記載の証明装置。
[6] 前記証明装置は、さらに、
少なくとも前記検証装置を動作対象とする動作プログラムの特徴を示す特徴量に 基づ 、て、生成された前記検証装置の正当性を証明する証明情報を取得する取得 手段と、
取得した前記証明情報を用いて、前記検証装置の正当性を判断する判断手段と を含むことを特徴とする請求項 3に記載の証明装置。
[7] 前記格納手段は、さらに、当該証明装置を動作対象とし、複数のコンピュータ命令 を含む第 2動作プログラムを格納しており、 前記証明装置は、さらに、耐タンパ化された第 2証明手段を含み、 第 2証明手段は、前記証明手段に対して、自身の正当性を証明し、
前記証明手段は、前記第 2証明手段の正当性を検証し、
前記測定手段は、さらに、前記第 2動作プログラムがロードされるときに前記第 2動 作プログラムの特徴を示す第 2特徴量を測定し、
前記第 2証明手段は、前記証明手段により、第 2証明手段の正当性が確認された 場合に、少なくとも前記第 2特徴量に基づいて、当該証明装置の正当性を証明する 第 2証明情報を生成し、
前記出力手段は、さらに、第 2証明情報を出力する
ことを特徴とする請求項 3に記載の証明装置。
[8] 前記検証装置は、当該検証装置の正当性を示す第 2証明情報を記憶して 、るカー ドであり、
前記証明手段は、さらに、前記検証装置による前記証明装置の正当性の確認が成 功した場合に、前記検証装置から前記第 2証明情報を取得し、取得した前記第 2証 明情報を用いて、前記検証装置の正当性を判断する
ことを特徴とする請求項 3に記載の証明装置。
[9] 前記証明装置は、前記検証装置により、自身の正当性が確認された場合に、さらに 、第 2検証装置に対して自身の正当性を証明し、
前記格納手段は、さらに、当該証明装置を動作対象とし、階層的な関係を有する 複数個の第 2動作プログラムを格納しており、
前記測定手段は、さらに、前記第 2動作プログラムのそれぞれがロードされるときに 、ロードされる前記第 2プログラムそれぞれの特徴を示す第 2特徴量を測定し、 前記証明装置は、さらに、
耐タンパ化され、前記複数個の第 2動作プログラムのうちの 1つの第 2動作プロダラ ムがロードされているときに、当該 1つの第 2動作プログラムについて取得した特徴量 、及び当該 1つの第 2動作プログラムを動作させるために必要でありロード済である他 の第 2動作プログラムそれぞれについて取得した特徴量を反映した第 2証明情報を 生成する第 2証明手段を含み、 前記出力手段は、さらに、生成した前記第 2証明情報を第 2検証装置へ出力する ことを特徴とする請求項 8に記載の証明装置。
[10] 前記証明装置は、さらに、
前記検証装置に対して、秘密情報を要求する要求手段と、
前記検証装置における当該証明装置の正当性の確認結果に応じて、秘密情報及 び前記動作プログラムの更新のための更新プログラムのいずれか一方を受信する受 信手段と、
更新プログラムを受信した場合に、受信した更新プログラムに従って、前記格納手 段に格納されている前記動作プログラムを更新する更新手段と
を含むことを特徴とする請求項 3に記載の証明装置。
[11] 前記秘密情報は、当該証明装置を識別する装置識別子に基づいて、当該証明装 置に割り当てられるデバイス鍵を暗号ィ匕して生成した暗号ィ匕デバイス鍵であり、 前記受信手段は、前記検証装置により当該証明装置の正当性が確認された場合 に、前記暗号化デバイス鍵を受信し、
前記証明装置は、さらに、
受信した前記暗号ィ匕デバイス鍵を、当該証明装置を識別する装置識別子に基づ いて、復号して、デバイス鍵を生成する復号手段を含む
ことを特徴とする請求項 10に記載の証明装置。
[12] 前記証明手段は、測定手段により得られた前記特徴量及び当該証明装置を識別 する装置識別子に基づいて、前記証明情報を生成する
ことを特徴とする請求項 10に記載の証明装置。
[13] 前記秘密情報は、デバイス鍵を暗号ィ匕して生成した暗号ィ匕デバイス鍵であり、 前記証明装置は、さらに、暗号化手段を含み、
前記受信手段は、前記検証装置により前記暗号化手段の正当性が確認された場 合に、前記暗号化デバイス鍵を受信し、
前記暗号化手段は、当該証明装置を識別する装置識別子に基づいて、受信した 暗号ィ匕デバイス鍵を暗号ィ匕して二重暗号ィ匕デバイス鍵を生成し、
前記証明装置は、さらに、 生成した二重暗号ィ匕デバイス鍵を保持するデバイス鍵保持手段を含む ことを特徴とする請求項 10に記載の証明装置。
[14] 前記暗号化手段は、
暗号ィ匕アルゴリズムを構成する複数のコンピュータ命令を含む暗号ィ匕プログラムを 記憶している記憶部と、
前記暗号ィ匕プログラムに従って動作するマイクロプロセッサとから構成され、 前記受信手段は、前記検証装置により前記暗号化手段の正当性が確認されなか つた場合に、前記更新プログラムとして、暗号ィ匕アルゴリズムを構成する複数のコンビ ユータ命令を含む正規の暗号ィ匕プログラムを受信し、受信した正規の暗号ィ匕プロダラ ムを、前記記憶部に記憶されている暗号化プログラムに上書きし、
前記暗号化手段は、正規の暗号ィ匕プログラムに従って、前記マイクロプロセッサが 動作することにより、暗号ィ匕アルゴリズムの機能を達成する
ことを特徴とする請求項 13に記載の証明装置。
[15] 前記受信手段は、さらに、個別暗号ィ匕を行う前記暗号ィ匕プログラムが消去されたこ とが確認された場合、前記検証装置から、受信した暗号ィ匕デバイス鍵の復号に必須 となる鍵を受け取る
ことを特徴とする請求項 14に記載の証明装置
[16] 階層的な関係を有する複数個の動作プログラムが動作する証明装置の正当性を検 証する検証装置であって、
前記証明装置から、前記複数個の動作プログラムのうちの 1つの動作プログラムが ロードされているときに、当該 1つの動作プログラムについて取得した特徴量、及び当 該 1つの動作プログラムを動作させるために必要でありロード済である他の動作プロ グラムそれぞれについて取得した特徴量を反映した証明情報を取得する取得手段と 前記証明装置において、前記 1つの動作プログラム、及び当該 1つの動作プロダラ ムを動作させるために必要である他の動作プログラムのそれぞれにつ 、て改竄がな V、場合に得られる特徴量を反映した検証情報を予め記録して!/ヽる記録手段と、 取得した前記証明情報及び前記検証情報を用いて、前記証明装置の正当性を判 断する判断手段と
を備えることを特徴とする検証装置。
[17] 前記検証装置は、 Trusted Computing Group(TCG)により仕様化されて!/、る構成証 明技術を用い、
前記判断手段は、 TCGにより仕様ィ匕されている検証プロセスにより、前記証明装置 の正当性を判断する
ことを特徴とする請求項 16に記載の検証装置。
[18] 前記検証装置は、カード又はサーバ装置である
ことを特徴とする請求項 16に記載の検証装置。
[19] 前記取得手段は、当該検証装置の指定に係るプラットフォーム構成レジスタに記憶 されて ヽる特徴量に基づ!/ヽて、生成された前記証明情報を取得し、
前記判断手段は、前記プラットフォーム構成レジスタに記憶されるべき特徴量と、取 得した前記証明情報を用いて、前記証明装置の正当性を判断する
ことを特徴とする請求項 18に記載の検証装置。
[20] 前記検証装置は、さらに、
当該検証装置を動作対象とし、階層的な関係を有する複数個の動作プログラムを 格納している格納手段と、
前記動作プログラムのそれぞれがロードされるときに、ロードされる前記動作プログ ラムそれぞれの特徴を示す特徴量を測定する測定手段と、
耐タンパイ匕され、前記複数個の動作プログラムのうちの 1つの動作プログラムがロー ドされているときに、当該 1つの動作プログラムについて取得した特徴量、及び当該 1 つの動作プログラムを動作させるために必要でありロード済である他の動作プロダラ ムそれぞれについて取得した特徴量を反映した証明情報を生成する証明手段と、 生成した前記証明情報を出力する出力手段とを含む
ことを特徴とする請求項 18に記載の検証装置。
[21] 前記取得手段は、さらに、少なくとも前記証明装置を動作対象とする第 2動作プロ グラムの特徴を示す特徴量に基づ 1、て、生成された前記証明装置の正当性を証明 する第 2証明情報を取得し、 前記判断手段は、さらに、取得した前記第 2証明情報を用いて、前記証明装置の 正当性を判断する
ことを特徴とする請求項 18に記載の検証装置。
[22] 前記検証装置は、カードであり、さらに、
当該検証装置の正当性を示す第 2証明情報を記憶している証明情報格納手段と、 前記判断手段による前記証明装置の正当性の確認が成功した場合に、前記第 2証 明情報を出力する出力手段を含む
ことを特徴とする請求項 18に記載の検証装置。
[23] 前記検証装置は、さらに、
秘密情報を安全に保持する情報保持手段と、
前記証明装置を動作対象とし、複数のコンピュータ命令を含む動作プログラムの更 新のための更新プログラムを格納しているプログラム格納手段と、
前記証明装置の正当性が確認された場合に、前記情報保持手段に保持されてい る前記秘密情報を前記証明装置へ出力し、正当でないと確認された場合、前記プロ グラム格納手段に格納されている前記更新プログラムを前記証明装置へ出力する出 力手段と
を含むことを特徴とする請求項 16に記載の検証装置。
[24] 前記情報保持手段は、前記秘密情報として、前記証明装置を識別する装置識別 子に基づいて、当該証明装置に割り当てられるデバイス鍵を暗号ィ匕して生成した暗 号ィ匕デバイス鍵を保持しており、
前記出力手段は、前記証明装置の正当性が確認された場合に、前記暗号化デバ イス鍵を出力する
ことを特徴とする請求項 23に記載の検証装置。
[25] 前記取得手段は、前記特徴量、及び前記証明装置を識別する装置識別子に基づ V、て生成された前記証明情報を取得し、
前記検証装置は、さらに、
正規の動作プログラムの特徴を示す正規特徴量及び前記証明装置を識別する装 置識別子に基づ!ヽて、生成された検証情報を取得する検証情報取得手段を含み、 前記判断手段は、前記証明情報と前記検証情報とを用いて、前記証明装置の正 当性を判断する
ことを特徴とする請求項 23に記載の検証装置。
[26] 前記取得手段は、前記特徴量及び前記証明装置を識別する装置識別子に基づ!、 て、生成された前記証明情報を取得し、
前記検証装置は、さらに、
正規の動作プログラムの特徴を示す正規特徴量を取得する正規特徴量取得手段 と、
取得した前記正規特徴量及び前記証明装置を識別する装置識別子に基づいて、 前記証明装置の正当性を検証する検証情報を生成する検証情報生成手段とを含み 前記判断手段は、前記証明情報と前記検証情報とを用いて、前記証明装置の正 当性を判断する
ことを特徴とする請求項 23に記載の検証装置。
[27] 前記検証装置は、さらに、
前記証明装置を識別する装置識別子を取得する識別子取得手段と、
前記証明装置に割り当てられるデバイス鍵を、取得した前記装置識別子に基づい て暗号化して暗号化デバイス鍵を生成する暗号化手段と、
生成した暗号化デバイス鍵を前記情報保持手段に格納するするデバイス鍵格納手 段とを含む
ことを特徴とする請求項 23に記載の検証装置。
[28] 前記証明装置は、暗号化デバイス鍵を暗号化する暗号化手段を含み、
前記情報保持手段は、前記秘密情報として、暗号化デバイス鍵を保持しており、 前記判断手段は、前記証明装置の正当性として、前記証明装置が有する前記暗 号化手段の正当性を判断し、
前記出力手段は、前記暗号化手段の正当性が確認された場合に、暗号化デバイ ス鍵を前記証明装置へ出力する
ことを特徴とする請求項 23に記載の検証装置。
[29] 前記証明装置が有する前記暗号化手段は、暗号化アルゴリズムを構成する複数の コンピュータ命令を含む暗号ィ匕プログラムを記憶して 、る記憶部と、前記暗号化プロ グラムに従って動作するマイクロプロセッサとから構成され、
前記プログラム格納手段は、前記更新プログラムとして、前記暗号化アルゴリズムを 構成する複数のコンピュータ命令を含む正規の暗号ィ匕プログラムを記憶しており、 前記出力手段は、前記暗号化手段が正当でないと確認された場合に、正規の前記 暗号化プログラムを前記証明装置へ出力する
ことを特徴とする請求項 28に記載の検証装置。
[30] 前記出力手段は、さらに、個別暗号ィ匕を行う前記暗号ィ匕プログラムが消去されたこ とが前記判断手段により確認された場合、前記暗号化デバイス鍵の復号に必須とな る鍵を出力する
ことを特徴とする請求項 29に記載の検証装置。
[31] 検証装置に対して自身の正当性を証明する証明装置で用いられる証明方法であ つて、
前記証明装置は、当該証明装置を動作対象とし、階層的な関係を有する複数個の 動作プログラムを格納している格納手段と耐タンパ化された証明手段とを備え、 前記動作プログラムのそれぞれがロードされるときに、ロードされる前記動作プログ ラムそれぞれの特徴を示す特徴量を測定する測定ステップと、
前記証明手段を用いて、前記複数個の動作プログラムのうちの 1つの動作プロダラ ムがロードされているときに、当該 1つの動作プログラムについて取得した特徴量、及 び当該 1つの動作プログラムを動作させるために必要でありロード済である他の動作 プログラムそれぞれについて取得した特徴量を反映した証明情報を生成する証明ス テツプと、
生成した前記証明情報を出力する出力ステップと
を含むことを特徴とする証明方法。
[32] 検証装置に対して自身の正当性を証明する証明装置で用いられる証明用のコンビ ユータプログラムを記録しているコンピュータ読み取り可能な記録媒体であって、 前記証明装置は、当該証明装置を動作対象とし、階層的な関係を有する複数個の 動作プログラムを格納している格納手段と耐タンパ化された証明手段とを備え、 コンピュータに、
前記動作プログラムのそれぞれがロードされるときに、ロードされる前記動作プログ ラムそれぞれの特徴を示す特徴量を測定する測定ステップと、
前記証明手段を用いて、前記複数個の動作プログラムのうちの 1つの動作プロダラ ムがロードされているときに、当該 1つの動作プログラムについて取得した特徴量、及 び当該 1つの動作プログラムを動作させるために必要でありロード済である他の動作 プログラムそれぞれについて取得した特徴量を反映した証明情報を生成する証明ス テツプと、
生成した前記証明情報を出力する出力ステップと
を実行させるためのコンピュータプログラムを記録していることを特徴とする記録媒 体。
[33] 検証装置に対して自身の正当性を証明する証明装置を構成する集積回路であつ て、
前記証明装置は、当該証明装置を動作対象とし、階層的な関係を有する複数個の 動作プログラムを格納して 、る格納手段を備え、
前記集積回路は、
前記動作プログラムのそれぞれがロードされるときに、ロードされる前記動作プログ ラムそれぞれの特徴を示す特徴量を測定する測定手段と、
耐タンパイ匕され、前記複数個の動作プログラムのうちの 1つの動作プログラムがロー ドされているときに、当該 1つの動作プログラムについて取得した特徴量、及び当該 1 つの動作プログラムを動作させるために必要でありロード済である他の動作プロダラ ムそれぞれについて取得した特徴量を反映した証明情報を生成する証明手段と、 生成した前記証明情報を出力する出力手段と
を備えることを特徴とする集積回路。
[34] 階層的な関係を有する複数個の動作プログラムが動作する証明装置の正当性を検 証する検証装置で用いられる検証方法であって、
前記検証装置は、前記証明装置において、前記 1つの動作プログラム、及び当該 1 つの動作プログラムを動作させるために必要である他の動作プログラムのそれぞれに っ 、て改竄がな 、場合に得られる特徴量を反映した検証情報を予め記録して 、る記 録手段を備え、
前記検証方法は、
前記証明装置から、前記複数個の動作プログラムのうちの 1つの動作プログラムが ロードされているときに、当該 1つの動作プログラムについて取得した特徴量、及び当 該 1つの動作プログラムを動作させるために必要でありロード済である他の動作プロ グラムそれぞれについて取得した特徴量を反映した証明情報を取得する取得ステツ プと、
取得した前記証明情報及び前記検証情報を用いて、前記証明装置の正当性を判 断する判断ステップと
を含むことを特徴とする検証方法。
階層的な関係を有する複数個の動作プログラムが動作する証明装置の正当性を検 証する検証装置で用いられる検証用のコンピュータプログラムを記録して 、る記録媒 体であって、
前記検証装置は、前記証明装置において、前記 1つの動作プログラム、及び当該 1 つの動作プログラムを動作させるために必要である他の動作プログラムのそれぞれに っ 、て改竄がな 、場合に得られる特徴量を反映した検証情報を予め記録して 、る記 録手段を備え、
コンピュータに
前記証明装置から、前記複数個の動作プログラムのうちの 1つの動作プログラムが ロードされているときに、当該 1つの動作プログラムについて取得した特徴量、及び当 該 1つの動作プログラムを動作させるために必要でありロード済である他の動作プロ グラムそれぞれについて取得した特徴量を反映した証明情報を取得する取得ステツ プと、
取得した前記証明情報及び前記検証情報を用いて、前記証明装置の正当性を判 断する判断ステップと
を実行させるコンピュータプログラム記録していることを特徴とする記録媒体。 階層的な関係を有する複数個の動作プログラムが動作する証明装置の正当性を検 証する検証装置を構成する集積回路であって、
前記証明装置から、前記複数個の動作プログラムのうちの 1つの動作プログラムが ロードされているときに、当該 1つの動作プログラムについて取得した特徴量、及び当 該 1つの動作プログラムを動作させるために必要でありロード済である他の動作プロ グラムそれぞれについて取得した特徴量を反映した証明情報を取得する取得手段と 前記証明装置において、前記 1つの動作プログラム、及び当該 1つの動作プロダラ ムを動作させるために必要である他の動作プログラムのそれぞれにつ 、て改竄がな
V、場合に得られる特徴量を反映した検証情報を予め記録して!/ヽる記録手段と、 取得した前記証明情報及び前記検証情報を用いて、前記証明装置の正当性を判 断する判断手段と
を備えることを特徴とする集積回路。
PCT/JP2007/063248 2006-07-03 2007-07-02 Dispositif de certification, dispositif de vérification, système de vérification, programme informatique et circuit intégré WO2008004524A1 (fr)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP07768023.9A EP2037388A4 (en) 2006-07-03 2007-07-02 CERTIFICATION DEVICE, VERIFICATION DEVICE, VERIFICATION SYSTEM, COMPUTER PROGRAM, AND INTEGRATED CIRCUIT
JP2008523675A JP4950195B2 (ja) 2006-07-03 2007-07-02 証明装置、検証装置、検証システム、コンピュータプログラム及び集積回路
US12/306,816 US8296561B2 (en) 2006-07-03 2007-07-02 Certifying device, verifying device, verifying system, computer program and integrated circuit

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2006-182972 2006-07-03
JP2006182972 2006-07-03

Publications (1)

Publication Number Publication Date
WO2008004524A1 true WO2008004524A1 (fr) 2008-01-10

Family

ID=38894494

Family Applications (2)

Application Number Title Priority Date Filing Date
PCT/JP2007/063249 WO2008004525A1 (fr) 2006-07-03 2007-07-02 Dispositif de traitement d'informations, dispositif d'enregistrement d'informations, système de traitement d'informations, procédé de mise à jour de programme, programme, et circuit intégré
PCT/JP2007/063248 WO2008004524A1 (fr) 2006-07-03 2007-07-02 Dispositif de certification, dispositif de vérification, système de vérification, programme informatique et circuit intégré

Family Applications Before (1)

Application Number Title Priority Date Filing Date
PCT/JP2007/063249 WO2008004525A1 (fr) 2006-07-03 2007-07-02 Dispositif de traitement d'informations, dispositif d'enregistrement d'informations, système de traitement d'informations, procédé de mise à jour de programme, programme, et circuit intégré

Country Status (4)

Country Link
US (2) US20100063996A1 (ja)
EP (1) EP2037388A4 (ja)
JP (2) JP4950195B2 (ja)
WO (2) WO2008004525A1 (ja)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009245135A (ja) * 2008-03-31 2009-10-22 Fujitsu Frontech Ltd 情報処理端末装置及びアプリケーションプログラムの起動認証方法
JP2009266131A (ja) * 2008-04-28 2009-11-12 Fujitsu Ltd 記憶装置の制御装置、記憶装置及び記憶装置の制御方法
JP2011258199A (ja) * 2010-06-03 2011-12-22 Intel Corp Tpmアクセスを仮想化するシステム、方法および装置
WO2013175851A1 (ja) * 2012-05-21 2013-11-28 ソニー株式会社 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム
JP5357152B2 (ja) * 2008-06-23 2013-12-04 パナソニック株式会社 情報処理装置、情報処理方法、これらを実現するコンピュータプログラム及び集積回路
JP2014049994A (ja) * 2012-08-31 2014-03-17 Fujitsu Fsas Inc ネットワーク接続方法および電子機器
JP2014525105A (ja) * 2011-07-29 2014-09-25 マイクロソフト コーポレーション Arm(登録商標)トラストゾーン実施のためのファームウェア基盤トラステッドプラットフォームモジュール(tpm)
JP2016136704A (ja) * 2015-01-23 2016-07-28 キヤノン株式会社 システム、通信装置、通信方法及びプログラム
JP2018139386A (ja) * 2017-02-24 2018-09-06 株式会社国際電気通信基礎技術研究所 データ送信装置、データ受信装置、通信システム、および、プログラム
WO2020158075A1 (ja) * 2019-01-30 2020-08-06 デンソートリム株式会社 メモリの書き換え履歴記録装置
JP7428049B2 (ja) 2020-03-30 2024-02-06 大日本印刷株式会社 デバイス、セキュアエレメント及びデバイスのセキュアブート方法

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100556198C (zh) * 2007-08-16 2009-10-28 中兴通讯股份有限公司 内容摘要验证接口方法
JP4687703B2 (ja) * 2007-10-02 2011-05-25 ソニー株式会社 記録システム、情報処理装置、記憶装置、記録方法及びプログラム
US9015454B2 (en) * 2008-05-02 2015-04-21 Hewlett-Packard Development Company, L.P. Binding data to computers using cryptographic co-processor and machine-specific and platform-specific keys
US8515996B2 (en) 2008-05-19 2013-08-20 Emulex Design & Manufacturing Corporation Secure configuration of authentication servers
JP2010061374A (ja) * 2008-09-03 2010-03-18 Toshiba Corp 表示装置および鍵管理方法
US20100119068A1 (en) * 2008-11-11 2010-05-13 Harris Scott C Digital File Anti pirating
KR101197182B1 (ko) * 2008-12-23 2012-11-02 한국전자통신연구원 컴퓨터 시스템에서의 해킹 방지 장치 및 방법
US8213618B2 (en) * 2008-12-30 2012-07-03 Intel Corporation Protecting content on client platforms
US8768843B2 (en) * 2009-01-15 2014-07-01 Igt EGM authentication mechanism using multiple key pairs at the BIOS with PKI
US8924742B2 (en) * 2009-02-11 2014-12-30 Blackberry Limited Multi-level data storage
US20130132733A1 (en) * 2009-05-26 2013-05-23 Sunil C. Agrawal System And Method For Digital Rights Management With System Individualization
DE102009046436A1 (de) * 2009-11-05 2011-05-12 Robert Bosch Gmbh Kryptographisches Hardwaremodul bzw. Verfahren zur Aktualisierung eines kryptographischen Schlüssels
CN102725737B (zh) * 2009-12-04 2016-04-20 密码研究公司 可验证防泄漏的加密和解密
US8555059B2 (en) * 2010-04-16 2013-10-08 Microsoft Corporation Secure local update of content management software
US8452957B2 (en) 2010-04-27 2013-05-28 Telefonaktiebolaget L M Ericsson (Publ) Method and nodes for providing secure access to cloud computing for mobile users
WO2012033496A1 (en) * 2010-09-10 2012-03-15 Hewlett-Packard Development Company, L.P. Unlock a storage device
US8402453B2 (en) * 2010-09-22 2013-03-19 Telefonaktiebolaget L M Ericsson (Publ) In-service software upgrade of control and line cards of network element
US9525548B2 (en) 2010-10-21 2016-12-20 Microsoft Technology Licensing, Llc Provisioning techniques
US8805434B2 (en) 2010-11-23 2014-08-12 Microsoft Corporation Access techniques using a mobile communication device
US9509686B2 (en) * 2010-12-03 2016-11-29 Microsoft Technology Licensing, Llc Secure element authentication
DE112012000512T5 (de) * 2011-01-19 2013-10-24 International Business Machines Corporation Aktualisieren von Software
KR20140043068A (ko) * 2011-02-17 2014-04-08 타세라, 아이엔씨. 애플리케이션 증명을 위한 시스템 및 방법
US20130339734A1 (en) * 2011-08-12 2013-12-19 Power-One, Inc. Secure Method and System for Remote Field Upgrade of Power Device Firmware
US8797139B2 (en) * 2012-02-23 2014-08-05 Infineon Technologies Ag System-level chip identify verification (locking) method with authentication chip
US8885562B2 (en) 2012-03-28 2014-11-11 Telefonaktiebolaget L M Ericsson (Publ) Inter-chassis redundancy with coordinated traffic direction
US20140281539A1 (en) * 2012-03-30 2014-09-18 Goldman, Sachs & Co. Secure Mobile Framework With Operating System Integrity Checking
US9092616B2 (en) 2012-05-01 2015-07-28 Taasera, Inc. Systems and methods for threat identification and remediation
JP6128388B2 (ja) * 2012-09-14 2017-05-17 パナソニックIpマネジメント株式会社 情報処理装置
US9292463B2 (en) * 2012-09-26 2016-03-22 Intel Corporation Communication of device presence between boot routine and operating system
JP5695623B2 (ja) * 2012-09-28 2015-04-08 株式会社東芝 送信装置及び通信システム及びプログラム
US9152793B2 (en) * 2012-09-28 2015-10-06 Intel Corporation Methods, systems and apparatus to self authorize platform code
JP5986897B2 (ja) * 2012-11-13 2016-09-06 Kddi株式会社 端末装置、完全性検証システム、およびプログラム
US10038565B2 (en) * 2012-12-20 2018-07-31 GM Global Technology Operations LLC Methods and systems for bypassing authenticity checks for secure control modules
US11539399B2 (en) * 2013-03-04 2022-12-27 Wind River Systems, Inc. System and method for smart card based hardware root of trust on mobile platforms using near field communications
WO2014144601A1 (en) 2013-03-15 2014-09-18 Master Lock Company Networked security system
WO2014198340A1 (en) * 2013-06-14 2014-12-18 Nec Europe Ltd. Method for performing a secure boot of a computing system and computing system
GB2515289A (en) * 2013-06-17 2014-12-24 Mastercard International Inc Display card with user interface
US20150012402A1 (en) * 2013-07-03 2015-01-08 Trading Technologies International, Inc. Trading System License Verification, Management and Control
US11310050B2 (en) 2018-09-17 2022-04-19 Microsoft Technology Licensing, Llc Verifying a computing device after transport
JP5617981B2 (ja) * 2013-09-18 2014-11-05 株式会社リコー 機器、管理装置、機器管理システム、及びプログラム
JP6662561B2 (ja) * 2014-03-31 2020-03-11 フェリカネットワークス株式会社 情報処理方法、情報処理装置、認証サーバ装置及び確認サーバ装置
US9692599B1 (en) * 2014-09-16 2017-06-27 Google Inc. Security module endorsement
WO2016116192A1 (en) * 2015-01-19 2016-07-28 Telefonaktiebolaget Lm Ericsson (Publ) Methods and apparatus for direct communication key establishment
US10367803B2 (en) * 2015-04-12 2019-07-30 Gropper Adrian Managed open source medical devices
EP3086254A1 (en) * 2015-04-22 2016-10-26 Gemalto Sa Method of managing applications in a secure element when updating the operating system
US9448785B1 (en) 2015-11-06 2016-09-20 AO Kaspersky Lab System and method updating full disk encryption software
JP6675227B2 (ja) * 2016-02-26 2020-04-01 キヤノン株式会社 情報処理装置、情報処理システム、情報処理方法、及びプログラム
US10621351B2 (en) 2016-11-01 2020-04-14 Raptor Engineering, LLC. Systems and methods for tamper-resistant verification of firmware with a trusted platform module
US10524119B2 (en) * 2016-11-23 2019-12-31 Afero, Inc. Apparatus and method for sharing credentials in an internet of things (IoT) system
US10311224B1 (en) * 2017-03-23 2019-06-04 Amazon Technologies, Inc. Digitally sealing equipment for authentication of components
JP6721266B2 (ja) * 2017-04-14 2020-07-08 三菱電機株式会社 鍵管理システム、通信機器および鍵共有方法
US11775688B2 (en) * 2017-12-20 2023-10-03 Felica Networks, Inc. Information processing device and information processing method
JP7179482B2 (ja) * 2018-04-19 2022-11-29 キヤノン株式会社 情報処理装置、制御方法、およびそのプログラム
US11068600B2 (en) * 2018-05-21 2021-07-20 Kct Holdings, Llc Apparatus and method for secure router with layered encryption
TWI682656B (zh) * 2018-07-23 2020-01-11 陳明宗 利用兩種密鑰的通訊系統
CN111125705B (zh) * 2018-11-01 2022-08-19 华为终端有限公司 一种能力开放方法及装置
US11863561B2 (en) * 2021-11-10 2024-01-02 Oracle International Corporation Edge attestation for authorization of a computing node in a cloud infrastructure system

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10198571A (ja) 1996-11-22 1998-07-31 Webtv Networks Inc ネットワーク上でソフトウェアを遠隔操作でアップグレードする方法
JP2003330745A (ja) 2002-05-14 2003-11-21 Mitsubishi Electric Corp プログラム更新装置及びプログラム更新方法
JP2005301550A (ja) * 2004-04-09 2005-10-27 Internatl Business Mach Corp <Ibm> プラットフォーム構成測定装置、プログラム及び方法、プラットフォーム構成認証装置、プログラム及び方法、プラットフォーム構成証明装置、プログラム及び方法、並びに、プラットフォーム構成開示装置、プログラム及び方法
US20060020781A1 (en) * 2004-06-24 2006-01-26 Scarlata Vincent R Method and apparatus for providing secure virtualization of a trusted platform module
US20060085848A1 (en) * 2004-10-19 2006-04-20 Intel Corporation Method and apparatus for securing communications between a smartcard and a terminal
US20060095961A1 (en) * 2004-10-29 2006-05-04 Priya Govindarajan Auto-triage of potentially vulnerable network machines

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5918013A (en) 1996-06-03 1999-06-29 Webtv Networks, Inc. Method of transcoding documents in a network environment using a proxy server
US5996022A (en) 1996-06-03 1999-11-30 Webtv Networks, Inc. Transcoding data in a proxy computer prior to transmitting the audio data to a client
US5974461A (en) 1996-06-03 1999-10-26 Webtv Networks, Inc. Method for automatically regenerating information at a client system in the event of power or communication disruption between the client system and the server
US6141693A (en) 1996-06-03 2000-10-31 Webtv Networks, Inc. Method and apparatus for extracting digital data from a video stream and using the digital data to configure the video stream for display on a television set
US6473099B1 (en) 1996-06-03 2002-10-29 Webtv Networks, Inc. Automatically upgrading software over a satellite link
US5935207A (en) 1996-06-03 1999-08-10 Webtv Networks, Inc. Method and apparatus for providing remote site administrators with user hits on mirrored web sites
US6008836A (en) 1996-06-03 1999-12-28 Webtv Networks, Inc. Method and apparatus for adjusting television display control using a browser
US5896444A (en) 1996-06-03 1999-04-20 Webtv Networks, Inc. Method and apparatus for managing communications between a client and a server in a network
US6034689A (en) 1996-06-03 2000-03-07 Webtv Networks, Inc. Web browser allowing navigation between hypertext objects using remote control
US6957260B1 (en) 1996-06-03 2005-10-18 Microsoft Corporation Method of improving access to services provided by a plurality of remote service providers
US6311197B2 (en) 1996-06-03 2001-10-30 Webtv Networks, Inc. Method for downloading a web page to a client for efficient display on a television screen
US6259442B1 (en) 1996-06-03 2001-07-10 Webtv Networks, Inc. Downloading software from a server to a client
US5851988A (en) 1997-01-15 1998-12-22 Terrapin Technologies, Inc. Nonpeptide insulin receptor agonists
US5830918A (en) 1997-01-15 1998-11-03 Terrapin Technologies, Inc. Nonpeptide insulin receptor agonists
US20030078188A1 (en) 1997-01-15 2003-04-24 Kauvar Lawrence M. Modulators of insulin receptor activity
US6329431B1 (en) 1997-01-15 2001-12-11 Telik, Inc. Nonpeptide insulin receptor agonists
EP1161716B1 (en) * 1999-02-15 2013-11-27 Hewlett-Packard Development Company, L.P. Trusted computing platform
US6848047B1 (en) * 1999-04-28 2005-01-25 Casio Computer Co., Ltd. Security managing system, data distribution apparatus and portable terminal apparatus
EP1085396A1 (en) * 1999-09-17 2001-03-21 Hewlett-Packard Company Operation of trusted state in computing platform
US6671724B1 (en) * 2000-03-21 2003-12-30 Centrisoft Corporation Software, systems and methods for managing a distributed network
US7353267B1 (en) * 2000-04-07 2008-04-01 Netzero, Inc. Targeted network video download interface
GB2382419B (en) * 2001-11-22 2005-12-14 Hewlett Packard Co Apparatus and method for creating a trusted environment
JP2003303028A (ja) * 2002-04-09 2003-10-24 Matsushita Electric Ind Co Ltd ナビゲーション装置のバージョンアップシステム
KR20040099253A (ko) * 2002-04-23 2004-11-26 마쯔시다덴기산교 가부시키가이샤 서버 장치 및 프로그램 관리 시스템
US7478433B2 (en) * 2003-06-19 2009-01-13 Panasonic Corporation Program execution system having authentication function
US20050021968A1 (en) * 2003-06-25 2005-01-27 Zimmer Vincent J. Method for performing a trusted firmware/bios update
US20050114682A1 (en) * 2003-11-26 2005-05-26 Zimmer Vincent J. Methods and apparatus for securely configuring a machine in a pre-operating system environment
JP4064914B2 (ja) * 2003-12-02 2008-03-19 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理装置、サーバ装置、情報処理装置のための方法、サーバ装置のための方法および装置実行可能なプログラム
US20050132031A1 (en) * 2003-12-12 2005-06-16 Reiner Sailer Method and system for measuring status and state of remotely executing programs
US7421588B2 (en) * 2003-12-30 2008-09-02 Lenovo Pte Ltd Apparatus, system, and method for sealing a data repository to a trusted computing platform
US7382880B2 (en) * 2004-01-26 2008-06-03 Hewlett-Packard Development Company, L.P. Method and apparatus for initializing multiple security modules
JP2005309759A (ja) * 2004-04-21 2005-11-04 Nippon Telegr & Teleph Corp <Ntt> 電子データ提供システムと方法およびプログラム
US7331063B2 (en) * 2004-04-30 2008-02-12 Microsoft Corporation Method and system for limiting software updates
JP2004320793A (ja) 2004-05-17 2004-11-11 Matsushita Electric Ind Co Ltd 管理基準作成方法、管理基準作成システム、及び記録媒体
JP2005339472A (ja) 2004-05-31 2005-12-08 Fuji Electric Holdings Co Ltd Icカードシステム
EP1624691A1 (en) 2004-08-03 2006-02-08 Thomson Licensing Forcing an action in a terminal
US20060047944A1 (en) * 2004-09-01 2006-03-02 Roger Kilian-Kehr Secure booting of a computing device
JP2007041694A (ja) * 2005-08-01 2007-02-15 Canon Inc ファームウェアのバージョンアップ方法
CN101960464B (zh) * 2008-02-25 2013-01-16 松下电器产业株式会社 信息处理装置
US8793504B2 (en) * 2012-02-22 2014-07-29 International Business Machines Corporation Validating a system with multiple subsystems using trusted platform modules and virtual platform modules

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10198571A (ja) 1996-11-22 1998-07-31 Webtv Networks Inc ネットワーク上でソフトウェアを遠隔操作でアップグレードする方法
JP2003330745A (ja) 2002-05-14 2003-11-21 Mitsubishi Electric Corp プログラム更新装置及びプログラム更新方法
JP2005301550A (ja) * 2004-04-09 2005-10-27 Internatl Business Mach Corp <Ibm> プラットフォーム構成測定装置、プログラム及び方法、プラットフォーム構成認証装置、プログラム及び方法、プラットフォーム構成証明装置、プログラム及び方法、並びに、プラットフォーム構成開示装置、プログラム及び方法
US20060020781A1 (en) * 2004-06-24 2006-01-26 Scarlata Vincent R Method and apparatus for providing secure virtualization of a trusted platform module
US20060085848A1 (en) * 2004-10-19 2006-04-20 Intel Corporation Method and apparatus for securing communications between a smartcard and a terminal
US20060095961A1 (en) * 2004-10-29 2006-05-04 Priya Govindarajan Auto-triage of potentially vulnerable network machines

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009245135A (ja) * 2008-03-31 2009-10-22 Fujitsu Frontech Ltd 情報処理端末装置及びアプリケーションプログラムの起動認証方法
JP2009266131A (ja) * 2008-04-28 2009-11-12 Fujitsu Ltd 記憶装置の制御装置、記憶装置及び記憶装置の制御方法
JP5357152B2 (ja) * 2008-06-23 2013-12-04 パナソニック株式会社 情報処理装置、情報処理方法、これらを実現するコンピュータプログラム及び集積回路
US8959363B2 (en) 2010-06-03 2015-02-17 Intel Corporation Systems, methods, and apparatus to virtualize TPM accesses
JP2014135072A (ja) * 2010-06-03 2014-07-24 Intel Corp Tpmアクセスを仮想化するシステム
JP2011258199A (ja) * 2010-06-03 2011-12-22 Intel Corp Tpmアクセスを仮想化するシステム、方法および装置
US9405908B2 (en) 2010-06-03 2016-08-02 Intel Corporation Systems, methods, and apparatus to virtualize TPM accesses
US9489512B2 (en) 2011-07-29 2016-11-08 Microsoft Technology Licensing, Llc Trustzone-based integrity measurements and verification using a software-based trusted platform module
JP2014525105A (ja) * 2011-07-29 2014-09-25 マイクロソフト コーポレーション Arm(登録商標)トラストゾーン実施のためのファームウェア基盤トラステッドプラットフォームモジュール(tpm)
JPWO2013175851A1 (ja) * 2012-05-21 2016-01-12 ソニー株式会社 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム
WO2013175851A1 (ja) * 2012-05-21 2013-11-28 ソニー株式会社 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム
JP2014049994A (ja) * 2012-08-31 2014-03-17 Fujitsu Fsas Inc ネットワーク接続方法および電子機器
JP2016136704A (ja) * 2015-01-23 2016-07-28 キヤノン株式会社 システム、通信装置、通信方法及びプログラム
JP2018139386A (ja) * 2017-02-24 2018-09-06 株式会社国際電気通信基礎技術研究所 データ送信装置、データ受信装置、通信システム、および、プログラム
WO2020158075A1 (ja) * 2019-01-30 2020-08-06 デンソートリム株式会社 メモリの書き換え履歴記録装置
JPWO2020158075A1 (ja) * 2019-01-30 2021-09-30 株式会社デンソートリム メモリの書き換え履歴記録装置
JP7085029B2 (ja) 2019-01-30 2022-06-15 株式会社デンソートリム メモリの書き換え履歴記録装置
JP7428049B2 (ja) 2020-03-30 2024-02-06 大日本印刷株式会社 デバイス、セキュアエレメント及びデバイスのセキュアブート方法

Also Published As

Publication number Publication date
JP4906854B2 (ja) 2012-03-28
JPWO2008004524A1 (ja) 2009-12-03
EP2037388A4 (en) 2016-12-14
WO2008004525A1 (fr) 2008-01-10
EP2037388A1 (en) 2009-03-18
US20100063996A1 (en) 2010-03-11
US8296561B2 (en) 2012-10-23
JPWO2008004525A1 (ja) 2009-12-03
US20090204806A1 (en) 2009-08-13
JP4950195B2 (ja) 2012-06-13

Similar Documents

Publication Publication Date Title
JP4950195B2 (ja) 証明装置、検証装置、検証システム、コンピュータプログラム及び集積回路
JP4790021B2 (ja) Srmのデジタル著作権管理方法及び装置
JP5200204B2 (ja) 高信頼性システムを含む連合型デジタル権限管理機構
US9881348B2 (en) Activation system architecture
US20060168580A1 (en) Software-management system, recording medium, and information-processing device
US9075957B2 (en) Backing up digital content that is stored in a secured storage device
US7124443B2 (en) Information transaction system
TWI508539B (zh) 智慧電視應用的授權方法、系統及智慧電視
US9117055B2 (en) Method and apparatus for downloading DRM module
JP2018152077A (ja) アプリケーションおよびメディアコンテンツ保護配布のための方法および装置
JP4818664B2 (ja) 機器情報送信方法、機器情報送信装置、機器情報送信プログラム
KR20040030454A (ko) 콘텐츠 이용권한 관리시스템, 콘텐츠 이용권한 관리방법및 정보처리장치와 컴퓨터 프로그램
WO2004066154A1 (ja) コンテンツ配信システム、情報処理装置又は情報処理方法、並びにコンピュータ・プログラム
US20080189695A1 (en) Updating of Data Instructions
JP2004048749A (ja) 対話式認証なしのデバイス上のコンテンツに関するデジタル権利管理(drm)暗号化およびデータ保護方法
TW200820076A (en) Portable mass storage with virtual machine activation
JP5278495B2 (ja) 機器情報送信方法、機器情報送信装置、機器情報送信プログラム
US8171565B2 (en) Systems and methods for locally generating license and activating DRM agent
JP2004272893A (ja) ソフトウェア管理システム、記録媒体及び情報処理装置
JP2013511090A (ja) 初回アクセス時のコンテンツ結合
JP2009122923A (ja) 著作権保護システム、再生装置、及び再生方法
TW201828184A (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: 07768023

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2008523675

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 12306816

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2007768023

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: RU