WO2013168255A1 - アプリケーションプログラム実行装置 - Google Patents

アプリケーションプログラム実行装置 Download PDF

Info

Publication number
WO2013168255A1
WO2013168255A1 PCT/JP2012/061979 JP2012061979W WO2013168255A1 WO 2013168255 A1 WO2013168255 A1 WO 2013168255A1 JP 2012061979 W JP2012061979 W JP 2012061979W WO 2013168255 A1 WO2013168255 A1 WO 2013168255A1
Authority
WO
WIPO (PCT)
Prior art keywords
unit
authentication
application program
authentication information
application
Prior art date
Application number
PCT/JP2012/061979
Other languages
English (en)
French (fr)
Inventor
泉 幸雄
鐘治 桜井
信博 小林
陽一 柴田
Original Assignee
三菱電機株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 三菱電機株式会社 filed Critical 三菱電機株式会社
Priority to PCT/JP2012/061979 priority Critical patent/WO2013168255A1/ja
Priority to DE112013002396.2T priority patent/DE112013002396T5/de
Priority to US14/385,952 priority patent/US20150047001A1/en
Priority to PCT/JP2013/056338 priority patent/WO2013168461A1/ja
Priority to CN201380024382.5A priority patent/CN104272313B/zh
Priority to JP2014514397A priority patent/JP5905087B2/ja
Publication of WO2013168255A1 publication Critical patent/WO2013168255A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • 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
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Definitions

  • the present invention relates to a technique for authenticating an application program (hereinafter also simply referred to as “application”).
  • devices such as mobile phones, mobile terminals, and televisions have realized systems that execute downloaded applications and provide various services to users.
  • a user can download these applications from an application distribution server via a network and install them in a device such as a mobile phone.
  • a user installs an application on a device such as a mobile phone by using an exchangeable storage medium such as a memory card (registered trademark) from another device or a PC (personal computer).
  • these applications may include unauthorized applications.
  • an unauthorized application may illegally access confidential information such as personal information inside the device, or a function that is not permitted to be used by the user may be abused.
  • security measures are required that permit only specific applications to access specific confidential information and functions of devices (hereinafter referred to as “resources”).
  • Patent Document 1 secret authentication information for authenticating a legitimate application and a secret authentication key for generating authentication information are incorporated in the application. Then, before this application accesses the resources inside the device in the installed device, the authentication module provided inside the device receives the authentication information from the application, and the legitimate application using the received authentication information. Authenticate that When the authentication is successful, the authentication module permits the application to access the resource.
  • authentication information used by the authentication module for authentication is incorporated in the application. For this reason, when a malicious user analyzes an application, authentication information inside the application is exposed, and unauthorized access to resources in the device may be performed.
  • the present invention has been made in view of the above, and a main object thereof is to realize a mechanism that can authenticate that the application program is valid without incorporating authentication information into an application program that can be downloaded by anyone.
  • An application program execution device includes: An application program is implemented, and includes an application program management unit that manages the use of resources by the application program, The application program management unit A first communication unit that receives a resource use request for requesting use of a predetermined resource in the application program execution device from the application program; An authentication information acquisition unit that acquires authentication information that proves that the application program management unit is valid by a predetermined authentication process regardless of the application program; The resource usage request received by the first communication unit and the authentication information acquired by the authentication information acquisition unit are transmitted to an authentication unit that determines whether the resource can be used by the application program.
  • a second communication unit is included.
  • the authentication information acquisition unit acquires the authentication information regardless of the application program and transmits the authentication information to the authentication unit, the authentication information acquisition unit is a legitimate application program without incorporating the authentication information into the application program. Can be authenticated.
  • FIG. 3 is a diagram illustrating a configuration example of an application program execution device according to the first embodiment.
  • FIG. 3 is a flowchart showing a processing flow according to the first embodiment.
  • FIG. 10 is a diagram illustrating a configuration example of an application program execution device according to the second embodiment.
  • FIG. 9 is a flowchart showing a processing flow according to the second embodiment.
  • FIG. 9 is a flowchart showing a processing flow according to the second embodiment.
  • FIG. 10 is a diagram illustrating a configuration example of an application program execution device according to a third embodiment.
  • FIG. 10 is a functional conceptual diagram of an application program execution device according to a third embodiment.
  • FIG. 9 is a flowchart showing a processing flow according to the third embodiment.
  • FIG. 9 is a flowchart showing a processing flow according to the third embodiment.
  • FIG. 10 is a diagram illustrating a configuration example of an application program execution device according to a fourth embodiment.
  • FIG. 4 is a diagram illustrating an example of a hardware configuration of an application program execution device according to the first to fourth embodiments.
  • FIG. 1 shows a configuration example of an application program execution device according to the present embodiment.
  • an application program execution device 1 is a device in which an application such as a mobile phone, a mobile terminal, and a television is installed.
  • Protected resource 2 is a resource to be protected and includes confidential information, a specific program, a specific file, a specific function, and the like.
  • the application registration unit 3 stores an application 5 installed from outside the application program execution device 1.
  • the application 5 includes an operation unit 4 that is a user interface and a first communication unit 8 for communicating with the application program management unit 6 and does not include authentication information.
  • the application 5 transmits an access request (resource use request) requesting use of the protection target resource 2 from the first communication unit 8.
  • the application program management unit 6 (hereinafter referred to as “application management unit 6”) transmits an access request to the authentication unit 7 when there is an access request from the application 5, and the transmission source of the access request is valid. Authentication information for verifying that it is the application management unit 6 is transmitted to the authentication unit 7.
  • the first communication unit 9 receives an access request from the first communication unit 8 in the application 5.
  • the authentication information storage unit 12 stores authentication information 13.
  • the authentication information 13 is information that can prove that the application management unit 6 that is the transmission source of the access request is valid by the authentication processing of the authentication unit 7.
  • the authentication information 13 is, for example, the same information as the authentication information 15 stored in the authentication information verification unit 14 described later. As described above, the authentication information storage unit 12 shares the authentication information with the authentication information verification unit 14.
  • the authentication information 13 is kept secret except for the authentication unit 7.
  • the authentication information acquisition unit 16 acquires the authentication information 13 from the authentication information storage unit 12 regardless of the application 5 when the first communication unit 9 receives the access request.
  • the second communication unit 10 transmits the access request received by the first communication unit 9 and the authentication information 13 acquired by the authentication information acquisition unit 16 to the second communication unit 11 of the authentication unit 7.
  • the authentication unit 7 authenticates the application management unit 6 and accesses the protected resource 2.
  • the second communication unit 11 receives the access request and the authentication information 13 from the second communication unit 10 of the application management unit 6.
  • the authentication information verification unit 14 stores authentication information 15 and verifies the authentication information 13 received by the second communication unit 11 using the authentication information 15.
  • the application program execution device 1 includes a ROM (Read Only Memory), a RAM (Random Access Memory), a CPU (Central Processing Unit), and the like, and the elements of the application management unit 6 and the authentication unit 7 can be realized by software. is there. Further, a part of the application management unit 6 and the authentication unit 7 may be realized by firmware, and a part of the application management unit 6 and the authentication unit 7 may be realized by hardware. The hardware configuration of the application program execution device 1 and the relationship between hardware, software, and firmware will be described later.
  • FIG. 2 is a processing flow of the application program execution device 1 according to the present embodiment.
  • the application management unit 6 is expressed as “management unit”.
  • the first communication unit 8 sends an access request for requesting the use of the protection target resource 2 to the application management unit 6.
  • the access to the protection target resource 2 is an access to a function of the application program execution apparatus 1 such as an external communication function in addition to an access such as information writing and reading.
  • the latter has various accesses such as writing and reading information through functions, sending information and instructions, and reading out the results of execution of instructions. Therefore, depending on the process, the access request to the protected resource 2 can be written.
  • Information and processing instructions may be included.
  • the first communication unit 9 receives an access request from the application 5 to the protection target resource 2 (S101). And the authentication information acquisition part 16 acquires the authentication information 13 from the authentication information storage part 12, and the 2nd communication part 10 transmits the authentication information 13 and the access request to the protection target resource 2 to the authentication part 7 ( S102). It is assumed that the validity of the application 5 is ensured by verification at the time of installation of the application 5.
  • the second communication unit 11 receives the access request to the protection target resource 2 and the authentication information 13 from the application management unit 6 (S103). Then, the authentication information verification unit 14 verifies the authentication information 13 using the authentication information 15 to authenticate whether the access request is transmitted from a valid transmission source (that is, the application management unit 6). (S104). The verification of the authentication information 13 may be performed by any method. If the authentication is successful as a result of the authentication in S104, the authentication information verification unit 14 accesses the requested resource (S105). On the other hand, if the authentication fails, the access request is discarded (S106). At this time, the authentication information verification unit 14 may respond to the application management unit 6 that the authentication has failed.
  • the authentication unit 7 transmits an access response to the application management unit 6 via the second communication unit 11 (S107).
  • the access request is information reading or the like
  • the read information may be included in this response.
  • the second communication unit 10 receives the access response from the authentication unit 7 (S108), and the first communication unit 9 transmits the access response to the application 5 (S109).
  • the first communication unit 8 receives an access response from the application management unit 6 (S110).
  • the authentication unit 7 may perform authentication using the authentication information 13 and the authentication information 15 when the application program execution apparatus 1 is turned on, and may not perform the authentication process for subsequent access requests. Further, the authentication process may not be performed if the access request is within a certain time from the power-on. Further, the authentication unit 7 is provided outside the application program execution device 1 like an IC card, and the resources inside the application program execution device 1 are passed from the application management unit 6 inside the application program execution device 1 via the external authentication unit 7. Or you may make it the structure which accesses an external resource.
  • the application accesses the resource via the application management unit and the authentication unit, it is not necessary to embed authentication information that should be kept secret inside the application, and a secure system is provided to the user. Can be provided.
  • application developers do not have to manage authentication information confidentially, and multiple applications can be authenticated by a single application management unit, reducing application development costs and providing services to users at low cost. it can.
  • Embodiment 2 FIG. In the first embodiment described above, the application 5 is configured to access the authentication unit 7 via the application management unit 6, but the downloaded application 5 is then transferred to the authentication unit 7 via an application installed in advance. The embodiment to access is shown.
  • FIG. 3 shows a configuration example of the application program execution device 1 according to the present embodiment.
  • the application program execution device 1 in this embodiment is roughly classified into a protection target resource 2, an application registration unit 3, an authentication unit 7, and a shared memory 20.
  • the application registration unit 3 includes an application program management unit 21 (hereinafter referred to as “application management unit 21”).
  • the application management unit 21 is an application that is installed in the application program execution device 1 in advance by the manufacturer of the application program execution device 1.
  • the application management unit 21 does not have a user interface, and is configured such that data cannot be copied or moved to an external storage device such as an SD (registered trademark) card connected to the application program execution device 1.
  • SD registered trademark
  • the application 5 is an application downloaded later, as in the first embodiment. Since the internal configuration of the application 5 is the same as that of the first embodiment, description thereof is omitted.
  • the authentication key storage unit 22 stores an authentication key 23.
  • the authentication key 23 is a key of a common key algorithm corresponding to an authentication method such as a challenge / response method or a keyed message authentication code, or a public key / private key of a public key algorithm.
  • the authentication key 23 stored in the authentication key storage unit 22 is the same as the authentication key 27 stored in the authentication information verification unit 14 of the authentication unit 7.
  • the authentication key 23 stored in the authentication key storage unit 22 is a key corresponding to the authentication key 27 stored in the authentication information verification unit 14 of the authentication unit 7. As described above, the authentication key storage unit 22 shares the authentication key with the authentication information verification unit 14 of the authentication unit 7.
  • the authentication information generation unit 24 generates authentication information using the authentication key 23 of the authentication key storage unit 22.
  • the authentication information is used for verification that the application management unit 21 is valid, as in the first embodiment.
  • the authentication information generation unit 24 corresponds to an example of an authentication information acquisition unit.
  • the encryption unit 26 has an encryption key 25 and encrypts authentication information using the encryption key 25.
  • the first communication unit 9 receives an access request from the first communication unit 8 in the application 5 as in the first embodiment.
  • the communication between the first communication unit 8 and the first communication unit 9 may be inter-process communication.
  • the second communication unit 10 writes the authentication information encrypted by the encryption unit 26 in the shared memory 20.
  • the authentication unit 7 uses the authentication key 27 to authenticate the received authentication information, the encryption unit 29 performs encryption / decryption using the encryption key 28, and accesses the shared memory 20. It is comprised from the 2nd communication part 11 to perform.
  • the shared memory 20 is a storage device such as a RAM, and the application management unit 21 and the authentication unit 7 can write and read information.
  • the shared memory 20 is provided with a transfer flag 30 indicating which of the application management unit 21 and the authentication unit 7 is writing information. It is assumed that the transfer flag 30 in the present embodiment can be written to the shared memory 20 by the application management unit 21 when cleared and the authentication unit 7 when set.
  • 4 and 5 are process flows of the application program execution device 1 according to the present embodiment. 4 and 5, the application management unit 21 is described as “management unit”.
  • the first communication unit 8 transmits an access request for requesting the use of the protection target resource 2 to the application management unit 21.
  • the electronic certificate used when the application 5 is installed is the same as the electronic certificate used when the application management unit 21 is installed. Only allowed if.
  • the first communication unit 9 receives an access request from the application 5 to the protection target resource 2 (S201).
  • the authentication information generation unit 24 generates authentication information using the authentication key 23, and the encryption unit 26 encrypts the access request and authentication information using the encryption key 25 (S202).
  • the authentication information generation algorithm may be any as long as the authentication information verification unit 14 can verify the authentication information.
  • a part of the authentication information and the access request may be encrypted instead of all of the authentication information and the access request. Further, information for detecting falsification such as a message authentication code and an electronic signature may be added to the authentication information and the access request.
  • the second communication unit 10 writes the encrypted access request and authentication information in the shared memory 20 (S203). Then, the second communication unit 10 sets the transfer flag 30 provided in the shared memory 20 (S204).
  • the second communication unit 11 polls the transfer flag 30 (S205), and when the transfer flag 30 is set, information in the shared memory 20 is read (S206). Then, the encryption unit 29 decrypts the encrypted authentication information and access request with the encryption key 28 (S207). Further, the authentication information verification unit 14 verifies the authentication information using the authentication key 27, thereby authenticating whether or not the access request is transmitted from a valid transmission source (that is, the application management unit 21). (S208). The authentication information may be verified by any method. If the authentication is successful as a result of the authentication in S208, the authentication information verification unit 14 accesses the requested resource (S209). On the other hand, if the authentication fails, the access request is discarded (S210). At this time, the authentication information verification unit 14 may respond to the application management unit 21 via the shared memory 20 that the authentication has failed.
  • the encryption unit 29 encrypts the access response using the encryption key 28 (S211). Then, the second communication unit 11 writes the encrypted access response to the shared memory 20 (S212), and clears the transfer flag 30 (S213).
  • the second communication unit 10 polls the transfer flag 30 (S214). When the transfer flag 30 is cleared, the information in the shared memory 20 is read (S215). Thereafter, the encryption unit 26 decrypts the encrypted access response using the encryption key 25 (S216), and the first communication unit 9 transmits the access response to the application 5 (S217).
  • the first communication unit 8 receives an access response from the application management unit 21 (S218).
  • the application management unit 21 is provided inside the application registration unit 3, but may be provided separately from the application registration unit 3.
  • the application management unit 21 may not be an application but a service that does not have a user interface that operates in the background.
  • an encryption key different from the authentication key is provided, but the same key may be used for the authentication key and the encryption key.
  • the authentication information generation unit 24 generates authentication information and encrypts / decrypts it.
  • the authentication part 7 showed the form which authenticates the application management part 21, you may make it the application management part 21 add the process which authenticates the authentication part 7, and may mutually authenticate. By such mutual authentication, a more secure system can be provided to the user.
  • the authentication unit 7 is provided outside the application program execution device 1 like an IC card, and the resources inside the application program execution device 1 are passed from the application management unit 21 inside the application program execution device 1 via the external authentication unit 7. Or you may make it the structure which accesses an external resource.
  • the application 5 accesses the resource via the application management unit 21 and the authentication unit 7, it is not necessary to incorporate authentication information that should be kept secret in the application 5. Can be provided to users. In addition, it is not necessary for the application developer to perform confidential management of authentication information, and authentication for a plurality of applications can be performed by a single application management unit 21, thereby reducing application development costs and providing services to users at low cost. Can be provided. Moreover, since the encryption part is provided in the application management part 21 and the authentication part 7, the risk of information leakage from the shared memory 20 is reduced, and a safer system can be provided to the user. Further, since the authentication information is generated by the authentication information generation unit 24 every time, it is possible to counter an attack that reuses the authentication information and provide a more secure system to the user.
  • Embodiment 3 FIG.
  • the authentication process in the real environment or the virtual execution environment in which the application operates on the OS has been described.
  • an embodiment using a device in which a virtual execution environment and a real environment coexist will be described.
  • FIG. 6 is a configuration diagram of the application program execution device 1 according to the present embodiment
  • FIG. 7 is a functional conceptual diagram of the application program execution device 1 according to the present embodiment.
  • the application program execution apparatus 1 operates a native application 50 and a virtual execution environment 52 (virtual machine monitor) on the OS 51, and the application management unit 21 operates on the virtual execution environment 52.
  • Application 5 operates.
  • the native application 50 includes an authentication unit 7.
  • the protection target resource 2 is included in the native application 50 and the OS 51.
  • FIG. 7 illustration of internal configurations of the authentication unit 7, the application management unit 21, and the application 5 is omitted, but the internal configuration of each element is as illustrated in FIG. 6.
  • the application registration unit 3 has an application management unit 21 inside, as in the second embodiment.
  • the application management unit 21 is installed in advance in the application program execution device 1 by the manufacturer of the application program execution device 1 and operates in the virtual execution environment 52.
  • the internal configuration of the application management unit 21 is the same as that shown in the second embodiment.
  • the second communication unit 10 writes the encrypted authentication information and the access request in the shared memory 20, but in the present embodiment, the second communication unit of the authentication unit 7 11 transmits the encrypted authentication information and the access request.
  • the second communication unit 11 may perform communication using the shared memory 20 described in the second embodiment.
  • the application management unit 21 does not have a user interface, and data can be copied or moved to an external storage device such as an SD (registered trademark) card connected to the application program execution device 1. The configuration is not possible.
  • the configurations of the application 5 and the authentication unit 7 are the same as those in the second embodiment.
  • 8 and 9 are process flows of the application program execution device 1 according to the present embodiment.
  • the application management unit 21 is described as “management unit”.
  • the first communication unit 8 transmits an access request for requesting the use of the protection target resource 2 to the application management unit 21. (S300).
  • the electronic certificate used when the application 5 is installed is the same as the electronic certificate used when the application management unit 21 is installed. Only allowed if.
  • the first communication unit 9 receives an access request from the application 5 to the protection target resource 2 (S301).
  • the authentication information generation unit 24 generates authentication information using the authentication key 23, and the encryption unit 26 encrypts the access request and authentication information using the encryption key 25 (S302).
  • the authentication information generation algorithm may be any as long as the authentication information verification unit 14 can verify the authentication information.
  • a part of the authentication information and the access request may be encrypted instead of all of the authentication information and the access request. Further, information for detecting falsification such as a message authentication code and an electronic signature may be added to the authentication information and the access request.
  • the second communication unit 10 transmits the encrypted access request and authentication information to the authentication unit 7 (S303).
  • the second communication unit 11 receives the encrypted access request and authentication information from the application management unit 21 (S304). Then, the encryption unit 29 decrypts the encrypted authentication information and access request with the encryption key 28 (S305). Further, the authentication information verification unit 14 verifies the authentication information using the authentication key 27, thereby authenticating whether or not the access request is transmitted from a valid transmission source (that is, the application management unit 21). (S306). If the authentication is successful as a result of the authentication in S306, the authentication information verification unit 14 accesses the requested resource (S307). On the other hand, if the authentication fails, the access request is discarded (S308). At this time, the second communication unit 11 may respond to the application management unit 21 that the authentication has failed.
  • the encryption unit 29 encrypts the access response using the encryption key 28 (S308). Then, the second communication unit 11 transmits the encrypted access response to the application management unit 21 (S309).
  • the access request is information reading or the like, the read information may be included in this response.
  • the second communication unit 10 receives the encrypted access response from the authentication unit 7 (S310), and the encryption unit 26 encrypts the access response using the encryption key 25. Is decrypted (S311), and the first communication unit 9 transmits an access response to the application 5 (S312).
  • the first communication unit 8 receives an access response from the application management unit 21 (S313).
  • the application management unit 21 may not be an application but a service that does not have a user interface that operates in the background.
  • an encryption key different from the authentication key is provided, but the same key may be used for the authentication key and the encryption key.
  • the authentication information generation unit 24 generates authentication information and encrypts / decrypts it.
  • the encryption unit 29 may be provided in the virtual execution environment 52 instead of in the application management unit 21, and the encryption unit in the virtual execution environment 52 may be used.
  • the encryption unit 29 may be provided in the OS 51 instead of in the authentication unit 7 and the encryption unit in the OS 51 may be used.
  • the authentication information generation unit 24 of the application management unit 21 may generate authentication information using an encryption unit in the virtual execution environment 52.
  • the authentication information verification unit 14 of the authentication unit 7 may verify the authentication information using the encryption unit of the OS 51.
  • the authentication unit 7 authenticates the application management unit 21 in the present embodiment
  • a process for the application management unit 21 to authenticate the authentication unit 7 may be added to perform mutual authentication. By such mutual authentication, a more secure system can be provided to the user.
  • the authentication unit 7 is provided outside the application program execution device 1 like an IC card, and the resources inside the application program execution device 1 are passed from the application management unit 21 inside the application program execution device 1 via the external authentication unit 7. Or you may make it the structure which accesses an external resource.
  • the application 5 accesses the resource via the application management unit 21 and the authentication unit 7, it is not necessary to incorporate authentication information that should be kept secret in the application 5. Can be provided to users. In addition, it is not necessary for the application developer to perform confidential management of authentication information, and authentication for a plurality of applications can be performed by a single application management unit 21, thereby reducing application development costs and providing services to users at low cost. Can be provided. Moreover, since the encryption part is provided in the application management part 21 and the authentication part 7, the risk of information leakage from the shared memory 20 is reduced, and a safer system can be provided to the user.
  • the authentication information is generated by the authentication information generation unit 24 every time, it is possible to counter an attack that reuses the authentication information and provide a more secure system to the user. Further, according to the present embodiment, it is possible to protect resources different from the resources to be protected in the virtual execution environment, and to provide a wide range of services to users safely.
  • Embodiment 4 FIG. In the above embodiment, the example in which the authentication unit 7 is inside the application program execution device 1 has been shown. In the present embodiment, an example in which the authentication unit 7 is provided outside the application program execution device 1 is shown.
  • FIG. 10 is a configuration diagram of the application program execution device 1 according to the present embodiment.
  • the function of the authentication unit 7 shown in the first to third embodiments is provided outside the application program execution device 1 as the authentication device 61.
  • the authentication device 61 corresponds to an example of an external device.
  • the authentication device 61 can be realized by an IC card, for example.
  • a range surrounded by a broken line in FIG. 10 corresponds to the authentication unit 7 shown in the first to third embodiments.
  • the authentication device 61 is provided with a third communication unit 62 for communicating with the third communication unit 60 of the application program execution device 1. Since the other elements in the authentication device 61 are the same as those already described, description thereof is omitted.
  • the application program execution device 1 includes a protection target resource 2, an application registration unit 3 including an application 5 and an application management unit 21, and a third communication unit 60 for accessing the protection target resource 2. Since the application 5 and the application management unit 21 are the same as those shown in the third embodiment, the description thereof is omitted.
  • the authentication unit 61 performs the operation of the authentication unit 7, and the access to the protected resource 2 of the authentication unit 7 (S307) is the third.
  • the difference is that the processing is performed via the communication unit 62 and the third communication unit 60, and the other processing flows are the same.
  • the application management unit 21 may not be an application but a service that does not have a user interface that operates in the background.
  • an encryption key different from the authentication key is provided, but the same key may be used as the authentication key and the encryption key.
  • the authentication information generation unit 24 generates authentication information and encrypts / decrypts it.
  • the authentication device 61 authenticates the application management unit 21.
  • the application management unit 21 may add a process for authenticating the authentication device 61 to perform mutual authentication. By such mutual authentication, a more secure system can be provided to the user. Further, in the present embodiment, access to resources inside the application program execution device 1 has been shown, but the same effect can be obtained with a configuration in which resources outside the application program execution device 1 are accessed.
  • the application program execution device 1 is a computer, and each element of the application program execution device 1 can be realized by a program.
  • an arithmetic device 901, an external storage device 902, a main storage device 903, a communication device 904, and an input / output device 905 are connected to the bus.
  • the arithmetic device 901 is a CPU that executes a program.
  • the external storage device 902 is, for example, a ROM, a flash memory, or a hard disk device.
  • the main storage device 903 is a RAM.
  • the communication device 904 is used when communicating with the authentication device 61 of the fourth embodiment, for example.
  • the communication device 904 may be connected to a network such as a LAN (Local Area Network).
  • the input / output device 905 is, for example, a mouse, a keyboard, a display device, or the like.
  • the program is normally stored in the external storage device 902, and is loaded into the main storage device 903 and sequentially read into the arithmetic device 901 and executed.
  • the program is a program that realizes a function described as “ ⁇ unit” (except for “authentication key storage unit 22”) of the application management units 6 and 21 shown in FIG.
  • an operating system (OS) is also stored in the external storage device 902. At least a part of the OS is loaded into the main storage device 903, and the arithmetic device 901 executes the OS while displaying “ ⁇ ” shown in FIG.
  • the program that realizes the function of “part” is executed.
  • the application 5 and the authentication unit 7 are also stored in the external storage device 902 and are sequentially executed by the arithmetic device 901 while being loaded in the main storage device 903.
  • An authentication key and an encryption key are also stored in the external storage device 902 and are sequentially used by the arithmetic device 901 while being loaded in the main storage device 903.
  • Information, data, signal values, and variable values indicating the results of processing are stored in the main storage device 903 as files. Further, random values, parameters, and electronic certificates may be stored in the main storage device 903 as files. Further, at least a part of “ ⁇ units” of the application management units 6 and 21 shown in FIG. 1 and the like may be realized by firmware.
  • the configuration in FIG. 11 is merely an example of the hardware configuration of the application program execution device 1, and the hardware configuration of the application program execution device 1 is not limited to the configuration described in FIG. There may be.
  • 1 application program execution device 2 protected resources, 3 application registration unit, 4 operation unit, 5 application, 6 application management unit, 7 authentication unit, 8 first communication unit, 9 first communication unit, 10 second Communication unit, 11 Second communication unit, 12 Authentication information storage unit, 13 Authentication information, 14 Authentication information verification unit, 15 Authentication information, 16 Authentication information acquisition unit, 20 Shared memory, 21 Application management unit, 22 Authentication key storage unit , 23 Authentication key, 24 Authentication information generation part, 25 Encryption key, 26 Encryption part, 27 Authentication key, 28 Encryption key, 29 Encryption part, 30 Transfer flag, 50 Native application, 51 OS, 52 Virtual execution environment, 60 Third Communication unit, 61 authentication device, 62 third communication unit.

