WO2014034216A1 - 記録媒体、プログラム、及び、情報配信装置 - Google Patents

記録媒体、プログラム、及び、情報配信装置 Download PDF

Info

Publication number
WO2014034216A1
WO2014034216A1 PCT/JP2013/065771 JP2013065771W WO2014034216A1 WO 2014034216 A1 WO2014034216 A1 WO 2014034216A1 JP 2013065771 W JP2013065771 W JP 2013065771W WO 2014034216 A1 WO2014034216 A1 WO 2014034216A1
Authority
WO
WIPO (PCT)
Prior art keywords
key
key information
information
application
server
Prior art date
Application number
PCT/JP2013/065771
Other languages
English (en)
French (fr)
Inventor
裕紀 山▲崎▼
相川 慎
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Publication of WO2014034216A1 publication Critical patent/WO2014034216A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules

Definitions

  • the present invention relates to a recording medium, a program, and an information distribution apparatus.
  • HDD 21 stores programs and data necessary for executing the programs.
  • CPU 11 controls the storage or reading of programs and data in HDD 21.
  • CPU 11 supplied the programs from adapter 26.
  • the CPU 11 encrypts the data with the second key supplied from the adapter 26 (see the summary).
  • the present invention provides a technique for suitably protecting information that should not be leaked to the outside.
  • the present application includes a plurality of means for solving the above-described problem.
  • a recording medium that can be connected to an information processing apparatus, and a communication unit that communicates with the connected information processing apparatus; A recording unit that records key information; and a control unit, wherein the control unit generates first key information and second key information that is a pair of the first key information to generate the recording unit.
  • the third key encrypted on the basis of the first key information in the external device, transmitted to the external device via the information processing device
  • Information and fourth key information are received via the information processing device, and the received third key information and fourth key information are decrypted using the second key information, and decrypted.
  • a control for executing a predetermined program is performed. To do "that characterized.
  • FIG. 1 is a diagram illustrating an example of a key distribution system.
  • the information terminal 1, the service server 3, the card application server 4, and the key distribution server 5 are connected to each other by communication. Further, the information terminal 1 is connected to the secret information storage device 2 by communication.
  • Each server in FIG. 1, the information terminal 1, and the secret information storage device 2 may be connected by a route not shown in FIG.
  • the service server 3, the card application server 4, the key distribution server 5, and the like may be simply referred to as servers when collectively referred to without distinction.
  • the information terminal 1 is a terminal having a display unit capable of displaying information, an input unit capable of inputting information, a communication unit capable of communicating with other devices and devices, a control unit capable of calculating information, and the like. It plays a role of mediating exchange of information between the secret information storage device 2 and the server.
  • the key distribution system may include a plurality of information terminals 1.
  • the information terminal 1 may be a smartphone, a tablet terminal, a personal computer, a thin client terminal, or the like, but is not limited thereto.
  • the secret information storage device 2 includes, for example, a secure semiconductor element having a tamper-resistant mechanism, a communication unit capable of communicating with other devices and devices, a control unit capable of calculating information, and capable of high-speed encryption processing. It has a cryptographic operation unit and the like, and exchanges information with the server and other terminals via the information terminal 1.
  • the secret information storage device 2 may be a SIM card type IC card, a microSD type IC card, an embedded chip type IC card, a non-contact type or a contact type IC card, but is not limited thereto.
  • the key distribution system may include a plurality of secret information storage devices 2, and one information terminal 1 may communicate with a plurality of secret information storage devices 2.
  • the service server 3 is a server that communicates with other servers and the information terminal 1 through a network or the like.
  • the service server 3 is a server operated by a provider that provides services such as electronic payment, for example.
  • the service server 3 authenticates predetermined secret information such as a secret key stored in the secret information storage device 2, thereby A service is provided to a user having the terminal 1 and the secret information storage device 2. Therefore, it is conceivable that the service server 3 has a configuration for authenticating the secret information of the secret information storage device 2, a configuration for managing and authenticating user customers, a configuration for executing services, and the like.
  • the card application server 4 is a server that communicates with other servers and the information terminal 1 through a network or the like.
  • the card application server 4 is a server that holds an application running on the secret information storage device 2.
  • the card application server 4 manages information such as an authentication key necessary for operating the secret information storage device 2 with administrator authority. By authenticating the secret information storage device 2 with administrator authority, various operations such as newly installing an application in the secret information storage device 2 can be performed.
  • the card application server 4 may be a server operated by, for example, a mobile network operator or a third party organization called TSM (Trusted Service Manager).
  • the card application server 4 holds application data deposited from the service provider, information on the user who owns the secret information storage device 2, and the like, and upon receipt of a request from the information terminal 1 or the like, a predetermined authentication command or installation command is received. It may be possible to have a configuration that can be generated.
  • the key distribution server 5 is a server that communicates with other servers and the information terminal 1 through a network or the like.
  • the key distribution server 5 is a server for safely distributing a key used by an application or the like operating on the secret information storage device 2 to the secret information storage device 2.
  • the key distribution server 5 distributes a secret key or the like managed by the service server 3 to an application or the like via a key distribution application arranged in the secret information storage device 2. In this delivery process, not only the outsider must know the secret key but also the manager of the card application server 4 and the key delivery server 5 that are third parties for the service provider and the user. It is necessary not to be known.
  • the key distribution server 5 has a configuration for managing a secret key for performing secure communication with a key distribution application, a configuration for executing PKI (Public Key Infrastructure) using public key cryptography, and the like. Can be considered.
  • PKI Public Key Infrastructure
  • Communication between servers and between the server and the information terminal 1 is, for example, a wired LAN (Local Area Network), wireless LAN, WAN (Wide Area Network), LTE (Long Term Evolution), HSPA (High) using the Internet protocol or the like. It may be a communication network such as Speed Packet Access) or WiMAX (Worldwide Interoperability for Microwave Access).
  • FIG. 2 is a diagram showing an example of the functional configuration of the information terminal 1 and the secret information case device 2.
  • the information terminal 1 includes a storage unit 11, a control unit 12, a power supply unit 13, a communication unit 14, a display unit 15, an input unit 16, and a network communication unit 17, which are connected by a bus line or the like.
  • each module is shown as physically connected to another module inside the information terminal 1, but it is not necessarily connected by a bus line. They may be connected to each other, or only necessary modules may be connected to each other.
  • the storage unit 11 is, for example, a memory built in the information terminal 1 or a removable external memory, and stores various types of information. For example, an operation control program executed by the control unit 12 is stored.
  • the storage unit 11 includes control software 111, which will be described later.
  • the control unit 12 is, for example, a CPU (Central Processing Unit), an MPU (Micro Processing Unit), or a DSP (Digital Signal Processor), and performs the operation of the entire information terminal 1 by executing a predetermined operation control program. To control.
  • a CPU Central Processing Unit
  • MPU Micro Processing Unit
  • DSP Digital Signal Processor
  • the power supply unit 13 is, for example, a battery, an AC adapter, a charging circuit, or the like, and supplies power to each unit of the information terminal 1 or charges the battery. It is also conceivable to check whether the information terminal 1 is battery-driven or AC adapter-driven, or check the remaining battery level. Although not shown in FIG. 2, it may also play a role of supplying power as an external power source of the secret information storage device 2.
  • the communication unit 14 is a component for the information terminal 1 to communicate with the secret information storage device 2.
  • ISO 7816 which is an international standard communication system for contact IC cards
  • ISO 14443 which is an international standard communication system for contactless IC cards.
  • FeliCa registered trademark
  • NFC Near Field Communication
  • Bluetooth registered trademark
  • USB Universal Serial Bus
  • wired LAN wireless LAN
  • TransferJET registered trademark
  • the communication unit 14 may be the same module as the network communication unit 17 described later depending on circumstances.
  • the secret information storage device 2 is an embedded module of the information terminal 1, it may be connected on the base.
  • a plurality of communication units 14 may exist in the information terminal 1 according to the communication method and the number of secret information storage devices 2.
  • the display unit 15 is, for example, a liquid crystal display, an organic EL (Electro-Luminescence) display, or a panel such as electronic paper, a driver circuit, and the like. Under the control of the control unit 12, any information (for example, characters, still images) , And video).
  • the display unit 15 may include a plurality of panels that can display different information.
  • the input unit 16 includes one or more of, for example, a keyboard, a mouse, a cursor key, and a numeric keypad, receives a user operation, and inputs an input signal based on the operation to the control unit 12.
  • an input signal may be generated by voice recognition, image recognition, gesture recognition, or the like and input to the control unit 12.
  • the display unit 15 and the input unit 16 may be integrated as in a touch panel.
  • the network communication unit 17 is a configuration unit for the information terminal 1 to communicate with the server, and performs network communication such as wired LAN, wireless LAN, WAN, LTE, HSPA, or WiMAX using the Internet protocol, for example.
  • a module can be considered.
  • a plurality of network communication units 17 may exist in the information terminal 1 according to the communication method or the like.
  • the communication functions such as the communication unit 14 and the network communication unit 17 may include an antenna and a modem circuit in the case of wireless communication.
  • a connector, a modulation / demodulation circuit, and the like may be included.
  • the communication unit 14 and the network communication unit 17 may be configured to correspond to a plurality of communication methods.
  • the secret information storage device 2 includes a storage unit 21, a control unit 22, a power supply unit 23, a communication unit 24, and an encryption processing unit 25, which are connected by a bus line or the like.
  • each module is shown as physically connected to another module inside the secret information storage device 2, but it is not necessarily connected by a bus line. It may be electrically connected to each other, or only necessary modules may be connected to each other.
  • the storage unit 21 includes a semiconductor memory or the like built in the secret information storage device 2 and stores various types of information.
  • the storage unit 21 is, for example, an EEPROM, a RAM, or a flash memory.
  • the storage unit 21 stores an operation control program executed by the control unit 22. The components included in the storage unit 21 will be described later.
  • the control unit 22 is a CPU, MPU, DSP, or the like, and controls the operation of the entire secret information storage device 2 by executing a predetermined operation control program.
  • the power supply unit 23 is a power supply terminal or an antenna that acquires power from the outside, a power supply circuit, or the like, and supplies power to each unit of the secret information storage device 2.
  • a battery, an AC adapter, a charging circuit, and the like may be provided.
  • the secret information storage device 2 may be supplied with power from the information terminal 1 by the power supply unit 23.
  • the communication unit 24 is a configuration unit for the secret information storage device 2 to communicate with the information terminal 1.
  • ISO 7816 which is an international standard communication method for contact IC cards
  • ISO 14443 which is an international standard communication method for contactless IC cards.
  • FeliCa NFC
  • a module that realizes communication methods such as communication according to the SD card standard, Bluetooth, USB, wired LAN, wireless LAN, TransferJET, and the like.
  • the secret information storage device 2 is an embedded module of the information terminal 1
  • the communication unit 24 may be connected to the information terminal 1 on the base.
  • a plurality of communication units 24 may exist in the secret information storage device 2 according to the communication method.
  • the communication function of the communication unit 24 may include an antenna, a modulation / demodulation circuit, and the like in the case of wireless communication. In the case of wired communication, a connector, a modulation / demodulation circuit, and the like may be included.
  • the communication unit 24 may be configured to support a plurality of communication methods.
  • the cryptographic processing unit 25 is, for example, a modular multiplication coprocessor or a cryptographic accelerator, and executes public key cryptographic processing such as RSA cryptography and elliptic curve cryptography, and common key cryptographic processing such as AES and DES at a higher speed than that performed by the control unit. It is the component for doing.
  • a plurality of encryption processing units 25 may exist in the secret information storage device 2 according to the encryption to be processed.
  • the storage unit 11 of the information terminal 1 has control software 111.
  • the control software 111 is a software that provides a user interface that triggers a series of flows by a user operation, or that triggers communication with the server or the secret information storage device 2, and is executed by the control unit 12. Is done.
  • the server starts processing in response to a request from the control software 111 and returns the processing result to the control software 111.
  • the secret information storage device 2 starts processing in response to a request from the control software 111 and returns the processing result to the control software 111.
  • the control software 111 triggers the processing of the entire system, but does not necessarily play the main role of the algorithm.
  • the control software 111 plays a role of fetching a command, and the subject of a series of flows and algorithms may be in the server or the secret information storage device 2. Note that the operation of the server and the secret information storage device 2 is not only triggered by the control software 111, but may be triggered by another device, server, or software.
  • the control software 111 may be a composite software in which a plurality of software is linked. It should be noted that when the control software 111 is described so as to execute processing without particular notice in the following embodiment, the control unit 12 physically executes the processing in accordance with the description of the program of the control software 111. It shall be shown.
  • control software 111 includes service server information 1111, card application server information 1112, key distribution server information 1113, and terminal ID 1114.
  • service server information 1111 card application server information 1112
  • key distribution server information 1113 key distribution server information 1114
  • terminal ID 1114 terminal ID
  • Service server information 1111 is information used by the control software 111 to connect to the service server 3 as necessary, and includes the URL and IP address of the service server 3.
  • the card application server information 1112 is information used by the control software 111 to connect to the card application server 4 as necessary, and includes the URL and IP address of the card application server 4.
  • the key distribution server information 1113 is information used by the control software 111 to connect to the key distribution server 5 as necessary, and includes the URL and IP address of the key distribution server 5.
  • the service server information 1111, the card application server information 1112, and the key distribution server information 1113 may be previously written in the storage unit 11 together with the control software 111, or the control software 111 itself is acquired from a network or the like and stored in the storage unit 11. You may write according to writing. Alternatively, these pieces of information may be stored in another medium and read by the control software 111 as appropriate and written in the storage unit 11.
  • the other medium may be, for example, an external memory, any server, another server whose connection destination is known, or the secret information storage device 2. .
  • the terminal ID 1114 includes ID information for the server to identify the information terminal 1.
  • the terminal ID 1114 may be written in advance in the storage unit 11 together with the control software 111, or may be written in accordance with when the control software 111 itself is acquired from the network or the like and written in the storage unit 11.
  • the control software 111 may read the information unique from the device of the information terminal 1 or the secret information storage device 2 or unique to the extent, and write it in the storage unit 11.
  • a sufficiently large random number or the like may be generated by the information terminal 1 and used as the terminal ID 1114.
  • the terminal ID 1114 does not necessarily have to be stored by writing in the storage unit 11, and the control software 111 may be acquired through an API (Application Program Interface) or the like whenever necessary.
  • API Application Program Interface
  • control software 111 may have information other than the above.
  • the program ID is, for example, an AID (Application ID) conforming to ISO 7816, which is a standard for IC cards.
  • the storage unit 21 of the secret information storage device 2 includes, for example, management software 210, service application management software 211, and a key distribution application 212.
  • management software 210 the service application management software 211 starts processing from a state where the service application management software 211 does not exist in the storage unit 21 yet.
  • the management software 210, the service application management software 211, the key distribution application 212, and the service application 2111 described later execute processing without particular notice, these programs are physically It is assumed that the control unit 22 executes the process according to the description.
  • the management software 210 is software that can operate the secret information storage device 2 with administrator authority, and is executed by the control unit 22.
  • the management software 210 operates in response to a request received from the communication unit 24.
  • the management software 210 has a management software key 2101.
  • the management software key 2101 is described as being provided inside the management software 210 for convenience, but physically, this is data written in a certain area of the storage unit 21, It is assumed that the management software 210 can refer to it. However, other than the management software 210, the management software key 2101 cannot be referred to.
  • the management software key 2101 is, for example, a common key type or public key type encryption key.
  • the management software 210 can exercise the administrator authority in response to the request. With the administrator authority, the management software 210 can newly create the service application management software 211, set an encryption communication key in the service application management software 211, and load and install the service application.
  • the management software 210 for example, ISD (Issor Security Domain) or AMSD (Authorized Management Security Domain) conforming to the JavaCard specification can be considered.
  • the service application management software 211 is software that manages a service application and an encryption communication key used by the service application, and is executed by the control unit 22.
  • the service application management software 211 can logically arrange an application and a key used by the application for encryption communication under the service application management software 211, and has jurisdiction over the security of the service application under the service application management software 211.
  • an SSD Simple Security Domain
  • the service application management software 211 for example, an SSD (Supplementary Security Domain) conforming to the JavaCard specification can be considered.
  • the service application management software 211 includes a service application 2111 and an encryption communication key storage area 2113.
  • the service application 2111 and the encryption communication key storage area 2113 are described as being provided in the service application management software 211 for convenience in FIG. 2, but are physically written in an area in the storage unit 21. Data or area itself.
  • the service application 2111 has an application key storage area 2112.
  • the application key storage area 2112 is described as being provided inside the service application 2111 for the sake of convenience. However, the application key storage area 2112 is physically an area in the storage unit 21, and only the service application 2111 stores this. It can be referred to.
  • the service application 2111 is an application for realizing a service provided by a service provider that operates the service server 3, and is a program such as a payment application, a point application, a traffic fee payment application, or a PKI authentication application.
  • a JavaCard application conforming to the JavaCard specification can be considered.
  • Application key storage area 2112 is an area for storing an authentication key for the service application 2111 to execute processing related to the service.
  • the service provider can provide a predetermined service to the user by successfully authenticating with the authentication key, and the user can enjoy the service.
  • the encryption communication key storage area 2113 is an area for storing an authentication key used when the service application management software 211 or the service application 2111 establishes an encryption communication path with the service server 3 and performs communication.
  • the service application management software 211 can accept a request for authentication from the communication unit 24 using a key stored in the encryption communication key storage area 2113. If the authentication is successful, a request to rewrite the key stored in the encryption communication key storage area 2113 can be accepted.
  • the key distribution application 212 is software for safely receiving and temporarily holding a secret key or the like used by the service application 2111 or the service application management software 211 from the key distribution server 5, and is executed by the control unit 22.
  • the key distribution application 212 includes logic for generating a request for safely setting the temporarily stored secret key or the like in the service application management software 211 or the service application 2111.
  • the service application management software 211 can rewrite the key value by receiving a request to authenticate with the key stored in the encryption communication key storage area 2113. There is a logic that can generate this request internally using the key value.
  • a JavaCard application conforming to the JavaCard specification can be considered.
  • the key distribution application 212 includes a key distribution master key 2121, an application key storage area 2122, an encryption communication key storage area 2123, an encryption communication temporary key storage area 2124, a key distribution public key storage area 2125, and a key distribution secret key. And a storage area 2126.
  • the key distribution application 212 is described so as to include these, but is physically data or an area itself written in an area of the storage unit 21, and only the key distribution application 212 stores these. It can be referred to.
  • the key distribution master key 2121 is a key for authenticating with the key distribution server 5. In actual authentication processing and construction of an encrypted communication path, a derived key derived by a predetermined algorithm may be used instead of the key distribution master key 2121 itself.
  • the key distribution master key 2121 may be, for example, a common key method or a public key method encryption key.
  • the key distribution application 212 can temporarily store the key distributed in response to the request.
  • the application key storage area 2122 is an area for temporarily storing a secret key used by the service application 2111.
  • the key temporarily held in the application key storage area 2122 is safely delivered to the key delivery application 212 by a flow described later, and is further securely set in the application key storage area 2112.
  • the application key storage area 2122 is desirably deleted when an error occurs in a series of processing flows to be described later or when the power supply by the power supply unit 23 is cut off. It is desirable to arrange.
  • the encryption communication key storage area 2123 is an area for temporarily storing an encryption communication key used by the service application 2111 or the like.
  • the key temporarily held in the encryption communication key storage area 2123 is safely delivered to the key distribution application 212 by a flow to be described later, and further securely set in the encryption communication key storage area 2113.
  • the encryption communication key storage area 2123 is desirably erased when an error occurs in a series of processing flows described later or when power supply by the power supply unit 23 is cut off. It is desirable to arrange in.
  • the encryption communication temporary key storage area 2124 is an area for temporarily holding the temporary key of the encryption communication key.
  • the key temporarily held in the encryption communication temporary key storage area 2124 is securely delivered to the key distribution application 212 by a flow described later. Further, authentication between the key distribution application 212 and the service application management software 211 is performed using the temporary key. By doing so, a key can be set from the key distribution application 212 under the service application management software 211.
  • the content of the encryption communication temporary key storage area 2124 is desirably erased when an error occurs in a series of processing flows to be described later or when the power supply by the power supply unit 23 is cut off. It is desirable to arrange in RAM.
  • the key distribution public key storage area 2125 and the key distribution secret key storage area 2126 are areas for storing key pairs based on the public key cryptosystem, and the public key of the key pair is stored in the key distribution public key storage area 2125.
  • the key is stored in the key distribution secret key storage area 2126.
  • the key distribution public key storage area 2125 and the key distribution secret key storage area 2126 may be able to store a certificate or the like given by a predetermined means.
  • the key pair stored in these is used to securely deliver the key to the key delivery application 212 from the outside.
  • the key pairs stored in these are generated inside the secret information storage device 2, and in particular, there is no means for outputting the secret key stored in the key distribution secret key storage area 2126 to the outside of the secret information storage device 2. Is. Therefore, the key distribution application 212 has a program capable of generating a key pair based on the public key cryptosystem, and the program generates a key pair using the cryptographic processing unit 25, for example.
  • FIG. 3 is a diagram illustrating an example of key information stored in the storage area of the storage unit 21 of the secret information storage device 2.
  • the key information shown here is temporarily or permanently stored in various storage areas according to a flow to be described later.
  • Application key 2114 is stored in application key storage area 2112.
  • the application key 2114 may be an authentication key for the service application 2111 to execute a service.
  • the service provider can provide a predetermined service to the user when the authentication with the application key 2114 is successful, and the user can enjoy the service. Therefore, setting the application key 2114 in the service application 2111 safely without being known to a third party is the basis of the security of the service provided by the service provider.
  • the application key 2114 may be, for example, a common key method or a public key method encryption key. Because of the role of the application key 2114, the application key storage area 2112 is preferably arranged in a nonvolatile memory such as an EEPROM or a flash.
  • the encryption communication key 2115 or the encryption communication temporary key 2116 is stored in the encryption communication key storage area 2113.
  • the encryption communication key 2115 is a key used when, for example, the service application management software 211 or the service application 2111 establishes an encryption communication path with the service server 3 and performs communication.
  • the encryption communication key 2115 can be used to establish encryption communication without being separated.
  • the encryption communication temporary key 2116 is a key temporarily stored until the encryption communication key 2115 is stored in the encryption communication key storage area 2113, and is given from the card application server 4.
  • the encryption communication key storage area 2113 in which the encryption communication temporary key 2116 is stored is obtained when the authentication with the administrator authority by the management software key 2101 is successful or the authentication by the encryption communication temporary key 2116 itself is successful.
  • a request to rewrite the contents can be accepted. For example, in the flow to be described later, a request to rewrite itself to the encryption communication key 2115 is accepted when the authentication with the encryption communication temporary key 2116 succeeds.
  • the encryption communication key 2115 and the encryption communication temporary key 2116 may be, for example, a common key method or a public key method encryption key. Because of the roles of the encryption communication key 2115 and the encryption communication temporary key 2116, the encryption communication key storage area 2113 is preferably arranged in a nonvolatile memory such as an EEPROM or a flash.
  • the application key storage area 2122 temporarily stores the application key 2114 described above.
  • the application key 2114 is securely delivered to the key delivery application 212 by a flow to be described later, and is further safely set in the application key storage area 2112 by the subsequent flow.
  • the above-described encryption communication key 2115 is temporarily stored.
  • the encrypted communication key 2115 is securely delivered to the key distribution application 212 by a flow described later, and is further securely set in the encrypted communication key storage area 2113 by the subsequent flow.
  • the above-described encryption communication temporary key 2116 is temporarily stored.
  • the cryptographic communication temporary key 2116 is securely delivered to the key distribution application 212 by a flow to be described later, and further, authentication is performed between the key distribution application 212 and the service application management software 211 by using the cryptographic communication temporary key 2116, so that the key It becomes possible to set the encryption communication key 2115 and the application key 2114 under the service application management software 211 from the delivery application 212.
  • a key distribution public key 2127 and a key distribution secret key 2128 which are key pairs based on the public key cryptosystem, are stored.
  • the key delivery public key 2127 and the key delivery private key 2128 may be stored together with a certificate or the like given by a predetermined means.
  • the key delivery public key 2127 and the key delivery secret key 2128 are used to securely deliver the application key 2114, the encryption communication key 2115, and the like from the outside to the key delivery application 212.
  • the pair of the key distribution public key 2127 and the key distribution secret key 2128 is generated inside the secret information storage device 2, and in particular, the key distribution secret key 2128 does not have means for outputting to the outside of the secret information storage device 2.
  • the key distribution public key 2127 and the key distribution secret key 2128 that have been generated once may be reused for a plurality of key distributions.
  • the key distribution public key storage area 2125 and the key distribution secret key storage area 2126 are arranged in a nonvolatile memory such as an EEPROM or a flash.
  • FIG. 4 is a diagram showing an example of a key held by the server.
  • FIG. 4 shows the minimum configuration of the service server 3, the card application server 4, and the key distribution server 5, and the keys held by each.
  • the service server 3 includes at least a storage unit 31, a control unit 32, and a network communication unit 37, which are electrically connected to each other.
  • the storage unit 31 is, for example, a nonvolatile or volatile semiconductor memory or a hard disk, and stores programs executed by the control unit 32, data used by the programs, and the like. Alternatively, when storing sensitive information, an HSM (Hardware Security Module) equipped with a tamper resistant mechanism or the like may be used.
  • the control unit 32 is a CPU, GPU, or the like, and controls the entire service server 3.
  • the network communication unit 37 is a component for communicating with other servers and the information terminal 1, and for performing network communication such as wired LAN, wireless LAN, WAN, HSPA, or WiMAX using the Internet protocol, for example. Module.
  • the storage unit 31, the control unit 32, and the network communication unit 37 may exist in the service server 3 as necessary, so that the processing speed and redundancy may be increased.
  • the storage unit 31 includes a service application 2111, an encryption communication key 2115, and an application key 2114. Each explanation is omitted because it has been described above.
  • the encryption communication key 2115 and the application key 2114 may be generated by the service server 3 by a predetermined method. Although not shown in FIG. 4, each may be associated with information for specifying a user or information for specifying the secret information storage device 2 in a database or the like.
  • the card application server 4 includes at least a storage unit 41, a control unit 42, and a network communication unit 47, which are electrically connected to each other.
  • the storage unit 41 is, for example, a nonvolatile or volatile semiconductor memory or a hard disk, and stores a program executed by the control unit 42, data used by the program, and the like. Alternatively, when sensitive information is stored, an HSM having a tamper resistant mechanism or the like may be used.
  • the control unit 42 is a CPU, a GPU, or the like, and controls the entire card application server 4.
  • the network communication unit 47 is a component for communicating with other servers and information terminals 1 and for performing network communication such as wired LAN, wireless LAN, WAN, HSPA, or WiMAX using the Internet protocol, for example. Module.
  • the storage unit 41, the control unit 42, and the network communication unit 47 may exist in the card application server 4 as necessary, so that the processing speed and redundancy may be increased.
  • the storage unit 41 has a management software key 2101 and an encryption communication temporary key 2116. Each explanation is omitted because it has been described above.
  • the management software key 2101 and the encryption communication temporary key 2116 may be generated by the card application server 4 by a predetermined method.
  • the encryption communication temporary key 2116 may be generated by the service server 3 in some cases and notified to the card application server 4.
  • each may be linked
  • the key distribution server 5 includes at least a storage unit 51, a control unit 52, and a network communication unit 57, which are electrically connected to each other.
  • the storage unit 51 is a nonvolatile or volatile semiconductor memory, a hard disk, or the like, and stores a program executed by the control unit 52, data used by the program, and the like. Alternatively, when sensitive information is stored, an HSM having a tamper resistant mechanism or the like may be used.
  • the control unit 52 is a CPU, GPU, or the like, and controls the entire key distribution server 5.
  • the network communication unit 57 is a component for communicating with other servers and the information terminal 1, and for performing network communication such as wired LAN, wireless LAN, WAN, HSPA, or WiMAX using the Internet protocol, for example. Module.
  • the storage unit 51, the control unit 52, and the network communication unit 57 may exist in the key distribution server 5 as necessary, so that the processing speed and redundancy may be increased.
  • the storage unit 51 has a key distribution master key 2121.
  • the description of the key distribution master key 2121 has been described above, and will be omitted.
  • the key distribution master key 2121 may be generated by the key distribution server 5 by a predetermined method. Although not shown in FIG. 4, the key distribution master key 2121 may be associated with information for specifying a user or information for specifying the secret information storage device 2 in a database or the like.
  • FIGS. 5 to 8 are diagrams showing an example of processing of the key distribution system. Although FIGS. 5 to 8 are divided and described, they are a series of flows. As an example of the flow, the management software 210, the management software key 2101, the key distribution application 212, and the key distribution master key 2121 are stored in the storage unit 21 of the secret information storage device 2, and various storage areas of the key distribution application 212 are empty. Start from the state. In addition, the service application management software 211 and the components under the service application management software 211 are created or activated in the flow. However, the state at the start of the flow is not necessarily limited to the above contents.
  • the key delivery application 212 may start from a state in which the key delivery public key 2127 and the key delivery secret key 2128 already exist, or the service application management software 211 and the service application 2111 exist in advance, but the application key 2114 or You may start from the state where the encryption communication key 2115 has not been set yet. In such a case, steps that are unnecessary because they have been performed in advance can be omitted in the flow.
  • the service application management software 211 is created, the service application 2111 is installed, and the encryption communication temporary key 2116 is set.
  • the service server 3 passes the service application 2111 to be distributed to the secret information storage device 2 to the card application server 4 in advance (S101).
  • the method of passing the service application 2111 may be performed by encrypted communication such as SSL communication or encrypted mail between servers, or a method other than the network such as transfer by a physical medium may be used.
  • S101 is preferably executed before the service provider starts providing a service using the service application 2111.
  • the creation process of the key distribution system and the service application management software 211 that precedes the key distribution system starts when the user expresses the intention to use the service through the control software 111 (S102). Subsequently, the control software 111 notifies the card application server 4 of the start of processing such as installation by notifying the card application server 4 of the terminal ID 1114 (S103). Subsequently, the card application server 4 performs user authentication through the control software 111 (S104). As a means for user authentication, for example, password verification can be considered. This is performed to prevent unauthorized users from enjoying the service illegally. In FIG. 5, the card application server 4 performs user authentication for convenience, but user authentication may be performed by another server. It is sufficient if user information can be associated between servers.
  • the card application server 4 notifies the service server 3 of necessary information about the user in order to cooperate with the service server 3 (S105).
  • the service server 3 can know the start of processing such as installation. It is desirable that communication between the card application server 4 and the service server 3 is performed securely by SSL or the like.
  • the control software 111 then enters a process of relaying between the secret information storage device 2 and the card application server 4 (S106).
  • the command generated by the card application server 4 is acquired from the network communication unit 17, the command is sent from the communication unit 14 to the secret information storage device 2, and the response obtained from the secret information storage device 2 is obtained as a result.
  • This is a process of notifying the card application server 4 via the network communication unit 17.
  • the card application server 4 can send a command corresponding to the step to the secret information storage device 2 and acquire the response by this relay process. it can.
  • the control software 111 may receive the plurality of commands collectively and sequentially send them to the secret information storage device 2. It can be considered that a plurality of results obtained from the secret information storage device 2 are collectively returned to the card application server 4. At this time, when a response indicating an error state is acquired from the secret information storage device 2 in the process of sequentially sending commands to the secret information storage device 2, the remaining command transmission is interrupted, and the result is sent to the card application server 4 at that stage. May be notified.
  • the card application server 4 performs mutual authentication with the management software 210 and the management software key 2101 (S107, S108). If mutual authentication is successful, an encryption communication path is constructed based on the management software key 2101. As the encryption key at this time, a key derived from the management software key 2101 may be used. Subsequently, the card application server 4 sends a command for instructing creation of the service application management software 211 to the management software 210 through the encrypted communication path (S109). Receiving this, the management software 210 creates service application management software 211 including the encrypted communication path storage area 2113 in the storage unit 21 (S110). The process may be a process of downloading the program of the service application management software 211 to the storage unit 21, or may be a process of storing the program in the storage unit 21 in advance and activating the program in S110.
  • the card application server 4 sends a command instructing the setting of the encryption communication temporary key 2116 to the management software 210 (S111).
  • the encryption communication temporary key 2116 may be included in the content of the command, for example, or the encryption communication temporary key 2116 having the same value may be shared in advance.
  • the management software 210 sets the encryption communication temporary key 2116 in the encryption communication key storage area 2113 (S112).
  • the card application server 4 sends a command for instructing installation of the service application 2111 to the management software 210 (S113).
  • the management software 210 installs the service application 2111 including the application key management area 2112 in the storage unit 21 (S114).
  • the process may be a process of downloading the program of the service application 2111 to the storage unit 21, or may be a process of storing the program in the storage unit 21 in advance and activating the program in S114.
  • the card application server 4 notifies the service server 3 of the encryption communication temporary key 2116 (S115). It is desirable that communication between the card application server 4 and the service server 3 is performed securely by SSL or the like. S115 is not necessarily executed after S113 or S114, and may be performed in advance. If the encryption communication temporary key 2116 has a value given in advance from the service server 3, it is not necessary to notify the encryption communication temporary key 2116 in S115, but it is desirable to notify that the installation is completed.
  • FIG. 6 following the flow of FIG. 5, generation of a key pair for performing key distribution by the key distribution system inside the secret information storage device 2 and notification of the generated public key to the service server 3 are performed.
  • the service server 3 sends the user information received in S105 to the key distribution server 5 at an appropriate timing (S201). It may be triggered by the notification in S115 or may be before that. It is desirable that communication between the service server 3 and the key distribution server 5 is performed securely using SSL or the like.
  • the method of sharing user information between servers shown in the flow such as S201 is an example. User authentication may be performed for each server, or information that has been user-authenticated by somewhere in the server may be shared in a reliable manner.
  • the control software 111 notifies the key distribution server 5 of the start of processing such as key distribution by notifying the key distribution server 5 of the terminal ID 1114 (S202).
  • the control software 111 enters a process of relaying between the secret information storage device 2 and the key distribution server 5 as in S106 (S203).
  • the command generated by the key distribution server 5 is acquired from the network communication unit 17, the command is sent from the communication unit 14 to the secret information storage device 2, and as a result, the response obtained from the secret information storage device 2 is received.
  • the key distribution server 5 is notified via the network communication unit 17.
  • the key distribution server 5 can send a command corresponding to the step to the secret information storage device 2 and obtain the response by this relay processing. . If a plurality of commands generated by the key distribution server 5 are collected, the control software 111 may receive the plurality of commands collectively and sequentially send them to the secret information storage device 2. It can be considered that a plurality of results obtained from the secret information storage device 2 are collectively returned to the key distribution server 5. At this time, when a response indicating an error state is acquired from the secret information storage device 2 in the process of sequentially sending commands to the secret information storage device 2, the remaining command transmission is interrupted and the result is sent to the key distribution server 5 at that stage. May be notified.
  • the key distribution server 5 performs mutual authentication with the key distribution application 212 and the key distribution master key 2121 (S204, S205). If mutual authentication is successful, an encrypted communication path may be constructed based on the key distribution master key 2121. As the encryption key at this time, a key derived from the key distribution master key 2121 may be used.
  • the key distribution server 5 sends a command for instructing to generate a key pair for key distribution inside the secret information storage device 2 to the key distribution application 212 (S206).
  • the key distribution application 212 Upon receiving the command, the key distribution application 212 generates a key pair of the key distribution public key 2127 and the key distribution private key 2128 by the encryption processing unit 25 and stores the key distribution public key 2127 in the key distribution public key storage area 2125.
  • the key delivery secret key 2128 is stored in the key delivery secret key storage area 2126 (S207). If processing time is required to generate a key pair, the key pair may be generated in advance.
  • the key distribution server 5 sends a command for reading the key distribution public key 2127 to the key distribution application 212 (S208), and the key distribution application 212 sends out the key distribution public key 2127 accordingly (S209).
  • the key distribution server 5 that has received the key distribution public key 2127 gives a public key certificate by a predetermined method as necessary (S210).
  • the public key certificate to be given to the key distribution public key 2127 is trusted by the service server 3 verifying the public key certificate, such as signing with a private key trusted by the service server 3. Be able to do that.
  • the created public key certificate may be sent to the key distribution application 212 as necessary and stored in the secret information storage device 2.
  • the key distribution server 5 notifies the service server 3 of the key distribution public key 2127 and the public key certificate (S211).
  • the key possessed by the service server 3 is encrypted with the public key and sent to the secret information storage device 2.
  • the service server 3 verifies the public key certificate of the key distribution public key 2127 (S301). If the key distribution public key 2127 is reliable, the encryption communication key 2115, the encryption communication temporary key 2116, and the application key 2114 are encrypted with the key distribution public key 2127 (S302). Subsequently, the encrypted keys are sent to the key distribution server 5 (S303).
  • the control software 111 relays the secret information storage device 2 and the key distribution server 5 as in S203 (S304). S203 and S304 may be subsequent processing.
  • the control software 111 has polled the key distribution server 5 in order to obtain the command relating to the subsequent S305, or the encrypted keys have been prepared by push-type communication from the key distribution server 5. Can know.
  • the key distribution server 5 generates a command for sending the encrypted keys to the key distribution application 212, sends the command to the key distribution application 212, and instructs decryption (S305).
  • the key distribution application 212 decrypts the encrypted keys with the key distribution secret key 2128, stores the encrypted communication key 2115 in the encrypted communication key storage area 2123, and stores the encrypted communication temporary key 2116 in the encrypted communication temporary key.
  • the application key 2114 is stored in the key storage area 2124, and the application key 2114 is stored in the application key storage area 2122 (S306).
  • Keys encrypted with the key distribution public key 2127 can be decrypted only with the key distribution private key 2128 that is a pair of the key distribution public key 2127.
  • the key delivery public key 2127 and the key delivery secret key 2128 are generated inside the secret information storage device 2 in S207.
  • the key delivery secret key 2128 does not exist at all outside the secret information storage device 2. . Therefore, the keys encrypted with the key distribution public key 2127 cannot be decrypted at all except for the secret key information storage device 2 including the key distribution server 5 and the control software 111 existing in the communication path.
  • the control software 111 relays commands and responses between the key distribution software 212, the service application management software 211, and the service application 2111, just as the server and the secret information storage device 2 are relayed in S304 and the like. Processing for transmitting a command generation instruction to the key distribution application 212 and transferring the command obtained as a response to the service application management software 211 or the service application 2111 is sequentially performed (S401, S404, S407, S410). At this time, the control software 111 does not need to know the contents of the command generated by the key distribution application 212. For example, whether the command distribution application 212 still wants to send a command according to the algorithm that the key distribution application 212 has as a program therein.
  • the number of command generation instructions may be counted inside the control software 111, or whether or not the command transmission has been completed as part of the response from the key distribution application 212. May be included.
  • the key distribution application 212 sends a command to be sent in response to a request from the control software 111 via the communication unit 24.
  • the control software 111 sends the command received from the communication unit 14 again to the secret information storage device 2 through the communication unit 14, and the sent command is sent to the service application via the communication unit 24.
  • the management software 211 and the service application 2111 receive it. Responses from the service application management software 211 and the service application 211 follow the reverse path and are delivered to the key distribution application 212.
  • the secret information storage device 2 needs to have a function of simultaneously establishing a plurality of communication channels logically with the control software 111 through the communication unit 24. As this function, for example, a mechanism of a logical channel conforming to the JavaCard specification can be applied.
  • the key distribution application 212 and the service application management software 211 first authenticate each other with the encryption communication temporary key 2116 that is referred to separately to establish an encryption communication path (S402, S403). At this time, the key distribution application 212 refers to the encryption communication temporary key 2116 stored in the encryption communication temporary key case area 2124, and the service application management software 211 refers to the encryption communication temporary key 2116 stored in the encryption communication key storage area 2113. To do. If the mutual authentication is successful, the key delivery application 212 generates a command for sending the encryption communication key 2115 and sends it to the service application management software 211 (S405). Upon receiving the command, the service application management software 211 stores the received encrypted communication key 2115 in the encrypted communication key storage area 2113 (S406). At this time, the encryption communication temporary key 2116 originally stored in the encryption communication key storage area 2113 may be discarded.
  • the key distribution application 212 and the service application 2111 mutually authenticate with the encryption communication key 2115 that is referred to separately to establish the encryption communication path (S408, S409).
  • the key distribution application 212 refers to the encryption communication key 2115 stored in the encryption communication key case area 2123
  • the service application management software 211 refers to the encryption communication key 2115 stored in the encryption communication key storage area 2113.
  • the key delivery application 212 generates a command for sending the application key 2114 and sends the command to the service application 2111 (S411).
  • the service application 2111 stores the received application key 2114 in the application key storage area 2112 (S412).
  • the control software 111 instructs the key distribution application 212 to delete the temporarily held key (S413).
  • the key distribution application 212 deletes the keys stored in the encrypted communication key storage area 2123, the encrypted communication temporary key storage area 2124, and the application key storage area 2122 (S414).
  • the key distribution application 212 may voluntarily delete them.
  • the control software 111 sends a completion notification to the key distribution server 5 (S415).
  • the key distribution server 5 that has received the completion notification notifies the service server 3 to that effect (S416).
  • the service server 3 can know that the user is in a state where the user can enjoy the service.
  • the fact may be notified to the server that is the main body of command generation each time. desirable.
  • control software 111 may appropriately notify the user of the processing being performed at that time by the display unit 15 as necessary.
  • S415 it is desirable that the display unit 15 notifies the user to that effect.
  • the service provider can deliver the key information to the user without revealing the key information to anyone, the security quality of the service provided by the service provider is improved. can do.
  • the service provider can safely use a server or the like operated by a third party organization.
  • the key distribution public key and the key distribution secret key are generated inside the secret information storage device, and in particular, since the key distribution secret key does not exist at all outside the secret information storage device, the secret key information storage Except for the device, the application key cannot be decrypted at all. Therefore, the application key or the like can be safely distributed without being known to a third party.
  • the application key is not leaked to the outside through the information terminal.
  • the quality of security can be improved than before without modifying existing service applications and systems.
  • the card application server 4 also serves as the key distribution server 5 described in the first embodiment.
  • the description of the same components as those in the first embodiment is omitted.
  • FIG. 9 is a diagram illustrating an example of a key distribution system according to the present embodiment.
  • the information terminal 1, the service server 3, and the card application server 4 are connected to each other by communication. Further, the information terminal 1 is connected to the secret information storage device 2 by communication. Each may be connected by a route not shown in FIG.
  • the card application server 4 is a server that communicates with other servers and the information terminal 1 through a network or the like. In addition to its role in the first embodiment, the card application server 4 also serves as the key distribution server 5 in the first embodiment.
  • the card application server 4 holds an application that operates on the secret information storage device 2.
  • the card application server 4 manages information such as an authentication key necessary for operating the secret information storage device 2 with administrator authority. By authenticating the secret information storage device 2 with administrator authority, various operations such as newly installing an application in the secret information storage device 2 can be performed.
  • the card application server 4 may be operated by, for example, a mobile network operator or a third party organization called TSM.
  • the card application server 4 holds application data deposited from the service provider, information on the user who owns the secret information storage device 2, and the like, and upon receipt of a request from the information terminal 1 or the like, a predetermined authentication command or installation command is received. It has a configuration that can be generated.
  • the card application server 4 has a configuration for safely delivering a key used by an application or the like operating on the secret information storage device 2 to the secret information storage device 2.
  • the card application server 4 delivers a secret key or the like managed by the service server 3 to an application or the like via management software 210 that also functions as a key distribution described later.
  • management software 210 that also functions as a key distribution described later.
  • a system for executing PKI using public key cryptography may be operating.
  • FIG. 10 is a diagram showing an example of the functional configuration of the information terminal 1 and the secret information case device 2. As described above, the description of the same components as those in the first embodiment is omitted.
  • the storage unit 11 included in the information terminal 1 includes control software 111, and the control software 111 includes, for example, service server information 1111, card application server information 1112, and a terminal ID 1114.
  • the key distribution server information 1113 is included.
  • the card application server 4 also serves as a key distribution function, and thus the description is omitted.
  • the storage unit 21 included in the secret information storage device 2 includes, for example, management software 210 and service application management software 211.
  • the key distribution application 212 is provided.
  • the management software 210 also serves as the key distribution application 212, and thus the description is omitted.
  • the service application management software 211 starts from a state that does not yet exist in the storage unit 21.
  • the management software 210 is software that can operate the secret information storage device 2 with administrator authority, and is executed by the control unit 22. Furthermore, in the present embodiment, the management software 210 also serves to securely receive the secret key or the like used by the service application 2111 or the service application management software 211 from the card application server 4.
  • the management software 210 operates in a form that receives and answers requests received from the communication unit 24.
  • the management software 210 includes a management software key 2101, a key distribution public key storage area 2125, and a key distribution secret key storage area 2126.
  • the management software 210 is described as having these, but physically, these are data written in a certain area of the storage unit 21 or the area itself, which is managed. It is considered that the software 210 can be referred to.
  • the management software key 2101, the key distribution public key storage area 2125, and the key distribution secret key storage area 2126 cannot be referred to.
  • the management software key 2101 may be, for example, a common key method or a public key method encryption key.
  • the management software 210 can exercise the administrator authority in response to the request. With the administrator authority, the management software 210 can newly create the service application management software 211, set an encryption communication key in the service application management software 211, and load and install the service application. Furthermore, the management software 210 sets the secret key received from the card application server 4 by public key encryption in the service application 2111 or the service application management software 211 according to a flow described later. Alternatively, as in the first embodiment, the management software 210 may include logic for generating a request for safely setting the temporarily stored secret key or the like in the service application management software 211 or the service application 2111.
  • management software 210 for example, ISD, AMSD, SSD, or the like conforming to the JavaCard specification can be considered.
  • management software 210 for example, ISD, AMSD, SSD, or the like conforming to the JavaCard specification can be considered.
  • the key distribution public key storage area 2125 and the key distribution secret key storage area 2126 are areas for storing key pairs based on the public key cryptosystem, and the public key of the key pair is stored in the key distribution public key storage area 2125.
  • the key is stored in the key distribution secret key storage area 2126.
  • a certificate or the like given by a predetermined means may be stored together.
  • the key pair stored in these is used to securely deliver the key to the management software 210 from the outside.
  • the key pairs stored in these are generated inside the secret information storage device 2, and in particular, there is no means for outputting the secret key stored in the key distribution secret key storage area 2126 to the outside of the secret information storage device 2. Is. Therefore, the management software 210 has a program that can generate a key pair based on the public key cryptosystem, and the program generates a key pair by using, for example, the encryption processing unit 25.
  • FIG. 11 is a diagram showing an example of key information stored in the storage area of the storage unit 21 of the secret information storage device 2.
  • the key information shown here is temporarily or permanently stored in various storage areas according to a flow to be described later. As described above, the description of the same components as those in the first embodiment is omitted.
  • a key distribution public key 2127 and a key distribution secret key 2128 which are key pairs based on the public key cryptosystem, are stored.
  • the key delivery public key 2127 and the key delivery private key 2128 may be combined with a certificate or the like given by a predetermined means.
  • the key delivery public key 2127 and the key delivery secret key 2128 are used to securely deliver the application key 2114, the encrypted communication path key 2115, and the like from the outside to the management software 210.
  • the pair of the key distribution public key 2127 and the key distribution secret key 2128 is generated inside the secret information storage device 2, and in particular, the key distribution secret key 2128 does not have means for outputting to the outside of the secret information storage device 2.
  • the key distribution public key 2127 and the key distribution secret key 2128 that have been generated once may be reused for a plurality of key distributions.
  • the key distribution public key storage area 2125 and the key distribution secret key storage area 2126 are arranged in a nonvolatile memory such as an EEPROM or a flash.
  • FIG. 12 shows an example of a key held by the server.
  • FIG. 12 shows the minimum configuration of the service server 3 and the card application server 4 and the keys held by each. As described above, the description of the same components as those in the first embodiment is omitted.
  • the card application server 4 has a management software key 2101 in the storage unit 41.
  • the management soft key 2101 may be generated by the card application server 4 by a predetermined method. Moreover, although not shown in FIG. 12, it may be linked
  • FIG. 12 may be linked
  • FIGS. 13 to 15 are diagrams showing an example of processing of the key distribution system according to the present embodiment. Although FIGS. 13 to 15 are divided and described, they are a series of flows. 13 to 15, as an example, the management software 210 and the management software key 2101 are stored in the storage unit 21 of the secret information storage device 2, and the key distribution public key storage area 2125 and the management software of the management software 210 are stored. It is assumed that the key distribution public key storage area 2126 of 210 starts from a state in which no public key pair used for key distribution is entered. In addition, the service application management software 211 and the components under the service application management software 211 are created or activated in the flow. However, the state at the start of the flow is not necessarily limited to the above contents.
  • the management software 210 may start from a state in which the key distribution public key 2127 and the key distribution secret key 2128 already exist, or the service application management software 211 and the service application 2111 exist in advance, but the application key 2114 or You may start from the state where the encryption communication key 2115 has not been set yet. In such a case, steps that are unnecessary because they have been performed in advance can be omitted in the flow.
  • the service application management software 211 is created and the service application 2111 is installed prior to key distribution by the key distribution system. As described above, the description of the same components as those in the first embodiment is omitted.
  • the service server 3 and the like start the creation process of the service application management software 211 and the like and perform the processes of S501 to S510 by expressing the user's intention to use the service through the control software 111. Subsequently, the card application server 4 sends a command for instructing installation of the service application 2111 to the management software 210 (S511), and the management software 210 that has received the command stores the service application 2111 including the application key management area 2112 as a storage unit. 21 (S512).
  • FIG. 14 following the flow of FIG. 13, generation of a key pair for key distribution inside the secret information storage device 2 and notification of the generated public key to the service server 3 are performed.
  • the control software 111 enters a process of relaying between the secret information storage device 2 and the card application server 4 (S601).
  • the card application server 4 sends a command instructing to generate a key pair for key distribution inside the secret information storage device 2 to the management software 210 (S602).
  • the management software 210 Upon receiving the command, the management software 210 generates a key pair of the key distribution public key 2127 and the key distribution private key 2128 by the encryption processing unit 25, stores the key distribution public key 2127 in the key distribution public key storage area 2125,
  • the key delivery secret key 2128 is stored in the key delivery secret key storage area 2126 (S603). If processing time is required to generate a key pair, the key pair may be generated in advance.
  • the card application server 4 sends a command for reading the key distribution public key 2127 to the management software 210 (S604), and the management software 210 sends out the key distribution public key 2127 accordingly (S605).
  • the card application server 4 Upon receiving the key distribution public key 2127, the card application server 4 gives a public key certificate by a predetermined method as necessary (S606).
  • the key distribution public key 2127 is trusted by the service server 3 verifying the public key certificate by signing the public key certificate to be given to the key distribution public key 2127 with a private key trusted by the service server 3. Be able to do that.
  • the created public key certificate may be sent to the management software 210 as necessary, or may be stored in the secret information storage device 2.
  • the card application server 4 notifies the service server 3 of the key distribution public key 2127 and the public key certificate (S607).
  • the key possessed by the service server 3 is encrypted with the public key and sent to the secret information storage device 2.
  • the service server 3 verifies the public key certificate of the key distribution public key 2127 (S701). If the key distribution public key 2127 is reliable, the encryption communication key 2115 and the application key 2114 are encrypted with the key distribution public key 2127 (S702). Subsequently, the encrypted keys are sent to the card application server 4 (S703).
  • the control software 111 relays the secret information storage device 2 and the card application server 4 (S704). S601 and S704 may be subsequent processes.
  • the control software 111 polls the card application server 4 in order to obtain a command related to S705, or that the encrypted keys are ready by push-type communication from the card application server 4. I can know.
  • the card application server 4 generates a command for sending the encrypted keys to the management software 210, sends the command to the management software 210, and instructs decryption (S705).
  • the management software 210 decrypts the encrypted keys with the key distribution secret key 2128, stores the encryption communication key 2115 in the encryption communication key storage area 2113 of the service application management software 211, and stores the application key 2114. It is stored in the application key storage area 2112 of the service application 2111 (S706).
  • the control software 111 sends a completion notification to the card application server 4 (S707).
  • the card application server 4 receives the completion notification, the card application server 4 notifies the service server 3 to that effect (S708). By doing so, the service server 3 can know that the user is in a state where the user can enjoy the service.
  • the management software 210 directly sets the secret key in the service application management software 211 and the service application 2111 has been described.
  • the encryption software temporary key or the like is used as in the first embodiment and the control software 111 is used. You can take the method of setting the key. By processing in this way, it is possible to further reduce the possibility of the application key leaking outside via the information terminal.
  • the service provider can deliver the key information to the user without revealing the key information to anyone, the security quality of the service provided by the service provider is improved. can do.
  • the service provider can safely use a server or the like operated by a third party organization.
  • the key distribution public key and the key distribution secret key are generated inside the secret information storage device, and in particular, since the key distribution secret key does not exist at all outside the secret information storage device, the secret key information storage Except for the device, the application key cannot be decrypted at all. Therefore, the application key or the like can be safely distributed without being known to a third party.
  • the card application server also serves as a key distribution server, it is possible to ensure high security quality with a simpler configuration.
  • the key distribution system described in the first embodiment is more generalized, and the key distribution server 5 sends the algorithm such as an algorithm for key distribution together with the secret key to the key distribution application 212. Will be explained.
  • the description of the same components as those in the first and second embodiments will be omitted.
  • the information terminal 1, the service server 3, the card application server 4, and the key distribution server 5 are connected to each other by communication. Further, the information terminal 1 is connected to the secret information storage device 2 by communication.
  • FIG. 16 is a diagram illustrating an example of a functional configuration of the secret information case device 2. As described above, the description of the same components as those in the first and second embodiments is omitted.
  • the storage unit 21 included in the secret information storage device 2 includes a key distribution logic storage area 2130 in the key distribution application 212 in addition to the elements described in FIG.
  • the key distribution logic storage area 2130 is an algorithm for creating a command or the like necessary when the key distribution application 212 sets a secret key in the card application management software 211 or the card application 2111 in the flow of FIGS. 17 and 18 to be described later. Is an area for storing.
  • the key distribution logic storage area 2130 is described as being provided inside the key distribution application 212 for convenience, but is physically an area in which the storage unit 21 exists, and only the key distribution application 212. Can refer to this.
  • the algorithm delivered to the key delivery logic storage area 2130 may be, for example, a command sequence or branch processing that has been subjected to predetermined encoding, or may take the form of a script language.
  • the key distribution logic storage area 2130 is preferably erased when an error occurs in a series of processing flows to be described later or when the power supply by the power supply unit 23 is cut off. It is desirable to arrange.
  • FIG. 17 and 18 are diagrams showing an example of processing of the key distribution system according to the present embodiment.
  • FIG. 17 and FIG. 18 are a series of flows that are described separately, and
  • FIG. 17 is a flow that continues from FIG.
  • the key held by the service server 3 is encrypted with the public key and sent to the secret information storage device 2.
  • the key delivery server 5 delivers the logic for delivering these keys together.
  • S801 to S806 are the same as S301 to S306 in FIG.
  • the key distribution server 5 notifies the key distribution application 212 of the key distribution logic (S807). Receiving the notification, the key distribution application 212 stores the received logic in the key distribution logic storage area 2130 (S808).
  • the service application management software 211 and the service application are stored on the basis of the logic stored in the key distribution logic storage area 2130. Set to 2111 safely.
  • the control software 111 relays commands and responses between the key distribution application 212, the service application management software 211, and the service application 2111, just as the server and the secret information storage device 2 are relayed in the first embodiment. .
  • Processing for transmitting a command generation instruction to the key distribution application 212 and transferring the command obtained as a response to the service application management software 211 or the service application 2111 is sequentially performed (S901, S904).
  • the control software 111 does not need to know the contents of the command generated by the key distribution application 212. For example, whether the command distribution application 212 still wants to send a command according to the algorithm that the key distribution application 212 has as a program therein. Alternatively, it is only necessary to obtain information indicating whether command transmission has already been completed.
  • the number of command generation instructions may be counted inside the control software 111, or the response of the response from the key distribution application 212 may be counted.
  • a part of the information may include whether or not the transmission of the command of the logic stored in the key distribution logic storage area 2130 is completed.
  • the key distribution application 212 generates a command for sending the encryption communication key 2115 based on the logic stored in the key distribution logic storage area 2130, and sends it to the service application management software 211 (S902).
  • the service application management software 211 Upon receiving the command, stores the received encrypted communication key 2115 in the encrypted communication key storage area 2113 (S903). There may be a plurality of commands exchanged at this time.
  • the key delivery application 212 generates a command for sending the application key 2114 based on the logic stored in the key delivery logic storage area 2130, and sends it to the service application 2111 (S905).
  • the service application 2111 that has received the command stores the received application key 2114 in the application key storage area 2112 (S906). There may be a plurality of commands exchanged at this time.
  • the control software 111 issues an instruction to delete the temporarily held key to the key distribution application 212 (S907).
  • the key distribution application 212 receives the key stored in the encryption communication key storage area 2123, the encryption communication temporary key storage area 2124, and the application key storage area 2122 and the logic stored in the key distribution logic 2130. Erasing is performed (S908).
  • the key distribution application 212 that has determined that a series of key distribution has been completed may voluntarily delete them.
  • control software 111 and the key distribution server 5 execute the processes of S909 and S910.
  • the service provider can deliver the key information to the user without revealing the key information to anyone, the security quality of the service provided by the service provider is improved. can do.
  • the service provider can safely use a server or the like operated by a third party organization.
  • the key distribution public key and the key distribution secret key are generated inside the secret information storage device, and in particular, since the key distribution secret key does not exist at all outside the secret information storage device, the secret key information storage Except for the device, the application key cannot be decrypted at all. Therefore, the application key or the like can be safely distributed without being known to a third party.
  • the application key is not leaked to the outside through the information terminal.
  • a key distribution system can be provided.
  • each of the above-described configurations, functions, processing units, processing means, and the like may be realized by hardware by designing a part or all of them with, for example, an integrated circuit.
  • Each of the above-described configurations, functions, and the like may be realized by software by interpreting and executing a program that realizes each function by the processor.
  • Information such as programs, tables, and files that realize each function can be stored in a memory, a hard disk, an SSD (Solid State Drive), or the like, or an IC card, an SD card, a DVD, or the like.
  • a program for realizing each function is copied to a server or the like and provided to the information terminal 1 and other terminals, devices, equipment, media, etc.
  • the user can operate a terminal or the like to download a necessary program or the like from a server or the like and install it in a storage unit such as a terminal or a medium.
  • control lines and information lines indicate what is considered necessary for the explanation, and not all the control lines and information lines on the product are necessarily shown. Actually, it may be considered that almost all the components are connected to each other.
  • the example in which the secret information storage device 2 is connected to the information terminal 1 and performs the processing described in each embodiment has been mainly described.
  • the configuration or the like may be incorporated into the information terminal 1, and the information terminal 1 may also serve as the secret information storage device 2.

