WO2008018457A1 - Contrôleur de mémoire, carte mémoire sécurisée et système de carte mémoire sécurisée - Google Patents

Contrôleur de mémoire, carte mémoire sécurisée et système de carte mémoire sécurisée Download PDF

Info

Publication number
WO2008018457A1
WO2008018457A1 PCT/JP2007/065443 JP2007065443W WO2008018457A1 WO 2008018457 A1 WO2008018457 A1 WO 2008018457A1 JP 2007065443 W JP2007065443 W JP 2007065443W WO 2008018457 A1 WO2008018457 A1 WO 2008018457A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
encrypted data
signature
memory card
card
Prior art date
Application number
PCT/JP2007/065443
Other languages
English (en)
French (fr)
Inventor
Yasuo Takeuchi
Yoshihiko Takagi
Original Assignee
Panasonic Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corporation filed Critical Panasonic Corporation
Priority to US12/088,591 priority Critical patent/US20100153746A1/en
Priority to JP2008528829A priority patent/JPWO2008018457A1/ja
Publication of WO2008018457A1 publication Critical patent/WO2008018457A1/ja

Links

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/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/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • 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
    • 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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/34Encoding or coding, e.g. Huffman coding or error correction

Definitions

  • Memory controller secure memory card, and secure memory card system
  • the present invention relates to a memory controller that controls a nonvolatile memory, a secure memory card such as a semiconductor memory card including a nonvolatile memory, and a secure memory card system that includes the secure memory card and an access device.
  • a memory controller that controls a nonvolatile memory
  • a secure memory card such as a semiconductor memory card including a nonvolatile memory
  • a secure memory card system that includes the secure memory card and an access device.
  • the encrypted data distributed to the user here includes a plurality of encrypted information parts, a list of encrypted information parts, and a signature to the list.
  • Patent Document 1 Japanese Patent No. 3130267
  • the data that is not the signature target is obtained by combining the data to be signed, the signature, and other data that is not the signature target together into a data structure that is encrypted.
  • the memory controller includes a communication unit that receives encrypted data and signature target data, a decryption unit that performs a decryption process on the data, and a decryption unit that decrypts the data.
  • a verification unit that verifies the signature attached to the encrypted data and the signature target data, a determination unit that determines the validity of the signature target data based on a verification result of the verification unit;
  • Storage means for storing data other than the signature of the encrypted data including the signature as valid data when the determination means determines that the data to be signed is valid. It is a memory controller characterized by this.
  • the secure memory card includes a nonvolatile memory, the memory controller that reads and writes data from and to the nonvolatile memory, and a decryption unit that performs the symbol processing.
  • the secure memory card is attached to the encrypted data decrypted by the communication means for receiving the encrypted data and the signature target data, the decryption means for performing decryption processing on the data, and the decryption means.
  • a verification unit that verifies the signature and the signature target data; a determination unit that determines validity of the signature target data based on a verification result of the verification unit; and the signature target data by the determination unit
  • Storage means for storing the remaining data of the encrypted data including the signature as legitimate data when it is determined that
  • the secure memory card system includes a secure memory card and an access device, and the secure memory card is a communication unit that receives encrypted data and signature target data, and decrypts the data.
  • a signature decrypting means for performing processing, a signature means for verifying the signature attached to the encrypted data decrypted by the signature decrypting means, and the signature target data; Data other than the signature of the encrypted data that includes the signature when the signature target data is judged to be valid by the judging means for judging the validity of the target data and the judgment unit.
  • Storage means for storing the data as legitimate data
  • the access device comprises: communication means for communicating with the secure memory card; and Storage means for storing data to be transmitted to the cure memory card, and protocol conversion means for reading data to be transmitted to the secure memory card from the storage means and converting the data to data that can be received by the secure memory card, A result notified from the secure memory card is received, and communication with the secure memory card is controlled based on the result.
  • a secure memory card system including a server (300), an external device (200), and a card (100) as shown in FIG. 1 will be described.
  • Figure 2 shows the configuration of the card (100).
  • Figure 3 shows the detailed configuration of the secure memory card system shown in Figure 1. This will be described below with reference to FIG.
  • the server (300) includes a communication unit (3001) that communicates with the outside, a storage control unit (3002), and a storage unit (3003).
  • This storage means (3003) holds application data, application codes, corresponding card information, and other information related to external terminals.
  • an application is a combination of application code and application data.
  • Application code refers to objects such as executable programs and code.
  • Application data refers to the data that these codes refer to, and is prepared for the purpose of controlling the operation and behavior of the application and giving initial settings.
  • the application code and the application data may be included in a part of the application code.
  • the storage control means (3002) can receive a request from the outside via the communication means (3001), and can selectively read data from the storage means (3003) in response to the request.
  • the external device (200) includes a communication means (2001), a protocol conversion means (2002), and a temporary storage means (2003).
  • the communication means (2001) receives data and codes from the server (300).
  • the protocol conversion means (2002) converts this data or code into a command that can be transmitted to the card (100).
  • the communication means (2001) passes the command converted by the protocol conversion means (2002) to the card (100). Note that if the server (300) power also receives data conforming to the card command specifications in advance, the external device (200) transmits the received data to the card (100) as it is.
  • the card (100) includes a communication means (1001), a command interpretation means (1002), a numerical value calculation means (1 004), a storage control means (1003), a storage means (1005), a trap decoding means (1006), It has collation means (1007), hash generation means (1009), and judgment means (1008).
  • the communication means (1001) receives data and commands from the external device (200).
  • the command interpretation means (1002) interprets the received command using the communication means (1001), and passes the data to the numerical value calculation means (1004).
  • the numerical calculation means (1004) performs data arrangement, data conversion, and data operation according to the result of command interpretation by the command interpretation means (1002).
  • the numerical calculation means (1004) includes a decoding means (1006) that performs decoding processing as necessary, a matching means (1007) that compares and compares data, and a hash that generates a hash value of data.
  • Cryptographic processing is performed using the generation means (1009) and the storage control means (1003) that controls the storage means (1005).
  • the storage means (1005) is a part that holds data in the card (100), and is accessed via the storage control means (1003).
  • the verification means (1007) The signature target data is compared with the signature stored in the encrypted data decrypted by the decryption means (1006).
  • the judging means (1008) judges the validity of the data based on the collation result in the collating means (1007).
  • a player (P1) that manufactures and issues a card (100) (hereinafter referred to as a card manufacturer), a player that develops an application (P2) (hereinafter referred to as an application developer) ), Operating the player (P3) (hereinafter referred to as the service provider), the player operating the server (P4) (hereinafter referred to as the server operator), the external device (200), There are five players (P5) (hereinafter referred to as the user) who throws a trigger that requests the server for data on the card. It should be noted that since the card seller is in operation as a player (P6) who sells cards to the user (P6), it is not directly related to the present embodiment, so the description is omitted.
  • the other players (P1 to P4) are not particularly conscious when viewed from the user (P5), but they are considered separately on the assumption that the processing contents to be implemented are different on the system.
  • the card manufacturer (P1) is responsible for everything from card manufacture to setting up the necessary data for the card and activating the card that can be used in the market.
  • the application developer (P2) Lending and signing application code.
  • the application developer (P2) can develop an application that can be distributed universally and can provide application code to multiple service providers (P3).
  • the service provider (P3) can customize the application by including service-specific information such as identification information and key information in the application code received from the application developer (P2). Assume that the service provider (P3) operates the actual service by customizing the application mentioned above.
  • the server operator (P4) operates a Web server that outputs data in response to a request from the external device (200).
  • the player model described above is only an example, and this patent also describes when one player serves as several players or when the processing of one player is further subdivided. Included in the category. For example, a card manufacturer (P1) In some cases, another player may only manufacture the card, validate the card, lend the development environment, and sign the application code. In addition, it can be assumed that a card seller who omits the explanation above activates the card at the store, or that the card manufacturer receives the data created by the service provider and sets it in the card. It is also possible that the service provider (P3) or card manufacturer (P1) also serves as the application developer (P2).
  • the card manufacturer (P1) first generates the RS A key pair (manufacturer key pair M01, M02) of the card manufacturer in advance (S01). Then, among the generated keys, the manufacturer public key (M01) is set (stored) in the card (100) (S02). The manufacturer private key (M02), which is symmetric with the manufacturer public key (M01), is used when signing the application created by the application developer (P2). Next, the card manufacturer (P1) generates an RSA key pair (card key pair M03, M04) to be stored in the card (100) to be manufactured (S03). Of the generated keys, the card public key (M03) is distributed to the application developer (P2) and service provider (P3) (S04).
  • the card secret key (M04) is stored in the card (100) (S05).
  • the manufacturer key (M01, M02) and the card key (M03, M04) generated by the card manufacturer (P1) may be the RSA key described above, the elliptical code method, the DH key distribution method, It may be one using another public key cryptosystem such as the El Gamaru code system.
  • the RS A key length is not limited to 1024bit or 2048bit, but can be freely changed according to the card operation security policy!
  • the application code is signed by an application developer (P2), that is, by sending the application code to the card manufacturer (P1) (S06).
  • the card manufacturer (P1) confirms the operation details of the submitted application, and if there is no problem, creates hash data of the submitted application code.
  • the card manufacturer (P1) generates a signature (A 05) using the manufacturer private key (M02) for the created hash data (S07).
  • the signature (A05) generated here is sent to the application developer (P2) (S08).
  • the application developer (P2) corresponds to the card (100) in advance from the card manufacturer (P1). Development environment and card public key (M03). Using the development environment, the application developer (P2) develops application code corresponding to the card (100) (S09). This is the application code completed in step S09, and the application code (A02) sent to the card manufacturer (P1) in step S06.
  • the application developer (P2) When transferring the created application code to the service provider (P3), the application developer (P2) encrypts and passes the application code.
  • the reason for encryption is that only the application developer (P2) can develop application code using the development environment distributed by the card manufacturer (P1), and the service provider without encrypting the application code. If it is passed to (P3), the service provider (P3) can view the contents of the application code and leak confidential information. If the secret information is leaked when multiple players share the secret information by passing the code without encryption, it becomes ambiguous which responsibility occurred! / Can't be separated! /
  • the application developer (P2) 1S encrypts the application code (A02) with the encryption key (A01) (hereinafter referred to as the application code number key) created independently.
  • the application code number key created independently.
  • the application developer (P2) encrypts the application code encryption key (A01) with the pre-distributed force public key (M03), and generates an encrypted application code encryption key (A04) ( S ll).
  • the application developer (P2) then sends the encrypted application code (A03), the encrypted application code key (A 04), and the application code signature (P3) to the service provider (P3).
  • A05) is transferred (S12).
  • the service provider (P3) cannot decrypt either of the received signature data (A03, A04).
  • the service provider (P3) creates application data (H02) (hereinafter referred to as individual initial data) to individually customize the application code received from the application developer (P2) (S20). For all the data to be created, the ability to change data individually for each application and whether to share certain data are due to the service operation policy and are not considered.
  • the service provider (P3) creates individual personal data (H02)
  • the application developer (P2) It is necessary to receive the external specifications of Chillon.
  • the first lOObyte (logical address 0-99) is identification information
  • the next 10 OObyte (logical address 100-1099) is self-certificate data
  • the next 1000 bytes (logical address 1100-2099) (also known as the certificate certificate data
  • the next 3000 bytes (logical address 2100-5099) will be external specifications when referenced from the application as file system information. In this field, length information is set, and how much of that area should be referenced by the application as valid data.
  • the service provider (P3) like the application developer (P2), uses the created individual data (H02) as a key (H01) (hereinafter referred to as individual Initial data (referred to as an encryption key) is encrypted, and encrypted individual initial data (H03) is created (S21).
  • the service provider (P3) encrypts the individual initial data encryption key (H01) with the card public key (M03) distributed in advance by the card manufacturer (P1), and encrypts the individual initial data.
  • An encryption key (H04) is created (S22).
  • the service provider (P3) generates a hash (H05) for the created individual initial data (H02) (S23).
  • the service provider (P3) generates management data (H07) from the generated hash (H05), the signature (A05) received from the application developer (P2), and the common data (H06).
  • the common data (H06) is created by the service provider (P3) (S24), identification information for identifying the application, application management information such as copyright information, service provider information, etc. It is data including.
  • Figure 9 shows an example format of management data (H07).
  • the service provider (P3) encrypts the management data (H07) with an independently generated key (hereinafter referred to as the management data number key (H08)) and encrypts the management data (H09). Is created (S 25). Subsequently, the service provider (P3) encrypts the management data encryption key (H08) using the card public key (M03) distributed in advance by the card manufacturer (P1). A management data encryption key (H10) is created (S26).
  • the service provider (P3) is encrypted with the encrypted application code (A03) received from the application provider (P2) and the encrypted application code key (A04).
  • Distribute to (P4) S27).
  • the server operator (P4) cannot decrypt all received signature data (A03, A04, H03, H04, H09, H10).
  • the key code algorithm used for the three keys of the application code encryption key (A01), the individual initial data encryption key (H01), and the management data key (H08) is related to the key decryption of data.
  • the power using the AES of the common key number system is not limited to this, and a known common key number system such as DES, T-DES, MISTY, Camellia, RC6 may be used. If the card supports the ⁇ number system, it is possible to support the common key encryption system that will be announced in the future.
  • the server operator (P4) registers the data received in S27 of FIG. 6 in the storage means (3003) of the server (300) (S30).
  • the server (300) needs to know which card and version corresponds to the service provider (P3) power and the data power received.
  • An example of information indicating the card type and version information is card identification information, which is acquired by the external device (200) from the card (100) and sent to the server (300). Information sent to the server when requesting data.
  • the server (300) needs to know the identification information in advance in order to transmit a plurality of encoded data corresponding to the identification information to the external device. These data are information notified separately from the service provider (P3) or application developer (P2).
  • FIG. 10 shows an example of version information output by the card and a data management format on the server corresponding to the version information.
  • a command is specified for the card to output the above-mentioned identification information (card ID in Fig. 10), and the card identification information is notified to the external device by the response data corresponding to the command. Commands are exchanged during negotiations defined by the application and communication layer installed on the card. If only one version of the card is used, there is no need to exchange the card type and version information in advance.
  • the order in which the server (300) transmits data in response to a data request from the external device (200) is as follows: management data encryption key, management data, individual initial data encryption key, individual initial data, application code The order of the issue key and application code. Note that the above order is suitable for sequential processing without temporarily storing data in the card as much as possible, and is limited to this when there is sufficient temporary storage area in the card. It is not a thing.
  • FIG. 12 shows a communication flow between the card (100) and the external device (200).
  • the card (100) and the external device (200).
  • explanation is also made using Fig. 7-a.
  • the communication means (1001) receives the encrypted management data encryption key (H10) via the external device (200) (C01) and passes it to the command interpretation means (1002).
  • the command interpretation means (1002) checks the command assigned to the encrypted management data encryption key (H10), and shows what the command indicates and what purpose it is used for. Interpret.
  • the contents of the command describe the following operations assuming that the application is installed in the card (100).
  • the command interpreter (1002) notifies the numerical calculator (1004) that the application is installed, and passes the received data.
  • the numerical calculation means (1004) acquires the card RSA private key (M04) held by the storage means (1005) via the storage control means (1003), and decrypts the received data by the decryption means (1006) (S31 ). That is, in S31, the card (100) uses the card secret key (M04) to decrypt the encrypted management data encryption key (H10), and obtains the management data number key (H08).
  • the numerical calculation means (1004) holds the decrypted management data encryption key (H08) in the storage means (1005) via the storage control means (1003). Above If the processing can be performed without any problem, the card (100) outputs a code having normal termination and meaning to the external device (200) and the server (300) (C02).
  • the communication means (1001) receives the encrypted management data (H09) via the external device (C03).
  • the numerical calculation means (1004) uses the management data encryption key (H08) to decrypt the management data (H09) encrypted by the decryption means (1006) and obtain the management data (H07). (S32). Since the management data (H07) obtained by the decryption conforms to a predetermined format (FIG. 9), the numerical value calculation means (1004) reads the data according to the format.
  • the information for identifying the application is used to check whether there is an application that already has the same identification information in the force field (S33). That is, the card (100) acquires the common data (H06) from the management data (H07) and confirms the contents in S33.
  • the card (100) stops processing if there is a problem, and continues if there is no problem. Specifically, if the same identification information already exists, that is, if there is a problem as a result of obtaining the common data (H06) from the management data (H07) and checking the contents, the numerical calculation means (1004) , Cancel (stop) the installation process.
  • the numerical calculation means (1004) outputs the result to the external device (200) (C04)
  • the numerical calculation means (1004) outputs an error code indicating that the identification information is not duplicated normally. If there is no duplicate! /,
  • the common data (H06) is temporarily stored in the storage means (1005) via the storage control means (1003) (S34). In the case of an abnormal operation that is not limited to the above error, the numerical calculation means (1004) outputs a code indicating that it has been exchanged with the outside in advance.
  • the communication means (1001) receives the encoded individual initial data encryption key (H04) via the external device (200) (C05) and passes it to the numerical value calculation means (1004).
  • the numerical calculation means (1004) uses the card RSA private key (M04) held in the storage means (1005) to decrypt the encrypted individual initial data encryption key (H04) with the ⁇ decryption means (1006), The individual initial data encryption key (H01) is acquired (S35).
  • the card (100) holds the decrypted individual initial data encryption key (H01) in the storage means (1005).
  • the communication means (1001) receives the encoded individual initial data (H03) from the server (300) via the external device (200) (C07). .
  • the communication means (1001) passes the data to the numerical calculation means (1004).
  • the numerical calculation means (1004) uses the individual initial data key (H03) to decrypt the encrypted individual initial data (H03) by the key decryption means (1006), and the individual initial data.
  • Data (H02) is acquired (S36).
  • the contents of the individual initial data (H02) are interpreted by the application code (AO 2 ) described later, and need not be interpreted by the card (100).
  • the numerical calculation means (1004) generates the hash of the decrypted individual initial data (H02) by the hash generation means (1009) (S37), and is the same as the hash (H05) of the individual initial data included in the management data Is confirmed using the collating means (1007) (S3 8). If they are the same, the numerical calculation means (1004) temporarily stores the individual initial data (H02) in the storage means (1005) via the storage control means (1003) (S39). If they are different, the numerical value calculation means (1004) stops the installation process (S40). When the card (100) outputs the result to the external device (200) and the server (300) (C08), the card (100) outputs an error code indicating that the hash is different from the normal end.
  • the communication means (1001) receives the encrypted application code encryption key (A04) from the server (300) via the external device (200) (C09), and the numerical calculation means To (1004).
  • the numerical calculation means (1004) uses the card RSA private key (M04) held in the storage means (1005) to decrypt it by the ⁇ decryption means (10 06) to obtain the application code ⁇ key (A01) ( S41).
  • the card (100) holds the decrypted application code encryption key (A01) in the storage means (1005).
  • the communication means (1001) receives the encrypted application code (A03) from the server (300) via the external device (200) (Cl 1).
  • the communication means (1001) passes the data to the numerical calculation means (1004).
  • the numerical calculation means (1004) uses the above application code key (A01) to decrypt the decrypted application code (A03) by the decryption means (1006), and the application code (A02) Obtain (S42).
  • the application code (A02) is preliminarily verified by the manufacturer! /, And! /, So it is not necessary to verify the operation of the application code with the card (100). Les.
  • the numerical calculation means (1004) temporarily stores the application code (A02) in the storage means (1005) via the storage control means (1003) (S43). Card is decrypted application A hash of the Yon code (A02) is generated by the hash generation means (1009) (S44).
  • the numerical calculation means (1004) uses the manufacturer's public key (M01) to decrypt the signature (A05) by the decryption means (1006), obtains a hash, and compares it with the hash of the generated application code. Collation is performed by the combining means (1007) (S45). If they are the same, the numerical calculation means (1004) stores the application code (A02) in the storage means (1005). If they are different, the numerical calculation means (1004) stops the installation process (S46). When the numerical calculation means (1004) outputs the result to the external device (200) and the server (300) (C10), it outputs an error code indicating that the signature is different from the normal end.
  • the numerical calculation means (1004) confirms that all data is normal, notifies the judgment means (1008), and ends the installation process.
  • the determination means (1008) receives a notification that the signature is valid, determines that the hash of the individual initial data encrypted together with the signature, the common data is valid, and the common data related to the application, The individual initial data and application code are changed to be operable in the card.
  • the state of the application is managed by the storage means (1006), and in response to a request from the external device (200), the numerical calculation means (1004) stores the storage means via the storage control means (1003).
  • (1005) confirms the state, and if it is shown that it can operate as an application, the storage means (1005) calls the application code and uses the command sent from the command interpretation means (1002) as the application code. Will work to pass.
  • the final trust point is used in the signature verification of the application code, and when the signature verification is completed normally, the individual initial data stored in the encrypted data is stored together with the signature. Trust the hash and trust the individual initial data that matches the hash.
  • the signature data is given by the manufacturer, and the manufacturer's private key used to generate the signature is not stored on the card and does not enter the market, so the risk of leakage is low.
  • the application developer (P2) and service provider (P3) generate their own keys, if one of them leaks the key, there is no worry that the other will be affected.
  • the method of distributing the uniquely generated key uses a public key cryptosystem, the key cannot be decrypted between application developers or service providers, and the card secret key is owned. Only the card to be decrypted The ability to fi.
  • management data must always exist to store individual initial data and data related to application code. Individual initial data or only application code may be updated.
  • the signature data (A05) is not included when updating only the individual initial data, and the card is trusted. Sex cannot be established. Therefore, in preparation for updating, the initial data encryption key is saved together with the initial installation when it is first installed. Sometimes, rather than decrypting the key from the key data encrypted with the public key, it is stored in advance in the card and decrypted using the individual initial data encryption key.
  • the individual initial data encryption key that only the service provider can know can be used, and the fact that the hash of the decrypted data matches the hash sent in the management data means that the first service provider installed (P3) It can be seen that it is a proxy service provider with information equivalent to that.
  • the application code can be updated only for the application developer (P2) when it is first installed. Since the application code has a signature (A05), the application code itself cannot be tampered with. However, when it is updated, it cannot be found to be related to the individual initial data (H02), so it has already been installed on the card. It is possible to refer to individual initial data of other applications by replacing only the application code part with application code having other individual initial data already completed. Therefore, it is important to limit what is updated by the above measures.
  • FIG. 14 A communication flow between the card (100) and the external device (200) is shown in FIG. 14, and a processing flow performed by each player will be described with reference to FIGS. 15A and 15B.
  • the application developer develops the application code again, the application code is delivered to the server operator through the service provider, and the encrypted data is processed by the server operator to register! / Compared to the data preparation in, the service provider does not include the part that does not generate individual initial data and the hash of the individual initial data in the management data! / Will be omitted.
  • the server operator (P4) sends the encrypted application code (A03), encrypted management data (H09), encrypted management data encryption key (H10) delivered from the service provider (P3).
  • the server (300) distributes the application corresponding to the information.
  • the information transmitted from the external device (200) includes the identification information of the application, the version information of the current application stored in the card, and the card identification information.
  • the communication means (1001) receives the encrypted management data encryption key (H10) from the server (300) via the external device (200) (Z01) To the command interpretation means (1002).
  • the command interpretation means (1002) checks the command given to the data and interprets what the command indicates and what purpose it is used for.
  • the content of the command describes the following operations assuming the update process of the application code.
  • the command interpretation means (1002) confirms whether it is an update process, and the installation process firstly checks the status of the application corresponding to the application identifier.
  • the card (100) automatically recognizes the next process as an update process. In the present embodiment, a case will be described in which interpretation by a command is performed and processing contents are determined.
  • the command interpreting means (1002) notifies the numerical value calculating means (1004) that the application code is being updated, and passes the received data.
  • the numerical calculation means (1004) acquires the card RS A private key (M04) held by the storage means (1005) via the storage control means (1003), and decrypts the received data by the decryption means (1006) for management. Get the data encryption key (H08) (S51).
  • the numerical calculation means (1004) holds the decrypted management data encryption key (H08) in the storage means (1005) via the storage control means (1003) (S51). If the above processing can be performed without any problem, a code having the meaning of normal termination is output to the external device (200) and the server (300) (Z02).
  • the communication means (1001) receives the encrypted management data (H09) from the server (300) via the external device (200) (Z03).
  • the numerical calculation means (1004) uses the management data key (H08) to decrypt the management data (H09) encrypted by the decryption means (1006), and obtains the management data (H07) Is acquired (S52). Decrypted management data (H07) Is in accordance with a pre-defined format (FIG. 9), the number calculation means (1004) reads the data in accordance with the format. In the case of updating, it is sufficient that the information necessary for updating is included, rather than all the data being filled.
  • the purge information of the individual initial data, the size of the individual initial data, and the hash of the individual initial data may not be described.
  • Yong code version information, application code size, and application code signature (A05) are required.
  • the information for identifying the application is used to check whether the updated update is in the card (100) (S53). In addition, it is confirmed from the status of the application held in the storage means (1005) whether the update target application holds the updatable status! If the same identification information does not exist or is not updatable, the numerical calculation means (1004) stops the installation process.
  • the numerical value calculation means (1004) When the numerical value calculation means (1004) outputs the result to the external device (200) and the server (300) (Z04), it outputs an error code indicating that there is no target application that does not end normally. If there is a target application, the card (100) temporarily stores the common data in the storage means (1005) via the storage control means (1003) (S54). In the case of an abnormal operation that is not limited to the above-mentioned errors, a code indicating that it has been exchanged with the outside in advance is output.
  • the communication means (1001) receives the encrypted application code (A03) from the server (300) via the external device (200) (Z051).
  • the communication means (1001) passes the data to the numerical calculation means (1004).
  • the numerical calculation means (1004) stores the application code encryption key (A01) obtained by decrypting the data at the time of initial data storage from the update target application identifier and application code update information. ) (S55).
  • the decrypted application code (A03) is decrypted by the key decryption means (1006) (S56).
  • Number calculation means (1004) The prescription code is temporarily stored in the storage means (1005) via the storage control means (1003) (S57).
  • the card (100) generates a hash of the decrypted application code (A02) by the hash generation means (1009) (S58).
  • the numerical calculation means (1004) uses the manufacturer's public key (M01) to decrypt the signature (A05) with the decryption means (1006) to obtain the hash, and the hash and collation means of the application code generated above Collation is performed at (1007) (S59).
  • the numerical calculation means (1004) stores the application code (A02) in the storage means (1005). If they are different, the numerical calculation means (1004) stops the installation process (S60). When the numerical calculation means (1004) outputs the result to the external device (200) and the server (300) (Z06), it outputs an error code indicating that the signature is different from the normal end. If they are the same, the numerical calculation means (1004) confirms that all data is normal, notifies the judgment means (1008), and ends the installation process.
  • the judging means (100 8) receives notification that the signature is valid, judges that the common data encrypted together with the signature is valid, and stores the common data and application code related to the application in the card. Change to an operable state.
  • the card When the card supports a plurality of communication methods, there is a case where it is desired to switch the method during the installation depending on the processing content. If the data on the server is encrypted, the server and external devices cannot see the contents and cannot know when to switch. In addition, even if the server has the timing to switch in advance as separate plaintext information, if switching is specified via an external device, a card that cannot authenticate the external device cannot trust the command. There is. Therefore, a method is provided for dynamically switching between multiple communication methods of the card appropriately using the download and installation methods described above.
  • the management data (H07) in which the card (100) interprets the contents and stores the data is low-speed communication.
  • the ability to write data using a channel, individual initial data (H02) that the card does not interpret the contents, and application code (A02) can write data using a high-speed communication channel.
  • individual initial data (H02) and application code (AO 2) have a large capacity, the effect is significant and the installation time can be shortened.
  • the power that makes it uncertain whether the data has been sent from a normal external device (200) is that the signature data (A05) and the hash (H05) This is a problem because it can guarantee the relationship between the two channels.
  • Fig. 13 shows the communication flow between the card (100) and external device (200) when the card holds a two-channel communication path, using Fig. 16-a, Fig. 16-b, and Fig. 16-c. The processing flow performed by each player will be described.
  • the communication means (1001) receives the encrypted management data encryption key (H10) from the server (300) via the external device (200) (C01), and receives the command interpretation means (1002).
  • the command interpretation means (1002) checks the command given to the data, and interprets what the command indicates and what purpose it is used for. In the present embodiment, the contents of the command describe the following operations assuming that the application is installed on the card.
  • the command interpretation means (1002) notifies the numerical calculation means (1004) that the application is installed, and passes the received data.
  • the numerical calculation means (1004) acquires the card RSA private key (M04) held by the storage means (1005) via the storage control means (1003), decrypts the received data by the ⁇ decryption means (1006), and manages data An encryption key (H08) is acquired (S31).
  • the numerical value calculation means (1004) holds the decrypted management data encryption key (H08) in the storage means (1005) via the storage control means (1003). If the above processing can be performed without any problem, the card (100) outputs a code having a normal end and! /, Meaning! / To the external device (200) and the server (300) ( C02).
  • the communication means (1001) receives the encrypted management data (H09) via the external device (200) (C03).
  • the numerical calculation means (1004) uses the management data encryption key (H08) to decrypt the management data (H09) encrypted by the decryption means (1006) and obtain the management data (H07). (S32).
  • the decrypted management data (H07) is defined in advance. Therefore, the numerical value calculation means (1004) reads the data according to the format. The information for identifying the application is used to check whether there is an application that already has the same identification information in the card (100) (S33). If the same identification information already exists, the numerical calculation means (1004) stops the installation process.
  • the numerical calculation means (1004) When the numerical calculation means (1004) outputs the result to the external device (200) and the server (300) (C04), the numerical calculation means (1004) outputs an error code indicating that the identification information is not duplicated normally. If not duplicated, the common data is temporarily stored in the storage means (1005) via the storage control means (1003) (S34). In addition, if the operation is not limited to the above-mentioned errors, a code indicating that it has been exchanged with the outside is output.
  • the communication means (1001) receives the encrypted individual initial data encryption key (H04) via the external device (200) (C05) and passes it to the numerical value calculation means (1004).
  • the numerical calculation means (1004) uses the card RSA private key (M04) held in the storage means (1005), decrypts it by the decryption means (1006), and obtains the individual initial data encryption key (H01) (S35). ).
  • the decrypted individual initial data encryption key (H01) is held in the storage means (1005) in the card.
  • the numerical calculation means (1004) decides to receive the next individual initial data using the high-speed communication path that is not connected to the low-speed communication path, acquires the address information for expanding the data from the storage control means (1003), and controls the area.
  • the means (1010) is notified (first stage of S80).
  • the numerical calculation means (1004) notifies the decrypted individual data encryption key (H01) to the area control means (1010).
  • the area control means (1010) holds the received address information and generates an area address and an area size (hereinafter referred to as area information by combining the above two pieces of information) for release to the outside corresponding to the address information. (S80 latter stage), it transmits to numerical calculation means (1004).
  • the numerical calculation means (1004) outputs the area information to the external device (200) (D01).
  • the area control means (1010) sets the received individual initial data encryption key (H01) as a decryption key.
  • the external device (200) uses the high-speed communication path to notify the card (100) of the area address to be written and the area size to be written (write size) ( Hereinafter, the area information setting command is transmitted (D02).
  • the area size is notified Even if it is smaller than the size, it will not work.
  • the communication means (1001) receives the area information setting command and transmits the data to the command interpretation means (100 2 ).
  • the command interpreting means (1002) interprets the area information setting command and notifies the area control means (1010) of the area address and the write size.
  • the area control means (1010) confirms the area address and sets the write size (S81). An error occurs if the address is different or if the size is larger than the size notified in advance.
  • the communication means (1001) receives the encrypted individual initial data (H03) transmitted using the high-speed communication path (D03).
  • the communication means (1001) passes the data to the command interpretation means (1002).
  • the command interpreter (1002) transmits the received data to the area controller (1010).
  • the area control means (1010) uses the individual initial data encryption key (H01) to decrypt the encrypted individual initial data (H03) with the decryption means (1006). Data (H03) is acquired (S82). Then, the area control means (1010) temporarily stores the decoded individual initial data (H02) in the storage means (1005) (S84). The area control means (1010) generates the hash of the individual initial data (H02) by the hash generation means (1 009) (S83).
  • the communication means (1001) receives the data (A04) obtained by encrypting the application encryption key via the external device (200) (D04), and passes it to the numerical value calculation means (1004).
  • the numerical calculation means (1004) acquires the hash generated by the area control means (1010) and checks whether the hash is the same as the hash (H05) of the individual initial data included in the management data (10 07). ) To confirm (S85).
  • the process moves to FIG. 16-c. If the hash generated by the area control means (1010) and the hash (H05) of the individual initial data included in the management data are different, the numerical value calculation means (1004) stops the installation process. When the card (100) outputs the result to the external device (200) and the server (300) (D05), it outputs an error code indicating that the hash is different from the normal end (S86).
  • the numerical calculation means (1004) uses the card RSA private key (M04) held in the storage means (100 5) to decrypt the application key number (A04) encrypted by the key decryption means (1006). Application code ⁇ key (A01) Is acquired (S87). The numerical calculation means (1004) determines that the next application code is received using the high-speed communication path, not the low-speed communication path, and the storage control means (100
  • the address information for expanding the code is obtained from 3) and notified to the area control means (1010).
  • the numerical value calculation means (1004) notifies the decrypted application code encryption key (A01) to the area control means (1010).
  • the area control means (1010) holds the received address information, and generates an area address and an area size (hereinafter referred to as area information by combining the two pieces of information) to be disclosed to the outside corresponding to the address information. Then, it is transmitted to the numerical calculation means (1004) (S88).
  • the numerical calculation means (1004) outputs the area information to the external device (200) (D05).
  • the area control means (1010) sets the received application code encryption key (A01) as a decryption key.
  • the external device (200) uses a high-speed communication path to notify the card of the area address to be written and the area size (write size) to be written (hereinafter referred to as an area).
  • Send information setting command) (D06).
  • the area size may be smaller than the notified size.
  • the communication means (1001) receives the area information setting command and transmits the data to the command interpretation means (1002).
  • the command interpretation means (1002) interprets the area information setting command and notifies the area control means (1010) of the area address and the size to be written.
  • the area control means (1010) confirms the area address and sets the write size (S89). An error occurs if the address is different or if the size is larger than the size notified beforehand.
  • the communication means (1001) receives the encoded application code (A03) transmitted from the server (300) using the high-speed communication path via the external device (200) (D07). .
  • the communication means (1001) passes the data to the command interpretation means (1002).
  • the command interpretation unit (1002) transmits the received data to the area control unit (1010).
  • the area control means (1010) uses the application encryption key (AO 1) to decrypt the encrypted individual initial data with the decryption means (1006) to obtain the application code (A02). (S 90).
  • the area control means (1010) generates the hash of the application code (A 02) by the hash generation means (1009) (S91).
  • the communication means (1001) receives a command for requesting collation from the external device (200).
  • the numerical calculation means (1004) obtains the hash generated by the area control means (1010) and uses the manufacturer's public key (M01) to decrypt the signature (A05) contained in the management data into the decryption means (1006). ) To obtain a hash, and collate with the obtained hash of the application code by the collation means (1007) (S93). If they are different, the numerical calculation means (1004) stops the installation process. When the numerical calculation means (1004) outputs the result to the external device (200) and the server (300) (D09), it outputs an error code indicating that the hash is different from the normal end.
  • the numerical value calculation means (1004) notifies the judgment means (1008) that the signature is normal, and ends the installation process (S94).
  • the determination means (1008) receives the notification that the signature is valid, determines that the hash of the individual initial data encrypted together with the signature and the common data are valid, and the common data related to the application, The individual initial data and application code are changed so that they can be operated in the card.
  • the numerical calculation means (1 004) outputs a code indicating that the operation has been normally completed to the external device (200) and the server (300) (D09).
  • the external device (200) uses the area information (D01, D05) given to the output data from the card (100) to determine the timing of using the high-speed communication path, the write target area, The elephant area size can be known.
  • the external device (200) transmits the received area information to the card (100), and then conveys the area information and size to be written using the high-speed communication path to the card (100) (D02, D06).
  • data (individual initial data, application code) is written to the card (100) using the high-speed communication path (D03, D07).
  • the present invention information that the external device (200) cannot know only by receiving encrypted data from the server (300), that is, the card (100) has a plurality of communication paths.
  • the server (300) that is, the card (100) has a plurality of communication paths.
  • the external device (200) can also determine the number of communication channels from the identification information of the card (100), and the timing is the encrypted data transmitted to the card (100). Can be switched if the external device (200) knows the type in advance. However, it is impossible to know that the area where data is to be written! /, And that information is not obtained from the card (100)! /. For this reason, it is efficient to perform the switching operation when the area information is acquired without using another determination method.
  • the application developer (P2) applies for a signature to the card manufacturer (P1)
  • the application developer (P2) is confirmed physically, visually, and socially. Is outside the system regulations and may use the identity verification method implemented by public institutions, financial institutions, etc.
  • a general distribution method can be adopted. I will not mention it.
  • using the above development environment it is possible to apply for a signature, build a cryptographic session between the development environment in the application developer and the manufacturer, and deliver the signature. It cannot be realized if it cannot be done correctly and safely.
  • the player the ability to divide the application developer, service provider, and server operator into three parties.
  • the data to be used in common is constructed. It is not limited to the form of building and distributing it.
  • the purpose of this patent is to install the credit including the data associated with it in the signature of the application that the final credit points are given by the manufacturer, and the processing contents changed by the above three parties Therefore, the present invention is not affected at all.
  • a common card RSA private key (M04) is set for all cards.
  • an individual card RSA private key (M04) is assigned to all the cards, which is not limited to this. There is no problem even if it is set. In that case, hold the public key certificate corresponding to the card RSA private key (M04) in the card and send the public key certificate to the server. After verifying the validity of the certificate, the server side can encrypt data (individual initial data, application code) using the public key included in the certificate. It is possible to send data.
  • the card manufacturer's (P1) public key (M01) is set on the card.
  • the card manufacturer is not limited to this, and the authority of signature processing is transferred from the card manufacturer. If you are a business, you can sign on your behalf. In that case, the card manufacturer The certificate is issued using the card manufacturer's private key as the public key pair of the business operator to whom authority is delegated. The delegated business operator signs the application code with his private key. The delegated business operator sends the certificate issued by the manufacturer to the card. The card verifies the received certificate using the card manufacturer's public key (M01) in the card, and if the card is determined to be valid, the card uses the public key included in the certificate. Used as an application signature verification key. When the encrypted data including the signature generated by the delegated business operator is sent to the card, the card uses the signature verification key, so that the validity of the signature generated by the delegated business operator can be confirmed. .
  • the hash generation method described in the present embodiment uses a one-way function, and the conventional technique indicates SHA-1, MD5, SHA-256, or the like.
  • the purpose of use is to summarize large-scale data and identify it with a small amount of data. If the data is already small! May be compared.
  • the signature described in this embodiment is not limited to the public key cryptosystem. If the cryptographic algorithm to be used is a common key cryptosystem, the signature is message authentication. It corresponds to the code (MAC: Massage Authentication Code). Regarding the method of generating the signature, in this embodiment, the hash is created and then the signature is applied with the secret key. However, if the force data described in the method of generating the hash is already small! /, The data may be used as it is.
  • the communication path between the server and the external device is not limited to the power described as HTTP or HTTPS.
  • the communication path is not limited to wired or wireless. If the device communicates, there is no influence on the present invention. Therefore, it is possible for the server and the external device to independently carry out encrypted communication, and the behavior of the card does not change by performing the encrypted communication! /.
  • the system power S shown in the present embodiment is an example of the secure memory card system of the present invention.
  • a card used in the system is a secure memory card, and an external device is an access device.
  • the memory means included in the card corresponds to a non-volatile memory, and other means are realized. This corresponds to the memory controller of the present invention.
  • the secure memory card according to the present invention can be used as a secure memory card for receiving and storing data.