Abstract

 アプリケーションプログラム管理部6の第一の通信部9が、アプリケーション5から、保護対象リソース2の利用を要求するアクセス要求を受信すると、認証情報取得部16が、アプリケーションプログラム管理部6が正当であることの検証に用いられる認証情報13を認証情報記憶部12から取得する。そして、第二の通信部10が、アプリケーション5からのアクセス要求と認証情報13とを、アプリケーション5による保護対象リソース2の利用可否を判断する認証部7に送信する。

Description

アプリケーションプログラム実行装置
 本発明は、アプリケーションプログラム(以下、単に「アプリケーション」ともいう)を認証する技術に関する。
 近年、携帯電話や携帯端末、テレビなどの機器では、ダウンロードしたアプリケーションを実行させ、利用者に各種のサービスを提供するシステムが実現されている。
 利用者は、これらのアプリケーションを、ネットワークを介してアプリケーション配信サーバからダウンロードし、携帯電話などの機器にインストールすることができる。
 また、利用者は、他の機器やPC(パーソナルコンピュータ)などからメモリカード(登録商標)などの交換型記憶媒体を用いて携帯電話などの機器にアプリケーションをインストールする。
 しかし、これらのアプリケーションには、不正なアプリケーションが含まれている可能性がある。
 このため、不正なアプリケーションが、機器内部の個人情報など機密情報に対する不正なアクセスをするおそれや利用者には利用が許可されていない機能を悪用するおそれがある。
 そのため、特定の機密情報や機器が持つ機能(以下、これらを「リソース」という)へのアクセスを特定のアプリケーションのみに許可するセキュリティ対策が必要となる。
 このようなセキュリティ対策として、例えば、特許文献1に記載の技術がある。
 特許文献1では、正当なアプリケーションであることを認証するための秘密の認証情報や認証情報を生成する秘密の認証鍵がアプリケーションに組み込まれている。
 そして、このアプリケーションが、インストールされた機器において、機器内部のリソースにアクセスする前に、機器内部に設けられた認証モジュールが、アプリケーションから認証情報を受信し、受信した認証情報を用いて正当なアプリケーションであることを認証する。
 そして、認証成功の場合に、認証モジュールがアプリケーションにリソースへのアクセスを許可する。