Landscapes

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

Abstract

 外部に漏洩すべきでない情報を好適に保護する。 情報処理装置に接続可能な記録媒体であって、接続された前記情報処理装置と通信する通信部と、鍵情報を記録する記録部と、制御部とを備え、前記制御部は、第一の鍵情報と、該第一の鍵情報の対となる第二の鍵情報とを生成して前記記録部に記録し、記録された前記第一の鍵情報を前記情報処理装置を介して外部の装置に送信し、前記外部の装置において前記第一の鍵情報に基づいて暗号化された第三の鍵情報と第四の鍵情報とを、前記情報処理装置を介して受信し、受信した前記第三の鍵情報と前記第四の鍵情報とを前記第二の鍵情報を用いて復号化し、復号化された前記第三の鍵情報と前記第四の鍵情報とを用いて、所定のプログラムを実行する制御を行う。

Description

記録媒体、プログラム、及び、情報配信装置
 本発明は、記録媒体、プログラム、及び、情報配信装置に関する。
 本技術分野の背景技術として、特開2000-347847号公報(特許文献1)がある。この公報には、「HDD21は、プログラム、およびプログラムの実行に必要なデータを蓄積する。CPU11は、HDD21に対するプログラムおよびデータの蓄積または読み出しを制御する。CPU11は、プログラムをアダプタ26から供給された第1の鍵で暗号化する。CPU11は、データをアダプタ26から供給された第2の鍵で暗号化する。」と記載されている(要約参照)。
