WO2015193945A1 - 更新プログラム及び方法、及び、管理プログラム及び方法 - Google Patents

更新プログラム及び方法、及び、管理プログラム及び方法 Download PDF

Info

Publication number
WO2015193945A1
WO2015193945A1 PCT/JP2014/065903 JP2014065903W WO2015193945A1 WO 2015193945 A1 WO2015193945 A1 WO 2015193945A1 JP 2014065903 W JP2014065903 W JP 2014065903W WO 2015193945 A1 WO2015193945 A1 WO 2015193945A1
Authority
WO
WIPO (PCT)
Prior art keywords
public key
client
server
key certificate
certificate
Prior art date
Application number
PCT/JP2014/065903
Other languages
English (en)
French (fr)
Inventor
丸山 秀史
Original Assignee
富士通株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 富士通株式会社 filed Critical 富士通株式会社
Priority to PCT/JP2014/065903 priority Critical patent/WO2015193945A1/ja
Priority to JP2016528666A priority patent/JP6573880B2/ja
Publication of WO2015193945A1 publication Critical patent/WO2015193945A1/ja
Priority to US15/377,374 priority patent/US10708047B2/en

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/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/045Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply hybrid encryption, i.e. combination of symmetric and asymmetric encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0869Network architectures or network communication protocols for network security for authentication of entities for achieving mutual authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • 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/006Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving public key infrastructure [PKI] trust models
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3268Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/062Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying encryption of the keys