特開2005-49991号公報
 特許文献1の技術では、認証モジュールが認証に用いる認証情報がアプリケーション内部に組み込まれている。
 このため、悪意のある利用者がアプリケーションを解析することで、アプリケーション内部の認証情報が暴露されてしまい、機器内のリソースへの不正なアクセスが行われる可能性がある。
 この発明は、これらに鑑みたものであり、誰でもダウンロードできるアプリケーションプログラムに認証情報を組み込むことなく、正当なアプリケーションプログラムであることを認証できる仕組みを実現することを主な目的とする。
 本発明に係るアプリケーションプログラム実行装置は、
 アプリケーションプログラムが実装されており、前記アプリケーションプログラムによるリソースの利用を管理するアプリケーションプログラム管理部を有するアプリケーションプログラム実行装置であって、
 前記アプリケーションプログラム管理部が、
 前記アプリケーションプログラムから、前記アプリケーションプログラム実行装置内の所定のリソースの利用を要求するリソース利用要求を受信する第一の通信部と、
 所定の認証処理により、前記アプリケーションプログラム管理部が正当であることが立証される認証情報を、前記アプリケーションプログラムとは無関係に取得する認証情報取得部と、
 前記第一の通信部により受信された前記リソース利用要求と、前記認証情報取得部により取得された前記認証情報とを、前記アプリケーションプログラムによる前記リソースの利用可否を判断する認証部に対して送信する第二の通信部と有すること特徴とする。
 本発明によれば、認証情報取得部がアプリケーションプログラムとは無関係に認証情報を取得し、認証部に認証情報を送信するため、アプリケーションプログラムに認証情報を組み込むことなく、正当なアプリケーションプログラムであることを認証することができる。