特開2000-347847号公報
 特許文献1の技術では、場合によっては秘密情報が第三者に漏洩する可能性がある。そこで、本発明は、外部に漏洩すべきでない情報を好適に保護する技術を提供する。
 上記課題を解決するために、例えば特許請求の範囲に記載の構成を採用する。
 本願は上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、「情報処理装置に接続可能な記録媒体であって、接続された前記情報処理装置と通信する通信部と、鍵情報を記録する記録部と、制御部とを備え、前記制御部は、第一の鍵情報と、該第一の鍵情報の対となる第二の鍵情報とを生成して前記記録部に記録し、記録された前記第一の鍵情報を前記情報処理装置を介して外部の装置に送信し、前記外部の装置において前記第一の鍵情報に基づいて暗号化された第三の鍵情報と第四の鍵情報とを、前記情報処理装置を介して受信し、受信した前記第三の鍵情報と前記第四の鍵情報とを前記第二の鍵情報を用いて復号化し、復号化された前記第三の鍵情報と前記第四の鍵情報とを用いて、所定のプログラムを実行する制御を行う」ことを特徴とする。
 本発明によれば、外部に漏洩すべきでない情報を好適に保護することができる。
 上記した以外の課題、構成および効果は、以下の実施形態の説明により明らかにされる。
