Information processing apparatus, information processing method, and computer program
Summary by NHIP
Certificate and Key Safety Check
The apparatus acquires a digital certificate and compares its validity expiration date against a safe period for the associated public key. It generates a new key with a safe period extending beyond the certificate's expiration if the original key is unsafe, storing the updated certificate only when the new key remains valid.
Claim Score by NHIP
Abstract
An information processing apparatus and method that prior to using a digital certification considers a validity expiration date of the digital certificate as well as a usable deadline of an algorithm or a public key used in the digital certificate.

Term
Projected expiry 2 March 2032.
- Priority
- Filed
- Granted
- Today
- Projected expiry
17 claims: 4 independent, 13 dependent
- 1An information processing apparatus comprising:a memory;and a control unit, connected to the memory, the control unit configured to: acquire a digital certificate from an external apparatus;acquire a first safe period for which a first public key used for the digital certificate is determined to be safe;compare a validity expiration date of the digital certificate and the first safe period of the first public key;and generate a second public key which is determined to be safe for a second safe period equal to or later than the validity expiration date of the digital certificate, wherein a digital certificate based on the generated second public key is registered as a usable digital certificate based on a result of comparing the validity expiration date of the digital certificate and the period of the first public key.
- 6Broadest claimClaim Score 62, broad(NHIP)An information processing apparatus comprising:a memory;and a control unit, connected to the memory, the control unit configured to: acquire a digital certificate from an external apparatus;acquire a first safe period for which a first algorithm used for the digital certificate is determined to be safe;compare a validity expiration date of the digital certificate and the first safe period of the algorithm;and determine a second algorithm which is determined to be safe for a second safe period equal to or later than the validity expiration date of the digital certificate, wherein a digital certificate based on the determined second algorithm is registered as a usable digital certificate based on a result of comparing the validity expiration date of the digital certificate and the first safe period of the first algorithm.
- 8An information processing method utilized by an information processing apparatus, the information processing method comprising:acquiring a digital certificate from an external apparatus;acquiring a first safe period for which a first public key used for the digital certificate is determined to be safe;comparing a validity expiration date of the digital certificate and the period of the first public key;generating a second public key which is determined to be safe for a second period equal to or later than the validity expiration date of the digital certificate;and registering a digital certificate based on the generated second public key as a usable digital certificate based on a result of comparing the validity expiration date of the digital certificate and the first safe period of the first public key.
- 9An information processing method utilized by an information processing apparatus, the information processing method comprising:acquiring a digital certificate from an external apparatus;acquiring a first safe period for which a first algorithm used for the digital certificate is determined to be safe;comparing a validity expiration date of the digital certificate and the first safe period of the first algorithm;determining a second algorithm which is determined to be safe for a second safe period equal to or later than the validity expiration date of the digital certificate;and registering a digital certificate based on the determined second algorithm as a usable digital certificate based on a result of comparing the validity expiration date of the digital certificate and the first safe period of the first algorithm.
Independent claims4
81 paragraphs in 4 sections, as filed
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to an information processing apparatus that uses a digital certificate.
2. Description of the Related Art
Digital certificates (hereinafter referred to as “certificates”) used in, for example, encrypted communication contain the issuer of the certificate, the validity expiration date of the certificate, the public key, the certifier, or the algorithm information about the algorithm used to generate the public key. Information processing apparatuses determine whether a certificate for use of the information processing apparatus has expired or has been revoked, and restrict the use of the certificate in a case where the certificate has expired or has been revoked (for example, Japanese Patent Application Laid-Open No. 2007-274060).
Hash algorithms and signature algorithms used in certificates are designed to prevent alteration of the certificates and provide safety in use of the certificates. For example, Rivest-Shamir-Adleman (RSA), Digital Signature Algorithm (DSA), and Elliptic Curve Digital Signature Algorithm (ECDSA), which are well-known signature algorithms, maintain safety based on the difficulity of a prime factorization problem or a discrete logarithm problem, and it is difficult to acquire a secret key from a public key used in a certificate.
However, the safety of algorithms used in certificates is reduced over time because of the improvement in the capabilities of computers, mathematical advancements, and the like. For example, National Institute of Standards and Technology (NIST) in the United States has set out the guidelines about encryption algorithms used in the world, and has reported the time period for which the safety is supposed to be maintained for each algorithm and each key size. Using an algorithm and a key size beyond the reported time period increases the possibility of forgery of the certificate and leaking of the secret key.
According to the conventional techniques, information processing apparatuses determine whether a certificate for the information processing apparatus has expired, and use the certificate as long as the certificate has not expired. As a result, information processing apparatuses may keep using a certificate as long as the certificate is within its validity period even if the algorithm or the public key utilized in the certificate is beyond the guaranteed usable period. In other words, the conventional techniques check the validity expiration date of a certificate, but fail to check the usable period of the algorithm and the public key utilized in the certificate.
For example, even if an algorithm utilized in a certificate has a usable date up to 2010, the certificate having a validity expiration date of 2015 may keep being used until 2015. Currently, there are various worldwide types of software capable of generating a certificate, and an individual person can generate a certificate and a key pair (a pair of a certificate and a secret key). For a certificate and a key pair generated by an individual person, the validity expiration date is not always set to the certificate and the key pair in consideration of the usable dates of the algorithm and the public key. Some users may find the update of a certificate and a key pair bothersome, and generate a certificate and a key pair by setting a long validity period thereto. Acquiring such a certificate from an external apparatus and continuing to use it increases the possibility of forgery of the certificate and leaking of the secret key.
SUMMARY OF THE INVENTION
One aspect of the present invention is directed to providing an information processing apparatus that uses a digital certificate more safely by taking into consideration not only a validity expiration date of the digital certificate but also a usable deadline of an algorithm or a public key utilized in the digital certificate.
According to an aspect of the present invention, an information processing apparatus includes a memory and a control unit connected to the memory, the control unit configured to acquire a digital certificate from an external apparatus, acquire a usable deadline of a public key used in the digital certificate, and compare a validity expiration date of the digital certificate and the usable deadline of the public key.
Further features and aspects of the present invention will become apparent from the following detailed description of exemplary embodiments with reference to the attached drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate exemplary embodiments, features, and aspects of the invention and, together with the description, serve to explain the principles of the invention.
<figref idrefs="DRAWINGS">FIG. 1</figref> illustrates the configuration of a system.
<figref idrefs="DRAWINGS">FIG. 2</figref> is a flowchart illustrating the information processing for importing a certificate.
<figref idrefs="DRAWINGS">FIG. 3</figref> is a flowchart illustrating the information processing for checking the validity of the certificate.
<figref idrefs="DRAWINGS">FIG. 4</figref> is a flowchart illustrating the information processing for checking the safety of the certificate.
<figref idrefs="DRAWINGS">FIG. 5</figref> illustrates a lifetime table stored in a lifetime table storage unit.
<figref idrefs="DRAWINGS">FIG. 6</figref> illustrates an example of a confirmation screen displayed in step S<b>210</b>.
<figref idrefs="DRAWINGS">FIG. 7</figref> is a flowchart illustrating the information processing for importing a key pair.
<figref idrefs="DRAWINGS">FIG. 8</figref> illustrates an example of a confirmation screen displayed in step S<b>708</b>.
<figref idrefs="DRAWINGS">FIG. 9</figref> is a flowchart illustrating the information processing for importing a key pair.
<figref idrefs="DRAWINGS">FIG. 10</figref> illustrates an example of a confirmation screen displayed in step S<b>810</b>.
<figref idrefs="DRAWINGS">FIG. 11</figref> illustrates an example of the certificate.
<figref idrefs="DRAWINGS">FIG. 12</figref> illustrates the relationship between expiration dates.
DESCRIPTION OF THE EMBODIMENTS
Various exemplary embodiments, features, and aspects of the invention will be described in detail below with reference to the drawings.
It should be noted that those exemplary embodiments are merely examples, and are not intended to limit the scope of the present invention in any manner.
In the following description, expiration dates will be compared with each other. The phrase “an expiration date T_a is earlier than an expiration date T_b” means the relationship as illustrated in <figref idrefs="DRAWINGS">FIG. 12</figref>. Further, this relationship may be expressed by an inequality sign “T_a<T_b”.
<figref idrefs="DRAWINGS">FIG. 1</figref> illustrates a system configuration according to an exemplary embodiment of the present invention. An information processing apparatus <b>1</b> can perform encryption communication in a network by using a digital certificate (hereinafter referred to as “certificate”). The information processing apparatus <b>1</b> may be embodied by, for example, a printer, a multi functional pheripheral, a scanner, a personal computer (PC), or a server computer. The information processing apparatus <b>1</b> includes an input/output unit <b>2</b>, a communication unit <b>3</b>, a key storage unit <b>4</b>, a lifetime table storage unit <b>5</b>, a certificate storage unit <b>6</b>, an information storage unit <b>7</b>, an internal clock <b>8</b>, and a control unit <b>9</b>.
The input/output unit <b>2</b> is a user interface, and displays various kinds of information to and inputs various kinds of instructions issued from a user. The input/output unit <b>2</b> is realized by hardware devices such as a display apparatus, a keyboard, a mouse, and a touch panel. The communication unit <b>3</b> communicates with an external apparatus via a network such as a wired local area network (LAN), a wireless LAN, or a universal serial bus (USB). The communication unit <b>3</b> can import, for example, a certificate, a Certificate Revocation List (CRL), and a key pair from an external apparatus. The key storage unit <b>4</b> stores a usable key pair. The lifetime table storage unit <b>5</b> stores a lifetime table. The certificate storage unit <b>6</b> stores a usable certificate. The key storage unit <b>4</b>, the lifetime table storage unit <b>5</b>, and the certificate storage unit <b>6</b> are realized by a hardware device such as a non-volatile memory or a hard disc.
The key storage unit <b>4</b>, the lifetime table storage unit <b>5</b>, and the certificate storage unit <b>6</b> may be realized by separate hardware devices, respectively, or maybe realized by a single hardware device collectively. The information stored in the key storage unit <b>4</b>, the lifetime table storage unit <b>5</b>, and the certificate storage unit <b>6</b> is registered, updated, and deleted by the control unit <b>9</b>.
The information storage unit <b>7</b> stores a computer program for controlling the information processing apparatus <b>1</b>, information generated in information processing, and values of variables used in information processing. The information storage unit <b>7</b> is realized by a hardware device such as a random access memory (RAM), a read only memory (ROM), or a hard disc. The internal clock <b>8</b> provides date/time information indicating the current date and time. The control unit <b>9</b> controls the entire information processing apparatus <b>1</b>. The control unit <b>9</b> is realized by a hardware device such as a central processing unit (CPU) or a microprocessor. The control unit <b>9</b> performs various kinds of information processing according to the program stored in the information storage unit <b>7</b>.
<figref idrefs="DRAWINGS">FIG. 11</figref> illustrates an example of a certificate. The information illustrated in <figref idrefs="DRAWINGS">FIG. 11</figref> may be contained in a certificate depending on the type of the certificate.
The information processing apparatus <b>1</b> imports a certificate in the following manner. During the import processing, the information processing apparatus <b>1</b> may import a certificate such as X.509 or a key pair such as Public-Key Cryptography Standards No. 12 (PKCS#12). Importing a key pair will be described below. The certificate imported in the present exemplary embodiment is a self-signed certificate.
The information processing apparatus <b>1</b> can perform control according to a security policy. In the present exemplary embodiment, the following security policies can be set to the information processing apparatus <b>1</b>. In a normal mode, the information processing apparatus <b>1</b> only checks the validity of a certificate to be imported. In other words, the information processing apparatus <b>1</b> checks whether the certificate has been revoked and whether the certificate has expired.
In a first secure mode, the information processing apparatus <b>1</b> checks the safety of the certificate, in addition to checking the validity of the certificate. If the result of the safety check indicates “No Good (NG)”, the information processing apparatus <b>1</b> refuses to import this certificate. The check of the safety of a certificate will be described below. In a second secure mode, the information processing apparatus <b>1</b> checks the validity of a certificate, and also checks the safety of the certificate. If the result of the safety check indicates “NG”, the information processing apparatus <b>1</b> provides the user with an opportunity to import the certificate if the user wishes to do so. A user instructs selects from among the normal mode, the first secure mode, and the second secure mode using the input/output unit <b>2</b>.
<figref idrefs="DRAWINGS">FIG. 2</figref> is a flowchart illustrating the information processing for importing a certificate. The control unit <b>9</b> executes a program based on the flowchart illustrated in <figref idrefs="DRAWINGS">FIG. 2</figref>, thereby realizing the import processing.
In step S<b>201</b>, the control unit <b>9</b> determines whether a request to import a certificate is issued. If a user wants to import a certificate, the user requests the information processing apparatus <b>1</b> to import the certificate via the input/output unit <b>2</b>. In response to this request, the communication unit <b>3</b> acquires the certificate from an external apparatus. The external apparatus may be a computer such as a personal computer or a server computer, or an external storage apparatus such as a USB memory or a file server. Alternatively, the user can also request the information processing apparatus <b>1</b> to import the certificate via the user's own PC. In this case, the PC transmits a certificate import request to the information processing apparatus <b>1</b>, and at the same time, transmits the target certificate to the information processing apparatus <b>1</b>. The certificate acquired from the external apparatus is first stored into the information storage unit <b>7</b>. If the control unit <b>9</b> determines that there is an import request (YES in step S<b>201</b>), the processing proceeds to step S<b>202</b>. In step S<b>202</b>, the control unit <b>9</b> checks the validity of the certificate.
<figref idrefs="DRAWINGS">FIG. 3</figref> is a flowchart illustrating the information processing for checking the validity of a certificate. The control unit <b>9</b> executes a program based on the flowchart illustrated in <figref idrefs="DRAWINGS">FIG. 3</figref>, thereby checking the validity of a certificate.
First, in step S<b>301</b>, the control unit <b>9</b> determines whether the certificate has been revoked. The revocation state of the certificate can be confirmed based on the CRL stored in advance in the information storage unit <b>7</b>. The CRL is issued by a certificate authority or a CRL server, and the information processing apparatus <b>1</b> stores it into the information storage unit <b>7</b>. If the CRL indicates that the certificate has been revoked, the control unit <b>9</b> determines that the certificate has been revoked.
Another method of confirming the revocation state of a certificate is to use an Online Certificate Status Protocol (OCSP), instead of referring to the CRL. In this case, the communication unit <b>3</b> communicates with an OCSP server using the OCSP to inquire whether the certificate has been revoked.
If the control unit <b>9</b> determines that the certificate has been revoked (YES in step S<b>301</b>), the processing proceeds to step S<b>302</b>. In step S<b>302</b>, the control unit <b>9</b> displays a message indicating the revocation on the input/output unit <b>2</b> to notify the user that the certificate has been revoked. Alternatively, the control unit <b>9</b> can control the communication unit <b>3</b> to transmit a message indicating that the certificate has been revoked to an external apparatus. Then, in step S<b>303</b>, the control unit <b>9</b> sets “NG” to a variable VALIDITY. If the control unit <b>9</b> determines that the certificate has not been revoked (NO in step S<b>301</b>), the processing proceeds to step S<b>304</b>. In step S<b>304</b>, the control unit <b>9</b> compares a validity expiration date T_cert with a current date/time T_now. The control unit <b>9</b> acquires the current date/time T_now from the internal clock <b>8</b>. Hereinafter, “T_cert” represents the validity expiration date of the certificate that is the target of an import request.
If the current date/time T_now is later than the validity expiration date T_cert of the certificate (YES in step S<b>304</b>), the processing proceeds to step S<b>305</b>. In step S<b>305</b>, the control unit <b>9</b> displays a message indicating the expiration on the input/output unit <b>2</b> to notify the user that the certificate has expired. Alternatively, the control unit <b>9</b> controls the communication unit <b>3</b> to transmit a message indicating the expiration of the certificate to an external apparatus. Then, in step S<b>303</b>, the control unit <b>9</b> sets “NG” to the variable VALIDITY. If the current date/time T_now is earlier than or the same as the validity expiration date T_cert of the certificate (NO in step S<b>304</b>), the processing proceeds to step S<b>306</b>. In step S<b>306</b>, the control unit <b>9</b> sets “Okay (OK)” to the variable VALIDITY.
In the flowchart illustrated in <figref idrefs="DRAWINGS">FIG. 3</figref>, the control unit <b>9</b> first checks the revocation state of the certificate, and then checks the validity expiration date of the certificate. However, the control unit <b>9</b> may first check the validity expiration date of the certificate and then check the revocation state of the certificate.
Returning to the flowchart illustrated in <figref idrefs="DRAWINGS">FIG. 2</figref>, the rest of the certificate import processing will be described. After the control unit <b>9</b> checks the validity of the certificate, in step S<b>203</b>, the control unit <b>9</b> determines whether the value of the variable VALIDITY is “OK”. If the value of the variable VALIDITY is “NG” (NO in step S<b>203</b>), the processing proceeds to step S<b>204</b>. In step S<b>204</b>, the control unit <b>9</b> does not import the certificate. As a result, the certificate is not registered into the certificate storage unit <b>6</b>. If the value of the variable VALIDITY is “OK” (YES in step S<b>203</b>), the processing proceeds to step S<b>205</b>. In step S<b>205</b>, the control unit <b>9</b> determines whether the currently set security policy is the normal mode. If the currently set security policy is the normal mode (YES in step S<b>205</b>), the processing proceeds to step S<b>206</b>. In step S<b>206</b>, the control unit <b>9</b> imports the certificate. During the import processing, the control unit <b>9</b> stores the certificate in the certificate storage unit <b>6</b> to allow the certificate to be used in communication. If the currently set security policy is not the normal mode (NO in step S<b>205</b>), the processing proceeds to step S<b>207</b>. In step S<b>207</b>, the control unit <b>9</b> checks the safety of the certificate.
<figref idrefs="DRAWINGS">FIG. 4</figref> is a flowchart illustrating the information processing for checking the safety of a certificate. The control unit <b>9</b> executes a program based on the flowchart illustrated in <figref idrefs="DRAWINGS">FIG. 4</figref>, thereby checking the safety of a certificate.
First, in step S<b>401</b>, the control unit <b>9</b> compares the validity expiration date T_cert of the certificate with a usable deadline T_hash of a hash algorithm used in the certificate. Examples of hash algorithms include Secure Hash Algorithm (SHA)1, SHA224, and SHA256, which have respectively different usable deadlines.
<figref idrefs="DRAWINGS">FIG. 5</figref> illustrates the lifetime table stored in the lifetime table storage unit <b>5</b>. The lifetime table contains information indicating a timeframe when a signature algorithm or a hash algorithm can be safely used. When use of the algorithm extends beyond the usable deadline stored in the table, the possibility of accessing information encrypted using the corresponding signature algorithm and the hash algorithm increases. The lifetime table is generated based on the information published by a reliable authority, such as NIST. In the present exemplary embodiment, in the lifetime table illustrated in <figref idrefs="DRAWINGS">FIG. 5</figref>, “TO YEAR OF 2010” is defined as “TO DEC. 31, 2010”.
The lifetime table and the certificates can be registered and overwritten by a user having predetermined authority, such as an administrator of the information processing apparatus <b>1</b>. Further, the lifetime table can be updated based on update information periodically distributed from an external server. Alternatively, the information processing apparatus <b>1</b> can acquire the update information from the external server according to an update request issued from a user. The information processing apparatus <b>1</b> can also acquire the update information from the external server in response to a request to import a certificate or a key pair.
In step S<b>401</b>, the control unit <b>9</b> refers to the lifetime table to acquire the usable deadline T_hash of the hash algorithm used in the certificate, and determines whether T_cert is earlier than or the same as T_hash. If the validity expiration date T_cert of the certificate is earlier than or the same as the usable deadline T_hash of the hash algorithm (YES in step S<b>401</b>), the processing proceeds to step S<b>402</b>. In step S<b>402</b>, the control unit <b>9</b> compares the validity expiration date T_cert of the certificate with the usable deadline T_pk of the public key contained in the certificate. The usable deadline T_pk of a public key is determined based on the signature algorithm used in generating the public key and the size of the public key. According to the lifetime table illustrated in <figref idrefs="DRAWINGS">FIG. 5</figref>, the usable deadline of a 1024-bit public key generated by RSA is the year of 2010.
In step S<b>402</b>, the control unit <b>9</b> refers to the lifetime table to acquire the usable deadline T_pk of the public key contained in the certificate, and determines whether the validity expiration date T_cert of the certificate is earlier than or the same as the usable deadline T_pk of the public key. If the validity expiration date T_cert of the certificate is earlier than or the same as the usable deadline T_pk of the public key (YES in step S<b>402</b>), the processing proceeds to step S<b>403</b>. In step S<b>403</b>, the control unit <b>9</b> sets “OK” to a variable SECURITY. If the validity expiration date T_cert of the certificate is later than the usable deadline T_hash of the hash algorithm (NO in step S<b>401</b>), or if the validity expiration date T_cert of the certificate is later than the usable deadline T_pk of the public key (NO in step S<b>402</b>), the processing proceeds to step S<b>404</b>. In step S<b>404</b>, the control unit <b>9</b> sets “NG” to the variable SECURITY. The control unit <b>9</b> can confirm what kind of hash algorithm is used in a certificate by referring to the information “signature” in the certificate. The control unit <b>9</b> can confirm what kind of public key is contained in a certificate by referring to the information “subjectPublicKeyinfo” in the certificate.
In the flowchart illustrated in <figref idrefs="DRAWINGS">FIG. 4</figref>, the control unit <b>9</b> first compares the validity expiration date of the certificate with the usable deadline of the hash algorithm, and then compares the validity expiration date of the certificate with the usable deadline of the public key. The control unit <b>9</b> can perform these comparisons in the reverse order.
Returning to the flowchart illustrated in <figref idrefs="DRAWINGS">FIG. 2</figref>, the rest of the certificate import processing will be described. After the control unit <b>9</b> checks the safety of the certificate, in step S<b>208</b>, the control unit <b>9</b> determines whether the value of the variable SECURITY is “OK”. If the value of the variable SECURITY is “OK” (YES in step S<b>208</b>), the processing proceeds to step S<b>206</b>. In step S<b>206</b>, the control unit <b>9</b> imports the certificate. If the value of the variable SECURITY is “NG” (NO in step S<b>208</b>), the processing proceeds to step S<b>209</b>. In step S<b>209</b>, the control unit <b>9</b> determines whether the currently set security policy is the first secure mode. If the currently set security policy is the first secure mode (YES in step S<b>209</b>), the processing proceeds to step S<b>204</b>. In step S<b>204</b>, the control unit <b>9</b> does not import the certificate. As a result, the certificate is not registered into the certificate storage unit <b>6</b>. If the currently set security mode is the second security mode (NO in step S<b>209</b>), the processing proceeds to step S<b>210</b>. In step S<b>210</b>, the control unit <b>9</b> displays a confirmation screen on the input/output unit <b>2</b> to issue a warning about the safety of the certificate.
<figref idrefs="DRAWINGS">FIG. 6</figref> illustrates an example of the confirmation screen displayed in step S<b>210</b>. This confirmation screen indicates that the guarantee of the safety of the certificate does not last until the validity expiration date of the certificate, and provides a user with an option whether the user still wants to import this certificate.
If the user wants to view the details of the certificate, the user presses a button <b>601</b>. Then, the control unit <b>9</b> displays the detailed information about the certificate on the input/output unit <b>2</b>. If the user wants to import the certificate, the user presses a button <b>602</b>. Then, the control unit <b>9</b> sets “OK” to a variable IMPORT. If the user wants to cancel the import of the certificate, the user presses a button <b>603</b>. Then, the control unit <b>9</b> sets “NG” to the variable IMPORT.
In step S<b>211</b>, the control unit <b>9</b> determines whether the value of the variable IMPORT is “OK”. If the value of the variable IMPORT is “OK” (YES in step S<b>211</b>), the processing proceeds to step S<b>206</b>. In step S<b>206</b>, the control unit <b>9</b> imports the certificate. If the value of the variable IMPORT is “NG” (NO in step S<b>211</b>), the processing proceeds to step S<b>204</b>. In step S<b>204</b>, the control unit <b>9</b> does not import the certificate.
A second exemplary embodiment of the present invention will now be described. In the second exemplary embodiment, the information processing apparatus <b>1</b> imports a key pair comprised of a secret key and a certificate. One example of a key pair is PKCS#12. The certificate is a self-signed certificate.
<figref idrefs="DRAWINGS">FIG. 7</figref> is a flowchart illustrating the information processing for importing a key pair. The control unit <b>9</b> executes a program based on the flowchart illustrated in <figref idrefs="DRAWINGS">FIG. 7</figref>, thereby realizing the import processing.
In step S<b>701</b>, the control unit <b>9</b> determines whether a request to import a key pair is issued. If a user wants to import a key pair, the user requests, via the input/output unit <b>2</b>, the information processing apparatus <b>1</b> to import the key pair. In response to this request, the communication unit <b>3</b> acquires the key pair from an external apparatus. The external apparatus maybe a computer such as a personal computer or a server computer, or an external storage apparatus such as a USB memory or a file server. Alternatively, the user can also request the information processing apparatus <b>1</b> to import the key pair via the user's own PC. In this case, the PC transmits a request to import the key pair to the information processing apparatus <b>1</b>, and at the same time, transmits the target key pair to the information processing apparatus <b>1</b>. If the control unit <b>9</b> determines that an import request is issued (YES in step S<b>701</b>), the processing proceeds to step S<b>702</b>. In step S<b>702</b>, the control unit <b>9</b> analyzes the key pair and checks the validity of the certificate contained in the key pair. In step S<b>702</b>, the control unit <b>9</b> performs the information processing based on the flowchart illustrated in <figref idrefs="DRAWINGS">FIG. 3</figref>.
After the control unit <b>9</b> checks the validity of the certificate, in step S<b>703</b>, the control unit <b>9</b> determines whether the value of the variable VALIDITY is “OK”. If the value of the variable VALIDITY is “NG” (NO in step S<b>703</b>), the processing proceeds to step S<b>704</b>. In step S<b>704</b>, the control unit <b>9</b> does not import the key pair. As a result, the key pair is not registered in the key storage unit <b>4</b>. If the value of the variable VALIDITY is “OK” (YES in step S<b>703</b>), the processing proceeds to step S<b>705</b>. In step S<b>705</b>, the control unit <b>9</b> checks the safety of the certificate contained in the key pair. In step S<b>705</b>, the control unit <b>9</b> performs the information processing based on the flowchart illustrated in <figref idrefs="DRAWINGS">FIG. 4</figref>.
After the control unit <b>9</b> checks the safety of the certificate, in step S<b>706</b>, the control unit <b>9</b> determines whether the value of the variable SECURITY is “OK”. If the value of the variable SECURITY is “OK” (YES in step S<b>706</b>), the processing proceeds to step S<b>707</b>. In the step S<b>707</b>, the control unit <b>9</b> imports the key pair. During the import processing, the control unit <b>9</b> stores the key pair in the key storage unit <b>4</b> to allow the key pair to be used in communication. If the value of the variable SECURITY is “NG” (NO in step S<b>706</b>), the processing proceeds to step S<b>708</b>. In step S<b>708</b>, the control unit <b>9</b> displays a confirmation screen on the input/output unit <b>2</b>.
<figref idrefs="DRAWINGS">FIG. 8</figref> illustrates an example of the confirmation screen displayed in step S<b>708</b>. This confirmation screen provides a user with an option of regenerating a safer certificate by setting ahead the validity expiration date of the certificate contained in the key pair. If the user wants to change the validity expiration date of the certificate, the user presses a button <b>801</b>. Then, the control unit <b>9</b> sets “OK” to a variable C_validity. If the user does not want to change the validity expiration date of the certificate, the user presses a button <b>802</b>. Then, the control unit <b>9</b> sets “NG” to the variable C_validity.
In step S<b>709</b>, the control unit <b>9</b> determines whether the value of the variable C_validity is “OK”. If the value of the variable C_validity is “NG” (NO in step S<b>709</b>), the processing proceeds to step S<b>704</b>. In step S<b>704</b>, the control unit <b>9</b> does not import the key pair. If the value of the variable C_validity is “OK” (YES in step S<b>709</b>), the processing proceeds to step S<b>710</b>. In step S<b>710</b>, the control unit <b>9</b> compares the usable deadline T_hash of the hash algorithm of the certificate with the usable deadline T_pk of the public key of the certificate. In particular, in step S<b>710</b>, the control unit <b>9</b> refers to the lifetime table to acquire both the usable deadline T_hash of the hash algorithm and the usable deadline T_pk of the public key, and determines whether the usable deadline T_hash of the hash algorithm is earlier than the usable deadline T_pk of the public key.
If the usable deadline T_hash of the hash algorithm is earlier than the usable deadline T_pk of the public key (YES in step S<b>710</b>), the processing proceeds to step <b>711</b>. In step S<b>711</b>, the control unit <b>9</b> sets the usable deadline T_hash of the hash algorithm to a validity expiration date T_cert_new of a certificate to be newly generated. If the usable deadline T_hash of the hash algorithm is the same as or later than the usable deadline T_pk of the public key (NO in step S<b>710</b>), the processing proceeds to step S<b>712</b>. In step S<b>712</b>, the control unit <b>9</b> sets the usable deadline T_pk of the public key to the validity expiration date T_cert_new of the certificate to be newly generated. Then, in step S<b>713</b>, the control unit <b>9</b> generates a new certificate that is valid until the validity expiration date T_cert_new by using the secret key contained in the key pair that is the target of the import request.
The version supported by the information processing apparatus <b>1</b> is set to the version information of the new certificate. The number issued by the information processing apparatus <b>1</b> is set to the serial number of the new certificate. The public key algorithm information of the certificate contained in the secret key pair is set to the public key algorithm information of the new certificate. The signature algorithm information and the public key of the certificate contained in the key pair are set to the signature algorithm and the public key of the new certificate. The current date and time are set to the start date of the validity term of the new certificate. The validity expiration date T_cert_new is set to the end date of the validity term of the new certificate. The control unit <b>9</b> calculates a hash value from the unsigned certificate containing the above-described information using the hash algorithm specified by the signature algorithm, and calculates a signature value from the hash value using the secret key, thereby generating a self-signed certificate.
Then, in step S<b>713</b>, the control unit <b>9</b> stores a new key pair comprised of the secret key and the new certificate in the key storage unit <b>4</b>. In step S<b>713</b>, the control unit <b>9</b> registers the key pair in the key storage unit <b>4</b> after changing the validity expiration date of the certificate contained in the key pair to be imported. As a result, the safety of the certificate can be further enhanced.
A third exemplary embodiment of the present invention will now be described. In the third exemplary embodiment, the information processing apparatus <b>1</b> imports a key pair comprised of a secret key and a certificate. One example of a key pair is PKCS#2. The certificate is a self-signed certificate.
<figref idrefs="DRAWINGS">FIG. 9</figref> is a flowchart illustrating the information processing for importing a key pair. The control unit <b>9</b> executes a program based on the flowchart illustrated in <figref idrefs="DRAWINGS">FIG. 9</figref>, thereby realizing the import processing.
In step S<b>901</b>, the control unit <b>9</b> determines whether a request to import a key pair is issued. If a user wants to import a key pair, the user requests, via the input/output unit <b>2</b>, the information processing apparatus <b>1</b> to import the key pair. In response to this request, the control unit <b>3</b> acquires the key pair from an external apparatus. The external apparatus maybe a computer such as a personal computer or a server computer, or an external storage apparatus such as a USB memory or a file server. Alternatively, the user can also request the information processing apparatus <b>1</b> to import the key pair via the user's own PC. In this case, the PC transmits a request to import the key pair to the information processing apparatus <b>1</b>, and at the same time, transmits the target key pair to the information processing apparatus <b>1</b>. If the control unit <b>9</b> determines that an import request is issued (YES instep S<b>901</b>), the processing proceeds to step S<b>902</b>. In step S<b>902</b>, the control unit <b>9</b> analyzes the key pair, and checks the validity of the certificate contained in the key pair. In step S<b>902</b>, the control unit <b>9</b> performs the information processing based on the flowchart illustrated in <figref idrefs="DRAWINGS">FIG. 3</figref>.
After the control unit <b>9</b> checks the validity of the certificate, in step S<b>903</b>, the control unit <b>9</b> determines whether the value of the variable VALIDITY is “OK”. If the value of the variable VALIDITY is “NG” (NO instep S<b>903</b>), the processing proceeds to step S<b>904</b>. In step S<b>904</b>, the control unit <b>9</b> does not import the key pair. As a result, the key pair is not registered in the key storage unit <b>4</b>. If the value of the variable VALIDITY is “OK” (YES in step S<b>903</b>), the processing proceeds to step S<b>905</b>. In step S<b>905</b>, the control unit <b>9</b> checks the safety of the certificate contained in the key pair. In step S<b>905</b>, the control unit <b>9</b> performs the information processing based on the flowchart illustrated in <figref idrefs="DRAWINGS">FIG. 4</figref>.
After the control unit <b>9</b> checks the safety of the certificate, in step S<b>906</b>, the control unit <b>9</b> determines whether the value of the validity SECURITY is “OK”. If the value of the variable SECURITY is “OK” (YES in step S<b>906</b>), the processing proceeds to step S<b>907</b>. In step S<b>907</b>, the control unit <b>9</b> imports the key pair. During the import processing, the control unit <b>9</b> stores the key pair in the key storage unit <b>4</b> to allow the key pair to be used in communication. If the value of the variable SECURITY is “NG” (NO in step S<b>906</b>), the processing proceeds to step S<b>908</b>. In step S<b>908</b>, the control unit <b>9</b> selects a hash algorithm. In particular, in step S<b>908</b>, the control unit <b>9</b> refers to the lifetime table to find one or more hash algorithms that satisfy [the validity expiration date of the certificate T_cert≦the usable deadline of the hash algorithm T<sub>13 </sub>hash], and then identifies the hash algorithm having the earliest usable deadline from among the found hash algorithms. In other words, the control unit <b>9</b> selects the hash algorithm that will reach its usable deadline first after the date of T_cert.
For example, if T cert is Dec. 19, 2015, SHA 224 is the hash algorithm having the earliest T_hash among the hash algorithms that satisfy [T_cert≦T_hash]. In a case where the information processing apparatus <b>1</b> does not support SHA224, the control unit <b>9</b> selects SHA256 instead.
Further, in step S<b>909</b>, the control unit <b>9</b> selects a combination of a signature algorithm and a public key size. In particular, in step S<b>909</b>, the control unit <b>9</b> refers to the lifetime table to find one or more combinations of a signature algorithm and a public key size that satisfy [the validity expiration date of the certificate T_cert≦the usable deadline of the public key T_pk], and identifies the combination having the earliest T_pk among the found combinations. In other words, the control unit <b>9</b> selects the combination of the signature algorithm and the public key size that will reach its usable deadline first after the date of T_cert. The usable deadline T_pk of a public key is determined based on the signature algorithm used in generating the public key, and the public key size. For example, for a certificate having T_cert of Dec. 19, 2015, the control unit <b>9</b> selects RSA-2048. In step S<b>910</b>, the control unit <b>9</b> displays a confirmation screen on the input/output unit <b>2</b>.
<figref idrefs="DRAWINGS">FIG. 10</figref> illustrates an example of the confirmation screen displayed in step S<b>810</b>. This confirmation screen provides a user with an opportunity to generate a more secure key pair. If the user wants to generate a new key pair, the user presses a button <b>1001</b>. Then, the control unit <b>9</b> sets “OK” to a variable C_key. If the user does not want to generate a new key pair, the user presses a button <b>1002</b>. Then, the control unit <b>9</b> sets “NG” to the variable C_key.
In step S<b>911</b>, the control unit <b>9</b> determines whether the value of the variable C_key is “OK”. If the value of the variable C_key is “NG” (NO in step S<b>911</b>), the processing proceeds to step S<b>904</b>. In step S<b>904</b>, the control unit <b>9</b> does not import the secret key. If the value of the variable C_key is “OK” (YES in step S<b>911</b>), the processing proceeds to step S<b>912</b>. In step S<b>912</b>, the control unit <b>9</b> generates a new key pair using the hash algorithm identified in step S<b>908</b> and the combination of the signature algorithm and the public key size identified in step S<b>909</b>. Further, in step S<b>912</b>, the control unit <b>9</b> stores the new key pair in the key storage unit <b>4</b>.
During the generation of the key pair, the control unit <b>9</b> generates a secret key and a public key according to the signature algorithm and the public key size identified in step S<b>909</b>. Subsequently, the control unit <b>9</b> generates a certificate in the form of X.509, and then adds a signature to the certificate using the hash algorithm identified instep S<b>908</b> and the secret key. In this way, the control unit <b>9</b> generates a key pair comprised of the secret key and the certificate.
The version supported by the information processing apparatus <b>1</b> is set to the version information of the new certificate. The number issued by the information processing apparatus <b>1</b> is set to the serial number of the new certificate. The public key algorithm information of the new certificate is determined from the combination of the signature algorithm and the public key size identified in step S<b>909</b>. The signature algorithm information of the new certificate is determined from the hash algorithm identified in step S<b>908</b> and the combination of the signature algorithm and the public key size identified in step S<b>909</b>. For example, if the hash algorithm is SHA224, the signature algorithm is RSA, and the public key size is 2048 bits, the signature algorithm information is SHA224-RSA (sha224WithRSAEncryption). The current date and time are set to the start date of the validity term of the new certificate. The validity expiration date T_cert is set to the end date of the validity term of the new certificate. The newly generated public key is set as the public key of the new certificate. The control unit <b>9</b> calculates a hash value from the unsigned certificate containing the above-described information using the hash algorithm specified by the signature algorithm, and calculates a signature value from the hash value using the newly generated secret key, thereby generating a self-signed certificate. The control unit <b>9</b> can prompt the user to input a password, and generate a certificate in the form of PKCS#12 using the password.
In the above-described exemplary embodiments, in the lifetime table illustrated in <figref idrefs="DRAWINGS">FIG. 5</figref>, “TO YEAR OF 2010” means “TO Dec. 31, 2010”. However, in other embodiments, the definition may be changed such that “TO YEAR OF 2010” means “TO Jan. 1, 2010”. Selecting either definition is within design consideration of the information processing apparatus <b>1</b>.
According to the exemplary embodiments of the present invention, it is possible to use a digital certificate more safely by taking into consideration both the validity expiration date of the certificate as well as the usable deadlines of the algorithm and the public key used in the certificate.
Aspects of the present invention can also be realized by a computer of a system or apparatus (or devices such as a CPU or MPU) that reads out and executes a program recorded on a memory device to perform the functions of the above-described embodiment (s), and by a method, the steps of which are performed by a computer of a system or apparatus by, for example, reading out and executing a program recorded on a memory device to perform the functions of the above-described embodiment (s). For this purpose, the program is provided to the computer for example via a network or from a recording medium of various types serving as the memory device (e.g., computer-readable storage medium).
While the present invention has been described with reference to exemplary embodiments, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. The scope of the following claims is to be accorded the broadest interpretation so as to encompass all modifications, equivalent structures, and functions.
This application claims priority from Japanese Patent Application No. 2011-048975 filed Mar. 7, 2011, which is hereby incorporated by reference herein in its entirety.
Contents4
13 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US11516021B2 | Cited by | United States of America | Search report |
| US9252958B1 | Cited by | United States of America | Search report |
| US2002032857A1 | Cites | United States of America | Search report |
| US2003018890A1 | Cites | United States of America | Search report |
| US2004123104A1 | Cites | United States of America | Search report |
| US2004250071A1 | Cites | United States of America | Search report |
| US2005207578A1 | Cites | United States of America | Search report |
| US2006047951A1 | Cites | United States of America | Search report |
| US2006059346A1 | Cites | United States of America | Search report |
| US2006129803A1 | Cites | United States of America | Search report |
| US2006236098A1 | Cites | United States of America | Search report |
| US2006236103A1 | Cites | United States of America | Search report |
| US2007234047A1 | Cites | United States of America | Search report |
| JP2007274060A | Cites | Japan | Applicant |
| US2008016337A1 | Cites | United States of America | Search report |
| US2008163338A1 | Cites | United States of America | Search report |
| US2008172559A1 | Cites | United States of America | Search report |
| US2009138720A1 | Cites | United States of America | Search report |
| US2009161866A1 | Cites | United States of America | Search report |
| US2009327706A1 | Cites | United States of America | Search report |
| US2009327731A1 | Cites | United States of America | Search report |
| US2010082975A1 | Cites | United States of America | Search report |
| US2010111307A1 | Cites | United States of America | Search report |
| US2011283108A1 | Cites | United States of America | Search report |
| US2012166796A1 | Cites | United States of America | Search report |
| US5915025A | Cites | United States of America | Search report |
| US7051206B1 | Cites | United States of America | Search report |
| US7426635B1 | Cites | United States of America | Search report |
| US8032744B2 | Cites | United States of America | Search report |
4 members in 2 offices
Priority claims4
| Document | Office | Kind | Date |
|---|---|---|---|
| 2011048975 | Japan | A | |
| 2011048975 | Japan | A | |
| 2011048975 | – | – | – |
| JP20110048975 | – | – | – |
Members4
| Document | Office | Kind | |
|---|---|---|---|
| US2012233458A1 | United States of America | A1 | |
| JP2012186695A | Japan | A | |
| US8924717B2This record | United States of America | B2 | |
| JP5822489B2 | Japan | B2 |
57 transactions on the USPTO file
Allowed after 1 non-final rejection, 1 final rejection and 1 RCE.
- Non-final rejections
- 1
- Final rejections
- 1
- RCEs
- 1
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Expire PatentEXP. | EXP. | |
| Maintenance Fee Reminder MailedREM. | REM. | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Email NotificationEML_NTR | EML_NTR | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Reasons for AllowanceEX.R | EX.R | |
| Interview Summary - Examiner Initiated - TelephonicEXET | EXET | |
| Interview Summary - Examiner InitiatedEXIE | EXIE | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Email NotificationEML_NTR | EML_NTR | |
| Mail Advisory Action (PTOL - 303)MCTAV | MCTAV | |
| Advisory Action (PTOL-303)CTAV | CTAV | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Final ActionA.NE | A.NE | |
| PILOT- Request for After Final Consideration ProgramRAFC | RAFC | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Email NotificationEML_NTR | EML_NTR | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Application Is Now CompleteCOMP | COMP | |
| Email NotificationEML_NTR | EML_NTR | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| Sent to Classification ContractorPGPC | PGPC | |
| Cleared by OIPE CSRL194 | L194 | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Request from applicant for the USPTO to retrieve the Priority DocumentPDREQUST | PDREQUST | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Initial Exam Team nnIEXX | IEXX |
7 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Lapsed due to failure to pay maintenance feeLapsedFP | FP | |
| Lapse for failure to pay maintenance feesLapsedPATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYLAPS | LAPS | |
| Information on status: patent discontinuationPATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362STCH | STCH | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| Fee payment procedureMAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYFEPP | FEPP | |
| AssignmentAS | AS |
Numbers
- Publication
- 08924717
- Publication, DOCDB
- 8924717
- Publication, EPODOC
- US8924717
- Application
- 13411426
- Application, DOCDB
- 201213411426
- Application, EPODOC
- US201213411426
Titles
- English
- Information processing apparatus, information processing method, and computer program
Patent term adjustment
- A delay
- +47 daysthe office missed an examination deadline
- Applicant delay
- −53 days
- Net adjustment
- 0 days
Classification
- CPC, 4
- H04L9/3268
- H04L9/0891
- H04L63/0442
- H04L63/0823
- IPC, 3
- H04L29 06
- H04L9 08
- H04L9 32
- USPC, 6
- 713158000
- 380030000
- 380044000
- 380282000
- 713156000
- 713175000