実施の形態1に係るアプリケーションプログラム実行装置の構成例を示す図。 実施の形態1に係る処理フローを示すフローチャート図。 実施の形態2に係るアプリケーションプログラム実行装置の構成例を示す図。 実施の形態2に係る処理フローを示すフローチャート図。 実施の形態2に係る処理フローを示すフローチャート図。 実施の形態3に係るアプリケーションプログラム実行装置の構成例を示す図。 実施の形態3に係るアプリケーションプログラム実行装置の機能概念図。 実施の形態3に係る処理フローを示すフローチャート図。 実施の形態3に係る処理フローを示すフローチャート図。 実施の形態4に係るアプリケーションプログラム実行装置の構成例を示す図。 実施の形態1~4に係るアプリケーションプログラム実行装置のハードウェア構成例を示す図。
 実施の形態1.
 図1は、本実施の形態に係るアプリケーションプログラム実行装置の構成例を示す。
 図1において、アプリケーションプログラム実行装置1は、例えば、携帯電話、携帯端末、テレビ等のアプリケーションがインストールされる機器である。
 保護対象リソース2は、保護対象のリソースであり、秘密情報、特定のプログラム、特定のファイル、特定の機能等である。
 アプリケーション登録部3は、アプリケーションプログラム実行装置1外からインストールされるアプリケーション5を保管する。
 アプリケーション5には、利用者インタフェースである操作部4と、アプリケーションプログラム管理部6と通信するための第一の通信部8が含まれており、認証情報は含まれていない。
 アプリケーション5は、保護対象リソース2の利用を要求するアクセス要求(リソース利用要求)を第一の通信部8から送信する。
 アプリケーションプログラム管理部6(以下、「アプリケーション管理部6」と表記する)は、アプリケーション5からアクセス要求があった際に、アクセス要求を認証部7に送信するとともに、アクセス要求の送信元が正当なアプリケーション管理部6であることを立証するための認証情報を認証部7に送信する。
 アプリケーション管理部6において、第一の通信部9は、アプリケーション5内の第一の通信部8からアクセス要求を受信する。
 認証情報記憶部12は、認証情報13を記憶している。
 認証情報13は、認証部7の認証処理により、アクセス要求の送信元であるアプリケーション管理部6が正当であることを立証できる情報である。
 認証情報13は、例えば、後述する認証情報検証部14が記憶している認証情報15と同じ情報である。
 このように、認証情報記憶部12は、認証情報検証部14と認証情報を共有している。
 また、認証情報13は、認証部7以外には秘匿されている。
 認証情報取得部16は、第一の通信部9がアクセス要求を受信した際に、アプリケーション5とは無関係に、認証情報記憶部12から認証情報13を取得する。
 第二の通信部10は、第一の通信部9が受信したアクセス要求と、認証情報取得部16が取得した認証情報13を、認証部7の第二の通信部11に送信する。
 認証部7は、アプリケーション管理部6の認証を実施し、保護対象リソース2へのアクセスを実施する。
 認証部7において、第二の通信部11は、アプリケーション管理部6の第二の通信部10からアクセス要求と認証情報13を受信する。
 認証情報検証部14は、認証情報15を記憶しており、認証情報15を用いて、第二の通信部11が受信した認証情報13を検証する。
 アプリケーションプログラム実行装置1には、ROM(Read Only Memory)、RAM(Random Access Memory)、CPU(Central Processing Unit)等が備わっており、アプリケーション管理部6及び認証部7の要素をソフトウェアにより実現可能である。
 また、アプリケーション管理部6及び認証部7の一部をファームウェアにより実現してもよいし、アプリケーション管理部6及び認証部7の一部をハードウェアにより実現してもよい。
 なお、アプリケーションプログラム実行装置1のハードウェア構成、ハードウェアとソフトウェアとファームウェアの関係については後述する。
 次に動作について説明する。
 図2は、本実施の形態に係るアプリケーションプログラム実行装置1の処理フローである。
 なお、図2では、アプリケーション管理部6を「管理部」と表記している。
 アプリケーション登録部3にあるアプリケーション5が動作して、保護対象リソース2へのアクセスを行う際に、第一の通信部8が保護対象リソース2の利用を要求するアクセス要求をアプリケーション管理部6に送信する(S100)。
 保護対象リソース2へのアクセスは、情報の書き込みや読み出しなどのアクセスの他、外部との通信機能などアプリケーションプログラム実行装置1が持つ機能へのアクセスである。
 後者は機能を介した情報の書き込みや読み出し、情報や命令の送信、命令が実行された結果の読み出しなど様々なアクセスがあるので、処理に応じて保護対象リソース2へのアクセス要求に書き込み対象の情報や処理命令などを含めてもよい。
 アプリケーション管理部6では、第一の通信部9が、アプリケーション5からの保護対象リソース2へのアクセス要求を受信(S101)する。
 そして、認証情報取得部16が、認証情報記憶部12から認証情報13を取得し、第二の通信部10が認証情報13と保護対象リソース2へのアクセス要求とを認証部7へ送信する(S102)。
 なお、アプリケーション5の正当性は、アプリケーション5のインストール時の検証等により担保されているものとする。
 認証部7では、第二の通信部11が、アプリケーション管理部6から保護対象リソース2へのアクセス要求と認証情報13を受信(S103)する。
 そして、認証情報検証部14が、認証情報15を用いて認証情報13を検証することで、アクセス要求が正当な送信元(つまり、アプリケーション管理部6)から送信されたものであるかどうかを認証する(S104)。
 認証情報13の検証は、どのような方法によってもよい。
 S104の認証の結果、認証に成功した場合、認証情報検証部14は、要求されたリソースへアクセスする(S105)。
 一方、認証に失敗した場合、アクセス要求を破棄する(S106)。
 この際、認証情報検証部14は、認証に失敗した旨をアプリケーション管理部6に応答してもよい。
 その後、認証部7は、第二の通信部11を介してアプリケーション管理部6にアクセス応答を送信する(S107)。
 アクセス要求が情報の読み出しなどの場合、本応答に読み出した情報を含めてもよい。
 アプリケーション管理部6では、第二の通信部10が認証部7からのアクセス応答を受信(S108)し、第一の通信部9がアプリケーション5にアクセス応答を送信(S109)する。
 アプリケーション5では、第一の通信部8が、アプリケーション管理部6からアクセス応答を受信する(S110)。
 なお、上記では、アプリケーション5からのリソースへのアクセス要求をアプリケーション管理部6が受信した後に、認証部7が認証情報13と認証情報15とを用いた認証を行うフローを説明した。
 これに代えて、アプリケーションプログラム実行装置1の電源投入時に認証部7が認証情報13と認証情報15とを用いた認証を行い、以降のアクセス要求時には認証処理を行わないようにしてもよい。
 また、電源投入時から一定時間以内のアクセス要求であれば認証処理を行わないようにしてもよい。
 また、認証部7をICカードのようにアプリケーションプログラム実行装置1の外部に設け、アプリケーションプログラム実行装置1内部のアプリケーション管理部6から外部の認証部7を経由してアプリケーションプログラム実行装置1内部のリソースもしくは外部のリソースにアクセスする構成にしてもよい。
 以上のように、アプリケーションは、アプリケーション管理部と認証部を介してリソースにアクセスするようにしているので、アプリケーション内部には秘密にすべき認証情報を組み込む必要がなく、安全なシステムを利用者に提供できる。
 また、アプリケーション開発者が認証情報の機密管理を行う必要がなくなり、複数のアプリケーションに対する認証が1つのアプリケーション管理部で可能となるため、アプリケーション開発コストを低減させ、利用者に低コストでサービスを提供できる。
 実施の形態2.
 以上の実施の形態1では、アプリケーション5はアプリケーション管理部6を介して認証部7にアクセスする構成であるが、次にダウンロードされたアプリケーション5が事前にインストールされたアプリケーションを介して認証部7にアクセスする実施の形態を示す。
 図3は、本実施の形態に係るアプリケーションプログラム実行装置1の構成例を示す。
 本実施の形態でのアプリケーションプログラム実行装置1は、保護対象リソース2、アプリケーション登録部3、認証部7、共有メモリ20に大別される。
 本実施の形態では、アプリケーション登録部3は、内部にアプリケーションプログラム管理部21(以下、「アプリケーション管理部21」と表記する)を有している。
 アプリケーション管理部21は、アプリケーションプログラム実行装置1の製造者により事前にアプリケーションプログラム実行装置1にインストールされているアプリケーションである。
 なお、アプリケーション管理部21は利用者インタフェースを持たず、アプリケーションプログラム実行装置1に接続されるSD(登録商標)カードのような外部記憶装置にデータのコピーや移動ができない構成になっている。
 アプリケーション5は、実施の形態1と同様に、後からダウンロードされたアプリケーションである。
 アプリケーション5の内部構成は、実施の形態1と同様であるため、説明を省略する。
 アプリケーション管理部21において、認証鍵記憶部22は認証鍵23を記憶している。
 認証鍵23は、チャンレンジ・レスポンス方式や鍵付メッセージ認証コードなど認証方式に対応した共通鍵アルゴリズムの鍵や公開鍵アルゴリズムの公開鍵・秘密鍵である。
 共通鍵アルゴリズムが用いられている場合は、認証鍵記憶部22が記憶している認証鍵23は、認証部7の認証情報検証部14が記憶している認証鍵27と同じである。
 公開鍵アルゴリズムが用いられている場合は、認証鍵記憶部22が記憶している認証鍵23は、認証部7の認証情報検証部14が記憶している認証鍵27に対応する鍵である。
 このように、認証鍵記憶部22は、認証部7の認証情報検証部14と認証鍵を共有している。
 認証情報生成部24は、認証鍵記憶部22の認証鍵23を用いて、認証情報を生成する。
 認証情報は、実施の形態1と同様に、アプリケーション管理部21が正当であることの検証に用いられる。
 本実施の形態では、認証情報生成部24が認証情報取得部の例に相当する。
 暗号部26は、暗号鍵25を保有しており、暗号鍵25を用いて認証情報の暗号化を行う。
 第一の通信部9は、実施の形態1と同様に、アプリケーション5内の第一の通信部8からアクセス要求を受信する。
 第一の通信部8と第一の通信部9との間の通信は、プロセス間通信などでよい。
 第二の通信部10は、暗号部26により暗号化された認証情報を共有メモリ20に書き込む。
 認証部7は、認証鍵27を用いて、受信した認証情報を検証する認証情報検証部14と、暗号鍵28を用いて暗号化・復号を行う暗号部29と、共有メモリ20へのアクセスを行う第二の通信部11から構成されている。
 共有メモリ20はRAMなどの記憶装置であり、アプリケーション管理部21と認証部7とが、情報の書き込みや読み出しを行うことができる。
 また、共有メモリ20には、アプリケーション管理部21と認証部7のどちらが情報の書き込みを行っているかを示す転送フラグ30が設けられている。
 本実施の形態での転送フラグ30は、クリアではアプリケーション管理部21が、セットでは認証部7が共有メモリ20に書き込めるものとする。
 次に動作について説明する。
 図4及び図5は、本実施の形態に係るアプリケーションプログラム実行装置1の処理フローである。
 なお、図4及び図5では、アプリケーション管理部21を「管理部」と表記している。
 アプリケーション登録部3にあるアプリケーション5が動作して、保護対象リソース2へのアクセスを行う際に、第一の通信部8が保護対象リソース2の利用を要求するアクセス要求をアプリケーション管理部21に送信する(S200)。
 なお、アプリケーション5からアプリケーション管理部21への通信は、例えば、アプリケーション5がインストールされた際に使用された電子証明書とアプリケーション管理部21がインストールされた際に使用された電子証明書とが同じ場合にのみ許可される。
 アプリケーション管理部21では、第一の通信部9が、アプリケーション5からの保護対象リソース2へのアクセス要求を受信(S201)する。
 次に、認証情報生成部24が認証鍵23を用いて認証情報を生成し、暗号部26が暗号鍵25を用いてアクセス要求と認証情報を暗号化する(S202)。
 認証情報の生成アルゴリズムは、認証情報検証部14が認証情報を検証できるものであれば、どのようなものでもよい。
 暗号化は、本実施の形態のように認証情報とアクセス要求のすべてではなく、一部の情報を暗号化するようにしてもよい。
 また、認証情報及びアクセス要求に、メッセージ認証コードや電子署名など改ざんを検知するための情報を付加してもよい。
 そして、第二の通信部10が、暗号化されたアクセス要求と認証情報を共有メモリ20に書き込む(S203)。
 そして、第二の通信部10は、共有メモリ20に設けられた転送フラグ30をセットにする(S204)。
 認証部7では、第二の通信部11が、転送フラグ30をポーリングし(S205)、転送フラグ30がセットになっている場合に、共有メモリ20内の情報を読み出す(S206)。
 そして、暗号部29が、暗号化されている認証情報及びアクセス要求を暗号鍵28で復号(S207)する。
 更に、認証情報検証部14が、認証鍵27を用いて認証情報を検証することで、アクセス要求が正当な送信元(つまり、アプリケーション管理部21)から送信されたものであるかどうかを認証する(S208)。
 認証情報の検証は、どのような方法によってもよい。
 S208の認証の結果、認証に成功した場合、認証情報検証部14は、要求されたリソースへアクセスする(S209)。
 一方、認証に失敗した場合、アクセス要求を破棄する(S210)。
 この際、認証情報検証部14は、共有メモリ20を介してアプリケーション管理部21に認証が失敗した旨を応答してもよい。
 その後、認証部7では、暗号部29が暗号鍵28を用いてアクセス応答を暗号化(S211)する。
 そして、第二の通信部11が、暗号化されたアクセス応答を共有メモリ20に書き込み(S212)、転送フラグ30をクリアにする(S213)。
 アプリケーション管理部21では、第二の通信部10が、転送フラグ30をポーリングし(S214)、転送フラグ30がクリアになったら、共有メモリ20内の情報を読み出す(S215)。
 その後、暗号部26が、暗号鍵25を用いて、暗号化されたアクセス応答を復号(S216)し、第一の通信部9がアプリケーション5にアクセス応答を送信(S217)する。
 アプリケーション5では、第一の通信部8が、アプリケーション管理部21からアクセス応答を受信する(S218)。
 なお、本実施の形態では、アプリケーション管理部21をアプリケーション登録部3の内部に設けたが、アプリケーション登録部3とは別に設けてもよい。
 また、アプリケーション管理部21はアプリケーションではなく、バックグラウンドで動作する利用者インタフェースを持たないサービスであってもよい。
 本実施の形態では、認証鍵と別の暗号鍵を設けたが、認証鍵と暗号鍵とで同じ鍵を用いてもよい。
 この場合は、認証情報生成部24が認証情報の生成と暗号化・復号を行うことになる。
 また、認証部7がアプリケーション管理部21を認証する形態を示したが、アプリケーション管理部21が認証部7を認証する処理を追加し、相互認証するようにしてもよい。
 このような相互認証により、さらに安全なシステムを利用者に提供することができる。
 また、認証部7をICカードのようにアプリケーションプログラム実行装置1の外部に設け、アプリケーションプログラム実行装置1内部のアプリケーション管理部21から外部の認証部7を経由してアプリケーションプログラム実行装置1内部のリソースもしくは外部のリソースにアクセスする構成にしてもよい。
 以上のように、アプリケーション5は、アプリケーション管理部21と認証部7を介してリソースにアクセスするようにしているので、アプリケーション5内部には秘密にすべき認証情報を組み込む必要がなく、安全なシステムを利用者に提供できる。
 また、アプリケーション開発者が認証情報の機密管理を行う必要がなくなり、複数のアプリケーションに対する認証が1つのアプリケーション管理部21で可能となるため、アプリケーション開発コストを低減させ、利用者に低コストでサービスを提供できる。
 また、暗号部をアプリケーション管理部21と認証部7に設けているので、共有メモリ20からの情報漏えいリスクが低下し、より安全なシステムを利用者に提供できる。
 また、認証情報生成部24により毎回認証情報を生成しているので、認証情報を再利用した攻撃にも対抗でき、より安全なシステムを利用者に提供できる。
 実施の形態3.
 以上の実施の形態は、OS(Operating System)でアプリケーションが動作する実環境又は仮想実行環境での認証処理を説明した。
 本実施の形態では、仮想実行環境と実環境が共存する機器での実施の形態を示す。
 図6は、本実施の形態に係るアプリケーションプログラム実行装置1の構成図であり、図7は本実施の形態に係るアプリケーションプログラム実行装置1の機能概念図である。
 本実施の形態のアプリケーションプログラム実行装置1は、図7に示すように、OS51上でネイティブアプリケーション50と仮想実行環境52(仮想マシンモニタ)が動作し、仮想実行環境52上でアプリケーション管理部21とアプリケーション5とが動作する。
 ネイティブアプリケーション50には、認証部7が含まれている。
 また、ネイティブアプリケーション50とOS51に、保護対象リソース2が含まれている。
 なお、図7では、認証部7、アプリケーション管理部21及びアプリケーション5の内部構成の図示を省略しているが、各要素の内部構成は図6に示すとおりである。
 図6において、アプリケーション登録部3は、実施の形態2と同様に、内部にアプリケーション管理部21を有する。
 アプリケーション管理部21は、アプリケーションプログラム実行装置1の製造者により事前にアプリケーションプログラム実行装置1にインストールされており、仮想実行環境52で動作する。
 アプリケーション管理部21の内部構成は、実施の形態2に示したものと同様である。
 但し、実施の形態2では、第二の通信部10は、共有メモリ20に暗号化された認証情報とアクセス要求を書き込んでいたが、本実施の形態では、認証部7の第二の通信部11に暗号化された認証情報とアクセス要求を送信する。
 なお、第二の通信部11は、実施の形態2で示した共有メモリ20を用いた通信を行ってもよい。
 また、実施の形態2と同様に、アプリケーション管理部21は利用者インタフェースを持たず、アプリケーションプログラム実行装置1に接続されるSD(登録商標)カードのような外部記憶装置にデータのコピーや移動ができない構成になっている。
 また、アプリケーション5及び認証部7の構成も、実施の形態2と同様である。
 次に動作について説明する。
 図8及び図9は、本実施の形態に係るアプリケーションプログラム実行装置1の処理フローである。
 なお、図8及び図9では、アプリケーション管理部21を「管理部」と表記している。
 アプリケーション登録部3にあるアプリケーション5が動作して、保護対象リソース2へのアクセスを行う際に、第一の通信部8が保護対象リソース2の利用を要求するアクセス要求をアプリケーション管理部21に送信する(S300)。
 なお、アプリケーション5からアプリケーション管理部21への通信は、例えば、アプリケーション5がインストールされた際に使用された電子証明書とアプリケーション管理部21がインストールされた際に使用された電子証明書とが同じ場合にのみ許可される。
 アプリケーション管理部21では、第一の通信部9が、アプリケーション5からの保護対象リソース2へのアクセス要求を受信(S301)する。
 次に、認証情報生成部24が認証鍵23を用いて認証情報を生成し、暗号部26が暗号鍵25を用いてアクセス要求と認証情報を暗号化する(S302)。
 認証情報の生成アルゴリズムは、認証情報検証部14が認証情報を検証できるものであれば、どのようなものでもよい。
 暗号化は、本実施の形態のように認証情報とアクセス要求のすべてではなく、一部の情報を暗号化するようにしてもよい。
 また、認証情報及びアクセス要求に、メッセージ認証コードや電子署名など改ざんを検知するための情報を付加してもよい。
 そして、第二の通信部10が、暗号化されたアクセス要求と認証情報を認証部7に送信する(S303)。
 認証部7では、第二の通信部11が、アプリケーション管理部21からの暗号化されたアクセス要求と認証情報を受信(S304)する。
 そして、暗号部29が、暗号化されている認証情報及びアクセス要求を暗号鍵28で復号(S305)する。
 更に、認証情報検証部14が、認証鍵27を用いて認証情報を検証することで、アクセス要求が正当な送信元(つまり、アプリケーション管理部21)から送信されたものであるかどうかを認証する(S306)。
 S306の認証の結果、認証に成功した場合、認証情報検証部14は、要求されたリソースへアクセスする(S307)。
 一方、認証に失敗した場合、アクセス要求を破棄する(S308)。
 この際、第二の通信部11がアプリケーション管理部21に、認証が失敗した旨を応答してもよい。
 その後、認証部7では、暗号部29が暗号鍵28を用いてアクセス応答を暗号化(S308)する。
 そして、第二の通信部11が、暗号化されたアクセス応答をアプリケーション管理部21に送信する(S309)。
 アクセス要求が情報の読み出しなどの場合、本応答に読み出した情報を含めてもよい。
 アプリケーション管理部21では、第二の通信部10が、認証部7からの暗号化されたアクセス応答を受信(S310)し、暗号部26が、暗号鍵25を用いて、暗号化されたアクセス応答を復号(S311)し、第一の通信部9がアプリケーション5にアクセス応答を送信(S312)する。
 アプリケーション5では、第一の通信部8が、アプリケーション管理部21からアクセス応答を受信する(S313)。
 なお、アプリケーション管理部21はアプリケーションではなく、バックグラウンドで動作する利用者インタフェースを持たないサービスであってもよい。
 本実施の形態では、認証鍵と別の暗号鍵を設けたが、認証鍵と暗号鍵とで同じ鍵を用いてもよい。
 この場合は、認証情報生成部24が認証情報の生成と暗号化・復号を行うことになる。
 また、暗号部29を、アプリケーション管理部21内ではなく、仮想実行環境52内に設け、仮想実行環境52内にある暗号部を用いてもよい。
 同様に、暗号部29を、認証部7内ではなく、OS51内に設け、OS51内の暗号部を用いてもよい。
 また、アプリケーション管理部21の認証情報生成部24は、仮想実行環境52にある暗号部を用いて認証情報を生成するようにしてもよい。
 同様に、認証部7の認証情報検証部14は、OS51の暗号部を用いて認証情報を検証するようにしてもよい。
 なお、本実施の形態では、認証部7がアプリケーション管理部21を認証する形態を示したが、アプリケーション管理部21が認証部7を認証する処理を追加し、相互認証するようにしてもよい。
 このような相互認証により、さらに安全なシステムを利用者に提供することができる。
 また、認証部7をICカードのようにアプリケーションプログラム実行装置1の外部に設け、アプリケーションプログラム実行装置1内部のアプリケーション管理部21から外部の認証部7を経由してアプリケーションプログラム実行装置1内部のリソースもしくは外部のリソースにアクセスする構成にしてもよい。
 以上のように、アプリケーション5は、アプリケーション管理部21と認証部7を介してリソースにアクセスするようにしているので、アプリケーション5内部には秘密にすべき認証情報を組み込む必要がなく、安全なシステムを利用者に提供できる。
 また、アプリケーション開発者が認証情報の機密管理を行う必要がなくなり、複数のアプリケーションに対する認証が1つのアプリケーション管理部21で可能となるため、アプリケーション開発コストを低減させ、利用者に低コストでサービスを提供できる。
 また、暗号部をアプリケーション管理部21と認証部7に設けているので、共有メモリ20からの情報漏えいリスクが低下し、より安全なシステムを利用者に提供できる。
 また、認証情報生成部24により毎回認証情報を生成しているので、認証情報を再利用した攻撃にも対抗でき、より安全なシステムを利用者に提供できる。
 また、本実施の形態によれば、仮想実行環境で保護するリソースとは別のリソースを保護することができ、幅広いサービスを安全に利用者へ提供できる。
 実施の形態4.
 以上の実施の形態では、認証部7がアプリケーションプログラム実行装置1の内部にある例を示した。
 本実施の形態では、認証部7がアプリケーションプログラム実行装置1の外部に設けられている例を示す。
 図10は、本実施の形態に係るアプリケーションプログラム実行装置1の構成図である。
 本実施の形態では、実施の形態1~3で示した認証部7の機能が、認証装置61として、アプリケーションプログラム実行装置1の外部に設けられている。
 認証装置61は、外部装置の例に相当する。
 なお、認証装置61は、例えばICカードで実現できる。
 また、図10において破線で囲んだ範囲が実施の形態1~3で示した認証部7に相当する。
 本実施の形態では、認証装置61には、アプリケーションプログラム実行装置1の第三の通信部60と通信するための第三の通信部62が設けられている。
 認証装置61内の他の要素は、既に説明したものと同様なので、説明を省略する。
 アプリケーションプログラム実行装置1は、保護対象リソース2と、アプリケーション5とアプリケーション管理部21が含まれるアプリケーション登録部3と、保護対象リソース2にアクセスするための第三の通信部60で構成されている。
 アプリケーション5及びアプリケーション管理部21は、実施の形態3に示したものと同様であるので、説明を省略する。
 動作は、実施の形態3で述べた図8及び図9の処理フローにおいて、認証部7の動作を認証装置61が行い、認証部7の保護対象リソース2へのアクセス(S307)が第三の通信部62と第三の通信部60を介して行われる点が異なり、他の処理フローは同じであるので、説明を省略する。
 なお、アプリケーション管理部21はアプリケーションではなく、バックグラウンドで動作する利用者インタフェースを持たないサービスであってもよい。
 また、本実施の形態では、認証鍵と別の暗号鍵を設けたが、認証鍵と暗号鍵とで同じ鍵を用いてもよい。
 この場合は、認証情報生成部24が認証情報の生成と暗号化・復号を行うことになる。
 なお、本実施の形態では、認証装置61がアプリケーション管理部21を認証する形態を示したが、アプリケーション管理部21が認証装置61を認証する処理を追加し、相互認証するようにしてもよい。
 このような相互認証により、さらに安全なシステムを利用者に提供することができる。
 また、本実施の形態では、アプリケーションプログラム実行装置1内部のリソースへのアクセスを示したが、アプリケーションプログラム実行装置1外部のリソースにアクセスする構成でも同様の効果が得られる。
 以上のように、認証装置をアプリケーションプログラム実行装置1の外部に設けても前述の実施の形態と同様の効果が得られる。
 最後に、実施の形態1~4に示したアプリケーションプログラム実行装置1のハードウェア構成例を図11を参照して説明する。
 アプリケーションプログラム実行装置1はコンピュータであり、アプリケーションプログラム実行装置1の各要素をプログラムで実現することができる。
 アプリケーションプログラム実行装置1のハードウェア構成としては、バスに、演算装置901、外部記憶装置902、主記憶装置903、通信装置904、入出力装置905が接続されている。
 演算装置901は、プログラムを実行するCPUである。
 外部記憶装置902は、例えばROMやフラッシュメモリ、ハードディスク装置である。
 主記憶装置903は、RAMである。
 通信装置904は、例えば、実施の形態4の認証装置61と通信する際に用いられる。
 また、通信装置904は、LAN(Local Area Network)等のネットワークに接続されていてもよい。
 入出力装置905は、例えばマウス、キーボード、ディスプレイ装置等である。
 プログラムは、通常は外部記憶装置902に記憶されており、主記憶装置903にロードされた状態で、順次演算装置901に読み込まれ、実行される。
 プログラムは、図1等に示すアプリケーション管理部6、21の「~部」(但し、「認証鍵記憶部22」を除く)として説明している機能を実現するプログラムである。
 更に、外部記憶装置902にはオペレーティングシステム(OS)も記憶されており、OSの少なくとも一部が主記憶装置903にロードされ、演算装置901はOSを実行しながら、図1等に示す「~部」の機能を実現するプログラムを実行する。
 また、アプリケーション5及び認証部7も外部記憶装置902に記憶されており、主記憶装置903にロードされた状態で、順次演算装置901により実行される。
 また、認証鍵、暗号鍵も外部記憶装置902に記憶されており、主記憶装置903にロードされた状態で、順次演算装置901により利用される。
 また、実施の形態1~4の説明において、「~の判断」、「~の判定」、「~の検証」、「~の認証」、「~の取得」、「~の読み出し」、「~の抽出」、「~の検知」、「~の設定」、「~の登録」、「~の選択」、「~の生成」、「~の入力」、「~の受信」等として説明している処理の結果を示す情報やデータや信号値や変数値が主記憶装置903にファイルとして記憶されている。
 また、乱数値、パラメータや電子証明書が、主記憶装置903にファイルとして記憶されてもよい。
 また、図1等に示すアプリケーション管理部6、21の「~部」の少なくとも一部を、ファームウェアで実現してもよい。
 なお、図11の構成は、あくまでもアプリケーションプログラム実行装置1のハードウェア構成の一例を示すものであり、アプリケーションプログラム実行装置1のハードウェア構成は図11に記載の構成に限らず、他の構成であってもよい。
 1 アプリケーションプログラム実行装置、2 保護対象リソース、3 アプリケーション登録部、4 操作部、5 アプリケーション、6 アプリケーション管理部、7 認証部、8 第一の通信部、9 第一の通信部、10 第二の通信部、11 第二の通信部、12 認証情報記憶部、13 認証情報、14 認証情報検証部、15 認証情報、16 認証情報取得部、20 共有メモリ、21 アプリケーション管理部、22 認証鍵記憶部、23 認証鍵、24 認証情報生成部、25 暗号鍵、26 暗号部、27 認証鍵、28 暗号鍵、29 暗号部、30 転送フラグ、50 ネイティブアプリケーション、51 OS、52 仮想実行環境、60 第三の通信部、61 認証装置、62 第三の通信部。

