WO2005008502A1 - アクセス方法 - Google Patents

アクセス方法 Download PDF

Info

Publication number
WO2005008502A1
WO2005008502A1 PCT/JP2004/010432 JP2004010432W WO2005008502A1 WO 2005008502 A1 WO2005008502 A1 WO 2005008502A1 JP 2004010432 W JP2004010432 W JP 2004010432W WO 2005008502 A1 WO2005008502 A1 WO 2005008502A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
verification
area
command
access
Prior art date
Application number
PCT/JP2004/010432
Other languages
English (en)
French (fr)
Inventor
Yoshihiko Takagi
Takafumi Kikuchi
Original Assignee
Matsushita Electric Industrial Co., Ltd.
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 Matsushita Electric Industrial Co., Ltd. filed Critical Matsushita Electric Industrial Co., Ltd.
Priority to US10/527,820 priority Critical patent/US7559090B2/en
Priority to EP04747821.9A priority patent/EP1560120B1/en
Publication of WO2005008502A1 publication Critical patent/WO2005008502A1/ja
Priority to IL167269A priority patent/IL167269A/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/357Cards having a plurality of specified features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/409Device specific authentication in transaction processing
    • G06Q20/4097Device specific authentication in transaction processing using mutual authentication between devices and transaction partners

Definitions

  • the present invention relates to a memory card used by being inserted into a terminal such as a PC or a mobile phone, and a method of accessing a memory card.
  • a memory card is inserted into a terminal and the terminal stores the data.
  • the following is an example of a conventional memory card (for example, Japanese Patent Application No. 2003-91704).
  • the card accepts various commands from the terminal and returns a response to the command (CMD line).
  • the card accepts data input and outputs data (DAT line). have.
  • the terminal 4602 is a CMD line
  • the terminals 4607, 4608, and 4609 are DAT lines, which are DAT 0, DAT 1, and DAT 2, respectively.
  • Terminal C2-01 is a CD / DAT3 that doubles for data input / output and card detection (CD).
  • CD data input / output and card detection
  • the module in the force transmitter / receiver 4701 for command reception and response transmission connected to the CMD line 4602 and data transmission / reception connected to the DAT lines 4607, 4608, 4609 and C2-01 De It consists of an evening transmission / reception means 4702, a storage area 4704, and a storage area access means 4703 which reads and writes data to and from the storage area 4704 in accordance with a received command.
  • the output of the default is as follows: It is assumed that the mode is set to use only the DAT 0 terminal 4607, but the DAT1 terminal 4608, DAT2 terminal 4609, DA A mode in which the T3 terminal 4610 is also used may be used.
  • the terminal sends a data read command to the CMD line 462 of the card.
  • This read command has the format shown in FIG. 7, and is composed of a 6-bit command code 401 and a 32-bit command argument 402.
  • the command argument in the data read command is the read start address.
  • the processing instruction receiving means 4701 which has received the command from the terminal, refers to the command code 401 and recognizes that it is a data read command.
  • the processing instruction receiving means 4701 refers to the command bow I number 402 and determines whether the specified address is correct, that is, is specified in the range corresponding to the force. Check if the address is correct, and if the address is not correct, return a response code indicating that there is an error as a response. If the address is correct, it returns a response code indicating that it is normal.
  • the processing instruction receiving means 4701 After returning the response to the terminal, the processing instruction receiving means 4701 issues a read request to the storage area access means 4703 together with the specified address.
  • the storage area access means 4703 reads out the data from the specified address of the storage area 4704 and transmits it to the data transmission / reception means 4702.
  • the data transmission / reception means 4702 reads out to the terminal via the DAT0 line 4607 and outputs the data.
  • the address can be freely specified by specifying the address from the terminal. Can read and write.
  • the command argument This includes the access area specification information (such as the address to be accessed) and the verification data for authentication.
  • the size of the command bow I number 402 of the data read command is as described above. Since it is fixed at 32 bits, if the size of the verification data for authentication is increased to improve security, the length of the access area designation information is shortened and the accessible area is limited. On the other hand, if the size of the verification data is reduced, the security strength is reduced.
  • the access area designation information is sent to the memory card by the memory capacity command that specifies the access area, and then the IC capacity is communicated between the host and the memory card.
  • Security information that includes key information shared or pre-shared using flexible authentication processing using password commands and authentication verification data generated using the access area designation information.
  • the access method is an access method from a device to a memory device, wherein the device transmits designation information for designating an access area to the memory device; Transmitting together a processing instruction to the access area and verification information relating to the designation information; and the memory A step of receiving the designation information; a step of receiving the processing instruction and the verification information; and a step of verifying the designation information by using the verification information.
  • an access method is an access method from a device to a memory device, wherein the device and the memory device are capable of accessing to a memory device.
  • a step of referring to the possible area information and transmitting designation information for designating an access area to the memory device; a processing instruction to the access area; and a verification of the designation information Transmitting the information and the information together; the memory device receiving the specified information; receiving the processing instruction and the verification information; and verifying the specified information using the verification information. And executing the processing instruction when the verification is successful.
  • an access method is a method of accessing a memory device from a device, wherein the device shares a verification key with the memory device; Transmitting designation information for designating an access area to the memory device; processing instructions for the access area; and verification data obtained by encrypting verification information on the designated information with the verification key. Transmitting, the memory device receiving the specified information, receiving the processing instruction and the verification data, and transmitting the specified information to the verification data and the verification key. Verifying using the command, and executing the processing instruction if the verification is successful.
  • an access method is a method for accessing a memory device from a device, the device comprising: a memory device; and a possible area information regarding an accessible area to the memory device. Sharing the verification key corresponding to the accessible area with the memory device; and specifying the access area to the memory device with reference to the accessible area information. Transmitting information; and the accessing Transmitting together a processing instruction to the area, and verification data obtained by encrypting verification information related to the specified information with the verification key; and the memory device receives the specified information. Receiving the processing instruction and the verification data, and verifying the specified information using the verification data and the verification key; and executing the processing instruction if the verification is successful. And the step of performing.
  • an access method is a method for accessing a memory device from a device, wherein the device communicates with the memory device using a first processing command. Sharing available area information on an accessible area to the device, and transmitting designation information for designating an access area to the memory device using a second processing command with reference to the available area information Transmitting, together with the processing instruction to the access area, and verification information relating to the designation information, using the second processing system command; and Receiving, receiving the processing instruction and the verification information, and verifying the designated information using the verification information; If successful in the serial verification, with a, and vinegar Tedzupu for executing the processing instructions.
  • an access method is a method for accessing a memory device from a device, wherein the device uses a first processing command to communicate with the memory device using a verification key. Sharing the information, specifying the access area to the memory device using a second processing command, and transmitting the access information using the second processing command. Transmitting together a processing instruction to the area and verification data obtained by encrypting verification information on the specified information with the verification key, and a step in which the memory device receives the specified information. Receiving the processing instruction and the verification data, and verifying the specified information using the verification data and the verification key; and the verification succeeds. If so, executing the processing instruction.
  • an access method is a method for accessing a memory device from a device, the memory device comprising: a tamper-resistant first region in which access from the device is restricted. A non-tamper-resistant second area in which access from the device is restricted, and a third area accessible from the device, wherein at least a processing instruction to the first area is given.
  • the device includes a memory device and a first processing system command.
  • an access method is a method for accessing a memory device from a device, the memory device comprising: a tamper-resistant first region in which access from the device is restricted. A non-evenness-resistant second area in which access from the device is restricted, and a third area accessible from the device, and at least a processing instruction to the first area.
  • a memory device is a memory device that is read / written from / to an apparatus, receives designation information for designating an area to be accessed, and reads verification information and read / write information based on the designation information.
  • a processing command receiving means for receiving a write command together with the specified information; a specified information verifying means for performing a verification process using the verification information; a storage area for storing data; If the management is successful, a storage area access means for reading or writing to the specified area of the storage area in accordance with the processing command; and a data read by the storage area access means to the device.
  • a data transmitting unit for transmitting; and a data receiving unit for receiving the written data from the device.
  • the information device is an information device that reads and writes a memory device, determines a region to be read or written, and specifies specification information that specifies the region.
  • a verification information generating unit that performs a process of generating the verification information from the specification information; a transmission of the specification information; and a processing instruction transmission unit that transmits the verification information and a read or write processing instruction together;
  • a data transmission means for transmitting data to the memory device when the processing instruction is write; a data reception means for receiving data from the memory device when the processing instruction is read;
  • an access method is a method of accessing a memory device from a device, wherein the device transmits designation information for designating an access area to the memory device. Processing to the access area Sending together a verification command and verification data obtained by encrypting verification information related to the specified information with a verification key; the memory device receiving the specified information; and Receiving the command and the verification data, and verifying the specified information using the verification data and a verification key; and executing the processing command if the verification is successful.
  • an access method is a method for accessing a memory device from a device, wherein the device is capable of relating to an accessible area to the memory device using a first processing command. Sharing area information; sharing a verification key corresponding to the accessible area using a first processing command; and using the second processing command to access the memory device. Transmitting designation information for designating an access area; a processing command for the access area using a second processing command; and a verification data obtained by encrypting verification information on the designated information with the verification key.
  • a step of transmitting the same together a step of receiving the designation information, a step of receiving the designation information, and a step of Receives, and verifying by using the said designation information the verification data and the previous SL verification key, if successful in the verification has a Sutedzupu to perform pre-Symbol processing instruction, the.
  • an access method is a method for accessing a memory device from a device, the memory device comprising: a tamper-resistant first region in which access from the device is restricted. A non-evening-resistant, large-capacity second area in which access from the device is restricted; and a large-capacity third region accessible from the device, and at least the first area. And a second processing system command that is a processing instruction to at least the third area.
  • a first processing system command to share available area information relating to an accessible area to the memory device; and Vinegar sharing a verification key that pair j core to the access area Transmitting, using a tape and a second processing command, designation information for specifying an access area to the second area; and a processing instruction to the access area using the second processing command.
  • a verification data obtained by encrypting verification information related to the specification information with the verification key, and the memory device further comprising: a step of receiving the specification information; a step of: Receiving the verification data and verifying the specified information using the verification data and the verification key; and executing the processing command if the verification is successful.
  • FIG. 1 is a diagram showing a terminal configuration of a conventional memory card
  • FIG. 2 is a diagram showing a conventional module configuration in a card.
  • FIG. 3 is a diagram showing an internal module configuration of a memory device according to the first embodiment of the present invention
  • FIG. 4 is a diagram showing a terminal configuration of a card according to Embodiment 1 of the present invention
  • FIG. 5 is a diagram showing an internal configuration of a terminal according to Embodiment 1 of the present invention
  • FIG. 6 is a diagram showing an outline of processing performed between the card and the terminal according to Embodiment 1 of the present invention.
  • FIG. 5 is a diagram showing a sequence of an APDU transmission / reception method according to Embodiment 1 of the present invention
  • FIG. 8 is a diagram showing a sequence of a response APDU transmission process according to Embodiment 1 of the present invention.
  • FIG. 9 is a diagram showing a command format of the memory card according to Embodiment 1 of the present invention.
  • FIG. 10 is a diagram showing an internal configuration of the flash memory according to the first embodiment of the present invention.
  • FIG. 11 shows the internal configuration of the security protection area according to Embodiment 1 of the present invention.
  • FIG. 12 is a diagram showing an internal configuration of each application area in the security protection area according to Embodiment 1 of the present invention.
  • FIG. 13 is a diagram showing a session key sharing and accessible area sharing procedure according to Embodiment 1 of the present invention.
  • FIG. 14 is a flowchart for explaining details of the processing in step 93 of FIG. 13 according to Embodiment 1 of the present invention.
  • FIG. 15 is a flowchart for explaining details of the processing in step 905 of FIG. 13 according to the first embodiment of the present invention.
  • FIG. 16 is a flowchart according to the first embodiment of the present invention.
  • 11 is a flowchart for explaining details of the processing in step 9907 of FIG.
  • FIG. 17 is a diagram showing a command sequence for reading a security protected area from the terminal according to Embodiment 1 of the present invention.
  • FIG. 18 is a diagram showing an argument format of an APDU transmission command according to Embodiment 1 of the present invention.
  • FIG. 19 is a diagram showing an argument format of an APDU reception command according to Embodiment 1 of the present invention.
  • FIG. 20 is a diagram showing an input data of an APDU transmission command and an output data format of an APDU reception command according to Embodiment 1 of the present invention
  • FIG. 21 is a diagram showing an input format of an access area designation command according to the first embodiment of the present invention.
  • FIG. 22 is a diagram showing access area designation information according to Embodiment 1 of the present invention.
  • FIG. 23 is a diagram showing verification data for verifying the validity of the terminal according to Embodiment 1 of the present invention. Diagram showing a generation method
  • FIG. 24 is a diagram showing a generation method based on a verification command for performing terminal validity verification according to Embodiment 1 of the present invention.
  • FIG. 25 shows that the terminal according to Embodiment 1 of the present invention writes in the security protection area. Diagram showing a command sequence for writing
  • FIG. 26 is a diagram showing an internal module configuration of a memory card according to Embodiment 2 of the present invention.
  • FIG. 27 is a diagram showing the internal configuration of the terminal according to Embodiment 2 of the present invention.
  • FIG. 28 is a flowchart showing processing when the terminal according to Embodiment 2 of the present invention accesses the security protected area of the card
  • FIG. 29 is a diagram showing an example of a data portion of an area designation instruction according to Embodiment 2 of the present invention.
  • FIG. 30 is a diagram showing a format of the access area designation information of FIG. 29 according to Embodiment 2 of the present invention.
  • FIG. 31 is a diagram illustrating an example of a method for generating comparison information according to the second embodiment of the present invention.
  • FIG. 32 is a diagram illustrating a case where a verification key sharing unit is provided in the inside according to the second embodiment of the present invention. Diagram showing the card configuration of
  • FIG. 33 is a diagram showing a terminal configuration when a verification key sharing unit is provided inside according to Embodiment 2 of the present invention.
  • FIG. 34 is a diagram showing a sequence of a verification key sharing method according to Embodiment 2 of the present invention.
  • FIG. 35 is a diagram for explaining a verification key generation method according to Embodiment 2 of the present invention.
  • FIG. 36 is a diagram showing a comparison information generation method using SHA-1 operation according to Embodiment 2 of the present invention.
  • FIG. 37 is a diagram showing a verification information generating method according to the second embodiment of the present invention.
  • FIG. 38 is a diagram showing a format of an access instruction according to the second embodiment of the present invention.
  • FIG. 39 is a flowchart showing a verification data generation process using numerical information according to Embodiment 2 of the present invention.
  • FIG. 40 shows a comparison information generation method using random numbers according to Embodiment 2 of the present invention.
  • FIG. 41 is a diagram showing a verification information generation method using random numbers according to Embodiment 2 of the present invention.
  • FIG. 42 is a diagram showing an internal module configuration of a memory card according to Embodiment 3 of the present invention.
  • FIG. 43 is a diagram showing the internal configuration of the terminal according to the third embodiment of the present invention.
  • FIG. 44 is a diagram showing the access processing from the terminal according to the third embodiment of the present invention to the security protection area in the card. Flow chart showing a part,
  • FIG. 45 is a flowchart showing a part of the access processing subsequent to FIG. 44 according to Embodiment 3 of the present invention.
  • FIG. 46 is a diagram showing an example of an access valid table according to Embodiment 3 of the present invention.
  • Fig. 47 is a diagram showing an example of the access valid table according to Embodiment 1 of the present invention.
  • the module configuration in the card according to the present invention will be described with reference to FIG. Although the terminal arrangement of the card 100 is shown in FIG. 4, the terminal configuration is different from that shown in FIG. 1 with reference numerals assigned to the respective terminals, but the configuration is the same. Omitted. ''
  • the module in the force consists of the controller 106 and the flash memory 105.
  • the controller 106 includes a command receiving unit 101 connected to the CMD line for command reception and response transmission, and a data connected to the DAT line. — Perform encryption / decryption processing with the session key for the data transmitted and received by the evening transmission / reception unit 102 and the data transmission / reception unit 102, and decrypt the data with the flash memory storage key to access the memory access unit 102.
  • session between terminal 200 and exchange of security keys for speech / sinusoid and encryption / decryption It is composed of a key sharing unit 110, a session key, and an area for storing a security protection area associated with the session key.
  • the terminal 200 includes a command transmission unit 204 that transmits a memory card command to the card 100, a data transmission / reception unit 207 that transmits data to the DAT line of the card 100, The encryption / decryption means 206 for encrypting the data transmitted and received by the data transmission / reception means 207 and the decryption means for decrypting the data received by the decryption means 207, and a security key between the force code 100 Key sharing means 202 for performing the sharing process of the information, the designated information determining means 201 for determining the area to be accessed by the security protected area access command and generating the area designation information, the area designation information and the session key A verification data generation unit 203 that generates a verification data from the server, and a data storage unit 205 that stores the data to be transmitted or the received data.
  • An area number assignment process of assigning an area number (area No. X in the figure) of an accessible area from 200 to the memory in the card 100 is executed (step S401).
  • Step S404 After performing authentication processing and mutual confirmation of the mutual validity, key sharing processing and area number assignment processing are performed.
  • the area No. X Verification and encryption session keys that enable access to the indicated security protection area are stored in association with the area number (area No. X).
  • an access area specification command including the area No. x, block address and block length setting data is sent from the terminal 200 to the card 100 to specify the area within the security protection area to be accessed.
  • Sent to In the card 100 a process of verifying whether the security protected area can be accessed is executed based on the area No. X extracted from the received access area designation command.
  • the terminal 200 uses the area No. x, the block address and the block length, and the verification data shared between the terminal 100 and the verification key 100 in step S401. Is created, and a data transfer (Read) command including the verification data is transmitted to the force 100.
  • the card 100 uses the public key of the verification key shared with the terminal 200 from the received data transfer (Read) command to verify the data based on the area No. x, the program address and the program length. Make sure you are creating an evening, step S 402 It is verified whether or not access to the security protection area specified by is possible.
  • the data stored in the area No. X corresponding to the card application accessible in the above-described verification processing in the card 100 is shared with the terminal 200.
  • the encrypted data is encrypted using the encrypted encryption key, and the encrypted data is transmitted to terminal 200.
  • the command format transmitted and received between the terminal 200 and the session key sharing unit 110 conforms to an APDU format used in a general IC card. That is, the session key sharing unit 110 takes the form of an IC card application.
  • the command APDU means a command to be executed on the memory card side, which is transmitted from the terminal 200 to the memory card in APDU format, and specifically, a command for the IC card is used.
  • terminal 200 creates a command A PDU to be transmitted to session key sharing section 110.
  • the terminal 20 ⁇ transmits an APDU transmission command to the CMD line 22 of the card 100 in FIG. 2 (step S501).
  • the APDU transmission command has a format shown in FIG. 7 like the conventional data read command, and is composed of a 6-bit command code 401 and a 32-bit command bow I number 402. .
  • the command bow 1 in the APDU transmission command is composed of a flag 1401 indicating that the data input to the DAT0 line 27 is a command APDU and 1403 indicating the number of transmission data as shown in Fig. 18. Become. If the total of the flag 1401 and the transmission data 1403 is less than 32 bits, there is an unused field 1402.
  • the data input to the DAT 0 line 27 in FIG. 4 is in units of 512 bytes, and the transmission data number 1403 indicates how many times the input in units of 512 bytes is performed.
  • the command receiving unit 101 of the card 100 receives the command transmitted from the terminal 200 (step S502), recognizes that the command is an APDU transmission command, and responds to the terminal 200 via the CMD line 22. Is returned (step S503), and the data control unit 103 is notified that the APDU transmission command has been received (step S504).
  • the terminal 200 receives a response to the APDU transmission command from the CMD line 22 of the card 100 (step S503), and inputs a command APDU 1602 to the DAT0 line 27 in the format shown in FIG. 20 (step S503). 505).
  • the length indicated by 1601 indicates the length of the following APDU 1602.
  • the number of transmitted data 1403 of the command argument is set according to the total length of the length field 1601 and the APDU 1602.
  • padding 1603 is added so as to be a multiple of 512 bytes.
  • the data transmission / reception unit 102 inside the card 100 receives the command APDU input to the DAT 0 line 27 from the terminal 200 (step S505), and receives the command APDU to the data control unit 103. Is notified (step S506).
  • the data controller 103 reads the command APDU from the data transmitter / receiver 102 (step S507), and passes the command APDU to the session key sharing unit 110 (IC card application) (step S508).
  • session key sharing section 110 performs processing as described in the command APDU (step S509), and sends the data and status information generated as a result of the processing to data control section 103 as a response APDU. Pass (Step S 51 0).
  • This status information is a status code defined in ISO 7816, and is a 2-byte value indicating whether the process has been completed normally or abnormally.
  • the response APDU means a result of processing the command APDU executed by the card 100 from the card 100 to the terminal 200.
  • the terminal 200 transmits an APDU reception command to the CMD line 22 of the card 100 (step S601).
  • the APDU reception command has a format similar to that of the conventional data read command shown in FIG. 9 like the APDU transmission command, and is composed of a 6-bit command code 401 and a 32 ⁇ -bit command argument 402. You.
  • the command argument 402 in the APDU reception command includes an unused field 1501 and a transmission data number 1502. If the transmission data number 1502 is less than 32 bits, an unused field 1501 exists.
  • the data output from the DAT 0 terminal 27 in Fig. 4 is in 512-byte units, similar to the input data in the APDU transmission command, and the transmission data number 1502 is output several times in 512-byte units. Indicates whether to do so.
  • the command receiving unit 101 of the force 100 receives the command transmitted from the terminal 200 (step S602), recognizes that it is an APDU reception command, and transmits the command to the terminal 200 via the CMD line 22. (Step S603), and notifies the overnight control unit 103 that the APDU reception command has been received (Step S604).
  • Step S605 the data control unit 103 sends a Pass the response APDU received from key sharing unit 110 (Step S605) o
  • the terminal 200 receives a response to the APDU reception command from the CMD line 22 of the card 100 (step S.603), and reads a response APDU from the data transmission / reception unit 102 via the DAT0 line 27 (step S.603).
  • Step S606 The read response APDU is output in the format shown in FIG. The details of each field are the same as when inputting in the APDU transmission command, and thus the description is omitted.
  • the flash memory 105 mounted on the card 100 has, as shown in FIG. 10, a normal area (at least) which can be accessed from the terminal 200 by a memory card command represented by a conventional read command and a conventional write command. It has a non-tamper-resistant memory area 62 and a security protection area (tamper-resistant memory area) .61 that cannot be accessed by the conventional command. As shown in FIG. 10, the card 100 has a tamper resistant module (TRM) 80 that can be accessed by an IC card command. ⁇ The security protection area 61 is normally accessible only from the card application. Conventional command for reading and writing from the terminal 200 cannot be accessed by the command receiving unit 101. Excluded.
  • TRM tamper resistant module
  • the memory card according to the present invention can have a plurality of card applications installed therein. As shown in FIG. 11, a security protection area 61 is provided for each application in an individual area (AP 1 area 71). ⁇ AP3 area 73) can be assigned.
  • the security protection area 61 is encrypted with a storage encryption key (Ks) managed by the data control unit 103.
  • This encryption key may be one Ks for the entire security protection area 61, or may be an AP 1 area 71- for each application.
  • the storage encryption keys K s-1 to K s-3 may be individually prepared in the area # 3 for AP3. In the present embodiment, storage encryption keys Ks-1 to Ks-3 are prepared for each of the applications # 1 to # 3.
  • the area 71 for the card application AP1 is given as an example.
  • the inside of the AP1 area 71 is a data management using a hierarchical structure using directories DIH1, DIR2 and files FILE1 to FILE3.
  • the card application AP1 moves a directory in the AP1 area 71, and reads and writes files FILE1 to FILE3 on directories DIR1 and DIR2 where target files exist.
  • the force application AP1 accesses the file FILE3, it moves to the directory DIR1, then moves to the directory DIR2, and then reads and writes the file: FILE3.
  • the directories D IR1 and D IR2 it is possible to create and delete lower directories or files.
  • Each of the card application and the terminal 200 holds a pair of a public key and a secret key used in public key cryptography, and holds the other party's public key.
  • the command form in the session key sharing procedure uses the above-described APDU.
  • the command form is not described, but simply referred to as command APDU and response APDU.
  • the terminal 200 selects a force application AP 1 by transmitting a SELE CT command APDU (step 901).
  • the SELECT command APDU is a command A that specifies to which application inside the card 100 the following IC card command (command APDU) is sent. This is a PDU, and is transmitted using an APDU transmission command like other command APDUs.
  • the card 100 returns a normal completion response APDU if the selection of the specified card application AP1 from the terminal 200 is completed normally, and returns an abnormal completion response APDU if not completed (step 902).
  • the process 903 will be briefly described as a process for generating a DAT A 2 that enables access to the selected card application AP 1. Details of the processing 903 will be described with reference to the flowchart in FIG. -The terminal 200 generates a random number Rh (step S9031), and combines the random number Rh with the file name of the file FI LE 3 shown in FIG.
  • the public key corresponding to the stored private key Pr i S is encrypted with PubS to generate DATA 1 (step S 9032), and the public key P ub H corresponding to the private key P ri H held by the terminal 200 is indicated.
  • the identifier 1111 > 0—? 1111311 and 087781 are combined to generate 08chome2 (step S9033).
  • the terminal 200 transmits the REQ-DATA including the DATA2 generated in step S9033.
  • the card application AP 1 extracts DATA 1 from the DAT A2, decrypts it with the secret key Pr i S held by the password application AP 1, and obtains a random number and a file name FI LE 3 (step S9051). ).
  • a random number: Rs is generated (step S 9053), and the access valid table shown in FIG. 47 is enabled so that the file 200 can be accessed by the security protected area access command from the terminal 200.
  • the terminal 200 assigns the area number X to be used when the terminal 200 accesses using the security protected area access command to the file FI LE 3 and, together with the file size SIZE 3, the area / session key management unit 111 (Step S9054).
  • the area number refers to information to be included in the access area specification information transmitted by the access area specification command when the terminal 200 performs access by the security protection area access command.
  • step S 9055 the random number Rs, the area number X, and the file size SI ZE 3 are combined to generate DAT A3 (step S 9055), and DATA 3 is encrypted with the public key PubH of the terminal 200 and DAT A 4 Is generated (step S9056).
  • step S9057 an exclusive-OR operation is performed on the random number Rs and the random number Rh to generate a random number R (step S9057), and a cryptographic session key Kd and a verification session key Km are generated from the random number R (step S9058). .
  • the session keys Kd and Km are associated with the area number X and stored in the area / section key management unit 111 (step S9059).
  • the card 100 transmits a response APDU including DATA4 to the terminal 200 to the terminal 200 (step 906).
  • Terminal 200 that has received the response APDU extracts DATA4 from the response APDU, and executes processing 907. For more information about this process 907, see This will be described with reference to the flowchart in FIG.
  • the terminal 200 decrypts the DATA4 using the secret key P: ⁇ iH of the terminal 200 to obtain the DATA3 (step S9907).
  • the terminal 200 obtains a random number R s from DATA 3, performs an exclusive OR operation on the random number: R s and the random number R h, and generates a random number R (step S 9 07 2), A cryptographic session key Kd and a verification sesion key Km are generated from the random number R (step S9073).
  • the file name transmitted from the terminal 200 to the card 100 in step 904 does not need to directly indicate a file managed by the card application, but indicates which file the card application points to. Any form that can be recognized and recognized is acceptable.
  • each card application has a hierarchical structure consisting of directories and files as shown in Fig. 12, and data is managed by directory names and file names.
  • the assigned area may be divided into appropriate sizes, and an identifier such as a number may be assigned to each of the divided areas and managed. In that case, as shown in Figure 13 The identifier is used in place of the file name FILE 3 used in the processing procedure described above.
  • FIG. 17 the solid line indicates the transfer on the CMD line 22 and the dotted line indicates the transfer on the DATE line 27.
  • the terminal 200 transmits an access area designation command, which is a memory card command, to the card 100 (step 1301).
  • This access area designation command has the format shown in FIG. 9, and is composed of a 6-bit command code 401 and a 32-bit command argument 402.
  • the command argument 4002 in the access area specification command is, as shown in Fig. 18, a flag 14401 indicating that the data input to the DAT0 line 27 is the access area specification information. It consists of 1403, which indicates the number of transmissions. When the total of the flag 101 and the transmission data number 1403 is less than 32 bits, an unused field 1442 exists.
  • the data input to the DAT0 line 27 is in units of 512 bytes, and the transmission data number 1443 indicates how many times the input in units of 512 bytes is performed.
  • the command receiving unit 101 of the force 100 receives the command transmitted from the terminal 200, recognizes that the command is an access area designation command, and returns a response to the terminal. At the same time, it notifies the data control unit 103 that it has received the access area designation command (step 1302).
  • the terminal 200 receives a response to the access area designation command from the CMD line 22 of the card 100, and stores the access area designation information 1 in the format shown in FIG. Enter 702 (step 1303).
  • the length indicated by 1701 in FIG. 21 indicates the length of the subsequent access area designation information 1702.
  • the number of transmission data 1404 of the command bow number 402 is set.
  • the total length is not necessarily a multiple of 512 bytes Since there is no padding, add padding 1703 to be a multiple of 512 bytes.
  • the access area designation information 1702 includes an area number 1801 specifying the area number X notified from the card in step 906 of FIG.
  • the access start address 1802 that can be selected within the range of the file size SIZE 3 also notified from the card, and 1 or more (file size SIZE 3-access start address 1802) It consists of an access data size 1803 that can be selected within the range.
  • the data transmission / reception unit 102 inside the card receives the access area designation information 1702 input from the terminal, and sends the access area designation information 107 to the data overnight control unit 103. Notify that 0 2 has been received.
  • the data control unit 103 reads out the access area designation information 1702 from the data transmission / reception unit 102, and the error number 1801 is stored in the step S9504 in FIG. Check that the area number X is assigned to the file, and whether the access start address and access data size are within the file size range of the file corresponding to the area number X. Set the error flag to ON.
  • the overnight control section 103 stores the access area designation information 1702 in the parameter overnight storage section 109 shown in FIG. 3 (specifically, the area number 1801 and the access number).
  • the start address 1802 and the access data size 1803) are stored.
  • the above is the processing for specifying the access area.
  • the terminal 200 transmits a security area read command to the card 100 (step 1304).
  • the security protection area read command is in the format shown in FIG. 8, and is composed of a 6-bit command code 401 and a 32-bit command bow number 402.
  • the command argument 402 in the security protection area read command is determined by checking whether the terminal that transmitted the security protection area read command is the same as the terminal 200 that transmitted the access area designation command, and also through the security key sharing procedure. A verification data for verifying whether the terminal 200 is the same as the terminal 200 confirmed to have the access right to the area indicated by the area number.
  • the access area designation command 1702 is a parameter input to the DATE line 27 in the access area designation command.
  • the verification key 2101 is the verification session key Km generated in step 907 of FIG. -
  • the verification data generation unit 203 inside the terminal 200 is a module that performs cryptographic operations, and generates verification data to be included in the security protected area access (read or write) command.
  • a MAC (Message Authentication Code) generation process called DES-MAC is performed.
  • the MAC generation process using the DES encryption with the verification key 2101 is used as the input data with 2102, which is the padding data 2170 added to the access area setting information 1702, as input data.
  • the MAC data is created as the verification data 210.
  • the terminal 200 may transmit the access area designation command to the card 1000 together with the access area designation information 1702,
  • the padding data generated based on the padding generation rules agreed between the terminal and the card in advance may be given.
  • the verification data is created using DES-MAC, but another algorithm may be used. Furthermore, the verification algorithm may be selectable according to the application.
  • the terminal 200 does not need to be authenticated or authenticated, and only wants to confirm the association with the access area designation command, simply use SHA 1 (Secure Hash Algorithm 1 or MDo) without using encryption processing. (Message Digest o Dubbing Rhythm May be used as the verification data.
  • SHA 1 Secure Hash Algorithm 1 or MDo
  • the terminal 200 generates a 32-bit verification data by the above-described verification data generation processing, and uses it as an argument of the security protection area read command.
  • the command receiving section 101 of the card 100 0 receives the command transmitted from the terminal 200, recognizes that the command is a security protection area read command, and accesses the access area designation information 170 0 If the error flag for 2 is set to ON, an error is returned as a response. If the error flag relating to the access area specification information 1 ⁇ 02 is not set to ⁇ N, a normal response is returned to the terminal as shown in FIG. Notify the evening control unit 103 that the security protected area read command has been received, and pass the verification data 210 4 given as the command bow I number 402 to the parameter verification unit 108. .
  • the terminal 200 receives a response to the security area read command from the CMD line 22 of the card 100, 1 1 0 Rain 2 7 or La Defense Isseki is waiting to be output.
  • the parameter overnight verification unit 1108 of the card 100 is provided from the terminal 200 by the access area specifying command from the parameter overnight storage unit 109, and the stored access area specifying information 1 7 0 is read out, and the verification session key K m corresponding to the area number X (1801) included in the access area specification information 1702 and stored in step S9905 in FIG. 15 is used. From the area's section key management unit 111.
  • the parameter overnight verification unit 1108 of the card 100 uses the verification session key K m and the access area designation information 1702 to generate the verification data generation process shown in FIG. To generate the verification data 1904.
  • the verification data generation processing is the same as the verification data generation processing by the terminal 200 shown in FIG. Detailed description is omitted.
  • the parameter verification unit 108 of the card 100 verifies the verification data 1904 generated in the verification data generation processing above and the security protection area read command from the terminal 200.
  • the verification data 504 given by the argument is compared, and if they do not match, an error is detected and the process does not proceed to the data reading process. If they match, it notifies the data controller 103 that the process will shift to the next data read processing.
  • the data overnight control unit 103 of the card 100 reads the access area designation information 1702 from the parameter overnight storage unit 109, acquires the area number X included therein, Recognize the file FILE 3 corresponding to the area number from the area session key management unit 1 1 1
  • the data control unit 103 of the card 100 confirms that the file FILE3 is an area for the application AP1, and acquires the storage encryption key Ks-1.
  • the data control unit 103 of the card 100 obtains the access start address 1802 and the access data size 1803 from the access area designation information 1 ⁇ 02, and For the area managed as FILE 3, an access start address 1802 is offset, and an access data size 1803 is read out, and a data read request is made to the memory access unit 104 as a read size.
  • the data control unit 103 of the card 100 sends the data read out by the memory access unit 104 to the encryption / decryption unit 107 to store the encryption key K s ⁇ 1. Request to decrypt.
  • the data control unit 103 of the card 100 encrypts the data decrypted by the encryption / decryption unit 107 with the encryption / decryption unit 107 using the encryption session key Kd. Request to do so.
  • the data control unit 103 of the card 100 transmits the data encrypted by the decryption unit 107 with the encryption session key Kd to the data transmission / reception unit 102 at the terminal. Request transmission to 200.
  • the data in the security protection area can be output from the card 100 in a state where it is encrypted by the session key Kd.
  • the terminal 200 recognizes that data can be output from the card 100, and as shown in FIG. 17, the terminal 200 is encrypted from the DAT 0 line 27 by the session key Kd.
  • the data is obtained (step 1306), and the data is decrypted with the encryption session key K d held by the terminal, and the data of the area specified by the access area specification information 1702 is obtained. .
  • Step 2001 Transmission of an access area designation command from the terminal 200 (step 2001), a response to the command from the card 100 (step 2002), and transmission of access area designation information (step 200) 0 3) is the same as the steps 13 01 to 13 03 in the read processing for the security protection area shown in FIG. 17, respectively, and therefore the description is omitted.
  • the terminal 200 After performing Steps 2001 to 203, the terminal 200 transmits a security protection area write command to the card 100 (Step 204).
  • This security protection area write command is in the format shown in FIG. 8, and is composed of a 6-bit command code 401 and a 32-bit command bow I number 402.
  • the command argument 4002 in the security protection area read command is determined based on whether the terminal 200 transmitting the security protection area read command is the same as the terminal 200 transmitting the access area designation command, and the session key sharing. It is composed of verification data 1904 for verifying that it is the same as the terminal 200 that has been confirmed through the procedure to have access authority to the area indicated by the area number X.
  • the method of generating the verification data is the same as that of the security protection area read command, and a detailed description thereof will be omitted.
  • the terminal 200 generates 32 bits of verification data by the verification data generation process, and uses it as an argument of the security protection area write command.
  • the command receiving section 101 of the card 1000 receives the command transmitted from the terminal 200, recognizes that the command is a security protection area write command, and accesses the access area designation information 1700. If the error flag for 2 is set, an error is returned as a response.
  • a normal response is returned from the CMD line 222 to the terminal 200 (step 2005), and the The control unit 103 is notified that the security protection area write command has been received, and passes the verification data 504 given as a command argument to the parameter verification unit 108.
  • the terminal 200 receives a response to the security protection area write command from the CMD line 22 of the card 100, and inputs data to the DAT0 line 27.
  • the data to be input to the DAT0 line 27 is data that has been encrypted with the encryption session key Kd generated in step 907 of FIG.
  • the input data size is the same as the access data size specified in the access area specification information 1702.
  • the following describes the process of storing data in a secure area by using a card.
  • the parameter overnight verification unit 1108 of the card 100 is provided from the terminal 200 by the access area specifying command from the parameter overnight storage unit 109, and the stored access area specifying information 1 7 0 is read out, and the verification session key Km stored in step 9 059 in FIG. 15 corresponding to the area number X (1 8 0 1) included in the access area designation information 1 720 is stored in the area. -Acquired from session key management unit 1 1 1.
  • the verification data generation unit 1903 inside the parameter verification unit 108 of the card 100 uses the verification session key Km and the access area designation information 1702 to The verification data generation process shown in FIG. 24 is performed to generate the verification data 1904.
  • the verification data generation processing is the same as the verification data generation processing by the terminal shown in FIG. 23, and thus a detailed description is omitted.
  • the parameter verification unit 1108 of the card 1001 compares the verification data 1904 generated above with the verification data given by the argument of the security area write command from the terminal 200.
  • E21 Compare the two. If they do not match, an error is detected and the processing does not shift to data write processing. If they match, it notifies the data controller 103 that the process will proceed to the next data write process.
  • the data storage unit 109 of the card 100 reads the access area designation information 1 102 from the parameter storage unit 109, and acquires the area number X included therein.
  • the area 'session key management unit 111 recognizes the file FILE 3 corresponding to the area number.
  • the data transmission / reception unit 102 of the card 100 receives the data input from the terminal 200.
  • the data control unit 103 of the card 100 stores the file corresponding to the area 71 for the application AP 1. Obtain the encryption key K s — 1 for use.
  • the decryption control section 103 of the card 100 decrypts the data received by the decryption transmission / reception section 102 with the encryption / decryption section 100 using the encryption session key Kd.
  • the decryption control unit 103 of the card 100 sends the decryption data decrypted by the encryption / decryption unit 107 to the encryption / decryption unit 107 to store the encryption key K s-1 Requires encryption.
  • the data control unit 103 of the card 100 obtains the access start address 1802 and the access data size 1803 from the access area designation information 1702, and For the area managed as FILE 3, access start address 1802 is offset and access data size 1803 is written. As a result, a data write request is made to the memory access unit 104.
  • the data decrypted with the session key Kd input by the terminal 200 is encrypted with the storage key Ks-1 and stored in the flash memory 105.
  • the sharing of the security key and the sharing of the report on the accessible area are performed simultaneously by one command, but they may be performed as separate commands.
  • the sharing of the security key and the sharing of the information on the accessible area are simultaneously performed by one command, but may be performed by another command.
  • a memory card capable of receiving a command for an IC card and a command for memory access as in the present invention is used by a force application, and is normally accessible only through a force application.
  • the terminal can access the security protected area where access from the terminal is restricted by using a memory access command by mutual authentication between the terminal and the card application and setting the card application to be accessible. It is possible.
  • the mutual authentication between the terminal application and the terminal for setting the access by the terminal application is not by using the memory access command with limited application but by using the IC card command.
  • the mutual authentication method can be flexibly selected according to the security level of the day.
  • the command for specifying the access area and the command for accessing the security protection area are separated, and the command for accessing the security protection area is used.
  • Including the verification data in the terminal application, the terminal application that specified the access area, the terminal application that issued the security protection area access command, and the terminal application that holds the verification key are the same.
  • the card can verify this.
  • by performing verification and encryption session key sharing processing for each security protection area access an appropriate value is set as the verification data to be included in the security protection area access, and repeated unauthorized access is performed. Defensiveness can be increased. ⁇
  • the module configuration in the card will be described with reference to FIG. Since the terminal configuration of the card 500 in FIG. 26 is the same as that shown in FIG. 4, its illustration and description are omitted.
  • the modules in the card 500 are connected to the CMD line, receive processing commands 501 for receiving commands and transmitting responses, a storage area 506 for storing data, and a storage area 500.
  • a storage area access means 505 for performing an access process to the storage device 6; and a data transmission means 502 connected to the DAT line and transmitting the data read by the storage area access means 505 to an external device.
  • a data receiving means 503 which is also connected to the DAT line and receives data from an external device, and a specified information verifying means 504 which verifies the specified information received by the processing instruction receiving means 501.
  • the module in the terminal 600 includes a processing command transmitting unit 604 for transmitting a command to the card 500 and receiving a response, a data transmitting unit 605 for performing a data transmission to the card 550, A data receiving means 6 06 for receiving data overnight from the card 500, a designated information determining means 600 1 for determining an area to be accessed, and Verification information generation means 6002 for generating verification information from the information, and data storage means 603 for storing data received from the card 500 and data transmitted to the card 500. Become.
  • the terminal 600 determines the area to be read-accessed or written-accessed by the designated information determining means 6001 (step S2601), and generates access area designation information (step S2602). ).
  • the access area designation information is stored in the data storage means 603, and an area designation command is transmitted from the processing command transmission means 604 to the power source 500 (step S603).
  • Fig. 29 shows an example of the data part of the area designation command.
  • the data input to the DAT line 27 is in units of 512 bytes, and the data portion of the area setting instruction is composed of the length field 2710 of the access area designation information 27 02 and If the total length of the access area specification information field 2702 is less than 512 bytes, padding 2703 is added.
  • the length field 270 1 has a length of 2 bytes
  • the access area designation information 270 2 has a 1-byte area number 280 as shown in FIG. It consists of an access start address of 28 bytes and a 3-byte access data size of 28 bytes. In other words, the total is 9 bytes, which is less than 5 12 bytes, so padding 2703 of 5103 bytes is added.
  • the card 500 receives the area designation command from the designated information verification means 504.
  • Verification of specified information Means 504 treats the area designation command as invalid if the designated area is not correct (step S2666). If the specified area is correct, the access area specification information # 2702 is saved, and the access area specification information 2702 and the key shared between the terminal 600 and the terminal 500 are stored. Is used to generate the comparison information (step S2607) o
  • Fig. 29 shows an example of a method for generating comparison information.
  • the verification data generator 2902 is a module for performing cryptographic operations, and in the present embodiment, performs processing for generating a MAC (Message Authentication Code) called DESS-MAC.
  • the input is the data portion 2704 of the area designation command and the verification key 2901 shared by the terminal 6-0.
  • the output result of DES-MAC is 64 bits, in the present embodiment, since the verification information transmitted from the terminal 600 to be compared is 32 bits, the output is truncated. Only the first 32 bits, which is 903, are used as the comparison information 2904.
  • the verification key 2901 may be an individual and fixed key corresponding to the area number, or may be a single key regardless of the area number.
  • a verification key sharing means 700 is provided inside the card 700
  • a verification key sharing means 800 is provided inside the terminal 800.
  • the verification key may be changed between the card 700 and the terminal 800 every time the security protected area is accessed.
  • the same components as those shown in FIGS. 26 and 27 are denoted by the same reference numerals.
  • the terminal 800 generates a random number R a in the verification key sharing means 800 1, generates a session key sharing request command APDU including the random number Ra, and sends the processing instruction transmitting means 6.
  • the AP DU transmission command is transmitted to the card 700 (step S3201), and the session key sharing request command AP DU is transmitted from the data transmission means 605 to the card 700.
  • Yes Step S 3 2 0 2) o
  • the card 700 receives the APDU transmission command from the terminal 800 by the processing command receiving means 501, and the session key sharing request command APDU received from the terminal 800 by the overnight receiving means 503 to the verification key sharing means 701. Pass to.
  • the verification key sharing means 801 generates a random number Rb, and as shown in FIG. 35, combines the random number Ra received from the terminal 800 and the random number Rb with the terminal 800 in advance. Performs encryption processing (DES-MAC processing) using the master key K, and generates a session key R.
  • the card 700 generates a response APDU including the random number Rb.
  • the terminal 800 transmits an APDU reception command to the force 700 from the processing command transmission means 604 (step S3203).
  • the card 700 receives the APDU reception command from the terminal 800 by the processing instruction receiving means 501, and transmits the response APDU including the random number Rb created earlier to the terminal 800 from the data transmission means 502 (step S3204). ).
  • the terminal 800 receives the response APDU from the hardware 700 by the data receiving means 606 and passes it to the verification key sharing means 801.
  • the verification key sharing means 8001 previously shares the random number Ra generated by itself and the random number included in the response A PDU with the card 700 in advance.
  • the encryption key (DES-MAC processing) is performed using the key K and the session key R is generated.
  • the above is the verification key sharing procedure between the terminal 800 and the card 700 when the session key is changed each time the security protected area is accessed.
  • DES-MAC is used in this embodiment, other encryption algorithms may be used. If it is not necessary to verify whether the terminal 800 is valid, that is, whether the terminal 800 has the same key, for example, only verify that the access area specification information 2702 of the area specification instruction is what the terminal intends. Do In this case, the cryptographic processing is not used, and the result of the SHA-1 operation or the hash operation or the checksum operation using the MD5 algorithm in the verification data generating unit 3401, as shown in Fig. 36, is used. Can be used as comparison information. Even when these algorithms are used, if the comparison target is 32 bits long, the output result is truncated, and only 32 bits of the output result are set as the comparison information 340 3.
  • the terminal 800 shares the access area designation information 2702 with the verification data generation unit and the terminal 800 and the card 700. Verification information is generated from the verification key 290 1 (step S 260 8).
  • FIG. 37 shows the generation of this verification information.
  • the verification information generation unit 3502 performs the encryption process using the verification key 3501 and the data designation part 2704 of the area designation instruction to generate the verification information 3504.
  • the generation method is exactly the same as the generation method of the comparison information 290 4 in the card 700 shown in FIG.
  • the terminal 800 puts the generated verification information 3504 in the argument of the access command. (Read), and transmits the access command from the processing command transmitting means 604 ( Step S609).
  • the access instruction has the format shown in FIG. 38, and the length of the command code 3601 and the length of the command argument 3652 are 6 bits and 32 bits, respectively.
  • the verification information 3504 is stored in the command bow function 3602.
  • the force command 700 receives the access command (read) by the processing command receiving means 501 (step S2610), and the designated information verification means 50 Confirm in advance whether or not the area designation instruction has been completed normally (step S2611). If the area designation command has not been received or has not been completed normally because the specified area is incorrect, the terminal 800 is notified of the access command as an error (step S2612). . At this time, the terminal 800 receives the error from the card 700 (step S2612A).
  • the designated information verification means 504 The comparison information 2904 created by the card 700 earlier is compared with the verification information 3504 stored in the command argument of the access command (step S2613). As a result of the comparison, if the verification information 3504 is invalid, the access command is notified to the terminal 800 as an error (step S2614). At this time, the terminal 800 receives an error from the input terminal 700 (step S2614A;).
  • the designated information verification means 504 4 notifies the storage area access means 505 of the access area designation information 270 2, and the storage area access means 505 is the storage area 5 Data is read out from the area designated by the access area designation information 2 7 0 2 in 0 6, and the data is transmitted from the data transmission means 5 0 2 to the terminal 8 0 0 (step S 2 6 1 Five ) .
  • the terminal 800 receives the read data transmitted from the card 700 by the data receiving means 606 (step S2616), and stores the data stored in the data storing means 600. Store in 3.
  • the command for specifying the access area and the command for accessing the security protection area are separated and the security protection area access is performed.
  • the card can verify that the options are the same.
  • the terminal 800 sends a random number acquisition command from the terminal 800 to the card 700 (step S3701), and the card 700 generates a random number T.
  • the random number T is stored in the designated information verifying means 504 inside the card 700, and is transmitted from the data transmitting means 502 to the terminal 800 (step S3702).
  • the terminal 800 receives the random number transmitted from the card 700 by the overnight receiving means 606 (step S3703).
  • the comparison information generation processing at step 700 (step S 2607) and the verification information generation processing at terminal 800 (step S 2 6 0 8) is a combination of the random number ⁇ and the data section 2 704 of the area designation instruction, as shown in Fig. 40 and Fig. 41. 380 4 and verification information 390 are output.
  • -As described above by using random number information for generation of verification information, even if verification information is created using the same area designation information and verification key, the verification information that is output because the random number information changes Because security changes, security strength can be further improved.
  • the module in the card is connected to the CMD line, and receives processing command receiving means 910 for receiving commands and transmitting responses, storage area 906 for storing data, and storage area 906.
  • a storage area access means 905 which performs access processing of the storage area; and a data transmission means 902 which is connected to the DAT line and transmits the data read by the storage area access means 905 to an external device.
  • a designated information verifier that verifies the designated information received via the shareable area information sharing unit 907 and the data receiving means 903 with a verification key.
  • Step 904 consists of
  • the terminal module includes a processing command transmitting unit 1004 for transmitting a command to the card 900 and receiving a response, a data transmitting unit 1005 for performing a data transmission to the card 900, and a data receiving unit for receiving data from the card 900.
  • Communication means 1006 specified information determining means 1001 for determining an area to be accessed, a possible area information sharing unit 1007 for sharing information on an area accessible by a security protected area access command, and verification information from the specified information. It comprises: verification information generating means 1002 to be generated; and data storage means 1003 for storing data received from the card 900 and data transmitted to the card 900.
  • the terminal 1000 determines the area A where read access or write access is to be performed by the designated information determining means 1001 (step S4201), and the security for the area A is determined by the available area information sharing unit 1007.
  • a command requesting that access by the protected area access command be permitted is transmitted from the processing instruction transmitting means 1004 to the card 900 from the processing command transmitting means 1004 to the card 900 (step S4202).
  • the card 900 which has received the area release request command decrypts the encrypted data included in the command with the available area information sharing means 907 with the secret key Pr i S of the force 900 (step S 4203).
  • the terminal 10 It is checked whether or not 00 is permitted to access the area A (step S4205).
  • the data transmission means 902 transmits a message indicating that the area release has failed as the response APDU to the terminal 1000 (step S4206). If the access is permitted, the identifier a of the area A and the area number X assigned to the area A are stored in the designated information verifying means 904, and the access validity table for setting whether or not access by the security protection area access command is permitted. Registered in the table 4400 (see FIG. 46) (step S4207). Next, the verification key R corresponding to the area A is registered in the access valid table 4400 (step S4208).
  • the area number X and the size of the area A are encrypted using the public key Pub H of the terminal 1000, and transmitted from the overnight transmitting means 902 to the terminal 1000 as a response APt) U (step S4209).
  • the terminal 1000 transmits an APDU reception command from the processing command transmission means 1004 to the card 900, and acquires the response APDU from the card 900 using the overnight reception means 1006 (step S4210).
  • the method of acquiring the response APDU is the same as the method described in the first embodiment, and a detailed description thereof will be omitted.
  • the possible area information sharing means 1007 of the terminal 1000 decrypts the encrypted data included in the response APDU with the terminal 1000's own secret key P riH (step S4211), and outputs the area number X and the area number X. Obtain the size of the area A indicated by.
  • the terminal 1000 registers the session key corresponding to the area A in the verification information generating means 1002.
  • the area number X is registered in the designated information determining means 1001 in order to generate access area designation information (step S4212). Thereafter, the flow shifts to the flowchart of FIG.
  • the terminal 1000 sends the access area designation information using the area number X registered by the possible area information sharing means 1007 in the designated information decision means 1001. Generate (Step S 4 2 1 3).
  • this access area designation information is stored in the data storage section 270 4 (see FIG. 29), and the area designation command is transmitted from the processing command transmission means 100 4 to the card 900 (step S 4 2 1 4). Since the access area designation information in the area designation instruction is the same as in the second embodiment, a detailed description is omitted.
  • the designated information verification means 9 ⁇ 4 accesses the area. Check the specified information, and check whether the area number X is registered in the access valid table 4400 or the area based on the access start address 2802 and access data size 2803 shown in Fig. 30. It is determined whether it is within the range of A (step S4216). If the designated area is not correct, the designated information verifying means 904 treats the area designation command as invalid (step S 4217).
  • the access area specification information is saved, and the comparison information is generated using the access area specification information and the verification key R corresponding to the area A registered in the access validity table 4400 ( Step S 4 2 1 8).
  • the method of generating the comparison information is the same as that of the second embodiment, and a detailed description is omitted.
  • the terminal 1000 generates verification information using the access area designation information by the verification information generating means 1002 and the session key R registered by the available area information sharing unit 1007. (Step S 4 219), and transmits the access command from the processing command transmission means 100 1 to the input port 900, with the parameter being included in the argument of the access command (read) (Step S 422). 0).
  • the method of generating the verification information and the method of transmitting the access command are the same as those in the second embodiment, and thus a detailed description is omitted.
  • the card 900 receives the access command (read) by the processing command receiving means 901 (step S4221), and the designated information verification means 904 preliminarily stores the area. It is checked whether the specified command has been completed normally (step S4222). If the area designation command has not been received or has not been completed normally because the specified area is incorrect, etc., the access command is notified to the terminal 1000 as an error. (Step S 4 2 2 3). At this time, the terminal 1000 receives the error from the force 900 (step S4223A;).
  • the designated information verification means 904 compares the comparison information created by the card 900 with the verification information stored in the argument of the access command (step S 4 2 2 4). As a result of the comparison, if the verification information is invalid, the access command is passed to the terminal 1000 as an error (step S4225). At this time, the terminal 1000 receives the error from the card 900 (step S4225A)
  • the specified information verification means 904 notifies the storage area access means 905 of the specified information, and the storage area access means 905 selects the data in the storage area 906.
  • the data is read from the area designated by the area designation command, and the data is transmitted from the data transmission means 902 to the terminal 100 (step S4226).
  • the terminal 1000 receives the read data transmitted from the card 900 by the data receiving means 1006 and stores it in the data storing means 1003 (step S 4 2 2 7)
  • the terminal 1000 creates an area invalidation command APDU for invalidating the area number X corresponding to the area A when the security protected area access command to the area A becomes unnecessary. Then, the data is transmitted from the data transmission means 1005 to the card 900 (step S42228).
  • the card 900 that has received the area invalidation command APDU searches the access valid table 4400 and finds the area number X, and if it finds the area number X, the area identifier assigned to the area number X in the table. a, The registration of the area number X is deleted together with the session key R, and the access by the security area access command to the area A in which the area number X is designated is invalidated (step S 4229).
  • a certain area in the security protection area can be accessed by the security protection area access command only when necessary, by an area release request, and when it becomes unnecessary, the area is disabled by an area invalidation request. Can increase security by disabling access to