Definitions

  • the present invention relates to a secure communication technology.
  • a public key certificate for verifying the electronic signature of the request source added to the transmission data is sent from the data request source to the data request destination.
  • the signature of the data received from the data request source is checked using the public key in the public key certificate, so that the received data is created at the correct request source. It is confirmed whether it is a thing.
  • the same public key certificate used for data signature verification is always used as long as the key pair (public key and private key) unique to the data request source is not updated. If so, there is a high possibility that the private key corresponding to the public key can be estimated, and if the private key is estimated, the data requesting client can be spoofed, and the data can be illegally used or tampered with. turn into.
  • both public key certificates are mutually authenticated, and then the public key received from the other party is received.
  • the public key received from the other party is received.
  • the validity of both temporary public keys is confirmed, and the temporary symmetric key is shared between the temporary public key received from the other party and one's temporary private key.
  • the temporary public key changes each time a communication environment is established, so it is difficult for a third party to estimate a temporary secret key corresponding to the temporary public key from communication data. For this reason, it is very difficult for a third party to decrypt and estimate the encrypted communication data.
  • the expiration date is set to be long and changed over a long period of time. It is used without.
  • the same public key certificate is continuously used for a long time, it becomes relatively easy for a third party to estimate a private key corresponding to the public key included in the public key certificate.
  • a private key of a client's public key certificate can be estimated by a third party
  • the third party can impersonate that client completely.
  • a third party can impersonate a client and acquire legitimate content.
  • the obtained legitimate content can be copied indefinitely and distributed to an unspecified number of people.
  • the present invention aims to enable a client's public key certificate to be updated securely.
  • a request for issuing the second public key certificate is made to the server, and the first public key certificate is issued.
  • the computer is caused to execute a process of performing connection confirmation using the second public key certificate.
  • a management program for a public key certificate used for confirming the validity of a client that has transmitted request data and the validity of the request data wherein the first public key certificate is used.
  • the temporary common key is shared with the client, and the second public key certificate issuance request from the client
  • a computer generates a key certificate, encrypts the second public key certificate with the temporary common key, and transmits the encrypted key certificate to the client.
  • a management method in which the computer executes the above process, a server, and a storage medium storing the program can be used.
  • the client's unique public key certificate and private key pair can be updated securely.
  • FIG. 22A shows the case of the related technology
  • FIG. 22B shows the case of the present embodiment.
  • FIG. 1 is a diagram for explaining an outline of a data communication system according to the present embodiment.
  • the data communication system 1000 in the data communication system 1000 according to this embodiment, one or more clients 5 and a server 100 are connected via a network 2. Communication between each client 5 and the server 100 is performed using data encrypted by PKI (Public Key Infrastructure). An outline of processing in which the client 5 updates the current generation client public key certificate 6k to the next generation client public key certificate 6k ′ will be described.
  • PKI Public Key Infrastructure
  • the client 5 performs the sharing process 21p of the temporary public key 3m with the server 100 by communication using PKI.
  • the client 5 holds the current generation client public key 6a and the current generation client private key 6b and the current generation client public key certificate 6k and the current generation client public key certificate 6k.
  • Data transmission from the client 5 to the server 100 uses the current generation client key pair 6p and the current generation client public key certificate 6k, and data encrypted by PKI is transmitted to the server 100.
  • the client 5 When the temporary public key 3m is shared between the client 5 and the server 100, the client 5 performs update processing 22p using the temporary public key 3m with the server 100. The client 5 generates the next generation client key pair 6p ′, encrypts the next generation client public key 6a ′ with the temporary public key 3m shared with the server 100, and then generates the next generation client public key certificate 6k ′ from the server 100. To get.
  • the server 100 corresponds to a center that provides the client 5 with various information such as text, still images, and moving images.
  • the user of the client 5 makes a predetermined contract with the provider operating the server 100, so that the server 100 provides information after confirming the validity of the client 5.
  • the data communication system 1000 provides the following ⁇ Mechanism I> and ⁇ Mechanism II>.
  • ⁇ Mechanism I> provides a mechanism to counter long-term estimation for the current generation client public key 6a.
  • ⁇ Mechanism II> provides a mechanism for dealing with an unauthorized analysis during the execution of the update process 22p.
  • data encrypted based on the PKI includes a public key certificate 6k (or 7k) indicating a transmission source public key, a message 1m, and a transmission source electronic signature 6e (or 7e).
  • the public key certificate 6k (or 7k) indicates the validity of the public key of the transmission source, and indicates that the data is correct by an electronic signature.
  • the electronic signature is created with the private key of the transmission source. The same applies to the other drawings.
  • FIG. 2 is a diagram showing an example of a communication sequence and communication data configuration in the sharing process.
  • the client 5 transmits data 31 d to the server 100 in order to share the temporary common key 3 m with the server 100.
  • the data 31d is data encrypted based on PKI.
  • the data 31d includes a current generation client public key certificate 6k indicating the current generation client public key 6a, a message 1m, and an electronic signature 6e using the current generation client private key 6b.
  • the client 5 generates a temporary client key pair 4p.
  • step (II) the server 100 confirms the validity of the client 5 based on the PKI based on the current generation client public key certificate 6k of the data 31d, and the current generation client public key indicated by the current generation client public key certificate 6k.
  • the validity of the electronic signature 6e is determined using the key 6k.
  • the server 100 After confirming the validity of the electronic signature 6e of the client 5, the server 100 generates a temporary server key pair 2p. Then, the server 100 creates data 32d including the current generation client public key certificate 6k indicating the server public key 7a, the message 1m including the temporary server public key 2a, and the electronic signature 6e using the current generation client private key 6b. Then, it is transmitted to the client 5.
  • step (IIIa) when the client 5 receives the data 32d from the server 100, based on the PKI, the client 5 confirms that the data 32d is correct data from the valid server 100, and then the temporary server public key included in the message 1m.
  • the temporary common key 3m is generated by 2a and the temporary client private key 4a.
  • the client 5 creates data 33d-1 including the temporary client public key 4a in the message 1m and transmits it to the server 100.
  • the server 100 Upon receiving the data 33d-1, the server 100 confirms that the data 33d-1 is correct data from the valid client 5 based on the PKI, and then extracts the temporary server public key 2a from the message 1m.
  • a temporary common key 3m is generated by the temporary server public key 2a and the temporary server private key 2b.
  • the temporary common key 3m used for communication between the client 5 and the server 100 is set in each of the client 5 and the server 100. Temporary communication using the temporary common key 3m is established between the client 5 and the server 100.
  • FIG. 3 is a diagram illustrating an example of a communication sequence and a communication data configuration in the update process.
  • step (IIIb) following the data 33d-1 in FIG. 2, the client 5 generates the next generation client key pair 6p ′, and based on the PKI, the data 33d includes the next generation client public key 6a ′ in the message 1m. -2 is created and transmitted to the server 100.
  • the server 100 Upon receiving the data 33d-2, the server 100 confirms that the data 33d-2 is correct data from the valid client 5 based on the PKI, and then extracts the next generation client public key 6a ′ from the message 1m.
  • step (IV) the server 100 issues a client public key certificate 6k ′ to the next generation client public key 6a ′ extracted from the message 1m.
  • the server 100 encrypts the client public key certificate 6k ′ with the temporary common key 3m and includes it in the message 1, creates the data 34d based on the PKI, and transmits it to the client 5.
  • the client 5 Upon receiving the data 34d, the client 5 confirms that the data 34d is correct data from the valid client 5 based on the PKI, and then decrypts the next generation client public key certificate 6k ′ with the temporary common key 3m from the message 1m. And get.
  • the client 5 and the server 100 newly generate and share a temporary common key 3m. Since the temporary common key 3m is generated and shared only for one update process, the temporary common key 3m is compared with the case where the key pair for updating the public key certificate and the public key certificate are held for a long time. The period is fairly short. The long term is a unit of years such as several years to about 10 years. The period of the temporary common key 3m is the length of time unit or day unit.
  • next-generation client public key 6a ′ and the next-generation client public key certificate 6k ′ are encrypted with the temporary common key 3m and can be updated securely. Moreover, since the client 5 and the server 100 share the new temporary common key 3m only for a short period for each update process, the risk of being decrypted can be extremely reduced.
  • the client vendor If the expiration date of the current generation client public key certificate 6k of the client elapses before the client 5 receives the next generation client public key certificate 6k ′ from the server, the client vendor normally performs a new procedure through a different procedure. Apply for issuance of client public key certificate. At that time, the client vendor applies for revocation of the current generation client public key certificate 6k.
  • the client vendor distributes an application program or firmware that runs on the client 5 and incorporates the next-generation client public key certificate 6k ′ and the next-generation client private key.
  • the client vendor returns the device corresponding to the client 5 to the manufacturer or the agent, and resends the device in which the next-generation client public key certificate 6k ′ and the next-generation client private key are embedded in the application program or firmware. do that for me.
  • the user re-authenticates and updates the application program or firmware via the Internet to acquire the next generation client public key certificate 6k ′ and the next generation client private key.
  • next generation client public key 6a ′ and the next generation client public key certificate 6k ′ share the temporary common key 3m between the client 5 and the server 100, and then temporarily Encrypt and decrypt with the common key 3m.
  • next generation client public key 6a ′ does not appear on the network 2 until the next generation client public key certificate 6k ′ corresponding thereto is started to be used as the current generation client public key certificate 6k.
  • the third party cannot start estimating the next-generation client public key 6a ′ until the temporary common key 3m is used and can be estimated.
  • ⁇ Mechanism II> In response to the act of hindering the return of the next-generation client public key certificate 6k ′ from the server 100 to the client 5, the server 100 does not yet receive the next-generation client public key certificate 6k ′ from the server 100. When the number of messages received from the client 5 is counted and exceeds a specified value determined in operation, the next-generation client public key certificate 6k ′ is revoked, and the next-generation client public key certificate 6k ′ Controls rejection of requests using.
  • this ⁇ Mechanism II> it is possible to cope with an unauthorized analysis due to a retransmission attack.
  • FIG. 4 is a diagram showing a hardware configuration of the server.
  • a server 100 is a device controlled by a computer and includes a CPU (Central Processing Unit) 11a as a processor, a main storage device 12a, an auxiliary storage device 13a, an input device 14a, and a display device 15a. And a communication I / F (interface) 17a and a drive device 18a, which are connected to the bus B.
  • CPU Central Processing Unit
  • the CPU 11a controls the server 100 according to a program stored in the main storage device 12a.
  • main storage device 12a RAM (Random Access Memory), ROM (Read Only Memory) or the like is used, which is obtained by a program executed by the CPU 11a, data necessary for processing by the CPU 11a, and processing by the CPU 11a. Store or temporarily store the data.
  • the auxiliary storage device 13a uses an HDD (Hard Disk Drive) or the like, and stores data such as programs for executing various processes. A part of the program stored in the auxiliary storage device 13a is loaded into the main storage device 12a and executed by the CPU 11a, thereby realizing various processes.
  • the storage unit 130a corresponds to the main storage device 12a and / or the auxiliary storage device 13a.
  • the input device 14a has a mouse, a keyboard, etc., and is used by the user to input various information necessary for processing by the server 100.
  • the display device 15a displays various information necessary under the control of the CPU 11a.
  • the communication I / F 17a performs communication through a wired or wireless network. Communication by the communication I / F 17a is not limited to wireless or wired communication.
  • the program for realizing the processing performed by the server 100 is provided to the server 100 by a storage medium 19a which is a non-transitory and tangible medium such as a CD-ROM (Compact Disc Read-Only Memory).
  • a storage medium 19a which is a non-transitory and tangible medium such as a CD-ROM (Compact Disc Read-Only Memory).
  • the drive device 18a performs an interface between the storage medium 19a (CD-ROM or the like) set in the drive device 18a and the server 100.
  • the storage medium 19a stores a program for realizing various processes according to the present embodiment, which will be described later, and the program stored in the storage medium 19 is installed in the server 100 via the drive device 18a. .
  • the installed program can be executed by the server 100.
  • the medium for storing the program is not limited to the CD-ROM, and any medium that can be read by a computer may be used.
  • a computer-readable storage medium in addition to a CD-ROM, a portable recording medium such as a DVD disk or a USB memory, or a semiconductor memory such as a flash memory may be used.
  • the input / output device 14a is used for displaying various information to the user and for inputting various information necessary for processing by the server 100 by the user.
  • the input / output device 14a includes an input device such as a mouse and a keyboard, and a display such as an LCD (Liquid Crystal Display).
  • the input / output device 14a may be a touch panel in which an input device and a display are integrated.
  • the client 5 corresponds to an electronic device having a computer (hereinafter simply referred to as “device”), and is a television, an STB (Set Top Box), other home appliances, or the like.
  • the client 5 may be a management device related to biological information.
  • the client 5 has a hardware configuration as shown in FIG.
  • FIG. 5 is a diagram illustrating a hardware configuration of the client.
  • a client 5 is an electronic device controlled by a computer, and is a CPU (Central Processing Unit) 11b, a main storage device 12b, a specific processing device 14b, and a user I / F (interface) as a processor. 16b, a communication I / F 17b, and a drive device 18b, which are connected to the bus B2.
  • CPU Central Processing Unit
  • main storage device 12b main storage device
  • specific processing device 14b main storage device
  • user I / F interface
  • 16b communication I / F 17b
  • a drive device 18b which are connected to the bus B2.
  • the CPU 11b controls the client 5 according to a program stored in the main storage device 12b.
  • main storage device 12b RAM (Random Access Memory), ROM (Read Only Memory) or the like is used, and is obtained by a program executed by the CPU 11b, data necessary for processing by the CPU 11b, and processing by the CPU 11b. Store or temporarily store the data.
  • Various processes are realized by the CPU 11b executing a program stored in the main storage device 12b.
  • the specific processing device 14b performs specific processing as a management device related to television, STB (Set Top Box), other home appliances, biological information, etc., which is the purpose of the electronic device.
  • the user I / F 16b is a touch panel or the like that displays various kinds of information necessary under the control of the CPU 11b, and that allows an operation input by the user.
  • the communication I / F 17b is an interface that supports one or a plurality of communication protocols and performs communication with the server apparatus 100 via the wired or wireless network 2. Communication by the communication I / F 17b is not limited to wireless or wired.
  • a program that realizes processing performed by the client 5, at least the book viewer 8, is downloaded from the electronic book distribution server 100 via the network 2.
  • the program such as the book viewer 8 may be stored in the main storage device 12 b of the client 5.
  • the drive device 18b performs an interface between the client 5 and a storage medium 19b (for example, an SD card) that is a non-temporary tangible medium set in the drive device 18b.
  • a storage medium 19b for example, an SD card
  • the main storage device 12b and / or the storage medium 19b corresponds to the storage unit 130b, and stores the electronic book 6 and related information.
  • the client 5 may be an information processing terminal such as a desktop type, a notebook type, or a laptop type that can be attached to and detached from the specific processing device 14b or can communicate with the specific processing device 14b via the communication I / F 17b.
  • the hardware configuration is substantially the same except for the specific processing device 14b from the configuration shown in FIG.
  • CC_PUB represents the current generation client public key.
  • CC_CRT represents the current generation client public key certificate.
  • CC_PRV represents the current generation client private key.
  • NC_PUB represents the next generation client public key.
  • NC_CRT represents the next generation client public key certificate.
  • NC_PRV represents the next generation client private key.
  • TM_COM represents a temporary common key.
  • -TMC_PUB represents a temporary client public key.
  • -TMC_PRV represents a temporary client private key.
  • RT_CRT represents the root public key certificate.
  • S_PUB represents a server public key.
  • -S_CRT represents a server public key certificate.
  • S_PRV represents a server private key.
  • -TMS_PUB represents a temporary server public key.
  • TMS_PRV represents a temporary server private key.
  • FIG. 6 is a diagram illustrating a first functional configuration example of the client.
  • the client 5 includes an update unit 50, a temporary client key pair generation unit 52, and a temporary common key generation unit 53.
  • the update unit 50, the temporary key pair generation unit 52, and the temporary common key generation unit 53 correspond to processing performed by the CPU 11b executing a corresponding program.
  • the current generation client public key 6a, the current generation client public key certificate 6k, the current generation client private key 6b, the next generation client public key 6a ′, and the next generation client public key certificate 6k are stored in the storage unit 130b.
  • Next-generation client private key 6b', temporary server public key 3a, temporary client public key 4a, temporary client private key 4b, etc. are stored.
  • the update unit 50 controls the sharing process 21p and the update process 22p shown in FIG. 1 for updating the current generation client public key certificate 6k.
  • the temporary key pair generation unit 52 generates a temporary client key pair 4p for generating the temporary common key 3m.
  • the temporary client public key 4a and the temporary client private key 4b, which are the temporary client key pair 4p, are stored in the storage unit 130b.
  • the temporary common key generation unit 53 generates a temporary common key 3m shared with the server 100 by using the temporary server public key 2a and the temporary client secret key 4a.
  • the temporary common key 3m is stored in the storage unit 130b.
  • step (I) a temporary server public key 2a is requested.
  • the updating unit 50 creates data 31d in which a current generation client public key certificate 6k indicating the current generation client public key 6a and an electronic signature 6e using the current generation client private key 6b are added to the message 1m.
  • the update unit 50 transmits the data 31d to the server 100.
  • the updating unit 50 generates the temporary client key pair 4p by the temporary key pair generating unit 52.
  • the temporary client public key 4a and the temporary client private key 4b are stored in the storage unit 130b.
  • step (II) the temporary common key 3m is shared.
  • the temporary common key generation unit 53 receives the data 32 d from the server 100.
  • the data 32d includes a server public key certificate 7k indicating the server public key 7a, a message 1m including the temporary server public key 2a, and an electronic signature 6e using the server private key 7b.
  • the temporary common key generation unit 53 After confirming the validity of the server public key certificate 7k of the data 32d, the temporary common key generation unit 53 confirms the validity of the electronic signature 7e using the server public key 7a indicated by the server public key certificate 7k. Confirm that the data is correct data created by the legitimate server 100.
  • the temporary common key generation unit 53 acquires the temporary server public key 2a from the message 1m of the data 32d, and the acquired temporary server public key 2a and the temporary client private key 4b generated by the temporary key pair generation unit 52. Generates a temporary common key 3m.
  • the temporary common key 3m generated by the temporary common key generation unit 53 is stored in the storage unit 130b.
  • the client 5 may receive an error end notification from the server 100 without receiving the data 32d. This is a case where the server 100 determines that the current generation client public key certificate 6k has expired.
  • the error end notification unit 59 notifies the update unit 50 of the error end notification received from the server 100.
  • the update unit 50 displays a message indicating that the update of the current generation client public key certificate 6k has failed on the user I / F 16b and notifies the user.
  • the user contacts the provider who operates the server 100, performs a predetermined procedure, and acquires the next generation client public key certificate 6k ′.
  • step (IIIa) the temporary client public key 4a is notified.
  • the update unit 50 adds the current generation client public key certificate 6k indicating the current generation client public key 6a and the electronic signature 6e using the current generation client private key 6b to the message including the temporary client public key 4a.
  • 33d-1 is created.
  • the update unit 50 transmits the data 33d-1 to the server 100.
  • the server 100 also generates a temporary common key 3m.
  • step (IIIb) the next generation client public key certificate 6k ′ is requested.
  • the update unit 50 encrypts the next-generation client public key 6a ′ with the temporary common key 3m.
  • the update unit 50 applies the current-generation client public key certificate 6k indicating the current-generation client public key 6a and the electronic signature using the current-generation client private key 6b.
  • Data 33d-2 with 6e added thereto is created.
  • the update unit 50 transmits the data 33d-2 to the server 100.
  • Step (IV) the next generation client public key certificate 6k ′ is obtained.
  • the update unit 50 receives the data 34d from the server 100.
  • the data 34d includes a server public key certificate 7k indicating the server public key 7a, a message 1m including the next generation client public key certificate 6k ′, and an electronic name 6e using the server private key 7b.
  • the next generation client public key certificate 6k ′ is encrypted by the temporary common key 3m.
  • the update unit 50 After confirming the validity of the server public key certificate 7k of the data 34d, the update unit 50 confirms the validity of the electronic signature 7e using the server public key 7a indicated by the server public key certificate 7k, and It is confirmed that the server 100 is the created data.
  • the update unit 50 decrypts the next-generation client public key certificate 6k ′ of the message 1m of the data 34d with the temporary common key 3m.
  • the decrypted next-generation client public key certificate 6k ′ is stored in the storage unit 130b.
  • the next-generation client public key certificate 6k ′ is securely used by using the temporary common key 3m. Can be obtained.
  • the temporary common key 3m is a secret key that is used only for obtaining the next-generation client public key certificate 6k ', and therefore is not used for a long period of time.
  • next generation client key pair 6p ′ is generated and the next generation client public key certificate 6k ′ is obtained from the server 100.
  • the usage period of the pair 6p can be set short.
  • step (IV) if the update unit 50 does not receive the next-generation client public key certificate 6k ′ from the server 100 for a predetermined period after steps (IIIa) and (IIIb), that is, if step (IV) is not performed, 33d-1 and data 33d-2 may be retransmitted. As a result, an error end notification may be received from the server 100. The error end notification from the server 100 is notified to the update unit 50 by the error end notification unit 59.
  • the updating unit 50 determines that there is a case where the reply of the next generation client public key certificate 6k ′ (data 34d) from the server 100 may be hindered, and indicates that the update of the current generation client public key certificate 6k has failed.
  • a message to be displayed is displayed on the user I / F 16b to notify the user. In this case, the user contacts the provider who operates the server 100, performs a predetermined procedure, and acquires the next generation client public key certificate 6k ′.
  • FIG. 7 is a diagram illustrating a first functional configuration example of the server.
  • the first functional configuration example of the server 100 illustrated in FIG. 7 illustrates a configuration corresponding to the first functional configuration example of the client 5 illustrated in FIG.
  • the server 100 includes a validity confirmation unit 81, a temporary key pair generation unit 83, a temporary common key generation unit 85, a management unit 90, and an error detection unit 99.
  • the validity confirmation unit 81, the temporary key pair generation unit 83, the temporary common key generation unit 85, the management unit 90, and the error detection unit 99 correspond to processing performed by the CPU 11a executing a corresponding program. To do.
  • the temporary server public key 2a, the temporary server private key 2b, the revocation list 2f, the temporary common key 3m, the temporary client public key 4a, the next generation client public key certificate 6k ′, and the route public are stored in the storage unit 130a.
  • the key certificate 9b and the like are stored.
  • the validity confirmation unit 81 confirms the validity of the current generation client public key certificate 6k of the data 31 received from the client 5.
  • the temporary key pair generation unit 83 generates a temporary server key pair 2p for generating the temporary common key pair 7p.
  • the temporary server public key 2a and the temporary server private key 2b that are the temporary server key pair 2p are stored in the storage unit 130a.
  • the temporary common key generation unit 85 generates the temporary common key 3m using the temporary server private key 2b generated by the temporary key pair generation unit 83 and the temporary client public key 4a transmitted from the client 5.
  • the temporary common key 3m is stored in the storage unit 130a.
  • the management unit 90 manages each client public key certificate issued to the client 5. Further, the management unit 90 confirms the electronic signature 6e of the data 31d and 33d from the client 5 and confirms that it is a valid request, and issues a client public key certificate.
  • the management unit 90 confirms the validity of the current generation client public key certificate 6k using the electronic signature 6e, and checks the expiration date of the current generation client public key certificate 6k. Further, the management unit 90 confirms that the next-generation client public key certificate 6k ′ has not been registered, and generates and registers the next-generation client public key certificate 6k ′. Furthermore, the management unit 90 confirms whether the request from the client 5 exceeds the illegal request count limit.
  • the error detection unit 99 notifies the client 5 of the end of the error when the validity confirmation unit 81 or the management unit 90 cannot sufficiently confirm the validity.
  • step (I) a request for the temporary server public key 2a is received.
  • the validity confirmation unit 81 confirms the current generation client public key certificate 6k based on the root public key certificate 9b. .
  • the validity confirmation unit 81 checks the electronic signature 6e using the current generation client public key 6a indicated by the current generation client public key certificate 6k, so that the data 31d is created by the valid client 5. Check that the data is correct.
  • the validity confirmation unit 81 confirms that the current generation client public key certificate 6k is a registered certificate, and based on the certificate expiration date of the current generation client public key certificate 6k, Make sure that If the current generation client public key certificate 6k has not been registered, and if the current generation client public key certificate 6k has expired, the error detection unit 99 transmits an error end notification to the client 5.
  • step (II) a temporary server key pair 2p is generated to share the temporary common key 3m.
  • the temporary key pair generation unit 83 generates a temporary server key pair 2p.
  • the server public key 7a and the server private key 7b, which are the temporary server key pair 2p, are stored in the storage unit 130a.
  • Data 32d including a server public key certificate 7k indicating the server public key 7a, a message 1m including the temporary server public key 2a, and an electronic name 6e using the server private key 7b is generated and transmitted to the client 5.
  • step (IIIa) the temporary client public key 4a is received.
  • the validity confirmation unit 81 confirms the validity of the current generation client public key certificate 6k against the data 33d-1 including the temporary client public key 4a, and the current generation indicated by the current generation client public key certificate 6k.
  • the electronic signature 6e is confirmed with the client public key 6a.
  • the temporary client public key 4a is acquired from the message 1m.
  • the temporary common key generation unit 85 After the management unit 90 confirms that the number of illegal requests is within the limit value, the temporary common key generation unit 85 generates the temporary common key 3m using the temporary client public key 4a and the temporary server private key 2b. . The generated temporary common key 3m is stored in the storage unit 130a.
  • step (IIIb) a request for the next generation client public key certificate 6k ′ is received.
  • the validity confirmation unit 81 refers to the root public key certificate 9b with respect to the data 33d-2 including the encrypted next generation client public key 6a 'and confirms the validity of the current generation client public key certificate 6k.
  • the electronic signature 6e is confirmed using the current generation client public key 6a indicated by the current generation client public key certificate 6k.
  • the management unit 90 determines whether or not the next generation client public key certificate 6k ′ for the next generation client public key 6a ′ is already registered. Further, the management unit 90 confirms the certificate expiration date of the current generation client public key certificate 6k. Furthermore, the management unit 90 confirms that the request is equal to or less than the illegal request count limit value.
  • the management unit 90 After confirming that the request is equal to or less than the illegal request count limit value, the management unit 90 decrypts the next-generation client public key 6a ′ in the message 1m with the temporary common key 3m, Generation client public key certificate 6k ′ is generated. The generated next-generation client public key certificate 6k ′ is stored in the storage unit 130b.
  • step (IV) the update certificate encryption unit 87 encrypts the next-generation client public key certificate 6k ′ generated by the management unit 90 with the temporary common key 3m and creates data 34d included in the message 1m.
  • the data 34d includes a server public key certificate 7k indicating the server public key 7a, a message 1m including the encrypted next-generation client public key certificate 6k ′, and an electronic signature 6e using the server private key 7b. .
  • the management unit 90 transmits the data 34d including the next generation client public key certificate 6k ′ to the client 5 and then receives the data 33d-1 or 33d-2 from the client 5 again. Count. When the number of times of reception exceeds a predetermined illegal request count limit, it is determined that the next-generation client public key certificate 6k ′ (data 34d) transmitted by the server 100 may be blocked. In this case, the error detection unit 99 transmits an error end notification to the client 5.
  • the client 5 encrypts the next generation client public key 6a ′ and the temporary common key 3m.
  • the client public key 6a ′ is transmitted to the server 100 with different data 33d-1 and 33d-2, respectively, but in step (IIIa), the update unit 50 sends the next generation client public key 6a ′ to the message 1m,
  • the next generation client public key 6a ′ encrypted with the temporary common key 3m may be transmitted to the server 100 by one communication.
  • the server 100 may receive data in which the message 1m includes the next generation client public key 6a ′ and the next generation client public key 6a ′ encrypted with the temporary common key 3m. Steps (IIIa) and (IIIb) may be performed on one piece of data.
  • FIG. 8 is a diagram showing another example of the communication data configuration.
  • FIG. 8 shows a communication data configuration in the case where the data in step (IIIa) and step (IIIb) is performed by one. This case is referred to as step (III).
  • step (III) the update unit 50 of the client 5 encrypts the next generation client public key 6a ′ with the temporary common key 3m.
  • the updating unit 50 includes the temporary client public key 4a and the next generation client public key 6a ′ encrypted with the temporary common key 3m in the message 1m, and indicates the current generation client public key 6a with respect to the message 1m.
  • Data 33 is created by adding the current generation client public key certificate 6k and the electronic signature 6e using the current generation client private key 6b.
  • step (III) the server 100 receives the data 33d including the temporary client public key 4a and the next generation client public key 6a ′ encrypted with the temporary common key 3m.
  • the validity confirmation unit 81 of the server 100 confirms the validity of the current generation client public key certificate 6k with respect to the data 33d, and electronically uses the current generation client public key 6a indicated by the current generation client public key certificate 6k. Confirm the signature 6e. After confirming that the data 33d-1 is data created by the legitimate client 5, the temporary client public key 4a is acquired from the message 1m.
  • the temporary common key generation unit 85 generates the temporary common key 3m using the temporary client public key 4a and the temporary server secret key 2b.
  • the generated temporary common key 3m is stored in the storage unit 130a.
  • the management unit 90 confirms that the current generation client public key certificate 6k is a registered certificate, and confirms that it is before the certificate expiration date based on the certificate expiration date of the current generation client public key certificate 6k. Check. Furthermore, the management unit 90 confirms that the number of illegal request times is within the limit value.
  • the management unit 90 After confirming that the request is equal to or less than the illegal request count limit value, the management unit 90 decrypts the next-generation client public key 6a ′ in the message 1m with the temporary common key 3m, Generation client public key certificate 6k ′ is generated. The generated next-generation client public key certificate 6k ′ is stored in the storage unit 130b.
  • step (IV) the server 100 provides the next generation client public key certificate 6k ′ to the client 5.
  • FIG. 9 and FIG. 10 the case of the data 33 in step (III) shown in FIG. 8 will be described.
  • FIG. 9 is a diagram illustrating a second functional configuration example of the client.
  • the client 5 includes an update unit 50, a server validity determination unit 51, a temporary key pair generation unit 52, a temporary common key generation unit 53, an encryption unit 54, an electronic signature provision unit 55, An electronic signature check unit 56, a decryption unit 57, and an error end notification unit 59 are included.
  • Update unit 50 server validity determination unit 51, temporary key pair generation unit 52, temporary common key generation unit 53, encryption unit 54, electronic signature assignment unit 55, electronic signature check unit 56, and decryption
  • the unit 57 corresponds to processing performed by the CPU 11b executing a corresponding program.
  • the temporary server public key 2a, the temporary client key pair 4p, the temporary common key 3m, the current generation client key pair 6p, the current generation client public key certificate 6k, and the next generation client key pair 6p are stored in the storage unit 130b.
  • the update unit 50 controls the sharing process 21p and the update process 22p shown in FIG. 1 for updating the current generation client public key certificate 6k.
  • the update unit 50 checks the expiration date of the current generation client public key certificate 6p. In addition, the updating unit 50 confirms whether or not the next-generation client public key certificate 6p ′ has been received from the server 100. When the next-generation client public key certificate 6p ′ has not been received, the sharing process 21p and the update process 22p are performed. In the update process 22p, when the update unit 50 generates the next generation client key pair 6p ′ and receives the next generation client public key certificate 6p ′ from the server 100, the update unit 50 registers the next generation client public key certificate 6p ′. .
  • step (I) when the update unit 50 determines that it is time to update the current generation client public key certificate 6p by the time limit check, the update unit 50 transmits data 31d including the current generation client public key certificate 6k to the server 100. .
  • the data 31d corresponds to a request for a temporary server public key for generating the temporary common key 3m.
  • step (II) when the client 5 receives the data 32d from the server 100, the server validity determination unit 51 determines whether the data 32d is correct data created by the valid server 100 and not falsified. Judging.
  • step (III) the temporary key pair generation unit 52 determines that the temporary client key pair 4p is used in order to share the temporary common key 3m with the server 100 when the server validity determination unit 51 determines that the data is correct. Generate.
  • the temporary client public key 4a and the temporary client private key 4b are stored in the storage unit 130b as the temporary client key pair 4p.
  • the temporary common key generation unit 53 generates the temporary common key 3m using the temporary client secret key 4b and the temporary server public key 2a of the server 100.
  • the encryption unit 54 creates a message 1m from the secret data 33s provided to the server 100 and the next-generation client public key 6k'-2 with an electronic signature, and encrypts it using the temporary common key 3m. Then, the encryption unit 54 sets the temporary client public key 4a to the message 1m.
  • next-generation client public key 6k′-2 with the electronic signature is added to the next-generation client public key certificate 6k ′ received from the server 100 by the updating unit 50 by a DRM that controls and restricts use and copying.
  • a public key certificate A public key certificate.
  • the electronic signature assigning unit 55 creates an electronic signature for the secret data 33s using the current generation client secret key 6b, and creates data 33d.
  • the data 33d includes the current generation client public key certificate 6k indicating the current generation client public key 6a, the secret data 33s, the next generation client public key with an electronic signature, the temporary client public key, and the electronic data based on the current generation client private key. Created by signature.
  • the message 1m of the data 33d includes secret data 33s, a next-generation client public key with an electronic signature, and a temporary client public key.
  • the data 33d is transmitted to the server 100.
  • step (IV) the electronic signature check unit 56 checks the electronic signature of the data 34d and determines that the data 34d is correct data from the valid server 100.
  • the decrypting unit 57 obtains the secret data 34s from the message 1m of the data 34d, and decrypts the next generation client public key certificate 6k ′ using the temporary common key 3m.
  • the secret data 34s is stored in the storage unit 130b in the storage unit 130b, and the next generation client public key certificate 6k ′ is notified to the update unit 50.
  • the update unit 50 checks the electronic signature of the next-generation client public key certificate 6k ′ notified from the decryption unit 57, registers and manages the electronic signature in association with the next-generation client public key pair 6p ′.
  • the processing by the error end notification unit 59 is the same as the processing in the first functional configuration in FIG.
  • the client 5 has a certificate management information table 60 as shown in FIG. 10 in order to manage the current generation client public key certificate 6k, the next generation client public key certificate 6k ′, and the like.
  • FIG. 10 is a diagram illustrating a data configuration example of the certificate management information table in the client.
  • the certificate management information table 60 held by the client 5 is held in the storage unit 130b, and the element number, certificate ID, current flag, key type, key length, public key, private key, next generation certificate. Certificate element number, previous generation certificate element number, expiration date, and client public key certificate.
  • the element number is a management number assigned to the current generation client public key certificate 6k.
  • the element number may be a record number that identifies a record.
  • Certificate ID is identification information of a client public key certificate, and indicates a certificate issuer ID and a certificate serial number.
  • the certificate ID is shown as a two-level hierarchical structure including a certificate issuer ID and a certificate serial number, but it may be a three-level or higher hierarchical structure.
  • the certificate issuer ID indicates identification information of the server 100 that is the issuer, and the certificate serial number indicates a serial number assigned to each public key certificate issued by the server 100.
  • the current flag is a flag indicating whether or not the certificate ID is the current generation client public key certificate 6a. That is, the flag indicates that the client public key certificate is currently in use.
  • the current flag indicates “1”.
  • the current flag indicates “0”.
  • the initial value of the current flag is “0”.
  • the key type specifies the encryption method.
  • the key type “E” indicates elliptic curve encryption (Elliptic Curve Cryptography (ECC)).
  • the key type “R” indicates RSA (Rivest Shamir Adleman).
  • the key length indicates the bit length.
  • the public key indicates the value (binary) of the public key and is stored in an encrypted state.
  • the secret key indicates the value (binary) of the secret key and is stored in an encrypted state.
  • the next generation certificate element number indicates the element number of the next generation client certificate.
  • the previous generation certificate element number indicates the element number of the previous generation client certificate.
  • the deadline indicates the deadline of the client public key certificate in the format YYYYMMDD: hhmmss (Coordinated Universal Time (UTC)).
  • the client public key certificate indicates an entity (binary) of the client public key certificate conforming to X509.
  • the update unit 50 records the next generation certificate element number. After setting the current flag to “1”, the record of the current generation client public key certificate 6k is deleted. The updating unit 50 uses the next generation client public key certificate 6k ′ as a new current generation client public key certificate.
  • the update unit 50 stores the next generation client public key 6a ′ in the public key and the next generation client in the secret key.
  • the client public key 6b ′ is stored.
  • the updating unit 50 sets the element number of the record of the current generation client public key certificate 6k as the previous generation certificate element number. Thereafter, the update unit 50 sets the element number of the record additionally registered to the next generation certificate element number of the record of the current generation client public key certificate 6k. In this way, the association between the current generation client public key certificate 6k and the next generation client public key certificate 6k ′ is performed.
  • the update unit 50 designates the current generation client public key certificate 6k from the client 5 and transmits the data 33d to the server 100, the update unit 50 sets the value to the next generation certificate element number of the record of the current generation client public key certificate 6k. Check if it exists.
  • the update unit 50 When there is no value in the next generation certificate element number, the update unit 50 generates the next generation client key pair 6p ′, encrypts the next generation client public key 6a ′ with the temporary common key 3m, and sets the message 1m. To the server 100.
  • two or more client public key certificates are issued from the server 100, and these certificates are used as the current generation client public key certificate 6k and the next generation client public key. It is desirable to register in association with the certificate 6k ′. This is because it is possible to cope with a situation in which the current generation client public key certificate 6k expires before the first next generation client public key certificate 6k ′ is returned from the server 100.
  • FIG. 11 is a diagram illustrating a second functional configuration example of the server.
  • a second functional configuration example of the server 100 illustrated in FIG. 11 illustrates a configuration corresponding to the second functional configuration example of the client 5 illustrated in FIG. 9.
  • the server 100 includes a validity confirmation unit 81, an electronic signature check unit 82, a temporary key pair generation unit 83, a public key encryption unit 84, a temporary common key generation unit 85, and a decryption unit 86.
  • Validity confirmation unit 81 electronic signature check unit 82, temporary key pair generation unit 83, public key encryption unit 84, temporary common key generation unit 85, decryption unit 86, and update certificate encryption unit 87
  • the search unit 91 and the certificate management unit 92 correspond to processing performed by the CPU 11a executing a corresponding program.
  • the storage unit 130a includes a temporary server public key pair 2p, a temporary client public key 4a, a next generation client public key 6a ′, a next generation client public key certificate 6k ′, a server public key pair 7p, and data 31d. ⁇ 34d etc. are stored.
  • the search unit 91 and the certificate management unit 92 correspond to the management unit 90 in FIG. Further, the processing by the validity confirmation unit 81, the search unit 91, the electronic signature check unit 82, the temporary key pair generation unit 83, and the public key encryption unit 84 corresponds to the sharing process 21p shown in FIG. Further, processing by the electronic signature check unit 82, the temporary common key generation unit 85, the decryption unit 86, and the certificate management unit 92 corresponds to the update processing 22p.
  • step (I) when the data 31d is received from the client 5, the validity confirmation unit 81 confirms the validity of the current generation client public key certificate 6k of the received data 31d.
  • the electronic signature check unit 82 checks the electronic signature 6e of the data 31d and checks whether the data 31d is correct data that has not been falsified. In addition, the electronic signature check unit 82 performs the same electronic signature check on the data 33d.
  • step (II) the temporary key pair generation unit 83 generates a temporary server key pair 2p for generating the temporary common key pair 7p.
  • the temporary server public key 2a and the temporary server private key 2b that are the temporary server key pair 2p are stored in the storage unit 130a.
  • the public key encryption unit 84 encrypts the temporary server public key 2a for creating the temporary common key 3m by the client 5 with PKI, and creates data 32d.
  • the public key encryption unit 84 creates an electronic signature 7e using the server private key 7b.
  • the data 32d includes a server public key certificate 7k indicating the server public key 7a, a temporary server public key 2a, and an electronic signature 7e using the server private key 7b.
  • the temporary server public key 2a is included in the message 1m.
  • the data 32d is transmitted to the client 5.
  • step (III) when the data 33d is received from the client 5, the temporary common key generation unit 85 and the temporary client public key 4a acquired from the data 33d and the temporary server private key 2b generated by the temporary key pair generation unit 83. Is used to generate a temporary common key 3m.
  • the decryption unit 86 decrypts the next generation client public key 6a included in the message 1m of the data 33d and notifies the certificate management unit 92 of it.
  • the certificate management unit 92 confirms that the current generation client public key 6k of the client 5 has been registered, and the request for the next generation client public key certificate 6k ′ from the client 5 is determined to be an unauthorized request. Confirm that the number is within the limit. In addition, when the next generation client public key certificate 7k ′ is not included in the message 1m of the data 33d, the certificate management unit 92 associates the next generation client public key certificate with the current generation client public key 6k. Confirm that 7k 'is registered.
  • the certificate management unit 92 causes the error detection unit 99 to notify the client 5 of an error end.
  • step (IV) the certificate management unit 92 issues the next-generation client public key certificate 6k ′ when the above items can be confirmed.
  • the update certificate encryption unit 87 adds an electronic signature to the next generation client public key certificate 6k ′ issued by the certificate management unit 92.
  • the electronic signature added to the next-generation client public key certificate 6k ′ is performed by DRM that controls and restricts use and copying.
  • the next-generation client public key certificate 6k ′ with the electronic signature is included in the message 1m together with the secret data 34s, and is further PKI-encrypted to generate data 34d.
  • the data 34d includes a message 1m including the server public key certificate 7k and the secret data 34s, a next generation client public key certificate 6k ′, and an electronic signature 7e using the server private key 7b.
  • the data 34d is transmitted to the client 5.
  • the processing by the error detection unit 99 is the same as the processing in the second functional configuration in FIG.
  • the server 100 has a certificate management information table 80 as shown in FIG. 12 in order to manage the current generation client public key certificate 6k, the next generation client public key certificate 6k ′, and the like.
  • FIG. 12 is a diagram illustrating a data configuration example of the certificate management information table in the server.
  • a certificate management information table 80 held in the server 100 is a table that is held in the storage unit 130a and prepared for each client 5, and includes an element number, a certificate ID, and a current generation certificate flag. , Reception count, transmission count before reply completion, public key, private key, next generation certificate element number, previous generation certificate element number, expiration date, client public key certificate, and the like.
  • the element number is a management number assigned to the current generation client public key certificate 6k.
  • the element number may be a record number that identifies a record.
  • Certificate ID is identification information of a client public key certificate, and indicates a certificate issuer ID and a certificate serial number.
  • the current generation certificate flag is a flag indicating whether or not the certificate ID is the current generation client public key certificate 6a. In the case of the current generation client public key certificate 6a, the current flag indicates “1”. On the other hand, when the client public key certificate is an unused generation, the current flag indicates “0”. The initial value of the current flag is “0”.
  • the number of receptions indicates the total number of receptions of requests specifying the next-generation client public key certificate from the client 5.
  • the number of transmissions before reply completion indicates the number of times the server 100 has received an application for issuing the next generation client public key certificate 6k ′ from the client 5 in a state after the data 34d is returned to the client 5.
  • the public key indicates the value (binary) of the public key and is stored in an encrypted state.
  • the secret key indicates the value (binary) of the secret key and is stored in an encrypted state.
  • the next generation certificate element number indicates the element number of the next generation client certificate.
  • the previous generation certificate element number indicates the element number of the previous generation client certificate.
  • the deadline indicates the deadline of the client public key certificate in the format YYYYMMDD: hhmmss (Coordinated Universal Time (UTC)).
  • the client public key certificate indicates an entity (binary) of the client public key certificate conforming to X509.
  • the certificate management unit 92 creates a new record and registers it in the certificate management information table 80 when the current generation client public key certificate 6k sent from the client 5 is unregistered and newly registered. . At the time of registration, the certificate management unit 92 sets “1” in the current generation certificate flag.
  • the certificate management unit 92 For the current generation client public key certificate 6k specified by the request from the client 5, the certificate management unit 92 indicates the number of times the request for specifying the current generation client public key certificate 6k is received as the current generation client public key. Set to the number of times the key certificate 6k is received. That is, every time a request from the client 5 is received, the value of the reception count of the record of the designated current generation client public key certificate 6k is incremented.
  • the value of the number of receptions is referred to when the next generation client public key certificate must be transmitted to the client 5 while the current generation client public key certificate 6k is used within a predetermined range.
  • the certificate management unit 92 issues the next-generation client public key certificate 6k ′. If the specified number of uses of the current generation client public key certificate 6k ′ exceeds the specified number, the certificate management unit 92 of the server 100 determines that the communication with the client 5 is not secure, and the next generation The issue of the client public key certificate 6k ′ is suppressed.
  • the client 5 can make a request to the server 100 only until the current generation client public key certificate 6k expires. It will be.
  • the server 100 side receives the message specifying the next generation client public key 6a ′. It is determined that there is a possibility of a retransmission attack message, and the error detection unit 99 is notified.
  • the certificate management unit 92 each time the certificate management unit 92 receives a request message in which the next generation client public key 6a ′ is designated from the client 5, the number of transmissions before the completion of the reply of the record of the current generation client public key certificate 6k. Is incremented. Then, the certificate management unit 92 notifies the error detection unit 99 when the number of transmissions before reply completion exceeds the specified number.
  • the certificate management unit 92 adds the generated next generation client public key certificate 6k to the next generation certificate element number in the record of the current generation client public key certificate 6k. Set the element number of 'record.
  • the certificate management unit 92 sets the element number of the record of the current generation client public key certificate 6k as the previous generation certificate element number.
  • the certificate management unit 92 When the following first condition is satisfied, the certificate management unit 92 -The record of the current generation client public key certificate 6k transmitted from the client 5 has already been registered, A value “0” indicating an unused generation is set in the current generation certificate flag of the record, and When the value “1” indicating the current generation client public key certificate 6k is set in the current generation certificate flag of the record pointed by the previous generation certificate element number of the record, The client public key certificate (certificate ID) of this record is registered in the revocation list 2 f and this record is deleted from the certificate management information table 80.
  • the certificate management unit 92 sets a value “1” indicating the current generation client public key certificate 6k in the current generation certificate flag. To do. Therefore, the next generation client public key certificate 6k ′ is switched to the current generation client public key certificate 6k.
  • the certificate management unit 92 revokes the client public key certificate (certificate ID) even when the following second condition is satisfied.
  • the record of the current generation client public key certificate 6k transmitted from the client 5 has already been registered, The value “1” indicating the current generation client public key certificate 6k is not set in the current generation certificate flag of the record, and the record of the record pointed to by the next generation certificate element number of the record
  • the current generation client public key certificate 6k (certificate ID) transmitted from the client 5 is registered in the revocation list 2f, and this record is deleted from the certificate management information table 80.
  • FIG. 5 is a flowchart for explaining processing at a client in step (I).
  • the update unit 50 of the client 5 refers to the certificate management information table 60 and searches for the current generation client public key certificate 6k (step S501).
  • step S502 determines whether or not the current generation client public key certificate 6k has expired (step S502). If it is within the time limit, the process in the update unit 50 is terminated, and the sharing process proceeds to step S505.
  • the update unit 50 refers to the certificate management information table 60 and determines whether or not the next generation client public key certificate 6k ′ exists (Ste S503). If it does not exist, the updating unit 50 terminates with an error. On the other hand, if it exists, the updating unit 50 determines to update the current generation client public key certificate 6k to the next generation client public key certificate 6k ′ (step S504).
  • the electronic signature giving unit 55 generates an electronic signature with the current generation client private key 6b corresponding to the current generation client public key certificate 6k searched in step S501, and sets it in the data 31d to be transmitted (step S505).
  • the electronic signature providing unit 55 sets the current generation client public key certificate 6k searched in step S501 to the data 31d to be transmitted (step S506) and transmits the data to the server 100 (step S507).
  • the data 31d corresponds to request data for the temporary server public key 2a for sharing the temporary common key 3m.
  • FIGS. 14 and 15 are flowcharts for explaining the processing in the server in steps (I) and (II).
  • the server 100 receives data 31d for requesting the temporary server public key 2a from the client 5 (step S101).
  • the validity confirmation unit 81 uses the root public key certificate 9b to check whether the current generation client public key certificate 6k of the data 31d is a valid public key certificate (step S102). If the check result is an error, the process proceeds to step S110 in FIG.
  • the validity confirmation unit 81 further refers to the revocation list 2f and checks whether the current generation client public key certificate 6k is in a revoked state (step S103).
  • the validity confirmation unit 81 determines that the current generation client public key certificate 6k has expired, and notifies the error detection unit 99 of an error. To do. In this case, the server 100 proceeds to step S110 in FIG.
  • the validity confirmation unit 81 determines that the current generation client public key certificate 6k has not expired.
  • the electronic signature check unit 82 checks the expiration date of the current generation client public key certificate 6k and the electronic signature 6e (step S103). When it is expired or when the check of the electronic signature 6e does not end normally, the electronic signature check unit 82 notifies the error detection unit 99 of an error. In this case, the server 100 proceeds to step S110 in FIG.
  • the search unit 91 searches the certificate management information table 80 for the current generation client public key certificate 6k (step S105).
  • the search unit 91 proceeds to step S107.
  • the search unit 91 determines that the received current generation client public key certificate 6k is the next generation client public key from the certificate management information table 80.
  • the record having the certificate 6k ′ is searched (step S107). If the record does not exist, the process in the search unit 91 ends, and the server 100 proceeds to step S109 in FIG.
  • the search unit 91 registers the current generation client public key certificate 6k searched in step S105 in the revocation list 2f, and deletes the record searched in step S107 (step S108).
  • the temporary key pair generation unit 83 generates a temporary server key pair 2p and sets a temporary server public key for the message 1m (step S109). Further, the public key encryption unit 84 adds the electronic signature 7e using the server private key 7b and the server public key certificate 7k indicating the server public key 7a to the message 1m, and the PKI encrypted data 32d. Create (step S111).
  • the data 32d is transmitted to the client (step S112).
  • the data 32 d is transmitted from the server 100 to the client 5 as reply data to the data 31 d corresponding to the request from the client 5.
  • step S102 the error detection unit 99 notified of the error sets error information indicating the content of the error in the message 1m (step S110).
  • the error information indicates that the validity of the current generation client public key certificate 6k could not be confirmed.
  • the error in step S103 the revocation of the current generation client public key certificate 6k is indicated by the error information.
  • the error information indicates that the expiration date or the validity of the electronic signature 6e could not be confirmed.
  • the error detection unit 99 adds the electronic signature 7e using the server private key 7b and the server public key certificate 7k indicating the server public key 7a to the message 1m in which the error information is set by the public key encryption unit 84. Then, PKI encrypted data is created (step S111). Then, the error detection unit 99 transmits data including error information to the client 5 (S112).
  • the error end notification unit 59 notifies the update unit 50 of the error end.
  • the update unit 50 can know the cause of the error from the error information.
  • the client 5 When the client 5 receives the data 31d from the server 100, the client 5 performs processing as shown in FIGS.
  • 16 and 17 are flowcharts for explaining the processing at the client in steps (II) and (III).
  • the client 5 receives data 32d from the server 100 (step S521).
  • the server validity judgment unit 51 checks the server public key certificate 7k and the electronic signature 7e of the data 32d received from the server 100 (step S522). If the check result indicates an error, the server validity determination unit 51 ends the error.
  • the updating unit 50 determines whether or not the next generation client public key certificate 6k ′ is registered for the current generation client public key certificate 6k in the certificate management information table 60. Is determined (step S523). If the next-generation client public key certificate 6k ′ has already been registered, the updating unit 50 proceeds to step S526 in FIG.
  • step S524 the update unit 50 generates the next generation client key pair 6p ′ (step S524). Then, the update unit 50 adds the electronic signature 6e created with the current generation client private key 6b to the next generation client key pair 6p ′ generated in step S524 (step S525).
  • the temporary key pair generation unit 52 generates a temporary client key pair 4p (step S526). Then, the temporary common key generation unit 53 generates the temporary common key 3m from the temporary client secret key 4b and the temporary server public key 2a of the data 32d received from the server 100 (step S527).
  • the encryption unit 54 creates a message 1m from the secret data 33s and the next-generation client public key 6a ′ with the electronic signature in step S254, and encrypts it with the temporary common key 3m generated in step S257 (step S528). ).
  • the encryption unit 54 sets the temporary client public key 4a generated in step S256 to the message 1m (step S529).
  • the electronic signature giving unit 55 adds the electronic signature 6e created with the current generation client private key 6b and the current generation client public key certificate 6a to the message 1m, thereby creating data 33d (step S530). ). Then, the data 33d is transmitted from the client 5 to the server 100. The data 33d corresponds to request data for acquiring the next-generation client public key certificate 6k ′.
  • FIG. 18, FIG. 19, and FIG. 20 are flowcharts for explaining the processing in the server in steps (III) and (IV).
  • the validity confirmation unit 81 confirms the validity of the current generation client public key certificate 6k
  • the decryption unit 86 receives the electronic data of the received data 33d.
  • the signature 6e is verified with the current generation client public key certificate 6k (step S121). If the verification result indicates an error, the decryption unit 86 generates an error message (step S122).
  • the server 100 proceeds to step S137 in FIG.
  • the temporary common key generation unit 85 generates the temporary common key 3m from the temporary client public key 4p acquired from the data 33d and the temporary server private key 7p (step S123).
  • the decryption unit 86 decrypts the encrypted data in the message 1m of the data 33d with the temporary common key 3m, and obtains the next generation client public key 6a ′ (step S124).
  • the certificate management unit 92 searches the statement management information table 80 for a record indicating the current generation client public key certificate 6k in the message in the data 33d (step S125). A record whose certificate ID matches the current generation client public key certificate 6k in the message 1m is searched. The certificate management unit 92 increments the number of times the retrieved record is received (step S126).
  • the certificate management unit 92 confirms whether or not the next generation client public key 6a ′ is specified in the message 1m (step S127).
  • the certificate management unit 92 determines whether or not the next generation client public key certificate 6k ′ has been registered in the record searched in step S125 (step S128). .
  • step S129 If the next-generation client public key certificate 6k ′ is not registered, the certificate management unit 92 generates an error message (step S129). The server 100 proceeds to step S136 in FIG. In this case, the error message corresponds to the message 1m. On the other hand, if the next-generation client public key certificate 6k ′ has been registered, the server 100 proceeds to step S135 of FIG.
  • the certificate management unit 92 determines whether or not the number of receptions of the record searched in step S125 exceeds the specified value (Ste S130). If the number of receptions exceeds the specified value, the server 100 proceeds to step S135 in FIG.
  • the certificate management unit 92 increments the number of transmissions before reply completion of the record searched in step S125, and checks whether it exceeds the specified value (step S131). ). If the number of transmissions before reply completion exceeds a prescribed value, that is, if the number of transmissions before reply completion indicates outside the allowable range, the certificate management unit 92 generates an error message (step S132). The server 100 proceeds to step S136 in FIG. In this case, the error message corresponds to the message 1m.
  • the certificate management unit 92 when the number of transmissions before reply completion is equal to or less than a predetermined value, that is, when the number of transmissions before reply completion is within an allowable range, the certificate management unit 92 generates the next generation client for the next generation client public key 6a ′.
  • a public key certificate 6k ′ is generated and registered in the certificate management information table 80 (step S133).
  • the certificate management unit 92 adds the electronic signature 7e using the server private key 7b to the next generation client public key certificate 6k ′ generated in step S133, and sets the message 1m (step S134).
  • the server 100 proceeds to step S135 in FIG.
  • step S135 the server 100 executes service-specific processing (step S135).
  • the result of the processing unique to the service corresponds to the secret data 34s.
  • the secret data 34s is set in the message 1m.
  • the update certificate encryption unit 87 encrypts the message 1m obtained in step S129, step S132, or step S135 with the temporary common key 3m (step S136).
  • the update certificate encryption unit 87 adds the electronic signature 7e generated with the server private key 7b and the server public key certificate 7k to the encrypted message 1m to create data 34d (step S137). .
  • the update certificate encryption unit 87 transmits the created data 34 d to the client 5.
  • the message 1m of the data 34d does not include the next generation client public key certificate 6k ′.
  • FIG. 21 is a flowchart for explaining the processing in the client in step (IV).
  • the client 5 receives data 34d returned from the server 100 in response to the request in step S531 (FIG. 17) (step S541).
  • the electronic signature check unit 56 checks the electronic signature 7e of the data 34d (step S542).
  • the decrypting unit 57 decrypts the message 1m of the data 34d with the temporary common key 3m (step S543).
  • the updating unit 50 confirms whether or not the next generation client public key certificate 6k ′ is included in the message 1m of the data 34d (step S544). If there is no next-generation client public key certificate 6k ′, the client 5 executes an application-specific process (step S547).
  • FIG. 22A shows the case of the related technology
  • FIG. 22B shows the case of the present embodiment. 22A and 22B, the right direction represents the length of time.
  • FIG. 22 (A) shows the risk when the client public key certificate 1k in the related technology is used for a long period of about 10 years.
  • use of the client public key certificate 1k is started at time T0.
  • estimation of the client private key 1b of the client public key certificate 1k is started by a third party.
  • the third party intercepts the communication multiple times and succeeds in estimating the client secret key 1b at time T25 by long-term estimation. As a result, the third party can estimate the client public key certificate 1k and the client public key 1a.
  • the third party can impersonate the client 5 by using the client public key certificate 1k that has been successfully estimated and illegally use the secret data 34s of the client 5.
  • the client public key certificate 1k Since it is difficult for the user of the client 5 and the administrator of the server 100 to detect impersonation, the client public key certificate 1k has to expire until 5 years, 10 years, etc. from the start of use. The three parties can continue to illegally use the secret data 34s of the client 5.
  • FIG. 22B when the present embodiment in which the current generation client public key certificate 6k is updated in a period sufficiently shorter than the period during which the estimation of the current generation client public key certificate 6k may be successful is applied. Shows the risk.
  • FIG. 22B shows an update example from the first generation to the fourth generation.
  • the client 5 starts using the first generation client public key certificate 61k using the client private key 61b.
  • the third party starts intercepting and estimating the client secret key 61b.
  • the second generation client public key certificate 62k for update uses the temporary common key 31m from the server 100. Forwarded by encryption. From time T3, the third party intercepts and estimates the temporary common key 31m.
  • the client 5 switches to the second generation client public key certificate 62k acquired in advance. Therefore, the third party fails to estimate the first generation client secret key 61b.
  • the client 5 updates the first generation client public key certificate 61k to the second generation client public key certificate 62k, and starts using the second generation client public key certificate 62k.
  • the three give up the estimation of the temporary common key 31m.
  • the third generation client public key certificate 63k for update uses the temporary common key 32m from the server 100. Forwarded by encryption. From time T23, the third party intercepts and estimates the temporary common key 32m.
  • the client 5 switches to the previously acquired third generation client public key certificate 63k. Therefore, the third party fails to estimate the second generation client secret key 62b.
  • the client 5 updates the second generation client public key certificate 62k to the third generation client public key certificate 63k, and starts using the third generation client public key certificate 63k.
  • the three give up the estimation of the temporary common key 32m.
  • the fourth generation client public key certificate 64k for update uses the temporary common key 33m from the server 100. Forwarded by encryption.
  • the third party intercepts and estimates the temporary common key 33m.
  • the client 5 switches to the previously acquired fourth generation client public key certificate 64k. Therefore, the third party fails to estimate the third generation client secret key 63b.
  • the client 5 updates the third generation client public key certificate 63k to the fourth generation client public key certificate 64k, and starts using the fourth generation client public key certificate 64k.
  • the three give up the estimation of the temporary common key 33m.
  • secure communication can be realized by updating the client public key certificate with the temporary common key before successful decryption by a third party.
  • the encryption key and the decryption key dedicated to the update of the client public key certificate are not kept during the period in which the server 100 can provide the service. Therefore, it is possible to prevent an illegal act caused by impersonation of the client 5.
  • next generation client public key certificate 6k ′ for mutual authentication between the client 5 and the server 100 can be updated on the server 100 side. Therefore, the client 5 itself or a part thereof is not replaced.
  • next generation client key pair 6p ′ is generated in the client 5
  • the next generation client public key certificate 6k ′ and the next generation client private key 6b ′ for mutual authentication are given to the client 5. Processing such as updating remotely is not performed. The risk that the next-generation client secret key 6b ′ is intercepted can be reduced.
  • the server 100 issues the next generation client public key certificate 6k ′, the time limit of the next generation client public key certificate 6k ′ can be made shorter than before. Therefore, the risk that the current generation client secret key 6b is estimated can be greatly reduced.
  • the current generation client public key certificate 6k is released as early as possible after the current generation client public key certificate 6k is used.
  • the next-generation client public key certificate 6k ′ is securely returned from the server 100 to the client 5.
  • the time when the next-generation client public key certificate 6k ′ is returned from the server 100 to the client 5 can be specified as a parameter on the server 100 side.
  • the date and time after a predetermined number of months may be specified by the parameter.
  • the client 5 switches from the current generation client public key certificate 6k to the next generation client public key certificate 6k ′, and first generates the next generation client public key certificate.
  • the next generation client public key certificate 6k ′ is securely returned to the client 5 from the server 100 as early as possible from the timing of using 6k ′. Therefore, before the current generation client public key 6a is estimated by a third party, it is possible to switch to the next generation client public key 6a ′.
  • the number of transmissions before completion of reply from the client 5 in a state where the reply from the server 100 has not arrived is counted. If the predetermined specified value is exceeded, the next-generation client public key certificate 6k ′ is revoked, and the request using the next-generation client public key certificate 6k ′ is controlled to be rejected. Therefore, an illegal analysis can be countered.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

 第1の公開鍵証明書を用いた、サーバに対するセキュアな通信接続が開始された状態で、該サーバに対し、第2の公開鍵証明書の発行要求を行い、前記第2の公開鍵証明書を受領し、前記第1の公開鍵証明書の有効期限が過ぎた場合は、前記第2の公開鍵証明書を用いた接続確認を行う処理をコンピュータに実行させる更新プログラム。