Claims (8)

  1.  アプリケーションプログラムが実装されており、前記アプリケーションプログラムによるリソースの利用を管理するアプリケーションプログラム管理部を有するアプリケーションプログラム実行装置であって、
     前記アプリケーションプログラム管理部が、
     前記アプリケーションプログラムから、前記アプリケーションプログラム実行装置内の所定のリソースの利用を要求するリソース利用要求を受信する第一の通信部と、
     所定の認証処理により、前記アプリケーションプログラム管理部が正当であることが立証される認証情報を、前記アプリケーションプログラムとは無関係に取得する認証情報取得部と、
     前記第一の通信部により受信された前記リソース利用要求と、前記認証情報取得部により取得された前記認証情報とを、前記アプリケーションプログラムによる前記リソースの利用可否を判断する認証部に対して送信する第二の通信部と有すること特徴とするアプリケーションプログラム実行装置。
  2.  前記認証情報取得部は、
     前記認証部以外には秘匿されている認証情報を取得することを特徴とする請求項1に記載のアプリケーションプログラム実行装置。
  3.  前記アプリケーションプログラム管理部は、更に、
     前記認証部と共有している、前記アプリケーションプログラム管理部が正当であることが立証される認証情報を記憶する認証情報記憶部を有し、
     前記認証情報取得部は、
     前記認証情報記憶部から前記認証情報を読み出し、
     前記第二の通信部は、
     前記第一の通信部により受信された前記リソース利用要求と、前記認証情報取得部により前記認証情報記憶部から読み出された前記認証情報とを、前記認証部に対して送信することを特徴とする請求項1又は2に記載のアプリケーションプログラム実行装置。
  4.  前記アプリケーションプログラム管理部は、更に、
     前記認証部と共有している認証鍵を記憶する認証鍵記憶部を有し、
     前記認証情報取得部は、
     前記認証鍵記憶部に記憶されている認証鍵を用いて、前記アプリケーションプログラム管理部が正当であることが立証される認証情報を生成し、
     前記第二の通信部は、
     前記第一の通信部により受信された前記リソース利用要求と、前記認証情報取得部により生成された前記認証情報とを、前記認証部に対して送信することを特徴とする請求項1~3のいずれかに記載のアプリケーションプログラム実行装置。
  5.  前記アプリケーションプログラム実行装置は、更に、
     前記認証部との通信に用いられる共有メモリを有し、
     前記第二の通信部は、
     前記リソース利用要求と前記認証情報とを、前記共有メモリに書き込むことを特徴とする請求項1~4のいずれかに記載のアプリケーションプログラム実行装置。
  6.  前記アプリケーションプログラム管理部と前記アプリケーションプログラムとが、前記アプリケーションプログラム実行装置に構築されている仮想実行環境上で動作することを特徴とする請求項1~5のいずれかに記載のアプリケーションプログラム実行装置。
  7.  前記認証部は、
     前記アプリケーションプログラム実行装置内に配置されており、
     前記第二の通信部は、
     前記リソース利用要求と前記認証情報とを、前記アプリケーションプログラム実行装置内の前記認証部に対して送信することを特徴とする請求項1~6のいずれかに記載のアプリケーションプログラム実行装置。
  8.  前記認証部は、
     前記アプリケーションプログラム実行装置以外の外部装置内に配置されており、
     前記第二の通信部は、
     前記リソース利用要求と前記認証情報とを、前記外部装置内の前記認証部に対して送信することを特徴とする請求項1~6のいずれかに記載のアプリケーションプログラム実行装置。