Abstract

端末からアクセス領域を指定するコマンドと、アクセスを行うコマンドを分離し、アクセスを行うコマンドの引数に端末の検証データを含めて送信することで、アクセス領域を指定するコマンドを発行した端末アプリケーションとアクセスを行うコマンドを発行した端末アプリケーションと、検証用鍵を保有する端末アプリケーションが同一であることが検証可能となる。

Description

明 細 書 アクセス方法 技術分野
本発明は、 P Cや携帯電話などの端末に挿入して使用されるメモリ力一ド、 並びにメモリカードに対するアクセス方法に関する。 背景技術 - 従来、 メモリカードは端末に挿入され、 端末がデ一夕を格納するためのもの である。 以下に、 従来のメモリカードの一例をあげる (例えば、 特願 2003 -91704号公報) 。
カードは、 端末から各種コマンドを受け付け、 またコマンドに対するレスポ ンスを返すコマンド用端子 (CMDライン) と、 デ一夕の入力を受け付け、 ま たデータの出力を行うデ一夕用端子 (DATライン) を持つ。
図 1に示した従来のメモリカードの例では、 端子 4602が CMDラインと なっており、 端子 4607、 4608、 4609が DATラインであり、 それ それ DAT 0、 DAT 1, DAT 2となっている。 また端子 C 2— 01はデ一 夕入出力用とカード検出用 (CD) を兼ねた CD/DAT 3となっている。 D AT 0~DAT 3については、 D AT 0のみを使うモードと、 DAT0〜3を 同時に利用し DAT 0のみを使う場合の 4倍の転送速度を実現するモ一ドが 存在する。
次に、 図 2を用いて、 従来カードのカード内モジュール構成について説明す
•^) o
力一ド内モジュールは、 CMDライン 4602に接続された、 コマンド受信 及びレスポンス送信を行う処理命令受信手段 4701と、 DATライン 460 7、 4608、 4609、 C2-01に接続された、 データ送受信を行うデ一 夕送受信手段 4 7 0 2と、 記憶領域 4 7 0 4と、 受信したコマンドに応じて記 憶領域 4 7 0 4へのデ一夕の読み書きを行う記憶領域アクセス手段 4 7 0 3 からなる。
次に 従来のメモリカードにおける、 データ読み出し時の処理動作について 説明する。 ここではデ一夕の出力は: D A T 0端子 4 6 0 7のみを利用するモ一 ドに設定されているものとするが、 D A T 1端子 4 6 0 8、 D A T 2端子 4 6 0 9、 DA T 3端子 4 6 1 0を併用するモードであってもよい。
まず、 端末はカードの CMDライン 4 6 0 2にデ一夕読み出しコマンドを送 信する。 この読み出しコマンドは図 7で示されるフォ一マツトとなっており、 6ビヅトのコマンドコード 4 0 1と 3 2ビヅトのコマンド引数 4 0 2から構 成される。 デ一夕読み出しコマンドにおけるコマンド引数は、 読み出し開始ァ ドレスを格内する。
端末からコマンドを受信した処理命令受信手段 4 7 0 1は、 コマンドコード 4 0 1を参照して、 デ一夕読み出しコマンドであることを認識する。
次に、 処理命令受信手段 4 7 0 1は、 コマンド弓 I数 4 0 2を参照して、 指定 されたァドレスが正しいものであるか、 つまり力一ドが対応している範囲に指 定されたアドレスが収まつているかを調べ、 アドレスが正しくなければレスポ ンスとしてエラ一である旨のレスポンスコードを返す。 ァドレスが正しければ 正常である旨のレスポンスコードを返す。
処理命令受信手段 4 7 0 1は、 レスポンスを端末に返送した後、 記憶領域ァ クセス手段 4 7 0 3に対し、 指定されたアドレスとともに、 読み出し要求を行 ラ。
記憶領域アクセス手段 4 7 0 3は、 記憶領域 4 7 0 4の指定ァドレスからデ 一夕を読み出し、 デ一夕送受信手段 4 7 0 2に送信する。
デ一夕送受信手段 4 7 0 2は、 D A T 0ライン 4 6 0 7を通じて、 端末に読 み出しデ一夕の出力を行う。
このようなメモリカードでは、 端末からアドレスを指定して自由にカードの 読み書きが可能である。
上記のようなメモリカードにおいて、 フラッシュメモリの特定領域をセキュ リティ保護領域としてアクセス制限をかけ、 アクセスが許可された特定の端末 からのみアクセス可能としたい場合に、 上記文献.で示されたカードでは、 I C カードコマンドを用いて柔軟な認証を行うことが可能である。 しかし、 I C力 —ドの標準的なコマンドフォーマツトである AP D U (Application protocol data unit)では、 2 5 6バイトのデ一夕送受信しか行えないことと、半二重プ 口トコルのために、 ホス卜からのコマンド送信の度にレスポンス受信が必要で あるという理由から、 高速なデ一夕転送が困難である。 そこで、 I C力一ドコ マンドを用いて、 セキュリティポリシ一に柔軟にあわせた方式にて認証処理を 行った後でメモリカードコマンドを用いてデ一夕転送を行う方式が考えられ るが、 I Cカードコマンドの発行者とメモリ力一ドコマンドを発行したホスト 上のァプリケーションが同一であることを確認することが困難である。
そこで、 I Cカードコマンドを用いた認証処理の過程で生成した情報を、 I Cカードコマンドとメモリカードコマンドの発行者の同一性を検証するため の検証デ一夕としてメモリカードコマンドに含める場合、 コマンド引数にァク セス領域指定情報 (アクセスするアドレスなど) と認証用の検証デ一夕を含め ることになるが、 デ一夕読み出しコマンドのコマンド弓 I数 4 0 2のサイズは上 述の通り、 3 2ビットの固定であるので、 セキュリティを向上させるため認証 用の検証デ一夕のサイズを大きくすると、 アクセス領域指定情報の長さが短く なりアクセス可能な領域が制限されてしまう。一方、 検証デ一夕のサイズを小 さくすれば、 セキュリティ強度が下がってしまう。
この課題を解決するために、 従来のデ一夕読み出しコマンドのフォーマヅト を変更すると、従来のメモリカードにアクセスができなくなってしまうおそれ がある。
また、 ^のデ一夕読み出しコマンドと、 セキュリティ保護領域を備えたメ モリ力一ドへのデ一夕読み出しコマンドとを別個のものとして併存させると すると、 端末側でメモリカードの種類によってコマンドを切り換える必要が発 生し、 メモリカードへのアクセスが複雑となり、 端末にとっては利用しづらい ものとなる。 そのため、 検証デ一夕を送信するためのコマンドとデ一夕の読み 出しまたは書き込みを行うためのメモリカードコマンドをそれそれ定義し、 2 つのコマンドを組み合わせてセキュリティ保護領域へのアクセスを行う必要 があるが、 2つのコマンドの間でコマンド発行者の同一性を確認することがで きない。 発明の開示 - 本発明は、 これらの問題点を解決するものであり、 メモリカード内でァクセ ス制限がされていない領域にアクセスする場合は、上述のデ一夕読み出しコマ ンドに代表されるメモリカードコマンドを用い、 アクセス制限がされているセ キユリティ保護領域に関しては、 まずアクセス領域を指定するメモリ力一ドコ マンドによってアクセス領域指定情報をメモリカードに送付した後に ホスト とメモリカード間で I C力一ドコマンドを用いた柔軟な認証処理を用いて共 有した、 または、 予め共有している鍵情報と、 上記アクセス領域指定情報を用 いて生成した認証用の検証デ一夕を含ませた、 セキュリティ保護領域の読み出 しまたは書き込み用メモリカードコマンドをメモリカードに送付して、 セキュ リティ保護領域へのデ一夕の書き込み、 セキュリティ保護領域からのデ一夕を 読み出しする、 という 2段階のコマンド構成にすることで、 メモリカードコマ ンドのフォーマツトの変更を必要とせず、 また少ないコマンド引数でもセキュ リティを低下させることなく、 セキュリティ保護領域へのアクセスを可能にす るアクセス方法を提供することを目的とする。
本発明の一形態によれば、 アクセス方法は、 機器からメモリデバイスに対す るアクセス方法であって、 前記機器が、.前記メモリデバイスへのアクセス領域 を指定する指定情報を送信するステップと、 前記アクセス領域への処理命令と、 前記指定情報に関する検証情報と、 を併せて送信するステップと、 前記メモリ デバイスが、 前記指定情報を受信するステップと、 前記処理命令と前記検証情 報を受信し、 前記指定情報を前記検証情報を用いて検証するステップと、 前記 検証にて成功した場合、 前記処理命令を実行するステップと、 を有する。 本発明の他の形態によれば、 アクセス方法は、 機器からメモリデバイスに対 するアクセス方法であって、 前記機器が、 前記メモリデバイスとで、 当該メモ リデバイスへのアクセス可能領域に関する可能領域情報を共有化するステヅ プと、 前記可能領域情報を参照し、 前記メモリデバイスへのアクセス領域を指 定する指定情報を送信するステップと、 前記アクセス領域への処理命令と、 前 記指定情報に関する検証情報と、 を併せて送信するステップと、 前記メモリデ バイスが、 前記指定情報を受信するステップと、 前記処理命令と前記検証情報 を受信し、 前記指定情報を前記検証情報を用いて検証するステップと、 前記検 証にて成功した場合、 前記処理命令を実行するステップと、 を有する。
本発明のさらに他の形態によれば、 アクセス方法は、 機器からメモリデバイ ^スに対するアクセス方法であって、 前記機器が、 前記メモリデバイスとで、 検 証用鍵を共有化するステヅプと、 前記メモリデバイスへのアクセス領域を指定 する指定情報を送信するステップと、 前記アクセス領域への処理命令と、 前記 指定情報に関する検証情報を前記検証用鍵で暗号化した検証デ一夕と、 を併せ て送信するステップと、 前記メモリデバイスが、 前記指定情報を受信するステ ップと、 前記処理命令と前記検証デ一夕を受信し、 前記指定情報を前記検証デ —夕と前記検証用鍵とを用いて検証するステップと、 前記検証にて成功した場 合、 前記処理命令を実行するステップと、 を有する。
本発明のさらに他の形態によれば、 アクセス方法は、 機器からメモリデバイ スに対するアクセス方法であって、 前記機器が、 前記メモリデバイスとで、 当 該メモリデバイスへのアクセス可能領域に関する可能領域情報を共有化する ステップと、 前記メモリデバイスとで、 前記アクセス可能領域に対応した検証 用鍵を共有化するステップと、 前記可能領域情報を参照し、 前記メモリデバイ スへのアクセス領域を指定する指定情報を送信するステップと、 前記アクセス 領域への処理命令と、 前記指定情報に関する検証情報を前記検証用鍵で暗号ィ匕 した検証デ一夕と、 .を併せて送信するステップと、 前記メモリデバイスが、 前 記指定情報を受信するステツプと、 前記処理命令と前記検証デ一夕を受信し、 前記指定情報を前記検証データと前記検証用鍵とを用いて検証するステップ と、 前記検証にて成功した場合、 前記処理命令を実行するステップと、 を有す る。
本発明のさらに他の形態によれば、 アクセス方法は、 機器からメモリデバイ スに対するアクセス方法であって、 前記機器が、 前記メモリデバイスとで、 第 一の処理系コマンドを用いて、 当該メモリデバイスへのアクセス可能領域に関 する可能領域情報を共有化するステップと、 前記可能領域情報を参照し、 第二 の処理系コマンドを用いて、前記メモリデバイスへのアクセス領域を指定する 指定情報を送信するステップと、 前記第二の処理系コマンドを用いて、 前記ァ クセス領域への処理命令と、 前記指定情報に関する検証情報と、 を併せて送信 するステップと、前記メモリデバイスが、前記指定情報を受信するステップと、 前記処理命令と前記検証情報を受信し、 前記指定情報を前記検証情報を用いて 検証するステップと、 前記検証にて成功した場合、 前記処理命令を実行するス テヅプと、 を有する。
本発明のさらに他の形態によれば、 アクセス方法は、 機器からメモリデバイ スに対するアクセス方法であって、 前記機器が、 前記メモリデバイスとで、 第 一の処理系コマンドを用いて、 検証用鍵を共有ィ匕するステップと、 第二の処理 系コマンドを用いて、 前記メモリデバイスへのアクセス領域を指定する指定情 報を送信するステップと、 前記第二の処理系コマンドを用いて、 前記アクセス 領域への処理命令と、 前記指定情報に関する検証情報を前記検証用鍵で暗号ィ匕 した検証デ一夕と、 を併せて送信するステップと、 前記メモリデバイスが、 前 記指定情報を受信するステップと、 前記処理命令と前記検証デ一夕を受信し、 前記指定情報を前記検証デ一ダと前記検証用鍵とを用いて検証するステップ と、 前記検証にて成功した場合、 前記処理命令を実行するステップと、 有す る o
本発明のさらに他の形態によれば、 アクセス方法は、 機器からメモリデバイ スに対するアクセス方法であって、 前記メモリデバイスは、 前記機器からのァ クセスが制約された耐タンパ性の第 1領域と、 前記機器からのアクセスが制約 された非耐タンパ性の第 2領域と、 前記機器からアクセスすることが可能な第 3領域と、 を有し、 少なくとも前記第 1領域への処理命令である第一の処理系 コマンドと、 少なくとも前記第 3領域への処理命令である第二の処理系コマン ドと、 を判別する機能を備え、 前記機器は、 前記メモリデバイスとで、 第一の 処理系コマンドを用いて、 当該メモリデバイスへのアクセス可能領域に関す-る 可能領域情報を共有化するステップと、 前記可能領域情報を参照し、 第二の処 理系コマンドを用いて、 前記第 2領域へのアクセス領域を指定する指定情報を 送信するステップと、 第二の処理系コマンドを用いて、 前記アクセス領域への 処理命令と、前記指定情報に関する検証情報と、を併せて送信するステップと、 前記メモリデバイスは、 前記指定情報を受信するステップと、 前記処理命令と 前記檢証情報を受信し、前記指定情報を前記検証情報を用いて検証するステヅ プと、 前記検証にて成功した場合、 前記処理命令を実行するステップと、 を有 する。
本発明のさらに他の形態によれば、 アクセス方法は、 機器からメモリデバイ スに対するアクセス方法であって、 前記メモリデバイスは、 前記機器からのァ クセスが制約された耐タンパ性の第 1領域と、 前記機器からのアクセスが制約 された非耐夕ンパ性の第 2領域と、前記機器からアクセスすることが可能な第 3領域と、 を有し、 少なくとも前記第 1領域への処理命令である第一の処理系 コマンドと、 少なくとも前記第 3領域への処理命令である第二の処理系コマン ドと、 を判別する機能を備え、 前記機器は、 前記メモリデバイスとで、 第一の 処理系コマンドを用いて、 検証用鍵を共有化するステップと、 第二の処理系コ マンドを用いて、前記第 2領域へのアクセス領域を指定する指定情報を送信す るステップと、 第二の処理系コマンドを用いて、 前記アクセス領域への処理命 令と、 前記指定情報に関する検証情報を前記検証用鍵で暗号化した検証デ一夕 と、 を併せて送信するステップと、 前記メモリデバイスは、 前記指定情報を受 信するステップと、 前記処理命令と前記検証デ一夕を受信し、 前記指定情報を 前記検証デ一夕と前記検証用鍵とを用いて検証するステップと、 前記検証にて 成功した場合、 前記処理命令を実行するステップと、 を有する。
本発明のさらに他の形態によれば、 メモリデバイスは、 機器から読み書きさ れるメモリデバイスであって、 アクセスする領域を指定する指定情報を受信す るとともに、 前記指定情報に基づく検証情報と読み出し又は書き込み命令を併 せて受信する処理命令受信手段と、 前記指定情報を、 前記検証情報を用いて検 証処理を行う指定情報検証手段と、 デ一夕を格納する記億領域と、 前記検証処 理が成功した場合に、 前記処理命令に応じて、 前記記憶領域の前記指定領域に 対する読み出し又は書き込みを行う記憶領域アクセス手段と、 前記記憶領域ァ クセス手段が読み出したデ一夕を前記機器に送信するデータ送信手段と、 前記 機器から書き込みデ一夕を受信するデ一夕受信手段と、 を備える。
本発明のさらに他の形態によれば、 情報機器は、 メモリデバイスを読み書き する情報機器であって、 読み出し又は書き込みする領域を決定し、 前記領域を 指定する指定情報を決定する指定情報決定手段と、 前記指定情報から前記検証 情報の生成処理を行う検証情報生成手段と、 前記指定情報の送信と、 前記検証 情報と読み出し又は書き込みの処理命令とを併せて送信する処理命令送信手 段と、 前記処理命令が書き込みの場合は、 前記メモリデバイスにデ一夕を送信 するデ一夕送信手段と、 前記処理命令が読み出しの場合は、 前記メモリデバイ スからデータを受信するデ一夕受信手段と、 前記メモリデバイスに送信するデ —夕を記憶し、 または、 前記メモリデバイスから受信したデ一夕を記憶するデ —夕記憶手段と、 を備える。
本発明のさらに他の形態によれば、 アクセス方法は、 機器からメモリデバイ スに対するアクセス方法であって、 前記機器が、 前記メモリデバイスへのァク セス領域を指定する指定情報を送信するステップと、 前記アクセス領域への処 理命令と、前記指定情報に関する検証情報を検証用鍵で暗号ィ匕した検証デ一夕 と、 を併せて送信するステップと、 前記メモリデバイスが、 前記指定情報を受 信するステップと、 前記処理命令と前記検証デ一夕を受信し、 前記指定情報を 前記検証デ一夕と検証用鍵とを用いて検証するステップと、 前記検証に成功し た場合、 前記処理命令を実行するステップと、 を有する。
本発明のさらに他の形態によれば、 アクセス方法は、 機器からメモリデバイ スに対するアクセス方法であって、 前記機器は、 第一の処理系コマンドを用い て前記メモリデバイスへのアクセス可能領域に関する可能領域情報を共有化 するステップと、第一の処理系コマンドを用いて前記アクセス可能領域に対応 した検証用鍵を共有化するステヅプと、 第二の処理系コマンドを用いて、 前記 メモリデバイスへのアクセス領域を指定する指定情報を送信するステップと、 第二の処理系コマンドを用いて前記アクセス領域への処理命令と、 前記指定倩 報に関する検証情報を前記検証用鍵で暗号化した検証デ一夕と、 を併せて送信 するステヅプと、前記メモリデバイスは、前記指定情報を受信するステツプと、 前記処理命令と前記検証デ一夕を受信し、 前記指定情報を前記検証データと前 記検証用鍵とを用いて検証するステップと、 前記検証にて成功した場合は、 前 記処理命令を実行するステヅプと、 を有する。
本発明のさらに他の形態によれば、 アクセス方法は、 機器からメモリデバイ スに対するアクセス方法であって、 前記メモリデバイスは、 前記機器からのァ クセスが制約された耐タンパ性の第 1領域と、 前記機器からのアクセスが制約 された非耐夕ンパ性かつ大容量の第 2領域と、 前記機器からアクセスすること が可能なかつ大容量の第 3領域と、 を有し、 少なくとも前記第 1領域への処理 命令である第一の処理系コマンドと、 少なくとも前記第 3領域への処理命令で ある第二の処理系コマンドと、 を判別する機能を備え、 前記機器は、 前記メモ リデバイスとで、 第一の処理系コマンドを用いて、 当該メモリデバイスへのァ クセス可能領域に関する可能領域情報を共有ィ匕するステップと、 第一の処理系 コマンドを用いて、 前記アクセス可能領域に対 j芯した検証用鍵を共有化するス テヅプと、 第二の処理系コマンドを用いて、 前記第 2領域へのアクセス領域を 指定する指定情報を送信するステップと、 第二の処理系コマンドを用いて、 前 記アクセス領域への処理命令と、 前記指定情報に関する検証情報を前記検証用 鍵で暗号化した検証デ一夕と、 を併せて送信するステップと、 前記メモリデバ イスは、 前記指定情報を受信するステップと、 前記処理命令と前記検証デ一夕 を受信し前記指定情報を前記検証デ一夕と前記検証用鍵とを用いて検証する ステップと、前記検証にて成功した場合、前記処理命令を実行するステップと、 を有する。 図面の簡単な説明
図 1は、 従来のメモリカードの端子構成を示す図、
図 2は、 従来のカード内モジュール構成を示す図、
図 3は、 本発明の実施の形態 1に係るメモリ力一ドの内部モジュール構成を 示す図、
図 4は、 本発明の実施の形態 1に係るカードの端子構成を示す図、 図 5は、 本発明の実施の形態 1に係る端末の内部構成を示す図、
図 6は、 本発明の実施の形態 1に係るカードと端末の間で行われる処理の概 要を示す図、
図 Ίは、 本発明の実施の形態 1に係る A P D Uの送受信方法のシーケンスを 示す図、
図 8は、 本発明の実施の形態 1に係るレスポンス A P D Uの送信処理のシ一 ケンスを示す図、
図 9は、 本発明の実施の形態 1に係るメモリカードのコマンドフォ一マヅト を示す図、
図 1 0は、 本発明の実施の形態 1に係るフラッシュメモリの内部構成を示す 図、 '
図 1 1は、 本発明の実施の形態 1に係るセキュリティ保護領域の内部構成を 示す図、
図 1 2は、 本発明の実施の形態 1に係るセキュリティ保護領域内の各アプリ ケ一シヨン用領域の内部構成を示す図、
図 1 3は、 本発明の実施の形態 1に係るセヅション鍵共有及びアクセス可能 領域共有手順を示す図、
図 1 4は、 本発明の実施の形態 1に係る図 1 3のステップ 9 0 3における処 理の詳細を説明するためのフローチャート、
図 1 5は、 本発明の実施の形態 1に係る図 1 3のステヅプ 9 0 5における処 理の詳細を説明するためのフローチャート、 - 図 1 6は、 本発明の実施の形態 1に係る図 1 1のステップ 9 0 7における処 理の詳細を説明するためのフローチャート、
図 1 7は、 本発明の実施の形態 1に係る端末からセキュリティ保護領域を読 み出すためのコマンドシーケンスを示す図、
図 1 8は、 本発明の実施の形態 1に係る AP D U送信コマンドの引数フォ一 マットを示す図、
図 1 9は、 本発明の実施の形態 1に係る AP D U受信コマンドの引数フォー マツトを示す図、
図 2 0は、 本発明の実施の形態 1に係る A P D U送信コマンドの入力データ 及び A P D U受信コマンドの出力デ一夕のフォ一マツトを示す図、
図 2 1は、 本発明の実施の形態 1に係るアクセス領域指定コマンドの入力デ —夕フォ一マットを示す図、
図 2 2は、 本発明の実施の形態 1に係るアクセス領域指定情報を示す図、 図 2 3は、 本発明の実施の形態 1に係る端末の正当性検証を行うための検証 データの端末による生成方法を示す図、
図 2 4は、 本発明の実施の形態 1に係る端末の正当性検証を行うための検証 デ一夕の力一ドによる生成方法を示す図、
図 2 5は、 本発明の実施の形態 1に係る端末からセキュリティ保護領域に書 き込むためのコマンドシーケンスを示す図、
図 2 6は、 本発明の実施の形態 2に係るメモリカードの内部モジュール構成 を示す図、
図 2 7は、 本発明の実施の形態 2に係る端末の内部構成を示す図、
図 2 8は、 本発明の実施の形態 2に係る端末からカードのセキュリティ保護 領域に対してアクセスを行う際の処理を示すフローチャート、
図 2 9は、 本発明の実施の形態 2に係る領域指定命令のデ一夕部の一例を示 す図、
図 3 0は、 本発明の実施の形態 2に係る図 2 9のアクセス領域指定情報のフ ォーマットを示す図、
図 3 1は、 本発明の実施の形態 2に係る比較情報の生成方法の一例を示す図、 図 3 2は、 本発明の実施の形態 2に係る内部に検証用鍵共有手段を備える場 合のカード構成を示す図、
図 3 3は、 本発明の実施の形態 2に係る内部に検証用鍵共有手段を備える場 合の端末構成を示す図、
図 3 4は、 本発明の実施の形態 2に係る検証用鍵の共有方法のシーケンスを 示す図、
図 3 5は、 本発明の実施の形態 2に係る検証用鍵生成方法を説明するための 図、
図 3 6は、 本発明の実施の形態 2に係る S HA— 1演算を用いた比較情報生 成方法を示す図、
図 3 7は、 本発明の実施の形態 2に係る検証情報生成方法を示す図、 図 3 8は、 本発明の実施の形態 2に係るアクセス命令のフォーマツトを示す 図、
図 3 9は、 本発明の実施の形態 2に係る数情報を利用した検証デ一夕生成処 理を示すフローチヤ一ト、
図 4 0は、 本発明の実施の形態 2に係る乱数を利用した比較情報生成方法を 示す図、
図 4 1は、 本発明の実施の形態 2に係る乱数を利用した検証情報生成方法を 示す図、
図 4 2は、 本発明の実施の形態 3に係るメモリカードの内部モジュール構成 を示す図、
図 4 3は、 本発明の実施の形態 3に係る端末の内部構成を示す図、 図 4 4は、 本発明の実施の形態 3に係る端末からカード内のセキュリティ保 護領域へのアクセス処理の一部を示すフローチャート、
図 4 5は、 本発明の実施の形態 3に係る図 4 4に続くアクセス処理の一部を 示すフローチヤ一ト、
図 4 6は、 本発明の実施の形態 3に係るアクセス有効テーブルの一例を示す 図、
図 4 7は、 本発明の実施の形態 1に係るアクセス有効テーブルの一例を示す „ 図である。 発明を実施するための最良の形態
以下、 本発明の実施の形態について、 添付図面を参照して詳細に説明する。 なお、 本発明は、 この実施の形態に何ら限定されるものではなく、 その要旨を 逸脱しない範囲において、 種々の形態で実施することができる。
(実施の形態 1 )
本発明におけるカード内モジュール構成について図 3を用いて説明する。 な お、 カード 1 0 0の端子配置は、 図 4に示すが、 その端子構成は、 図 1に示し たものと各端子に付した符号は異なるが、 その構成は同様であるため、 説明は 省略する。 ' '
力一ド内モジュールは、 コントローラ 1 0 6とフラッシュメモリ 1 0 5から なる。 コントローラ 1 0 6は、 CMDラインに接続された、 コマンド受信及び レスポンス送信を行うコマンド受信部 1 0 1と、 D A Tラインに接続されたデ —夕送受信部 1 0 2と、 データ送受信部 1 0 2が送受信したデ一夕に対してセ ヅション鍵で暗復号処理を施し、 またフラッシュメモリ格納用鍵で喑復号して メモリアクセス部 1 0 4とのデ一夕受け渡しを行う暗復号部 1 0 7と、 フラヅ シュメモリ 1 0 5へのデ一夕の読み書きを行うメモリアクセス部 1 0 4と、 受 信したコマンドに応じて、 メモリアクセス部 1 0 4、 セッション鍵共有部 1 1 0、 及びパラメ一夕検証部 1 0 8、 暗復号部 1 0 7に対して処理要求を行うデ —夕制御部 1 0 3と、 端末 2 0 0から受信したセキュリティ保護領域にァクセ スするためのパラメ一夕を言 3億しておくパラメ一夕記' It部 1 0 9と、 パラメ一 夕が正しいことを検証するパラメ一夕検証部 1 0 8と、 端末 2 0 0との間で言忍 証用及び暗復号用のセヅシヨン鍵を交換するセッション鍵共有部 1 1 0と、 セ ヅシヨン鍵と、 セヅション鍵と対応付けられたセキュリティ保護領域を記憶し ておくエリア 'セッション鍵管理部 1 1 1からなる。
次に、 本実施の形態 1における端末 2 0 0の構成について図 5を用いて説明 する。
端末 2 0 0は、 カード 1 0 0にメモリカードコマンドを送信するコマンド送 信部 2 0 4と、 カード 1 0 0の D A Tラインにデ一夕を送信するデ一夕送受信 手段 2 0 7と、 デ一夕送受信手段 2 0 7が送信するデ一夕を暗号化し、 また受 信するデ一夕を復号化する暗復号手段 2 0 6と、 力一ド 1 0 0との間でセヅシ ヨン鍵の共有処理を行うセッション鍵共有手段 2 0 2と、 セキュリティ保護領 域アクセスコマンドによってアクセスする領域を決定し、 領域指定情報を生成 する、 指定情報決定手段 2 0 1と、 領域指定情報とセッション鍵から検証デ一 夕を生成する検証デ一夕生成部 2 0 3と、 送信するデ一夕、 または受信したデ —夕を記憶するデ一夕記憶手段 2 0 5とを備える。
次に、 図 3のカード 1 0 0と図 5の端末 2 0 0の間で行われる処理のネ既要に ついて図 6を用いて説明する。
図 6において、 まず、 端末 2 0 0とカード 1 0 0の間では、 力一ド 1 0 0 I Cカードコマンドを用いた処理として、 端末 2 0 0とカード 1 0 0相互間を認 証するための認証処理及びセヅション鍵を共有するための鍵共有処理と、 端末
200からカード 100内メモリへのアクセス可能領域の領域番号(図中の領 域 No. X) を割り当てる領域番号割り当て処理とが実行される (ステップ. S 401) o
認証処理を行い、 相互に正当性が確認された後、 鍵共有処理及ぴ領域番号割 り当て処理が行われ、 その結果として、 端末 200内とカード 100内には、 領域 No. Xにて示されるセキュリティ保護領域へのアクセスを可能にする検 証用及び暗号用のセッション鍵が領域番号 (領域 No. X) と対応付けて保持 される。 ' 次に、 端末 200とカード 100の間では、 メモリカードコマンドを用いた 処理として、端末 200から力一ド 100へのアクセス領域指定コマンド送信 処理 (ステップ S 402)及びデ一夕転送コマンド送信処理 (ステップ S 40 3) と、 カード 100から端末 200への暗号化データ送信処理 (ステップ S 404) とが実行される。
アクセス領域指定コマンド送信処理では、 アクセスしたいセキュリティ保護 領域内の領域を指定するため、 領域 No. x、 ブロックアドレス及びブロック 長を設定したデ一夕を含むアクセス領域指定コマンドが端末 200からカー ド 100へ送信される。 カード 100では、 受信したアクセス領域指定コマン ドから抽出した領域 No. Xに基づいてセキュリティ保護領域へのアクセス可 否検証処理が実行される。
また、デ一夕転送コマンド送信処理では、端末 200において領域 N o . x、 ブロックアドレス及びブロック長と、 ステップ S 401にて力一ド 100との 間で共有した検証用鍵を用いて検証データが作成され、 この検証データを含む デ一夕転送(Read) コマンドが力一ド 100に送信される。 カード 100 では、 受信したデ一夕転送 (Read) コマンドから端末 200との間で共有 した検証用鍵の公開鍵を用いて領域 N o . x、 プロヅクアドレス及びプロヅク 長を元に検証デ一夕を作成していることを確認することで、 ステップ S 402 にて指定されたセキュリティ保護領域へのアクセス可否が検証される。
また、 暗号ィ匕デ一夕送信処理では、 カード 100において上記検証処理にお いてアクセス可となったカードアプリケーションに対応する領域 No. Xに格 納されたデータが、 端末 200との間で共有した暗号用鍵を用いて暗号化され、 この暗号化デ一夕が端末 200に送信される。
以下の説明では、 上記処理概要に処理手順について詳細に説明する。
端末 200とセッシヨン鍵共有部 110との間で送受信されるコマンド形 態は、 一般的な ICカードで用いられる APDUフォ一マヅトに従った形とす る。 つまり、 セヅシヨン鍵共有部 110は I Cカードアプリケーションの形態 をとる。
ここでは、 APDUの送受信方法について、 図 7のシーケンス図を用いて説 明する。
まず、端末 200からカード 100に対するコマンド APDUの送信処理に _ ついて説明する。 ここで、 コマンド APDUとは、 メモリカード側で実行させ たいコマンドを APDUフォーマツト形式で端末 200からメモリ力一ド送 付するものをいい、 具体的には I C力一ド用コマンドを使用する。
まず、端末 200はセッション鍵共有部 110に対して送信するコマンド A PDUを作成する。次に、 端末 20◦は図 2のカード 100の CMDライン 2 2に対して、 APDU送信コマンドを送信する (ステップ S501) o
この APDU送信コマンドは、 従来のデ一夕読み出しコマンドと同様、 図 7 で示されるフォーマツ卜となっており、 6ビヅ卜のコマンドコード 401と 3 2ビヅトのコマンド弓 I数 402から構成される。
APDU送信コマンドにおけるコマンド弓 1数 4◦ 2は、 図 18で示すように、 DAT0ライン 27に入力するデ一夕がコマンド APDUであることを示す フラグ 1401と送信デ一夕数を示す 1403とからなる。 フラグ 1401及 び送信デ一夕数 1403を合わせて 32ビットに満たない場合は未使用フィ 一ルド 1402が存在する。 図 4の DAT 0ライン 27に入力するデータは 512バイト単位となって おり、 送信デ一夕数 1403は、 この 512バイト単位の入力を何回行うかを 示す。
次に、 カード 100のコマンド受信部 101は、 端末 200から送信された コマンドを受信し (ステップ S 502)、 それが APDU送信コマンドである ことを認識し、 CMDライン 22を介して端末 200にレスポンスを返すとと もに (ステヅプ S 503)、 デ一夕制御部 103に対して、 APDU送信コマ ンドを受信したことを通知する (ステップ S 504) 。
次に、端末 200はカード 100の CMDライン 22から APDU送信コマ ンドに対するレスポンスを受信し (ステップ S 503)、 D AT 0ライン 27 に図 20で示すフォーマツトでコマンド APDU 1602を入力する (ステヅ プ S 505)。
図 20において、 1601で示される長さは後に続く APDU 1602の長 - さを示している。長さフィールド 1601と APDU 1602の合計長にあわ せてコマンド引数の送信データ数 1403が設定されている。 また、 前記合計 長は必ずしも 512バイトの倍数になるわけではないので、 512ノ ィトの倍 数になるようにパディング 1603を付加する。
次に、 カード 100内部のデ一夕送受信部 102は、 端末 200から D A T 0ライン 27に入力されたコマンド APDUを受信するとともに (ステップ S 505)、 デ一夕制御部 103にコマンド APDUを受信したことを通知する (ステヅプ S 506 ) 。 次に、 デ一夕制御部 103は、 デ一夕送受信部 102 からコマンド APDUを読み出し (ステップ S 507)、 セッション鍵共有部 110 (I Cカードアプリケーション) にコマンド APDUを渡す (ステップ S 508)
次に、 セッション鍵共有部 110は、 コマンド APDUに記述されたとおり の処理を行い (ステップ S 509) 、 処理の結果生じたデ一夕とステータス情 報をレスポンス APDUとしてデ一夕制御部 103に渡す (ステップ S 51 0)。 このステータス情報とは、 I SO 7816で定義されたステータスヮ一 ドであり、 正常終了したか、 異常終了したかを示す 2バイトの値である。
次に、 カード 100から端末 200に対するレスポンス APDUの送信処理 について、 図 8のシーケンス図を用いて説明する.。 ここでレスポンス APDU とは、 カード 100が実行したコマンド APDUの処理結果をカード 100か ら端末 200へ送信するものをいう。
ここでは、 前記のコマンド APDUの送信方法で示したとおり、 セヅシヨン 鍵共有部 110が出力したレスポンス APDUがデ一夕制 ¾1部 103で保持 されている状態であるものとする。 - まず、 端末 200は、 カード 100の CMDライン 22に対して、 APDU 受信コマンドを送信する(ステップ S 601)。この APDU受信コマンドは、 APDU送信コマンドと同様、 図 9で示される従来のデ一夕読み出しコマンド と同様のフォーマツトとなっており、 6ビヅトのコマンドコード 401と 32 ^ ビットのコマンド引数 402から構成される。
APDU受信コマンドにおけるコマンド引数 402は、 図 19で示すように、 未使用フィールド 1501と送信デ一夕数 1502とからなる。送信デ一夕数 1502が 32ビヅトに満たない場合は未使用フィールド 1501が存在す る。
図 4の DAT 0端子 27から出力されるデ一夕は、 APDU送信コマンドに おける入力データと同様に 512バイト単位となっており、 送信デ一夕数 15 02は 512バイト単位で何回出力を行うかを示す。
次に、 力一ド 100のコマンド受信部 101は、 端末 200から送信された コマンドを受信し (ステヅプ S 602)、 それが APDU受信コマンドである ことを認識し、 CMDライン 22を介して端末 200にレスポンスを返すとと もに (ステップ S 603)、 デ一夕制御部 103に対して、 APDU受信コマ ンドを受信したことを通知する (ステップ S 604)
次に、 データ制御部 103は、 デ一夕送受信部 102に対して、 セヅシヨン 鍵共有部 110から受け取ったレスポンス APDUを渡す (ステヅプ S 60 5) o
次に、 端末 200は、 カード 100の CMDライン 22から APDU受信コ マンドに対するレスポンスを受信し (ステップ S.603)、 DAT 0ライン 2 7を介してデ一夕送受信部 102からレスポンス APDUを読み出す(ステツ プ S 606) 。読み出されるレスポンス APDUは、 図 20で示すフォ一マツ 卜で出力される。各フィールドの詳細については、 APDU送信コマンドにお ける入力時と同様であるため、 説明を省略する。
カード 100に搭載されるフラッシュメモリ 105は、 図 10に示すよう-に、 少なくとも端末 200から従来の読み出し用コマンド及び書き込み用コマン ドに代表されるメモリカードコマンドでアクセスすることが可能な通常領域 (非耐タンパ性のメモリ領域) 62と、 前記の従来のコマンドではアクセスす ることができないセキュリティ保護領域 (耐タンパ性のメモリ領域).61を持 つ。 また、 カード 100は、 図 10に示すように、 ICカードコマンドでァク セスすることが可能な耐夕ンパ領域 ( T R M: tamper resistant module ) 8 0を持つ。 ■ セキュリティ保護領域 61は、 通常、 カードアプリケーションからのみァク セス可能な状態であって、 端末 200からの従来の読み出し用コマンド及び書 き込み用コマンドに対しては、 コマンド受信部 101によってアクセスは排除 される。
本発明におけるメモリカードは内部に複数のカードアプリケーションを搭 載することが可能となっており、 図 11に示すように、 セキュリティ保護領域 61は各アプリケーションに対して個別の領域 (AP 1用領域 71〜AP3用 領域 73) を割り当てることが可能である。
セキュリティ保護領域 61は、 デ一夕制御部 103が管理する格納用暗号鍵 (Ks)で暗号ィ匕されている。 この暗号鍵は、 セキュリティ保護領域 61全体 で 1つの Ksであってもよいし、 各アプリケーション用の AP 1用領域 71〜 AP 3用領域 Ί 3に個別に格納用暗号鍵 K s— 1〜 K s— 3を用意してもよ い。本実施の形態では各アプリケーション ΑΡ 1〜3に格納用暗号鍵 Ks— 1 〜Ks— 3を用意する。
次に、 セキュリティ保護領域 6 1内の各アプリケーション用の AP 1用領域 71〜AP 3用領域 73の内部構成について、 図 12を用いて説明する。
ここでは、 例としてカードアプリケーション AP 1用領域 71をあげている。 AP 1用領域 71の内部はディレクトリ D IH 1, D IR2とファイル F I L E 1〜F I LE 3を用いた階層構造を用いたデ一夕管理となっている。
カードアプリケーション AP 1は、 AP 1用領域 71内でディレクトリ移動 を行い、 目的のファイルが存在するディレクトリ D IR 1, D IR2上でファ ィル F I LE 1〜F I LE 3に対する読み書きを行う。
例えば、 力一ドアプリケーション A P 1がファイル F I LE 3にアクセスす る場合は、 ディレクトリ D I R 1に移動し、 次にディレクトリ D I R 2に移動 した後、 ファイル: F I LE 3の読み書きを行う。 また、 各ディレクトリ D IR 1 , D IR2において、 その下位のディレクトリまたはファイルの作成及び削 除が可能である。
次に、 カード 100内のセヅシヨン鍵共有部 1 10と、 端末 200との間で 行われるセッション鍵共有手順について図 13〜図 16を用いて説明する。 カードアプリケーションと端末 200はそれそれ公開鍵暗号で用いられる 公開鍵と秘密鍵の対を保持し、 お互いに相手の公開鍵を保持している。
セッション鍵共有手順におけるコマンド形態は前記で示した A P D Uを用 いる。以降の説明においてはコマンド形態に関する記述を行わず、 単にコマン ド APDU、 レスポンス APDUと表記する。
まず、 端末 200は、 SELE CTコマンド APDUを送信することで、 力 —ドアプリケ一シヨン AP 1の選択を行う (ステップ 901) 。 SELECT コマンド APDUとは、 以降の I Cカードコマンド (コマンド APDU) を力 ード 100内部のどのアプリケーションに送信するかを指定するコマンド A PDUであり、 他のコマンド APDUと同様に APDU送信コマンドを用いて 送信する。
カード 100は、 端末 200から指定されたカードアプリケーション AP 1 の選択が正常に完了すれば正常完了のレスポンス AP D U、 完了しなければ異 常終了のレスポンス APDUを返す (ステップ 902) 。
次に、 端末 200は、 処理 903を実行する。 この処理 903について簡単 に説明すると、 選択したカードアプリケーション AP 1にアクセスすることを 可能にする DAT A 2を生成するための処理である。 この処理 903の詳細に ついては、 図 14のフローチャートを参照して説明する。 - 端末 200は、乱数 R hの生成を行い(ステヅプ S 903 1 )、乱数 R hと、 端末 200がアクセスしたい図 12で示したファイル F I LE 3のファイル 名を結合し、 カードアプリケーション AP 1が保持する秘密鍵 Pr i Sに対応 した公開鍵 PubSで暗号化して DATA 1を生成し(ステヅプ S 9032)、 , さらに端末 200が保持する秘密鍵 P r i Hに対応した公開鍵 P u b Hを示 す識別子1111> 0—?111311と0八7八1を結合して0八丁 2を生成する (ステップ S 9033) 。
図 13に戻り、 次に、 端末 200は、 カードアプリケーションとのセヅショ ン鍵の共有及び、 端末 200がアクセス可能な領域情報の共有を行うために、 ステップ S 9033で生成した DATA2を含んだ REQ— AREA— IN FOコマンドを力一ドアプリケーションに送信する (ステップ 904) 。
R E Q_A R E A— I N F 0コマンドを受信した力一ドァプリケ一シヨン AP Iは、 処理 905を実行する。 この処理 905の詳細については、 図 15 のフローチャートを参照して説明する。
カードアプリケーション AP 1は、 D AT A2より DATA 1を抽出し、 力 —ドアプリケーション AP 1が保持する秘密鍵 Pr i Sで復号ィ匕し、 乱数 とファイル名 F I LE 3を得る (ステヅプ S 905 1) 。
次に、. DATA2より公開鍵を識別して識別子 I nf o— PubHを抽出し、 I nf o— PubHが示す公開鍵 PubHに対応付けられた端末 200によ るアクセスが認められているかを、 ファイル F I LE 3のアクセス権限設定を 参照して確認する。権限がなければ、 その旨のエラ一をレスポンス APDUと して端末 200に返す。 アクセスする権限があれば、 FILE 3のファイルサ ィズ S I ZE 3を取得する (ステヅプ S 9052) 。
次に、 乱数: Rsを生成し (ステップ S 9053) 、 ファイル F I LE 3に対 する端末 200からのセキュリティ保護領域アクセスコマンドによるァクセ スが可能となるように、 図 47で示すアクセス有効テ一ブル 4500への登録 を行い、端末 200がセキュリティ保護領域アクセスコマンドを用いてァクセ スするときに使用するためのエリア番号 Xをファイル F I LE 3に割り当て、 フアイルサイズ S I Z E 3とともにエリア ·セッション鍵管理部 111に言 ¾t する (ステップ S 9054) 。 このエリア番号とは、 端末 200がセキユリテ ィ保護領域アクセスコマンドによるアクセスを行うときに、 アクセス領域指定 コマンドによって送信するアクセス領域指定情報に含める情報をいう。
次に、 乱数 Rs、 エリア番号 X、 ファイルサイズ S I ZE 3を結合し、 DA T A3を生成し (ステップ S 9055) 、 DATA 3を端末 200の公開鍵 P ubHで暗号ィ匕して DAT A 4を生成する (ステップ S 9056) 。
次に 乱数 Rsと乱数 Rhに排他的論理和を施し、 乱数 Rを生成し (ステヅ プ S 9057)、 乱数 Rから暗号用セッション鍵 Kd、 検証用セッション鍵 K mを生成する (ステヅプ S 9058) 。
次に、 セヅション鍵 K d及び Kmをェリァ番号 Xと関連付け、 エリア .セヅ シヨン鍵管理部 111に記憶する (ステップ S 9059) 。
図 13に戻り、 カード 100はここまでの処理を終えると端末 200に DA T A4を含んだレスポンス APDUを端末 200に送信する (ステップ 90 6) 。
レスポンス APDUを受信した端末 200は、 レスポンス APDUから DA TA4を抽出し、 処理 907を実行する。 この処理 907の詳細については、 図 1 6のフローチャートを参照して説明する。
端末 2 0 0は、 端末 2 0 0の秘密鍵 P: Γ i Hを用いて D A T A 4を復号し D A T A 3を取得する (ステップ S 9 0 7 1 ) 。 次に、 端末 2 0 0は、 D A T A 3より乱数 R sを取得し、 乱数: R sと乱数 R hに.排他的論理和を施し、 乱数 R を生成し (ステップ S 9 0 7 2 )、 乱数 Rから暗号用セッション鍵 K d、 検証 用セヅジョン鍵 Kmを生成する (ステップ S 9 0 7 3 ) 。
以上のステップ 9 0 1から 9 0 7を踏むことで、 端末 2 0 0とカード 1 0 0 間の相互認証を行い、 かつ端末 2 0 0が指定したファイルに対するアクセス権 限があれば端末 2 0 0からのアクセスが可能な状態となり、 またアクセスする 際に必要なエリア番号、 エリア番号に割り当てられたファイルのサイズ S I Z E 3、 および検証用セッション鍵 K m、 暗号用セッション鍵 K dを共有するこ とができる
なお、 ステップ 9 0 4において端末 2 0 0からカード 1 0 0に伝えられるフ アイル名は、 カードアプリケーションが管理するファイルを直接示すものであ る必要はなく、 カードアプリケーションがどのファイルを指しているかが認、識 できる形であればよい。
また、 端末 2 0 0がアクセスしたいファイル及びステップ S 9 0 5 4におい て、 そのファイルに対して端末 2 0 0がアクセス可能となる設定を行った際に 割り当てられるエリァ番号が常に同じとなるようにし、 これらの情報を端末 2 0 0とカード 1 0 0間であらかじめ富¥、識しておくことで、 ステップ 9 0 4にお ける端末 2 0 0がアクセスしたいファイル名の通知およびステヅプ 9 0 6に おけるフアイルに割り当てられたェリァ番号の通知を省略することもできる。 さらに、 本説明では、 各カードアプリケーションが図 1 2で示すようにディ レクトリとファイルからなる階層構造をもち、 ディレクトリ名およびファイル 名でデータを管理している形態で説明したが、 カードアプリケーションに割り 当てられた領域を適当な大きさに分割し、 分割されたそれぞれの領域に番号の ような識別子を割り当てて管理する形態でもよい。 その場合は、 図 1 3で示し た処理手順で用いられるファイル名 F I L E 3の代わりに前記識別子を用い 。
次に、 端末 2 0 0からセキュリティ保護領域に対してアクセスを行う際の処 理について図 1 7及び図 3を用いて説明する。 図.1 7の実線は CMDライン 2 2、 点線は D A T 0ライン 2 7における転送を表す。
まず、 端末 2 0 0はカード 1 0 0に対してメモリカードコマンドであるァク セス領域指定コマンドを送信する (ステップ 1 3 0 1 ) 。 このアクセス領域指 定コマンドは、 図 9で示されるフォーマツトとなっており、 6ビヅトのコマン ドコード 4 0 1と 3 2ビヅトのコマンド引数 4 0 2から構成される。 - アクセス領域指定コマンドにおけるコマンド引数 4 0 2は、 図 1 8で示すよ うに、 D A T 0ライン 2 7に入力するデ一夕がァクセス領域指定情幸艮であるこ とを示すフラグ 1 4 0 1と送信デ一夕数を示す 1 4 0 3とからなる。 フラグ 1 0 1及び送信デ一夕数 1 4 0 3を合わせて 3 2ビットに満たない場合は未 使用フィールド 1 4 0 2が存在する。
D A T 0ライン 2 7に入力するデ一夕は、 5 1 2バイト単位となっており、 送信デ一夕数 1 4 0 3は、 この 5 1 2バイト単位の入力を何回行うかを示す。 次に、 力一ド 1 0 0のコマンド受信部 1 0 1は、 端末 2 0 0から送信された コマンドを受信し、 それがアクセス領域指定コマンドであることを認識し、 端 末にレスポンスを返すとともにデ一夕制御部 1 0 3に対して、 アクセス領域指 定コマンドを受信したことを通知する (ステップ 1 3 0 2 ) 。
次に、 端末 2 0 0はカード 1 0 0の C MDライン 2 2からアクセス領域指定 コマンドに対するレスポンスを受信し、 D A T 0ライン 2 7に図 2 1で示すフ ォ一マツトでアクセス領域指定情報 1 7 0 2を入力する (ステップ 1 3 0 3 )。 図 2 1の 1 7 0 1で示される長さは、後に続くアクセス領域指定情報 1 7 0 2の長さを示している。長さフィールド 1 7 0 1とアクセス領域指定情報 1 7 0 2の合計長に合わせてコマンド弓 ί数 4 0 2の送信データ数 1 4 0 3が設定 されている。 また、 前記合計長は必ずしも 5 1 2バイトの倍数になるわけでは ないので、 5 1 2バイトの倍数になるようにパディング 1 7 0 3を付加する。 アクセス領域指定情報 1 7 0 2は、 図 2 2で示されるように、 図 1 3のステ ヅプ 9 0 6でカードから通知されたエリア番号 Xを指定するエリア番号 1 8 0 1と、 0以上であり、 同じくカードから通知されたファイルサイズ S I Z E 3の範囲で選択可能なアクセス開始アドレス 1 8 0 2と、 1以上であり、 (フ アイルサイズ S I Z E 3 -アクセス開始アドレス 1 8 0 2 ) の範囲で選択可能 なアクセスデ一夕サイズ 1 8 0 3とで構成される。
次に、 カード内部のデ一夕送受信部 1 0 2は、 端末から入力ざれたアクセス 領域指定情報 1 7 0 2を受信するとともに、 デ一夕制御部 1 0 3にアクセス領 域指定情報 1 7 0 2を受信したことを通知する。
次に、 データ制御部 1 0 3は、 デ一夕送受信部 1 0 2からアクセス領域指定 情報 1 7 0 2を読み出し、 ェリァ番号 1 8 0 1が、 図 1 5のステヅプ S 9 0 5 4にて割り当てられたエリア番号 Xであるか、 アクセス開始ァドレス及びァク セスデ一夕サイズは、 ェリァ番号 Xと対応したファイルのフアイルサイズ範囲 に収まっているかをチェックし、 異常があればカード内部に保持するエラ一フ ラグを O Nに設定する。
デ一夕制御部 1 0 3は、 異常がなければ、 図 3に示すパラメ一夕記憶部 1 0 9にアクセス領域指定情報 1 7 0 2 (具体的にはエリア番号 1 8 0 1、 ァクセ ス開始アドレス 1 8 0 2、 アクセスデ一夕サイズ 1 8 0 3 ) を記憶する。
以上が、 アクセス領域を指定する処理である。
次に、 図 1 0のセキュリティ保護領域 6 1に対して読み出しを行う際の処理 について説明する。
図 1 7において、 端末 2 0 0は、 カード 1 0 0に対してセキュリティ保護領 域読み出しコマンドを送信する (ステップ 1 3 0 4 ) 。 このセキュリティ保護 領域読み出しコマンドは、 図 8で示されるフォ一マヅトとなっており、 6ビヅ トのコマンドコード 4 0 1と 3 2ビヅトのコマンド弓 ί数 4 0 2から構成され る。 セキュリティ保護領域読み出しコマンドにおけるコマンド引数 4 0 2は、 セ キユリティ保護領域読み出しコマンドを送信した端末が、 アクセス領域指定コ マンドを送信した端末 2 0 0と同一であるか、 またセヅシヨン鍵共有手順を経 てエリァ番号; が示す領域に対するアクセス権限があることを確認された端 末 2 0 0と同一であるかを検証するための検証デ一夕からなる。
この検証データの生成方法について図 2 3を用いて説明する。
アクセス領域指定倩報 1 7 0 2は、 アクセス領域指定コマンドにおいて D A Tライン 2 7に入力するパラメ一夕である。検証鍵 2 1 0 1は、 図 1 3のステ ヅプ 9 0 7で生成した検証用セッション鍵 K mである。 - 端末 2 0 0内部の検証データ生成部 2 0 3は、 暗号演算を行うモジュールで あり、 セキュリティ保護領域アクセス (読み出しまたは書き込み) コマンドに 含める検証デ一夕を生成する。 ここでは、 D E S -M A Cと呼ばれる M A C (Message Authentication Code) 生成処理を行う。 アクセス領域堉定情報 1 7 0 2に対してパディングデ一夕 2 1 0 5を付加した 2 1 0 2を入力データ として、 検証鍵 2 1 0 1を用いて D E S暗号を用いた M A C生成処理を行い、 MA Cデータを検証データ 2 1 0 4として作成する。
パディングデ一夕 2 1 0 5については、 端末 2 0 0からカード 1 0 0に対し てアクセス領域指定コマンドを送信するときにアクセス領域指定情報 1 7 0 2と併せて送信してもよいし、 あらかじめ端末とカードの間で取り決めをした パディング生成ルールに基づいて生成したパディングデ一夕を付与してもよ い。
なお、 本実施の形態では D E S -M A Cを用いて検証データを作成している が、 他のアルゴリズムを用いてもよい。 さらに、 用途に応じて検証ァルゴリズ ムを選択可能としても良い。
なお、 端末 2 0 0が正当であるか認証する必要がなく、 アクセス領域指定コ マンドとの対応付けのみ確認したい場合は、 暗号処理を用いずに、 単に S H A 1 (Secure Hash Algorithm 1 や M D o (Message Digest o アフレコリズム を用いたハツシュデ一夕を検証デ一夕として用いてもよい。
端末 2 0 0は、 上記の検証デ一夕生成処理によって 3 2ビヅ卜の検証デ一夕 を生成し、 セキュリティ保護領域読み出しコマンドの引数として使用する。 次に、 カード 1 0 0のコマンド受信部 1 0 1は、 端末 2 0 0から送信された コマンドを受信し、 それがセキュリティ保護領域読み出しコマンドであること を認識し、 アクセス領域指定情報 1 7 0 2に関するエラ一フラグが O Nに設定 されている場合は、 レスポンスとしてエラ一を返す。 また、 アクセス領域指定 情報 1 Ί 0 2に関するエラ一フラグが〇Nに設定されていない場合は、 図 1 5 で示すように、 端末に正常レスポンスを返す (ステップ 1 3 0 5 ) とともに、 デ一夕制御部 1 0 3に対してセキュリティ保護領域読み出しコマンドを受信 したことを通知し、 パラメ一夕検証部 1 0 8にコマンド弓 I数 4 0 2として与え られた検証データ 2 1 0 4を渡す。
次に、 端末 2 0 0は、 カード 1 0 0の C MDライン 2 2からセキュリティ保 護領域読み出しコマンドに対するレスポンスを受信し、 。 11 0ラィン2 7か らデ一夕が出力されるのを待つ。
以降にカード 1 0 0によるセキュリティ保護領域のデータ出力処理につい て説明する。
カード 1 0 0のパラメ一夕検証部 1 0 8は、 パラメ一夕記憶部 1 0 9からァ クセス領域指定コマンドによって端末 2 0 0から与えられ、 記憶しておいたァ クセス領域指定情報 1 7 0 2を読み出し、 アクセス領域指定情報 1 7 0 2に含 まれるエリア番号 X ( 1 8 0 1 ) に対応、する、 図 1 5のステップ S 9 0 5 9で 記憶した検証用セッション鍵 K mをエリア'セヅシヨン鍵管理部 1 1 1から取 得する。
次に、 カード 1 0 0のパラメ一夕検証部 1 0 8は、 検証用セヅシヨン鍵 K m とアクセス領域指定情報 1 7 0 2を用いて、 図 2 4に示した検証デ一夕生成処 理を行い、 検証デ一夕 1 9 0 4を生成する。 なお、 検証デ一夕生成処理につい ては、 図 2 3で示した端末 2 0 0による検証デ一夕生成処理と同様であるので 詳細な説明は省略する。
次に、 カード 1 0 0のパラメ一夕検証部 1 0 8は、 上記検証デ一夕生成処理 で生成した検証デ一夕 1 9 0 4と、 端末 2 0 0からセキュリティ保護領域読み 出しコマンドの引数によって与えられた検証データ 5 0 4を比較し、 一致しな ければエラ一とし、 デ一夕読み出し処理に移行しない。 一致した場合は、 次の デ一夕読み出し処理に移行することをデ一夕制御部 1 0 3に通知する。
次に、 カード 1 0 0のデ一夕制御部 1 0 3は、 パラメ一夕記憶部 1 0 9から アクセス領域指定情報 1 7 0 2を読み出し、 その中に含まれるエリア番号 Xを 取得し、 エリア'セヅション鍵管理部 1 1 1からエリァ番号に対応するフアイ ル F I L E 3を認識する
次に、 カード 1 0 0のデータ制御部 1 0 3は、 ファイル F I L E 3がアプリ ケ一シヨン AP 1用の領域であることを確認し、 格納用暗号鍵 K s— 1を取得 する。
次に、 カード 1 0 0のデ一夕制御部 1 0 3は、 アクセス領域指定情報 1 Ί 0 2からアクセス開始ァドレス 1 8 0 2とアクセスデ一夕サイズ 1 8 0 3を取 得し、 ファイル F I L E 3として管理されている領域に対して、 アクセス開始 アドレス 1 8 0 2をオフセヅト、 アクセスデ一夕サイズ 1 8 0 3を読み出しサ ィズとしてメモリアクセス部 1 0 4にデータ読み出し要求を行う。
次に、 カード 1 0 0のデータ制御部 1 0 3は、 暗復号部 1 0 7に対して、 メ モリアクセス部 1 0 4によって読み出されたデ一夕を格納用暗号鍵 K s— 1 で復号化するよう要求する。
次に、 カード 1 0 0のデ一夕制御部 1 0 3は、 暗復号部 1 0 Ίに対して、 暗 復号部 1 0 7によって復号化されたデータを暗号用セッション鍵 K dで暗号 化するよう要求する。
次に カード 1 0 0のデ一夕制御部 1 0 3は、 デ一夕送受信部 1 0 2に対し て、 喑復号部 1 0 7によって暗号用セヅシヨン鍵 K dで暗号化されたデータを 端末 2 0 0に送信するよう要求する。 上記の処理によって、 カード 1 0 0からセキュリティ保護領域のデ一夕がセ ヅシヨン鍵 K dによって暗号ィ匕された状態で出力可能となる。
端末 2 0 0は、 カード 1 0 0からデ一夕が出力可能となったことを認識し、 図 1 7に示すように、 D A T 0ライン 2 7からセッション鍵 K dによって暗号 化された状態のデ一夕を取得し (ステップ 1 3 0 6 ) 、 端末が保持する暗号用 セッション鍵 K dによってデ一夕を復号化し、 アクセス領域指定情報 1 7 0 2 で指定した領域のデ一夕を得る。
次に、 セキュリティ保護領域に対して書き込みを行う際の処理について、 図 2 5を参照して説明する。 - 端末 2 0 0からのアクセス領域指定コマンドの送信 (ステップ 2 0 0 1 ) 、 前記コマンドに対するカード 1 0 0からのレスポンス (ステップ 2 0 0 2 ) 、 及びアクセス領域指定情報の送信 (ステップ 2 0 0 3 ) については、 それぞれ 図 1 7に示したセキュリティ保護領域に対する読み出し処理におけるステツ プ1 3 0 1〜1 3 0 3と同様であるので、 説明を省略する。 ステップ 2 0 0 1 〜ステップ 2 0 0 3を行った後、 端末 2 0 0は、 カード 1 0 0に対してセキュ リティ保護領域書き込みコマンドを送信する (ステップ 2 0 0 4 ) 。 このセキ ユリティ保護領域書き込みコマンドは、 図 8で示されるフォ一マヅトとなって おり、 6ビットのコマンドコード 4 0 1と 3 2ビヅトのコマンド弓 I数 4 0 2か ら構成される。
セキュリティ保護領域読み出しコマンドにおけるコマンド引数 4 0 2は、 セ キユリティ保護領域読み出しコマンドを送信した端末 2 0 0が、 アクセス領域 指定コマンドを送信した端末 2 0 0と同一であるか、 また、 セッション鍵共有 手順を経てェリァ番号 Xが示す領域に対するアクセス権限があることを確認 された端末 2 0 0と同一であるかを検証するための検証データ 1 9 0 4から なる。
この検証デ一夕の生成方法についてはセキュリティ保護領域読み出しコマ ンドと同様であるため、 詳細な説明は省略する。 端末 2 0 0は、 検証デ一夕生成処理によって 3 2ビヅ卜の検証デ一夕を生成 し、 セキュリティ保護領域書き込みコマンドの引数として使用する。
次に、 カード 1 0 0のコマンド受信部 1 0 1は、 端末 2 0 0から送信された コマンドを受信し、 それがセキュリティ保護領域書き込みコマンドであること を認識し、 アクセス領域指定情報 1 7 0 2に関するエラ一フラグが設定されて いる場合は、 レスポンスとしてエラ一を返す。
また、 アクセス領域指定情幸 7 0 2に関するエラ一フラグが設定されてい ない場合は、 CMDライン 2 2から端末 2 0 0に対して正常レスポンスを返す (ステップ 2 0 0 5 ) とともに、 デ一夕制御部 1 0 3に対してセキュリティ保 護領域書き込みコマンドを受信したことを通知し、 パラメ一夕検証部 1 0 8に コマンド引数として与えられた検証デ一夕 5 0 4を渡す。
次に、 端末 2 0 0は、 カード 1 0 0の CMDライン 2 2からセキュリティ保 護領域書き込みコマンドに対するレスポンスを受信し、 D A T 0ライン 2 7に デ—夕の入力を行う。 ここで D A T 0ライン 2 7に入力するデータは、 図 1 3 のステヅプ 9 0 7で生成した暗号用セッション鍵 K dで暗号化したものであ る。 また、 入力デ一夕サイズは、 アクセス領域指定情報 1 7 0 2で指定したァ クセスデ一夕サイズと同一である。
以降にカードによるセキュリティ保護領域へのデ一夕格納処理について説 明する。
カード 1 0 0のパラメ一夕検証部 1 0 8は、 パラメ一夕記憶部 1 0 9からァ クセス領域指定コマンドによって端末 2 0 0から与えられ、 記憶しておいたァ クセス領域指定情報 1 7 0 2を読み出し、 アクセス領域指定情報 1 7 0 2に含 まれるエリア番号 X ( 1 8 0 1 ) に対応する、 図 1 5のステップ 9 0 5 9で記 憶した検証用セッション鍵 Kmをエリア-セッション鍵管理部 1 1 1から取得 する。
次に、 カード 1 0 0のパラメ一夕検証部 1 0 8内部の検証データ生成部 1 9 0 3は、 検証用セヅシヨン鍵 Kmとアクセス領域指定情報 1 7 0 2を用いて、 図 2 4に示した検証デ一夕生成処理を行い、 検証デ一夕 1 9 0 4を生成する。 なお、 検証デ一夕生成処理については、 図 2 3で示した端末による検証データ 生成処理と同様であるので詳細な説明は省略する。
次に、 カード 1 0 0のパラメ一夕検証部 1 0 8は、 上記で生成した検証デー 夕 1 9 0 4と、 端末 2 0 0からセキュリティ保護領域書き込みコマンドの引数 によって与えられた検証デ一夕 2 1 0 1を比較し、 一致しなければエラ一とし、 データ書き込み処理に移行しない。一致した場合は次のデ一夕書き込み処理に 移行することをデ一夕制御部 1 0 3に通知する。
次に、 カード 1 0 0のデ一夕制 ®部 1 0 3は、 パラメ一夕記憶部 1 0 9かち アクセス領域指定情報 1 Ί 0 2を読み出し、 その中に含まれるエリア番号 Xを 取得し、 エリア 'セッション鍵管理部 1 1 1からエリア番号に対応するフアイ ル F I L E 3を認識する。
次に、 カード 1 0 0のデ一夕送受信部 1 0 2は、 端末 2 0 0から入力された デ一夕を受信する。
次に、 カード 1 0 0のデータ制御部 1 0 3は、 ファイル F I L E 3がアプリ ケ一シヨン A P 1用の領域 7 1の中に存在することから、 アプリケーション A P 1用領域 7 1に対応した格納用暗号鍵 K s— 1を取得する。
次に、 カード 1 0 0のデ一夕制御部 1 0 3は、 暗復号部 1 0 Ίに対して、 デ —夕送受信部 1 0 2が受信したデータを暗号用セッション鍵 K dで復号化す るよう要求する。
次に、 カード 1 0 0のデ一夕制御部 1 0 3は、 暗復号部 1 0 7に対して、 暗 復号部 1 0 7が復号化したデ一夕を格納用暗号鍵 K s—1で暗号化するよう 要求する。
次に、 カード 1 0 0のデ一夕制御部 1 0 3は、 アクセス領域指定情報 1 7 0 2からアクセス開始アドレス 1 8 0 2とアクセスデ一夕サイズ 1 8 0 3を取 得し、 ファイル F I L E 3として管理されている領域に対し、 アクセス開始ァ ドレス 1 8 0 2をオフセヅト、 アクセスデータサイズ 1 8 0 3を書き込みサイ ズとして、 メモリアクセス部 1 0 4に対してデータ書き込み要求を行う。 上記のようにして、 端末 2 0 0が入力したセッション鍵 K dで喑号化された デ一夕を格納鍵 K s— 1で暗号ィ匕してフラッシュメモリ 1 0 5に格納する。 本実施の形態では、 セヅシヨン鍵の共有と、 アクセス可能領域に関する樯報 の共有を 1つのコマンドで同時に行っているが、 別コマンドとして行ってもよ い。
• 本実施の形態では、 セヅシヨン鍵の共有と、 アクセス可能領域に関する情報 の共有を 1つのコマンドで同時に行っているが、 別コマンドとして行ってもよ い。 " 以上、 本発明のように、 I Cカード用コマンドとメモリアクセス用コマンド を受信可能なメモリカードにおいて、 力一ドアプリケ一ションが利用し、 通常 は力一ドアプリケ一シヨン経由でのみアクセス可能であり、端末からのァクセ スが制限されているセキュリティ保護領域に対して、 カードアプリケーション ど端末が相互認証し、 カードアプリケーションがアクセス可能設定を行うこと により、 端末からメモリアクセス用コマンドを用いてアクセスすることが可能 となる。
また、 力一ドアプリケーションがアクセス可能設定を行うための力一ドアプ リケ一ションと端末間の相互認証は、 用途が限定されたメモリアクセス用コマ ンドではなく、 I Cカード用コマンドを使うことにより、 デ一夕のセキユリテ ィレベルに応じて相互認証方式を柔軟に選択可能となる。
また、 メモリアクセス用コマンドに含められる引数サイズが 3 2ビヅトのよ うに小さい場合でも、 本発明のように、 アクセス領域指定とセキュリティ保護 領域アクセスのコマンドを分離し、 セキュリティ保護領域アクセス用のコマン ドに検証デ一夕を含めることで、 アクセス領域指定を行った端末アプリケ一シ ヨンとセキュリティ保護領域ァクセス用コマンドを発行した端末アブリケ一 シヨンと検証用鍵を保持した端末アブリケ一ションが同一であることをカー ドが検証することが可能となる。 また、 検証用及び暗号用セヅション鍵の共有処理をセキュリティ保護領域ァ クセスのたびに行うことにより、 セキュリティ保護領域ァクセスに含める検証 デ一夕として適当な値を設定して繰り返し不正アクセスを行う攻撃に対する 防御性を高めることができる。 ■
また、 端末からアクセスしたいファイルをカードに通知し、 それにエリア番 号を割り当て、 カードから端末に通知することにより、 端末がアクセス可能な 領域を設定することが可能となる。 また、 複数のファイルに対して行うことに より、 同時に複数のファイルに対してアクセス可能な状態を作ることができる。
(実施の形態 2 ) '- 本実施の形態では、 端末が、 領域指定コマンドで指定するエリァ番号をあらかじめ 認識している場合のシーケンスを説明する。
まず、 カード内モジュール構成について図 2 6を用いて説明する。 なお、 図 2 6のカード 5 0 0の端子構成は、 図 4に示したものと同様であるため、 その 図示及び説明は省略する。
カード 5 0 0内モジュールは、 C M Dラインに接続され、 コマンドの受信及 びレスポンスの送信を行う処理命令受信手段 5 0 1と、 デ一夕を格納する記憶 領域 5 0 6と、 記憶領域 5 0 6へのアクセス処理を行う記憶領域アクセス手段 5 0 5と、 D A Tラインに接続され、 記憶領域アクセス手段 5 0 5が読み出し たデ一夕を外部機器に送信するデ一夕送信手段 5 0 2と、 同じく D A Tライン に接続され、 外部機器からデ一夕を受信するデ一夕受信手段 5 0 3と、 処理命 令受信手段 5 0 1が受け取った指定情報を検証する指定情報検証手段 5 0 4 と、 からなる。
次に、 端末 6 0 0内モジュール構成について、 図 2 7を用いて説明する。 端末 6 0 0内モジュールは、 カード 5 0 0に対するコマンド送信と、 レスポンス受 信を行う処理命令送信手段 6 0 4と、 カード 5 0 0に対するデ一夕送信を行う データ送信手段 6 0 5と、 カード 5 0 0からのデ一夕受信を行うデ一夕受信手 段 6 0 6と、 アクセスする領域を決定する指定情報決定手段 6 0 1と、 指定情 報から検証情報を生成する検証情報生成手段 6 0 2と、 カード 5 0 0に送信す るデ一夕及びカード 5 0 0から受信するデータを格納するデ一夕記憶手段 6 0 3と、 からなる。
次に、端末 6 0 0からカード 5 0 0のセキュリティ保護領域に対してァクセ スを行う際の処理について、 上記図 2 6及び図 2 7と、 図 2 8に示すフローチ ャ一トを用いて説明する。
まず、端末 6 0 0は指定情報決定手段 6 0 1にてリードアクセス又はライト アクセスを行う領域を決定し (ステヅプ S 2 6 0 1 ) , ァグセス領域指定情報 を生成する (ステップ S 2 6 0 2 ) 。 次に、 このアクセス領域指定情報をデー 夕記憶手段 6 0 3に格納して領域指定命令を処理命令送信手段 6 0 4から力 —ド 5 0 0に送信する (ステップ S 6 0 3 ) 。
領域指定命令のデータ部の一例を図 2 9に示す。
D A Tライン 2 7に入力するデ一夕は 5 1 2バイト単位となっており、 領域 旨定命令のデ一夕部は、 アクセス領域指定情報 2 7 0 2の長さフィールド 2 7 0 1と、 アクセス領域指定情報フィ一ルド 2 7 0 2の合計長が 5 1 2バイトに 満たない場合、 パディング 2 7 0 3が追加される。 本実施の携帯では、 長さフ ィ一ルド 2 7 0 1は 2バイトの長さを持ち、 アクセス領域指定情報 2 7 0 2は、 図 3 0に示すように、 1バイトのエリア番号 2 8 0 1、 3バイトのアクセス開 始アドレス 2 8 0 2、 及び 3バイトのアクセスデータサイズ 2 8 0 3からなる。 つまり合計 9バイトであり 5 1 2バイ卜に満たないため、 5 0 3バイトのパデ ィング 2 7 0 3が付加される。
次に、 図 2 8に戻り、 カード 5 0 0は、 処理命令受信手段 5 0 1にて領域指 定命令を受信すると (ステップ S 2 6 0 4 )、 指定情報検証手段 5 0 4にてァ クセス領域指定情報 2 7 0 2を確認し、 指定した領域が正しいかどうかをエリ ァ番号 2 8 0 1に対応する領域が存在するか、 アクセス開始ァドレス 2 8 0 2 及びアクセスデ一夕サイズ 2 8 0 3がエリア番号 2 8 0 1で示された領域の 範囲に収まっているかを元に判断する (ステップ S 2 6 0 5 ) 。指定情報検証 手段 5 0 4は、 指定した領域が正しくなければ、 領域指定命令を無効として扱 う (ステップ S 2 6 0 6 ) 。 指定した領域が正しい場合、 アクセス領域指定情 # 2 7 0 2を保存し、 アクセス領域指定情報 2 7 0 2と、 端末 6 0 0と力一ド 5 0 0の間で共有している鍵を用いて、 比較情報.を生成する (ステップ S 2 6 0 7 ) o
比較情報の生成方法の一例を図 2 9に示す。
検証デ一夕生成部 2 9 0 2は暗号演算を行うモジュールであり、 本実施の形 態では D E S— MA Cと呼ばれる MA C (Message Authentication Code) を 生成する処理を行う。入力は、 領域指定命令のデ一夕部 2 7 0 4と、 端末 6—0 0との間で共有している検証用の鍵 2 9 0 1である。 D E S— MA Cの出力結 果は 6 4ビヅトであるが、 本実施の形態では、 比較対象となる端末 6 0 0から 送信される検証情報が 3 2ビヅトであるため、 その出力を切り詰めた 2 9 0 3 である前半 3 2ビヅトのみを比較情報 2 9 0 4として用いる。 なお、検証用鍵 2 9 0 1は、 エリア番号に対応して個別かつ固定の鍵であってもよいし、 エリ ァ番号によらず 1つの鍵であってもよい。
また、 図 3 2に示すように、 カード 7 0 0内部に検証用鍵共有手段 7 0 1を 備え、 図 3 3に示すように端末 8 0 0内部に検証用鍵共有手段 8 0 1を備え、 カード 7 0 0と端末 8 0 0の間で、 セキュリティ保護領域へのアクセスを行う たびに検証用鍵を変更してもよい。なお、図 3 2及び図 3 3の各構成において、 図 2 6及び図 2 7に示した構成と同一部分には同一符号を付している。
次に、 検証用鍵の共有方法について上記図 3 2及び図 3 3と、 図 3 4に示す シーケンスおよび図 3 5に示す検証用鍵生成方法を用いて説明する。
図 3 4において、 端末 8 0 0は検証用鍵共有手段 8 0 1において、 乱数 R a を生成し、 この乱数 R aを含んだセヅション鍵共有要求コマンド A P D Uを作 成し、処理命令送信手段 6 0 4から AP D U送信コマンドをカード 7 0 0に送 信するとともに (ステップ S 3 2 0 1 ) 、 デ一夕送信手段 6 0 5からセヅショ ン鍵共有要求コマンド AP D Uをカード 7 0 0に送信する (ステヅプ S 3 2 0 2) o
次に、 カード 700は処理命令受信手段 501にて APDU送信コマンドを 端末 800から受信し、 デ一夕受信手段 503にて端末 800から受信したセ ッション鍵共有要求コマンド A P D Uを検証用鍵共有手段 701に渡す。 検証用鍵共有手段 801では、 乱数 Rbを生成し、 図 35に示すように、 端 末 800から受信した乱数 Raと乱数 Rbを結合したものに対し、 あらかじめ 端末 800との間で共有しているマスター鍵 Kを用いて暗号化処理 (DES- MAC処理) を行い、 セッション鍵 Rを生成する。 次に、 カード 700は、 乱 数 Rbを含むレスポンス APDUを生成する。 - 次に、 端末 800は、 処理命令送信手段 604から APDU受信コマンドを 力一ド 700に送信する (ステップ S 3203) 。
次に、 カード 700は、 処理命令受信手段 501にて APDU受信コマンド を端末 800から受信し、 先ほど作成した乱数 Rbを含むレスポンス APDU をデ一夕送信手段 502より端末 800に送信する (ステップ S 3204) 。 次に、 端末 800は、 デ一夕受信手段 606によりレスポンス APDUを力 —ド 700から受信し、 検証用鍵共有手段 801に渡す。検証用鍵共有手段 8 01は、 図 35に示すように、先ほど自身が生成した乱数 Raと、 レスポンス A PDUに含まれる乱数 を結合したものに対し、 あらかじめカード 700と の間で共有しているマス夕一鍵 Kを用いて暗号化処理 (DES—MAC処理)を行 い、 セッション鍵 Rを生成する。
以上が、 セキュリティ保護領域へのアクセスを行うたびにセッション鍵を変 更する場合の、 端末 800とカード 700の間における検証用鍵共有手順であ る。
なお, 本実施の形態では DES— MACを用いているが、 当然他の暗号アル ゴリズムを用いてもよい。 また、 端末 800が正当であるか、 つまり同一の鍵 を持っているかを検証する必要がない場合、 例えば、 領域指定命令のアクセス 領域指定情報 2702が端末の意図したものになっているかの検証のみ行う 場合は、 暗号処理を用いずに、 図 3 6に示すような検証デ一夕生成部 3 4 0 1 にて S HA— 1演算や、 MD 5アルゴリズムを用いたハッシュ演算やチェヅク サム演算の結果を比較情報として用いることができる。 これらのァルゴリズム を用いた場合も、 比較対象が 3 2ビット長ならば、 出力結果を切りつめ 3 4 0 2、 その一部の 3 2ビヅトのみを比較情報 3 4 0 3とする。
次に、 図 2 8に戻り、 端末 8 0 0は、 検証デ一夕生成部にてアクセス領域指 定情報 2 7 0 2と、 端末 8 0 0とカード 7 0 0の間で共有している検証用鍵 2 9 0 1から検証情報を生成する (ステップ S 2 6 0 8 ) 。
この検証情幸艮の生成について、 図 3 7に示す。検証情報生成部 3 5 0 2にて 検証用鍵 3 5 0 1と領域指定命令のデ一夕部 2 7 0 4を用いて暗号処理を行 い、 検証情報 3 5 0 4を生成する。 生成方法は、 図 3 1で示したカード 7 0 0 における比較情報 2 9 0 4の生成方法と全く同じである。
次に、 図 2 8に戻り、 端末 8 0 0は、 生成した検証情報 3 5 0 4をアクセス 命令.(読み出し) の引数に載せて、 処理命令送信手段 6 0 4からアクセス命令 を送信する (ステップ S 6 0 9 ) 。
アクセス命令は、 図 3 8で示すフォーマットとなっており、 コマンドコード 3 6 0 1とコマンド引数 3 6 0 2の長さはそれぞれ 6ビヅトと 3 2ビヅトで ある。 アクセス命令では、 コマンド弓 ί数 3 6 0 2に検証情報 3 5 0 4を格納す る。
次に、 図 2 8に戻り、 力一ド 7 0 0は、 処理命令受信手段 5 0 1にてァクセ ス命令 (読み出し) を受信し (ステップ S 2 6 1 0 ) 、 指定情報検証手段 5 0 にて事前に領域指定命令が正常に完了したかどうかを確認する (ステヅプ S 2 6 1 1 ) 。領域指定命令が未受信である、 又は指定した領域が正しくないな どの理由で正常に完了していない場合は、 アクセス命令をエラ一として端末 8 0 0に通知する (ステップ S 2 6 1 2 ) 。 この時、 端末 8 0 0は、 カード 7 0 0からエラ一を受信する (ステップ S 2 6 1 2 A) 。
事前に領域指定命令が正常に完了している場合、 指定情報検証手段 5 0 4は、 先ほどカード 7 0 0が作成した比較情報 2 9 0 4と、 アクセス命令のコマンド 引数に格納された検証情報 3 5 0 4を比較する (ステヅプ S 2 6 1 3 ) 。 比較 の結果、 検証情報 3 5 0 4が不正であったならば、 アクセス命令をエラーとし て端末 8 0 0に通知する (ステップ S 2 6 1 4 ) 。 この時、 端末 8 0 0は、 力 —ド 7 0 0からエラ一を受信する (ステヅプ S 2 6 1 4 A;) 。検証情報が正常 であったならば、 指定情報検証手段 5 0 4 4は記憶領域アクセス手段 5 0 5に アクセス領域指定情報 2 7 0 2を通知し、 記憶領域アクセス手段 5 0 5は記憶 領域 5 0 6内のアクセス領域指定情報 2 7 0 2で指定された領域からデ一夕 を読み出し、 データ送信手段 5 0 2からデータを端末 8 0 0に送信する (ス'テ ヅプ S 2 6 1 5 ) 。
次に、 端末 8 0 0は、 カード 7 0 0から送信された読み出しデ一夕をデ一夕 受信手段 6 0 6にて受信し (ステップ S 2 6 1 6 ) 、 デ一夕記憶手段 6 0 3に 格納する。
以上の通り、 メモリアクセス用コマンドに含められる引数サイズが 3 2ビッ トのように小さい場合でも、 本発明のように、 アクセス領域指定とセキユリテ ィ保護領域アクセスのコマンドを分離し、 セキュリティ保護領域アクセス用の コマンドに検証デ一夕を含めることで、 アクセス領域指定を行った端末アプリ ケ一シヨンとセキュリティ保護領域アクセス用コマンドを発行した端末ァプ リケ一シヨンと検証用鍵を保持した端末ァプリケ一シヨンが同一であること をカードが検証することが可能となる。
なお、 検証デ一夕生成のために、 領域指定情報と検証用鍵に加え、 カードか ら出力される乱数情報を利用する方法を、 図 3 9に示すシーケンスを用いて以 下に説明する。 なお、 図 3 9に示す各ステップにおいて、 図 2 8に示したシ一 ケンスのステヅプと同一のステツプには同一符号を付して、 その説明は省略す る。
図 3 9に示すように、 端末 8 0 0から乱数取得命令を端末 8 0 0からカード 7 0 0に送信し (ステップ S 3 7 0 1 )、 カード 7 0 0が乱数 Tを生成し、 この 乱数 Tをカード 7 0 0内部の指定情報検証手段 5 0 4に保持するとともに、 デ —夕送信手段 5 0 2から端末 8 0 0に送信する (ステヅプ S 3 7 0 2 ) 。端末 8 0 0は、 カード 7 0 0から送信された乱数 Τをデ一夕受信手段 6 0 6にて受 信する (ステヅプ S 3 7 0 3 ) 。
乱数 Τを検証情報生成処理に利用する場合の力一ド 7 0 0における比較倩 報の生成処理 (ステップ S 2 6 0 7 ) , および、 端末 8 0 0における検証情報 の生成処理 (ステップ S 2 6 0 8 ) は、 それそれ図 4 0および図 4 1で示すよ うに、 乱数 Τと領域指定命令のデ一夕部 2 7 0 4を結合した.ものに対して暗号 処理を行い、 比較情報 3 8 0 4及び検証情報 3 9 0 を出力する。 - 以上のように、 検証情報生成に乱数情報を利用することにより、 同一の領域 指定情報と検証用鍵を用いて検証情報を作成しても、 乱数情報が変化すること で出力される検証情報が変化するため、 よりセキュリティ強度を向上させるこ とができる。
(実施の形態 3 )
本実施の形態では、 鍵の共有処理を含むシーケンスの例を説明する。
まず、 力一ド内モジュール構成について図 4 2を用いて説明する。 なお、 力 ―ドの端子構成は、 図 4に示したものと同様であるため、 その図示及び説明は 省略する。
カード内モジュールは、 C MDラインに接続され、 コマンドの受信及びレス ポンスの送信を行う処理命令受信手段 9 0 1と、 デ一夕を格納する記憶領域 9 0 6と、 記憶領域 9 0 6へのアクセス処理を行う記憶領域アクセス手段 9 0 5 と、 D A Tラインに接続され、 記憶領域アクセス手段 9 0 5が読み出したデ一 夕を外部機器に送信するデ一夕送信手段 9 0 2と、 同じく D A Tラインに接続 され、 外部機器からデ一夕を受信するデ一夕受信手段 9 0 3と、 端末: L 0 0 0 との間でセキュリティ保護領域アクセスコマンドによるアクセスが可能な領 域に関する情報を共有する可能領域情報共有部 9 0 7と、 データ受信手段 9 0 3経由して受け取つた指定情報を、 検証用鍵を用いて検証する指定情報検証手 段 904と、 からなる。
次に、 端末内モジュール構成について、 図 43を用いて説明する。
端末内モジュールは、 カード 900に対するコマンド送信と、 レスポンス受 信を行う処理命令送信手段 1004と、 カード 900に対するデ一夕送信を行 うデータ送信手段 1005と、 カード 900からのデータ受信を行うデータ受 信手段 1006と、 アクセスする領域を決定する指定情報決定手段 1001と、 セキュリティ保護領域アクセスコマンドによるアクセスが可能な領域に関す る情報を共有する可能領域情報共有部 1007と、 指定情報から検証情報を生 成する検証情報生成手段 1002と、 カード 900に送信するデ一夕及び力二 ド 900から受信するデータを格納するデ一夕記憶手段 1003と、 からなる。 次に、 端末 1000からカード 900内のセキュリティ保護領域に対してァ クセスを行う際の処理について、 上記図 42及び図 43と、 図 44及び図 45 に示すシーケンスを用いて説明する。
まず、 端末 1000は、 指定情報決定手段 1001にて、 リ―ドアクセス又 はライトアクセスを行う領域 Aを決定し (ステップ S 4201) 、 可能領域情 報共有部 1007にて、 前記領域 Aに対するセキュリティ保護領域アクセスコ マンドによるアクセスを許可するように要求するコマンド APDUである領 域開放要求コマンドを処理命令送信手段 1004からカード 900に送信す る (ステップ S 4202 ) o 領域開放要求コマンドは、 端末 1000の公開鍵 を表す識別子 I nf o— PubHと、 領域 Aを示す識別子 aをカード 900の 公開鍵 Pub Sで暗号化したデ一夕とを含む。 なお、 コマンド APDUの送信 方法は実施の形態 1で説明した方法と同様であるので、 詳細な説明は省略する。 次に、 領域開放要求コマンドを受信したカード 900は、 可能領域情報共有 手段 907にてコマンドに含まれる暗号化デ一夕を力一ド 900自身の秘密 鍵 Pr i Sで復号化する (ステップ S 4203) 。 次いで、 端末 1000の公 開鍵識別子 Inf o— PubHからコマンドを送信した端末 1000を識別 し、 識別子 aで示される領域 Aのアクセス権限を参照することで、 該端末 10 00が領域 Aに対するアクセスを許可されているかどうかを確認する (ステツ プ S 4205) 。
アクセスが許可されていない場合は、 領域開放失敗を示すデ一夕をレスボン ス APDUとしてデータ送信手段 902から端末 1000に送信する (ステツ プ S4206)。 アクセスが許可されている場合は、 領域 Aの識別子 aと領域 Aに割り当てたェリァ番号 Xを、 指定情報検証手段 904内に持つ、 セキュリ ティ保護領域アクセスコマンドによるアクセス可否を設定するアクセス有効 テ一ブル 4400 (図 46参照) に登録する (ステップ S 4207) 。 次に、 領域 Aに対応した検証用鍵 Rをアクセス有効テーブル 4400に登録する (ス テツプ S 4208) 。
次に、 エリア番号 X、 領域 Aのサイズを端末 1000の公開鍵 Pub Hで暗 号ィ匕し、 レスポンス APt)Uとしてデ一夕送信手段 902から端末 1000に 送信する (ステップ S 4209) 。
次に、 端末 1000は、 AP D U受信コマンドを処理命令送信手段 1004 からカード 900に送信し、 デ一夕受信手段 1006を用いてレスポンス AP DUをカード 900から取得する (ステップ S 4210)。 なお、 レスポンス APD Uの取得方法は実施の形態 1で説明した方法と同様であるので、 詳細な 説明は省略する。
次に、 端末 1000の可能領域情報共有手段 1007は、 レスポンス APD Uに含まれる暗号デ一夕を端末 1000自身の秘密鍵 P r iHで復号化し (ス テヅプ S4211)、 エリア番号 X、 エリア番号 Xで示される領域 Aのサイズ を得る。 次に、 端末 1000は領域 Aに対応したセヅシヨン鍵を検証情報生成 手段 1002に登録する。エリア番号 Xはアクセス領域指定情報を生成するた めに指定情報決定手段 1001に登録する (ステップ S 4212) 。 以後、 図 45のフローチャートに移行する。
次に、 端末 1000は指定情報決定手段 1001にて可能領域情報共有手段 1007によって登録されたエリア番号 Xを用いてアクセス領域指定情報を 生成する (ステップ S 4 2 1 3 ) 。 次に、 このアクセス領域指定情報をデ一夕 部 2 7 0 4 (図 2 9参照) に格納して、 領域指定命令を処理命令送信手段 1 0 0 4からカード 9 0 0に送信する (ステップ S 4 2 1 4 ) 。 なお、 領域指定命 令におけるアクセス領域指定情報は実施の形態 2.と同様であるので、 詳細な説 明は省略する。
次に、 カード 9 0 0は、 処理命令受信手段 9 0 1にて端末 1 0 0 0から領域 指定命令を受信すると (ステップ S 4 2 1 5 ) 、 指定情報検証手段 9◦ 4にて アクセス領域指定情報を確認し、 エリア番号 Xがアクセス有効テーブル 4 4 0 0に登録されているか、 図 3 0に示したアクセス開始アドレス 2 8 0 2及びァ クセスデ一夕サイズ 2 8 0 3を元に領域 Aの範囲に収まっているか判断する (ステップ S 4 2 1 6 ) 。 指定情報検証手段 9 0 4は、 指定した領域が正しく なければ、 領域指定命令を無効として扱う (ステップ S 4 2 1 7 ) 。 指定した 領域が正しい場合、 アクセス領域指定情報を保存し、 アクセス領域指定情報と アクセス有効テーブル 4 4 0 0に登録された領域 Aに対応した検証用鍵 Rを 用いて、 比較情報を生成する (ステップ S 4 2 1 8 ) 。 なお、 比較情報の生成 方法は実施の形態 2と同様であるので、 詳細な説明は省略する。
次に、 端末 1 0 0 0は、 検証情報生成手段 1 0 0 2にてアクセス領域指定倩 報と、 可能領域情報共有部 1 0 0 7によって登録されたセヅシヨン鍵 Rを用い て検証情報を生成し (ステップ S 4 2 1 9 ) 、 アクセス命令 (読み出し) の引 数に載せて、処理命令送信手段 1 0 0 1からアクセス命令を力一ド 9 0 0に送 信する (ステップ S 4 2 2 0 ) 。 なお、 検証情報の生成方法及びアクセス命令 の送信方法は実施の形態 2と同様であるので、 詳細な説明は省略する。
次に、 カード 9 0 0は、 処理命令受信手段 9 0 1にてアクセス命令 (読み出 し) を受信し (ステップ S 4 2 2 1 ) 、 指定情報検証手段 9 0 4にて事前に領 域指定命令が正常に完了したかどうかを確認する (ステップ S 4 2 2 2 ) 。 領 域指定命令が未受信である、 又は指定した領域が正しくないなどの理由で正常 に完了していない場合は、 アクセス命令をエラーとして端末 1 0 0 0に通知す る (ステップ S 4 2 2 3 ) 。 この時、 端末 1 0 0 0は、 力一ド 9 0 0からエラ —を受信する (ステップ S 4 2 2 3 A;) 。
事前に領域指定命令が正常に完了している場合、 指定情報検証手段 9 0 4は、 先ほどカード 9 0 0が作成した比較情報と、 アクセス命令の引数に格納された 検証情報を比較する (ステップ S 4 2 2 4 ) 。 比較の結果、 検証情報が不正で あったならば、 アクセス命令をエラ一として端末 1 0 0 0に通 ¾1する (ステヅ プ S 4 2 2 5 ) 。 この時、 端末 1 0 0 0は、 カード 9 0 0からエラ一を受信す る (ステップ S 4 2 2 5 A)
検証情報が正常であったならば, 指定情報検証手段 9 0 4は、 記憶領域ァク セス手段 9 0 5に指定情報を通知し、 記憶領域アクセス手段 9 0 5は記憶領域 9 0 6内の領域指定命令で指定された領域からデ一夕を読み出し、 デ一夕送信 手段 9 0 2からデ一夕を端末 1 0 0 0に送信する (ステヅプ S 4 2 2 6 ) 。 次に、 端末 1 0 0 0は、 カード 9 0 0から送信された読み出しデ一夕をデー 夕受信手段 1 0 0 6にて受信し、 デ一夕記憶手段 1 0 0 3に格納する (ステヅ プ S 4 2 2 7 )
次に、 端末 1 0 0 0は、 領域 Aに対するセキュリティ保護領域アクセスコマ ンドによるアクセスが不要になったとき、 領域 Aに対応するエリア番号 Xを無 効化するための領域無効コマンド A P D Uを作成し、 デ一夕送信手段 1 0 0 5 からカード 9 0 0に送信する (ステップ S 4 2 2 8 ) 。
次に、 領域無効コマンド A P D Uを受信したカード 9 0 0は、 アクセス有効 テ一ブル 4 4 0 0を検索し、 ェリァ番号 Xが見つかれば、 テ一ブル内のェリァ 番号 Xに割り当てられた領域識別子 a、 セヅション鍵 Rとともにエリァ番号 X の登録を削除し、 ェリァ番号; Xを指定した領域 Aへのセキュリティ保護領域ァ クセスコマンドによるアクセスを無効化する (ステップ S 4 2 2 9 ) 。
以上の通り、 セキュリティ保護領域内のある領域に対し、 必要な場合のみ領 域開放要求によってセキュリティ保護領域アクセスコマンドによるアクセス が可能な状態にし、 また不要となったときは領域無効要求によって、 その領域 へのアクセスを不可能にすることで、 セキュリティ強度を向上させることがで る
本明細書は、 2003年 7月 16日出願の特願 2003-275672及び 2004年 7月 2日出願の特願 2004-197.453に基づく。 この内容は すべてここに含めておく。 産業上の利用可能性
メモリカードコマンドと I C力一ドコマンドを併用し、 メモリアクセスにつ いてはメモリカードコマンドを使用することで複雑さを回避しながら、 少ない コマンド引数でも安全に端末を認証可能とすることができる。

Claims

請求の範囲
1 . '機器からメモリデバイスに対するアクセス方法であって、 前記機器が、 前記メモリデバイスへのアクセス領域を指定する指定情報を送信するステツ プと、 前記アクセス領域への処理命令と、 前記指定情報に関する検証情報と、 を併せて送信するステップと、 前記メモリデバイスが、 前記指定情報を受信す るステップと、 前記処理命令と前記検証情報を受信し、 前記指定情報を前記検 証情報を用いて検証するステップと、 前記検証にて成功した場合、 前記処理命 令を実行するステップと、 を有するアクセス方法。 -
2 . 機器からメモリデバイスに対するアクセス方法であって、 前記機器が、 前記メモリデバイスとで、 当該メモリデバイスへのアクセス可能領域に関する 可能領域情報を共有化するステップと、 前記可能領域情報を参照し、 前記メモ リデバイスへのアクセス領域を指定する指定情報を送信するステヅプと、 前記 アクセス領域への処理命令と、 前記指定情報に関する検証情報と、 を併せて送 信するステップと、 前記メモリデバイスが、 前記指定情報を受信するステップ と、 前記処理命令と前記検証情報を受信し、 前記指定情報を前記検証情報を用 いて検証するステップと、 前記検証にて成功した場合、 前記処理命令を実行す るステップと、 を有するアクセス方法。
3 . 機器からメモリデバイスに対するアクセス方法であって、 前記機器が、 前記メモリデバイスとで、 検証用鍵を共有化するステップと、 前記メモリデバ イスへのァクセ 領域を指定する指定情報を送信するステップと、 前記ァクセ ス領域への処理命令と、前記指定情報に関する検証情報を前記検証用鍵で暗号 化した検証データと、 を併せて送信するステップと、 前記メモリデバイスが、 前記指定情報を受信するステヅプと、 前記処理命令と前記検証データを受信し、 前記指定情報を前記検証データと前記検証用鍵とを用いて検証するステップ と、 前記検証にて成功した場合、 前記処理命令を実行するステップと、 を有す るアクセス方法。
4 . 機器からメモリデバイスに対するアクセス方法であって、 前記機器が、 前記メモリデバイスとで、 当該メモリデバイスへのアクセス可能領域に関する 可能領域情報を共有化するステップと、 前記メモリデバイスとで、 前記ァクセ ス可能領域に対応した検証用鍵を共有ィ匕するステップと、 前記可能領域情報を 参照し、 前記メモリデバイスへのアクセス領域を指定する指定情報を送信する ステヅプと、 前記アクセス領域への処理命令と、 前記指定情報に関する検証情 報を前記検証用鍵で暗号化した検証データと、 を併せて送信するステップと、 前記メモリデバイスが、 前記指定情報を受信するステップと、 前記処理命令と 前記検証デ一夕を受信し、 前記指定情報を前記検証デ一夕と前記検証用鍵とを 用いて検証するステップと、 前記検証に,て成功した場合、 前記処理命令を実行 するステップと、 を有するアクセス方法。
5 . 機器からメモリデバイスに対するアクセス方法であって、 前記機器が、 前記メモリデバイスとで、 第一の処理系コマンドを用いて、 当該メモリデバイ
„スへのアクセス可能領域に関する可能領域情報を共有化するステップと、 前記 可能領域情報を参照し、 第二の処理系コマンドを用いて、 前記メモリデバイス へのアクセス領域を指定する指定情報を送信するステップと、 前記第二の処理 系コマンドを用いて、 前記アクセス領域への処理命令と、 前記指定情報に関す る検証情報と、 を併せて送信するステップと、 前記メモリデバイスが、 前記指 定情報を受信するステップと、 前記処理命令と前記検証情報を受信し、 前記指 定情報を前記検証情報を用いて検証するステヅプと、 前記検証にて成功した場 合、 前記処理命令を実行するステップと、 を有するアクセス方法。
6 . 機器からメモリデバイスに対するアクセス方法であって、 前記機器が、 前記メモリデバイスとで、 第一の処理系コマンドを用いて、 検証用鍵を共有化' するステップと、 第二の処理系コマンドを用いて、 前記メモリデバイスへのァ クセス領域を指定する指定情報を送信するステップと、 前記第二の処理系ゴマ ンドを用いて、 前記アクセス領域への処理命令と、 前記指定情報に関する検証 情報を前記検証用鍵で暗号化した検証デ一夕と、 を併せて送信するステップと、 前記メモリデバイスが、 前記指定情報を受信するステップと、 前記処理命令と 前記検証デ一夕を受信し、前記指定情報を前記検証デ一夕と前記検証用鍵とを 用いて検証するステップと、 前記検証にて成功した場合、 前記処理命令を実行 するステップと、 を有するアクセス方法。
7 . 機器からメモリデバイスに対するアクセス方法であって、 前記メモリデ バイスは、 前記機器からのアクセスが制約された耐タンパ性の第 1領域と、 前 記機器からのアクセスが制約された非耐タンパ性の第 2領域と、 前記機器から アクセスすることが可能な第 3領域と、 を有し、 少なくとも前記第 1領域への 処理命令である第一の処理系コマンドと、 少なくとも前記第 3領域への処理命 令である第二の処理系コマンドと、 を判別する機能を備え、 前記機器は、 前記 メモリデバイスとで、 第一の処理系コマンドを用いて、 当該メモリデバイスへ のアクセス可能領域に関する可能領域情報を共有ィ匕するステヅプと、 前記可能 領域情報を参照し、 第二の処理系コマンドを用いて、 前記第 2領域へのァクセ ス領域を指定する指定情報を送信するステップと、 第二の処理系コマンドを用 いて、 前記アクセス領域への処理命令と、 前記指定情報に関する検証情報と、 を併せて送信するステップと、 前記メモリデバイスは、 前記指定情報を受信す るステップと、 前記処理命令と前記検証情報を受信し、 前記指定情報を前記検 証情報を用いて検証するステップと、 前記検証にて成功した場合、 前記処理命 令を実行するステップと、 を有するアクセス方法。
8 . 機器からメモリデバイスに対するアクセス方法であって、 前記メモリデ バイスは、 前記機器からのアクセスが制約された耐タンパ性の第 1領域と、 前 記機器からのアクセスが制約された非耐夕ンパ性の第 2領域と、 前記機器から アクセスすることが可能な第 3領域と、 を有し、 少なくとも前記第 1領域への 処理命令である第一の処理系コマンドと、 少なくとも前記第 3領域への処理命 令である第二の処理系コマンドと、 を判別する機能を備え、 前記機器は、 前記 メモリデバイスとで、 第一の処理系コマンドを用いて、 検証用鍵を共有化する ステップと、 第二の処理系コマンドを用いて、 前記第 2領域へのアクセス領域 を指定する指定情報を送信するステップと、 第二の処理系コマンドを用いて、 前記ァクセス領域への処理命令と、 前記指定情報に関する検証情報を前記検証 用鍵で暗号化した検証デ一夕と、 を併せて送信するステップと、 前記メモリデ バイスは、 前記指定情報を受信するステップと、 前記処理命令と前記検証デ一 夕を受信し、 前記指定情報を前記検証データと前記検証用鍵とを用いて検証す るステップと、 前記検証にて成功した場合、 前記処理命令を実行するステップ と、 を有するアクセス方法
9 . 機器から読み書きされるメモリデバイスであって、 アクセスする領域を 指定する指定情報を受信するとともに、 前記指定情報に基づく検証情報と読み 出し又は書き込み命令を併せて受信する処理命令受信手段と、前記指定情報を、 前記検証情報を用いて検証処理を行う指定情報検証手段と、 デ一夕を格納する 記憶領域と、 前記検証処理が成功した場合に、 前記処理命令に応じて、 前記記 憶領域の前記指定領域に対する読み出し又は書き込みを行う記憶領域ァクセ ス手段と、 前記記憶領域アクセス手段が読み出したデ一夕を前記機器に送信す るデータ送信手段と、 前記機器から書き込みデータを受信するデ一夕受信手段 と、 を備えることを特徴とするメモリデバイス。
1 0 . 前記指定情報検証手段の検証処理が、 前記検証情報と検証用鍵を用い て行うことを特徴とする請求の範囲 9記載のメモリデバイス。
1 1 . 前記機器との間で前記検証用鍵を共有する検証用鍵共有手段をさらに 備えることを特徴とする請求の範囲 1 0記載のメモリデバイス。
1 2 . 前記機器との間でメモリデバイスへのアクセス可能な領域を示す可能 領域情報を共有する可能領域情報共有手段をさらに備えることを特徴とする 請求の範囲 9記載のメモリデバイス。
1 3 . メモリデバイスを読み書きする情報機器であって、 読み出し又は書き 込みする領域を決定し、 前記領域を指定する指定情報を決定する指定情報決定 手段と、 前記指定情報から前記検証情報の生成処理を行う検証情報生成手段と、 前記指定情報の送信と、 前記検証情報と読み出し又は書き込みの処理命令とを 併せて送信する処理命令送信手段と、 前記処理命令が書き込みの場合は、 前記 メモリデバイスにデ一夕を送信するデ一夕送信手段と、 前記処理命令が読み出 しの場合は、 前記メモリデバイスからデータを受信するデータ受信手段と、 前 記メモリデバイスに送信するデ一夕を記憶し、 または、 前記メモリデバイスか ら受信したデ一夕を記憶するデータ記憶手段と、 を備えることを特徴とする情 報機器。
1 4 . 前記検証情報生成手段の前記検証情報の生成処理が、 前記指定情報と 検証用鍵とを用いて行うことを特徴とする請求の範囲 1 3記載の情報機器。
1 5 . 前記メモリデバイスとの間で前記検証用鍵を共有する検証用鍵共有手 段を備えることを特徴とする請求の範囲 1 4記載の情報機器。
1 6 . 前記メモリデバイスとの間で、 当該メモリデバイスへのアクセス可能 な領域を示す可能領域情報を共有する可能領域情報共有手段をさらに備える ことを特徴とする請求の範囲 1 3記載の情報機器。 .
1 7 . 機器からメモリデバイスに対するアクセス方法であって、前記機器が、 前記メモリデバイスへのアクセス領域を指定する指定情報を送信するステツ プと、 前記アクセス領域への処理命令と、 前記指定情報に関する検証情報を検 証用鍵で暗号ィ匕した検証デ一夕と、 を併せて送信するステップと、 前記メモリ デバイスが、 前記指定情報を受信するステップと、 前記処理命令と前記検証デ 一夕を受信し、 前記指定情報を前記検証デ一夕と検証用鍵とを用いて検証する ステップと、 前記検証に成功した場合、 前記処理命令を実行するステップと、 を有するアクセス方法。
1 8 . 機器からメモリデバイスに対するアクセス方法であって、前記機器は、 第一の処理系コマンドを用いて前記メモリデバイスへのアクセス可能領域に 関する可能領域情報を共有化するステップと、 第一の処理系コマンドを用いて 前記アクセス可能領域に対応した検証用鍵を共有化するステップと、 第二の処 理系コマンドを用いて、 前記メモリデバイスへのアクセス領域を指定する指定 情報を送信するステップと、 第二の処理系コマンドを用いて前記アクセス領域 への処理命令と、 前記指定情報に関する検証情報を前記検証用鍵で暗号化した 検証デ一夕と、 を併せて送信するステップと、 前記メモリデバイスは、 前記指 定情報を受信するステップと、 前記処理命令と前記検証デ一夕を受信し、 前記 指定情報を前記検証データと前記検証用鍵とを用いて検証するステヅプと、 前 記検証にて成功した場合は、 前記処理命令を実行するステップと、 を有するァ クセス方法。
1 9 . 機器からメモリデバイスに対するアクセス方法であって、 前記メモ リデバイスは、 前記機器からのアクセスが制約された耐タンパ性の第 1領域と、 前記機器からのアクセスが制約された非耐タンパ性かつ大容量の第 2領域と、 前記機器からアクセスすることが可能なかつ大容量の第 3領域と、 を有し、 少 なくとも前記第 1領域への処理命令である第一の処理系コマンドと、 少なくと も前記第 3領域への処理命令である第二の処理系コマンドと、 を判別する機能 を備え、 前記機器は、 前記メモリデバイスとで、 第一の処理系コマンドを用い て、 当該メモリデバイスへのアクセス可能領域に関する可能領域情報を共有化 するステップと、 第一の処理系コマンドを用いて、 前記アクセス可能領域に対 応した検証用鍵を共有化するステップと、 第二の処理系コマンドを用いて、 前 記第 2領域へのアクセス領域を指定する指定情報を送信するステヅプと、 第二 の処理系コマンドを用いて、 前記アクセス領域への処理命令と、 前記指定情報 に関する検証情報を前記検証用鍵で暗号化した検証データと、 を併せて送信す るステヅプと、 前記メモリデバイスは、 前記指定情報を受信するステップと、 前記処理命令と前記検証データを受信し前記指定情報を前記検証データと前 記検証用鍵とを用いて検証するステヅプと、 前記検証にて成功した場合、 前記 処理命令を実行するステップと、 を有するアクセス方法。
PCT/JP2004/010432 2003-07-16 2004-07-15 アクセス方法 WO2005008502A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US10/527,820 US7559090B2 (en) 2003-07-16 2004-07-15 Memory, information apparatus for access to the memory, and method for the information apparatus
EP04747821.9A EP1560120B1 (en) 2003-07-16 2004-07-15 Access method
IL167269A IL167269A (en) 2003-07-16 2005-03-07 Access method

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2003275672 2003-07-16
JP2003-275672 2003-07-16
JP2004-197453 2004-07-02
JP2004197453A JP4624732B2 (ja) 2003-07-16 2004-07-02 アクセス方法

Publications (1)

Publication Number Publication Date
WO2005008502A1 true WO2005008502A1 (ja) 2005-01-27

Family

ID=34082359

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2004/010432 WO2005008502A1 (ja) 2003-07-16 2004-07-15 アクセス方法

Country Status (7)

Country Link
US (1) US7559090B2 (ja)
EP (1) EP1560120B1 (ja)
JP (1) JP4624732B2 (ja)
KR (2) KR100723762B1 (ja)
IL (1) IL167269A (ja)
TW (2) TW200821953A (ja)
WO (1) WO2005008502A1 (ja)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE60305752T2 (de) * 2002-01-24 2007-01-25 Matsushita Electric Industrial Co., Ltd., Kadoma SpeicherKarte
US7581678B2 (en) 2005-02-22 2009-09-01 Tyfone, Inc. Electronic transaction card
JP4591163B2 (ja) * 2005-04-07 2010-12-01 パナソニック株式会社 バスアクセス制御装置
GB0517615D0 (en) * 2005-08-30 2005-10-05 Ecebs Ltd Improved smartcard system
JP4827919B2 (ja) * 2006-04-28 2011-11-30 パナソニック株式会社 通信端末装置およびアクセス方法
JP2007304847A (ja) 2006-05-11 2007-11-22 Megachips Lsi Solutions Inc メモリ装置
JP2009537042A (ja) * 2006-05-12 2009-10-22 サムスン エレクトロニクス カンパニー リミテッド 保安データを管理する装置およびその方法
FI118841B (fi) * 2006-09-13 2008-03-31 Eads Secure Networks Oy Matkaviestimen autentikointi
JP2008123482A (ja) * 2006-10-18 2008-05-29 Matsushita Electric Ind Co Ltd 記憶媒体制御方法
US20110271044A1 (en) * 2007-03-30 2011-11-03 Tyfone, Inc. Memory card having one or more secure elements accessed with hidden commands
EP2187313A4 (en) * 2007-09-04 2011-08-03 Nintendo Co Ltd WRITE-IN REGIONAL SECURITY SYSTEM
US20090097657A1 (en) * 2007-10-05 2009-04-16 Scheidt Edward M Constructive Channel Key
US9741027B2 (en) 2007-12-14 2017-08-22 Tyfone, Inc. Memory card based contactless devices
US8401192B2 (en) * 2008-02-29 2013-03-19 Red Hat, Inc. Mechanism for securely ordered message exchange
US8812858B2 (en) * 2008-02-29 2014-08-19 Red Hat, Inc. Broadcast stenography of data communications
JP2009276916A (ja) 2008-05-13 2009-11-26 Sony Corp 通信装置、通信方法、リーダライタ及び通信システム
US8451122B2 (en) 2008-08-08 2013-05-28 Tyfone, Inc. Smartcard performance enhancement circuits and systems
US20100033310A1 (en) * 2008-08-08 2010-02-11 Narendra Siva G Power negotation for small rfid card
US7961101B2 (en) * 2008-08-08 2011-06-14 Tyfone, Inc. Small RFID card with integrated inductive element
JP5293113B2 (ja) * 2008-11-25 2013-09-18 大日本印刷株式会社 半導体装置、半導体装置の制御方法および半導体装置の制御プログラム
US8231061B2 (en) 2009-02-24 2012-07-31 Tyfone, Inc Contactless device with miniaturized antenna
JP5824849B2 (ja) 2011-04-22 2015-12-02 ソニー株式会社 情報処理装置および情報処理方法
US8386691B1 (en) * 2011-08-19 2013-02-26 Key Asic Inc. Multimedia storage card system
US9172539B2 (en) * 2011-09-14 2015-10-27 Mastercard International Incorporated In-market personalization of payment devices
JP5832963B2 (ja) * 2012-06-29 2015-12-16 株式会社東芝 メモリシステム
JP5779147B2 (ja) * 2012-07-06 2015-09-16 株式会社東芝 メモリシステム
JP5779148B2 (ja) * 2012-07-06 2015-09-16 株式会社東芝 メモリシステム
JP5908869B2 (ja) * 2013-07-02 2016-04-26 ソニー株式会社 通信装置
US9665414B2 (en) * 2015-01-21 2017-05-30 Oracle International Corporation Communication protocol bridge for card computing devices
JP2020027341A (ja) 2018-08-09 2020-02-20 キオクシア株式会社 ストレージ装置およびデータ改ざん検証方法
JP7206869B2 (ja) * 2018-12-05 2023-01-18 凸版印刷株式会社 暗号化通信システム及び暗号化通信方法
KR102267735B1 (ko) * 2020-11-18 2021-06-22 주식회사 케이사인 영지식 증명을 이용한 탈중앙화 신원증명 시스템 및 방법
CN113132395B (zh) * 2021-04-22 2022-11-11 支付宝(杭州)信息技术有限公司 一种远程设备控制方法和系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01147686A (ja) * 1987-12-02 1989-06-09 Toshiba Corp 携帯可能電子装置
JPH0778126A (ja) * 1993-09-08 1995-03-20 Kyodo Printing Co Ltd Icカード用のマイクロコンピュータ
JPH11306088A (ja) * 1998-04-27 1999-11-05 Toppan Printing Co Ltd Icカードおよびicカードシステム
JP2001118034A (ja) * 1999-10-15 2001-04-27 Toshiba Corp Icカード利用装置、icカード及び記憶媒体

Family Cites Families (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4621321A (en) * 1984-02-16 1986-11-04 Honeywell Inc. Secure data processing system architecture
US4713753A (en) * 1985-02-21 1987-12-15 Honeywell Inc. Secure data processing system architecture with format control
US4816654A (en) * 1986-05-16 1989-03-28 American Telephone And Telegraph Company Improved security system for a portable data carrier
US4816653A (en) * 1986-05-16 1989-03-28 American Telephone And Telegraph Company Security file system for a portable data carrier
EP0440158B1 (en) * 1990-01-30 1997-09-10 Kabushiki Kaisha Toshiba Mutual authentication system
US5293576A (en) * 1991-11-21 1994-03-08 Motorola, Inc. Command authentication process
US5533125A (en) * 1993-04-06 1996-07-02 International Business Machines Corporation Removable computer security device
JP3568970B2 (ja) 1993-04-12 2004-09-22 株式会社東芝 Icカード発行装置
WO1995016238A1 (en) * 1993-12-06 1995-06-15 Telequip Corporation Secure computer memory card
JP3176209B2 (ja) * 1994-02-25 2001-06-11 富士通株式会社 カード型記憶媒体およびカード型記憶媒体発行装置
DE19508723A1 (de) * 1995-03-10 1996-09-12 Siemens Ag Mehrbenutzerdatenverarbeitungsanlage mit Speicherschutz
EP0842471A4 (en) * 1995-07-31 2006-11-08 Hewlett Packard Co METHOD AND APPARATUS FOR MANAGING RESOURCES UNDER THE CONTROL OF A PROTECTED MODULE OR OTHER PROTECTED PROCESSOR
FR2743910B1 (fr) * 1996-01-19 1998-02-27 Solaic Sa Procede de mise en oeuvre d'un programme securise dans une carte a microprocesseur et carte a microprocesseur comportant un programme securise
JP3774260B2 (ja) * 1996-03-25 2006-05-10 株式会社ルネサステクノロジ メモリカードのセキュリティシステム装置及びそのメモリカード
JPH10105408A (ja) * 1996-09-30 1998-04-24 Toshiba Corp 情報処理装置
US6526145B2 (en) * 1997-01-29 2003-02-25 David M. Marzahn Data encryptor/decryptor using variable in-place I/O
JP4268690B2 (ja) * 1997-03-26 2009-05-27 ソニー株式会社 認証システムおよび方法、並びに認証方法
US5974499A (en) * 1997-04-23 1999-10-26 Micron Technology, Inc. Memory system having read modify write function and method
JPH11175402A (ja) * 1997-12-10 1999-07-02 Fujitsu Ltd カード型記憶媒体及びカード型記憶媒体のアクセス制御方法並びにカード型記憶媒体用アクセス制御プログラムを記録したコンピュータ読み取り可能な記録媒体
JPH11203266A (ja) * 1998-01-07 1999-07-30 Mitsubishi Electric Corp マイクロコンピュータ
JP3611964B2 (ja) * 1998-04-16 2005-01-19 富士通株式会社 記憶装置、記憶制御方法及び記憶媒体
JP2000003424A (ja) * 1998-04-17 2000-01-07 Hitachi Ltd メモリ内容移行制御部を備えたicカ―ド及びicカ―ドのデ―タ記憶方法
US20010011337A1 (en) * 1998-09-15 2001-08-02 Massoud Shamshirian Programmable multiple sequential sector locking for semicondutor memories
JP3545627B2 (ja) * 1999-02-08 2004-07-21 株式会社東芝 携帯可能電子装置
JP4204133B2 (ja) * 1999-02-26 2009-01-07 ローム株式会社 通信システム
JP3389186B2 (ja) * 1999-04-27 2003-03-24 松下電器産業株式会社 半導体メモリカード及び読み出し装置
CA2338634C (en) * 1999-05-28 2007-06-26 Matsushita Electric Industrial Co., Ltd. A semiconductor memory card, playback apparatus, recording apparatus, playback method, recording method, and computer-readable recording medium
US7221961B1 (en) * 1999-06-14 2007-05-22 Ntt Docomo, Inc. Wireless telecommunications unit attachable to and detachable from an external unit
JP4079550B2 (ja) * 1999-06-24 2008-04-23 富士通株式会社 不正読み出しを防止した不揮発性メモリ
JP4413406B2 (ja) * 2000-10-03 2010-02-10 株式会社東芝 不揮発性半導体メモリ及びそのテスト方法
JP2002132583A (ja) * 2000-10-20 2002-05-10 Sony Corp データ処理装置、データ記憶装置、およびデータ処理方法、並びにプログラム提供媒体
US6807602B1 (en) * 2000-10-30 2004-10-19 Hewlett-Packard Development Company, L.P. System and method for mapping bus addresses to memory locations utilizing access keys and checksums
JP2002229861A (ja) * 2001-02-07 2002-08-16 Hitachi Ltd 著作権保護機能つき記録装置
JP2002278838A (ja) * 2001-03-15 2002-09-27 Sony Corp メモリアクセス制御システム、デバイス管理装置、パーティション管理装置、メモリ搭載デバイス、およびメモリアクセス制御方法、並びにプログラム記憶媒体
US6526491B2 (en) * 2001-03-22 2003-02-25 Sony Corporation Entertainment Inc. Memory protection system and method for computer architecture for broadband networks
US7093104B2 (en) * 2001-03-22 2006-08-15 Sony Computer Entertainment Inc. Processing modules for computer architecture for broadband networks
AUPR471401A0 (en) * 2001-05-02 2001-05-24 Keycorp Limited Method of manufacturing smart cards
JP4222509B2 (ja) * 2001-06-04 2009-02-12 株式会社ルネサステクノロジ 記憶装置
US7073059B2 (en) * 2001-06-08 2006-07-04 Hewlett-Packard Development Company, L.P. Secure machine platform that interfaces to operating systems and customized control programs
JP3900863B2 (ja) * 2001-06-28 2007-04-04 シャープ株式会社 データ転送制御装置、半導体記憶装置および情報機器
JP3865629B2 (ja) 2001-07-09 2007-01-10 株式会社ルネサステクノロジ 記憶装置
JP2003051819A (ja) * 2001-08-08 2003-02-21 Toshiba Corp マイクロプロセッサ
GB2385951A (en) * 2001-09-21 2003-09-03 Sun Microsystems Inc Data encryption and decryption
JP4226816B2 (ja) * 2001-09-28 2009-02-18 株式会社東芝 マイクロプロセッサ
US6745307B2 (en) * 2001-10-31 2004-06-01 Hewlett-Packard Development Company, L.P. Method and system for privilege-level-access to memory within a computer
FR2834361B1 (fr) * 2001-12-28 2004-02-27 Bull Sa Module de securisation de donnees par chiffrement/dechiffrement et/ou signature/verification de signature
US7313705B2 (en) * 2002-01-22 2007-12-25 Texas Instrument Incorporated Implementation of a secure computing environment by using a secure bootloader, shadow memory, and protected memory
DE60305752T2 (de) * 2002-01-24 2007-01-25 Matsushita Electric Industrial Co., Ltd., Kadoma SpeicherKarte
US7167426B2 (en) * 2002-03-29 2007-01-23 Sony Corporation Data recording/reproducing method and apparatus including random number generation and data sector scrambling
US20030225962A1 (en) * 2002-05-31 2003-12-04 Hitachi, Ltd. Memory card and memory card system
US20060106836A1 (en) * 2002-06-07 2006-05-18 Madoka Masugi Data processing system, data processing device, data processing method, and computer program
JP4118092B2 (ja) * 2002-06-19 2008-07-16 株式会社ルネサステクノロジ 記憶装置および情報処理装置
JP2004030102A (ja) * 2002-06-25 2004-01-29 Sony Corp 情報記憶装置、およびメモリアクセス制御システム、および方法、並びにコンピュータ・プログラム
JP4115759B2 (ja) * 2002-07-01 2008-07-09 株式会社東芝 耐タンパプロセッサにおける共有ライブラリの使用方法およびそのプログラム
JP4073913B2 (ja) * 2002-07-09 2008-04-09 富士通株式会社 開放型汎用耐攻撃cpu及びその応用システム
JP2004104539A (ja) * 2002-09-11 2004-04-02 Renesas Technology Corp メモリカード
ATE504446T1 (de) * 2002-12-02 2011-04-15 Silverbrook Res Pty Ltd Totdüsenausgleich
JP4322021B2 (ja) * 2003-02-06 2009-08-26 株式会社ルネサステクノロジ メモリカード
JP2005056305A (ja) * 2003-08-07 2005-03-03 Matsushita Electric Ind Co Ltd メモリ領域に分割領域を持つ情報記憶装置
US7139894B1 (en) * 2003-09-12 2006-11-21 Microsoft Corporation System and methods for sharing configuration information with multiple processes via shared memory
JPWO2005048111A1 (ja) * 2003-11-13 2007-11-29 松下電器産業株式会社 半導体メモリカード
JP4282472B2 (ja) * 2003-12-26 2009-06-24 株式会社東芝 マイクロプロセッサ
US7607177B2 (en) * 2004-02-23 2009-10-20 Micron Technology, Inc. Secure compact flash
US7162602B2 (en) * 2004-03-16 2007-01-09 Hitachi, Ltd. More granular and more efficient write protection for disk volumes
JP2007219802A (ja) * 2006-02-16 2007-08-30 Hitachi Global Storage Technologies Netherlands Bv 記憶装置、そのコントローラ、および、その制御方法
JP2008123482A (ja) * 2006-10-18 2008-05-29 Matsushita Electric Ind Co Ltd 記憶媒体制御方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01147686A (ja) * 1987-12-02 1989-06-09 Toshiba Corp 携帯可能電子装置
JPH0778126A (ja) * 1993-09-08 1995-03-20 Kyodo Printing Co Ltd Icカード用のマイクロコンピュータ
JPH11306088A (ja) * 1998-04-27 1999-11-05 Toppan Printing Co Ltd Icカードおよびicカードシステム
JP2001118034A (ja) * 1999-10-15 2001-04-27 Toshiba Corp Icカード利用装置、icカード及び記憶媒体

Also Published As

Publication number Publication date
TW200821953A (en) 2008-05-16
US20050246546A1 (en) 2005-11-03
EP1560120A4 (en) 2008-10-29
IL167269A (en) 2010-02-17
EP1560120B1 (en) 2019-09-04
KR20070009740A (ko) 2007-01-18
KR20060024317A (ko) 2006-03-16
TW200513866A (en) 2005-04-16
EP1560120A1 (en) 2005-08-03
TWI354898B (ja) 2011-12-21
JP2005050320A (ja) 2005-02-24
KR100723762B1 (ko) 2007-05-30
KR100976020B1 (ko) 2010-08-17
TWI366104B (ja) 2012-06-11
JP4624732B2 (ja) 2011-02-02
US7559090B2 (en) 2009-07-07

Similar Documents

Publication Publication Date Title
WO2005008502A1 (ja) アクセス方法
US7415729B2 (en) Storage device
CN111884806B (zh) 用于认证用户或确保交互安全的系统和硬件认证令牌
US9003516B2 (en) System and method for encrypted smart card pin entry
CN101291224B (zh) 在通信系统中处理数据的方法和系统
CN112673600B (zh) 基于区块链的手机终端以及IoT设备之间的多重安全认证系统以及方法
KR20100035712A (ko) Rfid 시스템에서 보안을 제공하기 위한 방법 및 장치
JP2011504263A (ja) スマートストレージデバイス
JP2004104539A (ja) メモリカード
US20060214006A1 (en) Tamper resistant device and file generation method
JP4833745B2 (ja) センサノードのデータ保護方法、センサノードを配布するための計算機システム及びセンサノード
JP6017392B2 (ja) 情報処理装置、ホストデバイス、及びシステム
US20160277182A1 (en) Communication system and master apparatus
JP2003046499A (ja) 通信システムおよびユーザ端末およびicカードおよび認証システムおよび接続および通信の制御システムおよびプログラム
US20080205654A1 (en) Method and Security System for the Secure and Unequivocal Encoding of a Security Module
JP3963938B2 (ja) アクセス方法、メモリデバイス、および情報機器
JP2006340287A (ja) 通信システム、情報端末、制御装置、情報処理方法、並びにプログラムおよび記録媒体
KR100494178B1 (ko) 복수의 ic 카드로부터의 인증 요청에 대한 인증 방법 및그 장치
CN100583060C (zh) 存取方法、存取装置以及信息机器
KR20040036402A (ko) 스마트 카드를 이용한 온라인 시스템과 이의 접속 및 응용프로그램 로딩 방법
JP2008046676A (ja) Icカードおよび電子バリュー譲渡システム
JP2002288617A (ja) 認証システム、および認証方法
JP2006066960A (ja) 記憶装置、記憶方法およびプログラム
JP2003152697A (ja) 暗号処理制御システム

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

WWE Wipo information: entry into national phase

Ref document number: 167269

Country of ref document: IL

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 1020057004944

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: 2004801007X

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 2004747821

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 10527820

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 2004747821

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1020057004944

Country of ref document: KR