Description

更新プログラム及び方法、及び、管理プログラム及び方法
 本発明は、セキュアな通信技術に関する。
 近年、インターネット等を介したデータ通信をセキュアに行うために、一般的には、通信上の秘匿データに対して一時鍵を適用することにより、鍵の推定を事実上防いでいる。また、公開鍵を用いてデータを暗号化することが行われている。
 公開鍵方式を使ったセキュアな通信方式においては、最初にデータ要求元から送信データに付加する要求元の電子署名を検証するための公開鍵証明書をデータ要求先に送付し、要求先ではその公開鍵証明書の正当性をチェックした上で、データ要求元から受信したデータの署名を公開鍵証明書の中の公開鍵を使ってチェックすることにより、受信したデータが正しい要求元で作成されたものなのかどうかを確認している。
 しかしながら、データの署名検証に使われる公開鍵証明書は、データ要求元に固有の鍵ペア(公開鍵と秘密鍵)を更新しない限りは常に同じものが使われ、第三者がある程度長い時間をかければ、その公開鍵に対応する秘密鍵を推定できてしまう可能性が高く、秘密鍵が推定された場合、データ要求元のクライアントのなりすましが可能となり、データの不正利用、不正改竄が可能となってしまう。
 鍵ペア(公開鍵と秘密鍵)を更新するために、クライアント・サーバ間の通信セッションの開設において、双方の公開鍵証明書を互いに認証した後、互いに作成した一時公開鍵を相手から受け取った公開鍵証明書内の公開鍵を使って署名検証することによって双方の一時公開鍵の正当性を確認し、互いに相手から受け取った一時公開鍵と自分の一時秘密鍵から一時対称鍵を共有することで、共有した一時対称鍵を用いて通信データを暗号化及び復号する技術等が提案されている。