PCT/JP2012/061979 2012-05-10 2012-05-10 アプリケーションプログラム実行装置 WO2013168255A1 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
PCT/JP2012/061979 WO2013168255A1 (ja) 2012-05-10 2012-05-10 アプリケーションプログラム実行装置
DE112013002396.2T DE112013002396T5 (de) 2012-05-10 2013-03-07 Anwendungsprogrammausführungsgerät
US14/385,952 US20150047001A1 (en) 2012-05-10 2013-03-07 Application program execution device
PCT/JP2013/056338 WO2013168461A1 (ja) 2012-05-10 2013-03-07 アプリケーションプログラム実行装置
CN201380024382.5A CN104272313B (zh) 2012-05-10 2013-03-07 应用程序执行装置
JP2014514397A JP5905087B2 (ja) 2012-05-10 2013-03-07 アプリケーションプログラム実行装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/061979 WO2013168255A1 (ja) 2012-05-10 2012-05-10 アプリケーションプログラム実行装置

Publications (1)

Publication Number Publication Date
WO2013168255A1 true WO2013168255A1 (ja) 2013-11-14

Family

ID=49550339

Family Applications (2)

Application Number Title Priority Date Filing Date
PCT/JP2012/061979 WO2013168255A1 (ja) 2012-05-10 2012-05-10 アプリケーションプログラム実行装置
PCT/JP2013/056338 WO2013168461A1 (ja) 2012-05-10 2013-03-07 アプリケーションプログラム実行装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/056338 WO2013168461A1 (ja) 2012-05-10 2013-03-07 アプリケーションプログラム実行装置