鍵配送システムの一例を示す図である。 情報端末および秘密情報格装置の機能構成の一例を示す図である。 秘密情報格納装置の記憶部が有する格納領域に格納される鍵の情報の一例を示す図である。 サーバが保持する鍵の一例を示す図である。 鍵配送システムの処理の一例を示した図である。 鍵配送システムの処理の一例を示した図である。 鍵配送システムの処理の一例を示した図である。 鍵配送システムの処理の一例を示した図である。 鍵配送システムの一例を示す図である。 情報端末および秘密情報格装置の機能構成の一例を示す図である。 秘密情報格納装置の記憶部が有する格納領域に格納される鍵の情報の一例を示す図である。 サーバが保持する鍵の一例を示す図である。 鍵配送システムの処理の一例を示した図である。 鍵配送システムの処理の一例を示した図である。 鍵配送システムの処理の一例を示した図である。 秘密情報格装置の機能構成の一例を示す図である。 鍵配送システムの処理の一例を示した図である。 鍵配送システムの処理の一例を示した図である。 情報端末の機能構成の一例を示す図である。
 以下、本発明に係る実施例について図を用いて説明する。
 本実施例では、情報端末を介して、秘密情報格納装置(記録媒体)2に、サーバから安全に鍵を配送するために必要な処理の具体的な例について説明する。
 図1は、鍵配送システムの一例を示す図である。本発明に係る鍵配送システムは、情報端末1と、サービスサーバ3と、カードアプリサーバ4と、鍵配送サーバ5とが、通信により相互に接続している。さらに、情報端末1は、秘密情報格納装置2と通信により相互に接続されている。図1の各サーバと情報端末1と秘密情報格納装置2とは、図1で示していない経路によって接続されていても構わない。なお、以下の説明では、サービスサーバ3、カードアプリサーバ4および鍵配送サーバ5等について、それぞれを特に区別せず総括して呼称する場合は単にサーバと呼称することがある。
 情報端末1は、情報を表示可能な表示部、情報を入力可能な入力部、他の装置や機器と通信可能な通信部、および情報の演算が可能な制御部等を有した端末であり、秘密情報格納装置2とサーバとの情報のやりとりを仲介する役割を担う。鍵配送システムには複数の情報端末1が含まれていても良い。情報端末1としてはスマートフォンやタブレット端末、パーソナルコンピュータやシンクライアント端末などが考えられるが、これに限るものではない。
 秘密情報格納装置2は、例えば耐タンパ機構等を備えたセキュアな半導体素子を含み、他の装置や機器と通信可能な通信部、および情報の演算が可能な制御部、高速暗号処理が可能な暗号演算部等を有し、情報端末1を介してサーバやその他の端末と情報のやりとりを行う。秘密情報格納装置2としてはSIMカード型のICカードや、microSD型のICカード、組込みチップ型のICカード、非接触型および接触型のICカードなどが考えられるが、これに限るものではない。鍵配送システムには複数の秘密情報格納装置2が含まれていても良いし、また、一つの情報端末1が複数の秘密情報格納装置2と通信してもかまわない。
 サービスサーバ3は、ネットワーク等を通じて他のサーバや情報端末1と通信を行うサーバである。サービスサーバ3は例えば電子決済などのサービスを提供する事業者が運営するサーバであり、秘密情報格納装置2に格納した秘密鍵等の所定の秘密情報を、サービスサーバ3で認証することで、情報端末1及び秘密情報格納装置2を有するユーザにサービスを提供する。したがってサービスサーバ3は秘密情報格納装置2の秘密情報を認証する構成や、ユーザ顧客を管理及び認証する構成、サービスを実行するための構成等を有していることが考えられる。
 カードアプリサーバ4は、ネットワーク等を通じて他のサーバや情報端末1と通信を行うサーバである。カードアプリサーバ4は秘密情報格納装置2で動作するアプリケーションを保持するサーバである。カードアプリサーバ4は秘密情報格納装置2を管理者権限で操作するために必要な認証鍵などの情報を管理する。秘密情報格納装置2に対し管理者権限で認証を行うことで、秘密情報格納装置2に新たにアプリケーションをインストールするなどの様々な操作を行うことができる。カードアプリサーバ4は、例えばモバイルネットワークオペレータや、TSM(Trusted Service Manager)と呼ばれる第三者組織などが運用するサーバであることが考えられる。カードアプリサーバ4は、サービス提供者から預かったアプリケーションデータや、秘密情報格納装置2を所持するユーザの情報などを保持し、情報端末1等からの要求を受けて所定の認証コマンドやインストールコマンドが生成できる構成等を有していることが考えられる。
 鍵配送サーバ5は、ネットワーク等を通じて他のサーバや情報端末1と通信を行うサーバである。鍵配送サーバ5は秘密情報格納装置2で動作するアプリケーション等が使用する鍵を安全に秘密情報格納装置2に配送するためのサーバである。鍵配送サーバ5は秘密情報格納装置2に配置した鍵配送アプリを介して、サービスサーバ3で管理する秘密鍵等をアプリケーション等に配送する。この配送過程で、部外者に秘密鍵を知られてはならないばかりでなく、サービス提供者とユーザにとって第三者であるカードアプリサーバ4や鍵配送サーバ5等の管理者等にもこれを知られないようにする必要がある。鍵配送サーバ5は、鍵配送アプリとセキュアな通信を行うための秘密鍵を管理する構成や、公開鍵暗号を用いたPKI(Public Key Infrastructure)を実行するための構成等を有していることが考えられる。
 サーバどうしや、サーバと情報端末1の通信は、例えば、インターネット・プロトコル等を使用する有線LAN(Local Area Network)、無線LAN、WAN(Wide Area Network)、LTE(Long Term Evolution)、HSPA(High Speed Packet Access)、およびWiMAX(Worldwide Interoperability for Microwave Access)等の通信ネットワークであることが考えられる。
 図2は、情報端末1および秘密情報格装置2の機能構成の一例を示す図である。
 情報端末1は、記憶部11、制御部12、電源供給部13、通信部14、表示部15、入力部16、およびネットワーク通信部17を備え、これらがバス線などで結線されている。なお、図2では各モジュールが情報端末1の内部にて他のモジュールと物理的に結線しているように示しているが、必ずしもバス線により結線されている必要はなく、その他の方法で電気的に繋がっていても良いし、必要なモジュール同士のみが相互に接続されている構成でもかまわない。
 記憶部11は、例えば情報端末1に内蔵されるメモリ、または取り外し可能な外部メモリ等であり、各種の情報を記憶する。例えば、制御部12が実行する動作制御用プログラムを記憶する。記憶部11は、制御ソフト111を備え、これについては後述する。
 制御部12は、例えばCPU(Central Processiong Unit)、MPU(Micro Processiong Unit)、またはDSP(Digital Signal Processor)等であり、所定の動作制御用プログラムを実行するなどして、情報端末1全体の動作を制御する。
 電源供給部13は、例えばバッテリ、ACアダプタ、または充電回路等であり、情報端末1の各部への電源供給や、バッテリへの充電を行う。情報端末1がバッテリ駆動されているか、ACアダプタ駆動されているかといった状態確認や、バッテリの残量確認を行うことも考えられる。また図2に記してはいないが、秘密情報格納装置2の外部電源として電源供給を行う役割を合わせて担ってもよい。
 通信部14は、情報端末1が秘密情報格納装置2と通信を行うための構成部であり、例えば接触ICカードの国際標準通信方式であるISO7816、非接触ICカードの国際標準通信方式であるISO14443、FeliCa(登録商標)、NFC(Near Field Communication)、SDカード規格に応じた通信、Bluetooth(登録商標)、USB(Universal Serial Bus)、有線LAN、無線LAN、TransferJET(登録商標)などの通信方式を実現するモジュールである。通信部14は、場合によっては後述するネットワーク通信部17と同一のモジュールであってもよい。また、秘密情報格納装置2が情報端末1の組込みモジュールであった場合、基盤上で結線されたものであっても構わない。通信部14は通信方式や秘密情報格納装置2の個数に応じて情報端末1に複数個存在してもかまわない。
 表示部15は、例えば液晶ディスプレイ、有機EL(Electro-Luminescence)ディスプレイ、または電子ペーパー等のパネル、およびドライバ回路等であり、制御部12の制御下にて任意の情報(例えば、文字、静止画、および動画等)を表示する。なお、表示部15は、それぞれ異なる情報を表示可能な複数のパネルを有していても良い。
 入力部16は、例えばキーボード、マウス、カーソルキー、およびテンキー等の一または複数を備え、ユーザの操作を受け付け、当該操作に基づいた入力信号を制御部12に入力する。なお、音声認識、画像認識、またはジェスチャ認識等によって入力信号を生成し、制御部12に入力するようにしても良い。なお、タッチパネルのように、表示部15と入力部16とが一体となった構成であっても良い。
 ネットワーク通信部17は、情報端末1がサーバと通信を行うための構成部であり、例えばインターネット・プロトコル等を使用する有線LAN、無線LAN、WAN、LTE、HSPA、またはWiMAX等のネットワーク通信を行うためのモジュールが考えられる。ネットワーク通信部17は通信方式等に応じて情報端末1に複数個存在してもかまわない。
 なお、通信部14やネットワーク通信部17といった通信機能は、無線通信の場合、アンテナ、および変復調回路等を含んでも良い。有線通信の場合は、コネクタ、および変復調回路等を含んでも良い。通信部14やネットワーク通信部17は、それぞれが複数の通信方式に対応するよう構成されても良い。
 次に、秘密情報格納装置2は、記憶部21、制御部22、電源供給部23、通信部24、および暗号処理部25を備え、これらがバス線などで結線されている。なお、図2では各モジュールが秘密情報格納装置2の内部にて他のモジュールと物理的に結線しているように示しているが、必ずしもバス線により結線されている必要はなく、その他の方法で電気的に繋がっていても良いし、必要なモジュール同士のみが相互に接続されている構成でもかまわない。
 記憶部21は、秘密情報格納装置2に内蔵される半導体メモリ等から構成され、各種の情報を記憶する。記憶部21は、例えばEEPROM、RAM、またはフラッシュメモリ等である。記憶部21は、例えば制御部22が実行する動作制御用プログラムを記憶する。記憶部21が備える構成要素については後述する。
 制御部22は、CPU、MPU、またはDSP等であり、所定の動作制御用プログラムを実行するなどして、秘密情報格納装置2全体の動作を制御する。
 電源供給部23は、外部から電源を取得する電源供給端子もしくはアンテナ、または電源供給回路等であり、秘密情報格納装置2の各部への電源供給を行う。あるいは、バッテリ、ACアダプタ、充電回路等を備えていてもよい。図2に記してはいないが、秘密情報格納装置2は電源供給部23によって情報端末1から電源の供給を受けてもよい。
 通信部24は、秘密情報格納装置2が情報端末1と通信を行うための構成部であり、例えば接触ICカードの国際標準通信方式であるISO7816、非接触ICカードの国際標準通信方式であるISO14443、FeliCa、NFC、SDカード規格に応じた通信、Bluetooth、USB、有線LAN、無線LAN、TransferJETなどの通信方式を実現するモジュールである。秘密情報格納装置2が情報端末1の組込みモジュールであった場合、通信部24は情報端末1と基盤上で結線されたものであっても構わない。通信部24は通信方式に応じて秘密情報格納装置2に複数個存在してもかまわない。なお、通信部24の通信機能は、無線通信の場合、アンテナ、および変復調回路等を含んでも良い。有線通信の場合は、コネクタ、および変復調回路等を含んでも良い。通信部24は複数の通信方式に対応するよう構成されても良い。
 暗号処理部25は、例えば剰余乗算コプロセッサや暗号アクセラレータ等であり、RSA暗号や楕円曲線暗号といった公開鍵暗号処理や、AESやDESといった共通鍵暗号処理を、制御部で行うよりも高速に実行するための構成部である。暗号処理部25は処理する暗号等に応じて秘密情報格納装置2に複数個存在してもかまわない。
 次に、情報端末1の記憶部11について説明する。情報端末1の記憶部11は、制御ソフト111を有する。制御ソフト111は、ユーザ操作によって一連のフローを開始するきっかけとなるユーザインタフェースを提供したり、サーバや秘密情報格納装置2との通信を行うきっかけを与えたりするソフトウェアであり、制御部12によって実行される。サーバは制御ソフト111の要求によって処理を開始し、処理の結果を制御ソフト111に戻す。また、秘密情報格納装置2は、制御ソフト111の要求によって処理を開始し、処理の結果を制御ソフト111に戻す。このように制御ソフト111はシステム全体の処理のきっかけを作るが、必ずしもアルゴリズムの主体を担うとは限らない。制御ソフト111がコマンドをフェッチするような役割を担い、一連のフローやアルゴリズムの主体はサーバや秘密情報格納装置2にある場合もある。なお、サーバや秘密情報格納装置2の動作のきっかけは制御ソフト111によるものだけでなく、その他の装置やサーバもしくはソフトウェアをきっかけに動作する場合もある。制御ソフト111は複数のソフトウェアが連携した複合的なものであってもかまわない。なお、以下の実施例で特に断りなく制御ソフト111が処理を実行するような記述をした場合、物理的には制御ソフト111のプログラムの記述に則って制御部12が処理を実行するということを示しているものとする。
 制御ソフト111は、一例として、サービスサーバ情報1111と、カードアプリサーバ情報1112と、鍵配送サーバ情報1113と、端末ID1114を有する。図2では便宜的に制御ソフト111の内部にこれらを備えるように記載しているが、物理的にはこれらは記憶部11のある領域に書き込まれたデータであり、それを制御ソフト111が参照できるようになっているものとする。
 サービスサーバ情報1111は、制御ソフト111が必要に応じてサービスサーバ3に接続するために使用する情報であり、サービスサーバ3のURLやIPアドレスなどを含む。
 カードアプリサーバ情報1112は、制御ソフト111が必要に応じてカードアプリサーバ4に接続するために使用する情報であり、カードアプリサーバ4のURLやIPアドレスなどを含む。
 鍵配送サーバ情報1113は、制御ソフト111が必要に応じて鍵配送サーバ5に接続するために使用する情報であり、鍵配送サーバ5のURLやIPアドレスなどを含む。
 サービスサーバ情報1111、カードアプリサーバ情報1112、および鍵配送サーバ情報1113は、予め制御ソフト111と共に記憶部11に書き込まれていてもよいし、制御ソフト111自体をネットワーク等から取得し記憶部11に書き込む際に合わせて書き込んでもよい。あるいは他の媒体にこれらの情報を格納しておき、適宜制御ソフト111が読み込んで記憶部11に書き込んでもよい。ここで、他の媒体とは、例えば、外部メモリでもよいし、いずれかのサーバでもよいし、あるいは接続先の判明しているその他のサーバでもよいし、秘密情報格納装置2であってもよい。
 端末ID1114は、サーバが情報端末1を識別するためのID情報を含む。端末ID1114は予め制御ソフト111と共に記憶部11に書き込まれていてもよいし、制御ソフト111自体をネットワーク等から取得し記憶部11に書き込む際に合わせて書き込んでもよい。あるいは情報端末1のデバイスや秘密情報格納装置2から取得できる一意またはそれに順ずる程度の一意性を持った情報を制御ソフト111が読み込んで記憶部11に書き込んでもよい。あるいは十分大きい乱数などを情報端末1で生成し、端末ID1114として使用しても良い。端末ID1114は必ずしも記憶部11に書き込むことで保持していなくともよく、必要な場合にその都度、制御ソフト111がAPI(Application Program Interface)等を通じて取得しても構わない。
 なお図2に示してはいないが、制御ソフト111は上記以外の情報を有していてもよい。例えば後述する秘密情報格納装置2が有するアプリケーションやソフトウェア等のプログラムにアクセスするためのプログラムIDなどを有していても構わない。プログラムIDは、例えばICカードの規格であるISO7816に準拠したAID(Application ID)などである。
 次に、秘密情報格納装置2の記憶部21について説明する。秘密情報格納装置2の記憶部21は、例えば、管理ソフト210と、サービスアプリ管理ソフト211と、鍵配送アプリ212を有する。なお、後述する図5からのフローでは、サービスアプリ管理ソフト211がまだ記憶部21に存在しない状態から処理を開始するものとして説明する。また、以下の実施例で特に断りなく管理ソフト210、サービスアプリ管理ソフト211、鍵配送アプリ212、及び後述するサービスアプリ2111が処理を実行するような記述をした場合、物理的にはこれらのプログラムの記述に則って制御部22が処理を実行するということを示しているものとする。
 管理ソフト210は、秘密情報格納装置2を管理者権限で操作することができるソフトウェアであり、制御部22によって実行される。管理ソフト210は、通信部24から受けとった要求に受け答える形で動作する。また、管理ソフト210は、管理ソフト鍵2101を有する。管理ソフト鍵2101は、図2では便宜的に管理ソフト210の内部にこれを備えるように記載しているが、物理的には、これは記憶部21のある領域に書き込まれたデータであり、それを管理ソフト210が参照できるようになっているものとする。ただし管理ソフト210以外は管理ソフト鍵2101を参照することはできない。管理ソフト鍵2101は例えば共通鍵方式または公開鍵方式の暗号鍵である。
 通信部24から受けた認証要求により、管理ソフト鍵2101による認証が成功した場合、管理ソフト210は要求に応じて管理者権限を行使することができる。管理者権限により、管理ソフト210は、サービスアプリ管理ソフト211の新規作成、サービスアプリ管理ソフト211への暗号通信鍵の設定、及びサービスアプリのロードやインストールなどを実行することができる。管理ソフト210としては、例えばJavaCard仕様に則ったISD(Issuer Security Domain)やAMSD(Autholized Management Security Domain)などが考えられる。
 サービスアプリ管理ソフト211は、サービスアプリやサービスアプリが使用する暗号通信鍵を管理するソフトウェアであり、制御部22によって実行される。サービスアプリ管理ソフト211は配下にアプリケーションやそのアプリケーションが暗号通信に用いる鍵を論理的に配置することができ、配下のサービスアプリのセキュリティを管轄する。サービスアプリ管理ソフト211としては、例えばJavaCard仕様に則ったSSD(Supplementary Security Domain)などが考えられる。
 サービスアプリ管理ソフト211は、サービスアプリ2111と、暗号通信鍵格納領域2113とを有する。サービスアプリ2111と暗号通信鍵格納領域2113は、図2では便宜的にサービスアプリ管理ソフト211の内部にこれらを備えるように記載しているが、物理的には記憶部21のある領域に書き込まれたデータまたは領域そのものであるものとする。
 また、サービスアプリ2111は、アプリ鍵格納領域2112を有する。アプリ鍵格納領域2112は、図2では便宜的にサービスアプリ2111の内部にこれらを備えるように記載しているが、物理的には記憶部21のある領域であり、サービスアプリ2111のみがこれを参照できると考えられる。
 サービスアプリ2111は、サービスサーバ3を運用するサービス提供者が提供するサービスを実現するためのアプリケーションであり、例えば決済アプリ、ポイントアプリ、交通料金支払いアプリ、あるいはPKI認証アプリ等のプログラムである。サービスアプリ2111としては、例えばJavaCard仕様に則ったJavaCardアプリケーションなどが考えられる。
 アプリ鍵格納領域2112はサービスアプリ2111がサービスに係る処理を実行するための認証鍵を格納する領域である。例えばサービス提供者は、認証鍵による認証が成功することで所定のサービスをユーザに提供することができ、ユーザはそのサービスを享受することができる。
 暗号通信鍵格納領域2113はサービスアプリ管理ソフト211もしくはサービスアプリ2111がサービスサーバ3と暗号通信路を確立して通信を行う際に使用される認証鍵を格納する領域である。サービスアプリ管理ソフト211は、通信部24から暗号通信鍵格納領域2113に格納されている鍵で認証を行う要求を受け付けることができる。認証が成功すると、暗号通信鍵格納領域2113に格納されている鍵自身を書き換える要求を受け付けることができる。
 鍵配送アプリ212は、サービスアプリ2111もしくはサービスアプリ管理ソフト211が使用する秘密鍵等を鍵配送サーバ5から安全に受け取って一時保持するためのソフトウェアであり、制御部22によって実行される。鍵配送アプリ212は一時保持した秘密鍵等をサービスアプリ管理ソフト211やサービスアプリ2111に安全に設定するための要求を生成するロジックを備えている。例えばサービスアプリ管理ソフト211は、先述のように、暗号通信鍵格納領域2113に格納されている鍵で認証する要求を受け付けることで鍵の値を書き換えることができるが、鍵配送アプリ212は、所定の鍵の値を用いてこの要求を内部で生成することができるロジックを備えている。鍵配送アプリ212としては、例えばJavaCard仕様に則ったJavaCardアプリケーションなどが考えられる。
 鍵配送アプリ212は、鍵配送マスター鍵2121と、アプリ鍵格納領域2122と、暗号通信鍵格納領域2123と、暗号通信仮鍵格納領域2124と、鍵配送公開鍵格納領域2125と、鍵配送秘密鍵格納領域2126とを有する。図2では鍵配送アプリ212の内部にこれらを備えるように記載しているが、物理的には記憶部21のある領域に書き込まれたデータまたは領域そのものであり、鍵配送アプリ212のみがこれらを参照できるものとする。
 鍵配送マスター鍵2121は、鍵配送サーバ5と認証を行うための鍵である。実際の認証処理や暗号通信路等の構築には、鍵配送マスター鍵2121そのものではなく所定のアルゴリズムで派生した派生鍵を用いてもかまわない。鍵配送マスター鍵2121は例えば共通鍵方式または公開鍵方式の暗号鍵であることが考えられる。通信部24から受けた認証要求により、鍵配送マスター鍵2121による認証が成功した場合、鍵配送アプリ212は要求に応じて配送される鍵の一時保管を行うことができる。
 アプリ鍵格納領域2122は、サービスアプリ2111が使用する秘密鍵を一時的に保持するための領域である。アプリ鍵格納領域2122に一時保持される鍵は後述するフローによって鍵配送アプリ212に安全に配送され、さらにアプリ鍵格納領域2112に安全に設定される。アプリ鍵格納領域2122は、後述する一連の処理フローでエラーが発生した場合や、もしくは電源供給部23による電源供給が絶たれた場合に、その内容が消去されることが望ましいため、たとえばRAMに配置するのが望ましい。
 暗号通信鍵格納領域2123は、サービスアプリ2111等が使用する暗号通信鍵を一時的に保持するための領域である。暗号通信鍵格納領域2123に一時保持される鍵は後述するフローによって鍵配送アプリ212に安全に配送され、さらに暗号通信鍵格納領域2113に安全に設定される。暗号通信鍵格納領域2123は、後述する一連の処理フローでエラーが発生した場合や、もしくは電源供給部23による電源供給が絶たれた場合に、その内容が消去されることが望ましいため、たとえばRAMに配置するのが望ましい。
 暗号通信仮鍵格納領域2124は、暗号通信鍵の仮鍵を一時的に保持するための領域である。暗号通信仮鍵格納領域2124に一時保持される鍵は後述するフローによって鍵配送アプリ212に安全に配送され、さらに、この仮鍵によって鍵配送アプリ212とサービスアプリ管理ソフト211との間で認証を行うことで、鍵配送アプリ212からサービスアプリ管理ソフト211の配下に鍵を設定することが可能になる。暗号通信仮鍵格納領域2124は、後述する一連の処理フローでエラーが発生した場合や、もしくは電源供給部23による電源供給が絶たれた場合に、その内容が消去されることが望ましいため、たとえばRAMに配置するのが望ましい。
 鍵配送公開鍵格納領域2125と鍵配送秘密鍵格納領域2126は、公開鍵暗号方式に基づいた鍵ペアを格納する領域であり、鍵ペアのうち公開鍵を鍵配送公開鍵格納領域2125に、秘密鍵を鍵配送秘密鍵格納領域2126に格納する。鍵配送公開鍵格納領域2125や鍵配送秘密鍵格納領域2126は、所定の手段で付与される証明書等を合わせて格納できてもよい。これらに格納される鍵ペアは外部から鍵配送アプリ212に安全に鍵を配送するために使用される。これらに格納される鍵ペアは、秘密情報格納装置2の内部で生成され、特に、鍵配送秘密鍵格納領域2126に格納される秘密鍵は秘密情報格納装置2の外部に出力する手段が存在しないものである。したがって、鍵配送アプリ212は、公開鍵暗号方式に基づく鍵ペアを生成することができるようなプログラムを有しており、プログラムは例えば暗号処理部25を用いて鍵ペアの生成を行う。
 図3は、秘密情報格納装置2の記憶部21が有する格納領域に格納される鍵の情報の一例を示す図である。ここで示す鍵の情報は、後述するフローによって各種の格納領域に一時的または永続的に格納される。
 サービスアプリ管理ソフト211について説明する。アプリ鍵格納領域2112には、アプリ鍵2114が格納される。アプリ鍵2114は例えばサービスアプリ2111がサービスを実行するための認証鍵であることが考えられる。例えばサービス提供者は、アプリ鍵2114による認証が成功することで所定のサービスをユーザに提供することができ、ユーザはそのサービスを享受することができる。従って、アプリ鍵2114を、第三者に知られることなく、安全にサービスアプリ2111に設定することこそが、サービス提供者が提供するサービスのセキュリティの根幹である。アプリ鍵2114は例えば共通鍵方式または公開鍵方式の暗号鍵であることが考えられる。アプリ鍵2114の役割から、アプリ鍵格納領域2112はEEPROMやフラッシュなどの不揮発性のメモリに配置されることが望ましい。
 暗号通信鍵格納領域2113には、暗号通信鍵2115もしくは暗号通信仮鍵2116が格納される。暗号通信鍵2115は例えばサービスアプリ管理ソフト211もしくはサービスアプリ2111がサービスサーバ3と暗号通信路を確立して通信を行う際に使用される鍵である。図3に示してはいないが、例えば、サービスアプリ管理ソフト211の配下にサービスアプリ2111が複数あった場合、それらは分け隔てなく暗号通信鍵2115を暗号通信の確立に使用することができる。
 暗号通信仮鍵2116は、暗号通信鍵格納領域2113に暗号通信鍵2115が格納されるまで一時的に格納される鍵であり、カードアプリサーバ4から付与される。暗号通信仮鍵2116が格納された暗号通信鍵格納領域2113は、管理ソフト鍵2101による管理者権限での認証が成功したか、もしくは暗号通信仮鍵2116自身での認証が成功した場合に、その内容を書き換える要求を受け付けることができる。例えば後述するフローでは暗号通信仮鍵2116での認証が成功することにより、自身を暗号通信鍵2115に書き換える要求を受け付ける。
 暗号通信鍵2115と暗号通信仮鍵2116は例えば共通鍵方式または公開鍵方式の暗号鍵であることが考えられる。暗号通信鍵2115と暗号通信仮鍵2116の役割から、暗号通信鍵格納領域2113はEEPROMやフラッシュなどの不揮発性のメモリに配置されることが望ましい。
 次に、鍵配送アプリ212について説明する。アプリ鍵格納領域2122には、先述のアプリ鍵2114が一時的に格納される。アプリ鍵2114は後述するフローによって鍵配送アプリ212に安全に配送され、さらに、続くフローでアプリ鍵格納領域2112に安全に設定される。
 暗号通信鍵格納領域2123には、先述の暗号通信鍵2115が一時的に格納される。暗号通信鍵2115は後述するフローによって鍵配送アプリ212に安全に配送され、さらに、続くフローで暗号通信鍵格納領域2113に安全に設定される。
 暗号通信仮鍵格納領域2124は、先述の暗号通信仮鍵2116が一時的に格納される。暗号通信仮鍵2116は後述するフローによって鍵配送アプリ212に安全に配送され、さらに、この暗号通信仮鍵2116によって鍵配送アプリ212とサービスアプリ管理ソフト211との間で認証を行うことで、鍵配送アプリ212からサービスアプリ管理ソフト211の配下に暗号通信鍵2115とアプリ鍵2114とを設定することが可能になる。
 鍵配送公開鍵格納領域2125と鍵配送秘密鍵格納領域2126には、公開鍵暗号方式に基づいた鍵ペアである鍵配送公開鍵2127と鍵配送秘密鍵2128をそれぞれ格納する。鍵配送公開鍵2127と鍵配送秘密鍵2128は、所定の手段で付与される証明書等と合わせて格納されてもよい。鍵配送公開鍵2127と鍵配送秘密鍵2128は、外部から鍵配送アプリ212に安全にアプリ鍵2114や暗号通信鍵2115等を配送するために使用される。鍵配送公開鍵2127と鍵配送秘密鍵2128のペアは、秘密情報格納装置2の内部で生成され、特に、鍵配送秘密鍵2128は秘密情報格納装置2の外部に出力する手段が存在しないものである。公開鍵ペアの生成に時間がかかる場合、一度生成した鍵配送公開鍵2127と鍵配送秘密鍵2128を複数回の鍵配送に渡って使いまわしても良い。この場合、鍵配送公開鍵格納領域2125と鍵配送秘密鍵格納領域2126はEEPROMやフラッシュなどの不揮発性のメモリに配置されることが望ましい。
 図4はサーバが保持する鍵の一例を示す図である。図4ではサービスサーバ3、カードアプリサーバ4、および鍵配送サーバ5の最小限の構成と、それぞれが保持する鍵を示している。
 サービスサーバ3は、記憶部31と、制御部32と、ネットワーク通信部37と、を少なくとも備え、それらが互いに電気的に接続されている。記憶部31は、例えば不揮発性及び揮発性の半導体メモリや、ハードディスクなどであり、制御部32で実行されるプログラムや、プログラムが使用するデータ等を格納する。もしくはセンシティブな情報を格納する場合は耐タンパ機構等を備えたHSM(Hardware Security Module)などであっても良い。制御部32はCPUやGPUなどであり、サービスサーバ3全体の制御を司る。ネットワーク通信部37は他のサーバや情報端末1と通信を行うための構成部であり、例えばインターネット・プロトコル等を使用する有線LAN、無線LAN、WAN、HSPA、またはWiMAX等のネットワーク通信を行うためのモジュールである。記憶部31、制御部32、ネットワーク通信部37は必要に応じてサービスサーバ3に複数個存在することで、処理の高速化や冗長化を行ってもかまわない。
 記憶部31は、サービスアプリ2111と、暗号通信鍵2115と、アプリ鍵2114とを有する。それぞれの説明は先述したので省略する。暗号通信鍵2115やアプリ鍵2114は所定の方法によりサービスサーバ3で生成されてもよい。図4に示してはいないが、それぞれはデータベース等でユーザを特定する情報や秘密情報格納装置2を特定する情報と紐付けられていてもよい。
 カードアプリサーバ4は、記憶部41と、制御部42と、ネットワーク通信部47と、を少なくとも備え、それらが互いに電気的に接続されている。記憶部41は、例えば不揮発性及び揮発性の半導体メモリや、ハードディスクなどであり、制御部42で実行されるプログラムや、プログラムが使用するデータ等を格納する。もしくはセンシティブな情報を格納する場合は耐タンパ機構等を備えたHSMなどであっても良い。制御部42はCPUやGPUなどであり、カードアプリサーバ4全体の制御を司る。ネットワーク通信部47は他のサーバや情報端末1と通信を行うための構成部であり、例えばインターネット・プロトコル等を使用する有線LAN、無線LAN、WAN、HSPA、またはWiMAX等のネットワーク通信を行うためのモジュールである。記憶部41、制御部42、ネットワーク通信部47は必要に応じてカードアプリサーバ4に複数個存在することで、処理の高速化や冗長化を行ってもかまわない。
 記憶部41は、管理ソフト鍵2101と、暗号通信仮鍵2116とを有する。それぞれの説明は先述したので省略する。管理ソフト鍵2101や暗号通信仮鍵2116は所定の方法によってカードアプリサーバ4で生成されてもよい。暗号通信仮鍵2116については、場合によってはサービスサーバ3によって生成され、それがカードアプリサーバ4に通知されても構わない。また、図4に示してはいないが、それぞれはデータベース等でユーザを特定する情報や秘密情報格納装置2を特定する情報と紐付けられていてもよい。
 鍵配送サーバ5は、記憶部51と、制御部52と、ネットワーク通信部57と、を少なくとも備え、それらが互いに電気的に接続されている。記憶部51は、不揮発性及び揮発性の半導体メモリや、ハードディスクなどであり、制御部52で実行されるプログラムや、プログラムが使用するデータ等を格納する。もしくはセンシティブな情報を格納する場合は耐タンパ機構等を備えたHSMなどであっても良い。制御部52はCPUやGPUなどであり、鍵配送サーバ5全体の制御を司る。ネットワーク通信部57は他のサーバや情報端末1と通信を行うための構成部であり、例えばインターネット・プロトコル等を使用する有線LAN、無線LAN、WAN、HSPA、またはWiMAX等のネットワーク通信を行うためのモジュールである。記憶部51、制御部52、ネットワーク通信部57は必要に応じて鍵配送サーバ5に複数個存在することで、処理の高速化や冗長化を行ってもかまわない。
 記憶部51は、鍵配送マスター鍵2121を有する。鍵配送マスター鍵2121の説明は先述したので省略する。鍵配送マスター鍵2121は所定の方法によって鍵配送サーバ5で生成されてもよい。図4に示してはいないが、鍵配送マスター鍵2121はデータベース等でユーザを特定する情報や秘密情報格納装置2を特定する情報と紐付けられていてもよい。
 図5から図8は鍵配送システムの処理の一例を示した図である。図5から図8は分割して記述しているが一続きのフローである。フローは、一例として、秘密情報格納装置2の記憶部21に、管理ソフト210、管理ソフト鍵2101、鍵配送アプリ212、鍵配送マスター鍵2121が格納され、鍵配送アプリ212の各種格納領域は空の状態から開始する。また、サービスアプリ管理ソフト211及びその配下の構成要素はフローの中で作成または有効化されるものとする。ただし、フロー開始時の状態は必ずしも上記の内容に限定しない。例えば鍵配送アプリ212に鍵配送公開鍵2127と鍵配送秘密鍵2128が既に存在する状態から開始してもよいし、あるいは、サービスアプリ管理ソフト211やサービスアプリ2111が予め存在するがアプリ鍵2114や暗号通信鍵2115が未だ設定されていないといった状態から開始してもよい。そういった場合、前もって実施済みであるために不要となるステップは、フローにおいて省略することができる。
 図5では、鍵配送システムによる鍵配送に先立ち、サービスアプリ管理ソフト211の作成とサービスアプリ2111のインストール、および暗号通信仮鍵2116の設定を行う。
 サービスサーバ3は、秘密情報格納装置2に配信したいサービスアプリ2111をカードアプリサーバ4に前もって渡しておく(S101)。サービスアプリ2111を渡す方法はサーバ間でのSSL通信や暗号メールなどの暗号通信によって行っても良いし、物理媒体による引渡しなど、ネットワーク以外の方法を用いてもよい。S101はサービス提供者がサービスアプリ2111を用いたサービスを提供開始するよりも前に実行されるのが望ましい。
 鍵配送システム及びその前段となるサービスアプリ管理ソフト211の作成処理等は、ユーザがサービスを使用する意思を、制御ソフト111を通じて表明することで開始する(S102)。続いて制御ソフト111は端末ID1114をカードアプリサーバ4に通知することでインストール等の処理の開始をカードアプリサーバ4に知らせる(S103)。続いて制御ソフト111を通じてカードアプリサーバ4はユーザ認証を行う(S104)。ユーザ認証の手段は例えばパスワードの照合などが考えられる。これは不正なユーザが不正にサービスを享受することを防ぐために実施する。図5では便宜的にカードアプリサーバ4がユーザ認証を行っているが、他のサーバでユーザ認証を行っても構わない。ユーザの情報をサーバ間で対応付けることができればよい。続いてカードアプリサーバ4はサービスサーバ3と連携するためにユーザに関する必要な情報をサービスサーバ3に通知する(S105)。サービスサーバ3はこれによりインストール等の処理の開始を知ることができる。カードアプリサーバ4とサービスサーバ3の間の通信はSSLなどでセキュアに行うことが望ましい。
 S104が成功したら、続いて制御ソフト111は秘密情報格納装置2とカードアプリサーバ4の中継を行う処理に入る(S106)。中継処理は、カードアプリサーバ4が生成したコマンドをネットワーク通信部17から取得し、そのコマンドを通信部14から秘密情報格納装置2に送付し、その結果として秘密情報格納装置2から得たレスポンスを、ネットワーク通信部17を介してカードアプリサーバ4に通知する、という処理である。以降のステップで制御ソフト111の中継処理を細かく記述することはしないが、この中継処理によってカードアプリサーバ4は秘密情報格納装置2にステップに応じたコマンドを送付し、そのレスポンスを取得することができる。また、カードアプリサーバ4が生成するコマンドが複数個まとめられるものであれば、制御ソフト111は複数のコマンドをまとめて受け取り、順次、秘密情報格納装置2に送付しても構わない。秘密情報格納装置2から得られる結果も複数個をまとめてカードアプリサーバ4に返送することが考えられる。このとき、コマンドを秘密情報格納装置2に順次送付する過程で秘密情報格納装置2からエラー状態を示すレスポンスを取得した場合は、残りのコマンドの送付を中断しその段階で結果をカードアプリサーバ4に通知しても良い。
 S106による中継処理により、カードアプリサーバ4は、管理ソフト210と、管理ソフト鍵2101で相互認証を行う(S107、S108)。相互認証が成功したら管理ソフト鍵2101に基づいて暗号通信路を構築する。このときの暗号鍵は管理ソフト鍵2101から派生させた鍵を用いてもよい。続いてカードアプリサーバ4は暗号通信路を通じサービスアプリ管理ソフト211の作成を指示するコマンドを管理ソフト210に送付する(S109)。これを受けた管理ソフト210は暗号通信路格納領域2113を含むサービスアプリ管理ソフト211を記憶部21に作成する(S110)。当該処理はサービスアプリ管理ソフト211のプログラムを記憶部21にダウンロードする処理でもよいし、あるいは、プログラムは前もって記憶部21に格納しておき、S110でプログラムを有効化する処理でも構わない。
 続いてカードアプリサーバ4は暗号通信仮鍵2116の設定を指示するコマンドを管理ソフト210に送付する(S111)。暗号通信仮鍵2116は、例えば、コマンドの内容に含んでもよいし、予め同じ値の暗号通信仮鍵2116を共有していてもよい。コマンドを受けた管理ソフト210は、暗号通信仮鍵2116を暗号通信鍵格納領域2113に設定する(S112)。
 続いてカードアプリサーバ4はサービスアプリ2111のインストールを指示するコマンドを管理ソフト210に送付する(S113)。コマンドを受けた管理ソフト210は、アプリ鍵管理領域2112を含むサービスアプリ2111を記憶部21にインストールする(S114)。当該処理はサービスアプリ2111のプログラムを記憶部21にダウンロードする処理でもよいし、あるいは、プログラムは前もって記憶部21に格納しておき、S114でプログラムを有効化する処理でも構わない。
 続いてカードアプリサーバ4は暗号通信仮鍵2116をサービスサーバ3に通知する(S115)。カードアプリサーバ4とサービスサーバ3の間の通信はSSLなどでセキュアに行うことが望ましい。S115は必ずしもS113やS114の後に実行されるとは限らず、前もって実施していても構わない。また、暗号通信仮鍵2116がサービスサーバ3から予め与えられた値だった場合はS115で暗号通信仮鍵2116を通知する必要はないが、インストールが完了したことは通知することが望ましい。
 図6では、図5のフローに続き、鍵配送システムによる鍵配送を行うための鍵ペアの秘密情報格納装置2内部での生成と、生成した公開鍵のサービスサーバ3への通知を行う。
 サービスサーバ3はS105で受けたユーザ情報を適当なタイミングで鍵配送サーバ5に送付する(S201)。S115の通知を受けたことをきっかけとしてもよいしそれより前でも構わない。サービスサーバ3と鍵配送サーバ5の通信はSSLなどでセキュアに行うことが望ましい。S201などのフローで示しているユーザ情報のサーバ間での共有の仕方は一例である。サーバごとにユーザ認証してもよいし、どこか一箇所のサーバでユーザ認証した情報を信頼できる方法で共有してもよい。
 続いて制御ソフト111は端末ID1114を鍵配送サーバ5に通知することで鍵配送等の処理の開始を鍵配送サーバ5に知らせる(S202)。制御ソフト111はS106と同様に、秘密情報格納装置2と鍵配送サーバ5の中継を行う処理に入る(S203)。中継処理は、鍵配送サーバ5が生成したコマンドをネットワーク通信部17から取得し、そのコマンドを通信部14から秘密情報格納装置2に送付し、その結果として秘密情報格納装置2から得たレスポンスを、ネットワーク通信部17を介して鍵配送サーバ5に通知する、という処理である。以降のステップで制御ソフト111の中継処理を細かく記述することはしないが、この中継処理によって鍵配送サーバ5は秘密情報格納装置2にステップに応じたコマンドを送付しそのレスポンスを取得することができる。また、鍵配送サーバ5が生成するコマンドが複数個まとめられるものであれば、制御ソフト111は複数のコマンドをまとめて受け取り、順次、秘密情報格納装置2に送付しても構わない。秘密情報格納装置2から得られる結果も複数個をまとめて鍵配送サーバ5に返送することが考えられる。このとき、コマンドを秘密情報格納装置2に順次送付する過程で秘密情報格納装置2からエラー状態を示すレスポンスを取得した場合は、残りのコマンドの送付を中断しその段階で結果を鍵配送サーバ5に通知しても良い。
 鍵配送サーバ5は、鍵配送アプリ212と、鍵配送マスター鍵2121で相互認証を行う(S204、S205)。相互認証が成功したら鍵配送マスター鍵2121に基づいて暗号通信路を構築してもよい。このときの暗号鍵は鍵配送マスター鍵2121から派生させた鍵を用いてもよい。
 続いて鍵配送サーバ5は、鍵配送のための鍵ペアを秘密情報格納装置2の内部で生成するように指示するコマンドを鍵配送アプリ212に送付する(S206)。コマンドを受けた鍵配送アプリ212は、暗号処理部25により、鍵配送公開鍵2127と鍵配送秘密鍵2128の鍵ペアを生成し、鍵配送公開鍵2127を鍵配送公開鍵格納領域2125に格納し、鍵配送秘密鍵2128を鍵配送秘密鍵格納領域2126に格納する(S207)。鍵ペアの生成に処理時間を要する場合は、鍵ペアの生成を前もって実行しておいても構わない。
 続いて鍵配送サーバ5は、鍵配送公開鍵2127を読み出すためのコマンドを鍵配送アプリ212に送付し(S208)、それに応じて鍵配送アプリ212は鍵配送公開鍵2127を送出する(S209)。
 鍵配送公開鍵2127を受け取った鍵配送サーバ5は、必要に応じて所定の方法で公開鍵証明書を付与する(S210)。鍵配送公開鍵2127に付与する公開鍵証明書は、サービサーバ3が信頼している秘密鍵で署名するなど、公開鍵証明書をサービスサーバ3が検証することで鍵配送公開鍵2127を信頼することができるようにしておく。作成した公開鍵証明書は必要に応じて鍵配送アプリ212に送付し、秘密情報格納装置2の内部に格納しておいてもよい。
 続いて、鍵配送サーバ5は、鍵配送公開鍵2127と公開鍵証明書をサービスサーバ3に通知する(S211)。
 図7では、図6のフローに続き、サービスサーバ3が持つ鍵を公開鍵で暗号化し、秘密情報格納装置2に送付する。
 サービスサーバ3は鍵配送公開鍵2127の公開鍵証明書を検証する(S301)。鍵配送公開鍵2127が信頼できるものであれば、鍵配送公開鍵2127で、暗号通信鍵2115と、暗号通信仮鍵2116と、アプリ鍵2114を、暗号化する(S302)。続いて暗号化された鍵らを鍵配送サーバ5に送付する(S303)。
 制御ソフト111はS203と同様に、秘密情報格納装置2と鍵配送サーバ5の中継を行う(S304)。S203とS304は続きの処理であっても構わない。制御ソフト111は、続くS305にかかるコマンドを取得するために鍵配送サーバ5をポーリングするか、あるいは、鍵配送サーバ5からのプッシュ型の通信によって、暗号化された鍵らの準備ができたことを知ることができる。
 続いて、鍵配送サーバ5は、暗号化された鍵らを鍵配送アプリ212に送付するコマンドを生成し、鍵配送アプリ212に送ると共に復号化を指示する(S305)。コマンドを受け取った鍵配送アプリ212は、暗号化された鍵らを鍵配送秘密鍵2128で復号化し、暗号通信鍵2115を暗号通信鍵格納領域2123に格納し、暗号通信仮鍵2116を暗号通信仮鍵格納領域2124に格納し、アプリ鍵2114をアプリ鍵格納領域2122に格納する(S306)。
 鍵配送公開鍵2127で暗号化された鍵らは、鍵配送公開鍵2127の対となる鍵配送秘密鍵2128でのみ復号化できる。鍵配送公開鍵2127と鍵配送秘密鍵2128は、S207において秘密情報格納装置2の内部で生成されたものであり、特に、鍵配送秘密鍵2128は秘密情報格納装置2の外部には一切存在しない。したがって、鍵配送公開鍵2127で暗号化された鍵らは、通信路に存在する鍵配送サーバ5や制御ソフト111を含め、秘密鍵情報格納装置2を除いては一切復号化することができない。
 図8では、図7のフローに続き、鍵配送アプリ212に一時保存したサービス提供者の鍵らをサービスアプリ管理ソフト211とサービスアプリ2111に安全に設定する。
 制御ソフト111は、S304等でサーバと秘密情報格納装置2を中継したのと同じように、鍵配送ソフト212とサービスアプリ管理ソフト211及びサービスアプリ2111との間のコマンド・レスポンスを中継する。鍵配送アプリ212にコマンドの生成指示を送出し、その返答として得られたコマンドをサービスアプリ管理ソフト211やサービスアプリ2111に転送する処理を順次行っていく(S401、S404、S407、S410)。このとき制御ソフト111は鍵配送アプリ212が生成するコマンドの内容を把握している必要はなく、例えば、鍵配送アプリ212がその内部にプログラムとして持つアルゴリズムに則って、まだコマンドを送付したいのか、あるいは、もうコマンドの送付は完了したのか、という情報を得られればよい。コマンドの回数が予め決まっているならば制御ソフト111の内部でコマンド生成指示の回数を数えていればよいし、あるいは鍵配送アプリ212からのレスポンスの一部に、コマンドの送付が完了したか否かという情報を含めてもよい。
 以降のステップにおいて制御ソフト111による中継処理について細かく述べることはしないが、いずれのステップにおいても、鍵配送アプリ212は、制御ソフト111の要求に応じる形で、送付したいコマンドを通信部24を通じて制御ソフト111に返答し、制御ソフト111は、通信部14から受け取ったコマンドを、再度、通信部14を通じて秘密情報格納装置2に送出し、さらに、送出されたコマンドは通信部24を介して、サービスアプリ管理ソフト211やサービスアプリ2111が受け取る。サービスアプリ管理ソフト211やサービスアプリ211からのレスポンスは逆の経路をたどって鍵配送アプリ212に届けられる。上記の処理を実現するにあたり、秘密情報格納装置2は、通信部24を通じて、制御ソフト111と論理的に複数の通信チャネルを同時に確立する機能を有する必要がある。この機能としては、例えばJavaCard仕様に則った論理チャネルの仕組みが適用できる。
 鍵配送アプリ212と、サービスアプリ管理ソフト211は、まず、それぞれが別々に参照する暗号通信仮鍵2116で相互認証し、暗号通信路を確立する(S402、S403)。このとき鍵配送アプリ212は暗号通信仮鍵格領域2124に格納された暗号通信仮鍵2116を参照し、サービスアプリ管理ソフト211は暗号通信鍵格納領域2113に格納された暗号通信仮鍵2116を参照する。相互認証が成功したら、鍵配送アプリ212は、暗号通信鍵2115を送付するコマンドを生成し、サービスアプリ管理ソフト211に送付する(S405)。コマンドを受けたサービスアプリ管理ソフト211は、受け取った暗号通信鍵2115を暗号通信鍵格納領域2113に格納する(S406)。このとき、もともと暗号通信鍵格納領域2113に格納されていた暗号通信仮鍵2116は破棄してしまって構わない。
 続いて、鍵配送アプリ212と、サービスアプリ2111は、それぞれが別々に参照する暗号通信鍵2115で相互認証し、暗号通信路を確立する(S408、S409)。このとき鍵配送アプリ212は暗号通信鍵格領域2123に格納された暗号通信鍵2115を参照し、サービスアプリ管理ソフト211は暗号通信鍵格納領域2113に格納された暗号通信鍵2115を参照する。相互認証が成功したら、鍵配送アプリ212は、アプリ鍵2114を送付するコマンドを生成し、サービスアプリ2111に送付する(S411)。コマンドを受けたサービスアプリ2111は、受け取ったアプリ鍵2114をアプリ鍵格納領域2112に格納する(S412)。
 必要な鍵を設定する処理が正しく完了したら、制御ソフト111は鍵配送アプリ212に、一時的に保持した鍵を消去する指示を出す(S413)。コマンドを受けた鍵配送アプリ212は、暗号通信鍵格納領域2123と、暗号通信仮鍵格納領域2124と、アプリ鍵格納領域2122に格納された鍵を消去する(S414)。あるいはS413の指示がなくとも、一連の鍵配送が完了したと判断した鍵配送アプリ212が自主的にこれらを消去してもよい。
 なお、一連の処理において、何らかのエラーが発生した場合、セキュリティ上の事由から、鍵配送アプリ212が一時保持した鍵を消去することが望ましい。制御ソフト111としてエラーを検知した場合、S413を実行する。鍵配送アプリ212としてエラーを検知した場合は自主的にS414を実行する。エラーの種類としては、各種鍵による認証の失敗、あるいは、情報端末1とサーバの通信失敗、もしくは情報端末1と秘密情報格納装置2の通信失敗などが考えられる。また秘密情報格納装置2の電源供給部23が情報端末1から電源を得ていた場合、情報端末1から離れたり引き抜かれたりした場合に電源供給が停止し、揮発メモリに格納された鍵の情報が消去されるように制御することが望ましい。また、情報端末1の電源が空になった場合(または、空になりそうな場合)に鍵情報を消去しても良い。鍵情報の消去処理により、第三者に鍵情報が漏れるリスクをさらに低減することができる。
 S414までが正しく完了した場合、制御ソフト111は鍵配送サーバ5に完了通知を送付する(S415)。完了通知を受け取った鍵配送サーバ5は、その旨をサービスサーバ3に通知する(S416)。そうすることで、サービスサーバ3は当該ユーザがサービスを享受できる状態になったことを知ることができる。
 なお、フローに記してはいないが、情報端末1または秘密情報格納装置2の処理において何らかのエラーが発生した場合は、その旨を、コマンド生成の主体となっているサーバにその都度通知することが望ましい。
 またフローに明示してはいないが、制御ソフト111は、必要に応じて、そのとき行っている処理を表示部15によって適宜ユーザに通知しても構わない。特にS415が完了した場合はその旨を表示部15によってユーザに通知するのが望ましい。このように処理することにより、ユーザは一連の処理が完了し、サービスを享受できる状態になったことを知ることができる。
 またフローでは各ステップ間の情報のやり取りを双方向矢印で示しているが、実際には、コマンドに対するレスポンスのペアを成している。また、各ステップ間の情報のやり取りを一つの双方向矢印で示している場合であっても、その中に複数のコマンド・レスポンスを含んでいても何ら問題ない。
 以上説明した本実施例によれば、サービス提供者は誰にも鍵情報を露見することなく、鍵情報をユーザに配送することができるため、サービス提供者が提供するサービスのセキュリティの質を向上することができる。また、サービス提供者は第三者組織などが運用するサーバ等を安全に使用することができる。
 また、鍵配送公開鍵と鍵配送秘密鍵とを秘密情報格納装置の内部で生成し、特に、鍵配送秘密鍵は秘密情報格納装置の外部には一切存在しないこととなるため、秘密鍵情報格納装置を除いては、アプリ鍵等を一切復号化することができない。したがって、アプリ鍵等を第三者に知られることなく安全に配信することができる。
 また、鍵配送アプリとサービスアプリ管理ソフトとの間で暗号通信を行うことにより、情報端末を介してアプリ鍵が外部に漏洩することがない。
 さらに、既存のサービスアプリやシステムを改変することなく、従来よりもセキュリティの質を向上することができる。
 実施例2では、実施例1で説明した鍵配送サーバ5の役割を、カードアプリサーバ4が兼ねる場合の例を説明する。実施例2において、実施例1の構成等と重複する構成等については、その説明を省略する。
 図9は、本実施例に係る鍵配送システムの一例を示す図である。本実施例に係る鍵配送システムは、情報端末1と、サービスサーバ3と、カードアプリサーバ4とが、通信により相互に接続している。さらに、情報端末1は、秘密情報格納装置2と通信により相互に接続されている。それぞれは図9で示していない経路によって接続されていても構わない。
 カードアプリサーバ4は、ネットワーク等を通じて他のサーバや情報端末1と通信を行うサーバである。カードアプリサーバ4は実施例1におけるその役割に加え、実施例1における鍵配送サーバ5の役割も兼ねる。カードアプリサーバ4は秘密情報格納装置2で動作するアプリケーションを保持する。カードアプリサーバ4は秘密情報格納装置2を管理者権限で操作するために必要な認証鍵などの情報を管理する。秘密情報格納装置2に対し管理者権限で認証を行うことで、秘密情報格納装置2に新たにアプリケーションをインストールするなどの様々な操作を行うことができる。カードアプリサーバ4は、例えばモバイルネットワークオペレータや、TSMと呼ばれる第三者組織などが運用することが考えられる。カードアプリサーバ4は、サービス提供者から預かったアプリケーションデータや、秘密情報格納装置2を所持するユーザの情報などを保持し、情報端末1等からの要求を受けて所定の認証コマンドやインストールコマンドが生成できる構成等を有している。
 さらに、カードアプリサーバ4は、秘密情報格納装置2で動作するアプリケーション等が使用する鍵を安全に秘密情報格納装置2に配送するための構成を有する。カードアプリサーバ4は、後述する鍵配送の機能を兼ねた管理ソフト210を介して、サービスサーバ3で管理する秘密鍵等をアプリケーション等に配送する。カードアプリサーバ4は、先述の機能に加えて、公開鍵暗号を用いたPKIを実行するためのシステム等が動作していることが考えられる。
 図10は、情報端末1および秘密情報格装置2の機能構成の一例を示す図である。上記の通り、実施例1の構成等と重複する構成等については、その説明を省略する。
 情報端末1が備える記憶部11は、制御ソフト111を有し、制御ソフト111は、例えばサービスサーバ情報1111と、カードアプリサーバ情報1112と、端末ID1114を有する。実施例1では鍵配送サーバ情報1113を有していたが、本実施例では鍵配送の役割をカードアプリサーバ4が兼ねるため、記載を省いている。
 秘密情報格納装置2が備える記憶部21は、例えば管理ソフト210と、サービスアプリ管理ソフト211とを備える。実施例1では鍵配送アプリ212を有していたが、本実施例では鍵配送アプリ212の役割を管理ソフト210が兼ねるため、記載を省いている。なお、後述する図13からのフローでは、サービスアプリ管理ソフト211はまだ記憶部21に存在しない状態から開始する。
 管理ソフト210は、秘密情報格納装置2を管理者権限で操作することができるソフトウェアであり、制御部22によって実行される。さらに、本実施例では、管理ソフト210は、サービスアプリ2111もしくはサービスアプリ管理ソフト211が使用する秘密鍵等をカードアプリサーバ4から安全に受け取る役割も兼ねる。
 管理ソフト210は、通信部24から受けとった要求に受け答える形で動作する。管理ソフト210は、管理ソフト鍵2101と、鍵配送公開鍵格納領域2125と、鍵配送秘密鍵格納領域2126とを有する。図10では便宜的に管理ソフト210の内部にこれらを有するように記載しているが、物理的には、これらは記憶部21のある領域に書き込まれたデータまたは領域そのものであり、それを管理ソフト210が参照できるようになっていると考えられる。ただし管理ソフト210以外は管理ソフト鍵2101と鍵配送公開鍵格納領域2125と鍵配送秘密鍵格納領域2126とを参照することはできない。管理ソフト鍵2101は例えば共通鍵方式または公開鍵方式の暗号鍵であることが考えられる。
 通信部24から受けた認証要求により、管理ソフト鍵2101による認証が成功した場合、管理ソフト210は要求に応じて管理者権限を行使することができる。管理者権限により、管理ソフト210は、サービスアプリ管理ソフト211の新規作成、サービスアプリ管理ソフト211への暗号通信鍵の設定、及びサービスアプリのロードやインストールなどを実行することができる。さらに、管理ソフト210は、カードアプリサーバ4から公開鍵暗号により受け取った秘密鍵を、後述するフローでサービスアプリ2111もしくはサービスアプリ管理ソフト211に設定する。あるいは、実施例1と同様に、管理ソフト210は一時保持した秘密鍵等をサービスアプリ管理ソフト211やサービスアプリ2111に安全に設定するための要求を生成するロジックを備えていてもよい。管理ソフト210としては、例えばJavaCard仕様に則ったISDやAMSD、あるいはSSDなどが考えられる。管理ソフト210としては、例えばJavaCard仕様に則ったISDやAMSDやSSDなどが考えられる。
 鍵配送公開鍵格納領域2125と鍵配送秘密鍵格納領域2126は、公開鍵暗号方式に基づいた鍵ペアを格納する領域であり、鍵ペアのうち公開鍵を鍵配送公開鍵格納領域2125に、秘密鍵を鍵配送秘密鍵格納領域2126に格納する。鍵配送公開鍵格納領域2125や鍵配送秘密鍵格納領域2126には、所定の手段で付与される証明書等を合わせて格納できてもよい。これらに格納される鍵ペアは外部から管理ソフト210に安全に鍵を配送するために使用される。これらに格納される鍵ペアは、秘密情報格納装置2の内部で生成され、特に、鍵配送秘密鍵格納領域2126に格納される秘密鍵は秘密情報格納装置2の外部に出力する手段が存在しないものである。したがって、管理ソフト210は、公開鍵暗号方式に基づく鍵ペアを生成することができるようなプログラムを有しており、プログラムは例えば暗号処理部25を用いて鍵ペアの生成を行う。
 図11は、秘密情報格納装置2の記憶部21が有する格納領域に格納される鍵の情報の一例を示す図である。ここで示す鍵の情報は、後述するフローによって各種の格納領域に一時的または永続的に格納される。上記の通り、実施例1の構成等と重複する構成等については、その説明を省略する。
 鍵配送公開鍵格納領域2125と鍵配送秘密鍵格納領域2126には、公開鍵暗号方式に基づいた鍵ペアである鍵配送公開鍵2127と鍵配送秘密鍵2128をそれぞれ格納する。鍵配送公開鍵2127と鍵配送秘密鍵2128は、所定の手段で付与される証明書等が合わさっていてもよい。鍵配送公開鍵2127と鍵配送秘密鍵2128は、外部から管理ソフト210に安全にアプリ鍵2114や暗号通信路鍵2115等を配送するために使用される。鍵配送公開鍵2127と鍵配送秘密鍵2128のペアは、秘密情報格納装置2の内部で生成され、特に、鍵配送秘密鍵2128は秘密情報格納装置2の外部に出力する手段が存在しないものである。公開鍵ペアの生成に時間がかかる場合、一度生成した鍵配送公開鍵2127と鍵配送秘密鍵2128を複数回の鍵配送に渡って使いまわしても良い。この場合、鍵配送公開鍵格納領域2125と鍵配送秘密鍵格納領域2126はEEPROMやフラッシュなどの不揮発性のメモリに配置されることが望ましい。
 図12はサーバが保持する鍵の一例を示す図である。図12ではサービスサーバ3およびカードアプリサーバ4の最小限の構成と、それぞれが保持する鍵を示している。上記の通り、実施例1の構成等と重複する構成等については、その説明を省略する。
 カードアプリサーバ4は、記憶部41に管理ソフト鍵2101を有する。管理ソフト鍵2101は所定の方法によってカードアプリサーバ4で生成されてもよい。また、図12に示してはいないが、データベース等でユーザを特定する情報や秘密情報格納装置2を特定する情報と紐付けられていてもよい。
 図13から図15は本実施例に係る鍵配送システムの処理の一例を示した図である。図13から図15は分割して記述しているが一続きのフローである。なお、図13から図15のフローは、一例として、秘密情報格納装置2の記憶部21に管理ソフト210と管理ソフト鍵2101が格納され、管理ソフト210の鍵配送公開鍵格納領域2125と管理ソフト210の鍵配送公開鍵格納領域2126には、鍵配送時に使用する公開鍵ペアが入っていない状態から開始するものとする。また、サービスアプリ管理ソフト211及びその配下の構成要素はフローの中で作成または有効化されるものとする。ただし、フロー開始時の状態は必ずしも上記の内容に限定しない。例えば管理ソフト210に鍵配送公開鍵2127と鍵配送秘密鍵2128が既に存在する状態から開始してもよいし、あるいは、サービスアプリ管理ソフト211やサービスアプリ2111が予め存在するが、アプリ鍵2114や暗号通信鍵2115が未だ設定されていないといった状態から開始してもよい。そういった場合、前もって実施済みであるために不要となるステップは、フローにおいて省略することができる。
 図13では、鍵配送システムによる鍵配送に先立ち、サービスアプリ管理ソフト211の作成とサービスアプリ2111のインストールを行う。上記の通り、実施例1の構成等と重複する構成等については、その説明を省略する。
 サービスサーバ3等はユーザがサービスを使用する意思を制御ソフト111を通じて表明することで、サービスアプリ管理ソフト211の作成処理等を開始し、S501~S510の処理を行う。続いて、カードアプリサーバ4はサービスアプリ2111のインストールを指示するコマンドを管理ソフト210に送付し(S511)、コマンドを受けた管理ソフト210は、アプリ鍵管理領域2112を含むサービスアプリ2111を記憶部21にインストールする(S512)。
 図14では、図13のフローに続き、鍵配送を行うための鍵ペアの秘密情報格納装置2内部での生成と、生成した公開鍵のサービスサーバ3への通知を行う。
 制御ソフト111は秘密情報格納装置2とカードアプリサーバ4の中継を行う処理に入る(S601)。カードアプリサーバ4は、鍵配送のための鍵ペアを秘密情報格納装置2の内部で生成するように指示するコマンドを管理ソフト210に送付する(S602)。コマンドを受けた管理ソフト210は、暗号処理部25により、鍵配送公開鍵2127と鍵配送秘密鍵2128の鍵ペアを生成し、鍵配送公開鍵2127を鍵配送公開鍵格納領域2125に格納し、鍵配送秘密鍵2128を鍵配送秘密鍵格納領域2126に格納する(S603)。鍵ペアの生成に処理時間を要する場合は、鍵ペアの生成を前もって実行しておいても構わない。
 続いてカードアプリサーバ4は、鍵配送公開鍵2127を読み出すためのコマンドを管理ソフト210に送付し(S604)、それに応じて管理ソフト210は鍵配送公開鍵2127を送出する(S605)。
 鍵配送公開鍵2127を受け取ったカードアプリサーバ4は、必要に応じて所定の方法で公開鍵証明書を付与する(S606)。鍵配送公開鍵2127に付与する公開鍵証明書をサービサーバ3が信頼している秘密鍵で署名するなどして、公開鍵証明書をサービスサーバ3が検証することで鍵配送公開鍵2127を信頼することができるようにしておく。作成した公開鍵証明書は必要に応じて管理ソフト210に送付してもよいし、秘密情報格納装置2の内部に格納しておいてもよい。
 続いて、カードアプリサーバ4は、鍵配送公開鍵2127と公開鍵証明書をサービスサーバ3に通知する(S607)。
 図15では、図14のフローに続き、サービスサーバ3が持つ鍵を公開鍵で暗号化し、秘密情報格納装置2に送付する。
 サービスサーバ3は鍵配送公開鍵2127の公開鍵証明書を検証する(S701)。鍵配送公開鍵2127が信頼できるものであれば、鍵配送公開鍵2127で、暗号通信鍵2115と、アプリ鍵2114を暗号化する(S702)。続いて暗号化された鍵らをカードアプリサーバ4に送付する(S703)。
 制御ソフト111は秘密情報格納装置2とカードアプリサーバ4の中継を行う(S704)。S601とS704は続きの処理であっても構わない。制御ソフト111は、続くS705にかかるコマンドを取得するためにカードアプリサーバ4をポーリングする、あるいは、カードアプリサーバ4からのプッシュ型の通信によって、暗号化された鍵らの準備ができたことを知ることができる。
 続いて、カードアプリサーバ4は、暗号化された鍵らを管理ソフト210に送付するコマンドを生成し、管理ソフト210に送ると共に復号化を指示する(S705)。コマンドを受け取った管理ソフト210は、暗号化された鍵らを鍵配送秘密鍵2128で復号化し、暗号通信鍵2115をサービスアプリ管理ソフト211の暗号通信鍵格納領域2113に格納し、アプリ鍵2114をサービスアプリ2111のアプリ鍵格納領域2112に格納する(S706)。
 S706までが正しく完了した場合、制御ソフト111はカードアプリサーバ4に完了通知を送付する(S707)。完了通知を受け取ったカードアプリサーバ4は、その旨をサービスサーバ3に通知する(S708)。そうすることで、サービスサーバ3は当該ユーザがサービスを享受できる状態になったことを知ることができる。
 なお、実施例2では管理ソフト210が秘密鍵を直接サービスアプリ管理ソフト211及びサービスアプリ2111に設定する例を記載したが、実施例1のように暗号通信仮鍵等を用いて制御ソフト111経由で鍵を設定する方法を取っても構わない。このように処理することにより、情報端末を介してアプリ鍵が外部に漏洩する可能性をより低減することができる。
 その他、実施例2の内容は実施例1を初めとするその他の実施例に記載する内容と適宜組み合わせてもよい。
 以上説明した本実施例によれば、サービス提供者は誰にも鍵情報を露見することなく、鍵情報をユーザに配送することができるため、サービス提供者が提供するサービスのセキュリティの質を向上することができる。また、サービス提供者は第三者組織などが運用するサーバ等を安全に使用することができる。
 また、鍵配送公開鍵と鍵配送秘密鍵とを秘密情報格納装置の内部で生成し、特に、鍵配送秘密鍵は秘密情報格納装置の外部には一切存在しないこととなるため、秘密鍵情報格納装置を除いては、アプリ鍵等を一切復号化することができない。したがって、アプリ鍵等を第三者に知られることなく安全に配信することができる。
 また、既存のサービスアプリやシステムを改変することなく、従来よりもセキュリティの質を向上することができる。
 さらに、鍵配送サーバの役割をカードアプリサーバが兼ねるため、より簡単な構成で高いセキュリティの質を確保することができる。
 実施例3では、実施例1で説明した鍵配送システムをより一般化し、鍵配送のためのアルゴリズム等のロジックを、秘密鍵と合わせて鍵配送サーバ5が鍵配送アプリ212に送付する場合の例を説明する。実施例3において、実施例1および実施例2の構成等と重複する構成等については、その説明を省略する。
 実施例3の鍵配送システムは、実施例1と同様に、情報端末1と、サービスサーバ3と、カードアプリサーバ4と、鍵配送サーバ5とが、通信により相互に接続している。さらに、情報端末1は、秘密情報格納装置2と通信により相互に接続されている。
 図16は、秘密情報格装置2の機能構成の一例を示す図である。上記の通り、実施例1および実施例2の構成等と重複する構成等については、その説明を省略する。
 実施例3の秘密情報格納装置2が備える記憶部21は、図2で説明した要素に加え、鍵配送アプリ212に鍵配送ロジック格納領域2130を有する。鍵配送ロジック格納領域2130は、後述する図17および図18のフローで鍵配送アプリ212がカードアプリ管理ソフト211やカードアプリ2111に秘密鍵を設定する際に必要なコマンド等を作成するためのアルゴリズムを格納するための領域である。鍵配送ロジック格納領域2130は、図16では便宜的に鍵配送アプリ212の内部にこれを備えるように記載しているが、物理的には記憶部21のある領域であり、鍵配送アプリ212のみがこれを参照できるものとする。鍵配送ロジック格納領域2130に配送されるアルゴリズムは、例えばコマンド列や分岐処理に対し所定の符号化を施したものであっても構わないし、スクリプト言語のような形態を取っていても構わない。鍵配送ロジック格納領域2130は、後述する一連の処理フローでエラーが発生した場合や、電源供給部23による電源供給が絶たれた場合に、その内容が消去されることが望ましいため、たとえばRAMに配置するのが望ましい。
 図17と図18は、本実施例に係る鍵配送システムの処理の一例を示した図である。図17と図18は分割して記述しているが一続きのフローであり、さらに、図17は、図6の次に続くフローである。図17では、図6のフローに続き、サービスサーバ3が持つ鍵を公開鍵で暗号化し、秘密情報格納装置2に送付する。さらに、鍵配送サーバ5は、これらの鍵を配送するためのロジックを合わせて配送する。
 S801~S806については、図7のS301~S306と同様であるため、説明を省略する。
 S806において鍵配送アプリ212が、受け取った秘密鍵らを復号化して所定の領域に格納した後、鍵配送サーバ5は、鍵配送のロジックを鍵配送アプリ212に通知する(S807)。通知を受けた鍵配送アプリ212は、受け取ったロジックを鍵配送ロジック格納領域2130に格納する(S808)。
 図18では、図17のフローに続き、鍵配送アプリ212に一時保存したサービス提供者の鍵らを、鍵配送ロジック格納領域2130に格納されたロジックに基づいて、サービスアプリ管理ソフト211とサービスアプリ2111に安全に設定する。
 制御ソフト111は、実施例1等でサーバと秘密情報格納装置2を中継したのと同じように、鍵配送アプリ212とサービスアプリ管理ソフト211及びサービスアプリ2111との間のコマンド・レスポンスを中継する。鍵配送アプリ212にコマンドの生成指示を送出し、その返答として得られたコマンドをサービスアプリ管理ソフト211やサービスアプリ2111に転送する処理を順次行っていく(S901、S904)。このとき制御ソフト111は鍵配送アプリ212が生成するコマンドの内容を把握している必要はなく、例えば、鍵配送アプリ212がその内部にプログラムとして持つアルゴリズムに則って、まだコマンドを送付したいのか、あるいは、もうコマンドの送付は完了したのか、という情報を得られればよい。鍵配送ロジック格納領域2130に格納されるロジックのコマンドの回数が予め決まっているならば制御ソフト111の内部でコマンド生成指示の回数を数えていればよいし、あるいは鍵配送アプリ212からのレスポンスの一部に、鍵配送ロジック格納領域2130に格納されるロジックのコマンドの送付が完了したか否かという情報を含めてもよい。
 鍵配送アプリ212は、鍵配送ロジック格納領域2130に格納されるロジックに基づき、暗号通信鍵2115を送付するコマンドを生成し、サービスアプリ管理ソフト211に送付する(S902)。コマンドを受けたサービスアプリ管理ソフト211は、受け取った暗号通信鍵2115を暗号通信鍵格納領域2113に格納する(S903)。このときにやりとりするコマンドは複数であって構わない。
 続いて、鍵配送アプリ212は、鍵配送ロジック格納領域2130に格納されるロジックに基づき、アプリ鍵2114を送付するコマンドを生成し、サービスアプリ2111に送付する(S905)。コマンドを受けたサービスアプリ2111は、受け取ったアプリ鍵2114をアプリ鍵格納領域2112に格納する(S906)。このときにやりとりするコマンドは複数であって構わない。
 必要な鍵を設定する処理が正しく完了したら、制御ソフト111は鍵配送アプリ212に、一時的に保持した鍵を消去する指示を出す(S907)。コマンドを受けた鍵配送アプリ212は、暗号通信鍵格納領域2123と、暗号通信仮鍵格納領域2124と、アプリ鍵格納領域2122とに格納された鍵と、鍵配送ロジック2130に格納されたロジックを消去する(S908)。あるいはS907の指示がなくとも、一連の鍵配送が完了したと判断した鍵配送アプリ212が自主的にこれらを消去してもよい。
 一連の処理において、何らかのエラーが発生した場合、セキュリティ上の事由から、鍵配送アプリ212が一時保持した鍵およびロジックを消去することが望ましい。制御ソフト111としてエラーを検知した場合、S907を実行する。鍵配送アプリ212としてエラーを検知した場合は自主的にS908を実行する。エラーの種類としては、各種鍵による認証の失敗、あるいは、情報端末1とサーバの通信失敗、もしくは情報端末1と秘密情報格納装置2の通信失敗などが考えられる。また秘密情報格納装置2の電源供給部23が情報端末1から電源を得ていた場合、情報端末1から離れたり引き抜かれたりした場合に電源供給が停止し、揮発メモリに格納された鍵の情報が消去されるように制御することが望ましい。
 S908までが完了した場合、制御ソフト111及び鍵配送サーバ5はS909およびS910の処理を実行する。
 以上説明した本実施例によれば、サービス提供者は誰にも鍵情報を露見することなく、鍵情報をユーザに配送することができるため、サービス提供者が提供するサービスのセキュリティの質を向上することができる。また、サービス提供者は第三者組織などが運用するサーバ等を安全に使用することができる。
 また、鍵配送公開鍵と鍵配送秘密鍵とを秘密情報格納装置の内部で生成し、特に、鍵配送秘密鍵は秘密情報格納装置の外部には一切存在しないこととなるため、秘密鍵情報格納装置を除いては、アプリ鍵等を一切復号化することができない。したがって、アプリ鍵等を第三者に知られることなく安全に配信することができる。
 また、鍵配送アプリとサービスアプリ管理ソフトとの間で暗号通信を行うことにより、情報端末を介してアプリ鍵が外部に漏洩することがない。
 また、既存のサービスアプリやシステムを改変することなく、従来よりもセキュリティの質を向上することができる。
 さらに、鍵配送ロジックを用いることにより、サービスアプリ等への鍵配送の詳細な方法を鍵配送アプリが予め知らなくとも、鍵配送を行う際にその方法も合わせて配送することができ、より柔軟な鍵配送システムを提供することができる。
 なお、本発明は上記した各実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した各実施例は本発明を分かりやすく説明するために詳細に説明されたものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
 また、上記の各構成、機能、処理部、処理手段等は、それらの一部または全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等、または、ICカード、SDカード、DVD等に置くことができる。なお、図19に示すように、各機能を実現するプログラム等をサーバ等に複製し、情報端末1、およびその他の端末、装置、機器、媒体等に有線または無線の通信回線等を介して提供するようにしても良い。この場合、ユーザは、端末等を操作して、サーバ等から必要なプログラム等をダウンロードし、端末や媒体等の記憶部にインストールさせることができる。
 また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
 また、実施例1から実施例3においては、秘密情報格納装置2が情報端末1に接続されて各実施例に記載した処理を行う例を主に説明したが、秘密情報格納装置2の機能、構成等が情報端末1に組み込まれ、情報端末1が秘密情報格納装置2の役割を兼ねても良い。