米国特許第5657390号明細書 特開2004-23224号公報 特開2005-204144号公報
 上述した技術により、通信環境を開設する毎に一時公開鍵が変わるため、第三者が通信データから一時公開鍵に対応する一時秘密鍵を推定することが困難である。そのため、暗号化された通信データを第三者が復号して推定することは非常に難しい。
 しかしながら、最初にクライアント・サーバ間で交換する双方の通信データのチェックに使用する公開鍵証明書は、更新することが困難であることから、有効期限が長く設定され、長期間にわたり変更されることなく利用される。長期間にわたり同じ公開鍵証明書を使用し続けた場合には、第三者が、公開鍵証明書に含まれる公開鍵に対応する秘密鍵を推定することは比較的容易になってくる。
 第三者があるクライアントの公開鍵証明書の秘密鍵を推定できた場合、第三者は完全にそのクライアントに成り済ますことができる。第三者は、クライアントに成り済まし、正規のコンテンツを獲得することができ、獲得した正規のコンテンツを無制限に複写して不特定多数の人々に配布することも可能である。
 したがって、1つの側面では、本発明は、クライアントの公開鍵証明書をセキュアに更新可能とすることを目的とする。
 一態様によれば、第1の公開鍵証明書を用いた、サーバに対するセキュアな通信接続が開始された状態で、該サーバに対し、第2の公開鍵証明書の発行要求を行い、前記第2の公開鍵証明書を受領し、前記第1の公開鍵証明書の有効期限が過ぎた場合は、前記第2の公開鍵証明書を用いた接続確認を行う処理をコンピュータに実行させる。
 また、上記処理をコンピュータが実行する更新方法、端末装置、及び、上記プログラムを記憶した記憶媒体とすることもできる。
 他の態様によれば、要求データを送信したクライアントの正当性と、該要求データの正当性の確認に用いられる公開鍵証明書の管理プログラムであって、第1の公開鍵証明書を用いた、前記クライアントとのセキュアな通信接続が開始された状態で、該クライアントとで一時共通鍵を共有し、前記クライアントからの第2の公開鍵証明書の発行要求に対して、該第2の公開鍵証明書を生成し、該第2の公開鍵証明書を前記一時共通鍵で暗号化して該クライアントに送信する処理をコンピュータに実行させる。
 また、上記処理をコンピュータが実行する管理方法、サーバ、及び、上記プログラムを記憶した記憶媒体とすることもできる。
 クライアントの固有の公開鍵証明書と秘密鍵のペアをセキュアに更新することができる。
本実施例にけるデータ通信システムの概要を説明するための図である。 サーバのハードウェア構成を示す図である。 クライアントのハードウェア構成を示す図である。 サーバのハードウェア構成を示す図である。 クライアントのハードウェア構成を示す図である。 クライアントの第1の機能構成例を示す図である。 サーバの第1の機能構成例を示す図である。 通信データ構成の他の例を示す図である。 クライアントの第2の機能構成例を示す図である。 証明書管理情報テーブルのデータ構成例を示す図である。 サーバの第2の機能構成例を示す図である。 サーバにおける証明書管理情報テーブルのデータ構成例を示す図である。 ステップ(I)におけるクライアントでの処理を説明するためのフローチャート図である。 ステップ(I)及び(II)におけるサーバでの処理を説明するためのフローチャート図(その1)である。 ステップ(I)及び(II)におけるサーバでの処理を説明するためのフローチャート図(その2)である。 ステップ(II)及び(III)におけるクライアントでの処理を説明するためのフローチャート図(その1)である。 ステップ(II)及び(III)におけるクライアントでの処理を説明するためのフローチャート図(その2)である。 ステップ(III)及び(IV)におけるサーバでの処理を説明するためのフローチャート図(その1)である。 ステップ(III)及び(IV)におけるサーバでの処理を説明するためのフローチャート図(その2)である。 ステップ(III)及び(IV)におけるサーバでの処理を説明するためのフローチャート図(その3)である。 ステップ(IV)におけるクライアントでの処理を説明するためのフローチャート図である。 図22(A)は、関連技術の場合を示し、図22(B)は、本実施例の場合を示す図である。
 以下、本発明の実施の形態を図面に基づいて説明する。公開鍵方式を使ったセキュアな通信方式において、ある程度長い鍵長の鍵を使えば、秘密鍵が第三者によって導出される心配はほぼないと考えられてきた。ECC(Elliptic Curve Cryptography)の場合、鍵長は素体224ビット以上である。また、RSA(Rivest Shamir Adleman)の場合、鍵長は2048ビット以上である。
 (1)しかしながら、近年、各情報処理装置のCPU(Central Processing Unit)性能、メモリ容量等のパフォーマンスは飛躍的に向上し、また、インターネット上の非常に多数の情報処理装置を利用した並列計算処理の技術が進歩している。従って、同じクライアント公開鍵を使い続けていると、秘密鍵を推定されて要求元のアプリケーションプログラム、ファームウェアが成り済まされる可能性が高くなっている。また、どの程度の鍵長とすれば十分であるかは、確定されたものではなく、秘密鍵を推定する技術の進歩とともに要求元が成り済まされるリスクが高くなる。
 (2)新しいクライアント公開鍵証明書及び新しい秘密鍵を埋め込んだ、要求元となるアプリケーションプログラム又はファームウェアを適当な期間で更新することが考えられる。この場合、アプリケーションプログラム又はファームウェアを更新する運用に負担が掛り、また、更新するためにはコストが掛る。
 (3)コストを掛けてアプリケーションプログラム又はファームウェアを更新する場合であっても、更新要求に付加される、正当な要求元であることを示す署名には、同様にクライアント公開鍵証明書が使用される。即ち、更新時に使用するクライアント公開鍵証明書に関して、上記(1)の問題が同様に存在し、結局、成り済ましのリスクを解消することができない。
 上述より、十分に安全な期間での要求元のクライアント公開鍵証明書の更新は難しく、セキュリティに関するリスクを包含していても、要求元のクライアント公開鍵証明書の期限を非常に長いものにして運用するのが一般的である。
 図1は、本実施例にけるデータ通信システムの概要を説明するための図である。図1において、本実施例にけるデータ通信システム1000は、1以上のクライアント5と、サーバ100とが、ネットワーク2を介して接続される。各クライアント5とサーバ100との間では、PKI(Public Key Infrastructure)により暗号化されたデータで通信が行われる。クライアント5が、現行世代クライアント公開鍵証明書6kを、次世代クライアント公開鍵証明書6k'に更新する処理の概要について説明する。
 先ず、クライアント5は、サーバ100との間で、PKIによる通信によって一時公開鍵3mの共有処理21pを行う。共有処理21pを行う時点では、クライアント5は、現行世代クライアント公開鍵6aと現行世代クライアント秘密鍵6bとによる現行世代クライアント鍵ペア6p、及び、現行世代クライアント公開鍵証明書6kと保持する。
 クライアント5からサーバ100へのデータ送信は、これら現行世代クライアント鍵ペア6pと現行世代クライアント公開鍵証明書6kとが用いられ、PKIにより暗号化されたデータがサーバ100へと送信される。
 クライアント5とサーバ100間で一時公開鍵3mが共有されると、クライアント5は、一時公開鍵3mを用いた更新処理22pをサーバ100との間で行う。クライアント5は、次世代クライアント鍵ペア6p'を生成し、サーバ100と共有した一時公開鍵3mで、次世代クライアント公開鍵6a'を暗号化して、サーバ100から次世代クライアント公開鍵証明書6k'を取得する。
 図1のデータ通信システム100において、サーバ100は、テキスト、静止画、動画等の種々の情報をクライアント5に提供するセンタに相当する。クライアント5のユーザは、サーバ100を運営するプロバイダとの間で所定の契約を結ぶことで、サーバ100は、クライアント5の正当性を確認したうえで、情報提供を行う。
 本実施例におけるデータ通信システム1000では、以下の<仕組みI>及び<仕組みII>を提供する。
<仕組みI>では、現行世代クライアント公開鍵6aに対する長時間にわたる推定に対抗する仕組みを提供する。
<仕組みII>では、更新処理22pの実行中における不正な解析に対処する仕組みを提供する。
 <仕組みI>
 PKI暗号化による通信において、上述した共有処理21p及び更新処理22pを行う通信シーケンス例について図2及び図3で説明する。図2及び図3において、PKIに基づき暗号化されたデータは、送信元の公開鍵を示す公開鍵証明書6k(又は7k)と、メッセージ1mと、送信元の電子署名6e(又は7e)とを含む。公開鍵証明書6k(又は7k)により、送信元の公開鍵の正当性を示し、電子署名によって正しいデータであることを示す。電子署名は、送信元の秘密鍵で作成される。他の図においても同様である。
 図2は、共有処理における通信シーケンス及び通信データ構成の例を示す図である。ステップ(I)において、クライアント5は、一時共通鍵3mをサーバ100と共有するために、データ31dをサーバ100に送信する。データ31dは、PKIに基づき暗号化されたデータである。
 データ31dは、現行世代クライアント公開鍵6aを示す現行世代クライアント公開鍵証明書6kと、メッセージ1mと、現行世代クライアント秘密鍵6bによる電子署名6eとを有する。クライアント5は、一時クライアント鍵ペア4pを生成しておく。
 ステップ(II)において、サーバ100は、PKIに基づき、データ31dの現行世代クライアント公開鍵証明書6kによりクライアント5の正当性を確認し、現行世代クライアント公開鍵証明書6kで示される現行世代クライアント公開鍵6kを使って電子署名6eの正当性を判断する。
 サーバ100は、クライアント5の電子署名6eの正当性を確認した後、一時サーバ鍵ペア2pを生成する。そして、サーバ100は、サーバ公開鍵7aを示す現行世代クライアント公開鍵証明書6kと、一時サーバ公開鍵2aを含むメッセージ1mと、現行世代クライアント秘密鍵6bによる電子署名6eとを含むデータ32dを作成して、クライアント5に送信する。
 ステップ(IIIa)において、クライアント5は、サーバ100からデータ32dを受信すると、PKIに基づき、データ32dが正当なサーバ100からの正しいデータであることを確認後、メッセージ1mに含まれる一時サーバ公開鍵2aと一時クライアント秘密鍵4aとで一時共通鍵3mを生成する。そして、クライアント5は、PKIに基づき、メッセージ1mに一時クライアント公開鍵4aを含むデータ33d-1を作成し、サーバ100に送信する。
 サーバ100は、データ33d-1を受信すると、PKIに基づき、データ33d-1が正当なクライアント5からの正しいデータであることを確認後、メッセージ1mから一時サーバ公開鍵2aを取り出して、取り出した一時サーバ公開鍵2aと一時サーバ秘密鍵2bとで一時共通鍵3mを生成する。
 これにより、クライアント5とサーバ100間の通信に使用する一時共通鍵3mが、クライアント5とサーバ100の夫々に設定される。クライアント5とサーバ100間は、一時共通鍵3mを使用した一時的な通信を確立する。
 図3は、更新処理における通信シーケンス及び通信データ構成の例を示す図である。ステップ(IIIb)において、図2のデータ33d-1に続いて、クライアント5は、次世代クライアント鍵ペア6p'を生成し、PKIに基づき、メッセージ1mに次世代クライアント公開鍵6a'を含むデータ33d-2を作成し、サーバ100に送信する。
 サーバ100は、データ33d-2を受信すると、PKIに基づきデータ33d-2が正当なクライアント5からの正しいデータであることを確認後、メッセージ1mから次世代クライアント公開鍵6a'を取り出す。
 ステップ(IV)において、そして、サーバ100は、メッセージ1mから取り出した次世代クライアント公開鍵6a'に対してクライアント公開鍵証明書6k'を発行する。サーバ100は、クライアント公開鍵証明書6k'を一時共通鍵3mで暗号化してメッセージ1に含めて、PKIに基づいてデータ34dを作成し、クライアント5へ送信する。
 クライアント5は、データ34dを受信すると、PKIに基づきデータ34dが正当なクライアント5からの正しいデータであることを確認後、メッセージ1mから次世代クライアント公開鍵証明書6k'を一時共通鍵3mで復号して、取得する。
 このように、更新処理毎に、クライアント5とサーバ100とは新たに一時共通鍵3m生成して共有する。一時共通鍵3mは、1回の更新処理にのみ生成され共有されるため、公開鍵証明書の更新用の鍵ペア及び公開鍵証明書を長期間、保持する場合に比べて、一時共通鍵3mの期間は相当に短い。長期間とは、数年から凡そ10年等の年単位である。一時共通鍵3mの期間は、時間単位、又は日単位の長さである。
 上述したように、次世代クライアント公開鍵6a'と次世代クライアント公開鍵証明書6k'とは,一時共通鍵3mで暗号化されるためセキュアに更新を行うことができる。また、更新処理毎に、クライアント5とサーバ100とは新たな一時共通鍵3mを短期間の間だけ共有するため、解読されるリスクを極めて少なくすることができる。
 クライアント5の現行世代クライアント秘密鍵6bが推定される前に新たな次世代クライアント鍵ペア6p'に切り替えていくことが可能となり、第三者によるクライアントの現行世代クライアント秘密鍵6bの推定は非常に困難になる。第三者による現行世代クライアント公開鍵6aに対する長時間にわたる推定に対抗することができる。
 クライアント5が、サーバから次世代クライアント公開鍵証明書6k'を受信する前に、クライアントの現行世代クライアント公開鍵証明書6kの期限が経過した場合、通常は、クライアントベンダーは別の手続きによって新たなクライアント公開鍵証明書の発行申請を行う。その際、クライアントベンダーは、現行世代クライアント公開鍵証明書6kの失効を申請する。
 そして、クライアントベンダーは、次世代クライアント公開鍵証明書6k'及び次世代クライアント秘密鍵を組み込んだ、クライアント5で動作するアプリケーションプログラム又はファームウェアを流通させるようにする。
 具体的には、クライアントベンダーは、クライアント5に相当する機器をメーカー又は代理店に返品し、アプリケーションプログラム又はファームウェアに次世代クライアント公開鍵証明書6k'及び次世代クライアント秘密鍵を組み込んだ機器を再送してもらう。或いは、ユーザが再認証して、アプリケーションプログラム又はファームウェアをインターネット経由で更新して次世代クライアント公開鍵証明書6k'及び次世代クライアント秘密鍵を取得する。
 上述したように、本実施例では、次世代クライアント公開鍵6a'と次世代クライアント公開鍵証明書6k'とは、クライアント5とサーバ100との間で一時共通鍵3mを共有した後、その一時共通鍵3mにより暗号化し、また復号する。
 従って、次世代クライアント公開鍵6a'は、それに対する次世代クライアント公開鍵証明書6k'を現行世代クライアント公開鍵証明書6kとして使用開始するまで、ネットワーク2上に現れることはない。
 つまり、一時共通鍵3mが使用されて推定可能な状態になるまで、第三者は、次世代クライアント公開鍵6a'を推定開始することができない。
 <仕組みII>
 サーバ100からクライアント5への次世代クライアント公開鍵証明書6k'の返信を阻害する行為に対して、サーバ100は、サーバ100から次世代クライアント公開鍵証明書6k'を未だ受信していない状態によるクライアント5からのメッセージの受信回数をカウントし、運用で定めた規定値を超えた場合は、その次世代クライアント公開鍵証明書6k'を失効し、また、その次世代クライアント公開鍵証明書6k'を使った要求を拒絶する制御を行う。この<仕組みII>により、再送攻撃による不正な解析に対処できる。
 図4は、サーバのハードウェア構成を示す図である。図4において、サーバ100は、コンピュータによって制御される装置であって、プロセッサとしてのCPU(Central Processing Unit)11aと、主記憶装置12aと、補助記憶装置13aと、入力装置14aと、表示装置15aと、通信I/F(インターフェース)17aと、ドライブ装置18aとを有し、バスBに接続される。
 CPU11aは、主記憶装置12aに格納されたプログラムに従ってサーバ100を制御する。主記憶装置12aには、RAM(Random Access Memory)、ROM(Read Only Memory)等が用いられ、CPU11aにて実行されるプログラム、CPU11aでの処理に必要なデータ、CPU11aでの処理にて得られたデータ等を記憶又は一時保存する。
 補助記憶装置13aには、HDD(Hard Disk Drive)等が用いられ、各種処理を実行するためのプログラム等のデータを格納する。補助記憶装置13aに格納されているプログラムの一部が主記憶装置12aにロードされ、CPU11aに実行されることによって、各種処理が実現される。記憶部130aは、主記憶装置12a及び/又は補助記憶装置13aに相当する。
 入力装置14aは、マウス、キーボード等を有し、ユーザがサーバ100による処理に必要な各種情報を入力するために用いられる。表示装置15aは、CPU11aの制御のもとに必要な各種情報を表示する。通信I/F17aは、有線又は無線などのネットワークを通じて通信を行う。通信I/F17aによる通信は無線又は有線に限定されるものではない。
 サーバ100によって行われる処理を実現するプログラムは、例えば、CD-ROM(Compact Disc Read-Only Memory)等の非一時的で有形の媒体である記憶媒体19aによってサーバ100に提供される。
 ドライブ装置18aは、ドライブ装置18aにセットされた記憶媒体19a(CD-ROM等)とサーバ100とのインターフェースを行う。
 また、記憶媒体19aに、後述される本実施の形態に係る種々の処理を実現するプログラムを格納し、この記憶媒体19に格納されたプログラムは、ドライブ装置18aを介してサーバ100にインストールされる。インストールされたプログラムは、サーバ100により実行可能となる。
 尚、プログラムを格納する媒体としてCD-ROMに限定するものではなく、コンピュータが読み取り可能な媒体であればよい。コンピュータ読取可能な記憶媒体として、CD-ROMの他に、DVDディスク、USBメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリであっても良い。
 入出力装置14aは、ユーザに種々の情報を表示したり、ユーザがサーバ100による処理に必要な各種情報を入力するために用いられる。入出力装置14aは、マウス、キーボード等の入力デバイス、LCD(Liquid Crystal Display)等のディスプレイを有する。又は、入出力装置14aは、入力デバイスとディスプレイとが一体化したタッチパネルであっても良い。
 クライアント5は、コンピュータを有する電子機器(以下、単に「機器」と言う)に相当し、テレビ、STB(Set Top Box)、他家電製品等である。クライアント5は、生体情報に係る管理装置等であっても良い。クライアント5は、図3に示すようなハードウェア構成を有する。図5は、クライアントのハードウェア構成を示す図である。
 図5において、クライアント5は、コンピュータによって制御される電子機器であって、プロセッサとしてのCPU(Central Processing Unit)11bと、主記憶装置12bと、特定処理装置14bと、ユーザI/F(インターフェース)16bと、通信I/F17bと、ドライブ装置18bとを有し、バスB2に接続される。
 CPU11bは、主記憶装置12bに格納されたプログラムに従ってクライアント5を制御する。主記憶装置12bには、RAM(Random Access Memory)、ROM(Read Only Memory)等が用いられ、CPU11bにて実行されるプログラム、CPU11bでの処理に必要なデータ、CPU11bでの処理にて得られたデータ等を記憶又は一時保存する。主記憶装置12bに格納されているプログラムが、CPU11bに実行されることによって、各種処理が実現される。
 特定処理装置14bは、電子機器が目的とする、テレビ、STB(Set Top Box)、他家電製品、生体情報に係る管理装置等としての特定処理を行う。ユーザI/F16bは、CPU11bの制御のもとに必要な各種情報を表示し、また、ユーザによる操作入力を可能とするタッチパネル等である。
 通信I/F17bは、1又は複数の通信プロトコルに対応し、有線又は無線などのネットワーク2を介してサーバ装置100との通信を行うインタフェースである。通信I/F17bによる通信は無線又は有線に限定されるものではない。
 クライアント5によって行われる処理を実現するプログラム、少なくとも書籍ビューワ8は、ネットワーク2を介して電子書籍配信サーバ100からダウンロードされる。或いは、書籍ビューワ8等のプログラムは、クライアント5の主記憶装置12bに記憶されていても良い。
 ドライブ装置18bは、ドライブ装置18bにセットされた、非一時的で有形の媒体である記憶媒体19b(例えば、SDカード等)と、クライアント5とのインターフェースを行う。主記憶装置12b及び/又は記憶媒体19bが記憶部130bに相当し、電子書籍6及びその関連情報を記憶する。
 クライアント5は、特定処理装置14bに着脱可能な、又は、特定処理装置14bと通信I/F17bを介して通信可能な、デスクトップ型、ノートブック型、ラップトップ型等の情報処理端末であっても良く、そのハードウェア構成は、図3に示す構成から特定処理装置14bを除いてほぼ同様であるので、その説明を省略する。
 次に、<仕組みI>及び<仕組みII>を実現するための機能構成例について説明する。図中に示す略語と名称との対応付けは以下の通りである。