Country Status (5)

Country Link
US (1) US20150047001A1 (ja)
JP (1) JP5905087B2 (ja)
CN (1) CN104272313B (ja)
DE (1) DE112013002396T5 (ja)
WO (2) WO2013168255A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016057886A (ja) * 2014-09-10 2016-04-21 株式会社東芝 携帯可能電子装置
JP2018116724A (ja) * 2018-03-05 2018-07-26 株式会社東芝 携帯可能電子装置

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9736119B2 (en) * 2014-04-07 2017-08-15 Google Inc. Relay proxy providing secure connectivity in a controlled network environment
CN104580207B (zh) 2015-01-04 2019-03-19 华为技术有限公司 物联网中的认证信息的转发方法、装置以及转发器
EP3259726B1 (en) * 2015-02-17 2021-03-31 Visa International Service Association Cloud encryption key broker apparatuses, methods and systems
JP6900839B2 (ja) * 2017-08-25 2021-07-07 株式会社リコー 機器システム、サーバ、データ処理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003044297A (ja) * 2000-11-20 2003-02-14 Humming Heads Inc コンピュータリソースの制御を行なう情報処理方法および装置、情報処理システム及びその制御方法並びに記憶媒体、プログラム
JP2003223235A (ja) * 2001-11-26 2003-08-08 Matsushita Electric Ind Co Ltd アプリケーション認証システム
WO2005121974A1 (ja) * 2004-06-11 2005-12-22 Ntt Docomo, Inc. 移動通信端末及びデータアクセス制御方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8468591B2 (en) * 2006-10-13 2013-06-18 Computer Protection Ip, Llc Client authentication and data management system
US8839363B2 (en) * 2011-04-18 2014-09-16 Bank Of America Corporation Trusted hardware for attesting to authenticity in a cloud environment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003044297A (ja) * 2000-11-20 2003-02-14 Humming Heads Inc コンピュータリソースの制御を行なう情報処理方法および装置、情報処理システム及びその制御方法並びに記憶媒体、プログラム
JP2003223235A (ja) * 2001-11-26 2003-08-08 Matsushita Electric Ind Co Ltd アプリケーション認証システム
WO2005121974A1 (ja) * 2004-06-11 2005-12-22 Ntt Docomo, Inc. 移動通信端末及びデータアクセス制御方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016057886A (ja) * 2014-09-10 2016-04-21 株式会社東芝 携帯可能電子装置
JP2018116724A (ja) * 2018-03-05 2018-07-26 株式会社東芝 携帯可能電子装置