1    情報端末
2    秘密情報格納装置
3    サービスサーバ
4    カードアプリサーバ
5    鍵配送サーバ

Claims (9)

  1.  情報処理装置に接続可能な記録媒体であって、
     接続された前記情報処理装置と通信する通信部と、
     鍵情報を記録する記録部と、
     制御部とを備え、
     前記制御部は、
     第一の鍵情報と、該第一の鍵情報の対となる第二の鍵情報とを生成して前記記録部に記録し、記録された前記第一の鍵情報を前記情報処理装置を介して外部の装置に送信し、
     前記外部の装置において前記第一の鍵情報に基づいて暗号化された第三の鍵情報と第四の鍵情報とを、前記情報処理装置を介して受信し、
     受信した前記第三の鍵情報と前記第四の鍵情報とを前記第二の鍵情報を用いて復号化し、復号化された前記第三の鍵情報と前記第四の鍵情報とを用いて、所定のプログラムを実行する制御を行う
     ことを特徴とする記録媒体。
  2.  請求項1に記載の記録媒体であって、
     前記制御部は、
     復号化された前記第三の鍵情報を、復号化された前記第四の鍵情報を用いた暗号通信により前記情報処理装置を介して前記所定のプログラムに設定することによって、該所定のプログラムを実行する制御を行う
     ことを特徴とする記録媒体。
  3.  請求項1または請求項2に記載の記録媒体であって、
     前記通信部が前記情報処理装置との通信に失敗した場合、または、前記記録媒体と前記情報処理装置との接続が解除された場合に、前記第三の鍵情報を消去する
     ことを特徴とする記録媒体。
  4.  請求項2に記載の記録媒体であって、
     前記第三の鍵情報を前記所定のプログラムに設定した場合に、前記第三の鍵情報を消去する
     ことを特徴とする記録媒体。
  5.  請求項1乃至請求項4のいずれかに記載の記録媒体であって、
     前記通信部は、SDカードのインタフェースである
     ことを特徴とする記録媒体。
  6.  請求項1乃至請求項4のいずれかに記載の記録媒体であって、
     前記通信部は、ICカードのインタフェースである
     ことを特徴とする記録媒体。
  7.  記録媒体に、
     第一の鍵情報と、該第一の鍵情報の対となる第二の鍵情報とを生成して記録部に記録するステップと、
     記録された前記第一の鍵情報を通信部を介して外部の装置に送信するステップと、
     前記外部の装置において前記第一の鍵情報に基づいて暗号化された第三の鍵情報と第四の鍵情報とを、前記通信部を介して受信するステップと、
     受信した前記第三の鍵情報と前記第四の鍵情報とを、所定のプログラムを実行するために前記第二の鍵情報を用いて復号化するステップと、
     を実行させるためのプログラム。
  8.  請求項7に記載のプログラムであって、
     復号化された前記第三の鍵情報を、復号化された前記第四の鍵情報を用いた暗号通信により、前記記録媒体に接続された情報処理装置を介して前記所定のプログラムに設定するステップ
     を実行させるためのプログラム。
  9.  記録媒体に接続可能な情報処理装置と、該情報処理装置とは異なる外部の装置と通信可能な情報配信装置であって、
     前記情報処理装置と前記外部の装置と通信する通信部と、
     制御部とを備え、
     前記制御部は、
     前記情報処理装置を介して前記記録媒体に、第一の鍵情報と該第一の鍵情報の対となる第二の鍵情報とを生成する指示を送信し、
     前記情報処理装置を介して前記記録媒体から、前記第一の鍵情報を受信して認証し、
     認証した前記第一の鍵情報を前記外部の装置に送信し、
     前記外部の装置において前記第一の鍵情報に基づいて暗号化された第三の鍵情報と第四の鍵情報とを、前記外部の装置から受信し、
     前記情報処理装置を介して前記記録媒体に、受信した前記第三の鍵情報と前記第四の鍵情報とを送信し、
     前記記録媒体において前記第三の鍵情報と前記第四の鍵情報とが前記第二の鍵情報を用いて復号化された場合に、前記外部の装置に処理完了通知を送信する制御を行う
     ことを特徴とする情報配信装置。