・CC_PUBは、現行世代クライアント公開鍵を表す。
・CC_CRTは、現行世代クライアント公開鍵証明書を表す。
・CC_PRVは、現行世代クライアント秘密鍵を表す。
・NC_PUBは、次世代クライアント公開鍵を表す。
・NC_CRTは、次世代クライアント公開鍵証明書を表す。
・NC_PRVは、次世代クライアント秘密鍵を表す。
・TM_COMは、一時共通鍵を表す。
・TMC_PUBは、一時クライアント公開鍵を表す。
・TMC_PRVは、一時クライアント秘密鍵を表す。
・RT_CRTは、ルート公開鍵証明書を表す。
・S_PUBは、サーバ公開鍵を表す。
・S_CRTは、サーバ公開鍵証明書を表す。
・S_PRVは、サーバ秘密鍵を表す。
・TMS_PUBは、一時サーバ公開鍵を表す。
・TMS_PRVは、一時サーバ秘密鍵を表す。
 図6は、クライアントの第1の機能構成例を示す図である。図6において、クライアント5は、更新部50と、一時クライアント鍵ペア生成部52と、一時共通鍵生成部53とを有する。更新部50と、一時鍵ペア生成部52と、一時共通鍵生成部53とは、CPU11bが対応するプログラムを実行することで行われる処理に相当する。
 また、クライアント5では、記憶部130bに、現行世代クライアント公開鍵6a、現行世代クライアント公開鍵証明書6k、現行世代クライアント秘密鍵6b、次世代クライアント公開鍵6a'、次世代クライアント公開鍵証明書6k'、次世代クライアント秘密鍵6b'、一時サーバ公開鍵3a、一時クライアント公開鍵4a、一時クライアント秘密鍵4b等を記憶する。
 更新部50は、現行世代クライアント公開鍵証明書6kの更新するための図1に示す共有処理21p及び更新処理22pを制御する。一時鍵ペア生成部52は、一時共通鍵3mを生成するための一時クライアント鍵ペア4pを生成する。一時クライアント鍵ペア4pとなる一時クライアント公開鍵4a及び一時クライアント秘密鍵4bが記憶部130bに格納される。
 一時共通鍵生成部53は、一時サーバ公開鍵2aと一時クライアント秘密鍵4aとで、サーバ100と共有する一時共通鍵3mを生成する。一時共通鍵3mは記憶部130bに格納される。
 先ず、上述した<仕組みI>に係る処理を説明する。ステップは、図1及び図2で示すステップに対応する。
 ステップ(I)において、一時サーバ公開鍵2aを要求する。更新部50は、メッセージ1mに対して、現行世代クライアント公開鍵6aを示す現行世代クライアント公開鍵証明書6kと、現行世代クライアント秘密鍵6bによる電子署名6eとを付加したデータ31dを作成する。更新部50は、データ31dをサーバ100へ送信する。
 一方、更新部50は、一時鍵ペア生成部52によって、一時クライアント鍵ペア4pを生成する。一時クライアント鍵ペア4pの生成により、記憶部130bに、一時クライアント公開鍵4aと一時クライアント秘密鍵4bとが記憶される。
 ステップ(II)において、一時共通鍵3mを共有する。一時共通鍵生成部53は、サーバ100からデータ32dを受信する。データ32dは、サーバ公開鍵7aを示すサーバ公開鍵証明書7kと、一時サーバ公開鍵2aを含むメッセージ1mと、サーバ秘密鍵7bによる電子著名6eとを含む。
 一時共通鍵生成部53は、データ32dのサーバ公開鍵証明書7kの正当性を確認後、サーバ公開鍵証明書7kで示されるサーバ公開鍵7aを用いて電子署名7eの正当性を確認して、正当なサーバ100が作成した正しいデータであることを確認する。
 その後、一時共通鍵生成部53は、データ32dのメッセージ1mから一時サーバ公開鍵2aを取得して、取得した一時サーバ公開鍵2aと、一時鍵ペア生成部52で生成された一時クライアント秘密鍵4bとで一時共通鍵3mを生成する。一時共通鍵生成部53によって生成された一時共通鍵3mは、記憶部130bに格納される。
 一方、クライアント5は、データ32dを受信せず、サーバ100からエラー終了通知を受信する場合がある。サーバ100によって、現行世代クライアント公開鍵証明書6kの期限が経過していると判断された場合である。エラー終了通知部59は、サーバ100から受信したエラー終了通知を更新部50に通知する。
 更新部50は、現世代クライアント公開鍵証明書6kの更新に失敗したことを示すメッセージをユーザI/F16bに表示してユーザに通知する。この場合、ユーザは、サーバ100を運営するプロバイダへ連絡をして、所定の手続きを行い、次世代クライアント公開鍵証明書6k'を取得する。
 ステップ(IIIa)において、一時クライアント公開鍵4aを通知する。更新部50は、一時クライアント公開鍵4aを含むメッセージに対して、現行世代クライアント公開鍵6aを示す現行世代クライアント公開鍵証明書6kと、現行世代クライアント秘密鍵6bによる電子署名6eとを付加したデータ33d-1を作成する。更新部50は、データ33d-1をサーバ100へ送信する。サーバ100でも一時共通鍵3mが生成される。
 ステップ(IIIb)において、次世代クライアント公開鍵証明書6k'を要求する。更新部50は、次世代クライアント公開鍵6a'を一時共通鍵3mで暗号化する。更新部50は、暗号化した次世代クライアント公開鍵6a'を含むメッセージ1mに対して、現行世代クライアント公開鍵6aを示す現行世代クライアント公開鍵証明書6kと、現行世代クライアント秘密鍵6bによる電子署名6eとを付加したデータ33d-2を作成する。更新部50は、データ33d-2をサーバ100へ送信する。
 ステップ(IV)において、次世代クライアント公開鍵証明書6k'を取得する。更新部50は、サーバ100からデータ34dを受信する。データ34dは、サーバ公開鍵7aを示すサーバ公開鍵証明書7kと、次世代クライアント公開鍵証明書6k'を含むメッセージ1mと、サーバ秘密鍵7bによる電子著名6eとを含む。一時共通鍵3mによって次世代クライアント公開鍵証明書6k'は暗号化されている。
 更新部50は、データ34dのサーバ公開鍵証明書7kの正当性を確認後、サーバ公開鍵証明書7kで示されるサーバ公開鍵7aを用いて電子署名7eの正当性を確認して、正規のサーバ100が作成されたデータであることを確認する。
 その後、更新部50は、データ34dのメッセージ1mの次世代クライアント公開鍵証明書6k'を、一時共通鍵3mで復号する。復号された次世代クライアント公開鍵証明書6k'は、記憶部130bに記憶される。
 上述したように、互いに正当なクライアント5及びサーバ100であることを確認し、一時共通鍵3mによる通信を確立することで、一時共通鍵3mを用いてセキュアに次世代クライアント公開鍵証明書6k'を取得できる。
 一時共通鍵3mは、次世代クライアント公開鍵証明書6k'の取得のみに使用される秘密鍵であるため、長期間にわたり使用することがない。
 また、現行世代クライアント公開鍵証明書6kを使用する初期の段階で、次世代クライアント鍵ペア6p'を生成し、サーバ100から次世代クライアント公開鍵証明書6k'を取得するため、現行世代クライアント鍵ペア6pの使用期間を短く設定することができる。
 一方、更新部50は、ステップ(IIIa)及び(IIIb)の後、サーバ100から次世代クライアント公開鍵証明書6k'を所定期間受信しない場合、即ち、ステップ(IV)が行われない場合、データ33d-1及びデータ33d-2を再送しても良い。その結果、サーバ100からエラー終了通知を受信する場合がある。サーバ100からのエラー終了通知は、エラー終了通知部59によって更新部50に通知される。
 更新部50は、サーバ100からの次世代クライアント公開鍵証明書6k'(データ34d)の返信が阻害された場合があると判断し、現世代クライアント公開鍵証明書6kの更新に失敗したことを示すメッセージをユーザI/F16bに表示してユーザに通知する。この場合、ユーザは、サーバ100を運営するプロバイダへ連絡をして、所定の手続きを行い、次世代クライアント公開鍵証明書6k'を取得する。
 図7は、サーバの第1の機能構成例を示す図である。図7に示すサーバ100の第1の機能構成例は、図6のクライアント5の第1の機能構成例に対応する構成を示している。
 図7において、サーバ100は、正当性確認部81と、一時鍵ペア生成部83と、一時共通鍵生成部85と、管理部90と、エラー検出部99とを有する。正当性確認部81と、一時鍵ペア生成部83と、一時共通鍵生成部85と、管理部90と、エラー検出部99とは、CPU11aが対応するプログラムを実行することで行われる処理に相当する。
 また、サーバ100では、記憶部130aに、一時サーバ公開鍵2a、一時サーバ秘密鍵2b、失効リスト2f、一時共通鍵3m、一時クライアント公開鍵4a、次世代クライアント公開鍵証明書6k'、ルート公開鍵証明書9b等を記憶する。
 正当性確認部81は、クライアント5から受信したデータ31の現行世代クライアント公開鍵証明書6kの正当性を確認する。一時鍵ペア生成部83は、一時共通鍵ペア7pを生成するための一時サーバ鍵ペア2pを生成する。一時サーバ鍵ペア2pとなる一時サーバ公開鍵2a及び一時サーバ秘密鍵2bが記憶部130aに格納される。
 一時共通鍵生成部85は、一時鍵ペア生成部83によって生成された一時サーバ秘密鍵2bと、クライアント5から送信された一時クライアント公開鍵4aとを用いて、一時共通鍵3mを生成する。一時共通鍵3mは記憶部130aに格納される。
 管理部90は、クライアント5に対して発行した各クライアント公開鍵証明書を管理する。また、管理部90は、クライアント5からのデータ31d及び33dの電子署名6eの確認及び正当な要求であることを確認し、クライアント公開鍵証明書の発行を行う。
 管理部90は、電子署名6eを用いて、現世代クライアント公開鍵証明書6kの正当性を確認し、現世代クライアント公開鍵証明書6kの期限をチェックする。また、管理部90は、次世代クライアント公開鍵証明書6k'が未登録であることを確認して、次世代クライアント公開鍵証明書6k'を生成及び登録する。更に、管理部90は、クライアント5からの要求が不当要求回数制限を超えていないかを確認する。
 エラー検出部99は、正当性確認部81又は管理部90により、正当性が十分に確認できなかった場合、クライアント5へエラー終了を通知する。
 サーバ100での処理を、図6のステップ(I)、(II)、(IIIa)、(IIIb)、及び(IV)に対応させて説明する。
 ステップ(I)において、一時サーバ公開鍵2aの要求を受信する。サーバ100において、一時サーバ公開鍵2aを要求するメッセージ1mを含むデータ31dを受信すると、正当性確認部81は、ルート公開鍵証明書9bに基づいて、現行世代クライアント公開鍵証明書6kを確認する。
 また、正当性確認部81は、現行世代クライアント公開鍵証明書6kで示される現行世代クライアント公開鍵6aを用いて、電子署名6eをチェックすることで、データ31dが、正当なクライアント5によって作成された正しいデータであることを確認する。
 更に、正当性確認部81は、現行世代クライアント公開鍵証明書6kが登録済みの証明書であることを確認し、現行世代クライアント公開鍵証明書6kの証明書期限に基づいて、証明書期限前であることを確認する。現行世代クライアント公開鍵証明書6kが未登録の場合、現行世代クライアント公開鍵証明書6kの期限が経過している場合、エラー検出部99がクライアント5へエラー終了通知を送信する。
 ステップ(II)において、一時共通鍵3mを共有するために一時サーバ鍵ペア2pを生成する。一時鍵ペア生成部83は、一時サーバ鍵ペア2pを生成する。一時サーバ鍵ペア2pである、サーバ公開鍵7a及びサーバ秘密鍵7bが記憶部130aに記憶される。
 サーバ公開鍵7aを示すサーバ公開鍵証明書7kと、一時サーバ公開鍵2aを含むメッセージ1mと、サーバ秘密鍵7bによる電子著名6eとを含むデータ32dが生成され、クライアント5へ送信される。
 ステップ(IIIa)において、一時クライアント公開鍵4aを受信する。正当性確認部81は、一時クライアント公開鍵4aを含むデータ33d-1に対して、現行世代クライアント公開鍵証明書6kの正当性を確認し、現行世代クライアント公開鍵証明書6kによって示される現行世代クライアント公開鍵6aで電子署名6eを確認する。データ33d-1が正当なクライアント5によって作成されたデータであることが確認された後、一時クライアント公開鍵4aがメッセージ1mから取得される。
 管理部90が不当要求回数制限値以内であることを確認した後、一時共通鍵生成部85は、一時クライアント公開鍵4aと、一時サーバ秘密鍵2bとを用いて、一時共通鍵3mを生成する。生成された一時共通鍵3mは、記憶部130aに記憶される。
 ステップ(IIIb)において、次世代クライアント公開鍵証明書6k'の要求を受信する。正当性確認部81は、暗号化された次世代クライアント公開鍵6a'を含むデータ33d-2に対して、ルート公開鍵証明書9bを参照して現行世代クライアント公開鍵証明書6kの正当性を確認し、現行世代クライアント公開鍵証明書6kによって示される現行世代クライアント公開鍵6aを用いて電子署名6eを確認する。
 正当性の確認後、管理部90は、次世代クライアント公開鍵6a'に対する次世代クライアント公開鍵証明書6k'が既に登録されているか否かを判断する。また、管理部90は、現行世代クライアント公開鍵証明書6kの証明書期限を確認する。更に、管理部90は、不当要求回数制限値以下の要求であることを確認する。
 不当要求回数制限値以下の要求であることの確認後、管理部90は、メッセージ1m内の次世代クライアント公開鍵6a'を一時共通鍵3mで復号して、次世代クライアント公開鍵6a'に対する次世代クライアント公開鍵証明書6k'を生成する。生成された次世代クライアント公開鍵証明書6k'は、記憶部130bに格納される。
 ステップ(IV)において、更新証明書暗号化部87は、管理部90によって生成された次世代クライアント公開鍵証明書6k'を一時共通鍵3mで暗号化してメッセージ1mに含めたデータ34dを作成し、クライアント5へ送信する。データ34dには、サーバ公開鍵7aを示すサーバ公開鍵証明書7kと、暗号化された次世代クライアント公開鍵証明書6k'を含むメッセージ1mと、サーバ秘密鍵7bによる電子著名6eとが含まれる。
 管理部90は、次世代クライアント公開鍵証明書6k'を含んだデータ34dをクライアント5に送信した後に、クライアント5から、再度、データ33d-1又は33d-2を受信する場合には、受信回数をカウントする。受信回数が予め定めた不当要求回数制限値を超えた場合、サーバ100が送信した次世代クライアント公開鍵証明書6k'(データ34d)が阻害された場合があると判断する。この場合、エラー検出部99が、クライアント5へエラー終了通知を送信する。
 上述した図6のクライアント5の第1の機能構成及び図7のサーバ100の第1の機能構成では、クラアント5が、次世代クライアント公開鍵6a'と、一時共通鍵3mで暗号化した次世代クライアント公開鍵6a'とを、夫々別のデータ33d-1及び33d-2でサーバ100へ送信したが、ステップ(IIIa)において、更新部50は、メッセージ1mに次世代クライアント公開鍵6a'と、一時共通鍵3mで暗号化した次世代クライアント公開鍵6a'とを含めて1回の通信でサーバ100へ送信しても良い。
 この場合、サーバ100は、メッセージ1mに次世代クライアント公開鍵6a'と、一時共通鍵3mで暗号化した次世代クライアント公開鍵6a'とが含まれたデータを受信しても良い。ステップ(IIIa)とステップ(IIIb)の処理を1つのデータに対して行えば良い。
 図8は、通信データ構成の他の例を示す図である。図8において、ステップ(IIIa)とステップ(IIIb)でのデータを1つで行う場合の通信データ構成を示す。この場合をステップ(III)とする。
 クライアント5は、一時共通鍵3mを生成した後、ステップ(III)において、クライアント5の更新部50は、次世代クライアント公開鍵6a'を一時共通鍵3mで暗号化する。
 そして、更新部50は、一時クライアント公開鍵4aと、一時共通鍵3mで暗号化した次世代クライアント公開鍵6a'とをメッセージ1mに含め、メッセージ1mに対して、現行世代クライアント公開鍵6aを示す現行世代クライアント公開鍵証明書6kと、現行世代クライアント秘密鍵6bによる電子署名6eとを付加したデータ33を作成する。
 ステップ(III)において、サーバ100は、一時クライアント公開鍵4aと、一時共通鍵3mで暗号化した次世代クライアント公開鍵6a'とを含んだデータ33dを受信する。
 サーバ100の正当性確認部81は、データ33dに対して、現行世代クライアント公開鍵証明書6kの正当性を確認し、現行世代クライアント公開鍵証明書6kによって示される現行世代クライアント公開鍵6aで電子署名6eを確認する。データ33d-1が正当なクライアント5によって作成されたデータであることが確認された後、一時クライアント公開鍵4aがメッセージ1mから取得される。
 一時共通鍵生成部85は、一時クライアント公開鍵4aと、一時サーバ秘密鍵2bとを用いて、一時共通鍵3mを生成する。生成された一時共通鍵3mは、記憶部130aに記憶される。
 管理部90は、現行世代クライアント公開鍵証明書6kが登録済みの証明書であることを確認し、現行世代クライアント公開鍵証明書6kの証明書期限に基づいて、証明書期限前であることを確認する。更に、管理部90は、不当要求回数制限値以内であることを確認する。
 不当要求回数制限値以下の要求であることの確認後、管理部90は、メッセージ1m内の次世代クライアント公開鍵6a'を一時共通鍵3mで復号して、次世代クライアント公開鍵6a'に対する次世代クライアント公開鍵証明書6k'を生成する。生成された次世代クライアント公開鍵証明書6k'は、記憶部130bに格納される。
 そして、ステップ(IV)において、サーバ100から次世代クライアント公開鍵証明書6k'がクライアント5へと提供される。
 以下に、クライアント5及びサーバ100の第1の機能構成を詳細にした第2の機能構成について図9及び図10で説明する。図9及び図10では、図8に示すステップ(III)によるデータ33の場合で説明する。
 図9は、クライアントの第2の機能構成例を示す図である。図9において、クライアント5は、更新部50と、サーバ正当性判断部51と、一時鍵ペア生成部52と、一時共通鍵生成部53と、暗号化部54と、電子署名付与部55と、電子署名チェック部56と、復号部57と、エラー終了通知部59とを有する。
 更新部50と、サーバ正当性判断部51と、一時鍵ペア生成部52と、一時共通鍵生成部53と、暗号化部54と、電子署名付与部55と、電子署名チェック部56と、復号部57とは、CPU11bが対応するプログラムを実行することで行われる処理に相当する。
 また、クライアント5では、記憶部130bに、一時サーバ公開鍵2a、一時クライアント鍵ペア4p、一時共通鍵3m、現行世代クライアント鍵ペア6p、現行世代クライアント公開鍵証明書6k、次世代クライアント鍵ペア6p'、次世代クライアント公開鍵証明書6k'、電子署名付き次世代クライアント公開鍵6k'-2、サーバ公開鍵証明書7k、ルート公開鍵証明書9b、データ31d~34d、秘密データ33s及び34s等を記憶する。
 更新部50は、現行世代クライアント公開鍵証明書6kの更新するための図1に示す共有処理21p及び更新処理22pを制御する。
 更新部50は、現行世代クライアント公開鍵証明書6pの期限チェックを行う。また、更新部50は、次世代クライアント公開鍵証明書6p'をサーバ100から受信済みであるかを確認する。次世代クライアント公開鍵証明書6p'を受信していない場合、共有処理21p及び更新処理22pを行う。更新処理22pにおいて、更新部50は、次世代クライアント鍵ペア6p'を生成し、サーバ100から次世代クライアント公開鍵証明書6p'を受信した場合、次世代クライアント公開鍵証明書6p'を登録する。
 ステップ(I)において、更新部50は、期限チェックにより、現行世代クライアント公開鍵証明書6pの更新時期であると判断すると、現行世代クライアント公開鍵証明書6kを含むデータ31dをサーバ100へ送信する。データ31dは、一時共通鍵3mを生成するための一時サーバ公開鍵の要求に相当する。
 ステップ(II)において、クライアント5がサーバ100からデータ32dを受信すると、サーバ正当性判断部51は、データ32dが、正当なサーバ100によって作成された、改竄されていない正しいデータであるか否かを判断する。
 ステップ(III)において、一時鍵ペア生成部52は、サーバ正当性判断部51によって正しいデータであると判断された場合、一時共通鍵3mをサーバ100と共有するために、一時クライアント鍵ペア4pを生成する。一時クライアント鍵ペア4pとして、一時クライアント公開鍵4a及び一時クライアント秘密鍵4bが記憶部130bに格納される。
 そして、一時共通鍵生成部53は、一時クライアント秘密鍵4bとサーバ100の一時サーバ公開鍵2aとを用いて、一時共通鍵3mを生成する。
 暗号化部54は、サーバ100へ提供する、秘密データ33sと、電子署名付き次世代クライアント公開鍵6k'-2とからメッセージ1mを作成し、一時共通鍵3mを用いて暗号化する。そして、暗号化部54は、一時クライアント公開鍵4aをメッセージ1mに設定する。
 電子署名付き次世代クライアント公開鍵6k'-2は、更新部50により、サーバ100から受信した次世代クライアント公開鍵証明書6k'に、利用や複製を制御・制限するDRMにより電子署名が付加された公開鍵証明書である。
 次に、電子署名付与部55は、秘密データ33sに対して、現行世代クライアント秘密鍵6bとを用いて電子署名を作成して、データ33dを作成する。データ33dは、現行世代クライアント公開鍵6aを示す現行世代クライアント公開鍵証明書6kと、秘密データ33sと、電子署名付き次世代クライアント公開鍵と、一時クライアント公開鍵と、現行世代クライアント秘密鍵による電子署名とにより作成される。データ33dのメッセージ1mには、秘密データ33sと、電子署名付き次世代クライアント公開鍵と、一時クライアント公開鍵とが含まれる。データ33dは、サーバ100へ送信される。
 ステップ(IV)において、電子署名チェック部56は、データ34dの電子署名をチェックして、データ34dが正当なサーバ100からの正しいデータであるを判断する。復号部57は、データ34dのメッセージ1mから秘密データ34sを取得し、一時共通鍵3mを用いて、次世代クライアント公開鍵証明書6k'を復号する。秘密データ34sは記憶部130bに記憶部130bに格納され、次世代クライアント公開鍵証明書6k'が更新部50に通知される。
 更新部50は、復号部57から通知された次世代クライアント公開鍵証明書6k'の電子署名をチェックして、次世代クライアント公開鍵ペア6p'と対応付けて登録し管理する。
 エラー終了通知部59による処理は、図6の第1の機能構成における処理と同様であるので、その説明を省略する。
 クライアント5は、現世代クライアント公開鍵証明書6k、次世代クライアント公開鍵証明書6k'等を管理するために、図10に示すような証明書管理情報テーブル60を有する。図10は、クライアントにおける証明書管理情報テーブルのデータ構成例を示す図である。
 図10において、クライアント5で保持される証明書管理情報テーブル60は、記憶部130bに保持され、エレメント番号、証明書ID、カレントフラグ、鍵種別、鍵長、公開鍵、秘密鍵、次世代証明書エレメント番号、前世代証明書エレメント番号、期限、クライアント公開鍵証明書等の項目を有する。
 エレメント番号は、現世代クライアント公開鍵証明書6kに対して付与される管理用の番号である。エレメント番号は、レコードを特定するレコード番号であっても良い。
 証明書IDは、クライアント公開鍵証明書の識別情報であり、証明書発行元IDと、証明書シリアル番号とを示す。この例では、証明書IDが、証明書発行元IDと、証明書シリアル番号とによる2段の階層構造で示されるが、3段以上の階層構造であっても良い。
 証明書発行元IDは、発行元であるサーバ100の識別情報を示し、証明書シリアル番号は、サーバ100が発行した各公開鍵証明書に付与したシリアル番号を示す。
 カレントフラグは、証明書IDが現行世代クライアント公開鍵証明書6aであるか否かを示すフラグである。即ち、現在使用中のクライアント公開鍵証明書であることを示すフラグである。
 現行世代クライアント公開鍵証明書6aの場合、カレントフラグは「1」を示す。一方、クライアント公開鍵証明書が未使用世代である場合、カレントフラグは「0」を示す。また、カレントフラグの初期値は「0」である。
 鍵種別は、暗号化方式を指定する。鍵種別「E」は、楕円曲線暗号化(Elliptic Curve Cryptography(ECC))であることを示す。鍵種別「R」は、RSA(Rivest Shamir Adleman)であることを示す。鍵長は、ビット長を示す。
 公開鍵は、公開鍵の値(バイナリ)を示し、暗号化された状態で格納される。秘密鍵は、秘密鍵の値(バイナリ)を示し、暗号化された状態で格納される。
 次世代証明書エレメント番号は、次世代クライアント証明書のエレメント番号を示す。前世代証明書エレメント番号は、前世代クライアント証明書のエレメント番号を示す。
 期限は、クライアント公開鍵証明書の期限をYYYYMMDD:hhmmss(協定世界時(UTC))の形式で示す。クライアント公開鍵証明は、X509に準拠したクライアント公開鍵証明の実体(バイナリ)を示す。
 更新部50は、現行世代クライアント公開鍵証明書6kの期限が切れていた場合、又は、サーバ100から現行世代クライアント公開鍵証明書6kを拒絶された場合、次世代証明書エレメント番号が示すレコードのカレントフラグを「1」に設定した後、現行世代クライアント公開鍵証明書6kのレコードを削除する。また、更新部50は、次世代クライアント公開鍵証明書6k'を新しい現行世代クライアント公開鍵証明書として使用する。
 クライアント5の要求(データ33d)に対して次世代クライアント公開鍵証明書6k'が送信されると、更新部50は、公開鍵に次世代クライアント公開鍵6a'を格納し、秘密鍵に次世代クライアント公開鍵6b'を格納する。
 また、更新部50は、前世代証明書エレメント番号には、現行世代クライアント公開鍵証明書6kのレコードのエレメント番号を設定する。その後、更新部50は、現行世代クライアント公開鍵証明書6kのレコードの次世代証明書エレメント番号に追加登録したレコードのエレメント番号を設定する。このようにして、現行世代クライアント公開鍵証明書6kと、次世代クライアント公開鍵証明書6k'との関連付けが行われる。
 更新部50は、クライアント5から現行世代クライアント公開鍵証明書6kを指定してサーバ100にデータ33dを送信する時に、現行世代クライアント公開鍵証明書6kのレコードの次世代証明書エレメント番号に値が存在するか否かを確認する。
 更新部50は、次世代証明書エレメント番号に値が存在しない場合、次世代クライアント鍵ペア6p'を生成して、次世代クライアント公開鍵6a'を一時共通鍵3mで暗号化してメッセージ1mに設定し、サーバ100へ送信する。
 クライアント5の証明書管理情報テーブル60の初期状態では、サーバ100から2つ以上のクライアント公開鍵証明書を発行してもらい、これら証明書を現行世代クライアント公開鍵証明書6kと次世代クライアント公開鍵証明書6k'として関連付けて、登録することが望ましい。サーバ100から最初の次世代クライアント公開鍵証明書6k'が返信されてくる前に、現行世代クライアント公開鍵証明書6kの期限が切れてしまう事態に対処可能とするためである。
 図11は、サーバの第2の機能構成例を示す図である。図11に示すサーバ100の第2の機能構成例は、図9のクライアント5の第2の機能構成例に対応する構成を示している。
 図11において、サーバ100は、正当性確認部81と、電子署名チェック部82と、一時鍵ペア生成部83と、公開鍵暗号化部84と、一時共通鍵生成部85と、復号部86と、更新証明書暗号化部87と、検索部91と、証明書管理部92とを有する。
 正当性確認部81と、電子署名チェック部82と、一時鍵ペア生成部83と、公開鍵暗号化部84と、一時共通鍵生成部85と、復号部86と、更新証明書暗号化部87と、検索部91と、証明書管理部92とは、CPU11aが対応するプログラムを実行することによって行われる処理に相当する。
 また、サーバ100では、記憶部130aは、一時サーバ公開鍵ペア2p、一時クライアント公開鍵4a、次世代クライアント公開鍵6a'、次世代クライアント公開鍵証明書6k'、サーバ公開鍵ペア7p、データ31d~34d等を記憶する。
 検索部91と証明書管理部92とが、図7の管理部90に相当する。また、正当性確認部81と、検索部91と、電子署名チェック部82と、一時鍵ペア生成部83、公開鍵暗号化部84とによる処理が、図1に示す共有処理21pに相当する。更に、電子署名チェック部82と、一時共通鍵生成部85と、復号部86と、証明書管理部92とによる処理が、更新処理22pに相当する。
 ステップ(I)において、クライアント5からデータ31dを受信すると、正当性確認部81は、受信したデータ31dの現行世代クライアント公開鍵証明書6kの正当性を確認する。
 電子署名チェック部82は、データ31dの電子署名6eをチェックし、データ31dが改竄されていない正しいデータであるか否かをチェックする。また、電子署名チェック部82は、データ33dに対しても同様の電子署名チェックを行う。
 ステップ(II)において、一時鍵ペア生成部83は、一時共通鍵ペア7pを生成するための一時サーバ鍵ペア2pを生成する。一時サーバ鍵ペア2pとなる一時サーバ公開鍵2a及び一時サーバ秘密鍵2bが記憶部130aに格納される。
 公開鍵暗号化部84は、一時共通鍵3mをクライアント5で作成するための一時サーバ公開鍵2aをPKIで暗号化して、データ32dを作成する。公開鍵暗号化部84は、サーバ秘密鍵7bを用いて電子署名7eを作成する。データ32dは、サーバ公開鍵7aを示すサーバ公開鍵証明書7kと、一時サーバ公開鍵2aと、サーバ秘密鍵7bによる電子署名7eとを有する。一時サーバ公開鍵2aはメッセージ1mに含まれる。データ32dは、クライアント5へ送信される。
 ステップ(III)において、クライアント5からデータ33dを受信すると、一時共通鍵生成部85は、データ33dから取得した一時クライアント公開鍵4aと、一時鍵ペア生成部83によって生成された一時サーバ秘密鍵2bとを用いて、一時共通鍵3mを生成する。
 復号部86は、データ33dのメッセージ1mに含まれる次世代クライアント公開鍵6aを復号して、証明書管理部92へ通知する。
 証明書管理部92は、クライアント5の現行世代クライアント公開鍵6kが登録済みであることを確認し、クライアント5からの次世代クライアント公開鍵証明書6k'の要求が不当要求と判断される不当要求回数制限値以内であることを確認する。また、証明書管理部92は、データ33dのメッセージ1m内に次世代クライアント公開鍵証明書7k'が含まれていない場合に、現行世代クライアント公開鍵6kに対応付けて次世代クライアント公開鍵証明書7k'が登録されていることを確認する。
 証明書管理部92は、上記事項の確認ができなかった場合、エラー検出部99にエラー終了通知をクライアント5に行わせる。
 ステップ(IV)において、証明書管理部92は、上記事項の確認ができた場合、次世代クライアント公開鍵証明書6k'を発行する。更新証明書暗号部87は、証明書管理部92によって発行された次世代クライアント公開鍵証明書6k'に電子署名を付加する。次世代クライアント公開鍵証明書6k'に付加する電子署名は、利用や複製を制御・制限するDRMにより行う。電子署名付き次世代クライアント公開鍵証明書6k'は、秘密データ34sと共にメッセージ1mに含められ、更に、PKI暗号化されることにより、データ34dが作成される。
 データ34dは、サーバ公開鍵証明書7kと秘密データ34sとを含むメッセージ1mと、次世代クライアント公開鍵証明書6k'と、サーバ秘密鍵7bによる電子署名7eとを含む。データ34dは、クライアント5に送信される。
 エラー検出部99による処理は、図7の第2の機能構成における処理と同様であるので、その説明を省略する。
 サーバ100は、現世代クライアント公開鍵証明書6k、次世代クライアント公開鍵証明書6k'等を管理するために、図12に示すような証明書管理情報テーブル80を有する。図12は、サーバにおける証明書管理情報テーブルのデータ構成例を示す図である。
 図12において、サーバ100で保持される証明書管理情報テーブル80は、記憶部130aに保持され、各クライアント5に対して用意されるテーブルであり、エレメント番号、証明書ID、現行世代証明書フラグ、受信回数、返信完了前送信回数、公開鍵、秘密鍵、次世代証明書エレメント番号、前世代証明書エレメント番号、期限、クライアント公開鍵証明書等の項目を有する。
 エレメント番号は、現世代クライアント公開鍵証明書6kに対して付与される管理用の番号である。エレメント番号は、レコードを特定するレコード番号であっても良い。
 証明書IDは、クライアント公開鍵証明書の識別情報であり、証明書発行元IDと、証明書シリアル番号とを示す。
 現行世代証明書フラグは、証明書IDが現行世代クライアント公開鍵証明書6aであるか否かを示すフラグである。現行世代クライアント公開鍵証明書6aの場合、カレントフラグは「1」を示す。一方、クライアント公開鍵証明書が未使用世代である場合、カレントフラグは「0」を示す。また、カレントフラグの初期値は、「0」である。
 受信回数は、クライアント5から次世代クライアント公開鍵証明書を指定した要求の総受信回数を示す。返信完了前送信回数は、サーバ100がデータ34dをクライアント5への返信後の状態において、クライアント5から次世代クライアント公開鍵証明書6k'の発行申請を受信した回数を示す。
 公開鍵は、公開鍵の値(バイナリ)を示し、暗号化された状態で格納される。秘密鍵は、秘密鍵の値(バイナリ)を示し、暗号化された状態で格納される。
 次世代証明書エレメント番号は、次世代クライアント証明書のエレメント番号を示す。前世代証明書エレメント番号は、前世代クライアント証明書のエレメント番号を示す。
 期限は、クライアント公開鍵証明書の期限をYYYYMMDD:hhmmss(協定世界時(UTC))の形式で示す。クライアント公開鍵証明は、X509に準拠したクライアント公開鍵証明の実体(バイナリ)を示す。
 証明書管理部92は、クライアント5から送られてきた現行世代クライアント公開鍵証明書6kが未登録であり、新規に登録する場合、新たにレコードを作成し、証明書管理情報テーブル80に登録する。登録時に、証明書管理部92は、現行世代証明書フラグに「1」を設定する。
 証明書管理部92は、クライアント5からの要求で指定された現行世代クライアント公開鍵証明書6kについて、この現行世代クライアント公開鍵証明書6kが指定された要求を受信した回数を、現行世代クライアント公開鍵証明書6kのレコードの受信回数に設定する。つまり、クライアント5からの要求を受信する毎に、指定されてきた現行世代クライアント公開鍵証明書6kのレコードの受信回数の値をインクリメントする。
 受信回数の値は、現行世代クライアント公開鍵証明書6kの使用回数がある規定範囲内の間に次世代クライアント公開鍵証明書をクライアント5に送信しなければならないときに参照される。
 クライアント5からの要求に次世代クライアント公開鍵証明書6k'が指定されている場合、証明書管理部92は、次世代クライアント公開鍵証明書6k'を発行する。指定さてきた現行世代クライアント公開鍵証明書6k'の使用回数が規定回数を超えていた場合、サーバ100の証明書管理部92は、クライアント5との通信は安全ではないと判断して、次世代クライアント公開鍵証明書6k'の発行を抑止する。
 よって、規定回数以内に、次世代クライアント公開鍵証明書6k'がクライアントに返信されて登録されなければ、現行世代クライアント公開鍵証明書6kの期限までしかクライアント5からはサーバ100に要求を行えないことになる。
 クライアント5からのある特定の現行世代クライアント公開鍵証明書6kを指定したメッセージ1mについて、次世代クライアント公開鍵6a'が指定されたメッセージがある規定回数を超えて受信された場合、サーバ100側では再送攻撃メッセージの可能性があると判断して、エラー検出部99に通知する。
 具体的には、証明書管理部92は、クライアント5から次世代クライアント公開鍵6a'が指定された要求メッセージを受信する毎に、現行世代クライアント公開鍵証明書6kのレコードの返信完了前送信回数をインクリメントする。そして、証明書管理部92は、返信完了前送信回数が規定回数を超えたら、エラー検出部99に通知する。
 次世代クライアント公開鍵証明書6k'の生成時に、証明書管理部92は、現行世代クライアント公開鍵証明書6kのレコードでは、次世代証明書エレメント番号にこの生成した次世代クライアント公開鍵証明書6k'のレコードのエレメント番号を設定する。
 また、証明書管理部92は、次世代クライアント公開鍵証明書6k'のレコードでは、前世代証明書エレメント番号に現行世代クライアント公開鍵証明書6kのレコードのエレメント番号を設定する。
 証明書管理部92は、下記の第1の条件が成立する場合、