Also Published As

Publication number Publication date
JP5905087B2 (ja) 2016-04-20
CN104272313B (zh) 2017-08-22
US20150047001A1 (en) 2015-02-12
DE112013002396T5 (de) 2015-01-22
WO2013168461A1 (ja) 2013-11-14
JPWO2013168461A1 (ja) 2016-01-07
CN104272313A (zh) 2015-01-07

Similar Documents

Publication Publication Date Title
US11489678B2 (en) Platform attestation and registration for servers
CN110036613B (zh) 提供用于去中心化应用的身份认证的系统和方法
JP5852265B2 (ja) 計算装置、コンピュータプログラム及びアクセス許否判定方法
WO2014159180A1 (en) Secure cloud storage and encryption management system
US10237057B2 (en) Method and system for controlling the exchange of privacy-sensitive information
CN112765684B (zh) 区块链节点终端管理方法、装置、设备及存储介质
WO2013168255A1 (ja) アプリケーションプログラム実行装置
CN108335105B (zh) 数据处理方法及相关设备
JP5452192B2 (ja) アクセス制御システム、アクセス制御方法およびプログラム
CN112765637A (zh) 数据处理方法、密码服务装置和电子设备
EP3048553B1 (en) Method for distributing applets, and entities for distributing applets
CN106992978B (zh) 网络安全管理方法及服务器
KR101711024B1 (ko) 부정조작방지 장치 접근 방법 및 그 방법을 채용한 단말 장치
Kim et al. Secure user authentication based on the trusted platform for mobile devices
Gilad et al. Securing smartphones: a micro-TCB approach
CN106789074B (zh) 一种Java卡的应用身份验证方法及验证系统
Ur Rahman et al. Practical security for rural internet kiosks
JP2016071644A (ja) ライセンス管理方法及びライセンス管理システム
KR102542840B1 (ko) 오픈 api 기반의 금융 인증 서비스 제공 방법 및 시스템
Huang et al. Pearl-TEE: supporting untrusted applications in trustzone
Gilad et al. Securing smartphones: A µtcb approach
KR20170096691A (ko) 자체확장인증을 이용한 키관리 방법
Muraleedhara Mobile Application Security: Risk and Remediation: This article covers the importance of mobile application security, risk involved and way to remediate the security exploits.
Cilardo et al. TrustedSIM: Towards unified mobile security
KR20220168860A (ko) 컨텐츠 제공자의 보안등급을 인증하는 시스템 및 그 방법

Legal Events

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

Ref document number: 12876570

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12876570

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP