WO2017122361A1 - セキュリティ装置および制御方法 - Google Patents
セキュリティ装置および制御方法 Download PDFInfo
- Publication number
- WO2017122361A1 WO2017122361A1 PCT/JP2016/051188 JP2016051188W WO2017122361A1 WO 2017122361 A1 WO2017122361 A1 WO 2017122361A1 JP 2016051188 W JP2016051188 W JP 2016051188W WO 2017122361 A1 WO2017122361 A1 WO 2017122361A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- security
- information
- cpu
- program
- external device
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
- G06F21/445—Program or device authentication by mutual authentication, e.g. between devices or programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
- G06F21/725—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits operating on a secure reference time value
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0869—Network architectures or network communication protocols for network security for authentication of entities for achieving mutual authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3271—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
- H04L9/3273—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response for mutual authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/60—Digital content management, e.g. content distribution
- H04L2209/603—Digital right managament [DRM]
Definitions
- the present invention relates to a security device and the like.
- a system uses a IoT (Internet of Things) device equipped with a communication function, a sensor function, a processor function, etc. to accumulate various information in a server and analyze the stored data to create added value. ing.
- IoT Internet of Things
- traffic information can be distributed by mounting an IoT device in a vehicle, collecting and analyzing the vehicle position information from the IoT device.
- IoT devices are installed in health equipment, and the number of steps taken, blood pressure, body temperature, etc. are collected and analyzed to compare the health status of the whole person living in a location with the health status of the user, and the probability of getting sick Can be determined.
- an IoT device on the home server and collecting and analyzing video information viewed by the user on the home server, it is possible to grasp viewing trends by age, sex, and residential area.
- FIG. 7 is a diagram illustrating an example of a conventional IoT network system.
- the IoT network system includes a server 10, an ONU (Optical Network Unit) 15, a router 16, a broadcasting station 20, a terminal device 30, and an HDD (Hard Disk Drive) 40. .
- ONU Optical Network Unit
- HDD Hard Disk Drive
- the server 10 is connected to a DB (Data Base) 10b.
- the terminal device 30 has a CAS (Conditional Access Systems) card 35 inserted therein and includes IoT devices 30a and 30b.
- the HDD 40 includes an IoT device 40a.
- the terminal device 30 receives radio waves from the broadcast station via the antenna 6a.
- the terminal device 30 is connected to the router 16 and the HDD 40 via the home network 5.
- the terminal device 30 is connected to two networks.
- One is a broadcast network
- the terminal device 30 receives a video program from the broadcast station 20 via the broadcast wave and the antenna 6a.
- the other is an Internet network, and the terminal device 30 transmits and receives data to and from the server 10 via the optical network, the ONU 15, the router 16, and the home network 5.
- the home network 5 is an example of an Ethernet (registered trademark) network.
- the user of the terminal device 30 can view the video information via the broadcast network or the Internet.
- the user of the terminal device 30 can view the video information at his / her favorite timing by storing the video information in the HDD 40.
- the IoT devices 30a and 30b of the terminal device 30 transmit viewing information, personal information, and the like to the server 10 via the Internet.
- the personal information includes the user's age, sex, address, and the like.
- the server 10 accumulates viewing information, personal information, etc. received from the IoT devices 30a, 30b of the terminal device 30 and other IoT devices in the DB 10b, analyzes the viewing information, personal information, etc. accumulated in the DB 10b, and determines the age. Understand viewing trends by sex, gender, and residential area.
- the server 10 collects various types of information from the IoT device, so that it is also possible to calculate traffic jam information and the probability of getting a disease as described above.
- FIG. 8 is a functional block diagram showing a configuration of a conventional terminal device.
- the terminal device 30 includes an LSI (Large-Scale Integration) 31, a main CPU (Central Processing Unit) 32, a main RAM (Random Access Memory) 33, an external nonvolatile memory 34, and communication hardware. 35.
- Each device 31 to 35 is connected to a bus 36.
- the LSI has a graphic processor 31a, a video decoder 31b, and a tuner 31c, and is connected to the bus 36 by an IF 31d.
- the LSI 31 of the conventional terminal device 30 does not include the main CPU 32 and exchanges data via the bus 36.
- the main CPU 32 reads the program into the main RAM 33 and executes processing to be described later.
- FIG. 9 is a diagram illustrating an example of a protocol stack.
- the protocol stack is generally divided into a physical layer, a link layer, a network layer, a transport layer, a session layer, a presentation layer, and an application layer.
- each layer is not applied very strictly, and the boundary between each layer is ambiguous.
- the protocol stack related to the broadcast network is broadcast network layer, MPEG (Moving Picture Experts Group) -TS (Transport Stream) layer, section layer, PES layer, program information layer, security CAS layer, compressed video layer, compressed audio layer including.
- MPEG Motion Picture Experts Group
- TS Transmission Stream
- section layer PES layer
- program information layer program information layer
- security CAS layer compressed video layer
- compressed audio layer including.
- the Internet-related protocol stack includes an Ethernet layer, an IP (Internet Protocol) layer, a TCP (Transmission Control Protocol) layer, or a UDP (User Datagram Protocol) layer.
- the Internet network-related protocol stack includes an HTTP (HyperText Transfer Protocol) layer, a DTCP (Digital Transmission Content Protection) -IP security layer, and an HTML (HyperText Markup Language) 5 layer.
- the Internet-related protocol stack includes an SMTP (Simple Mail Transfer Protocol) mail layer, a DRM (Digital Rights Management) layer, an authentication layer, and a TLS (Transport Layer Security) layer.
- ⁇ By using the same protocol between each device, information can be exchanged between each layer. For example, by sharing the Ethernet layer between the HDD 40 and the terminal device 30 shown in FIG. 7, information in the physical layer and the link layer can be shared.
- the broadcast network related protocol stack will be explained.
- channel information is selected by a tuner from a signal from the broadcast network.
- the selected channel information is converted into a digital packet format having a fixed length of 188 bytes and output.
- There is an identification number at the beginning of each packet and by referring to the identification number, it is possible to identify whether the packet is video information, audio information or program information. By using the identifier, various time division multiplex transmissions are possible.
- the section layer is responsible for transmitting information.
- a process of extracting information such as a program name, an actor name, and a program outline of a video included in the stream from a stream such as audio and video is performed.
- the section layer handles CAS related information.
- the CAS-related information includes encrypted key information used when decrypting the encrypted MPEG compressed video stream and the encrypted compressed audio stream.
- the PES layer is responsible for transmitting streams such as audio and video.
- MPEG compressed video and MPEG compressed audio exist in the stream transmitted in the PES layer.
- the master key for decrypting the encrypted key information is held by the CAS card 35 shown in FIG.
- the security CAS layer transmits the encrypted key information to the CAS card 35
- the CAS card 35 uses the master key to decrypt the key information.
- the program information layer executes various processes using the program information.
- the program information includes information such as a program name, an actor name, and a program outline.
- the compressed video layer performs a process of decrypting the encrypted MPEG compressed video stream.
- the compressed audio layer performs a process of decrypting the encrypted compressed audio stream.
- various application programs operating on the OS (Operating System) of the terminal device 30 control processing executed by each layer.
- the application program selects a channel of the tuner and extracts each element of MPEG-TS in which audio and video output from the tuner are time-divided.
- Each element of MPEG-TS includes audio, video, program information, and CAS related information.
- the application program transmits the encrypted key information to the CAS card 35 and acquires the decrypted key information.
- the application program uses the key information to decode the video and audio, and controls the decompression processing of the MPEG-compressed video and audio.
- the application program extracts program information and displays information on the program on the monitor of the terminal device 30.
- the Ethernet layer is used for the physical layer and the data link layer.
- the IP layer is divided into a UDP layer or a TCP layer.
- An HTTP layer exists on the UDP / TCP layer, and a specific application layer exists on the HTTP layer.
- an Internet browser application program such as an HTML5 layer operates using an HTTP layer.
- the SMPT mail layer exists on the HTML5 layer, and various mail application programs operate.
- the TLS layer executes an authentication process for each terminal device on the Internet.
- the HTTP layer, the HTML5 layer, and the SMTP mail layer are layers that perform processing related to security.
- the DTCP-IP security layer, DRM layer, authentication layer, and TLS layer are layers that perform security-related processing.
- the DRM layer is a layer for securely transferring the content key of the encrypted Internet content between the server 10 and the terminal device 30.
- the DRM layer performs an authentication process using a public key / private key between the terminal device 30 and the server 10.
- the DRM layer performs a process for generating a temporary key called a session key using a random number generator and a process for sharing the temporary key.
- the DRM layer exchanges encrypted data using a session key.
- the terminal device 30 receives the content key encrypted with the session key from the server 10 and decrypts the content key on the terminal device 30 side. Thereafter, the terminal device 30 decrypts the encrypted content information with the content key.
- the DRM layer is used when content information is securely shared.
- the TLS layer is a typical protocol that performs mutual authentication between the server 10 and the terminal device 30.
- the TLS layer performs an authentication process using a public key / private key between the terminal device 30 and the server 10.
- the TLS layer performs a process for generating a temporary key called a session key using a random number generator and a process for sharing the temporary key.
- the TLS layer exchanges encrypted data using a session key.
- the TLS layer is usually used when secure transmission / reception of general information such as personal information.
- the DTCP-IP security layer is used when content information is securely transmitted / received via the home network 5.
- a case will be described as an example where the terminal device 30 securely transmits content information to the HDD 40 via the home network 5.
- the DTCP-IP security layer performs an authentication process using the public key / private key between the terminal device 30 and the HDD 40 using the TCP layer.
- the DTCP-IP security layer performs a process for generating a temporary key called a session key using a random number generator and a process for sharing the temporary key.
- the DTCP-IP security layer generates a content key based on the session key.
- the DTCP-IP security layer transmits / receives content encrypted with the content key via the HTTP layer.
- the HDD 40 re-encrypts the encrypted content information received from the HTTP layer with a decryptor and another key, and then stores the content information.
- FIG. 10 is a diagram illustrating an example in which the terminal device securely transmits the content via the home network.
- the terminal device 30 receives encrypted content information from the server 10 via the Internet network. After decrypting the content information with the decryption key, the terminal device 30 re-encrypts the content information with the encryption key, and transmits the encrypted content information to the HDD 40 via the home network 5.
- the HDD 40 decrypts the content information, re-encrypts the decrypted content information with the encryption key, and stores the decrypted content information in the storage unit 41.
- the terminal device 30 executes DRM processing according to a protocol defined in the DRM layer.
- the terminal device 30 sequentially performs mutual authentication, session key generation, and content key reception as DRM processing.
- the terminal device 30 receives the encrypted content information from the server 10 and decrypts the received content information.
- the terminal device 30 re-encrypts the decrypted content information for the home network 5.
- the terminal device 30 generates an encryption key for encryption as follows according to a protocol defined in the DTCP-IP security layer.
- the terminal device 30 performs mutual authentication with the HDD 40 using a public / private key pair.
- the terminal device 30 generates a session key using a random number generator in the terminal device 30 and shares it with the HDD 40.
- the terminal device 30 re-encrypts the content information with the content key, and transmits the content information re-encrypted with the HTTP layer to the HDD 40.
- the HDD 40 receives the re-encrypted content information.
- the HDD 40 shares the content key based on the session key shared with the terminal device 30, and decrypts the re-encrypted content information using the content key.
- the HDD 40 encrypts the content information with the encryption key generated by the random number generator on the HDD 40 and stores the encrypted content information in the storage unit 41.
- the HDD 40 stores the encryption key in a secret location on the HDD 40 and, when viewing the content information, has the encryption key stored in the secret location and decrypts the content information stored in the storage unit 41.
- the terminal device 30 when the terminal device 30 receives a content viewing request, the terminal device 30 securely receives and displays content information from the HDD 40 according to the protocol of the DTCP-IP security layer.
- the main CPU 32 of the terminal device 30 reads each security program and processes confidential information. For example, since the main CPU 32 of the terminal device 30 can be externally operated, confidential information may be leaked when the security program is executed when the main CPU 32 is illegally operated. is there.
- an object of the present invention is to provide a security device and a control method capable of processing confidential information by switching security methods efficiently and safely.
- the secure device has a processor and a memory in the secure area.
- the memory stores a plurality of types of programs that execute security processing with an external device using a predetermined security method, and security information used in the security processing.
- the processor acquires the confidential information from the first external device by executing the first security among the plurality of types of programs and executing the first security processing with the first external device.
- the processor transmits confidential information to the second external device by executing a second security process with the second external device by executing a second program different from the first program among the plurality of types of programs. For sensitive information.
- ⁇ Secret information can be processed by switching security methods efficiently and safely.
- FIG. 1 is a diagram illustrating an example of a network system according to the present embodiment.
- FIG. 2 is a functional block diagram illustrating the configuration of the terminal device according to the present embodiment.
- FIG. 3 is a flowchart illustrating an example of the DRM process executed by the CPU in the secure area.
- FIG. 4 is a flowchart illustrating an example of DTCP-IP processing executed by the CPU in the secure area.
- FIG. 5 is a flowchart showing a processing procedure when the secure area receives a content viewing request.
- FIG. 6 is a flowchart illustrating a processing procedure when a request for performance information is received.
- FIG. 7 is a diagram illustrating an example of a conventional IoT network system.
- FIG. 8 is a functional block diagram showing a configuration of a conventional terminal device.
- FIG. 9 is a diagram illustrating an example of a protocol stack.
- FIG. 10 is a diagram illustrating an example in which the terminal device securely transmits the content via the home network.
- FIG. 1 is a diagram illustrating an example of a network system according to the present embodiment.
- this network system includes terminal devices 100a, 100b, 100c, 100d, and 100e, and a server 200.
- the terminal devices 100a to 100c and the server 200 are connected to each other via the Internet network 6.
- the server 200 is connected to the DB 200a.
- the terminal devices 100a, 100d, and 100e are connected to each other via the home network 5.
- the terminal devices 100a to 100e correspond to PCs (Personal Computers), mobile phones, smartphones, sensors, IoT devices, and the like. In the following description, the terminal devices 100a to 100e are collectively referred to as the terminal device 100 as appropriate.
- the terminal device 100 includes one or a plurality of IoT devices 110.
- the terminal device 100 has a secure area 120.
- the secure area 120 is a tamper-resistant area, and it is difficult to look into the hardware and software included in the secure area 120 or to tamper with it.
- the secure area 120 corresponds to a security device.
- the terminal device 100 executes data communication with the server 10 or another terminal device based on an existing protocol stack, only the processing related to security is executed by the CPU included in the secure area 120.
- Request For example, the CPU included in the secure area 120 executes the protocol processing defined in the security CAS layer, DTCP-IP security layer, DRM layer, authentication layer, and TLS layer independently of the CPU outside the secure area 120. .
- the server 200 receives various information from the terminal device 100 and registers it in the DB 200a. Further, in response to a request from the terminal device 100, the server 200 transmits the information stored in the DB 200a to the requesting terminal device 100. In this embodiment, as an example, a case where the server 200 transmits content information to the terminal device 100 will be described.
- FIG. 2 is a functional block diagram showing the configuration of the terminal device according to the present embodiment.
- the terminal device 100 includes a secure area 120, a main CPU 151, a main RAM 152, an external nonvolatile memory 153, and communication hardware 154.
- the devices 120, 151, 152, 153, and 154 are connected to each other via a bus 160.
- the secure area 120 includes a CPU 121, a secret verification circuit 122, a trusted time circuit 123, a common encryption circuit 124, an asymmetric encryption circuit 125, a hash circuit 126, a random number generation circuit 127, a nonvolatile memory 128, and a volatile memory area 129.
- the CPU 121 is a device that reads various programs stored in the nonvolatile memory 128 into the volatile memory area 129 and executes various processes.
- the CPU 121 receives a command from the main CPU 151 via the IF 130 and executes a program corresponding to the command. Commands that the CPU 121 receives from the main CPU are defined in advance by the administrator. When the CPU 121 receives an undefined command, the CPU 121 executes a process such as deleting the received command so that the undefined command is not executed. A specific description of processing executed by the CPU 121 will be described later.
- the secret verification circuit 122 is an interface that allows input of information via the secret verification circuit 122 when a secret input signal predetermined by an administrator or the like is received. For example, at the time of initialization, the secret verification circuit 122 receives input of a secure area identification number and a master key, and stores the received secure area identification number and master key information in the nonvolatile memory 128.
- the secure area identification number is information for uniquely identifying the secure area 120, and is a unique number.
- the master key is a key used when encrypting various kinds of information, and is a unique key.
- the secret verification circuit 122 receives information on the minimum necessary program group selected in advance by the administrator at the time of initial setting, and stores the received information on the program group in the nonvolatile memory 128.
- the minimum necessary program group includes a download routine, a program storage routine, and a stored program management data creation routine.
- the download routine is a program that defines the procedure for downloading a new program after shipment from the factory.
- the program accumulation routine is a program that defines a procedure for accumulating a program downloaded from an external device in the nonvolatile memory 128.
- the stored program management data creation routine is a program that defines a procedure for reading each program and routine stored in the nonvolatile memory 128. For example, when the program stored in the non-volatile memory 128 is updated or when a new program is stored in the non-volatile memory 128, the CPU 121 reads out and executes the stored program management data creation routine, and stores the stored program management data. Is generated. The CPU 121 stores accumulated program management data in the nonvolatile memory 128.
- the stored program management data describes the names and version numbers of programs and routines stored in the nonvolatile memory 128, the capacity of the nonvolatile memory 128 used when executing the program, and the location of the data area of the nonvolatile memory 128. In this data area, various key information, certificates, various log information, personal information, and hash values are described.
- the minimum necessary program group is stored in the nonvolatile memory 128 via the secret verification circuit 122 .
- the minimum necessary program group is stored in the nonvolatile memory 128. It may be stored in the memory 128 in advance.
- the Trusted Time circuit 123 is a timer that measures time independently within the secure area 120. For example, the Trusted Time circuit 123 outputs time information to the CPU 121 in response to a request from the CPU 121. When the secure area 120 is powered on, the Trusted Time circuit 123 accesses the main CPU 151, acquires time information, and updates the time information of the Trusted Time circuit 123.
- the common encryption circuit 124 is a circuit that executes encryption or decryption of information based on an encryption method using a common key in response to a request from the CPU 121.
- the encryption method using the common key corresponds to, for example, AES (Advanced Encryption Standard), DES (Data Encryption Standard), 3-DES, and the like.
- the asymmetric encryption circuit 125 is a circuit that performs encryption or decryption of information based on an asymmetric key encryption method using a public key / private key or the like in response to a request from the CPU 121.
- the asymmetric key encryption method corresponds to, for example, RSA (Rivest Shamir Adleman), elliptical encryption, and the like.
- the hash circuit 126 is a circuit that calculates a hash value of information and notifies the CPU 121 of the hash value when information input is received from the CPU 121.
- the random number generation circuit 127 is a circuit that generates a random number in response to a request from the CPU 121.
- the nonvolatile memory 128 is a storage device that stores a secure area identification number, a master key, and a minimum necessary program group.
- the CPU 121 stores various program groups downloaded by executing the download routine in the nonvolatile memory 128 by the program storage routine.
- the program group stored in the non-volatile memory 128 includes a plurality of types of security programs that execute security processing with an external device using a predetermined security method.
- the external device corresponds to a server 200 connected to the terminal device 100 via the Internet network 6 and another terminal device 100 connected to the terminal device 100 via the home network 5.
- the predetermined security method is a method based on protocols defined in the security CAS layer, the DTCP-IP security layer, the DRM layer, the authentication layer, and the TLS layer, for example.
- the security program basically has a function of performing mutual authentication with an external device, a function of generating a session key and sharing it with the external device, and a function of encrypting data.
- the security program when it is “security program A” of the security method based on the protocol defined in the DRM layer, it has the following functions.
- the security program A has a function of performing mutual authentication with the server 200 using a public key / private key pair.
- the security program A has a function for generating a session key.
- the security program A has a function of receiving the content key A from the server 200.
- the content information received from the server 200 is encrypted with the content key A.
- the security program when it is “security program B” of the security method based on the protocol defined in the DTCP-IP security layer, it has the following functions.
- the security program B has a function of performing mutual authentication with an external device connected to the home network 5 using a public key / private key pair.
- the security program B has a function of generating a session key using the random number generation circuit 127 and sharing it with an external device.
- the security program B has a function of generating the content key B using the session key.
- the security program B has a function of decrypting content information using, for example, a content key A used by another security program (security program A).
- the security program B has a function of re-encrypting the content information decrypted using the content key A using the content key B.
- the nonvolatile memory 128 may store other security programs.
- a security program based on protocols defined in a TLS layer, a security CAS layer, an authentication layer, and the like is stored in the nonvolatile memory 128.
- the nonvolatile memory 128 stores the hash value of each program group in association with the information for identifying the program, in addition to the above program group.
- the hash value is calculated by the hash circuit 126.
- a part of the program group stored in the nonvolatile memory 128 may be stored in the external nonvolatile memory 153.
- the CPU 121 encrypts a part of the program group stored in the nonvolatile memory 128 with the master key, outputs it to the main CPU 151, and requests to store it in the external nonvolatile memory 153.
- the CPU 121 requests the main CPU 151 to acquire the encrypted program in the external nonvolatile memory 153 and decrypts it with the master key.
- the CPU 121 executes the decrypted program when the hash value of the program decrypted with the master key matches the hash value of the nonvolatile memory.
- Non-volatile memory 128 stores performance information of secure area 120.
- the performance information includes information on the processing speed of the CPU 121, the number of processing bits of the CPU 121, the supported encryption method, the presence / absence of the random number generation circuit 127, the presence / absence of the hash circuit 126, and the type of hash operation performed by the hash circuit 126.
- the performance information includes the secure level information of the secure area 120, the memory capacity of the volatile memory area 129, the unused capacity of the volatile memory area 129, the availability of the external nonvolatile memory 153, and the external nonvolatile memory allowed by the secure area 120. Information on the memory capacity of the memory 153 is included.
- the performance information includes information on whether the clock of the Trusted Time circuit 123 can be supported, the type of OS installed in the secure area 120, and the grade of the secure area 120.
- the degree-of-secure information included in the performance information is information indicating how secure the secure area 120 is logically and physically.
- the logical security level is specified by the type of command received by the CPU 121 from the main CPU 151 or the like. For example, the greater the number of instructions that the CPU 121 accepts, the lower the logical security level.
- the main CPU 151 and the CPU 121 can be physically the same CPU, and the normal mode can be used when operating as the main CPU, and the secure mode can be set when operating as the CPU 121.
- the CPU operates in the secure mode, all memory areas including the secure memory area are accessible, and when the CPU is in the normal mode, the secure memory area is inaccessible.
- the CPUs are physically the same, but are logically distinguished.
- a CPU that is physically different improves the degree of security.
- the degree of security can also be defined by a physically different CPU or simply a logically different CPU.
- An existing processor adopting such an architecture is an ARM processor or the like.
- the ARM processor has a normal mode and a trusted mode. In the trusted mode, the entire memory space can be accessed, but the memory space accessible in the normal mode is limited.
- the ARM processor operates while switching modes.
- the physical security level is specified through experiments on electromagnetic wave analysis and power analysis attacks. For example, an administrator of a factory that manufactures the secure area 120 generates secure degree information to be set in the secure area 120 in consideration of the logical security degree and the physical security degree, and stores it in the nonvolatile memory 128.
- the administrator may determine the grade of the secure area 120 based on elements other than the grade included in the performance information and store it in the nonvolatile memory 128.
- the volatile memory area 129 is an area in which the CPU 121 reads and executes a program stored in the nonvolatile memory 128. Further, it is an area for temporarily storing information used when the CPU 121 performs processing.
- the IF 130 is an interface that relays information exchanged between the CPU 121 in the secure area 120 and the main CPU 151 outside the secure area 120.
- the main CPU 151 is a processing unit that executes programs stored in the main RAM 152 and executes various types of information.
- the main CPU 151 connects to the server 10 via the Internet network 6 and communicates with other terminal devices 100 via the home network 5 based on the protocols of the Ethernet layer, IP layer, TCP / UDP layer, and HTTP layer. Connect.
- the main CPU 151 requests the CPU 121 in the secure area 120 to perform processing based on the protocols of the security CAS layer, DTCP-IP security layer, DRM layer, authentication layer, and TLS layer.
- the main CPU 151 relays encryption information that the CPU 121 exchanges with the server 10 via the Internet network 6.
- the main CPU 151 relays encryption information that the CPU 121 exchanges with other terminal devices 100 via the home network 5.
- the main CPU 151 When the main CPU 151 receives a read request for information stored in the external nonvolatile memory 153 from the CPU 121 in the secure area 120, the main CPU 151 reads the target information from the external nonvolatile memory 153, and reads the read information from the CPU 121. Output to.
- the main RAM 152 stores, for example, an Ethernet processing program, an IP processing program, a TCP / UDP processing program, and an HTTP processing program.
- the Ethernet processing program is a program that operates according to the protocol of the Ethernet layer.
- the IP processing program is a program that operates according to an IP layer protocol.
- the TCP / UDP processing program is a program that operates according to a TCP layer or UDP layer protocol.
- the HTTP processing program is a program that operates according to an HTTP layer protocol.
- a part of the program group of the nonvolatile memory 128 is stored in an encrypted state. Further, an Ethernet processing program, an IP processing program, a TCP / UDP processing program, and an HTTP processing program may be stored.
- the communication hardware 154 receives data from an external device via the home network 5 and the Internet network 6 and outputs the received information to the main CPU 151.
- the communication hardware 154 outputs data for which a transmission request has been received from the main CPU 151 to an external device via the home network 5 and the Internet network 6.
- the communication hardware 154 receives information from a broadcast station (not shown) via the broadcast network, and outputs the received information to the main CPU 151.
- the non-volatile memory 128 stores a management data call routine, a program selection and activation routine, a program stop routine, and an external communication routine for secure area.
- the CPU 121 executes the download routine, the program accumulation routine, and the like, and stores the program in the nonvolatile memory 128.
- the CPU 121 When the secure area 120 is powered on, the CPU 121 activates a management data call routine from the nonvolatile memory 128 and reads from the nonvolatile memory 128 data related to programs and routine groups managed by the secure area 120. For example, the CPU 121 activates a program selection & activation routine, selects a predetermined program or routine based on the read data, and activates the selected program or routine.
- the CPU 121 When the CPU 121 detects that the program is not used, it starts a program stop routine and stops the program that is no longer used. The CPU 121 releases the volatile memory area 129 used by the program that is no longer used.
- the secure area external communication routine is a program that cooperates with the main CPU 151.
- the CPU 121 starts an external communication routine for secure area and exchanges information with the main CPU 151.
- the secure area external communication routine defines in advance the types of commands received from the main CPU 151.
- the CPU 121 when the CPU 121 starts the program storage routine and stores the program and data in the external nonvolatile memory 153, the CPU 121 requests the main CPU 151 to store the program and data according to the external communication routine for secure area. Even when the CPU 121 activates other programs in the secure area 120 and makes various requests to the main CPU 151, it follows the secure area external communication routine.
- the secure area external communication routine also defines a procedure when the CPU 121 receives a command from the main CPU 151.
- the commands received from the main CPU 151 by the CPU 121 include a download command for a specific program, a call command for a secure area identification number, a read command for performance information of the secure area 120, and the like.
- the terminal device 100 uses the secure area 120 to receive content information from the server 200, and uses the secure area 120 to store the content information in the HDD connected to the home network 5.
- the secure area 120 uses the secure area 120 to receive content information from the server 200, and uses the secure area 120 to store the content information in the HDD connected to the home network 5.
- the main CPU 151 connects to the server 200 via the Internet network 6. For example, when the main CPU 151 connects to the server 200, the following processing is executed.
- the main CPU 151 generates a TCP packet, embeds the TCP packet in the IP packet, and embeds the IP packet in the Ethernet packet.
- the main CPU 151 connects to the server 200 by executing a TCP program, an IP program, and an Ethernet program.
- the main CPU 151 requests the secure area 120 for a process corresponding to the DRM layer.
- the CPU 121 in the secure area 120 receives a request for processing corresponding to the DRM layer, the CPU 121 reads the security program A from the nonvolatile memory 128 and activates it.
- FIG. 3 is a flowchart illustrating an example of the DRM process executed by the CPU in the secure area.
- the CPU 121 of the secure area 120 acquires information used in the security program A (step S10).
- the information used in the security program A includes a DRMID, a DRM certificate, a public / private key of the secure area 120, a public key of the server 200, a DRMID of a DRM operating on the server 200, and the like.
- the CPU 121 executes mutual authentication with the server 200 using a public key / private key algorithm (step S11). For example, the CPU 121 generates a random number using the random number generation circuit 127 when executing mutual authentication.
- the CPU 121 starts authentication with the server 200 using a random number, DRMID, and public / private key pair.
- the server 200 responds using the random number, DRMID, and public / private key pair of the server 200.
- the CPU 121 determines whether or not mutual authentication with the server 200 has succeeded (step S12). If the mutual authentication with the server 200 has failed (No in step S12), the CPU 121 ends the process. For example, the CPU 121 outputs an error to the main CPU 151.
- step S12 When the CPU 121 has succeeded in mutual authentication with the server 200 (step S12, Yes), the CPU 121 proceeds to step S13.
- the CPU 121 generates a session key using the random number generation circuit 127 and shares the session key with the server 200 (step S13).
- the CPU 121 obtains the content key A encrypted with the session key from the server 200, and obtains the content key A by decrypting with the session key (step S14).
- the CPU 121 notifies the main CPU 151 that the content key A has been acquired (step S15).
- the main CPU 151 requests the server 200 to transmit content information.
- the server 200 accepts the content transmission request, the server 200 encrypts the content information with the content key A and transmits the content information to the terminal device 100.
- the content information is MPEG-compressed into an RTP (Real-time Transport Protocol) packet and transmitted to the terminal device 100.
- the main CPU 151 outputs the encrypted content information to the CPU 121.
- the CPU 121 acquires the encrypted content information and decrypts it with the content key A (step S16). In step S16, the CPU 121 may notify the main CPU 151 of the information on the content key A and request the main CPU 151 to decrypt the encrypted content information.
- the CPU 121 of the secure area 120 executes the DRM process shown in FIG. 3 to perform mutual authentication with the server 200, generation and sharing of the session key, acquisition of the content key A, and decryption of the content information. Execute.
- the CPU 121 in the secure area 120 reads the security program B from the nonvolatile memory 128 and activates it.
- the CPU 121 that has activated the security program B executes the following DTCP-IP processing.
- FIG. 4 is a flowchart showing an example of DTCP-IP processing executed by the CPU in the secure area.
- the terminal device 100 stores content information received from the server 200 in an HDD connected to the home network 5 will be described.
- the HDD is the HDD 40 shown in FIG.
- the CPU 121 of the secure area 120 executes mutual authentication with the HDD 40 using a public key / private key algorithm (step S20).
- the CPU 121 determines whether mutual authentication with the HDD 40 has succeeded (step S21). If the mutual authentication with the HDD 40 has failed (No in step S21), the CPU 121 ends the process. For example, the CPU 121 outputs an error to the main CPU 151.
- step S21 When the CPU 121 has succeeded in mutual authentication with the HDD 40 (step S21, Yes), the CPU 121 proceeds to step S22.
- the CPU 121 generates a session key using the random number generation circuit 127 and shares the session key with the HDD 40 (step S22).
- the CPU 121 generates a content key B using the session key, and encrypts the content key B (step S23).
- the CPU 121 requests the main CPU 151 to transmit the encrypted content key B to the HDD (step S24).
- the CPU 121 requests the main CPU 151 to encrypt the content information decrypted with the content key A by the DRM process using the content key B and to transmit the encrypted content information to the HDD 40 (step S25).
- the CPU 121 may notify the main CPU 151 of the content key B information and request the main CPU 151 to encrypt the content information.
- the main CPU 151 encrypts the content information based on the content key and transmits the encrypted content information to the HDD.
- Newly downloaded programs correspond to, for example, the security program A and the security program B described above.
- a process for downloading the security program A will be described.
- the CPU 121 in the secure area 120 receives a download command for the security program A from the main CPU 151.
- the CPU 121 confirms that there is a download routine by a management data read routine stored in the nonvolatile memory 128.
- the CPU 121 confirms the location of the program code and related information.
- the CPU 121 reads the download routine into the volatile memory area 129 by the program accumulation routine.
- the CPU 121 calculates whether or not the download routine has been falsified by calculating the hash value of the download routine and comparing it with the hash value calculated in advance. Check. If the download routine has been tampered with, the download is interrupted.
- the CPU 121 starts the download routine and connects to the server 200 using the related information.
- the related information includes an identification number for the download program, a public / private key pair, a public key of the server 200, and a URL (Uniform Resource Locator) of the server 200.
- the CPU 121 is connected to the server 200 via the main CPU 151.
- the main CPU 151 connects to the server 200 according to the existing Ethernet layer, IP layer, and TCP layer protocols.
- the CPU 121 When the CPU 121 that is starting the download routine is connected to the server 200, the CPU 121 performs mutual authentication with the server 200 using the mutual public key and private key pair.
- the CPU 121 generates a session key by generating a random number using the random number generation circuit 127 and shares it with the server 200.
- the CPU 121 receives the content key encrypted with the session key from the server 200 and acquires the content key using the session key.
- the CPU 121 that is starting the download routine acquires the security program A encrypted with the content key and the related information of the security program A from the server 200.
- the CPU 121 decrypts the encrypted information with the content key.
- the CPU 121 starts a program storage routine and stores the decrypted security program A and related information in the nonvolatile memory 128.
- the CPU 121 calculates hash values of the security program A and related information, and stores them in the nonvolatile memory 128 in association with the security program A.
- the CPU 121 describes the version number of the security program A, the capacity of the volatile memory area 129 necessary for the operation, and the location of the data area of the nonvolatile memory 128 in the stored program management data.
- the CPU 121 that is starting the download routine reports the download completion to the main CPU 151.
- the main CPU 151 receives the end report, the main CPU 151 outputs a download routine stop command to the CPU 121.
- the CPU 121 stops the download routine and outputs a stop report to the main CPU 151.
- the CPU 121 when the CPU 121 that is running the download routine receives a request for performance information from the server 200, the CPU 121 encrypts the performance information with the content key and notifies the server 200 of the encrypted performance information.
- the server 200 has reference performance information capable of executing the security program A. The server 200 compares the performance information with the reference performance information, and when the performance information in the secure area 120 exceeds the reference performance information, the server 200 encrypts the security program A with the content key, and the encrypted content information is stored in the CPU 121. Transmit to.
- the server 200 when the performance information of the secure area 120 does not exceed the reference performance information, the server 200 notifies the CPU 121 of information indicating that there is no performance for executing the security program A.
- the CPU 121 receives information indicating that there is no performance for executing the security program A, the CPU 121 notifies the main CPU 151 of information indicating that the download has failed.
- the server 200 has a plurality of security programs A1, A2, and A3 having different reference performance information, selects a security program that can be executed with the performance information in the secure area 120, and transmits the selected security program. good. For example, it is assumed that the performance information of the secure area 120 exceeds the reference performance information of the security program A1. In this case, the server 200 encrypts the security program A1 with the content key and transmits it to the CPU 121.
- FIG. 5 is a flowchart showing a processing procedure when the secure area receives a content viewing request.
- the CPU 121 in the secure area 120 receives a content information viewing request from the main CPU 151 (step S30).
- the CPU 121 establishes a connection with the server 200 via the main CPU 151 (step S31).
- CPU 121 reads and executes security program A (DRM program) (step S32).
- the CPU 121 executes DRM processing (step S33).
- DRM process shown in step S33 corresponds to the process shown in FIG.
- the CPU 121 decrypts the encrypted content information by using the content key A, and acquires the content information (step S34). Note that the process of step S ⁇ b> 34 may be executed by the main CPU 151 instead of the CPU 121. When the main CPU 151 executes, the main CPU 151 acquires the content key A from the CPU 121, and decrypts the content information encrypted by the server 200 using the content key A.
- step S35 The CPU 121 reads and executes program B (DTCP-IP program) (step S35).
- the CPU 121 executes DTCP-IP processing (step S36).
- the DTCP-IP process shown in step S36 corresponds to the process shown in FIG.
- the CPU 121 re-encrypts the content information decrypted with the content key A with the content key B and transmits it to the HDD (step S37). Note that the process of step S37 may be executed by the main CPU 151 instead of the CPU 121. When the main CPU 151 executes, the main CPU 151 obtains the content key B from the CPU 121 and encrypts the content information using the content key B.
- FIG. 6 is a flowchart illustrating a processing procedure when a request for performance information is received. As shown in FIG. 6, the CPU 121 executes a management data call routine and reads various programs (step S41).
- CPU 121 executes an external communication routine (step S42).
- the CPU 121 determines whether or not a performance information call command has been received (step S43). If the CPU 121 has not received a performance information read command (step S43, No), the process ends.
- the CPU 121 when the CPU 121 receives a performance information read command (step S43, Yes), the CPU 121 encrypts the performance information using the common key (step S44). For example, the CPU 121 shares the content key with the server 200 by the security program A, and when the performance information is requested from the server 200, the performance information is encrypted by the content key A (common key). To do. The CPU 121 outputs the encrypted performance information (step S45).
- the CPU 121 of the secure area 120 executes the security program A, it performs mutual authentication using a “public key / private key”, sharing of a temporary key (content key), and data encryption.
- a “public key / private key” shares a temporary key (content key)
- data encryption data encryption
- the same process can be executed using the “common key”. In this case, it is assumed that the secure area 120 and the server 200 share a common key.
- the mutual authentication performed by the CPU 121 in the secure area 120 using the common key with the server 200 will be described.
- the CPU 121 generates a random number using the random number generation circuit 127, encrypts the generated random number, the secure area identification number, and the server 200 identification number with a common key, and transmits the encrypted random number to the server 200.
- the server 200 decrypts the encrypted information received from the CPU 121 with the common key.
- the server 200 performs a secret calculation known only to the secure area 120 and the server 200 on the random number.
- the server 200 encrypts the random number subjected to the secret calculation, the secure area identification number, and the identification number of the server 200 with the common key, and transmits the same to the CPU 121.
- the CPU 121 decrypts the encrypted information received from the server 200 with the common key.
- the CPU 121 authenticates the server 200 when it is determined that the random number on which the secret calculation has been performed is a valid random number.
- the server 200 uses the random number generation circuit of the server 200 to generate a random number, encrypts the generated random number, secure area identification number, and server 200 identification number with a common key, and transmits the encrypted random number to the secure area 120.
- the CPU 121 decrypts the encrypted information received from the server 200 with the common key.
- the CPU 121 performs a secret calculation known only to the secure area 120 and the server 200 on the random number.
- the CPU 121 encrypts the random number subjected to the secret calculation, the secure area identification number, and the identification number of the server 200 with the common key, and transmits the same to the server 200.
- the server 200 decrypts the encrypted information received from the secure area 120 with the common key.
- the server 200 authenticates the secure area 120 when it is determined that the random number on which the secret calculation has been performed is a valid random number.
- the CPU 121 in the secure area 120 shares a temporary key with the server 200.
- the CPU 121 and the server 200 encrypt the temporary key generated with a random number with a secret shared key and transmit it to the server 200.
- the server 200 decrypts the encrypted temporary key with a secret shared key.
- the temporary key can be shared between the CPU 121 and the server 200.
- the server 200 encrypts the content information using the temporary key and transmits it to the secure area 120.
- the CPU 121 in the secure area 120 decrypts the encrypted content information with the temporary key.
- a CPU 121 and a non-volatile memory 128 are provided in the secure area 120 where tampering and peeping are difficult, and a plurality of programs with different security methods are stored in the non-volatile memory 128.
- the CPU 121 executes a security program stored in the non-volatile memory 128, and performs processing by taking over confidential information obtained by a certain security program by another security program. Thereby, it is possible to process the confidential information by switching the security method efficiently and safely.
- the CPU 121 of the secure area 120 executes the security program A, securely receives the encrypted content information (corresponding to confidential information) from the server 200, and decrypts the content information using the content key A.
- the CPU 121 executes the security program B, encrypts the content information with the content key B, and transmits it to the HDD.
- the confidential information is processed inside the secure area 120, and the confidential information output to the outside is in an encrypted state. Therefore, the confidential information is not leaked to the outside. Can be processed.
- the secure area 120 has a plurality of security programs, and the CPU 121 receives selection of the security program from the main CPU 151 and executes the selected security program. For this reason, the main CPU 151 can entrust security processing tailored to the connection destination external device to the secure area 120.
- Each security program is based on a protocol defined in the existing security CAS layer, DTCP-IP security layer, DRM layer, authentication layer, and TLS layer. Therefore, a special program or hardware for the existing IoT device is used. Confidential information can be processed securely without installing.
- the secure area 120 stores performance information in the nonvolatile memory 128, and when downloading or updating various programs, the secure area 120 sends performance information to the server 200 in response to a request from an external device such as the server 200. Notice. Based on the performance information, the server 200 transmits the program to the secure area 120 when the performance information matches the program to be downloaded. For this reason, the secure area 120 can download a program suitable for the performance, and can appropriately execute the program.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
Abstract
セキュア装置は、セキュア領域(120)にCPU(121)および不揮発性メモリ(128)を有する。不揮発性メモリ(128)は、所定のセキュリティ方式によって外部装置との間でセキュリティ処理を実行する複数種類のプログラムと、セキュリティ処理で用いるセキュリティ情報とを格納する。CPU(121)は、複数種類のプログラムのうち第1プログラムを実行して第1外部装置との間で第1セキュリティ処理を実行することで、前記第1外部装置から機密情報を取得する。また、CPU(121)は、複数種類のプログラムのうち第1プログラムと異なる第2プログラムを実行して第2外部装置との間で第2セキュリティ処理を実行することで、機密情報を、第2外部装置に送信するための機密情報に変換する。
Description
本発明は、セキュリティ装置等に関する。
近年、通信機能、センサ機能、プロセッサ機能等を備えたIoT(Internet of Things)機器を用いて、様々な情報をサーバに蓄積し、蓄積したデータを解析することで付加価値を生むシステムが考案されている。
例えば、車にIoT機器を搭載し、IoT機器から車の位置情報を収集して分析することで、渋滞情報を配信することができる。健康器具にIoT機器を搭載し、ユーザの歩数、血圧、体温等を収集して分析することで、ある場所に住む人間全体の健康状態と、ユーザの健康状態とを比較し、病気にかかる確率を割り出すことができる。また、ホームサーバにIoT機器を搭載し、ホームサーバでユーザが視聴する映像情報を収集して分析することで、年齢別、性別、居住地域別の視聴傾向を把握することができる。
ここで、各IoT機器とサーバとを接続するIoTネットワークシステムには、様々な接続形態がある。図7は、従来のIoTネットワークシステムの一例を示す図である。図7に示すように、このIoTネットワークシステムは、サーバ10と、ONU(Optical Network Unit)15と、ルータ16と、放送局20と、端末装置30と、HDD(Hard Disk Drive)40とを有する。
サーバ10は、DB(Data Base)10bに接続される。端末装置30は、CAS(Conditional Access Systems)カード35が挿入されており、IoT機器30a,30bを有する。HDD40は、IoT機器40aを有する。端末装置30は、アンテナ6aを介して、放送局から電波を受信する。また、端末装置30は、ホームネットワーク5を介して、ルータ16、HDD40に接続される。
図7に示すIoTネットワークシステムでは、端末装置30は、2つのネットワークに接続されている。1つは放送網であり、端末装置30は、放送電波およびアンテナ6aを経由して、映像番組を放送局20から受信する。もう一つはインターネット網であり、端末装置30は、光網、ONU15、ルータ16、ホームネットワーク5を経由して、サーバ10との間でデータを送受信する。ホームネットワーク5は、Ethernet(登録商標)網の一例である。
端末装置30のユーザは、映像情報を放送網経由或いはインターネット経由で視聴することができる。端末装置30のユーザは、映像情報を、HDD40に蓄積しておくことで、自身の好きなタイミングで、映像情報を視聴することができる。
例えば、端末装置30のIoT機器30a,30bは、視聴情報、個人情報等を、インターネット経由でサーバ10に送信する。個人情報には、ユーザの年齢、性別、住所等が含まれる。サーバ10は、端末装置30のIoT機器30a,30bやその他のIoT機器から受信した視聴情報、個人情報等を、DB10bに蓄積し、DB10bに蓄積された視聴情報、個人情報等を解析し、年齢別、性別、居住地域の視聴傾向を把握する。なお、ここでは説明を省略するが、サーバ10がIoT機器から各種の情報を収集することで、上記のように、渋滞情報や、病気にかかる確率なども算出することもできる。
図8は、従来の端末装置の構成を示す機能ブロック図である。図8に示すように、端末装置30は、LSI(Large-Scale Integration)31と、メインCPU(Central Processing Unit)32と、メインRAM(Random Access Memory)33、外部不揮発性メモリ34、通信用ハード35を有する。各装置31~35は、バス36に接続される。LSIは、グラフィックプロセッサ31a、ビデオデコーダー31b、チューナー31cを有し、IF31dによって、バス36に接続される。図8に示すように、従来の端末装置30のLSI31には、メインCPU32が含まれておらず、バス36を介して、データをやり取りする。端末装置30は、メインCPU32がプログラムをメインRAM33に読み出して、後述する処理を実行する。
例えば、端末装置30には、所定のプロトコルスタックが実装される。図9は、プロトコルスタックの一例を示す図である。図9に示すように、プロトコルスタックは、一般的に、物理層、リンク層、ネットワーク層、トランスポート層、セッション層、プレゼンテーション層、アプリケーション層に分けられる。なお、各層は、余り厳密に適用されておらず、各層の境目は曖昧である。
例えば、放送網関連のプロトコルスタックは、放送網層、MPEG(Moving Picture Experts Group)-TS(Transport Stream)層、セクション層、PES層、番組情報層、セキュリティCAS層、圧縮映像層、圧縮音声層を含む。放送網関連のプロトコルスタックには、ネットワーク層に対応する層は基本的に存在しない。
例えば、インターネット網関連のプロトコルスタックは、Ethernet層、IP(Internet Protocol)層、TCP(Transmission Control Protocol)層またはUDP(User Datagram Protocol)層を含む。また、インターネット網関連のプロトコルスタックは、HTTP(HyperText Transfer Protocol)層、DTCP(Digital Transmission Content Protection)-IPセキュリティ層、HTML(HyperText Markup Language)5層を含む。また、インターネット網関連のプロトコルスタックは、SMTP(Simple Mail Transfer Protocol)メール層、DRM(Digital Rights Management)層、認証層、TLS(Transport Layer Security)層を含む。
各装置間で同じプロトコルを使用することで、各層の間で、情報の授受が可能になる。例えば、図7に示したHDD40と端末装置30との間で、Ethernet層を共有することで、物理層とリンク層での情報を共有することができる。
放送網関連のプロトコルスタックについて説明する。放送網層において、放送網からの信号がチューナーによりチャンネルの情報が選択される。MPEG-TS層において、選択されたチャンネルの情報は、188バイト固定長のデジタルパケット形式に変換され、出力される。各パケットの先頭部分に識別番号があり、識別番号を参照することで、パケットが映像情報か音声情報か番組情報かを識別することができる。識別子を用いることで、各種の時分割多重伝送が可能となる。
セクション層は、情報を伝送する役割を担う。セクション層では、音声や映像等のストリームからストリームに含まれる映像の番組名、俳優名、番組のあらすじ等の情報を抽出する処理を行う。また、セクション層は、CAS関連の情報を取り扱う。CAS関連の情報には、暗号化されたMPEG圧縮映像ストリームや、暗号化された圧縮音声ストリームを復号する場合に用いる鍵情報が、暗号化された状態で含まれる。
PES層は、音声や映像などのストリーム類を伝送する役割を担う。PES層で伝送されるストリームには、MPEG圧縮映像とMPEG圧縮音声が存在する。
暗号化された鍵情報を復号するためのマスタ鍵は、図7に示したCASカード35が保持する。セキュリティCAS層は、暗号化された鍵情報を、CASカード35に伝送すると、CASカード35はマスタ鍵を利用して鍵情報を復号する。番組情報層は、番組情報を用いて、各種の処理を実行する。番組情報には、番組名、俳優名、番組のあらすじ等の情報が含まれる。圧縮映像層は、暗号化されたMPEG圧縮映像ストリームを復号する処理を行う。圧縮音声層は、暗号化された圧縮音声ストリームを復号する処理を行う。
図9に示す、端末装置30のOS(Operating System)上で動作する各種のアプリケーションプログラム(Apply)は、各層が実行する処理を制御する。アプリケーションプログラムは、チューナーのチャンネル選択、チューナーから出力される音声や映像等が時分割されたMPEG-TSの各要素の抽出を行う。MPEG-TSの各要素には、音声、映像、番組情報、CAS関連の情報が含まれる。アプリケーションプログラムは、CASカード35に対して、暗号化された鍵情報を伝送し、復号された鍵情報を取得する。アプリケーションプログラムは、鍵情報を用いて映像や音声を復号し、MPEG圧縮された映像や音声の伸長処理を制御する。アプリケーションプログラムは、番組情報を抽出し、番組に関する情報を端末装置30のモニタに表示する。
次に、インターネット関連のプロトコルスタックについて説明する。インターネット関連のプロトコルスタックでは、物理層およびデータリンク層にEthernet層が利用される。Ethernet層の上にIP層が存在する。IP層は、UDP層またはTCP層に分けられる。UDP/TCP層の上に、HTTP層が存在し、HTTP層の上に具体的なアプリケーション層が存在する。例えば、HTTP層を利用して、HTML5層などのインターネットブラウザ・アプリケーションプログラムが動作する。HTML5層の上にSMPTメール層が存在し、各種メール・アプリケーションプログラムが動作する。TLS層は、インターネット上で各端末装置の認証処理を実行する。上記のHTTP層、HTML5層、SMTPメール層は、セキュリティに関する処理を行う層である。
DTCP-IPセキュリティ層、DRM層、認証層、TLS層は、セキュリティに関する処理を行う層である。
DRM層は、サーバ10と端末装置30との間で、暗号化されたインターネット・コンテンツのコンテンツ鍵のセキュアな授受を行うための層である。DRM層は、端末装置30とサーバ10との間で公開鍵・秘密鍵を利用した認証処理を行う。DRM層は、乱数発生器を利用したセッション鍵と呼ばれる一時鍵の生成する処理、一時鍵を共有する処理を行う。DRM層は、セッション鍵を利用した暗号化データの授受を行う。DRM層の処理では、一般的に、セッション鍵で暗号化されたコンテンツ鍵を端末装置30がサーバ10から受け取り、端末装置30側で、コンテンツ鍵を復号する。その後、端末装置30は、暗号化されたコンテンツ情報を、コンテンツ鍵で復号する。DRM層は、コンテンツ情報をセキュアに共有する場合に利用される。
TLS層は、サーバ10と端末装置30との間で相互認証を行う代表的なプロトコルである。TLS層は、端末装置30とサーバ10との間で公開鍵・秘密鍵を利用した認証処理を行う。TLS層は、乱数発生器を利用したセッション鍵と呼ばれる一時鍵の生成する処理、一時鍵を共有する処理を行う。TLS層は、セッション鍵を利用した暗号化データの授受を行う。TLS層は、個人情報等の一般的な情報をセキュアに送受信する場合に利用されるのが普通である。
DTCP-IPセキュリティ層は、ホームネットワーク5を介してコンテンツ情報をセキュアに送受信する場合に用いられる。ここでは、端末装置30が、ホームネットワーク5を介して、セキュアにコンテンツ情報を、HDD40に送信する場合を例にして説明する。
DTCP-IPセキュリティ層は、TCP層を利用して、端末装置30とHDD40との間で公開鍵・秘密鍵を利用した認証処理を行う。DTCP-IPセキュリティ層は、乱数発生器を利用したセッション鍵と呼ばれる一時鍵の生成する処理、一時鍵を共有する処理を行う。DTCP-IPセキュリティ層は、セッション鍵をベースにして、コンテンツ鍵を生成する。DTCP-IPセキュリティ層は、コンテンツ鍵で暗号化されたコンテンツをHTTP層で送受信する。HDD40は、HTTP層から受信した暗号化されたコンテンツ情報を復号子、別の鍵で再度暗号化した上で、コンテンツ情報を蓄積する。
図10は、端末装置がホームネットワークを介してコンテンツをセキュアに伝送する例を示す図である。図10に示す例では、端末装置30が、インターネット網を経由して、暗号化されたコンテンツ情報をサーバ10から受信する。端末装置30は、コンテンツ情報を復号鍵で復号した後、暗号鍵でコンテンツ情報を再度暗号化し、ホームネットワーク5を介して、暗号化したコンテンツ情報をHDD40に伝送する。HDD40は、コンテンツ情報を復号し、復号したコンテンツ情報を、暗号鍵で再度暗号化した上で記憶部41に蓄積する。
端末装置30は、DRM層で定義されるプロトコルに従って、DRM処理を実行する。端末装置30は、DRM処理として、相互認証、セッション鍵の生成、コンテンツ鍵受信を順に行う。端末装置30は、サーバ10から暗号化されたコンテンツ情報を受信し、受信したコンテンツ情報を、復号する。端末装置30は、復号したコンテンツ情報を、ホームネットワーク5用に再暗号化する。端末装置30は、DTCP-IPセキュリティ層で定義されるプロトコルに従って、暗号化する際の暗号鍵を以下のように生成する。
端末装置30は、HDD40との間で、公開鍵・秘密鍵ペアを利用した相互認証を行う。端末装置30は、端末装置30内の乱数発生器を利用したセッション鍵を生成し、HDD40と共有する。端末装置30は、コンテンツ鍵でコンテンツ情報を再暗号化し、HTTP層で再暗号化したコンテンツ情報をHDD40に送信する。
HDD40は、再暗号化されたコンテンツ情報を受信する。HDD40は、端末装置30との間で共有したセッション鍵をベースにして、コンテンツ鍵を共有し、コンテンツ鍵を用いて、再暗号化されたコンテンツ情報を復号する。ここで、コンテンツ情報を暗号化しないで、記憶部41に格納すると、盗難される恐れがある。このため、HDD40は、HDD40上の乱数生成器で生成した暗号鍵でコンテンツ情報を暗号化し、暗号化したコンテンツ情報を、記憶部41に蓄積する。HDD40は、暗号鍵をHDD40上の秘密の場所に保存し、コンテンツ情報を視聴する場合には、秘密の場所に保存した暗号鍵を持ち手、記憶部41に蓄積したコンテンツ情報を復号する。
例えば、端末装置30がコンテンツ視聴の要求を受け付けた場合には、端末装置30は、DTCP-IPセキュリティ層のプロトコルに従い、HDD40からコンテンツ情報をセキュアに受信し、表示する。
ここで、上記のDRM層、DTCP-IPセキュリティ層等のプロトコルに従って処理を実行する場合に、鍵類、乱数生成などの処理内容が漏洩し、改竄されると機密情報が漏洩する場合がある。この問題を解消するために、従来技術では、例えば、端末装置30に搭載するアプリケーションプログラム、Ethernet関連プログラム、TCP/IPプログラム、DTCP-IPプログラム、DRMプログラムを難読化することで、機密情報が漏洩することを抑止している。難読化とは、プログラムをわざと限りなく複雑にし、ハッキングの前提であるプログラム解析を限りなく複雑にするものである。
しかしながら、上述した従来技術では、効率的かつ安全にセキュリティ方式を切り替えて、機密情報を処理することができないという問題がある。
例えば、従来技術では、各種のプログラムを難読化して、機密情報を漏洩することを抑止しているが、難読化しても十分な時間をかければ解析可能であり、機密情報をのぞき見ることや、改竄することは可能である。
また、従来技術では、基本的に、端末装置30のメインCPU32が、各セキュリティプログラムをそれぞれ読み出して機密情報を処理している。例えば、端末装置30のメインCPU32に対して、外部からの操作等が可能であるため、メインCPU32が不正に操作された場合には、セキュリティプログラムを実行する際に、機密情報が漏洩する場合がある。
また、既存の各セキュリティプロトコルを廃止して、セキュリティ強度の強い新たなプロトコル等を提案することも考えられるが、上述した各種のセキュリティプロトコルは、既に広く利用されているため、新たなプロトコルを導入することは難しい。
1つの側面では、本発明は、効率的かつ安全にセキュリティ方式を切り替えて、機密情報の処理をすることができるセキュリティ装置および制御方法を提供することを目的とする。
第1の案では、セキュア装置は、セキュア領域内にプロセッサとメモリとを有する。メモリは、所定のセキュリティ方式によって外部装置との間でセキュリティ処理を実行する複数種類のプログラムと、セキュリティ処理で用いるセキュリティ情報とを格納する。プロセッサは、複数種類のプログラムのうち第1プログラムを実行して第1外部装置との間で第1セキュリティ処理を実行することで、第1外部装置から機密情報を取得する。プロセッサは、複数種類のプログラムのうち第1プログラムと異なる第2プログラムを実行して第2外部装置との間で第2セキュリティ処理を実行することで、機密情報を、第2外部装置に送信するための機密情報に変換する。
効率的かつ安全にセキュリティ方式を切り替えて、機密情報を処理することができる。
以下に、本願の開示するセキュリティ装置および制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
図1は、本実施例に係るネットワークシステムの一例を示す図である。図1に示すように、このネットワークシステムは、端末装置100a,100b,100c,100d,100e、サーバ200を有する。端末装置100a~100cと、サーバ200とは、インターネット網6を介して相互に接続される。また、サーバ200は、DB200aに接続される。端末装置100a,100d,100eは、ホームネットワーク5を介して相互に接続される。
端末装置100a~100eは、PC(Personal Computer)、携帯電話、スマートフォン、センサ、IoT機器等に対応する。以下の説明では、端末装置100a~100eをまとめて適宜、端末装置100と表記する。端末装置100は、単数または複数のIoT機器110を備える。また、端末装置100は、セキュア領域120を有する。セキュア領域120は、耐タンパー性の領域であり、セキュア領域120に含まれるハードウェアやソフトウェアを覗き見することや、改竄することは困難である。セキュア領域120は、セキュリティ装置に対応する。
端末装置100は、既存のプロトコルスタックに基づいて、サーバ10や他の端末装置との間でデータ通信を実行する場合に、セキュリティに関連する処理のみ、セキュア領域120に含まれるCPUに処理の実行を依頼する。例えば、セキュア領域120に含まれるCPUは、セキュリティCAS層、DTCP-IPセキュリティ層、DRM層、認証層、TLS層で定義されるプロトコルの処理を、セキュア領域120外のCPUと独立して実行する。
サーバ200は、端末装置100から各種の情報を受信して、DB200aに登録する。また、サーバ200は、端末装置100からの要求に応じて、DB200aに格納された情報を、要求元の端末装置100に送信する。本実施例では一例として、サーバ200は、コンテンツ情報を、端末装置100に送信する場合について説明する。
図2は、本実施例に係る端末装置の構成を示す機能ブロック図である。図2に示すように、端末装置100は、セキュア領域120と、メインCPU151と、メインRAM152と、外部不揮発性メモリ153と、通信用ハード154とを有する。各装置120、151,152,153,154は、バス160を介して相互に接続される。
セキュア領域120は、CPU121、秘密検証回路122、Trusted Time回路123、共通暗号回路124、非対称暗号回路125、ハッシュ回路126、乱数生成回路127、不揮発性メモリ128、揮発性メモリ領域129を有する。
CPU121は、不揮発性メモリ128に格納された各種のプログラムを、揮発性メモリ領域129に読み出して、各種の処理を実行する装置である。CPU121は、IF130を介して、メインCPU151からコマンドを受け付け、コマンドに対応するプログラムを実行する。CPU121が、メインCPUから受け付けるコマンドは、管理者によって予め定義されている。CPU121は、定義されていないコマンドを受け付けた場合には、受け付けたコマンドを消去する等の処理を実行することで、定義されていないコマンドを実行しないようにする。CPU121が実行する処理の具体的な説明は後述する。
秘密検証回路122は、予め管理者等により決められた秘密の入力信号を受け付けると、秘密検証回路122を介した情報の入力を許容するインタフェースである。例えば、初期設定時に、秘密検証回路122は、セキュア領域識別番号、マスタ鍵の入力を受け付け、受け付けたセキュア領域識別番号、マスタ鍵の情報を、不揮発性メモリ128に格納する。セキュア領域識別番号は、セキュア領域120を一意に識別する情報であり、唯一無二の番号である。マスタ鍵は、各種の情報を暗号化する場合に用いられる鍵であり、唯一無二の鍵である。
また、秘密検証回路122は、初期設定時に、予め管理者に選定された必要最低限のプログラム群の情報を受け付け、受け付けたプログラム群の情報を、不揮発性メモリ128に格納する。例えば、必要最低限のプログラム群には、ダウンロードルーチン、プログラム蓄積ルーチン、蓄積プログラム管理データ作成ルーチンが含まれる。
ダウンロードルーチンは、工場出荷後に新規のプログラムをダウンロードする手順を定義したプログラムである。プログラム蓄積ルーチンは、外部装置からダウンロードしたプログラムを、不揮発性メモリ128に蓄積する手順を定義したプログラムである。
蓄積プログラム管理データ作成ルーチンは、不揮発性メモリ128に格納された各プログラムやルーチンを読み出す手順を定義したプログラムである。例えば、CPU121は、不揮発性メモリ128に格納されたプログラムが更新される場合や、新たなプログラムを不揮発性メモリ128に格納する場合に、蓄積プログラム管理データ作成ルーチンを読み出し実行し、蓄積プログラム管理データを生成する。CPU121は、蓄積プログラム管理データを、不揮発性メモリ128に格納する。
蓄積プログラム管理データは、不揮発性メモリ128に蓄積されたプログラムやルーチンの名称、版数、プログラム実行時に使用される不揮発性メモリ128の容量、不揮発性メモリ128のデータ領域の場所が記載される。かかるデータ領域には、各種の鍵情報、証明書、各種ログ情報、個人情報、ハッシュ値が記載される。
ここでは、必要最低限のプログラム群を、秘密検証回路122を介して、不揮発性メモリ128に格納する例を示したが、セキュア領域120を製造する過程において、必要最低限のプログラム群を不揮発性メモリ128に、予め格納しておいてもよい。
Trusted Time回路123は、セキュア領域120内で独立して時間を計るタイマである。例えば、Trusted Time回路123は、CPU121からの要求に応じて、時間情報を、CPU121に出力する。Trusted Time回路123は、セキュア領域120に電源が投入された時点で、メインCPU151にアクセスし、時間情報を取得し、Trusted Time回路123の時刻情報を更新する。
共通暗号回路124は、CPU121からの要求に応じて、共通鍵による暗号方式に基づき、情報の暗号化または復号を実行する回路である。共通鍵による暗号方式は、例えば、AES(Advanced Encryption Standard)、DES(Data Encryption Standard)、3-DESなどに対応する。
非対称暗号回路125は、CPU121からの要求に応じて、公開鍵/秘密鍵等による非対称鍵の暗号方式に基づき、情報の暗号化または復号を実行する回路である。非対称鍵の暗号方式は、例えば、RSA(Rivest Shamir Adleman)、楕円暗号などに対応する。
ハッシュ回路126は、CPU121から情報の入力を受け付けた場合に、情報のハッシュ値を計算し、ハッシュ値をCPU121に通知する回路である。
乱数生成回路127は、CPU121からの要求に応じて、乱数を生成する回路である。
不揮発性メモリ128は、セキュア領域識別番号、マスタ鍵、必要最低限のプログラム群を格納する記憶装置である。また、CPU121は、上記のダウンロードルーチンを実行してダウンロードした各種のプログラム群を、プログラム蓄積ルーチンによって、不揮発性メモリ128に蓄積する。
例えば、不揮発性メモリ128に蓄積されるプログラム群には、所定のセキュリティ方式によって外部装置との間でセキュリティ処理を実行する複数種類のセキュリティプログラムが含まれる。外部装置は、インターネット網6を介して端末装置100と接続するサーバ200、ホームネットワーク5を介して端末装置100と接続する他の端末装置100に対応する。所定のセキュリティ方式は、例えば、セキュリティCAS層、DTCP-IPセキュリティ層、DRM層、認証層、TLS層で定義されるプロトコルに基づく方式である。
セキュリティプログラムは、基本的に、外部装置との間で相互認証を行う機能、セッション鍵を生成し外部装置と共有する機能、データを暗号化する機能を有する。
例えば、セキュリティプログラムが、DRM層で定義されるプロトコルに基づくセキュリティ方式の「セキュリティプログラムA」である場合には、下記の機能を有する。セキュリティプログラムAは、公開鍵、秘密鍵のペアを用いて、サーバ200との間で相互認証を行う機能を有する。セキュリティプログラムAは、セッション鍵を生成する機能を有する。セキュリティプログラムAは、コンテンツ鍵Aをサーバ200から受信する機能を有する。例えば、サーバ200から受信するコンテンツ情報は、コンテンツ鍵Aで暗号化されている。
例えば、セキュリティプログラムが、DTCP-IPセキュリティ層で定義されるプロトコルに基づくセキュリティ方式の「セキュリティプログラムB」である場合には、下記の機能を有する。セキュリティプログラムBは、公開鍵、秘密鍵のペアを用いて、ホームネットワーク5に接続された外部装置との間で相互認証を行う機能を有する。セキュリティプログラムBは、乱数発生回路127を利用して、セッション鍵を生成し、外部装置と共有する機能を有する。セキュリティプログラムBは、セッション鍵を用いて、コンテンツ鍵Bを生成する機能を有する。
更に、セキュリティプログラムBは、例えば、他のセキュリティプログラム(セキュリティプログラムA)が使用したコンテンツ鍵Aを用いて、コンテンツ情報を復号する機能を有する。セキュリティプログラムBは、コンテンツ鍵Aを用いて復号したコンテンツ情報を、コンテンツ鍵Bを用いて再度暗号化する機能を有する。
ここでは説明の便宜上、セキュリティプログラムA,Bについて説明したが、不揮発性メモリ128には、他のセキュリティプログラムが蓄積されていても良い。例えば、TLS層、セキュリティCAS層、認証層等で定義されるプロトコルに基づくセキュリティプログラムが、不揮発性メモリ128に蓄積される。
不揮発性メモリ128は、上記のプログラム群の他に、各プログラム群のハッシュ値が、プログラムを識別する情報と対応付けて格納される。ハッシュ値は、ハッシュ回路126によって計算される。
不揮発性メモリ128に格納されたプログラム群の一部は、外部不揮発性メモリ153に格納されていても良い。例えば、CPU121は、不揮発性メモリ128に格納されたプログラム群の一部を、マスタ鍵で暗号化して、メインCPU151に出力し、外部不揮発性メモリ153に格納することを依頼する。CPU121は、外部不揮発性メモリ153のプログラムを利用する場合には、メインCPU151に依頼して、外部不揮発性メモリ153の暗号化されたプログラムを取得し、マスタ鍵で復号する。CPU121は、マスタ鍵で復号したプログラムのハッシュ値が、不揮発性メモリのハッシュ値と一致した場合に、復号したプログラムを実行する。
不揮発性メモリ128は、セキュア領域120の性能情報を格納する。性能情報は、CPU121の処理速度、CPU121の処理ビット数、サポートする暗号方式、乱数生成回路127の有無、ハッシュ回路126の有無、ハッシュ回路126が行うハッシュ演算の種別の情報を含む。性能情報は、セキュア領域120のセキュア度情報、揮発性メモリ領域129のメモリ容量と、揮発性メモリ領域129の未使用容量、外部不揮発性メモリ153の利用可否、セキュア領域120が許容する外部不揮発性メモリ153のメモリ容量の情報を含む。性能情報は、Trusted Time回路123のクロックのサポート可否、セキュア領域120に搭載したOSの種別、セキュア領域120のグレードの情報を含む。
性能情報に含まれるセキュア度情報は、セキュア領域120が論理的および物理的にどの程度セキュアであるかの度合いを示す情報である。例えば、論理的なセキュア度は、CPU121が、メインCPU151等から受け付ける命令の種別等により特定される。例えば、CPU121が受け付ける命令数が多いほど、論理的なセキュア度が低下する。
また、セキュア度として、例えばメインCPU151とCPU121を物理的に同じCPUとし、メインCPUとして動作する場合はノーマルモード、CPU121として動作する場合は、セキュアモードとすることも可能である。CPUがセキュアモードで動作する場合は、セキュアなメモリ領域をふくむ全メモリ領域にアクセス可能とし、CPUがノーマルモードの場合は、セキュアなメモリ領域はアクセス不可能にする。この場合、CPUは物理的に同じであるが、論理的に区別される。物理的に違うCPUの方が当然セキュア度は向上する。セキュア度は、このように物理的に違うCPUか単に論理的に違うCPUかで規定することも可能である。既存のCPUで、このようなアーキテクチャーを採用しているのは、ARMプロセッサなどである。ARMプロセッサは、ノーマルモードとトラステッドモードがあり、トラステッドモードの時は、全メモリ空間をアクセス可能であるが、ノーマルモードの時にアクセス出来るメモリ空間は制限される。ARMプロセッサはモードを切り替えつつ動作する。
物理的なセキュア度は、電磁波解析、電力解析攻撃に関する実験を行い、特定される。例えば、セキュア領域120を製造する工場の管理者が、論理的なセキュア度、物理的なセキュア度考慮して、セキュア領域120に設定するセキュア度情報を生成し、不揮発性メモリ128に格納する。
また、管理者は、性能情報に含まれるグレード以外の要素を基にして、セキュア領域120のグレードを判断し、不揮発性メモリ128に格納しても良い。
揮発性メモリ領域129は、CPU121が、不揮発性メモリ128に格納されたプログラムを読み出して実行する領域である。また、CPU121が処理を行う場合に用いる情報を、一時的に格納する領域である。
IF130は、セキュア領域120内のCPU121と、セキュア領域120外のメインCPU151との間で授受される情報を中継するインタフェースである。
メインCPU151は、メインRAM152に格納されたプログラムを実行して、各種の情報を実行する処理部である。例えば、メインCPU151は、Ethernet層、IP層、TCP/UDP層、HTTP層のプロトコルに基づいて、インターネット網6を介したサーバ10との接続、ホームネットワーク5を介した他の端末装置100との接続を行う。
メインCPU151は、セキュリティCAS層、DTCP-IPセキュリティ層、DRM層、認証層、TLS層のプロトコルに基づく処理を、セキュア領域120内のCPU121に依頼する。メインCPU151は、CPU121が、インターネット網6を介してサーバ10とやり取りする暗号情報を中継する。メインCPU151は、CPU121が、ホームネットワーク5を介して他の端末装置100とやり取りする暗号情報を中継する。
メインCPU151は、セキュア領域120内のCPU121から外部不揮発性メモリ153に格納された情報の読み出し要求を受け付けた場合には、対象となる情報を、外部不揮発性メモリ153から読み出し、読み出した情報をCPU121に出力する。
メインRAM152は、例えば、Ethernet処理プログラム、IP処理プログラム、TCP/UDP処理プログラム、HTTP処理プログラムを格納する。Ethernet処理プログラムは、Ethernet層のプロトコルにより動作するプログラムである。IP処理プログラムは、IP層のプロトコルにより動作するプログラムである。TCP/UDP処理プログラムは、TCP層またはUDP層のプロトコルにより動作するプログラムである。HTTP処理プログラムは、HTTP層のプロトコルにより動作するプログラムである。
外部不揮発性メモリ153には、例えば、不揮発性メモリ128のプログラム群の一部が、暗号化された状態で格納されている。また、Ethernet処理プログラム、IP処理プログラム、TCP/UDP処理プログラム、HTTP処理プログラムを格納していても良い。
通信用ハード154は、ホームネットワーク5、インターネット網6を介して外部装置からデータを受信し、受信した情報をメインCPU151に出力する。通信用ハード154は、メインCPU151から送信依頼を受け付けたデータを、ホームネットワーク5、インターネット網6を介して外部装置に出力する。また、通信用ハード154は、放送網を介して図示を省略する放送局から情報を受信し、受信した情報を、メインCPU151に出力する。
続いて、セキュア領域120に電源が投入された場合に、CPU121が実行する処理の一例について説明する。一例として、不揮発性メモリ128には、管理データ呼び出しルーチン、プログラム選択&起動ルーチン、プログラム停止ルーチン、セキュア領域用外部コミュニケーションルーチンが格納されているものとする。CPU121は、上記のダウンロードルーチン、プログラム蓄積ルーチン等を実行し、上記プログラムを、不揮発性メモリ128に格納しておく。
セキュア領域120に電源が投入されると、CPU121は、不揮発性メモリ128から管理データ呼び出しルーチンを起動し、セキュア領域120が管理するプログラムやルーチン群に関連するデータを、不揮発性メモリ128から読み出す。例えば、CPU121は、プログラム選択&起動ルーチンを起動し、読み出したデータを基にして、所定のプログラムやルーチンを選択し、選択したプログラムやルーチンを起動する。
CPU121は、プログラムが使用されてないことを検出すると、プログラム停止ルーチンを起動し、使用されなくなったプログラムを停止する。CPU121は、使用されなくなったプログラムが使用していた揮発性メモリ領域129を解放する。
CPU121が起動するプログラムの中には、セキュア領域120外のメインCPU151と連携するものが存在する。例えば、セキュア領域用外部コミュニケーションルーチンは、メインCPU151と連携するプログラムである。CPU121は、セキュア領域用外部コミュニケーションルーチンを起動して、メインCPU151との間で情報を授受する。なお、CPU121に情報漏洩等の不正な処理を実行させることを抑止するために、セキュア領域用外部コミュニケーションルーチンは、メインCPU151から受け付けるコマンドの種別を予め定義しておく。
例えば、CPU121がプログラム蓄積ルーチンを起動して、外部不揮発性メモリ153にプログラムやデータを蓄積する場合には、セキュア領域用外部コミュニケーションルーチンに従い、メインCPU151にプログラムやデータの蓄積を依頼する。CPU121が、セキュア領域120内のその他のプログラムを起動して、メインCPU151に各種の依頼を行う場合にも、セキュア領域用外部コミュニケーションルーチンに従う。
また、セキュア領域用外部コミュニケーションルーチンは、CPU121がメインCPU151から命令を受け付けた場合の手順も定義する。例えば、CPU121がメインCPU151から受け付ける命令は、特定のプログラムのダウンロード命令、セキュア領域識別番号の呼び出し命令、セキュア領域120の性能情報の読み出し命令などが含まれる。
続いて、端末装置100が、セキュア領域120を用いて、コンテンツ情報をサーバ200から受信する処理、および、セキュア領域120を用いて、コンテンツ情報を、ホームネットワーク5に接続されたHDDに蓄積する処理の一例について説明する。
端末装置100は、ユーザから特定のコンテンツを視聴する旨のコマンドを受け付けると、メインCPU151は、インターネット網6を介して、サーバ200と接続する。例えば、メインCPU151が、サーバ200と接続する場合には、下記の処理を実行する。メインCPU151は、TCPパケットを生成し、TCPパケットをIPパケットに埋め込み、IPパケットをEthernetパケットに埋め込む。メインCPU151は、TCPプログラム、IPプログラム、Ethernetプログラムを実行して、サーバ200と接続する。
メインCPU151は、サーバ200との接続が完了すると、セキュア領域120にDRM層に対応する処理の依頼を要求する。セキュア領域120のCPU121は、DRM層に対応する処理の依頼を受け付けると、不揮発性メモリ128から、セキュリティプログラムAを読み出し起動する。
セキュリティプログラムAを起動したCPU121は、下記のDRM処理を行う。図3は、セキュア領域のCPUが実行するDRM処理の一例を示すフローチャートである。図3に示すように、セキュア領域120のCPU121は、セキュリティプログラムAで利用する情報を取得する(ステップS10)。例えば、セキュリティプログラムAで利用する情報は、DRMID、DRM証明書、セキュア領域120の公開鍵/秘密鍵、サーバ200の公開鍵、サーバ200で動作するDRMのDRMID等が含まれる。
CPU121は、サーバ200との間で公開鍵・秘密鍵アルゴリズムを利用した相互認証を実行する(ステップS11)。例えば、CPU121は、相互認証を実行する際に、乱数生成回路127を用いて乱数を発生させる。CPU121は、乱数、DRMID、公開鍵/秘密鍵ペアを利用して、サーバ200と認証を開始する。サーバ200は、サーバ200の乱数、DRMID、公開鍵/秘密鍵ペアを利用して応答する。
CPU121は、サーバ200との相互認証に成功したか否かを判定する(ステップS12)。CPU121は、サーバ200との相互認証に失敗した場合には(ステップS12,No)、処理を終了する。例えば、CPU121は、エラーをメインCPU151に出力する。
CPU121は、サーバ200との相互認証に成功した場合には(ステップS12,Yes)、ステップS13に移行する。CPU121は、乱数生成回路127を利用してセッション鍵を生成し、セッション鍵をサーバ200との間で共有する(ステップS13)。
CPU121は、サーバ200からセッション鍵で暗号化されたコンテンツ鍵Aを取得し、セッション鍵で復号することで、コンテンツ鍵Aを取得する(ステップS14)。
CPU121は、メインCPU151に対して、コンテンツ鍵Aを取得した旨を通知する(ステップS15)。メインCPU151は、コンテンツ鍵Aを取得した旨の通知を受けると、サーバ200に対してコンテンツ情報の伝送を依頼する。サーバ200は、コンテンツの伝送の依頼を受け付けると、コンテンツ情報をコンテンツ鍵Aで暗号化して、端末装置100に送信する。例えば、コンテンツ情報は、RTP(Real-time Transport Protocol)パケットの中にMPEG圧縮されて、端末装置100に伝送される。メインCPU151は、暗号化されたコンテンツ情報をCPU121に出力する。
CPU121は、暗号化されたコンテンツ情報を取得し、コンテンツ鍵Aで復号する(ステップS16)。なお、ステップS16において、CPU121は、コンテンツ鍵Aの情報を、メインCPU151に通知して、暗号化されたコンテンツ情報の復号を、メインCPU151に依頼しても良い。
上記のように、セキュア領域120のCPU121は、図3に示したDRM処理を実行することで、サーバ200との相互認証、セッション鍵の生成及び共有、コンテンツ鍵Aの取得、コンテンツ情報の復号を実行する。
続いて、セキュア領域120のCPU121は、図3のDRM処理を実行した後に、不揮発性メモリ128から、セキュリティプログラムBを読み出し起動する。セキュリティプログラムBを起動したCPU121は、下記のDTCP-IP処理を実行する。
図4は、セキュア領域のCPUが実行するDTCP-IP処理の一例を示すフローチャートである。図4では一例として、端末装置100が、ホームネットワーク5に接続されたHDDに、サーバ200から受信したコンテンツ情報を蓄積する場合について説明する。例えば、HDDを、図10に示したHDD40とする。
図4に示すように、セキュア領域120のCPU121は、HDD40との間で公開鍵・秘密鍵アルゴリズムを利用した相互認証を実行する(ステップS20)。
CPU121は、HDD40との相互認証に成功したか否かを判定する(ステップS21)。CPU121は、HDD40との相互認証に失敗した場合には(ステップS21,No)、処理を終了する。例えば、CPU121は、エラーをメインCPU151に出力する。
CPU121は、HDD40との相互認証に成功した場合には(ステップS21,Yes)、ステップS22に移行する。CPU121は、乱数生成回路127を利用してセッション鍵を生成し、セッション鍵をHDD40との間で共有する(ステップS22)。
CPU121は、セッション鍵を利用してコンテンツ鍵Bを生成し、コンテンツ鍵Bを暗号化する(ステップS23)。CPU121は、暗号化したコンテンツ鍵BをHDDに送信することをメインCPU151に依頼する(ステップS24)。
CPU121は、DRM処理によりコンテンツ鍵Aで復号したコンテンツ情報を、コンテンツ鍵Bによって暗号化し、暗号化したコンテンツ情報をHDD40に送信することをメインCPU151に依頼する(ステップS25)。なお、ステップS26において、CPU121は、コンテンツ鍵Bの情報を、メインCPU151に通知して、コンテンツ情報の暗号化を、メインCPU151に依頼しても良い。メインCPU151は、コンテンツ鍵を基にして、コンテンツ情報を暗号化し、暗号化したコンテンツ情報をHDDに伝送する。
次に、セキュア領域120に新たなプログラムをダウンロードする場合の処理について説明する。新規にダウンロードするプログラムは、例えば、上述したセキュリティプログラムA、セキュリティプログラムBに対応する。以下では、一例として、セキュリティプログラムAをダウンロードする場合の処理について説明する。
セキュア領域120のCPU121は、メインCPU151からセキュリティプログラムAのダウンロード命令を受け付ける。CPU121は、不揮発性メモリ128に格納された管理データ読み出しルーチンによって、ダウンロードルーチンがあることを確認する。CPU121は、プログラムコードや関連情報の場所を確認する。CPU121は、プログラム蓄積ルーチンによって、ダウンロードルーチンを、揮発性メモリ領域129に読み出す。CPU121は、ダウンロードルーチンを揮発性メモリ領域129に読み出した場合に、ダウンロードルーチンのハッシュ値を計算し、予め算出しておいたハッシュ値と比較することで、ダウンロードルーチンが改竄されているか否かを確認する。ダウンロードルーチンが改竄されている場合には、ダウンロードを中断する。
CPU121は、ダウンロードルーチンが改竄されていない場合には、ダウンロードルーチンを起動し、関連情報を使って、サーバ200と接続する。関連情報は、ダウンロードプログラム用の識別番号、公開鍵/秘密鍵ペア、サーバ200の公開鍵、サーバ200のURL(Uniform Resource Locator)が含まれる。なお、CPU121は、メインCPU151を介して、サーバ200と接続する。メインCPU151は、既存のEthernet層、IP層、TCP層のプロトコルに従って、サーバ200と接続する。
ダウンロードルーチンを起動中のCPU121は、サーバ200と接続すると、サーバ200との間で、互いの公開鍵、秘密鍵ペアで相互認証を行う。CPU121は、乱数生成回路127で乱数を生成してセッション鍵を生成し、サーバ200との間で共有する。また、CPU121は、サーバ200からセッション鍵で暗号化されたコンテンツ鍵を受信し、セッション鍵を使用して、コンテンツ鍵を取得する。
ダウンロードルーチンを起動中のCPU121は、サーバ200から、コンテンツ鍵で暗号化されたセキュリティプログラムAと、セキュリティプログラムAの関連情報を取得する。CPU121は、暗号化された情報をコンテンツ鍵によって復号する。CPU121は、プログラム蓄積ルーチンを起動して、復号したセキュリティプログラムAと関連情報を、不揮発性メモリ128に蓄積する。CPU121は、セキュリティプログラムAおよび関連情報のハッシュ値を計算し、セキュリティプログラムAと対応付けて、不揮発性メモリ128に格納する。CPU121は、セキュリティプログラムAの版数、動作に必要な揮発性メモリ領域129の容量、不揮発性メモリ128のデータ領域の場所を、蓄積プログラム管理データに記載する。
ダウンロードルーチンを起動中のCPU121は、ダウンロードが終了すると、メインCPU151に対して、ダウンロードの終了報告を行う。メインCPU151は、終了報告を受け付けると、CPU121に対して、ダウンロードルーチンの停止命令を出力する。CPU121は、停止命令を受け付けると、ダウンロードルーチンを停止し、停止報告を、メインCPU151に出力する。
ところで、ダウンロードルーチンを起動中のCPU121が、サーバ200から性能情報の要求を受け付けた場合には、コンテンツ鍵によって性能情報を暗号化し、暗号化した性能情報を、サーバ200に通知する。例えば、サーバ200は、セキュリティプログラムAを実行可能な基準性能情報を有している。サーバ200は、性能情報と基準性能情報とを比較して、セキュア領域120の性能情報が基準性能情報を上回っている場合に、セキュリティプログラムAをコンテンツ鍵で暗号化し、暗号化したコンテンツ情報をCPU121に伝送する。これに対して、サーバ200は、セキュア領域120の性能情報が基準性能情報を上回っていない場合には、セキュリティプログラムAを実行する性能がない旨の情報を、CPU121に通知する。CPU121は、セキュリティプログラムAを実行する性能がない旨の情報を受信した場合には、メインCPU151に対して、ダウンロードに失敗した旨の情報を通知する。
ここで、サーバ200は、基準性能情報の異なる複数のセキュリティプログラムA1、A2、A3を有し、セキュア領域120の性能情報で実行可能なセキュリティプログラムを選択し、選択したセキュリティプログラムを伝送しても良い。例えば、セキュア領域120の性能情報が、セキュリティプログラムA1の基準性能情報を、上回っているとする。この場合には、サーバ200は、セキュリティプログラムA1を、コンテンツ鍵で暗号化して、CPU121に伝送する。
次に、本実施例に係るセキュア領域120がコンテンツ視聴要求を受け付けた場合の処理手順について説明する。図5は、セキュア領域がコンテンツ視聴要求を受け付けた場合の処理手順を示すフローチャートである。
図5に示すように、セキュア領域120のCPU121は、メインCPU151からコンテンツ情報の視聴要求を受け付ける(ステップS30)。CPU121は、メインCPU151を介して、サーバ200との接続を確立する(ステップS31)。
CPU121は、セキュリティプログラムA(DRMプログラム)を読み出して実行する(ステップS32)。CPU121は、DRM処理を実行する(ステップS33)。ステップS33に示すDRM処理は、図3に示した処理に対応する。
CPU121は、暗号化されたコンテンツ情報を、コンテンツ鍵Aを用いて復号し、コンテンツ情報を取得する(ステップS34)。なお、ステップS34の処理は、CPU121の代わりに、メインCPU151が実行しても良い。メインCPU151が実行する場合には、メインCPU151は、コンテンツ鍵AをCPU121から取得し、コンテンツ鍵Aを用いて、サーバ200により暗号化されたコンテンツ情報を復号する。
CPU121は、プログラムB(DTCP-IPプログラム)を読み出して実行する(ステップS35)。CPU121は、DTCP-IP処理を実行する(ステップS36)。ステップS36に示すDTCP-IP処理は、図4に示した処理に対応する。
CPU121は、コンテンツ鍵Aで復号したコンテンツ情報を、コンテンツ鍵Bによって再暗号化してHDDに送信する(ステップS37)。なお、ステップS37の処理は、CPU121の代わりに、メインCPU151が実行しても良い。メインCPU151が実行する場合には、メインCPU151は、コンテンツ鍵BをCPU121から取得し、コンテンツ鍵Bを用いて、コンテンツ情報を暗号化する。
続いて、セキュア領域120のCPU121が性能情報の要求を受け付ける場合の処理手順の一例について説明する。図6は、性能情報の要求を受け付けた場合の処理手順を示すフローチャートである。図6に示すように、CPU121は、管理データ呼び出しルーチンを実行し、各種のプログラムを読み出す(ステップS41)。
CPU121は、外部コミュニケーションルーチンを実行する(ステップS42)。CPU121は、性能情報の呼び出し命令を受け付けたか否かを判定する(ステップS43)。CPU121は、性能情報の読み出し命令を受け付けていない場合には(ステップS43,No)、処理を終了する。
一方、CPU121は、性能情報の読み出し命令を受け付けた場合には(ステップS43,Yes)、共通鍵を用いて、性能情報を暗号化する(ステップS44)。例えば、CPU121は、セキュリティプログラムAによって、サーバ200とコンテンツ鍵を共有しており、サーバ200から、性能情報を要求されている場合には、コンテンツ鍵A(共通鍵)によって、性能情報を暗号化する。CPU121は、暗号化した性能情報を出力する(ステップS45)。
ところで、上記の説明では、セキュア領域120のCPU121が、セキュリティプログラムAを実行する際に、「公開鍵/秘密鍵」による相互認証、一時鍵(コンテンツ鍵)の共有、データの暗号化を行う場合について説明した。しかし、同様の処理を、「共通鍵」を用いて実行することもできる。この場合には、セキュア領域120と、サーバ200とが共通鍵を共有していることが前提となる。
セキュア領域120のCPU121が、サーバ200との間で共通鍵を用いて行う相互認証について説明する。まず、CPU121が、サーバ200を認証する処理について説明する。CPU121は、乱数生成回路127を用いて、乱数を生成し、生成した乱数、セキュア領域識別番号、サーバ200の識別番号を、共通鍵で暗号化して、サーバ200に送信する。
サーバ200は、CPU121から受信した暗号化された情報を共通鍵で復号する。サーバ200は、セキュア領域120およびサーバ200のみが知る秘密の演算を乱数に施す。サーバ200は、秘密の演算を施した乱数、セキュア領域識別番号、サーバ200の識別番号を、共通鍵で暗号化して、CPU121に送信する。
CPU121は、サーバ200から受信した暗号化された情報を共通鍵で復号する。CPU121は、秘密の演算がなされた乱数が、正当な乱数であると判定した場合に、サーバ200を認証する。
続いて、サーバ200が、CPU121を認証する処理について説明する。サーバ200は、サーバ200の乱数生成回路を用いて、乱数を生成し、生成した乱数、セキュア領域識別番号、サーバ200の識別番号を、共通鍵で暗号化して、セキュア領域120に送信する。
CPU121は、サーバ200から受信した暗号化された情報を共通鍵で復号する。CPU121は、セキュア領域120およびサーバ200のみが知る秘密の演算を乱数に施す。CPU121は、秘密の演算を施した乱数、セキュア領域識別番号、サーバ200の識別番号を、共通鍵で暗号化して、サーバ200に送信する。
サーバ200は、セキュア領域120から受信した暗号化された情報を共通鍵で復号する。サーバ200は、秘密の演算がなされた乱数が、正当な乱数であると判定した場合に、セキュア領域120を認証する。
次に、セキュア領域120のCPU121が、サーバ200との間で一時鍵を共有する処理について説明する。CPU121およびサーバ200は、相互認証に成功した後に、乱数生成した一時鍵を、秘密の共有鍵で暗号化し、サーバ200に伝送する。サーバ200は、暗号化された一時鍵を、秘密の共有鍵で復号する。かかる処理を実行することで、一時鍵を、CPU121とサーバ200との間で共有することができる。例えば、サーバ200は、一時鍵を用いて、コンテンツ情報を暗号化して、セキュア領域120に送信する。セキュア領域120のCPU121は、暗号化されたコンテンツ情報を一時鍵で復号する。
次に、本実施例に係るセキュア領域120の効果について説明する。改竄や覗き見が困難なセキュア領域120にCPU121および不揮発性メモリ128を有し、不揮発性メモリ128に、セキュリティ方式の異なる複数のプログラムを蓄積する。CPU121は、不揮発性メモリ128に蓄積されたセキュリティプログラムを実行し、あるセキュリティプログラムで得た機密情報を、他のセキュリティプログラムにより引き継いで処理を行う。これにより、効率的かつ安全にセキュリティ方式を切り替えて、機密情報を処理することができる。
例えば、セキュア領域120のCPU121はセキュリティプログラムAを実行して、サーバ200から暗号化されたコンテンツ情報(機密情報に相当)をセキュアに受信し、コンテンツ鍵Aを用いて、コンテンツ情報を復号する。CPU121は、セキュリティプログラムBを実行して、コンテンツ鍵Bによってコンテンツ情報を暗号化し、HDDに伝送する。このため、機密情報の処理は、セキュア領域120の内部で実施され、外部に出力される機密情報は、暗号化された状態となるため、機密情報の内容が外部に漏れることなく、機密情報を処理することができる。
また、セキュア領域120は、複数のセキュリティプログラムを有しており、CPU121は、メインCPU151からセキュリティプログラムの選択を受け付け、選択されたセキュリティプログラムを実行する。このため、メインCPU151は、接続先の外部装置に合わせたセキュリティ処理を、セキュア領域120に委託することができる。また、各セキュリティプログラムは、既存のセキュリティCAS層、DTCP-IPセキュリティ層、DRM層、認証層、TLS層で定義されるプロトコルに基づく方式であるため、既存のIoT機器に特別なプログラムやハードウェアを設置しなくても、機密情報をセキュアに処理することができる。
また、セキュア領域120は、不揮発性メモリ128に性能情報を格納し、各種のプログラムをダウンロードする場合や更新する場合に、サーバ200等の外部装置からの要求に応じて、性能情報をサーバ200に通知する。サーバ200は、性能情報を基にして、ダウンロード対象となるプログラムに見合った性能情報である場合に、プログラムをセキュア領域120に送信する。このため、セキュア領域120は、性能に見合ったプログラムをダウンロードでき、プログラムを適切に実行することができる。
100a,100b,100c,100d,100e 端末装置
120 セキュア領域
121 CPU
122 秘密検証回路
123 Trusted time回路
124 共通暗号回路
125 非対称暗号回路
126 ハッシュ回路
127 乱数生成回路
128 不揮発性メモリ
129 揮発性メモリ領域
151 メインCPU
152 メインRAM
153 外部不揮発性メモリ
154 通信用ハード
200 サーバ
120 セキュア領域
121 CPU
122 秘密検証回路
123 Trusted time回路
124 共通暗号回路
125 非対称暗号回路
126 ハッシュ回路
127 乱数生成回路
128 不揮発性メモリ
129 揮発性メモリ領域
151 メインCPU
152 メインRAM
153 外部不揮発性メモリ
154 通信用ハード
200 サーバ
Claims (8)
- セキュア領域内にプロセッサとメモリとを有し、
前記メモリは、所定のセキュリティ方式によって外部装置との間でセキュリティ処理を実行する複数種類のプログラムと、前記セキュリティ処理で用いるセキュリティ情報とを格納し、
前記プロセッサは、前記複数種類のプログラムのうち第1プログラムを実行して第1外部装置との間で第1セキュリティ処理を実行することで、前記第1外部装置から機密情報を取得し、
前記プロセッサは、前記複数種類のプログラムのうち前記第1プログラムと異なる第2プログラムを実行して第2外部装置との間で第2セキュリティ処理を実行することで、前記機密情報を、前記第2外部装置に送信するための機密情報に変換する
ことを特徴とするセキュリティ装置。 - 前記メモリは、前記セキュリティ装置が論理的および物理的にどの程度セキュアであるかの度合いを示すセキュア度の情報を格納し、
前記プロセッサは、前記セキュア度の情報に対する要求を受け付けた場合に、前記セキュア度の情報を外部装置に出力することを特徴とする請求項1に記載のセキュリティ装置。 - 前記セキュリティ情報は、前記外部装置との間で相互認証を実行する場合に使用する情報であり、前記セキュリティ処理は、前記外部装置と前記セキュリティ装置との相互認証処理と、セッション鍵を生成する処理と、前記機密情報を復号および暗号化するコンテンツ鍵を生成する処理を含むことを特徴とする請求項1に記載のセキュリティ装置。
- 前記セキュア領域の外部に外部メモリを有し、
前記メモリは、ユニークなマスタ鍵を格納し、
前記プロセッサは、前記マスタ鍵を用いて、前記複数種類のプログラムの一部または全部を暗号化し、暗号化したプログラムを前記外部メモリに格納することを特徴とする請求項1に記載のセキュリティ装置。 - 前記メモリは、前記プロセッサおよび前記メモリの性能に関する情報を格納し、
前記プロセッサは、前記性能に関する問い合わせを受け付けた場合に、前記性能に関する情報を暗号化して出力することを特徴とする請求項1に記載のセキュリティ装置。 - セキュア領域内にプロセッサとメモリとを有し、
前記メモリは、所定の処理を実行する複数種類のプログラムと、前記セキュア領域を有するセキュリティ装置が論理的および物理的にどの程度セキュアであるかの度合いを示すセキュア度の情報を格納し、
前記プロセッサは、外部装置から前記セキュア度の情報の要求を受け付けた場合に、前記セキュア度の情報を外部装置に出力する
ことを特徴とするセキュリティ装置。 - コンピュータが実行する制御方法であって、
前記コンピュータは、セキュア領域内にプロセッサとメモリとを有し、
前記メモリは、所定のセキュリティ方式によって外部装置との間でセキュリティ処理を実行する複数種類のプログラムと、前記セキュリティ処理で用いるセキュリティ情報とを格納し、
前記プロセッサは、前記複数種類のプログラムのうち第1プログラムを実行して第1外部装置との間で第1セキュリティ処理を実行することで、前記第1外部装置から機密情報を取得し、
前記プロセッサは、前記複数種類のプログラムのうち前記第1プログラムと異なる第2プログラムを実行して第2外部装置との間で第2セキュリティ処理を実行することで、前記機密情報を、前記第2外部装置に送信するための機密情報に変換する
処理を実行することを特徴とする制御方法。 - コンピュータが実行する制御方法であって、
セキュア領域内にプロセッサとメモリとを有し、
前記メモリは、所定の処理を実行する複数種類のプログラムと、前記セキュア領域を有するセキュリティ装置が論理的および物理的にどの程度セキュアであるかの度合いを示すセキュア度の情報を格納し、
前記プロセッサは、外部装置から前記セキュア度の情報の要求を受け付けた場合に、前記セキュア度の情報を外部装置に出力する
処理を実行することを特徴とする制御方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2016/051188 WO2017122361A1 (ja) | 2016-01-15 | 2016-01-15 | セキュリティ装置および制御方法 |
JP2017561495A JP6589996B2 (ja) | 2016-01-15 | 2016-01-15 | セキュリティ装置および制御方法 |
US16/029,800 US20180316497A1 (en) | 2016-01-15 | 2018-07-09 | Security apparatus and control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2016/051188 WO2017122361A1 (ja) | 2016-01-15 | 2016-01-15 | セキュリティ装置および制御方法 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/029,800 Continuation US20180316497A1 (en) | 2016-01-15 | 2018-07-09 | Security apparatus and control method |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2017122361A1 true WO2017122361A1 (ja) | 2017-07-20 |
Family
ID=59311358
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2016/051188 WO2017122361A1 (ja) | 2016-01-15 | 2016-01-15 | セキュリティ装置および制御方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20180316497A1 (ja) |
JP (1) | JP6589996B2 (ja) |
WO (1) | WO2017122361A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019036191A (ja) * | 2017-08-18 | 2019-03-07 | ヤフー株式会社 | 判定装置、判定方法及び判定プログラム |
JP7519122B2 (ja) | 2021-09-29 | 2024-07-19 | 株式会社ユニオンプレイス | ネットワーク内の装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109803223A (zh) * | 2018-12-26 | 2019-05-24 | 航天信息股份有限公司 | 物联网通信模组及物联网终端 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001175606A (ja) * | 1999-12-20 | 2001-06-29 | Sony Corp | データ処理装置、データ処理機器およびその方法 |
JP2008140105A (ja) * | 2006-12-01 | 2008-06-19 | Seiko Epson Corp | 出力管理システム及びその出力制御方法、並びにセキュリティ管理機能付き出力装置 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NL9401262A (nl) * | 1994-08-01 | 1996-03-01 | Sony Telecom Europ Nv | Systeem voor telecommunicatie. |
US7809138B2 (en) * | 1999-03-16 | 2010-10-05 | Intertrust Technologies Corporation | Methods and apparatus for persistent control and protection of content |
CA2385097A1 (en) * | 1999-09-21 | 2001-03-29 | Discovery Communications, Inc. | Electronic book security and copyright protection system |
JP2004015665A (ja) * | 2002-06-10 | 2004-01-15 | Takeshi Sakamura | 電子チケット流通システムにおける認証方法およびicカード |
EP1387238B1 (en) * | 2002-07-30 | 2011-06-15 | Fujitsu Limited | Method and apparatus for reproducing information using a security module |
JP4525350B2 (ja) * | 2003-01-15 | 2010-08-18 | ソニー株式会社 | 信号処理システム |
US7549044B2 (en) * | 2003-10-28 | 2009-06-16 | Dphi Acquisitions, Inc. | Block-level storage device with content security |
US8402109B2 (en) * | 2005-02-15 | 2013-03-19 | Gytheion Networks Llc | Wireless router remote firmware upgrade |
CN101102180B (zh) * | 2006-07-03 | 2010-08-25 | 联想(北京)有限公司 | 基于硬件安全单元的系统间绑定及平台完整性验证方法 |
US8732854B2 (en) * | 2006-11-01 | 2014-05-20 | Time Warner Cable Enterprises Llc | Methods and apparatus for premises content distribution |
US8761402B2 (en) * | 2007-09-28 | 2014-06-24 | Sandisk Technologies Inc. | System and methods for digital content distribution |
US7827326B2 (en) * | 2007-11-26 | 2010-11-02 | Alcatel-Lucent Usa Inc. | Method and apparatus for delegation of secure operating mode access privilege from processor to peripheral |
JP2009258860A (ja) * | 2008-04-14 | 2009-11-05 | Sony Corp | 情報処理装置および方法、記録媒体、プログラム、並びに情報処理システム |
US8583937B2 (en) * | 2010-12-16 | 2013-11-12 | Blackberry Limited | Method and apparatus for securing a computing device |
US8625788B2 (en) * | 2011-01-05 | 2014-01-07 | Intel Corporation | Method and apparatus for building a hardware root of trust and providing protected content processing within an open computing platform |
CN103975332B (zh) * | 2011-12-08 | 2018-08-14 | 英特尔公司 | 用于使用基于硬件的信任根以对等方式进行基于策略的内容共享的方法和装置 |
EP2791856A4 (en) * | 2011-12-15 | 2015-08-19 | Intel Corp | METHOD, DEVICE AND SYSTEM FOR SECURELY SHARING MULTIMEDIA CONTENT FROM SOURCE DEVICE |
DE102012107456A1 (de) * | 2012-08-14 | 2014-02-20 | Limo Patentverwaltung Gmbh & Co. Kg | Anordnung zur Formung von Laserstrahlung |
JPWO2014049830A1 (ja) * | 2012-09-28 | 2016-08-22 | 富士通株式会社 | 情報処理装置および半導体装置 |
US9465711B2 (en) * | 2014-01-31 | 2016-10-11 | Verizon Patent And Licensing Inc. | Providing power utilization information for operational states of an application across different operating systems |
EP3089091B1 (en) * | 2014-05-02 | 2020-03-11 | Barclays Execution Services Limited | Transaction authentication |
US10333901B1 (en) * | 2014-09-10 | 2019-06-25 | Amazon Technologies, Inc. | Policy based data aggregation |
US10181038B2 (en) * | 2015-11-17 | 2019-01-15 | Honeywell International Inc. | Deployment assurance checks for monitoring industrial control systems |
US10536441B2 (en) * | 2016-08-23 | 2020-01-14 | Texas Instruments Incorporated | Thread ownership of keys for hardware-accelerated cryptography |
-
2016
- 2016-01-15 JP JP2017561495A patent/JP6589996B2/ja not_active Expired - Fee Related
- 2016-01-15 WO PCT/JP2016/051188 patent/WO2017122361A1/ja active Application Filing
-
2018
- 2018-07-09 US US16/029,800 patent/US20180316497A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001175606A (ja) * | 1999-12-20 | 2001-06-29 | Sony Corp | データ処理装置、データ処理機器およびその方法 |
JP2008140105A (ja) * | 2006-12-01 | 2008-06-19 | Seiko Epson Corp | 出力管理システム及びその出力制御方法、並びにセキュリティ管理機能付き出力装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019036191A (ja) * | 2017-08-18 | 2019-03-07 | ヤフー株式会社 | 判定装置、判定方法及び判定プログラム |
JP7519122B2 (ja) | 2021-09-29 | 2024-07-19 | 株式会社ユニオンプレイス | ネットワーク内の装置 |
US12069035B2 (en) | 2021-09-29 | 2024-08-20 | Unionplace Co., Ltd. | Device in network |
Also Published As
Publication number | Publication date |
---|---|
JPWO2017122361A1 (ja) | 2018-10-18 |
JP6589996B2 (ja) | 2019-10-16 |
US20180316497A1 (en) | 2018-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI620087B (zh) | 驗證伺服器、驗證方法及其電腦程式產品 | |
US8307214B2 (en) | Method for restricting access to media data generated by a camera | |
KR101366243B1 (ko) | 인증을 통한 데이터 전송 방법 및 그 장치 | |
US11432039B2 (en) | Systems and methods for data processing, storage, and retrieval from a server | |
KR101317496B1 (ko) | 전송 데이터를 보호하기 위한 방법 및 이 방법을 구현하기 위한 보안 시스템 | |
CA2373059C (en) | Secure control of security mode | |
US20060137015A1 (en) | System and method for secure conditional access download and reconfiguration | |
US20080267399A1 (en) | Method and Apparatus for Secure Content Recording | |
CN103595721A (zh) | 网盘文件安全共享方法、共享装置及共享系统 | |
KR20150012882A (ko) | 감시 서버, 감시 서버의 데이터 처리 방법, 및 감시 시스템 | |
KR101837188B1 (ko) | 비디오 보호 시스템 | |
US11853465B2 (en) | Securing data stored in a memory of an IoT device during a low power mode | |
JP6589996B2 (ja) | セキュリティ装置および制御方法 | |
KR101810904B1 (ko) | 비디오 보호 시스템 | |
US7886160B2 (en) | Information processing apparatus and method, and computer program | |
CN111602380A (zh) | 标识用户终端以接收流式受保护多媒体内容的方法和系统 | |
TW201737149A (zh) | 透過行動裝置所執行的授權碼認證方法及相關的電腦程式產品 | |
JP6527115B2 (ja) | 機器リスト作成システムおよび機器リスト作成方法 | |
KR101701625B1 (ko) | 암호화된 컨텐츠의 복호화 키를 안전하게 획득하여 컨텐츠를 재생하기 위한 방법 및 시스템 | |
JP2007034903A (ja) | 情報処理装置及び情報処理方法、並びにコンピュータ・プログラム | |
CN112187777A (zh) | 智慧交通传感数据加密方法、装置、计算机设备及存储介质 | |
CN110476432A (zh) | 监视媒体的保护 | |
Gehrmann | ONVIF security recommendations | |
JP2019154007A (ja) | データ処理システム、および暗号鍵共有方法 |
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: 16884964 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2017561495 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 16884964 Country of ref document: EP Kind code of ref document: A1 |