・クライアント5から送信された現行世代クライアント公開鍵証明書6kのレコードが既に登録されていて、
・そのレコードの現行世代証明書フラグには未使用世代を示す値「0」が設定されていて、かつ、
・そのレコードの前世代証明書エレメント番号でポイントされているレコードの現行世代証明書フラグには現行世代クライアント公開鍵証明書6kを示す値「1」が設定されている場合、
このレコードのクライアント公開鍵証明書(証明書ID)を失効リスト2fに登録して、証明書管理情報テーブル80からこのレコードを削除する。
 また、証明書管理部92は、クライアント5から送信された現行世代クライアント公開鍵証明書6kのレコードについては、現行世代証明書フラグに現行世代クライアント公開鍵証明書6kを示す値「1」を設定する。よって、次世代クライアント公開鍵証明書6k'が、現行世代クライアント公開鍵証明書6kに切り替えられる。
 また、証明書管理部92は、下記の第2の条件が成立する場合においても、クライアント公開鍵証明書(証明書ID)を失効させる。
・クライアント5から送信された現行世代クライアント公開鍵証明書6kのレコードが既に登録されていて、
・そのレコードの現行世代証明書フラグには、現行世代クライアント公開鍵証明書6kを示す値「1」が設定されていない、かつ
・そのレコードの次世代証明書エレメント番号でポイントされているレコードの現行先行証明書フラグには、現行世代クライアント公開鍵証明書6kを示す値「1」が設定されている場合、
クライアント5から送信されてきた現行世代クライアント公開鍵証明書6k(証明書ID)を失効リスト2fに登録して、証明書管理情報テーブル80から、このレコードを削除する。
 上記第2の条件が成立することは、通常は発生しないが、次世代クライアント公開鍵証明書6k'を現行世代クライアント公開鍵証明書6kに切り替える場合に、その処理が何らかの原因で中断されたことにより、旧現行世代クライアント公開鍵証明書のレコードが残っていた場合に発生する。
 次に、クライアント5とサーバ100との間で一時共通鍵3mを共有する共有処理(図1)に係るステップ(I)及び(II)について、図13~図16で詳細に説明する
 図13は、ステップ(I)におけるクライアントでの処理を説明するためのフローチャート図である。図13において、クライアント5の更新部50は、証明書管理情報テーブル60を参照して、現行世代クライアント公開鍵証明書6kを検索する(ステップS501)。
 現行世代クライアント公開鍵証明書(CC_CRT)6kが存在しない場合、更新部50は、エラー終了する。一方、存在する場合、更新部50は、現行世代クライアント公開鍵証明書6kが期限切れか否かを判断する(ステップS502)。期限内の場合、更新部50での処理を終了し、共有処理は、ステップS505へと進む。
 一方、現行世代クライアント公開鍵証明書6kが期限切れの場合、更新部50は、証明書管理情報テーブル60を参照して、次世代クライアント公開鍵証明書6k'が存在するか否かを判断する(ステップS503)。存在しない場合、更新部50は、エラー終了する。一方、存在する場合、更新部50は、現行世代クライアント公開鍵証明書6kを次世代クライアント公開鍵証明書6k'に更新すると判断する(ステップS504)。
 電子署名付与部55は、ステップS501で検索した現行世代クライアント公開鍵証明書6kに対応する現行世代クライアント秘密鍵6bで電子署名を生成して、送信するデータ31dに設定する(ステップS505)。
 電子署名付与部55は、ステップS501で検索した現行世代クライアント公開鍵証明書6kを送信するデータ31dに設定して(ステップS506)、サーバ100に送信する(ステップS507)。データ31dは、一時共通鍵3mを共有するための一時サーバ公開鍵2aの要求データに相当する。
 図14及び図15は、ステップ(I)及び(II)におけるサーバでの処理を説明するためのフローチャート図である。図14において、サーバ100は、クライアント5から一時サーバ公開鍵2aを要求するデータ31dを受信する(ステップS101)。
 正当性確認部81は、ルート公開鍵証明書9bを用いて、データ31dの現行世代クライアント公開鍵証明書6kが正当な公開鍵証明書であるか否かをチェックする(ステップS102)。チェック結果がエラーの場合、図15のステップS110へと進む。
 一方、チェック結果が正常の場合、正当性確認部81は、更に、失効リスト2fを参照して、現行世代クライアント公開鍵証明書6kが失効状態でないかをチェックする(ステップS103)。失効リスト2fに現行世代クライアント公開鍵証明書6kが存在した場合、正当性確認部81は、現行世代クライアント公開鍵証明書6kは失効していると判断し、エラー検出部99に、エラーを通知する。この場合、サーバ100は、図15のステップS110へと進む。
 一方、失効リスト2fに現行世代クライアント公開鍵証明書6kが存在しない場合、正当性確認部81は、現行世代クライアント公開鍵証明書6kは失効していないと判断する。この場合、電子署名チェック部82が、現行世代クライアント公開鍵証明書6kの期限、及び電子署名6eをチェックする(ステップS103)。期限切れである場合、又は、電子署名6eのチェックが正常に終了しない場合、電子署名チェック部82は、エラー検出部99にエラーを通知する。この場合、サーバ100は、図15のステップS110へと進む。
 一方、電子署名チェック部82によるチェックが正常に終了した場合、検索部91は、現行世代クライアント公開鍵証明書6kを証明書管理情報テーブル80から検索する(ステップS105)。現行世代クライアント公開鍵証明書6kが証明書管理情報テーブル80に登録済みである場合、検索部91は、ステップS107へと進む。
 現行世代クライアント公開鍵証明書6kが証明書管理情報テーブル80に未登録の場合、検索部91は、証明書管理情報テーブル80から、受信した現行世代クライアント公開鍵証明書6kが次世代クライアント公開鍵証明書6k'となっているレコード検索する(ステップS107)。レコードが存在しない場合、検索部91での処理は終了し、サーバ100は、図15のステップS109へと進む。
 一方、レコードが存在する場合、検索部91は、ステップS105で検索した現行世代クライアント公開鍵証明書6kを失効リスト2fに登録し、ステップS107で検索されたレコードを削除する(ステップS108)。
 図15にて、一時鍵ペア生成部83は、一時サーバ鍵ペア2pを生成して、一時サーバ公開鍵をメッセージ1mに対して設定する(ステップS109)。また、公開鍵暗号化部84は、メッセージ1mに対してサーバ秘密鍵7bによる電子署名7eと、サーバ公開鍵7aを示すサーバ公開鍵証明書7kとを付加して、PKI暗号化したデータ32dを作成する(ステップS111)。
 そして、データ32dがクライアントに送信する(ステップS112)。データ32dは、クライアント5からの要求に相当するデータ31dに対する返信データとして、サーバ100からクライアント5へと送信される。
 図14のステップS102、S103、又はS104にてエラーが通知された場合について説明する。図15にて、エラーが通知されたエラー検出部99は、エラーの内容を示すエラー情報をメッセージ1mに設定する(ステップS110)。ステップS102でのエラーでは、現行世代クライアント公開鍵証明書6kの正当性を確認できなかったことがエラー情報によって示される。ステップS103でのエラーでは、現行世代クライアント公開鍵証明書6kの失効がエラー情報によって示される。ステップS104でのエラーでは、期限切れ又は電子署名6eの正当性が確認できなかったことがエラー情報によって示される。
 エラー検出部99は、公開鍵暗号化部84によって、エラー情報が設定されたメッセージ1mに対してサーバ秘密鍵7bによる電子署名7eと、サーバ公開鍵7aを示すサーバ公開鍵証明書7kとを付加して、PKI暗号化したデータを作成する(ステップS111)。そして、エラー検出部99は、エラー情報を含むデータをクライアント5へと送信する(S112)。
 クライアント5は、このようなエラー情報を含むデータを受信すると、エラー終了通知部59が、更新部50へエラー終了を通知する。更新部50はエラー情報によりエラーの原因を知ることができる。
 クライアント5では、データ31dをサーバ100から受信すると、図16及び図17に示すような処理を行う。
 図16及び図17は、ステップ(II)及び(III)におけるクライアントでの処理を説明するためのフローチャート図である。図16において、クライアント5は、サーバ100からデータ32dを受信する(ステップS521)。
 サーバ正当性判断部51は、サーバ100から受信したデータ32dのサーバ公開鍵証明書7k及び電子署名7eをチェックする(ステップS522)。チェック結果がエラーを示す場合、サーバ正当性判断部51は、エラー終了とする。
 一方、チェック結果が正常を示す場合、更新部50は、証明書管理情報テーブル60において、現行世代クライアント公開鍵証明書6kに対して次世代クライアント公開鍵証明書6k'が登録されているか否かを判断する(ステップS523)。次世代クライアント公開鍵証明書6k'が登録済みの場合、更新部50は、図17のステップS526へと進む。
 一方、更新部50は、次世代クライアント鍵ペア6p'を生成する(ステップS524)。そして、更新部50は、ステップS524で生成した次世代クライアント鍵ペア6p'に現行世代クライアント秘密鍵6bで作成した電子署名6eを付加する(ステップS525)。
 図17において、一時鍵ペア生成部52は、一時クライアント鍵ペア4pを生成する(ステップS526)。そして、一時共通鍵生成部53は、一時クライアント秘密鍵4bと、サーバ100から受信したデータ32dの一時サーバ公開鍵2aとから一時共通鍵3mを生成する(ステップS527)。
 そして、暗号化部54は、秘密データ33sと、ステップS254の電子署名付きの次世代クライアント公開鍵6a'からメッセージ1mを作成し、ステップS257で生成した一時共通鍵3mで暗号化する(ステップS528)。暗号化部54は、メッセージ1mにステップS256で生成した一時クライアント公開鍵4aを設定する(ステップS529)。
 次に、電子署名付与部55は、メッセージ1mに対して現行世代クライアント秘密鍵6bで作成した電子署名6eと現行世代クライアント公開鍵証明書6aを付加して、データ33dが作成される(ステップS530)。そして、データ33dが、クライアント5からサーバ100に送信される。データ33dは、次世代クライアント公開鍵証明書6k'を取得するための要求データに相当する。
 図18、図19、及び図20は、ステップ(III)及び(IV)におけるサーバでの処理を説明するためのフローチャート図である。図18において、サーバ100は、クライアント5からデータ33dを受信すると、正当性確認部81により現行世代クライアント公開鍵証明書6kの正当性を確認した後、復号部86は、受信したデータ33dの電子署名6eを現行世代クライアント公開鍵証明書6kにより検証する(ステップS121)。検証結果がエラーを示す場合、復号部86は、エラーメッセージを生成する(ステップS122)。サーバ100は、図20のステップS137へと進む。
 一方、検証結果が正常を示す場合、一時共通鍵生成部85は、データ33dから取得した一時クライアント公開鍵4pと、一時サーバ秘密鍵7pとから一時共通鍵3mを生成する(ステップS123)。
 復号部86は、データ33dのメッセージ1m内の暗号化データを一時共通鍵3mで復号して、次世代クライアント公開鍵6a'を取得する(ステップS124)。
 図19において、証明書管理部92は、明細書管理情報テーブル80から、データ33d内のメッセージ内の現行世代クライアント公開鍵証明書6kを示すレコードを検索する(ステップS125)。証明書IDがメッセージ1m内の現行世代クライアント公開鍵証明書6kと一致するレコードが検索される。証明書管理部92は、検索したレコードの受信回数をインクリメントする(ステップS126)。
 そして、証明書管理部92は、メッセージ1m内に次世代クライアント公開鍵6a'が指定されているか否かを確認する(ステップS127)。次世代クライアント公開鍵6a'が指定されていない場合、証明書管理部92は、ステップS125で検索したレコードに次世代クライアント公開鍵証明書6k'が登録済みか否かを判断する(ステップS128)。
 次世代クライアント公開鍵証明書6k'が未登録の場合、証明書管理部92は、エラーメッセージを生成する(ステップS129)。サーバ100は、図20のステップS136へと進む。この場合、エラーメッセージがメッセージ1mに相当する。一方、次世代クライアント公開鍵証明書6k'が登録済みの場合、サーバ100は図20のステップS135へと進む。
 ステップS127において、メッセージ1m内に次世代クライアント公開鍵6a'が指定されてる場合、証明書管理部92は、ステップS125で検索したレコードの受信回数が規定値を超えているか否かを判断する(ステップS130)。受信回数が規定値を超えている場合、サーバ100は図20のステップS135へと進む。
 一方、受信回数が規定値を超えていない場合、証明書管理部92は、ステップS125で検索したレコードの返信完了前送信数をインクリメントし、規定値を超えているか否かを確認する(ステップS131)。返信完了前送信回数が規定値を超えている場合、即ち、返信完了前送信回数が許容範囲外を示す場合、証明書管理部92は、エラーメッセージを生成する(ステップS132)。サーバ100は、図20のステップS136へと進む。この場合、エラーメッセージがメッセージ1mに相当する。
 一方、返信完了前送信回数が規定値以下である場合、即ち、返信完了前送信回数が許容範囲内を示す場合、証明書管理部92は、次世代クライアント公開鍵6a'に対して次世代クライアント公開鍵証明書6k'を生成し、証明書管理情報テーブル80に登録する(ステップS133)。
 そして、証明書管理部92は、ステップS133で生成した次世代クライアント公開鍵証明書6k'にサーバ秘密鍵7bによる電子署名7eを付加して、メッセージ1mに設定する(ステップS134)。サーバ100は、図20のステップS135へと進む。
 図20にて、証明書管理部92において、ステップS128でYES、ステップS130でYES、又は、ステップS134に続いて、サーバ100は、サービス固有の処理を実行する(ステップS135)。サービス固有の処理の結果が秘密データ34sに相当する。秘密データ34sがメッセージ1mに設定される。
 更新証明書暗号化部87は、ステップS129、ステップS132、又は、ステップS135によって得られたメッセージ1mを、一時共通鍵3mにより暗号化する(ステップS136)。
 更に、更新証明書暗号化部87は、暗号化したメッセージ1mに、サーバ秘密鍵7bで生成した電子署名7eと、サーバ公開鍵証明書7kとを付加してデータ34dを作成する(ステップS137)。更新証明書暗号化部87は、作成したデータ34dをクライアント5へ送信する。エラーメッセージがクライアント5へ送信される場合には、データ34dのメッセージ1mには、次世代クライアント公開鍵証明書6k'は含まれない。
 図21は、ステップ(IV)におけるクライアントでの処理を説明するためのフローチャート図である。図21において、クライアント5は、サーバ100から、ステップS531(図17)の要求に対して返信されたデータ34dを受信する(ステップS541)。
 電子署名チェック部56は、データ34dの電子署名7eをチェックする(ステップS542)。復号部57は、データ34dのメッセー1mを一時共通鍵3mにより復号する(ステップS543)。
 次に、更新部50は、データ34dのメッセージ1mに次世代クライアント公開鍵証明書6k'が有るか否かを確認する(ステップS544)。次世代クライアント公開鍵証明書6k'がない場合、クライアント5は、アプリケーション固有の処理を実行する(ステップS547)。
 次に、長期間にわたり同一のクライアント公開鍵証明書6kを利用し続ける関連技術と、クライアント公開鍵証明書6kを短い期間でセキュアに更新可能な本実施例との比較を説明する。
 図22(A)は、関連技術の場合を示し、図22(B)は、本実施例の場合を示す図である。図22(A)及び図22(B)において、右方向は、時間の経過の長さを表している。
 図22(A)では、関連技術におけるクライアント公開鍵証明書1kを凡そ10年という長期にわたり利用した場合のリスクを示している。図22(A)において、時刻T0で、クライアント公開鍵証明書1kを利用開始する。
 時刻T1から、第三者により、クライアント公開鍵証明書1kのクライアント秘密鍵1bの推定が開始される。第三者は、複数回にわたり通信を傍受し、長期間の推定により、時刻T25で、クライアント秘密鍵1bの推定に成功する。結果、第三者は、クライアント公開鍵証明書1k及びクライアント公開鍵1aを推定できる。
 第三者は、推定に成功したクライアント公開鍵証明書1kを用いて、クライアント5になりすまして、クライアント5の秘密データ34sを不正利用することができる。
 クライアント5のユーザ、及び、サーバ100の管理者は、なりすましを検出することが困難であるため、クライアント公開鍵証明書1kが、利用開始から5年、10年等の後に期限切れになるまで、第三者は、クライアント5の秘密データ34sを不正に利用し続けることができる。
 図22(B)では、現行世代クライアント公開鍵証明書6kの推定が成功する可能性のある期間より十分に短い期間で、現行世代クライアント公開鍵証明書6kを更新する本実施例を適用した場合のリスクを示している。図22(B)では、第1世代から第4世代までの更新例を示している。
 図22(B)において、クライアント5は、時刻T0で、第1世代クライアント公開鍵証明書61kの利用をクライアント秘密鍵61bを用いて開始する。時刻T2から、第三者は、クライアント秘密鍵61bの傍受及び推定を開始する。
 第1世代クライアント公開鍵証明書61kの利用開始時(時刻T0)のクライアント5からの要求に応じて、サーバ100から、更新用の第2世代クライアント公開鍵証明書62kが一時共通鍵31mを用いた暗号化により転送される。時刻T3から、第三者は、一時共通鍵31mの傍受及び推定を行う。
 第三者が推定可能な時刻T25より前の時刻T20で、クライアント5は、予め取得しておいた第2世代クライアント公開鍵証明書62kに切り替える。従って、第三者は、第1世代クライアント秘密鍵61bの推定に失敗する。
 時刻T20で、クライアント5は、第1世代クライアント公開鍵証明書61kから第2世代クライアント公開鍵証明書62kへと更新し、第2世代クライアント公開鍵証明書62kの利用を開始することで、第三者は、一時共通鍵31mの推定を断念する。
 第2世代クライアント公開鍵証明書62kの利用開始時(時刻T20)のクライアント5からの要求に応じて、サーバ100から、更新用の第3世代クライアント公開鍵証明書63kが一時共通鍵32mを用いた暗号化により転送される。時刻T23から、第三者は、一時共通鍵32mの傍受及び推定を行う。
 時刻T30で、クライアント5は、予め取得しておいた第3世代クライアント公開鍵証明書63kに切り替える。従って、第三者は、第2世代クライアント秘密鍵62bの推定に失敗する。
 時刻T30で、クライアント5は、第2世代クライアント公開鍵証明書62kから第3世代クライアント公開鍵証明書63kへと更新し、第3世代クライアント公開鍵証明書63kの利用を開始することで、第三者は、一時共通鍵32mの推定を断念する。
 第3世代クライアント公開鍵証明書63kの利用開始時(時刻T30)のクライアント5からの要求に応じて、サーバ100から、更新用の第4世代クライアント公開鍵証明書64kが一時共通鍵33mを用いた暗号化により転送される。第三者は、一時共通鍵33mの傍受及び推定を行う。
 時刻T40で、クライアント5は、予め取得しておいた第4世代クライアント公開鍵証明書64kに切り替える。従って、第三者は、第3世代クライアント秘密鍵63bの推定に失敗する。
 時刻T40で、クライアント5は、第3世代クライアント公開鍵証明書63kから第4世代クライアント公開鍵証明書64kへと更新し、第4世代クライアント公開鍵証明書64kの利用を開始することで、第三者は、一時共通鍵33mの推定を断念する。
 このように、第三者による暗号解読が成功する前に、一時共通鍵によりクライアント公開鍵証明書を更新することで、セキュアな通信を実現できる。
 また、本実施例では、クライアント公開鍵証明書の更新に専用の暗号鍵及び復号鍵を、サーバ100によるサービス提供可能な期間において保持し続けることがない。したがって、クライアント5のなりすましによる不正な行為を防御することができる。
 更に、クライアント5及びサーバ100における夫々の、一時鍵ペア4p及び2pの生成、及び、一時共通鍵ペア3mの生成は、ユーザの手間を不要とするため、更新毎にユーザに負担を掛けることがない。
 本実施例では、クライアント5とサーバ100との間の相互認証のための次世代クライアント公開鍵証明書6k'をサーバ100側で更新できる。従って、クライアント5自体、或いは、一部を置き換えることがない。
 また、クライアント5内で、次世代クライアント鍵ペア6p'が生成されるため、クライアント5に対して、相互認証のための次世代クライアント公開鍵証明書6k'と次世代クライアント秘密鍵6b'とをリモートで更新する等の処理を行うことがない。次世代クライアント秘密鍵6b'が傍受されるリスクを低減することができる。
 したがって、現行世代クライアント公開鍵6kに対する長期の攻撃をほぼ無意味とし、第三者によるクライアント5になりすます不正な行為を防ぐことができる。
 本実施例では、サーバ100が、次世代クライアント公開鍵証明書6k'を発行するため、次世代クライアント公開鍵証明書6k'の期限を従来よりは短くすることができる。従って、現行世代クライアント秘密鍵6bが推定されるリスクを大幅に低減することができる。
 第1に、現行世代クライアント公開鍵証明書6kに対する長期間にわたる推定に対抗するために、本実施例では、現行世代クライアント公開鍵証明書6kが使用されてからなるべく早い時期において、現行世代クライアント公開鍵証明書6kがクライアント5からサーバ100に送信されたタイミングで、サーバ100から次世代クライアント公開鍵証明書6k'をセキュアにクライアント5に返信する。
 サーバ100からクライアント5へ次世代クライアント公開鍵証明書6k'を返信する時期は、サーバ100側でパラメータとして指定可能とする。パラメータにより、所定月数後の日時が指定されれば良い。
 現行世代クライアント公開鍵証明書6kの期限が来たら、クライアント5は、現行世代クライアント公開鍵証明書6kから次世代クライアント公開鍵証明書6k'へと切り替えて、最初に次世代クライアント公開鍵証明書6k'を使用したタイミングからなるべく早い時期に,サーバ100から次々世代クライアント公開鍵証明書6k'をセキュアにクライアント5に返信する。従って、現行世代クライアント公開鍵6aが第三者に推定される前に、次世代クライアント公開鍵6a'に切り替えることが可能となる。
 第2に、サーバ100からの次世代クライアント公開鍵証明書6k'の返信を阻害する行為に対して、サーバ100からの返信が届いていない状態でのクライアント5からの返信完了前送信回数をカウントし、予め定めた規定値を超えた場合、その次世代クライアント公開鍵証明書6k'を失効し、次世代クライアント公開鍵証明書6k'を使った要求を拒絶するように制御する。従って、不正な解析に対抗することができる。
 本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
 2a  一時サーバ公開鍵      2b  一時サーバ秘密鍵
 2p  一時サーバ鍵ペア
 4a  一時クライアント公開鍵   4b  一時クライアント秘密鍵
 4p  一時クライアント鍵ペア
 6a  現行世代クライアント公開鍵 6b  現行世代クライアント秘密鍵
 6p  現行世代クライアント鍵ペア 6k  次世代クライアント公開鍵証明書
 6a' 次世代クライアント公開鍵  6b' 次世代クライアント秘密鍵
 6p' 次世代クライアント鍵ペア  6k' 次世代クライアント公開鍵証明書
 7a  サーバ公開鍵        7b  サーバ秘密鍵
 7p  サーバ鍵ペア        7k  サーバ公開鍵証明書
 11a、11b CPU
 12a、12b 主記憶装置
 13a     補助記憶装置
 14a     入力装置
 15a     表示装置
 16b     ユーザI/F
 17a、17b 通信I/F
 18a、18b ドライブ装置
 19a、19b 記憶媒体
 31d、32d、33d、33d-1、33d-2、34d   データ
 33s、34s 秘密データ
 50      更新部       51      サーバ正当性判断部
 52      一時鍵ペア生成部  53      一時共通鍵生成部
 54      暗号化部      55      電子署名付与部
 56      電子署名チェック部 57      復号部
 59      エラー終了通知部
 81      正当性確認部    82      電子署名チェック部
 83      一時鍵ペア生成部  84      公開鍵暗号化部
 85      一時共通鍵生成部  86      復号部
 87      更新証明書暗号化部
 90      管理部
 91      検索部       92      証明書管理部