Landscapes

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

Description

明 細 書
メモリコントローラ、セキュアメモリカード、及びセキュアメモリカードシステ ム
技術分野
[0001] 本発明は、不揮発性メモリの制御を行うメモリコントローラ、不揮発性メモリを備えた 半導体メモリカード等のセキュアメモリカード、前記セキュアメモリカードとアクセス装 置とを有するセキュアメモリカードシステムに関する。
背景技術
[0002] 従来技術として、暗号化済みデータの配布と、この暗号化済みデータを暗号化する 際に用いられる鍵の配布と、を異なるサーバが行うことで、ユーザに対して安全なコン テンッを配布し、販売することを可能にするものがある(特許文献 1)。ここでユーザへ 配布される暗号化済みデータは、複数の暗号化情報パーツと、暗号化情報パーツの リストと、そのリストへの署名とを含んでいる。
[0003] 特許文献 1 :特許第 3130267号
発明の開示
発明が解決しょうとする課題
[0004] しかしながら、上記従来の技術では、リストの内容が変わるたびにリストに対する署 名を付け替える必要がある。つまり、暗号化済みデータの一部を変更するたびに、リ ストの内容が変わるため、署名を付け直す必要があった。従って、署名の付け直しの ために多くの時間と労力を必要としていた。
[0005] そこで、本願発明では、署名の対象となるデータと、その署名と、署名対象ではな い他のデータとを、まとめて暗号化したデータ構造にすることで、署名対象ではない データの一部が変更された場合でも署名の付け直しが不要なメモリコントローラ及び セキュアメモリカードを提供する。
課題を解決するための手段
[0006] 本発明におけるメモリコントローラは、暗号データと署名対象データを受信する通信 手段と、データに対して喑復号処理を行う喑復号手段と、前記喑復号手段で復号さ れた前記暗号データに付与されている署名と、前記署名対象データと、を照合する 照合手段と、前記照合手段の照合結果に基づいて、前記署名対象データの正当性 を判断する判断手段と、前記判断手段により前記署名対象データが正当であると判 断されるとき、前記署名が含まれて!/、る前記暗号データの前記署名以外のデータを 正当なデータとして記憶する記憶手段とを備えることを特徴とするメモリコントローラで ある。
[0007] また、本発明におけるセキュアメモリカードは、不揮発性メモリと、前記不揮発メモリ に対してデータの読み出し、書き込みを行う前記メモリコントローラと、前記喑号処理 を行う喑復号手段と、を有し、セキュアメモリカードは暗号データと署名対象データと を受信する通信手段と、データに対して喑復号処理を行う喑復号手段と、前記喑復 号手段で復号された前記暗号データに付与されている署名と、前記署名対象データ と、を照合する照合手段と、前記照合手段の照合結果に基づいて、前記署名対象デ ータの正当性を判断する判断手段と、前記判断手段により前記署名対象データが正 当であると判断されるとき、前記署名が含まれている前記暗号データの残りのデータ も正当なデータとして記憶する記憶手段とを備えている。
[0008] また、本発明におけるセキュアメモリカードシステムは、セキュアメモリカードとァクセ ス装置から構成され、セキュアメモリカードは、暗号データと署名対象データとを受信 する通信手段と、データに対して喑復号処理を行う喑復号手段と、前記喑復号手段 で復号された前記暗号データに付与されている署名と、前記署名対象データと、を 照合する照合手段と、前記照合手段による照合結果により、前記署名対象データの 正当性を判断する判断手段と、前記判断部により前記署名対象データが正当である と判断されるとき、前記署名が含まれて!/、る前記暗号データの前記署名以外のデー タを正当なデータとして記憶する記憶手段とを備えており、アクセス装置は、前記セ キュアメモリカードと通信するための通信手段と、前記セキュアメモリカードに送信す るデータを記憶する記憶手段と、前記記憶手段から前記セキュアメモリカードに送信 するデータを読み出し、前記セキュアメモリカードが受信可能なデータに変換するプ ロトコル変換手段を有し、前記セキュアメモリカードから通知される結果を受信し、前 記結果に基づき、前記セキュアメモリカードとの通信を制御する。 発明の効果
[0009] 署名対象データと、署名と、署名対象ではない他のデータとがー緒に暗号化された データ構造にすることで、署名が正しく検証できた場合に一緒に暗号化された他の データの正当性を合わせて信頼できるため、署名対象ではないデータの一部を変更 する度に署名を付け替える必要がない。
図面の簡単な説明
[0010] [図 1]サーバ、外部機器、カードの関係図
[図 2]カード構成図
[図 3]サーバ、外部機器、カードの構成図
[図 4]プレイヤーの関係図
[図 5]アプリ開発者、サービス提供者、カード製造者、カード間での処理フロー
[図 6]サーバ運用者、サービス提供者間での処理フロー
[図 7-a]サーバ運用者、サーバ、外部機器、カード間での処理フロー a
[図 7-b]サーバ運用者、サーバ、外部機器、カード間での処理フロー b
[図 7-c]サーバ運用者、サーバ、外部機器、カード間での処理フロー c
[図 8]個別イニシャルデータの例を示す図
[図 9]管理データフォーマットの例を示す図
[図 10]サーバでのデータ格納構成とカードバージョン情報との関係図
[図 11]領域制御手段を含むカード構成図
[図 12]カードと外部機器間の通信フロー
[図 13]2系統保持するカードと外部機器間の通信フロー
[図 14]データ更新時での通信フロー
[図 15-a]データ更新時の処理フロー a
[図 15-b]データ更新時の処理フロー b
[図 16_a]2系統保持するカードとの処理フロー a
[図 16_b]2系統保持するカードとの処理フロー b
[図 16_c]2系統保持するカードとの処理フロー c
符号の説明 100 カード
1001 通信手段
1002 コマンド解釈手段
1003 判断手段
1004 数値計算手段
1005 記憶手段
1006 喑復号手段
1007 照合手段
1008 判断手段
1009 ハッシュ生成手段
1010 領域制御手段
200 外部機器
2001 通信手段
2002 プロトコル変換手段
2003 一時記憶手段
300 サーバ
3001 通信手段
3002 記憶制御手段
3003 記憶手段
P1 力ード製造者
P2 アプリケーション開発者 P3 サービス提供者 P4 サーバ運用者
P5 ユーザ
P6 カード販売者
M01 製造者公開鍵 M02 製造者秘密鍵 M03 カード公開鍵 M04 カード秘密鍵
A01 アプリケーションコー -ド喑号鍵
AO 2 アプリケーションコー -ド、
AO 3 暗号化アプリケーシ 'ヨンコード
A04 暗号化アプリケーシ 'ヨンコード暗号鍵
AO 5 署名
HOI 個別イニシャルデ -タ喑号鍵
H02 個別イニシャルデ -タ
H03 暗号化個別ィニシ レデータ
H04 暗号化個別ィニシ 'ルデータ喑号鍵
H05 個別イニシャルデ -タから生成したノ、
H06 共通データ
H07 管理データ
H08 管理データ暗号鍵
H09 暗号化した管理データ
H10 暗号化した管理デ タ喑号鍵
発明を実施するための最良の形態
[0012] 以下本発明の実施の形態について、図面を参照しながら説明する。尚、本発明は 、これらの実施の形態に何ら限定されるものではなぐその要旨を逸脱しない範囲に おいて、様々なる態様で実施し得る。
[0013] (実施の形態 1)
本実施の形態では、図 1に示すようなサーバ(300)、外部機器(200)、カード(10 0)から構成されるセキュアメモリカードシステムについて説明する。図 2は、カード(1 00)の構成を示す。図 3は、図 1に示したセキュアメモリカードシステムの詳細な構成 を示す。以下、図 3を用いて説明する。
[0014] サーバ(300)は、外部と通信する通信手段(3001)と、記憶制御手段(3002)と、 記憶手段(3003)とをもつ。この記憶手段(3003)は、アプリケーションデータ、アプリ ケーシヨンコード、対応するカード情報、その他外部端末に関する情報を保持してい る。ここで、アプリケーションコードとアプリケーションデータを足し合わせたものがァプ リケーシヨンである。アプリケーションコードは、実行可能なプログラムやコードなどの オブジェクトを指すものである。アプリケーションデータは、それらのコードが参照する データを指し、アプリケーションに対して、動作や振る舞いなどを制御したり、初期設 定値を与えたりする目的で用意するものである。尚、本実施の形態では、アプリケー シヨンコードとアプリケーションデータとが分離して!/、るものとして説明する力 アプリケ ーシヨンデータ力 アプリケーションコードの一部に含まれるものであってもよい。
[0015] 記憶制御手段(3002)は、通信手段(3001)経由で外部からの要求を受け、その 要求に応じて、記憶手段(3003)から選択的にデータを読み出すことができる。
[0016] 外部機器(200)は、通信手段(2001)、プロトコル変換手段(2002)、一時記憶手 段(2003)を有する。通信手段(2001)は、サーバ(300)からデータやコードを受信 する。プロトコル変換手段(2002)は、このデータやコードをカード(100)に送信可能 なコマンドに変換する。通信手段(2001)は、プロトコル変換手段(2002)で変換さ れたコマンドをカード(100)に渡す。なお、サーバ(300)力も予めカードのコマンド仕 様に準じたデータを受信した場合は、外部機器(200)は受信したデータをそのまま カード(100)に送信する。
[0017] カード(100)は、通信手段(1001)、コマンド解釈手段(1002)、数値計算手段(1 004)、記憶制御手段(1003)、記憶手段(1005)、喑復号手段(1006)、照合手段 (1007)、ハッシュ生成手段(1009)、判断手段(1008)を有する。通信手段(1001 )は、外部機器(200)からデータやコマンドを受信する。コマンド解釈手段(1002)は 、通信手段(1001)を用いて受信したコマンドを解釈し、数値計算手段(1004)にデ ータを渡す。数値計算手段(1004)は、コマンド解釈手段(1002)でコマンドを解釈 した結果に応じて、データの配置およびデータの変換、データの演算を行う。また、 数値計算手段(1004)は、必要に応じて喑復号処理を行う喑復号手段(1006)と、 データの比較、照合を行う照合手段(1007)と、データのハッシュ値を生成するハツ シュ生成手段(1009)と、記憶手段(1005)を制御する記憶制御手段(1003)とを用 いて、暗号処理を行う。記憶手段(1005)は、カード(100)内のデータを保持してお く部分であり、記憶制御手段(1003)を介してアクセスされる。照合手段(1007)は、 署名対象データと、喑復号手段(1006)で復号された暗号データに格納されている 署名と、を照合する。また、判断手段(1008)は、照合手段(1007)における照合結 果により、データの正当性を判断する
[0018] ここで、上記システム構成とは別に、カード(100)の製造、アプリケーションなどの 提供にかかわるプレイヤーの関係について図 4を用いて、説明する。
[0019] 図 4に示すように、カード(100)を製造 ·発行するプレイヤー(P1) (以後、カード製 造者とする)、アプリケーションを開発するプレイヤー(P2) (以後、アプリ開発者とする )、サービスを提供するプレイヤー(P3) (以後、サービス提供者とする)、サーバの運 用を行うプレイヤー(P4) (以後、サーバ運用者とする)、外部機器(200)を操作して 、カードに対するデータをサーバに要求するトリガーを投げるプレイヤー(P5) (以後 、ユーザとする)、の 5者が存在する。なお、カードをユーザに販売するプレイヤー(P 6)としてカード販売者が運用上は存在する力 S、本実施の形態には直接関係無いの で説明を省略する。
[0020] その他のプレイヤー(P1〜P4)は、ユーザ(P5)から見た場合、特に意識されるもの ではないが、システム上、実施する処理内容が異なると想定し、分けて考える。まず、 カード製造者 (P1)は、カードの製造からカードに必要なデータを設定して市場で使 うことができるカードの有効化までを行うものであり、アプリ開発者 (P2)に開発環境の 貸し出しやアプリケーションコードの署名付けを行う。次に、アプリ開発者 (P2)は、共 通的、汎用的に配布可能なアプリケーションを開発し、複数のサービス提供者 (P3) にアプリケーションコードを汎用的に提供することが可能である。続いて、サービス提 供者 (P3)は、アプリ開発者 (P2)から受け取ったアプリケーションコードに、識別情報 や鍵情報などのサービス固有の情報を入れることで、アプリケーションをカスタマイズ すること力 Sできる。サービス提供者 (P3)は前述したアプリケーションをカスタマイズし て、実際のサービスを運営するものであると想定する。サーバ運用者 (P4)は、外部 機器(200)からの要求に応じて、データを出力する Webサーバを運用する。
[0021] 以上に説明したプレイヤーモデルはあくまで一例に過ぎず、一プレイヤーがいくつ かのプレイヤーを兼任する場合や、もしくは一プレイヤーの処理がより細分化される 場合も、本特許で語られている範疇に含まれる。例えば、カード製造者 (P1)は、カー ドの製造のみを行い、カードの有効化および開発環境の貸し出し、アプリケーション コードの署名付けを別のプレイヤーが行う場合もある。また、前記では説明を省略し たカード販売者が店頭でカードの有効化を行う場合やサービス提供者が作成したデ ータをカード製造者が受けてカードに設定する場合も想定できる。尚、サービス提供 者 (P3)やカード製造者 (P1)がアプリ開発者 (P2)を兼任する場合も考えられる。
[0022] 次に図 5、図 6、図 7— a、図 7— b、図 7— cを使って、各プレイヤーが行う処理を説 明する。
[0023] 図 5に示すように、まず、カード製造者 (P1)は、カード製造者の RS A鍵ペア (製造 者鍵ペア M01、 M02)を事前に生成する(S01)。そして、生成した鍵のうち、製造者 公開鍵 (M01)をカード(100)に設定 (格納)する(S02)。製造者公開鍵 (M01)と対 称な製造者秘密鍵 (M02)は、アプリ開発者 (P2)が作成したアプリケーションに対す る署名付けを行う際に用いられる。次に、カード製造者 (P1)は、製造するカード(10 0)に格納する RSA鍵ペア(カード鍵ペア M03、 M04)を生成する(S03)。生成した 鍵のうち、カード公開鍵 (M03)は、アプリ開発者 (P2)、サービス提供者 (P3)に配布 される(S04)。一方、カード秘密鍵 (M04)はカード(100)に格納される(S05)。尚、 カード製造者(P1)が生成する製造者鍵 (M01、M02)やカード鍵 (M03、 M04)は 、上述した RSA鍵であってもよいし、楕円喑号方式、 DH鍵配送方式、エルガマル喑 号方式など他の公開鍵暗号方式を利用したものであっても構わない。尚、同様に RS Aの鍵長も 1024bit、 2048bitに限定されるわけではなぐカード運用のセキュリティ ポリシーに則って自由に変更しても構わな!/、。
[0024] アプリケーションコードへの署名付けは、アプリ開発者 (P2)による申請、すなわちァ プリケーシヨンコードのカード製造者(P1)への送付(S06)によって行われる。カード 製造者 (P1)は、提出されたアプリケーションの動作内容を確認し、問題がなければ、 提出されたアプリケーションコードのハッシュデータを作成する。そして、作成したハツ シュデータに対して、カード製造者 (P1)は製造者秘密鍵 (M02)を使って、署名(A 05)を生成する(S07)。ここで生成された署名(A05)は、アプリ開発者 (P2)に送付 される(S08)。
[0025] なお、アプリ開発者 (P2)は、カード製造者 (P1)から事前にカード(100)に対応し た開発環境とカード公開鍵 (M03)を受託している。その開発環境を利用して、アプリ 開発者 (P2)はカード(100)に対応したアプリケーションコードの開発を行う(S09)。 このステップ S09で完成したアプリケーションコード力、ステップ S06でカード製造者( P1)に送付されるアプリケーションコード (A02)である。
[0026] アプリ開発者 (P2)は、作成したアプリケーションコードをサービス提供者 (P3)に譲 渡する際には、アプリケーションコードを暗号化して渡す。暗号化する理由は、カード 製造者 (P1)が配布した開発環境を用いてアプリケーションコードを開発できるのは アプリ開発者 (P2)だけだからであり、アプリケーションコードを暗号化せずにサービ ス提供者 (P3)に渡してしまうと、サービス提供者 (P3)はアプリケーションコード内容 を閲覧でき、秘情報の流出になるからである。暗号化せずにコードを渡して、複数の プレイヤーが秘情報を共有してレ、る時に秘情報が漏洩した際、どちらの責任で発生 したかは曖昧になってしま!/、、責任の切り分けができな!/、とレ、う問題が考えられる。
[0027] それに対しては、本実施例では、アプリ開発者 (P2) 1S、独自に作成した暗号用鍵( A01) (以下、アプリケーションコード喑号鍵と呼ぶ)でアプリケーションコード(A02) を暗号化して、暗号化されたアプリケーションコード (A03)を生成する(S 10)。そして 、アプリ開発者 (P2)は、アプリケーションコード暗号鍵 (A01)を事前に配布された力 ード公開鍵 (M03)で暗号化し、暗号化されたアプリケーションコード暗号鍵 (A04) を生成する(S l l)。その後アプリ開発者 (P2)は、サービス提供者 (P3)に、暗号化さ れたアプリケーションコード(A03)と、喑号化されたアプリケーションコード喑号鍵 (A 04)と、アプリケーションコードの署名(A05)を譲渡する(S 12)。サービス提供者(P3 )は、受け取ったどちらの喑号データ (A03、 A04)も復号することができない。
[0028] 次に、サービス提供者 (P3)が行う作業について、図 6を用いて説明する。サービス 提供者 (P3)は、アプリ開発者 (P2)から受け取ったアプリケーションコードを個別に力 スタマイズするためのアプリケーションデータ(H02) (以下、個別イニシャルデータと する)を作成する(S20)。尚、作成するすべてのデータについて、アプリケーション 1 つ 1つ個別にデータを変更する力、、あるデータは共通化するか等については、サー ビスの運用ポリシーに因るところであり、考慮しない。サービス提供者 (P3)が個別ィ 二シャルデータ(H02)を作成する場合には、別途アプリ開発者 (P2)からアプリケー シヨンの外部仕様を受け取る必要がある。個別イニシャルデータのデータ構造の例と して、図 8に示すように、最初の lOObyte (論理アドレス 0— 99)は識別情報、次の 10 OObyte (論理アドレス 100— 1099)は自己証明書データ、次の 1000byte (論理ァ ドレス 1100— 2099) (まノレート証明書データ、次の 3000byte (論理アドレス 2100— 5099)はファイルシステム情報としてアプリケーションから参照すると!/、う外部仕様と する。データの開始地点には長さを示す情報を設定し、その領域のどこまでを有効な データとしてアプリケーションが参照するべき力、を示す。
[0029] 図 6に戻り、サービス提供者 (P3)は、アプリ開発者 (P2)と同様に、作成した個別ィ 二シャルデータ(H02)を、独自に作成した鍵 (H01) (以下、個別イニシャルデータ 暗号鍵と呼ぶ)で暗号化し、暗号化した個別イニシャルデータ(H03)を作成する(S 21)。そしてサービス提供者 (P3)は、個別イニシャルデータ暗号鍵 (H01)を事前に カード製造者 (P1)から配布されているカードの公開鍵 (M03)で暗号化し、暗号化さ れた個別イニシャルデータ暗号鍵 (H04)を作成する(S 22)。この際、サービス提供 者 (P3)は、作成した個別イニシャルデータ(H02)に対してハッシュ(H05)を生成す る(S23)。
[0030] サービス提供者 (P3)は、生成したハッシュ(H05)と、アプリ開発者 (P2)から受け 取った署名(A05)と、共通データ(H06)から、管理データ(H07)を生成する。ここ で、共通データ(H06)とは、サービス提供者(P3)が作成する(S24)、アプリケーショ ンを識別するための識別情報や、著作権情報などのアプリケーション管理情報や、 サービス提供者情報などを含むデータである。図 9に管理データ(H07)のフォーマ ット例を記載する。
[0031] サービス提供者 (P3)は、管理データ(H07)を独自に生成した鍵 (以下、管理デー タ喑号鍵 (H08)と呼ぶ)で暗号化し、暗号化された管理データ(H09)を作成する(S 25)。続いて、サービス提供者 (P3)は、管理データ暗号鍵 (H08)を事前にカード製 造者 (P1)から配布されているカードの公開鍵 (M03)を用いて暗号化し、暗号化さ れた管理データ暗号鍵 (H10)を作成する(S26)。
[0032] なお、個別イニシャルデータ暗号鍵 (H01)と管理データ暗号鍵 (H08)は、サービ ス提供者 (P3)自身が作成し管理するものなので、同じものを用意してもよいし、別々 に用意してもよい。別々に用意した場合、管理の手間が増えるが、鍵漏洩におけるセ キユリティ対策はより強固になるので、本実施例では別々に用意した場合について記 載する。
[0033] サービス提供者 (P3)は、アプリ提供者 (P2)から受け取った暗号化されたアプリケ ーシヨンコード(A03)と、喑号化されたアプリケーションコード喑号鍵 (A04)と、喑号 化された個別イニシャルデータ(H03)と、暗号化された個別イニシャルデータ暗号 鍵 (H04)と、暗号化された管理データ(H09)と、暗号化された管理データ暗号鍵( H10)とをサーバ運用者 (P4)に配布する(S27)。なお、サーバ運用者 (P4)は、受 け取ったすべての喑号データ(A03、 A04、 H03、 H04、 H09、 H10)を復号するこ とができない。
[0034] 本実施例では、アプリケーションコード暗号鍵 (A01)、個別イニシャルデータ暗号 鍵 (H01)、管理データ喑号鍵 (H08)の 3つの鍵に用いる喑号アルゴリズムとして、 データの喑復号にかかる時間や鍵長を考慮して共通鍵暗号方式を用いた場合につ いて説明した。しかし、共通鍵暗号方式に限定されず、公開鍵暗号方式を用いても かまわない。尚、本実施例では共通鍵喑号方式の AESを用いている力 これに限定 されず、 DESや T— DES、 MISTY, Camellia, RC6など知られている共通鍵喑号 方式でもかまわない。尚、カードが喑号方式に対応するのであれば、今後公表される 共通鍵暗号方式にも対応することは可能である。
[0035] 続いて、図 7— aを用いて説明する。サーバ運用者(P4)は、図 6の S27で受け取つ たデータをサーバ(300)の記憶手段(3003)に登録する(S30)。登録する際、サー バ(300)は、サービス提供者(P3)力、ら受け取ったデータ力 どのカードの、どのバー ジョンに対応したものであるかを知る必要がある。カードの種別やバージョン情報を示 す情報の例としては、カードの識別情報があり、カードの識別情報は、外部機器(20 0)がカード(100)から取得し、サーバ(300)に対してデータ要求する際に一緒にサ ーバに送信される情報である。サーバ(300)は、前記識別情報に対応する複数の喑 号化データを外部機器に送信するために、事前に識別情報を知る必要がある。これ らのデータは、サービス提供者 (P3)、もしくはアプリ開発者 (P2)から別途通知される 情報である。 [0036] カードが出力するバージョン情報とそれに対応したサーバ上のデータ管理形式の 例を図 10に示す。カードが前記の識別情報(図 10では、カード ID)を出力するため にコマンドが規定されており、カードの識別情報は、そのコマンドに対応したレスボン スデータで外部機器に通知される。コマンドは、カードに搭載されているアプリケーシ ヨンや通信レイヤーで規定されたネゴシエーション時にやりとりされるものである。尚、 1バージョンのカードだけを運用する場合には、事前にカードの種別やバージョン情 報を交換する必要がない。
[0037] サーバ(300)が外部機器(200)からのデータ要求に対して、データを送信する順 番は、管理データ暗号鍵、管理データ、個別イニシャルデータ暗号鍵、個別ィニシャ ルデータ、アプリケーションコード喑号鍵、アプリケーションコードの順とする。尚、前 記の順番は、カード内でできるだけデータを一時的に保持せず、順次処理するため に好適なものであり、カードに十分な一時記憶領域が存在する場合は、これに限定さ れるものではない。
[0038] 次に、カード(100)と外部機器(200)間の通信フローを図 12に示す。以下では、 図 7— aも用いて説明する。
まず、カード(100)において、通信手段(1001)は、暗号化された管理データ暗号 鍵 (H10)を外部機器(200)経由で受信し(C01)、コマンド解釈手段(1002)に渡す 。コマンド解釈手段(1002)は、前記暗号化された管理データ暗号鍵 (H10)に付与 されているコマンドをチェックし、そのコマンドが何を示している力、、どの目的で使われ ているのかを解釈する。本実施例では、コマンドの内容は、カード(100)へのアプリ ケーシヨンのインストールと想定して以下の動作を記載する。コマンド解釈手段(100 2)は、数値計算手段(1004)にアプリケーションのインストールであることを通知し、 受信データを渡す。数値計算手段(1004)は、記憶手段(1005)が保持するカード R S A秘密鍵 (M04)を記憶制御手段(1003)経由で取得し、受信データを喑復号手 段(1006)で復号する(S31)。すなわち、 S31において、カード(100)は、カード秘 密鍵 (M04)を用いて、暗号化された管理データ暗号鍵 (H10)を復号し、管理デー タ喑号鍵 (H08)を取得する。数値計算手段(1004)は、復号した管理データ暗号鍵 (H08)を、記憶制御手段(1003)を経由して記憶手段(1005)で保持する。前記の 処理が問題なく行えれば、カード(100)は、外部機器(200)およびサーバ(300)に 対して正常終了とレ、う意味合レ、を持つコードを出力する(C02)。
[0039] 次に通信手段(1001)は、暗号化された管理データ (H09)を外部機器経由で受 信する(C03)。数値計算手段(1004)は、前記の管理データ暗号鍵 (H08)を用い て、喑復号手段(1006)で暗号化された管理データ(H09)の復号を行い、管理デー タ(H07)を取得する(S32)。復号により得られた管理データ(H07)は、予め規定し てあるフォーマット(図 9)に従っているので、数値計算手段(1004)は前記フォーマツ トに従って、データを読み出す。アプリケーションを識別するための情報は、すでに力 ード内に同じ識別情報を保有しているアプリケーションがないかを調べるために用い る(S33)。すなわち、カード(100)は、 S33において、管理データ(H07)から共通デ ータ(H06)を取得し、内容を確認する。そしてカード(100)は、確認した結果、問題 があれば処理を停止し、なければ継続する。具体的には、同じ識別情報がすでにあ る場合、すなわち、管理データ(H07)から共通データ(H06)を取得して内容を確認 した結果、問題がある場合は、数値計算手段(1004)は、インストール処理を中止 (停 止)する。そして数値計算手段(1004)は、外部機器 (200)に結果を出力する(C04) 際、正常終了ではなぐ識別情報が重複しているというエラーコードにして出力する。 重複して!/、なければ、共通データ(H06)を記憶制御手段(1003)経由で記憶手段( 1005)に仮格納する(S34)。尚、上記のエラーに限定したものではなぐ異常動作を した場合、数値計算手段(1004)は、事前に外部と取り交わされたその旨を示すコー ドを出力する。
[0040] 次に、図 7— bを用いて説明する。カード(100)において、通信手段(1001)は、喑 号化された個別イニシャルデータ暗号鍵 (H04)を外部機器(200)経由で受信し(C 05)、数値計算手段(1004)に渡す。数値計算手段(1004)は、記憶手段(1005) で保持するカード RSA秘密鍵 (M04)を使って、暗号化された個別イニシャルデータ 暗号鍵 (H04)を喑復号手段(1006)で復号し、個別イニシャルデータ暗号鍵 (H01 )を取得する(S35)。カード(100)は、復号した個別イニシャルデータ暗号鍵 (H01) を記憶手段(1005)で保持する。次に通信手段(1001)は、サーバ(300)から、喑 号化された個別イニシャルデータ(H03)を外部機器(200)経由で受信する(C07) 。通信手段(1001)は、前記データを数値計算手段(1004)に渡す。数値計算手段 (1004)は、前記の個別イニシャルデータ喑号鍵(H03)を用いて、喑号化された個 別イニシャルデータ(H03)の復号を喑復号手段(1006)で行い、個別イニシャルデ ータ(H02)を取得する(S36)。個別イニシャルデータ(H02)の内容は、後述のァプ リケーシヨンコード (AO2)が解釈するものであり、カード(100)が解釈する必要はな い。数値計算手段(1004)は、復号した個別イニシャルデータ(H02)のハッシュをハ ッシュ生成手段(1009)で生成し(S37)、管理データに含まれている個別イニシャル データのハッシュ (H05)と同じであるかを、照合手段(1007)を用いて確認する(S3 8)。同じであれば、数値計算手段(1004)は、個別イニシャルデータ(H02)を記憶 制御手段(1003)経由で記憶手段(1005)に仮格納する(S39)。異なる場合、数値 計算手段(1004)はインストール処理を中止する(S40)。カード(100)は、外部機器 (200)、サーバ(300)に結果を出力する(C08)際、正常終了ではなぐハッシュが 異なるとレ、う旨を示すエラーコードを出力する。
次に、図 7— cを用いて説明する。カード(100)において、通信手段(1001)は、サ ーバ(300)から、暗号化されたアプリケーションコード暗号鍵 (A04)を外部機器(20 0)経由で受信し (C09)、数値計算手段(1004)に渡す。数値計算手段(1004)は、 記憶手段(1005)で保持するカード RSA秘密鍵 (M04)を使って、喑復号手段(10 06)で復号し、アプリケーションコード喑号鍵 (A01)を取得する(S41)。カード(100 )は、復号したアプリケーションコード暗号鍵 (A01)を記憶手段(1005)で保持する。 次に通信手段(1001)は、サーバ(300)から、暗号化されたアプリケーションコード( A03)を外部機器(200)経由で受信する(Cl l)。通信手段(1001)は、前記データ を数値計算手段(1004)に渡す。数値計算手段(1004)は、前記のアプリケーション コード喑号鍵 (A01)を用いて、喑号化されたアプリケーションコード (A03)の復号を 喑復号手段(1006)で行い、アプリケーションコード (A02)を取得する(S42)。アプリ ケーシヨンコード (A02)は、事前に製造者によって動作確認されて!/、ると!/、う前提が あるので、カード(100)で新たに前記アプリケーションコードの動作を検証する必要 はなレ、。数値計算手段(1004)は、アプリケーションコード (A02)を記憶制御手段(1 003)経由で記憶手段(1005)に仮格納する(S43)。カードは復号したアプリケーシ ヨンコード (A02)のハッシュをハッシュ生成手段(1009)で生成する(S44)。数値計 算手段(1004)は、製造者の公開鍵 (M01)を使って署名(A05)を喑復号手段(10 06)で復号し、ハッシュを取得し、前記生成したアプリケーションコードのハッシュと照 合手段(1007)で照合する(S45)。同じであれば、数値計算手段(1004)は、アプリ ケーシヨンコード (A02)を記憶手段(1005)に格納する。異なる場合、数値計算手段 (1004)はインストール処理を中止する(S46)。数値計算手段(1004)は、外部機器 (200)、サーバ(300)に結果を出力する(C10)際、正常終了ではなぐ署名が異な るという旨を示すエラーコードを出力する。同じである場合、数値計算手段(1004)は すべてのデータが正常であることを確認し、判断手段(1008)に通知し、インストール 処理を終了する。判断手段(1008)は、署名が正当である通知を受け、署名と一緒 に暗号化されていた個別イニシャルデータのハッシュ、共通データを正当であると判 断し、該当アプリケーションに関連する共通データ、個別イニシャルデータ、アプリケ ーシヨンコードをカード内で動作可能な状態に変更させる。具体的には、アプリケー シヨンの状態は、記憶手段(1006)で管理されており、外部機器(200)からの要求に よって、数値計算手段(1004)が記憶制御手段( 1003)経由で記憶手段( 1005)か ら前記状態を確認し、アプリケーションとして動作可能と示されていれば、記憶手段( 1005)は、アプリケーションコードを呼び出し、コマンド解釈手段(1002)から送られ てくるコマンドをアプリケーションコードに渡すように動作することになる。
本発明のダウンロード、インストール方法は、最終的な信頼ポイントをアプリケーショ ンコードの署名確認においており、署名確認が正常に終了したことを受け、署名と一 緒に暗号データに格納されていた個別イニシャルデータのハッシュを信頼し、そのハ ッシュと一致する個別イニシャルデータを信頼することになる。署名データは、製造者 によって付与されており、署名生成に使用する製造者の秘密鍵は、カードには格納 されておらず、市場に出ることがないため、漏洩の危険性は低い。また、アプリ開発 者 (P2)、サービス提供者 (P3)が独自に鍵生成をしているため、どちらかで鍵が漏洩 した場合も、その影響をもう一方が受ける心配がない。また、独自に生成した鍵を配 布する方法は、公開鍵暗号方式を採用しているため、アプリ開発者同士、サービス提 供者同士でも鍵を復号することはできず、カード秘密鍵を所有するカードだけが復号 を fiうこと力 Sできる。
[0043] 次に、上記データの更新を行う手順を説明する。
[0044] 相互認証をしない場合、サーバ、カードがお互いに相手のなりすましを防ぐ方法が ないため、サーバはどのカードにアプリケーションがインストールされたのか管理する ことができず、カードは、どのサービス提供者のアプリケーションをインストールしたの か分からない。そのため、カード上のアプリケーションを更新する場合、同じサービス 提供者から配布されたアプリケーションであるかをカードが確認することができない。 そのため、一旦アプリケーションを削除して、再度インストールすることはできる力 更 新時に最初のアプリケーションとの関連性が立証できないため、一部のデータをカー ドに残しておき、データ処理部だけを変更するといつた更新処理を実現することが出 来ない課題がある。そこで、前述のダウンロード、インストール方法を用いてインスト一 ルしたアプリケーションを更新する際、外部認証無しで適切なサービス提供者からの アプリケーションの更新であることを検証し、更新処理を実現する方法を以下に説明 する。
[0045] データには前述したように、管理データ、個別イニシャルデータ、アプリケーションコ ードの 3つが存在する。管理データは、個別イニシャルデータとアプリケーションコー ドに関連したデータを格納するため必ず存在する力 個別イニシャルデータ、もしく はアプリケーションコードだけを更新する場合が存在する。
[0046] 個別イニシャルデータだけを更新する場合は、管理データの中に、個別ィニシャノレ データのハッシュ (H05)と、更新するアプリケーション識別情報(共通データ) (H06 )を格納して暗号化し、暗号化された個別イニシャルデータと一緒に送信する。アプリ ケーシヨンコードだけを更新する場合、管理データの中に、アプリケーションコードの 署名と、更新するアプリケーション識別情報 (共通データ)(H06)を格納して暗号化 し、暗号化されたアプリケーションコードと一緒に送信する。
[0047] 前記の通り、本発明のダウンロード、インストール方法は、署名データに信頼ポイン トを置くため、個別イニシャルデータだけの更新の場合、署名データ (A05)が含まれ ておらず、カードは信頼性を確立できない。そのため、更新を行う場合に備え、最初 にインストールする際に、個別イニシャルデータ暗号鍵を一緒に保存しておき、更新 時には、公開鍵で暗号化された鍵データから鍵を復号するのではなぐ予めカード内 で保持して!/、る個別イニシャルデータ暗号鍵を利用して復号を行う。サービス提供者 しか知りえない個別イニシャルデータ暗号鍵を使うことができ、復号したデータのハツ シュが管理データで送られてきたハッシュと一致するということは、最初にインストール したサービス提供者 (P3)、またはそれに準ずる情報を持つ代理のサービス提供者 であることが分かる。この方法を使うことにより、カードによる外部認証や、サーバによ るアプリケーション管理をすることなぐカードだけで、最初のインストール時と同一の サービス提供者だけを更新可能なプレイヤーに制限できる。
[0048] アプリケーションコードについても、上記の方法を利用することで、最初にインスト一 ルした時のアプリ開発者 (P2)だけに制限した更新処理にすることができる。アプリケ ーシヨンコードには署名(A05)が付いているため、アプリケーションコード自体を改ざ んすることができないが、更新時には、個別イニシャルデータ(H02)との関連性が見 出せないため、すでにカードにインストール済みの他の個別イニシャルデータを持つ アプリケーションコードに対して、アプリケーションコード部分だけをすり替えて他のァ プリケーシヨンの個別イニシャルデータを参照することができてしまう。そのため、上記 のような対策により更新を行うものに対して制限を付けることが重要である。
[0049] カード(100)と外部機器(200)間の通信フローを図 14で示し、図 15— a、図 15— bを使って、各プレイヤーが行う処理フローを説明する。
アプリ開発者が再度アプリケーションコードを開発し、そのアプリケーションコードが サービス提供者を通じてサーバ運用者に納入され、暗号データになってサーバ運用 者が登録する部分の処理につ!/、ては、新規インストールでのデータ準備と比較して、 サービス提供者が個別イニシャルデータを生成しない部分と個別イニシャルデータ のハッシュを管理データに含めな!/、事が異なるだけなので、フローの説明につ!/、て は割愛する。
[0050] まず、図 15— aを用いて説明する。サーバ運用者 (P4)は、サービス提供者 (P3)か ら納入された、暗号化されたアプリケーションコード (A03)、暗号化された管理データ (H09)、暗号化された管理データ暗号鍵 (H10)を更新用アプリケーションとして、サ ーバ(300)に登録する(Z00)。このとき、外部機器(200)からの要求に対応するた めに、更新用アプリケーションのバージョン情報や説明などを付与して外部から明示 的に分かるようにしておく。または外部機器(200)からの更新要求に予めなんらかの 情報が含まれている場合は、サーバ(300)は前記情報に対応して、アプリケーション を配信することになる。その際、外部機器(200)から送信される前記情報には、アブ リケーシヨンの識別情報やカードに格納されている現在のアプリケーションのバージョ ン情報、カード識別情報などがある。
[0051] まず、カード(100)において、通信手段(1001)は、サーバ(300)から、喑号化さ れた管理データ暗号鍵 (H10)を外部機器 (200)経由で受信し (Z01)、コマンド解 釈手段(1002)に渡す。コマンド解釈手段(1002)は、前記データに付与されている コマンドをチェックし、そのコマンドが何を示している力、、どの目的で使われているの かを解釈する。コマンドの内容は、アプリケーションコードの更新処理と想定して以下 の動作を記載する。更新作業を判別する部分については、コマンド解釈手段(1002 )で更新処理であるかを確認する方法と、インストール処理として最初は処理し、ァプ リケーシヨンの識別子に対応するアプリケーションの状態を確認することで、次に行う 処理を更新処理としてカード(100)が自動的に認識する方法がある。本実施例では 、コマンドによる解釈を行い、処理内容を確定する場合を記載する。
[0052] コマンド解釈手段(1002)は、数値計算手段(1004)にアプリケーションコードの更 新処理であることを通知し、受信データを渡す。数値計算手段(1004)は、記憶手段 (1005)が保持するカード RS A秘密鍵 (M04)を記憶制御手段( 1003)経由で取得 し、受信データを喑復号手段(1006)で復号し、管理データ暗号鍵 (H08)を取得す る(S51)。数値計算手段(1004)は、復号した管理データ暗号鍵 (H08)を記憶制御 手段( 1003)経由で記憶手段(1005)に保持する(S 51 )。前記の処理が問題なく行 えれば、外部機器(200)、サーバ(300)に対して正常終了という意味合いを持つコ ードを出力する(Z02)。
[0053] 次に通信手段(1001)は、サーバ(300)から、暗号化された管理データ(H09)を 外部機器 (200)経由で受信する (Z03)。数値計算手段(1004)は、前記の管理デ 一タ喑号鍵 (H08)を用いて、喑復号手段(1006)で暗号化された管理データ(H09 )の復号を行い、管理データ(H07)を取得する(S52)。復号した管理データ(H07) は、予め規定してあるフォーマット(図 9)に従っているので、数 計算手段(1004)は 前記フォーマットに従って、データを読み出す。更新の場合、すべてのデータが埋め られているわけではなぐ更新時に必要な情報が含まれていればよい。本実施例の 場合は、アプリケーションコードの更新にあたるため、個別イニシャルデータのパージ ヨン情報、個別イニシャルデータのサイズ、個別イニシャルデータのハッシュが記載さ れていなくて良ぐアプリケーション識別子長、アプリケーション識別子、アプリケーシ ヨンコードのバージョン情報、アプリケーションコードサイズ、アプリケーションコードの 署名(A05)が必須になる。アプリケーションを識別するための情報は、更新するアブ リケーシヨンがカード(100)内にあるかを調べるために用いる(S53)。また更新対象 のアプリケーションが更新可能な状態を保持して!/、るかを、記憶手段(1005)で保持 しているアプリケーションの状態から確認する。同じ識別情報がない場合や更新可能 な状態でない場合は、数値計算手段(1004)はインストール処理を中止する。数値 計算手段(1004)は、外部機器 (200)、サーバ(300)に結果を出力する(Z04)際、 正常終了ではなぐ対象アプリケーションがないというエラーコードにして出力する。 対象アプリケーションがあれば、カード(100)は、共通データを記憶制御手段(1003 )経由で記憶手段(1005)に仮格納する(S54)。尚、上記のエラーに限定したもので はなぐ異常動作をした場合は、事前に外部と取り交わされたその旨を示すコードを 出力する。
次に、図 15— bを用いて説明する。カード(100)において、通信手段(1001)は、 サーバ(300)から、喑号化されたアプリケーションコード (A03)を外部機器(200)経 由で受信する(Z051)。通信手段(1001)は、前記データを数値計算手段(1004) に渡す。数値計算手段(1004)は、更新対象のアプリケーションの識別子とアプリケ ーシヨンコードの更新と!/、う情報から、最初のデータ格納時にデータを復号したアプリ ケーシヨンコード暗号鍵 (A01)を記憶手段(1005)から取得する(S55)。前記のァ プリケーシヨンコード喑号鍵 (A01)を用いて、喑号化されたアプリケーションコード(A 03)の復号を喑復号手段(1006)で行う(S56)。アプリケーションコードは、事前に製 造者によって動作確認されているという前提があるので、カード(100)で新たに前記 アプリケーションコードの動作を検証する必要はない。数 計算手段(1004)は、ァ プリケーシヨンコードを記憶制御手段( 1003)経由で記憶手段(1005)に仮格納する (S57)。カード(100)は、復号したアプリケーションコード(A02)のハッシュをハツシ ュ生成手段(1009)で生成する(S58)。数値計算手段(1004)は、製造者の公開鍵 (M01)を使って署名(A05)を喑復号手段(1006)で復号し、ハッシュを取得し、前 記生成したアプリケーションコードのハッシュと照合手段(1007)で照合する(S59)。 同じであれば、数値計算手段(1004)は、アプリケーションコード (A02)を記憶手段( 1005)に格納する。異なる場合、数値計算手段(1004)はインストール処理を中止 する(S60)。数値計算手段(1004)は、外部機器(200)、サーバ(300)に結果を出 力する(Z06)際、正常終了ではなぐ署名が異なるという旨を示すエラーコードを出 力する。同じである場合、数値計算手段(1004)はすべてのデータが正常であること を確認し、判断手段(1008)に通知し、インストール処理を終了する。判断手段(100 8)は、署名が正当である通知を受け、署名と一緒に暗号化されていた共通データを 正当であると判断し、該当アプリケーションに関連する共通データ、アプリケーション コードをカード内で動作可能な状態に変更させる。
[0055] また、前記の説明では、外部機器(200)とカード(100)間の通信路について詳細 に記載していないが、高速に記憶部にアクセスできるが事前に領域指定が必要な通 信路(以下、高速通信路と呼ぶ)と、それより速度は劣るが領域指定を内部で解釈し て行ってくれる通信路(以下、低速通信路と呼ぶ)の 2系統を保持するカード(図 11) 力 sある。
[0056] カードが複数の通信方式に対応している場合、その処理内容によって、インスト一 ル途中で方式の切り替えをしたい場合がある。サーバ上のデータが暗号化されてい る場合、サーバ、外部機器は、その内容を見ることができず、切り替えるタイミングを 把握することができない。また、サーバが事前に切り替えるタイミングを別の平文情報 として持っていても、外部機器経由で切り替えを指定した場合に、外部機器を認証が できていないカードは、そのコマンドを信用することができない課題がある。そこで、 前述のダウンロード、インストール方法を用いても、カードがもつ複数の通信方法を適 切に動的に切り替える方法を提供する。
[0057] カード(100)が内容を解釈してデータを格納する管理データ(H07)は、低速通信 路を使ってデータを書き込む必要がある力、カードが内容を解釈しない個別ィニシャ ルデータ(H02)、アプリケーションコード (A02)は、高速通信路を使ってデータを書 き込むこと力できる。特に個別イニシャルデータ(H02)、アプリケーションコード (AO 2)が大容量である場合は、その効果は大きぐインストール時間の短縮を図ることが できる。また、低速通信路と高速通信路に分けた場合、そのデータが正常な外部機 器(200)から送られてきたかが不確かになる力 その部分は前記署名データ (A05) と前記ハッシュ(H05)が 2つの通信路の関連性を保障できるため問題なレ、。
カードが 2系統通信路を保持している場合のカード(100)と外部機器(200)間の 通信フローを図 13で示し、図 16— a、図 16— b、図 16— cを使って、各プレイヤーが 行う処理フローを説明する。
[0058] まず、図 16— aを用いて説明する。カード(100)において、通信手段(1001)は、 サーバ(300)から、暗号化された管理データ暗号鍵 (H10)を外部機器(200)経由 で受信し(C01)、コマンド解釈手段(1002)に渡す。コマンド解釈手段(1002)は、 前記データに付与されているコマンドをチェックし、そのコマンドが何を示している力、、 どの目的で使われているの力、を解釈する。本実施例では、コマンドの内容は、カード へのアプリケーションのインストールと想定して以下の動作を記載する。コマンド解釈 手段(1002)は、数値計算手段(1004)にアプリケーションのインストールであること を通知し、受信データを渡す。数値計算手段(1004)は、記憶手段(1005)が保持 するカード RSA秘密鍵 (M04)を記憶制御手段(1003)経由で取得し、受信データ を喑復号手段(1006)で復号し、管理データ暗号鍵 (H08)を取得する(S31)。数値 計算手段(1004)は、復号した管理データ暗号鍵 (H08)を、記憶制御手段(1003) を経由して記憶手段(1005)で保持する。前記の処理が問題なく行えれば、カード( 100)は、外部機器(200)、サーバ(300)に対して正常終了と!/、う意味合!/、を持つコ ードを出力する(C02)。
[0059] 次に通信手段(1001)は、暗号化された管理データ(H09)を外部機器(200)経 由で受信する(C03)。数値計算手段(1004)は、前記の管理データ暗号鍵 (H08) を用いて、喑復号手段(1006)で暗号化された管理データ(H09)の復号を行い、管 理データ(H07)を取得する(S32)。復号した管理データ(H07)は、予め規定してあ るフォーマット(図 9)に従っているので、数値計算手段(1004)は前記フォーマットに 従って、データを読み出す。アプリケーションを識別するための情報は、すでにカー ド(100)内に同じ識別情報を保有しているアプリケーションがないかを調べるために 用いる(S33)。同じ識別情報がすでにある場合は、数値計算手段(1004)はインスト ール処理を中止する。数値計算手段(1004)は、外部機器(200)、サーバ(300)に 結果を出力する(C04)際、正常終了ではなぐ識別情報が重複しているというエラー コードにして出力する。重複していなければ、共通データを記憶制御手段(1003)経 由で記憶手段(1005)に仮格納する(S34)。尚、上記のエラーに限定したものでは なぐ異常動作をした場合は、事前に外部と取り交わされたその旨を示すコードを出 力する。
[0060] 次に、図 16— bを用いて説明する。カード(100)において、通信手段(1001)は、 暗号化された個別イニシャルデータ暗号鍵 (H04)を外部機器(200)経由で受信し( C05)、数値計算手段(1004)に渡す。数値計算手段(1004)は、記憶手段(1005) で保持するカード RSA秘密鍵 (M04)を使って、喑復号手段(1006)で復号し、個別 イニシャルデータ暗号鍵 (H01)を取得する(S35)。復号した個別イニシャルデータ 暗号鍵 (H01)をカード内の記憶手段(1005)で保持する。数値計算手段(1004)は 、次の個別イニシャルデータを低速通信路ではなぐ高速通信路を使って受信する 判断をし、記憶制御手段(1003)からデータを展開するアドレス情報を取得し、領域 制御手段(1010)に通知する(S80前段)。数値計算手段(1004)は、復号した個別ィ 二シャルデータ暗号鍵 (H01)を、領域制御手段(1010)に通知する。領域制御手段( 1010)は、受信したアドレス情報を保持し、アドレス情報に対応した外部に公開する ためのエリア番地とエリアサイズ (以下、前記 2つの情報を合わせてエリア情報とする) を生成し (S80後段)、数値計算手段(1004)に送信する。数値計算手段(1004)は 、前記エリア情報を外部機器(200)に出力する(D01)。領域制御手段(1010)は、 受信した個別イニシャルデータ暗号鍵 (H01)を復号用鍵として設定する。
[0061] 外部機器(200)は、受信したエリア情報を使って、高速通信路を利用して、書き込 むエリア番地と書き込むエリアサイズ(書込みサイズ)をカード(100)に通知するコマ ンド(以下、領域情報設定コマンドとする)を送信する(D02)。エリアサイズは、通知さ れたサイズより小さくなつても力、まわない。通信手段(1001)は、前記領域情報設定コ マンドを受信し、そのデータをコマンド解釈手段(1002)に送信する。コマンド解釈手 段(1002)は、前記領域情報設定コマンドを解釈し、領域制御手段(1010)にエリア 番地と書込みサイズを通知する。領域制御手段(1010)は、エリア番地を確認し、書 込みサイズを設定する(S81)。番地が異なる場合や、サイズが予め通知したサイズよ り大きい場合はエラーとなる。
[0062] 次に通信手段(1001)は、高速通信路を使って送信された暗号化された個別ィニ シャルデータ(H03)を受信する(D03)。通信手段(1001)は、前記データをコマン ド解釈手段(1002)に渡す。コマンド解釈手段(1002)は、受信したデータを領域制 御手段(1010)に送信する。
[0063] 領域制御手段(1010)は、前記の個別イニシャルデータ暗号鍵 (H01)を用いて、 暗号化された個別イニシャルデータ(H03)の復号を喑復号手段(1006)で行い、個 別イニシャルデータ(H03)を取得する(S82)。そして領域制御手段(1010)は、復 号した個別イニシャルデータ(H02)を記憶手段(1005)に仮格納する(S84)。領域 制御手段(1010)は個別イニシャルデータ(H02)のハッシュをハッシュ生成手段(1 009)で生成する(S83)。
[0064] 次に、通信手段(1001)は、アプリケーション暗号鍵を暗号化したデータ (A04)を 外部機器 (200)経由で受信し (D04)、数値計算手段(1004)に渡す。数値計算手 段(1004)は、領域制御手段(1010)で生成したハッシュを取得し、管理データに含 まれていた個別イニシャルデータのハッシュ(H05)と同じであるかを、照合手段(10 07)を用いて確認する(S85)。
[0065] 続いて、図 16— cに移る。領域制御手段(1010)で生成したハッシュと、管理デー タに含まれていた個別イニシャルデータのハッシュ (H05)が異なる場合、数値計算 手段(1004)はインストール処理を中止する。カード(100)は、外部機器(200)、サ ーバ(300)に結果を出力する(D05)際、正常終了ではなぐハッシュが異なるという 旨を示すエラーコードを出力する(S86)。数値計算手段(1004)は、記憶手段(100 5)で保持するカード RSA秘密鍵 (M04)を使って、喑復号手段(1006)で暗号化さ れたアプリケーション喑号鍵 (A04)を復号し、アプリケーションコード喑号鍵 (A01) を取得する(S87)。数値計算手段(1004)は、次のアプリケーションコードを低速通 信路ではなぐ高速通信路を使ってコードを受信する判断をし、記憶制御手段(100
3)からコードを展開するアドレス情報を取得し、領域制御手段(1010)に通知する。数 値計算手段(1004)は、復号したアプリケーションコード暗号鍵 (A01)を、領域制御 手段(1010)に通知する。領域制御手段(1010)は、受信したアドレス情報を保持し、 アドレス情報に対応した外部に公開するためのエリア番地とエリアサイズ (以下、前記 2つの情報を合わせてエリア情報とする)を生成し、数値計算手段(1004)に送信す る(S88)。数値計算手段(1004)は、前記エリア情報を外部機器 (200)に出力する( D05)。領域制御手段(1010)は、受信したアプリケーションコード暗号鍵 (A01)を 復号用鍵として設定する。
[0066] 外部機器(200)は、受信したエリア情報を使って、高速通信路を利用して、書き込 むエリア番地と書き込むエリアサイズ (書込みサイズ)をカードに通知するコマンド(以 下、領域情報設定コマンドとする)を送信する(D06)。エリアサイズは、通知されたサ ィズより小さくなつてもかまわない。通信手段(1001)は、前記領域情報設定コマンド を受信し、そのデータをコマンド解釈手段(1002)に送信する。コマンド解釈手段(1 002)は、前記領域情報設定コマンドを解釈し、領域制御手段(1010)にエリア番地 と書き込むサイズを通知する。領域制御手段(1010)は、エリア番地を確認し、書込 みサイズを設定する(S89)。番地が異なる場合や、サイズが予め通知したサイズより 大きい場合はエラーとなる。
[0067] 次に通信手段(1001)は、サーバ(300)から、高速通信路を使って送信された喑 号化されたアプリケーションコード (A03)を外部機器(200)経由で受信する(D07) 。通信手段(1001)は、前記データをコマンド解釈手段(1002)に渡す。コマンド解 釈手段(1002)は、受信したデータを領域制御手段(1010)に送信する。
[0068] 領域制御手段(1010)は、前記のアプリケーション暗号鍵 (AO 1)を用いて、暗号化 された個別イニシャルデータの復号を喑復号手段(1006)で行い、アプリケーション コード (A02)を取得する(S 90)。領域制御手段(1010)はアプリケーションコ一ド (A 02)のハッシュをハッシュ生成手段(1009)で生成する(S91)。数値計算手段(100
4)は、復号したアプリケーションコード (A02)を記憶手段(1005)に仮格納する(S9 2)。
[0069] 次に、通信手段(1001)は、照合を要求するコマンドを外部機器(200)から受信し
(D08)、数値計算手段(1004)に渡す。数値計算手段(1004)は、領域制御手段( 1010)で生成したハッシュを取得し、製造者の公開鍵 (M01)を使って管理データに 含まれていた署名(A05)を喑復号手段(1006)で復号してハッシュを取得し、前記 取得したアプリケーションコードのハッシュと照合手段(1007)で照合する(S93)。異 なる場合、数値計算手段(1004)はインストール処理を中止する。数値計算手段(10 04)は、外部機器(200)、サーバ(300)に結果を出力する(D09)際、正常終了では なぐハッシュが異なるという旨を示すエラーコードを出力する。同じである場合、数値 計算手段(1004)は、判断手段(1008)に署名が正常であることを通知し、インスト一 ル処理を終了する(S94)。判断手段(1008)は、署名が正当である通知を受け、署 名と一緒に暗号化されていた個別イニシャルデータのハッシュ、共通データを正当で あると判断し、該当アプリケーションに関連する共通データ、個別イニシャルデータ、 アプリケーションコードをカード内で動作可能な状態に変更させる。数値計算手段(1 004)は、正常終了した旨を示すコードを外部機器(200)、サーバ(300)に出力する (D09)。
[0070] 本発明では、外部機器(200)は、カード(100)からの出力データに付与された領 域情報 (D01、 D05)を使って、高速通信路を使うタイミングと書き込み対象領域、対 象領域サイズを知ることができる。外部機器(200)は、受信した前記領域情報をカー ド(100)に送信して、次に高速通信路を使って書き込む領域情報とサイズをカード( 100)に伝える(D02、 D06)。その次に高速通信路を使って、カード(100)にデータ (個別イニシャルデータ、アプリケーションコード)を書き込む(D03、 D07)。
[0071] 本発明を使うことにより、外部機器(200)がサーバ(300)からの暗号データを受信 するだけでは知りえない情報、すなわち、カード(100)が通信路を複数持っているの 、、またはどのタイミングで低速通信路と高速通信路を切り替えるの力、、どこにデータ を書き込むのかという点を一度に通知することができる。
[0072] 外部機器(200)は、前記の通信路の本数についてはカード(100)の識別情報から 判別することも可能であり、タイミングについてはカード(100)に送信する暗号データ の種別を事前に外部機器(200)が知っていれば、切り替えることが可能である。だが 、データを書き込む領域につ!/、てはカード(100)から情報を取得しな!/、と知ることが 不可能である。そのため前記領域情報を取得した時に切り替え作業を行うことが、他 の判別方法を行わずに済み、効率が良い。
[0073] また、アプリ開発者 (P2)がカード製造者 (P1)に対して署名の申請をする方法にお いて、アプリ開発者 (P2)を物理的、視覚的、社会的に確認する方法は、システムの 規定外であり、公共機関、金融機関等が実施している本人確認方法を利用しても構 わない。また、生成された署名を配送する仕組みや、カード製造者 (P1)からアプリ開 発者 (P2)に配布される開発環境を配送する仕組みにおいても同様に、一般的な配 布方法を採用するとし言及しない。また、上記の開発環境を使って、署名の申請を行 い、アプリ開発者先にある開発環境と製造者間で暗号セッションを構築し署名を配送 することも可能である力 開発環境の配布が正しく安全にできないと実現できない。
[0074] 本実施例では、プレイヤ一としてアプリ開発者、サービス提供者、サーバ運用者の 3 者に分けている力 3者の処理内容として、共通に使うデータを構築する、個別に使う データを構築する、それを配信するという形態に限定されるわけではない。最終的な 信用ポイントを製造者が付与するアプリケーションの署名においており、それに関連 付けされたデータを含めて信用してインストールするところが本特許の目的であり、前 記の 3者が行う処理内容の変更によって、本発明は何ら影響を受けない。
[0075] 尚、本実施例では、全カードに共通のカード RSA秘密鍵(M04)を設定しているが 、何らそれを限定するものではなぐ全カードに個別のカード RSA秘密鍵 (M04)が 設定されていても問題ない。その場合は、カード RSA秘密鍵 (M04)に対応する公 開鍵証明書をカード内で保持しておき、サーバにその公開鍵証明書を送付する。サ ーバ側は、証明書の正当性を検証後に、その証明書に含まれる公開鍵を利用して、 データ(個別イニシャルデータ、アプリケーションコード)を暗号化することができるの で、カード個別にデータを送付することが可能である。
[0076] 尚、本実施例では、カードにカード製造者 (P1)の公開鍵 (M01)を設定しているが 、何らそれを限定するものではなぐカード製造者から署名処理の権限を委譲された 事業者であれば、代理で署名処理を行う事ができる。その場合は、カード製造者は、 権限を委譲する事業者の公開鍵ペアにカード製造者の秘密鍵を用いて、証明書を 発行する。委譲された事業者は、自身の秘密鍵を使って、アプリケーションコードに 署名を付与する。委譲された事業者は、製造者が発行した前記証明書をカードに送 付する。カードは、受信した証明書に対して、カード内にあるカード製造者の公開鍵( M01)を用いて証明書検証を行い、正当であると判断できたら、証明書に含まれる公 開鍵をアプリケーションの署名検証用鍵として用いる。委譲された事業者が生成した 署名を含む暗号データをカードに送付すると、カードは、前記署名検証用鍵を使用 するため、委譲された事業者が生成した署名の正当性を確認することができる。
[0077] 尚、本実施例で記載しているハッシュを生成する方法は一方向性関数を使ってお り、従来技術では、 SHA— 1や MD5、 SHA— 256などを指している。使用する目的 とするところは、大規模なデータを要約し、少ないデータ量で識別することであり、前 記データがすでに小さ!/、もので、ハッシュをする生成する必要がなければそのままの 値を比較しても良い。
[0078] 尚、本実施例で記載している署名は公開鍵暗号方式の場合に限って記載している のではなぐ利用する暗号アルゴリズムが共通鍵暗号方式であれば、署名はメッセ一 ジ認証コード(MAC : Massage Authentication Code)に当たる。署名の生成方 法に関して、本実施例ではハッシュを作成してから秘密鍵にて署名を施しているが、 前記ハッシュを生成する方法でも記載した力 データがすでに小さ!/、ものであれば、 前記データをそのまま利用しても構わない。
[0079] 尚、本実施例では、サーバと外部機器間の通信路については、 HTTP,もしくは H TTPSと記載した力 それに限定されるものではなぐ有線、無線に関係無ぐ一般的 にサーバと外部機器が通信する方法であれば、本発明に何ら影響はない。よって、 サーバと外部機器が独自に暗号通信を行うことも可能であり、前記暗号通信を行うこ とによってカードの振る舞いは変わらな!/、。
[0080] 本実施例で示しているシステム力 S、本発明のセキュアメモリカードシステムの一例で あり、システム内で使用されているカードがセキュアメモリカードにあたり、外部機器が アクセス装置にあたる。またカード内に含まれる記憶手段が不揮発性メモリにあたり、 それ以外の手段を実現しているの力 S、本発明のメモリコントローラにあたる。 [0081] 本発明を詳細にまた特定の実施態様を参照して説明したが、本発明の精神と範囲 を逸脱することなく様々な変更や修正を加えることができることは当業者にとって明ら 力、である。
本出願は、 2006年 8月 10日出願の日本特許出願(特願 2006— 218795)に基づくも のであり、その内容はここに参照として取り込まれる。
産業上の利用可能性
[0082] 本発明に力、かるセキュアメモリカードは、データを受信し、保存するセキュアメモリ力 ードとして禾 lj用できる。

Claims

請求の範囲
[1] 少なくとも、暗号データと署名対象データとを受信する通信手段と、
任意のデータに対して喑復号処理を行う喑復号手段と、
前記署名対象データと、前記喑復号手段で復号された前記暗号データに格納され ている署名と、を照合する照合手段と、
前記照合手段の照合結果に基づいて、前記署名対象データの正当性を判断する 判断手段と、
前記判断手段により前記署名対象データが正当であると判断されるとき、前記署名 が含まれている前記暗号データの前記署名以外のデータを正当なデータとして記憶 する記憶手段と
を備える、セキュアメモリカード。
[2] 前記通信手段は、第 1の暗号データと第 2の暗号データとを受信し、
前記照合手段は、前記喑復号手段で復号された前記第 1の暗号データに含まれる 第 1のデータである署名と、前記第 2の暗号データを復号したデータとを照合し、 前記判断手段は、前記照合手段の照合結果に基づいて、前記第 2の復号データ の正当性を判断し、
前記記憶手段は、前記判断手段により、前記第 2の暗号データが正当であると判断 されるとき、前記第 1の暗号データに含まれる第 2のデータを正当なデータとして記憶 する請求項 1記載のセキュアメモリカード。
[3] さらに、前記通信手段は、第 3の暗号データを受信し、
前記第 1の暗号データに含まれる第 3のデータは、前記第 3の暗号データのハツシ ュであり、前記判断手段は、前記ハッシュを用いて、前記第 3の暗号データの正当性 を検証する、請求項 2記載のセキュアメモリカード。
[4] 前記第 1の暗号データに含まれる複数の第 3のデータは、複数の第 3の暗号データ それぞれのハッシュであり、前記判断手段は、前記複数の第 3のデータそれぞれの ハッシュを用いて、前記複数の第 3の暗号データそれぞれの正当性を判断する、請 求項 3記載のセキュアメモリカード。
[5] 参照先を示すリンク情報が、前記第 1の暗号データに含まれる、請求項 2記載のセ キュアメモリカード。
[6] さらに、前記記憶手段は、セキュアメモリカードの製造者が製造するときと、セキュア メモリカードを発行するときとのいずれかに設定した、第 1の暗号鍵情報を記憶する、 請求項 2記載のセキュアメモリカード。
[7] さらに、前記通信手段は、第 4の暗号データを受信し、
前記喑復号手段は、前記第 1の暗号鍵情報を用いて前記第 4の暗号データを復号 し、復号した第 4の暗号データを第 2の暗号鍵として前記第 1の暗号データと前記第 2の暗号データと前記第 3の暗号データとを復号する、請求項 3記載のセキュアメモリ カード。
[8] さらに、前記第 2の暗号鍵と、復号した前記第 1の暗号データと前記第 2の喑号デ ータと前記第 3の暗号データとを含む格納データと、を管理する復号鍵管理手段を 備える、請求項 7記載のセキュアメモリカード。
[9] 前記格納データを更新する際に、前記格納データを、前記第 1の暗号鍵で復号し た後、前記第 2の暗号鍵で復号する、請求項 8記載のセキュアメモリカード。
[10] 外部機器に対して、前記第 2の暗号データと、前記第 3の暗号データとの少なくとも 一方のデータを記憶する前記記憶手段の領域を示す、領域情報を送信する領域制 御手段を備え、前記領域情報を前記外部機器に送信することを特徴とする請求項 3 に記載のセキュアメモリカード。
[11] 前記署名は前記製造者によって作成される、請求項 6記載のセキュアメモリカード。
[12] 前記第 1の暗号データは、前記カード内で実行可能なアプリケーションを管理する ためのデータであり、前記第 2の暗号データは、前記実行可能なアプリケーションコ ード自体であり、前記第 3の暗号データは、アプリケーションが使うデータであることを 特徴とする請求項 3に記載のセキュアメモリカード。
[13] 少なくとも、暗号データと署名対象データとを受信する通信手段と、
任意のデータに対して喑復号処理を行う喑復号手段と、
前記署名対象データと、前記喑復号手段で復号された前記暗号データに格納され ている署名と、を照合する照合手段と、
前記照合手段の照合結果に基づいて、前記署名対象データの正当性を判断する 判断手段と、
前記判断手段により前記署名対象データが正当であると判断されるとき、前記署名 が含まれている前記暗号データの前記署名以外のデータを正当なデータとして記憶 する記憶手段と
を備える、メモリコントローラ。
[14] 前記通信手段は、第 1の暗号データと第 2の暗号データとを受信し、
前記照合手段は、前記第 1の暗号データに含まれる第 1のデータである署名と、前 記第 2の暗号データを復号したデータとを照合し、
前記照合手段により、前記復号した第 2の暗号データが正当であると判断されると き、前記第 1の暗号データに含まれる第 2のデータを正当なデータとして前記記憶手 段に記憶される請求項 13記載のメモリコントローラ。
[15] さらに、前記通信手段は、第 3の暗号データを受信し、
前記第 1の暗号データに含まれる第 3のデータは、前記第 3の暗号データのハツシ ュであり、前記判断手段は、前記ハッシュを用いて、前記第 3の暗号データの正当性 を検証する、請求項 14記載のメモリコントローラ。
[16] 前記第 1の暗号データは、前記カード内で実行可能なアプリケーションを管理する ためのデータであり、前記第 2の暗号データは、前記実行可能なアプリケーションコ ード自体であり、前記第 3の暗号データは、アプリケーションが使うデータであることを 特徴とする請求項 15に記載のメモリコントローラ。
[17] アクセス装置と、前記アクセス装置からのアクセス指示に応じてデータの読み出し、 書き込みを行うセキュアメモリカードとを有したセキュアメモリカードシステムであって、 前記セキュアメモリカードは、
不揮発性メモリと、
少なくとも、暗号データと署名対象データとを受信する通信手段と、
任意のデータに対して喑復号処理を行う喑復号手段と、
前記署名対象データと、前記喑復号手段で復号された前記暗号データに格納され ている署名と、を照合する照合手段と、
前記照合手段の照合結果に基づいて、前記署名対象データの正当性を判断する 判断手段と、
前記判断手段により前記署名対象データが正当であると判断されるとき、前記署名 が含まれている前記暗号データの前記署名以外のデータを正当なデータとして記憶 する記憶手段と
を備える、メモリコントローラを有し、
前記通信手段を使用して、前記判断手段が算出した結果を前記アクセス装置に通 知することを特徴とするセキュアメモリカードシステム。
不揮発性メモリを有するセキュアメモリカードと接続して使用するアクセス装置であ つて、
前記アクセス装置は、
前記セキュアメモリカードと通信するための通信手段と、
前記セキュアメモリカードに送信するデータを記憶する記憶手段と、
前記記憶手段から前記セキュアメモリカードに送信するデータを読み出し、前記セ キュアメモリカードが受信可能なデータに変換するプロトコル変換手段を有し、 前記セキュアメモリカードから通知される結果を受信し、前記結果に基づき、前記セ キュアメモリカードとの通信を制御することを特徴とするアクセス装置。
PCT/JP2007/065443 2006-08-10 2007-08-07 Contrôleur de mémoire, carte mémoire sécurisée et système de carte mémoire sécurisée WO2008018457A1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US12/088,591 US20100153746A1 (en) 2006-08-10 2007-08-07 Memory controller, secure memory card, and secure memory card system
JP2008528829A JPWO2008018457A1 (ja) 2006-08-10 2007-08-07 メモリコントローラ、セキュアメモリカード、及びセキュアメモリカードシステム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2006-218795 2006-08-10
JP2006218795 2006-08-10

Publications (1)

Publication Number Publication Date
WO2008018457A1 true WO2008018457A1 (fr) 2008-02-14

Family

ID=39032987

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2007/065443 WO2008018457A1 (fr) 2006-08-10 2007-08-07 Contrôleur de mémoire, carte mémoire sécurisée et système de carte mémoire sécurisée

Country Status (5)

Country Link
US (1) US20100153746A1 (ja)
JP (1) JPWO2008018457A1 (ja)
KR (1) KR20090040246A (ja)
TW (1) TW200818839A (ja)
WO (1) WO2008018457A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010268417A (ja) * 2009-04-16 2010-11-25 Toshiba Corp 記録装置及びコンテンツデータ再生システム
JP2011258070A (ja) * 2010-06-10 2011-12-22 Sony Corp 通信装置、通信方法、及び、通信システム
US8745391B2 (en) 2011-04-28 2014-06-03 Kabushiki Kaisha Toshiba Data recording device, host device and method of processing data recording device
JP2017509082A (ja) * 2014-03-25 2017-03-30 オベルトゥル テクノロジOberthur Technologies 不揮発性メモリ又はセキュア素子へのデータの読み込みを安全に行うこと

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8826037B2 (en) * 2008-03-13 2014-09-02 Cyberlink Corp. Method for decrypting an encrypted instruction and system thereof
JP5369916B2 (ja) * 2009-06-11 2013-12-18 ソニー株式会社 カード管理装置およびカード管理システム
US9846789B2 (en) 2011-09-06 2017-12-19 International Business Machines Corporation Protecting application programs from malicious software or malware
US9954875B2 (en) 2009-06-26 2018-04-24 International Business Machines Corporation Protecting from unintentional malware download
US8578175B2 (en) * 2011-02-23 2013-11-05 International Business Machines Corporation Secure object having protected region, integrity tree, and unprotected region
US8954752B2 (en) 2011-02-23 2015-02-10 International Business Machines Corporation Building and distributing secure object software
US9298894B2 (en) * 2009-06-26 2016-03-29 International Business Machines Corporation Cache structure for a computer system providing support for secure objects
US8819446B2 (en) 2009-06-26 2014-08-26 International Business Machines Corporation Support for secure objects in a computer system
US9864853B2 (en) 2011-02-23 2018-01-09 International Business Machines Corporation Enhanced security mechanism for authentication of users of a system
US9223965B2 (en) 2013-12-10 2015-12-29 International Business Machines Corporation Secure generation and management of a virtual card on a mobile device
US9235692B2 (en) 2013-12-13 2016-01-12 International Business Machines Corporation Secure application debugging
US11632244B2 (en) * 2020-09-14 2023-04-18 Paypal, Inc. Techniques for single round multi-party computation for digital signatures

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003317043A (ja) * 2002-04-23 2003-11-07 Nippon Telegr & Teleph Corp <Ntt> 広域アプリケーション管理者によるicカード相互運用方法及びシステム
JP2004023456A (ja) * 2002-06-17 2004-01-22 Fujitsu Ltd ファイル交換装置、個人情報登録・紹介サーバ、送信制御方法、及びプログラム
JP2005071328A (ja) * 2003-08-06 2005-03-17 Matsushita Electric Ind Co Ltd セキュアデバイス、情報処理端末、集積回路、端末アプリ生成装置、アプリケーション認証方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3114991B2 (ja) * 1990-11-30 2000-12-04 株式会社東芝 データ通信システム
US6268788B1 (en) * 1996-11-07 2001-07-31 Litronic Inc. Apparatus and method for providing an authentication system based on biometrics
US6446206B1 (en) * 1998-04-01 2002-09-03 Microsoft Corporation Method and system for access control of a message queue

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003317043A (ja) * 2002-04-23 2003-11-07 Nippon Telegr & Teleph Corp <Ntt> 広域アプリケーション管理者によるicカード相互運用方法及びシステム
JP2004023456A (ja) * 2002-06-17 2004-01-22 Fujitsu Ltd ファイル交換装置、個人情報登録・紹介サーバ、送信制御方法、及びプログラム
JP2005071328A (ja) * 2003-08-06 2005-03-17 Matsushita Electric Ind Co Ltd セキュアデバイス、情報処理端末、集積回路、端末アプリ生成装置、アプリケーション認証方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010268417A (ja) * 2009-04-16 2010-11-25 Toshiba Corp 記録装置及びコンテンツデータ再生システム
US8578177B2 (en) 2009-04-16 2013-11-05 Kabushiki Kaisha Toshiba Recording device, and content-data playback system
US9083512B2 (en) 2009-04-16 2015-07-14 Kabushiki Kaisha Toshiba Recording device, and content-data playback system
JP2011258070A (ja) * 2010-06-10 2011-12-22 Sony Corp 通信装置、通信方法、及び、通信システム
US8804959B2 (en) 2010-06-10 2014-08-12 Sony Corporation Communication device, communication method, and communication system
US8745391B2 (en) 2011-04-28 2014-06-03 Kabushiki Kaisha Toshiba Data recording device, host device and method of processing data recording device
US9094193B2 (en) 2011-04-28 2015-07-28 Kabushiki Kaisha Toshiba Information recording device
US9413532B2 (en) 2011-04-28 2016-08-09 Kabushiki Kaisha Toshiba Information recording device
JP2017509082A (ja) * 2014-03-25 2017-03-30 オベルトゥル テクノロジOberthur Technologies 不揮発性メモリ又はセキュア素子へのデータの読み込みを安全に行うこと

Also Published As

Publication number Publication date
US20100153746A1 (en) 2010-06-17
JPWO2008018457A1 (ja) 2009-12-24
TW200818839A (en) 2008-04-16
KR20090040246A (ko) 2009-04-23

Similar Documents

Publication Publication Date Title
WO2008018457A1 (fr) Contrôleur de mémoire, carte mémoire sécurisée et système de carte mémoire sécurisée
JP7364674B2 (ja) 安全な無線ファームウェアアップグレード
CN101828357B (zh) 用于证书提供的方法和装置
JP5136012B2 (ja) データ送付方法
EP2845141B1 (en) Method and system for activation
US8495383B2 (en) Method for the secure storing of program state data in an electronic device
JP5400611B2 (ja) メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びアクセス装置
US9124561B2 (en) Method of transferring the control of a security module from a first entity to a second entity
JP2004280284A (ja) 制御プロセッサ、電子機器及び電子機器のプログラム起動方法、並びに電子機器のシステムモジュール更新方法
EP2372592B1 (en) integrated circuit and system for installing computer code thereon
CN113411190B (zh) 密钥部署、数据通信、密钥交换、安全加固方法及系统
JP5380583B1 (ja) デバイス認証方法及びシステム
CN113497778A (zh) 一种数据的传输方法和装置
WO2019051839A1 (zh) 一种数据处理的方法及装置
JP2004507156A (ja) 任意通信サービスのセキュリティ確保
JP2020088726A (ja) 鍵生成装置、鍵更新方法および鍵更新プログラム
KR20150052346A (ko) 고유의 코드 서명 키들의 보안 관리 및 개인화
JP5391743B2 (ja) 決済処理セキュリティ情報配信方法、決済処理セキュリティ情報配信システム、そのセンタ装置、サーバ装置、決済端末、及びプログラム
KR101341206B1 (ko) 제2 장치에 신뢰 및 식별을 승인하기 위해 보안 장치를레버리지하는 방법
KR100757685B1 (ko) Pki 기반 스마트 카드용 명령어 전송 서버 인증 방법 및시스템
JP6894469B2 (ja) 情報処理装置およびその制御プログラム
WO2023073198A1 (en) Method to store data persistently by a software payload
JP4683260B2 (ja) 情報処理システム、情報処理装置、サーバ装置、および情報処理方法
JP2004252578A (ja) 提供元のicカード、提供先のicカード、情報授受媒介装置、icカード間情報授受システム、icカードプログラム、プログラム及びicカード間情報授受方法
EP2958265B1 (en) Revocation of a root certificate stored in a device

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 2008528829

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 12088591

Country of ref document: US

Ref document number: 1020087007551

Country of ref document: KR

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 07792112

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

NENP Non-entry into the national phase

Ref country code: RU

122 Ep: pct application non-entry in european phase

Ref document number: 07792112

Country of ref document: EP

Kind code of ref document: A1