PCT/JP2013/065771 2012-08-29 2013-06-07 記録媒体、プログラム、及び、情報配信装置 WO2014034216A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2012188219A JP5948185B2 (ja) 2012-08-29 2012-08-29 記録媒体、プログラム、及び、情報配信装置
JP2012-188219 2012-08-29

Publications (1)

Publication Number Publication Date
WO2014034216A1 true WO2014034216A1 (ja) 2014-03-06

Family

ID=50183040

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/065771 WO2014034216A1 (ja) 2012-08-29 2013-06-07 記録媒体、プログラム、及び、情報配信装置

Country Status (2)

Country Link
JP (1) JP5948185B2 (ja)
WO (1) WO2014034216A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109687959B (zh) 2018-12-29 2021-11-12 上海唯链信息科技有限公司 密钥安全管理系统和方法、介质和计算机程序

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003158513A (ja) * 2001-11-20 2003-05-30 Dainippon Printing Co Ltd Icカード、その書き込み方法及び書き込み装置並びにicカードシステム
JP2005202497A (ja) * 2004-01-13 2005-07-28 Ntt Data Corp アプリケーションパーソナライズシステム、サーバ装置、icカード及び携帯端末

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003158513A (ja) * 2001-11-20 2003-05-30 Dainippon Printing Co Ltd Icカード、その書き込み方法及び書き込み装置並びにicカードシステム
JP2005202497A (ja) * 2004-01-13 2005-07-28 Ntt Data Corp アプリケーションパーソナライズシステム、サーバ装置、icカード及び携帯端末