Claims (14)

  1.  第1の公開鍵証明書を用いた、サーバに対するセキュアな通信接続が開始された状態で、該サーバに対し、第2の公開鍵証明書の発行要求を行い、
     前記第2の公開鍵証明書を受領し、
     前記第1の公開鍵証明書の有効期限が過ぎた場合は、前記第2の公開鍵証明書を用いた接続確認を行う
    処理をコンピュータに実行させる更新プログラム。
  2.  前記セキュアな通信接続により、前記サーバとの間で一時共通鍵を共有し、
     前記サーバと共有した前記一時共通鍵を用いて、前記第2の公開鍵証明書に対応する第2の公開鍵を暗号化して、該サーバに送信することで、該第2の公開鍵証明書の発行要求を行う
    処理を前記コンピュータに実行させる請求項1記載の更新プログラム。
  3.  前記第1の公開鍵証明書を前記サーバに送出するタイミングで、前記発行要求を行う請求項1記載の更新プログラム。
  4.  一時的に利用する一時クライアント鍵ペアを生成し、
     生成した前記一時クライアント鍵ペアのうちの一時クライアント公開鍵と、予め前記サーバから取得した一時サーバ公開鍵とで前記一時共通鍵を生成する
    処理を前記コンピュータに実行させる請求項2記載の更新プログラム。
  5.  前記第2の公開鍵と第2の秘密鍵とによる第2の鍵ペアを生成し、
     生成した前記第2の公開鍵に、前記第1の公開鍵証明書に対応する第1の秘密鍵を用いて電子署名を付与する
    処理を前記コンピュータに実行させる請求項2記載の更新プログラム。
  6.  前記第1の公開鍵証明書を用いた、サーバに対するセキュアな通信接続が開始された状態で、該サーバに対し、第2の公開鍵証明書の発行要求を行い、
     前記第2の公開鍵証明書を受領し、
     前記第1の公開鍵証明書の有効期限が過ぎた場合は、前記第2の公開鍵証明書を用いた接続確認を行う
    処理をコンピュータが行う更新方法。
  7.  プロセッサと、
     要求元及び要求データの正当性の確認に用いられる第1の公開鍵証明書を記憶した記憶部と、
    を有する端末装置であって、
     前記プロセッサは、
     前記第1の公開鍵証明書を用いた、サーバに対するセキュアな通信接続が開始された状態で、該サーバに対し、第2の公開鍵証明書の発行要求を行い、
     前記第2の公開鍵証明書を受領し、
     前記第1の公開鍵証明書の有効期限が過ぎた場合は、前記第2の公開鍵証明書を用いた接続確認を行う
    を有する端末装置。
  8.  要求データを送信したクライアントの正当性と、該要求データの正当性の確認に用いられる公開鍵証明書の管理プログラムであって、
     第1の公開鍵証明書を用いた、前記クライアントとのセキュアな通信接続が開始された状態で、該クライアントとで一時共通鍵を共有し、
     前記クライアントからの第2の公開鍵証明書の発行要求に対して、該第2の公開鍵証明書を生成し、該第2の公開鍵証明書を前記一時共通鍵で暗号化して該クライアントに送信する
    処理をコンピュータに実行させる管理プログラム。
  9.  クライアント毎に、前記第1の公開鍵証明書と、該第1の公開鍵証明書を更新する前記第2の公開鍵証明書とを関連付けてテーブルに記憶する
    処理を前記コンピュータに実行させる請求項8記載の管理プログラム。
  10.  前記発行要求の回数をカウントし、該発行要求の回数が規定値を超えたら、不正な要求であると判断してエラーにする
    処理を前記コンピュータに実行させる請求項8記載の管理プログラム。
  11.  一時的に利用する一時サーバ鍵ペアを生成し、
     生成した前記一時サーバ鍵ペアのうちの一時サーバ公開鍵と、予め前記クライアントから取得した一時クライアント公開鍵とで前記一時共通鍵を生成する
    処理を前記コンピュータに実行させる請求項8記載の管理プログラム。
  12.  前記クライアントから、前記第2の公開鍵証明書に対応する、暗号化された第2の公開鍵を受信し、
     前記第2の公開鍵を前記一時共通鍵で復号し、
     復号された前記第2の公開鍵に対して前記第2の公開鍵証明書を生成する
    処理を前記コンピュータに実行させる請求項8記載の管理プログラム。
  13.  要求データを送信したクライアントの正当性と、要求データの正当性の確認に用いられる公開鍵証明書の管理方法であって、
     第1の公開鍵証明書を用いた、クライアントとのセキュアな通信接続が開始された状態で、該クライアントとで一時共通鍵を共有し、
     前記クライアントからの第2の公開鍵証明書の発行要求に対して、該第2の公開鍵証明書を生成し、該第2の公開鍵証明書を前記一時共通鍵で暗号化して該クライアントに送信する
    処理をコンピュータが行う管理方法。
  14.  プロセッサと、
     要求データを送信したクライアントの正当性と、該要求データの正当性の確認に用いられる第1の公開鍵証明書を記憶する記憶部とを有するサーバであって、
     前記プロセッサは、
     前記クライアントによる前記第1の公開鍵証明書を用いたセキュアな通信接続が開始された状態で、該クライアントとで一時共通鍵を共有し、
     前記クライアントからの第2の公開鍵証明書の発行要求に対して、該第2の公開鍵証明書を生成し、該第2の公開鍵証明書を前記一時共通鍵で暗号化して該クライアントに送信する
    処理を実行するサーバ。