Also Published As

Publication number Publication date
JP2014045465A (ja) 2014-03-13
JP5948185B2 (ja) 2016-07-06

Similar Documents

Publication Publication Date Title
JP7257561B2 (ja) コンピュータに実装される方法、ホストコンピュータ、コンピュータ読み取り可能な媒体
US10341092B2 (en) Application specific certificate management
WO2019120091A1 (zh) 身份认证方法、系统及计算设备
CN106063183B (zh) 用于云辅助密码学的方法和装置
KR101712784B1 (ko) 글로벌 플랫폼 규격을 사용하는 발행자 보안 도메인에 대한 키 관리 시스템 및 방법
CN101605137B (zh) 安全分布式文件系统
US8761401B2 (en) System and method for secure key distribution to manufactured products
US10708047B2 (en) Computer-readable recording medium storing update program and update method, and computer-readable recording medium storing management program and management method
CN109587101B (zh) 一种数字证书管理方法、装置及存储介质
JP5365512B2 (ja) ソフトウェアicカードシステム、管理サーバ、端末、サービス提供サーバ、サービス提供方法及びプログラム
CN108924147B (zh) 通信终端数字证书签发的方法、服务器以及通信终端
WO2005088932A1 (en) Accessing protected data on network storage from multiple devices
EP2323065A1 (en) Method and device of sharing license between secure removable media
CN103003822A (zh) 对平台资源的域认证控制
CN110611657A (zh) 一种基于区块链的文件流处理的方法、装置及系统
JP2011082662A (ja) 通信装置及び情報処理方法及びプログラム
JP7135569B2 (ja) 端末登録システムおよび端末登録方法
JP2017152880A (ja) 認証システム、鍵処理連携方法、および、鍵処理連携プログラム
CN109815747A (zh) 基于区块链的离线审计方法、电子装置及可读存储介质
JP5288901B2 (ja) 鍵管理サーバ、端末、通信システム、鍵配信方法、鍵配信プログラム、鍵受信方法及び鍵受信プログラム
CN113438205A (zh) 区块链数据访问控制方法、节点以及系统
WO2019163040A1 (ja) アクセス管理システム、及びそのプログラム
CN102752308A (zh) 通过网络提供数字证书综合业务系统及其实现方法
JP5485452B1 (ja) 鍵管理システム、鍵管理方法、ユーザ端末、鍵生成管理装置、及びプログラム
JP5948185B2 (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: 13833051

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13833051

Country of ref document: EP

Kind code of ref document: A1