PCT/JP2014/065903 2014-06-16 2014-06-16 更新プログラム及び方法、及び、管理プログラム及び方法 WO2015193945A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2014/065903 WO2015193945A1 (ja) 2014-06-16 2014-06-16 更新プログラム及び方法、及び、管理プログラム及び方法
JP2016528666A JP6573880B2 (ja) 2014-06-16 2014-06-16 更新プログラム及び方法、及び、管理プログラム及び方法
US15/377,374 US10708047B2 (en) 2014-06-16 2016-12-13 Computer-readable recording medium storing update program and update method, and computer-readable recording medium storing management program and management method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/065903 WO2015193945A1 (ja) 2014-06-16 2014-06-16 更新プログラム及び方法、及び、管理プログラム及び方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/377,374 Continuation US10708047B2 (en) 2014-06-16 2016-12-13 Computer-readable recording medium storing update program and update method, and computer-readable recording medium storing management program and management method

Publications (1)

Publication Number Publication Date
WO2015193945A1 true WO2015193945A1 (ja) 2015-12-23

Family

ID=54934978

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/065903 WO2015193945A1 (ja) 2014-06-16 2014-06-16 更新プログラム及び方法、及び、管理プログラム及び方法

Country Status (3)

Country Link
US (1) US10708047B2 (ja)
JP (1) JP6573880B2 (ja)
WO (1) WO2015193945A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019121823A (ja) * 2017-12-28 2019-07-22 株式会社日立製作所 電子証明書管理システムおよび電子証明書管理方法
JP2020505849A (ja) * 2017-04-01 2020-02-20 西安西▲電▼捷通▲無▼▲線▼▲網▼▲絡▼通信股▲ふん▼有限公司 デジタル証明書管理方法及び装置
JP2021145331A (ja) * 2020-02-13 2021-09-24 アクシス アーベー デジタルセキュリティ証明書を再提供する方法、そのシステム、及びその非一時的コンピュータプログラム製品

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9916567B1 (en) 2013-03-15 2018-03-13 Vantiv, Llc Systems, methods and apparatus for payment terminal management
CN106789018B (zh) * 2016-12-20 2019-10-08 百富计算机技术(深圳)有限公司 密钥远程获取方法和装置
JP6644037B2 (ja) * 2017-09-08 2020-02-12 株式会社東芝 通信制御システム
CN109905243B (zh) * 2017-12-11 2022-06-03 航天信息股份有限公司 一种处理数字证书更新请求的方法及服务器
US10715338B2 (en) * 2018-02-21 2020-07-14 Microsoft Technology Licensing, Llc Management of public key certificates within a distributed architecture
JP6952661B2 (ja) * 2018-08-30 2021-10-20 株式会社東芝 情報処理装置、通信機器、情報処理システム、情報処理方法、および情報処理プログラム
US11611430B2 (en) * 2019-04-15 2023-03-21 Axell Corporation Arithmetic apparatus, arithmetic system and arithmetic method
US11244525B2 (en) * 2020-03-02 2022-02-08 International Business Machines Corporation Authentication security
JP7254753B2 (ja) * 2020-09-18 2023-04-10 株式会社東芝 システムおよびサーバ装置
CN113346998B (zh) * 2021-08-06 2021-10-15 苏州浪潮智能科技有限公司 密钥更新及文件共享方法、装置、设备、计算机存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006060779A (ja) * 2004-07-20 2006-03-02 Ricoh Co Ltd 証明書送信装置、通信システム、証明書送信方法、プログラム及び記録媒体
US20060047950A1 (en) * 2004-09-01 2006-03-02 Wayne Thayer Methods and systems for dynamic updates of digital certificates via subscription
JP2007329731A (ja) * 2006-06-08 2007-12-20 Hitachi Ltd 証明書更新方法、システム及びプログラム
JP2008160384A (ja) * 2006-12-22 2008-07-10 Nec Infrontia Corp 無線lan端末、その電子証明書更新方法及びプログラム、並びに無線lanシステム
JP2009118350A (ja) * 2007-11-08 2009-05-28 Canon Inc 記録装置、記録方法

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5657390A (en) 1995-08-25 1997-08-12 Netscape Communications Corporation Secure socket layer application program apparatus and method
JP2001111538A (ja) 1999-10-05 2001-04-20 Dainippon Printing Co Ltd 通信システムとその方法、通信装置およびicカード
JP2001320356A (ja) 2000-02-29 2001-11-16 Sony Corp 公開鍵系暗号を使用したデータ通信システムおよびデータ通信システム構築方法
JP2002297548A (ja) 2001-03-30 2002-10-11 Matsushita Electric Ind Co Ltd 端末登録システムとそれを構成する装置及び方法
JP3933999B2 (ja) 2002-06-13 2007-06-20 セイコープレシジョン株式会社 デジタル証明書発行システム及びそのシステムプログラム
US8015399B2 (en) * 2003-09-30 2011-09-06 Ricoh Company, Ltd. Communication apparatus, communication system, certificate transmission method and program
JP4284198B2 (ja) 2004-01-16 2009-06-24 日本電信電話株式会社 公開鍵証明書の更新方法および装置
US8181017B2 (en) * 2004-10-22 2012-05-15 Nds Limited Certificate renewal
US8195945B2 (en) * 2005-12-01 2012-06-05 Sony Mobile Communications Ab Secure digital certificate storing scheme for flash memory and electronic apparatus
US7822976B2 (en) * 2007-03-08 2010-10-26 Kinghood Technology Co., Ltd. Network data security system and protecting method thereof
US8826006B2 (en) * 2008-10-31 2014-09-02 Motorola Solutions, Inc. Method and device for enabling a trust relationship using an unexpired public key infrastructure (PKI) certificate
US8423761B2 (en) * 2008-10-31 2013-04-16 Motorola Solutions, Inc. Method and device for enabling a trust relationship using an expired public key infrastructure (PKI) certificate
WO2010068698A2 (en) * 2008-12-09 2010-06-17 Glue Networks, Inc. System and method for providing virtual private networks
CN101521883B (zh) * 2009-03-23 2011-01-19 中兴通讯股份有限公司 一种数字证书的更新和使用方法及系统
US9680819B2 (en) * 2009-12-23 2017-06-13 Symantec Corporation Method and system for co-termination of digital certificates
EP2733885A4 (en) * 2011-07-15 2015-06-17 Hitachi Ltd METHOD FOR DETERMINING AN ENCRYPTION ALGORITHM USED FOR A SIGNATURE AND VERIFICATION SERVER AND PROGRAM THEREFOR
JP2013179419A (ja) * 2012-02-28 2013-09-09 Ricoh Co Ltd ネットワークシステム、証明書管理方法及び証明書管理プログラム
US8856514B2 (en) * 2012-03-12 2014-10-07 International Business Machines Corporation Renewal processing of digital certificates in an asynchronous messaging environment
US8966260B1 (en) * 2013-01-30 2015-02-24 Palo Alto Networks, Inc. Credentials management in large scale virtual private network deployment
US20140379596A1 (en) * 2013-06-23 2014-12-25 Cisco Technology, Inc. Cloud-based auditing and management of licenses to use computer products
US9332003B2 (en) * 2014-03-20 2016-05-03 Symantec Corporation Systems and methods for discovering website certificate information
US9467442B2 (en) * 2014-05-23 2016-10-11 Symantec Corporation Automated step-up digital certificate installation process

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006060779A (ja) * 2004-07-20 2006-03-02 Ricoh Co Ltd 証明書送信装置、通信システム、証明書送信方法、プログラム及び記録媒体
US20060047950A1 (en) * 2004-09-01 2006-03-02 Wayne Thayer Methods and systems for dynamic updates of digital certificates via subscription
JP2007329731A (ja) * 2006-06-08 2007-12-20 Hitachi Ltd 証明書更新方法、システム及びプログラム
JP2008160384A (ja) * 2006-12-22 2008-07-10 Nec Infrontia Corp 無線lan端末、その電子証明書更新方法及びプログラム、並びに無線lanシステム
JP2009118350A (ja) * 2007-11-08 2009-05-28 Canon Inc 記録装置、記録方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SHIHO MORIAI: "Security Protocols for the Internet", THE JOURNAL OF THE INSTITUTE OF IMAGE INFORMATION AND TELEVISION ENGINEERS, vol. 59, no. 4, 1 April 2005 (2005-04-01), pages 532 - 537 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020505849A (ja) * 2017-04-01 2020-02-20 西安西▲電▼捷通▲無▼▲線▼▲網▼▲絡▼通信股▲ふん▼有限公司 デジタル証明書管理方法及び装置
JP7014806B2 (ja) 2017-04-01 2022-02-01 西安西▲電▼捷通▲無▼▲線▼▲網▼▲絡▼通信股▲ふん▼有限公司 デジタル証明書管理方法及び装置
US11363010B2 (en) 2017-04-01 2022-06-14 China Iwncomm Co., Ltd. Method and device for managing digital certificate
JP2019121823A (ja) * 2017-12-28 2019-07-22 株式会社日立製作所 電子証明書管理システムおよび電子証明書管理方法
JP2021145331A (ja) * 2020-02-13 2021-09-24 アクシス アーベー デジタルセキュリティ証明書を再提供する方法、そのシステム、及びその非一時的コンピュータプログラム製品
JP7060729B2 (ja) 2020-02-13 2022-04-26 アクシス アーベー デジタルセキュリティ証明書を再提供する方法、そのシステム、及びその非一時的コンピュータプログラム製品

Also Published As

Publication number Publication date
JP6573880B2 (ja) 2019-09-11
US10708047B2 (en) 2020-07-07
JPWO2015193945A1 (ja) 2017-04-20
US20170093570A1 (en) 2017-03-30

Similar Documents

Publication Publication Date Title
JP6573880B2 (ja) 更新プログラム及び方法、及び、管理プログラム及び方法
US9912485B2 (en) Method and apparatus for embedding secret information in digital certificates
JP5815525B2 (ja) 情報処理装置、コントローラ、鍵発行局、無効化リスト有効性判定方法および鍵発行方法
JP4671783B2 (ja) 通信システム
TWI507006B (zh) 在一次往返中的金鑰認證
US9137017B2 (en) Key recovery mechanism
JP5576985B2 (ja) 署名に用いる暗号アルゴリズムの決定方法、検証サーバおよびプログラム
JP5136012B2 (ja) データ送付方法
JP5201716B2 (ja) 暗号モジュール配信システム、暗号管理サーバ装置、暗号処理装置、クライアント装置、暗号管理プログラム、暗号処理プログラム、およびクライアントプログラム
WO2019239591A1 (ja) 認証システム、認証方法、アプリケーション提供装置、認証装置、及び認証用プログラム
US20110138177A1 (en) Online public key infrastructure (pki) system
US20090327708A1 (en) Certificate distribution using secure handshake
WO2013094018A1 (ja) 暗号化データ管理装置、暗号化データ管理方法及び暗号化データ管理プログラム
US20080091947A1 (en) Software registration system
KR20090084545A (ko) Ce 장치 관리 서버, ce 장치 관리 서버를 이용한drm 키 발급 방법, 및 그 방법을 실행하기 위한프로그램 기록매체
US20220247576A1 (en) Establishing provenance of applications in an offline environment
US11218317B1 (en) Secure enclave implementation of proxied cryptographic keys
US20210392004A1 (en) Apparatus and method for authenticating device based on certificate using physical unclonable function
EP4145763A1 (en) Exporting remote cryptographic keys
EP4096160A1 (en) Shared secret implementation of proxied cryptographic keys
JP5012574B2 (ja) 共通鍵自動共有システム及び共通鍵自動共有方法
JP2004248220A (ja) 公開鍵証明書発行装置、公開鍵証明書記録媒体、認証端末装置、公開鍵証明書発行方法、及びプログラム
JP2004140636A (ja) 電子文書の署名委任システム、署名委任サーバ及び署名委任プログラム
JP6045018B2 (ja) 電子署名代行サーバ、電子署名代行システム及び電子署名代行方法
JP2013223171A (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: 14895414

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2016528666

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14895414

Country of ref document: EP

Kind code of ref document: A1