WO2009107330A1 - 情報処理装置及びその制御方法 - Google Patents

情報処理装置及びその制御方法 Download PDF

Info

Publication number
WO2009107330A1
WO2009107330A1 PCT/JP2009/000500 JP2009000500W WO2009107330A1 WO 2009107330 A1 WO2009107330 A1 WO 2009107330A1 JP 2009000500 W JP2009000500 W JP 2009000500W WO 2009107330 A1 WO2009107330 A1 WO 2009107330A1
Authority
WO
WIPO (PCT)
Prior art keywords
virtual machine
application
predetermined application
predetermined
machine monitor
Prior art date
Application number
PCT/JP2009/000500
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 US12/918,918 priority Critical patent/US8689212B2/en
Priority to CN200980105824.2A priority patent/CN101946252B/zh
Priority to EP09715484.3A priority patent/EP2249280B1/en
Publication of WO2009107330A1 publication Critical patent/WO2009107330A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • 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
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • G06F12/1475Key-lock mechanism in a virtual system, e.g. with translation means
    • 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
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine

Definitions

  • the present invention relates to an information processing apparatus having a virtual machine monitor that manages a virtual machine on which a predetermined application operates, and a control method thereof.
  • the digitized music data, the HD image, etc. can be copied without deterioration. Therefore, in order to protect the interests of the copyright holder, these contents must be handled while being protected from unauthorized copying.
  • copyright protection technologies such as CPRM (Content Protection Recording Media) and AACS (Advanced Access Content System). These copyright protection technologies protect the content by encrypting it, and in order for the user to use the content, it is necessary to decrypt the data with a terminal corresponding to the copyright protection technology.
  • a terminal that supports copyright protection technology includes a secure device such as a cryptographic engine that performs decryption processing on encrypted content.
  • the secure device needs to be correctly operated so as not to decrypt content that is not permitted to be decrypted by unauthorized processing.
  • Patent Document 1 is a technique for detecting whether or not a program that handles data is valid, and will be briefly described with reference to FIG.
  • FIG. 19 is a diagram showing a sequence of Patent Document 1.
  • processing is started by an operation of a user or the like (S410).
  • a hash value (authenticator) is created for the above-described program using a hash function (S412).
  • the processed information and the hash value (authenticator) described above are sent to a verification unit (not shown), and the verification unit holds the sent hash value (authenticator) in advance. It is determined whether or not it matches the hash value. If they match, it is determined that the program corresponding to the hash value is valid (S413).
  • Patent Document 2 As a technique for appropriately processing data handled by a terminal device, there is, for example, Patent Document 2. This will be briefly described with reference to FIGS.
  • FIG. 20 is a diagram showing a software configuration diagram of Patent Document 2. As shown in FIG. 20
  • the software of Patent Document 2 includes a VMM (Virtual Machine Monitor) 400, a general-purpose OS 401, a network-compatible application 402, a general-purpose OS NIC proxy 403, a real-time OS 404, a real-time NIC proxy 405, and a real-time UDP / IP 406. And a NIC driver 407.
  • VMM Virtual Machine Monitor
  • the VMM 400 provides an OS virtualization function.
  • the general-purpose OS 401 and the real-time OS 404 are operating systems that operate on virtualized hardware provided by the VMM 400.
  • the network compatible application 402 requests network processing from the general-purpose OS NIC proxy 403 when performing network processing. Then, the general-purpose OS NIC proxy 403 requests the real-time NIC proxy 405 to perform processing. Then, the real-time NIC proxy 405 requests the real-time UDP / IP 406 for processing.
  • the real-time UDP / IP 406 uses a NIC driver 407 to control a network interface card (NIC, Network Interface Card) (not shown).
  • the NIC driver 407 is used to control the network interface card (NIC, Network Interface Card).
  • FIG. 21 is a diagram showing a sequence when a packet data arrival notification is received from the network interface card.
  • the packet data arrival notification is notified by an interrupt signal or the like from the NIC that has detected the arrival of the packet data (S400).
  • the NIC driver 407 acquires data from the network interface card. Then, the packet data is sent to the real-time UDP / IP 406 (S401).
  • the real-time UDP / IP 406 determines whether the number stored in the port area of the packet data is a port number used by the software on the real-time OS side. If the above number is a port number used by the software on the real-time OS side, the process proceeds to S403. If the above number is not the number used by the software on the real time OS side, the process proceeds to S404 (S402).
  • the real-time UDP / IP 406 sends the packet data to appropriate software on the real-time OS side, and transitions to S405 (S403).
  • step S404 the real-time UDP / IP 406 sends the packet data to the general-purpose OS NIC proxy 403 via the real-time NIC proxy 405.
  • the general-purpose OS NIC proxy 403 sends the packet data to the network compatible application 402 (S404).
  • Patent Document 1 performs a hash operation on a program to determine whether the program is valid.
  • Patent Document 2 only determines whether the data handled by the device is processed by software on the real-time OS side or software on the general-purpose OS side, and the application is valid. There is no confirmation of this.
  • SSL Secure Socket Layer
  • the present invention solves the above-mentioned problems, and prevents the predetermined application from being rewritten with another unauthorized application after the validity of the predetermined application is determined, and the device being controlled by the unauthorized application. It is an object of the present invention to provide an information processing apparatus and a control method thereof.
  • an information processing apparatus includes a virtual machine that manages a predetermined application as a rewritable work area on which a predetermined application that accesses a predetermined device operates.
  • a detection unit that detects an access request to a predetermined device using the predetermined application from the virtual machine, a verification unit that verifies validity of the predetermined application, the virtual machine, the verification unit, and the detection
  • a virtual machine monitor that manages a virtual machine monitor, and when the detection unit detects the access request, the virtual machine monitor notifies the virtual machine monitor to that effect, and the virtual machine monitor rewrites the predetermined application on the work area. It is managed as impossible and notifies the verification unit to that effect, and the verification unit Serial predetermined application and receiving a notification from the virtual machine monitor is to determine whether it is legitimate.
  • the information processing apparatus allows the verification unit to verify that the predetermined application is valid after the virtual machine monitor manages that the predetermined application cannot be rewritten to the work area.
  • the verification unit verifies that the predetermined application is valid. It is possible to prevent the predetermined application from being rewritten to another unauthorized application on the work area after it is determined.
  • An information processing apparatus provides a virtual machine that operates a predetermined application that accesses a predetermined device on a work area, and an access request to the predetermined device using the predetermined application.
  • a detection unit that detects from a virtual machine, a verification unit that verifies the validity of the predetermined application, manages the virtual machine, the verification unit, and the detection unit, and rewrites a predetermined application that operates on the work area
  • a virtual machine monitor that can be managed, and when the detection unit detects the access request, the detection unit notifies the virtual machine monitor to that effect, and the virtual machine monitor rewrites the predetermined application on the work area. It is managed as impossible and notifies the verification unit to that effect.
  • the predetermined application and receiving a notification from the virtual machine monitor is to determine whether it is legitimate.
  • the verification unit determines whether the predetermined application is valid.
  • the verification unit manages the predetermined application in a non-rewritable manner before verifying the validity of the predetermined application, so that the predetermined application is determined after the verification unit determines that the predetermined application is valid. Can be prevented from being rewritten to another application on the work area.
  • the information processing apparatus in the information processing apparatus according to claim 1, when the verification unit determines that the predetermined application is valid, the information processing apparatus is predetermined using the predetermined application. An execution unit for accessing the device is provided.
  • the verification unit manages the predetermined application so that it cannot be rewritten before verifying the validity of the predetermined application. It is possible to prevent the predetermined application from being rewritten to another unauthorized application on the work area after the application is determined to be valid and the predetermined device being accessed using the unauthorized application.
  • the information processing apparatus is the information processing apparatus according to claim 2, wherein the virtual machine monitor terminates access to a predetermined device using the predetermined application by the execution unit. Then, the management is returned to a rewritable one for the predetermined application.
  • the virtual machine monitor by causing the virtual machine monitor to return the management to a rewritable one after the execution unit has finished accessing the predetermined device using the predetermined application, Since the predetermined application can be deleted from the work area after the access by the predetermined application is completed, it is possible to prevent the work area from being occupied unnecessarily by the processed application.
  • the information processing apparatus is the information processing apparatus according to claim 1, wherein the virtual machine monitor manages management information corresponding to the predetermined application in the work area, and
  • the information includes privilege information indicating an entity having authority to rewrite the management information, and when the privilege information indicates that the rewritable entity of the predetermined application includes the virtual machine, the information of the predetermined application By rewriting the privilege information so as to exclude the virtual machine from a rewritable entity, the predetermined application is managed as being rewritable.
  • the management information that can be rewritten by the virtual machine cannot be rewritten by the virtual machine when the virtual machine monitor rewrites privilege information in the management information. Therefore, once the virtual machine monitor rewrites the privilege information, the virtual machine monitor can prohibit rewriting of the management information by the virtual machine. As a result, it is possible to reliably prevent the predetermined application from being rewritten to another application on the work area after the verification unit determines whether or not the predetermined application is valid.
  • the virtual machine monitor eliminates the virtual machine from the rewritable main body of the predetermined application by rewriting privilege information which is a part of the management information, so the virtual machine can be easily On the monitor side, rewriting of applications operating on the work area by the virtual machine can be prohibited. Further, by rewriting existing information called privilege information in the management information, a separate data structure for prohibiting rewriting of the management information by the virtual machine becomes unnecessary, and the configuration for prohibiting rewriting Can be simplified.
  • the information processing apparatus is the information processing apparatus according to claim 4, wherein the virtual machine monitor uses the virtual machine and the virtual machine monitor as rewritable entities of the predetermined application.
  • the virtual machine is excluded from the rewritable main body of the predetermined application by rewriting the privilege information to information that restricts the rewritable main body of the predetermined application to the virtual machine monitor. .
  • the privilege information is changed from information including the virtual machine and the virtual machine monitor as a rewritable main body of the predetermined application to information limiting the rewritable main body of the predetermined application to the virtual machine monitor. Since the virtual machine is excluded from the rewritable main body of the predetermined application, rewriting of the application operating on the work area by the virtual machine can be easily prohibited.
  • the information processing apparatus according to claim 6 of the present invention is the information processing apparatus according to claim 1, wherein the predetermined device is an SD card.
  • the information processing apparatus is the information processing apparatus according to claim 1, wherein the predetermined device is an external content server that provides content to the information processing apparatus.
  • an information processing apparatus comprising: a virtual machine that operates a predetermined application that accesses a predetermined device on a work area; and an access request to the predetermined device that uses the predetermined application. Detecting unit from the virtual machine, and a virtual machine monitor that manages the virtual machine and the detection unit and rewrites a predetermined application that operates on the work area, and the detection unit When the access request is detected, the virtual machine monitor notifies the virtual machine monitor, and the virtual machine monitor manages that the predetermined application on the work area is not rewritable. To the external device, and the verification unit of the external device is valid for the predetermined application. Is obtained is characterized in that to perform determination of whether.
  • the verification unit may be included not in the information processing apparatus but in an external device of the information processing apparatus.
  • An information processing apparatus provides a virtual machine that operates a predetermined application for accessing a predetermined device on a work area, and an access request to the predetermined device using the predetermined application.
  • a detection unit that detects from the virtual machine, a virtual machine monitor that manages the virtual machine and the detection unit, manages a predetermined application that operates on the work area in a rewritable manner, and an execution unit that provides a service
  • a communication unit that communicates with an external device, and when the detection unit detects the access request, the detection unit notifies the virtual machine monitor to that effect, and the virtual machine monitor rewrites the predetermined application on the work area.
  • the communication unit is re-managed as impossible, and the predetermined application is written by the communication unit. If it is determined that the legitimate after being re managed as example not possible, it is from the execution unit of the external device that is characterized by receiving a supply of the services.
  • the execution unit may be included not in the information processing apparatus but in an external device of the information processing apparatus.
  • a control method for an information processing apparatus comprising: a virtual machine that operates a predetermined application that accesses a predetermined device on a work area; and a predetermined device that uses the predetermined application.
  • a detection unit that detects the access request from the virtual machine, a verification unit that verifies the validity of the predetermined application, and a virtual machine monitor that manages the virtual machine, the verification unit, and the detection unit.
  • the detection unit detects the access request, the detection unit notifies the virtual machine monitor to that effect, and the virtual machine monitor re-manages that the predetermined application on the work area is not rewritable.
  • the verification unit receives the notification from the virtual machine monitor.
  • the predetermined application and is obtained by determination as to whether or not valid.
  • the verification unit determines whether the predetermined application is valid.
  • the verification unit manages the predetermined application in a non-rewritable manner before verifying the validity of the predetermined application, so that the predetermined application is determined after the verification unit determines that the predetermined application is valid. Can be prevented from being rewritten to another unauthorized application on the work area.
  • a control program for an information processing apparatus includes: a virtual machine that operates a predetermined application that accesses a predetermined device on a work area; and a predetermined device that uses the predetermined application.
  • a detection unit that detects the access request from the virtual machine, a verification unit that verifies the validity of the predetermined application, and a virtual machine monitor that manages the virtual machine, the verification unit, and the detection unit.
  • the detection unit detects the access request, a step of notifying the virtual machine monitor to that effect, and the virtual machine monitor with the predetermined application on the work area. The step of re-managing that it is not rewritable and notifying the verification unit to that effect If, in the verification unit notifies the received from the virtual machine monitor, the predetermined application is that so as to determine whether it is legitimate.
  • the verification unit determines whether the predetermined application is valid.
  • the verification unit manages the predetermined application in a non-rewritable manner before verifying the validity of the predetermined application, so that the predetermined application is determined after the verification unit determines that the predetermined application is valid. Can be prevented from being rewritten to another unauthorized application on the work area.
  • An integrated circuit of an information processing apparatus is directed to a virtual machine that operates a predetermined application for accessing a predetermined device on a work area, and a predetermined device using the predetermined application.
  • a detection unit that detects the access request from the virtual machine, a verification unit that verifies the validity of the predetermined application, and a virtual machine monitor that manages the virtual machine, the verification unit, and the detection unit.
  • the detection unit detects the access request, the detection unit notifies the virtual machine monitor to that effect, and the virtual machine monitor re-manages the predetermined application on the work area as being unrewritable.
  • the verification unit notifies the verification unit. Deployment is that so as to determine whether or not valid.
  • the verification unit determines whether the predetermined application is valid.
  • the verification unit manages the predetermined application in a non-rewritable manner before verifying the validity of the predetermined application, so that the predetermined application is determined after the verification unit determines that the predetermined application is valid. Can be prevented from being rewritten to another unauthorized application on the work area.
  • Embodiment 1 of this invention It is a block diagram which shows the software structure of Embodiment 1 of this invention. It is a block diagram which shows the hardware constitutions of Embodiment 1 of this invention. It is a figure which shows the physical memory space of the information processing apparatus of Embodiment 1 of this invention. It is a figure which shows an example of the correspondence of the virtual physical memory space and logical memory space of Embodiment 1 of this invention. It is a figure which shows an example of the data structure of the page table of Embodiment 1 of this invention. It is a figure which shows the access control when CPU of Embodiment 1 of this invention accesses a normal memory and a protection memory.
  • Sequence diagram for confirming the validity of a conventional program It is a figure which shows the software structure which processes data appropriately for every execution environment in the conventional OS virtualization execution environment. It is a sequence diagram which processes data appropriately for every execution environment in the conventional OS virtualization execution environment. It is a sequence diagram which loads the application on general purpose OS. It is a figure which shows an example after rewriting of the data structure of the page table of Embodiment 1 of this invention.
  • FIG. 1 is a diagram showing a software configuration according to the first embodiment of the present invention.
  • the information processing apparatus includes a secure VMM 100 that is a virtual machine monitor, a general-purpose OS 101, an application A 102, an application B 103, a management dedicated OS 104, a device access request determination unit 109 that is a detection unit, and an execution A secure device driver 105 including a secure access control unit 110 as a unit and an application specifying unit 106 as a verification unit.
  • the virtual machine includes a general-purpose OS 101, an application A102, and an application B103.
  • Secure VMM 100 provides an OS virtualization function.
  • the general-purpose OS 101 and the management-dedicated OS 104 are operating systems that operate on virtualized hardware provided by the secure VMM 100.
  • the secure VMM 100 includes an operation application storage memory specifying unit 107 and an operation application memory lock unit 108.
  • Application A 102 and application B 103 are applications that provide services to users, and access a secure device (not shown) as necessary.
  • the secure device driver 105 is a device driver that controls a secure device (not shown), and includes a device access request determination unit 109 and a device access control unit 110.
  • the application identification unit 106 includes an authenticator generation unit 111 and an application determination unit 112.
  • the operation application storage memory specifying unit 107 specifies an application on the general-purpose OS 101 that accesses a secure device (not shown). Details will be described later.
  • the operation application memory lock unit 108 controls a page table corresponding to an application on the general-purpose OS 101 that accesses a secure device (not shown). Details will be described later.
  • the device access request determination unit 109 detects an access request to a secure device (not shown). Details will be described later.
  • the device access control unit 110 controls access to a secure device (not shown). Details will be described later.
  • the authenticator generation unit 111 generates an authenticator for an application on the general-purpose OS 101 for a secure device (not shown). Details will be described later.
  • the application determination unit 112 determines whether or not the application is valid using the above-described application authenticator. Details will be described later.
  • FIG. 2 is a hardware configuration diagram of the information processing apparatus 120 on which the software of FIG. 1 operates.
  • the information processing apparatus 120 includes a CPU 121, an MMU (Memory Management Unit) 122, a normal memory 123, a protection memory 124, a secure device 126, and a nonvolatile storage device 134 via a bus 125. Connected.
  • MMU Memory Management Unit
  • the information processing apparatus 120 further includes an input / output unit and an auxiliary storage device that are not illustrated in FIG. 2, but these are not the essence of the present invention, and thus description thereof is omitted.
  • the CPU 121 controls the overall operation of the information processing apparatus 120 by executing instruction codes included in programs or the like stored in the normal memory 123 or the protection memory 124.
  • the MMU 122 provides a function of converting a physical address number into a logical address number to the CPU 121 with reference to a page table (not shown). Further, the MMU 122 refers to a page table (not shown) and provides an access control function such as a memory write operation and a read operation according to the privileged state of the CPU 121.
  • the non-volatile storage device 134 is a non-volatile storage device that stores the application A 127 and the application B 128. Specifically, it is a hard disk or flash memory.
  • the normal memory 123 is a volatile storage device that is executed by loading the application A 127, the application B 128, and the general-purpose OS 129 stored in the nonvolatile storage device 134. This corresponds to the work area of the present invention.
  • the protection memory 124 is a storage device that stores the secure device driver 130, the application specifying unit 131, the management dedicated OS 132, and the secure VMM 133.
  • the secure device 126 is a device that handles information to be protected such as content, and is a device that needs to prevent access from unauthorized applications. For example, it is an encryption / decryption circuit that performs decryption of encrypted content. Other examples include a recording medium such as a flash memory in which encrypted content is recorded, and a memory in which decrypted content is held. Further, the secure device is not limited to the one built in the information processing apparatus, but may be an external recording apparatus such as an SD card.
  • protection memory 124 and the secure device 126 are controlled so that only software stored in the protection memory 124 can be accessed.
  • the general-purpose OS 129 holds a page table 135 and a page table 136, respectively, corresponding to the application A 127 and the application B 128 that operate on the general-purpose OS 129. Details regarding the page table will be described later.
  • FIG. 3 is a diagram illustrating the physical memory space 140 of the information processing apparatus 120.
  • the physical memory space 140 of the information processing apparatus 120 includes a memory space 141 corresponding to a normal memory, a reserved area A 142, a memory space 143 corresponding to a protected memory, and a reserved area B 144.
  • the physical memory space 140 of the information processing apparatus can be uniquely specified by a physical memory address.
  • the secure VMM 100 manages the physical memory space 140 of the information processing apparatus by dividing it into a physical memory space allocated to the general-purpose OS 101 and a physical memory space allocated to the management-dedicated OS 104.
  • the physical memory space allocated to the general-purpose OS 101 includes a memory space 141 corresponding to a normal memory and a reserved area A 142.
  • the physical memory space allocated to the management-dedicated OS 104 includes a memory space 143 corresponding to the protected memory and a reserved area B 144.
  • the secure VMM 100 causes the general-purpose OS 101 and the management-dedicated OS 104 to refer to each memory space as a virtual physical address space.
  • the general-purpose OS 101 and the management-dedicated OS 104 perform a read operation and a write operation on each virtual physical address space using the virtual physical address number.
  • FIG. 4 is an example of a correspondence relationship between the virtual physical memory space and the logical memory space.
  • the virtual physical memory space in FIG. 4 is a virtual physical memory space in which the general-purpose OS performs a read operation and a write operation.
  • the normal memory 151 is managed by being divided into fixed length sizes called pages.
  • the page table 153 manages a plurality of pages together and constructs a logical address space. Furthermore, one page table corresponds to one application.
  • the application performs read and write operations using the logical address number for the logical address space.
  • FIG. 5 is a diagram illustrating an example of the data structure of the page table 160.
  • the page table 160 includes a page number 161, a logical address number 162, a virtual physical address number 163, privilege information 164, write operation permission / non-permission information 165, and a read operation for each entry corresponding to the page.
  • the data structure includes permission / non-permission information 166 and other information 167.
  • the page number 161 is a field for storing the page number.
  • the logical address number 162 is a field for storing a corresponding logical address number when the MMU 122 converts a virtual physical address number into a logical address number. This field may store each logical address number corresponding to each virtual physical address number, or may store the top logical address number of the page.
  • the virtual physical address number 163 is a field for storing a corresponding virtual physical address number when the MMU 122 converts the virtual physical address number into a logical address number. This field may store the top virtual physical address number of the page.
  • the privilege information 164 is a field for storing information related to privilege information to be referred to when the MMU 122 performs access control to the memory. Details will be described later.
  • the write operation permission / non-permission information 165 is a field indicating whether or not the application corresponding to the page table 160 may perform a write operation on the page. In this field, information indicating permission or non-permission is stored.
  • Read operation permission / non-permission information 166 is a field indicating whether or not an application corresponding to the page table 160 may perform a read operation on the page. In this field, information indicating permission or non-permission is stored.
  • Other information 167 is a field that stores page size, page dirty information, information other than the above-described attributes, and the like.
  • page table 160 shown in FIG. 5 has a logical data structure, and for example, a known hierarchical page table structure may be used.
  • privilege information is assigned to each page, but one privilege information may be assigned to one page table. In that case, the one privilege information may be managed by another data structure or register.
  • the write operation permission / non-permission information 165 is a field indicating whether or not writing from an application is possible, but may be other than that. For example, it may be a field indicating whether or not the subject can perform a write operation in combination with information indicating the subject of the write operation stored in other information 167.
  • the read operation permission / non-permission information 166 is a field indicating whether or not reading from an application is possible, but it may be other than that. For example, it may be a field indicating whether or not the subject can perform a read operation in combination with information indicating the subject of the read operation stored in other information 167.
  • FIG. 6 is a table showing access control when the CPU 121 accesses the normal memory 123 and the protection memory 124.
  • 6 may be realized by the CPU 121 or the MMU 122.
  • the CPU 121 has a privileged state of ring 0, ring 1, ring 2, and ring 3.
  • the CPU 121 changes each privileged state by executing a privileged instruction.
  • Privileged information 164 field of the page table 160 can access the pages of ring 0, ring 1, ring 2, and ring 3 by software that is the main body operating on the CPU 121 that is the privilege state ring 0. Further, the contents of the page table of the ring 0, ring 1, ring 2, and ring 3 can be rewritten in the privilege information 164 field.
  • Privileged information 164 field of the page table 160 can access the pages of the ring 1, ring 2, and ring 3 by the software that is the main body operating on the CPU 121 that is the privileged state ring 1.
  • the contents of the page tables of the ring 1, ring 2, and ring 3 can be rewritten in the privilege information 164 field.
  • the CPU 121 or the MMU 122 indicates that the memory access is illegal. Detect and deny access.
  • Privileged information 164 field of the page table 160 can access the pages of the ring 2 and the ring 3 in the software that is the main body operating on the CPU 121 that is the privileged state ring 2.
  • the privilege information 164 field can rewrite the contents of the page tables of the ring 2 and ring 3.
  • the CPU 121 or the MMU 122 may perform illegal memory access. Detects and denies access.
  • the privileged information 164 field of the page table 160 can access the page of the ring 3 by the software that is the main body operating on the CPU 121 that is the privileged state ring 3.
  • the privilege information 164 field can rewrite the contents of the page table of the ring 3.
  • the software that is the main body operating on the CPU 121 that is the privileged state ring 3 accesses the page of the ring 0, ring 1, and ring 2 in the privilege information 164 field of the page table 160, the CPU 121 or the MMU 122 is illegal. Detect memory access and deny access.
  • the secure VMM 100 is assigned to the ring 0
  • the management-dedicated OS 104 is assigned to the ring 1
  • the general-purpose OS 101 is assigned to the ring 2
  • the application operating on the general-purpose OS is assigned to the ring 3. Is assigned.
  • the privilege assignment method is not limited to the above-described ring assignment. Any other assignment method may be used as long as the privilege assigned to the general-purpose OS 101 and the application operating on the general-purpose OS can be controlled to be lower than the privilege assigned to the secure VMM 100 and the management-dedicated OS 104.
  • FIG. 22 is a sequence diagram showing application loading processing by the general-purpose OS.
  • the application loading process is started by a user instruction or the like through an interface not shown (S300).
  • the general-purpose OS 180 reads the file storing the application from the nonvolatile storage device 134 (S301).
  • the general-purpose OS 180 refers to the necessary memory size stored in the header file of the file, calculates the memory size allocated to the application, and secures the necessary memory area from the normal memory 123 (S302).
  • the general-purpose OS 180 creates a page table corresponding to the application (S303).
  • the general-purpose OS 180 loads the application program (code and data) from the file read in step S301 into the memory area secured in step S302 (S304).
  • the general-purpose OS 180 ends the application loading process (S305).
  • step S304 and step S305 may be performed in the reverse order.
  • FIG. 7 is a diagram illustrating an example of a page table and application operation performed by the general-purpose OS.
  • an application A 183 and an application B 184 are operating on the general-purpose OS 180.
  • General-purpose OS 180 causes application A 183 and application B 184 to operate by assigning CPUs to application A 183 and application B 184 in a time-sharing manner.
  • the general-purpose OS 180 switches between application A 183 and application B 184 in the above-described time-sharing operation.
  • the switching operation is realized by switching the page table corresponding to each application.
  • the general-purpose OS 180 holds the page table 181 corresponding to the application A 183 and the page table 182 corresponding to the application B 184, and executes the applications in a time-sharing manner.
  • management-dedicated OS 104 also switches the software operating on the management-dedicated OS 104 by performing the same page table operation.
  • FIG. 8 is a diagram illustrating an example of the operation of the page table and the software execution environment by the secure VMM.
  • a general-purpose OS 193 and a management-only OS 194 are operating on the secure VMM 190.
  • the secure VMM 190 operates the general-purpose OS 193 and the management-dedicated OS 194 by assigning CPUs to the general-purpose OS 193 and the management-dedicated OS 194 in a time-sharing manner.
  • the secure VMM 190 switches between the general-purpose OS 193 and the management-dedicated OS 194 in the above-described time-sharing operation.
  • the switching operation is realized by switching the current page table corresponding to each OS (software execution environment).
  • the current page table is a page table that each OS currently refers to the CPU 121.
  • the secure VMM 190 maintains a current page table 191 corresponding to the general-purpose OS 193 and a current page table 192 corresponding to the management-dedicated OS 194, and switches each OS (software execution environment). Run in time division.
  • the application on the general-purpose OS 101 makes a secure device processing request via the general-purpose OS 101 (S100).
  • the secure VMM 100 switches from the general-purpose OS 101 to the management-dedicated OS 104 using the above-described operation of the software execution environment.
  • the device access request determination unit 109 of the secure device driver 105 detects the above-described secure device processing request. Then, the device access request determination unit 109 makes a target application extraction request to the secure VMM 100 (S101).
  • the secure VMM 100 In response to the target application extraction request, the secure VMM 100 performs a target application extraction step and a target application lock step.
  • the operation application storage memory specifying unit 107 of the secure VMM 100 extracts the current page table of the general-purpose OS 101. Since the application operated by the general-purpose OS 101 is the application that issued the secure device processing request, the current page table is the page table of this application (S102).
  • the operation application memory lock unit 108 of the secure VMM 100 backs up the information stored in the current page table of the general-purpose OS 101 in the protection memory. Then, the operation application memory lock unit 108 changes all the write permission / non-permission information fields of the current page table of the general-purpose OS 101 to “non-permitted”. For example, when the above-described operation is performed on the page table 160 shown in FIG. 5, the page table is changed to the page table 300 shown in FIG. In the page table 300 after rewriting, the ring 3 in the field of the privilege information 164 of the page table 160 before rewriting is rewritten to the ring 0 as indicated by the privilege information 304 of the page table 300.
  • the fields of the write operation permission / non-permission information 165 of the page table 160 before rewriting are all set to “non-permitted” as indicated by the write permission / non-permission information 305 of the page table 300. Rewritten.
  • the privilege information field is changed to a ring number that cannot be changed by a privilege assigned to the general-purpose OS and an application operating on the general-purpose OS. Due to the change of the privilege information, the general-purpose OS and the application operating on the general-purpose OS return the write permission / non-permission information field from “not permitted” to “permitted” regardless of the original privilege information of the current page table. I can't do that. Therefore, an attack that allows the write permission / non-permission information field of the page table to be “permitted” by the general-purpose OS side and an application running on the general-purpose OS side to rewrite the memory space in which the application is loaded.
  • the main body that can rewrite the application that issued the secure device processing request by rewriting the field of the write permission / non-permission information 165 and the rewriting of the field of the privilege information from the main OS and the general-purpose OS. Eliminate virtual machines including all applications running on. Then, an application identification request is made to the application identification unit 106 (S103).
  • the application identification unit 106 In response to the application identification request, the application identification unit 106 performs an authenticator generation step and an application determination step.
  • the authenticator generator 111 of the application identification unit 106 refers to the logical address space using the extracted page table.
  • the authenticator generation unit 111 generates a hash value from a program stored in the referenced logical address space using a one-way function such as SHA1 (S104).
  • the application determination unit 112 of the application identification unit 106 checks whether or not the reference hash value held in advance matches the generated hash value. If they match, the application determination unit 112 determines that the application that issued the secure device processing request in S100 is a valid application. If they do not match, the application determination unit 112 determines that the application that issued the secure device processing request in S100 is an unauthorized application. The application determination unit 112 makes a device access control request to the secure device driver 105 using the above determination result (S105).
  • the device access control unit 110 of the secure device driver 105 permits access to the secure device when the above-described determination result is a valid application.
  • the device access control unit 110 rejects access to the secure device when the above-described determination result is an unauthorized application (S106).
  • the secure device driver 105 When the device access control unit 110 permits access to the secure device, the secure device driver 105 performs processing for the secure device (S107). Then, after the processing ends, the secure device driver 105 makes a target application lock release request to the secure VMM 100.
  • the operation application memory lock unit 108 of the secure VMM 100 performs a target application lock release step.
  • the operation application memory lock unit 108 resets the information of the current page table that has been backed up in the current page table of the general-purpose OS 101. Thereby, the write permission / non-permission information and privilege information of the page table return to the state before the target application lock step (S108).
  • the general-purpose OS 101 notifies the processing result of the secure device driver 105 to the application.
  • step S106 If it is determined in step S106 that access to the secure device is denied, the secure device driver 105 issues a target application lock release request to the secure VMM 100, and the operation application memory lock unit 108 of the secure VMM 100. Performs the same processing as step S108 described above. Then, the secure VMM 100 switches to the general-purpose OS 101. The general-purpose OS notifies the application of the processing result of the secure device driver 105.
  • FIG. 10 is a block diagram showing a software configuration of the information processing apparatus according to the second embodiment of the present invention.
  • FIG. 11 is a diagram illustrating a configuration in which the information processing apparatus and the application determination unit according to the second embodiment of the present invention are network-connected.
  • the difference in configuration between the information processing apparatus 120 according to the first embodiment and the information processing apparatus 220 according to the second embodiment is as follows.
  • the application identification unit 106 includes the application determination unit 112 that is a verification unit.
  • the application identification unit 206 of the information processing apparatus 220 according to the second embodiment is a verification unit. There is no app determination unit.
  • the application specifying unit 206 according to the second embodiment further includes a communication unit 212.
  • the information processing apparatus 220 is connected to the application determination server 221 via the network 222.
  • the application determination server 221 includes an application determination unit 223 that is a verification unit.
  • the application determination unit 112 compares and determines the hash value (authentication) generated by the authenticator generation unit 111 with the reference hash value (authentication).
  • the hash value (authenticator) generated by the authenticator generation unit 211 is used to determine the application via the network 222 using the network function (not shown). Send to server 221.
  • the application determination unit 223 of the application determination server 221 compares / determines the sent hash value (authenticator) and the hash value (authenticator) held in advance to determine whether the application is a valid application. Determine whether.
  • the application determination server determines whether the application is valid. Therefore, unlike Embodiment 1, there is no need for the information processing apparatus 220 to hold a hash value (authenticator) held in advance for use in the application determination step. Therefore, the storage area of the information processing apparatus 220 can be reduced.
  • FIG. 12 is a block diagram showing a software configuration of the information processing apparatus according to the third embodiment of the present invention.
  • FIG. 13 is a diagram illustrating a configuration in which an information processing apparatus, an application determination unit, and a service providing server according to Embodiment 3 of the present invention are connected to a network.
  • FIG. 14 is a diagram showing a device access control sequence according to the third embodiment of the present invention.
  • the difference in configuration between the information processing apparatus 120 according to the first embodiment and the information processing apparatus 250 according to the third embodiment is as follows.
  • the difference in hardware configuration between the first embodiment and the third embodiment is that the secure device is a network interface.
  • the device driver that controls the network interface is the network interface driver 235.
  • the application identification unit 106 includes the application determination unit 112 that is a verification unit.
  • the application identification unit 236 of the information processing apparatus 250 according to the third embodiment is a verification unit. There is no app determination unit.
  • the application specifying unit 236 according to Embodiment 3 newly includes a communication unit 241.
  • the network interface driver 235 according to the third embodiment does not include a device access control unit that is an execution unit.
  • the information processing apparatus 250, the application determination server 251 and the service providing server 252 of the third embodiment are connected to each other via the network 253.
  • the application determination server 251 includes an application determination unit 254 that is a verification unit.
  • the service provision server 252 includes a service provision unit 255 and a service provision determination unit 256 as execution units.
  • the service providing unit 255 as an execution unit provides services such as content distribution to the information processing apparatus 250.
  • the service provision determination unit 256 determines whether or not the information processing apparatus 250 can provide a service.
  • a secure device processing request (S200), a processing request detection step (S201), a target application extraction step (S202), a target application lock step (S203), and an authenticator generation step (S204) performed by the information processing apparatus 250. Since the target application lock releasing step (S209) has the same processing contents as the steps in the first embodiment, the description thereof is omitted.
  • the communication unit 241 sends the generated hash value (authenticator) to the application determination server 251 via the network 253.
  • the application determination unit 254 of the application determination server 251 compares / determines the sent hash value (authenticator) and the previously stored hash value (authenticator) to determine whether the application is a valid application. Determine whether. Then, the application determination unit 254 sends the above determination result to the service providing server 252 via the network 253 (S206).
  • the service provision determination unit 256 of the service provision server 252 receives the transmitted determination result.
  • the service provision determination unit 256 instructs the service provision unit 255 to provide the service to the information processing apparatus 250.
  • the service providing unit 255 instructed to provide the service provides the information processing apparatus 250 via the network 253 (S208).
  • the service provision determination unit 256 notifies the information processing apparatus 250 of information indicating that the request has failed (S208).
  • the application determination server 251 and the service providing server 252 may be the same server.
  • the application determination server 251 and the service providing server 252 may be connected via a dedicated network to which the information processing apparatus 250 is not connected.
  • the application determining server 251 notifies the service providing server 252 of the determination result via the dedicated network.
  • the service providing server determines whether or not to provide a service to the information processing apparatus. Therefore, there is an effect that the service provider can check the software via the network.
  • FIG. 15 is a block diagram showing a software configuration of the information processing apparatus according to the fourth embodiment of the present invention.
  • FIG. 16 is a diagram showing a device access control sequence according to the fourth embodiment of the present invention.
  • the difference in configuration between the information processing apparatus 120 according to the first embodiment and the information processing apparatus according to the fourth embodiment is as follows.
  • the secure device driver 105 includes the device access request determination unit 109 as a detection unit and the device access control unit 110 as an execution unit.
  • the secure device driver 265 does not include a device access request determination unit as a detection unit and a device access control unit as an execution unit.
  • the secure VMM 260 according to the fourth embodiment includes a device access request determination unit 269 as a detection unit and a device access control unit 270 as an execution unit.
  • the processing request detection step (S101) and the device processing determination step (S106) are realized by the secure device driver 105.
  • the processing request detection step (S211) and the device processing determination step (S216) are realized by the secure VMM 260.
  • the device access request determination unit 269 and the device access control unit 270 exist inside the secure VMM 260 and do not exist inside the secure device driver 265. Therefore, there is an effect that the information processing apparatus according to the fourth embodiment can be operated without modifying the secure device driver.
  • FIG. 17 is a block diagram showing a software configuration of the information processing apparatus according to the fifth embodiment of the present invention.
  • FIG. 18 is a diagram showing a device access control sequence according to the fifth embodiment of the present invention.
  • the difference in configuration between the information processing apparatus 120 according to the first embodiment and the information processing apparatus according to the fifth embodiment is as follows.
  • the application identification unit 106 includes the authenticator generation unit 111 as a verification unit.
  • the application identification unit 286 according to the fifth embodiment generates an authenticator as a verification unit. Does not have a part.
  • the secure VMM 280 of the fifth embodiment includes an authenticator generation unit 289 as a verification unit.
  • the authenticator generation step (S104) is realized by the application specifying unit 106.
  • the authenticator generation step (S224) is realized by the secure VMM 280.
  • the authenticator generation unit 289 exists in the secure VMM 280 and does not exist in the application identification unit 286. Therefore, information notification from the operation application storage memory specifying unit 287 to the authenticator generation unit 289 can be realized in the same module (secure VMM 280). Therefore, there is an effect that information notification from the operation application storage memory specifying unit 287 to the authenticator generation unit 289 can be performed at higher speed.
  • the processing request detection step may perform the detection operation only for the device initialization operation.
  • whether or not to detect the processing request detection step may be determined at random based on a random number.
  • whether or not to detect the processing request detection step may be switched based on the number of device accesses. For example, when the secure device driver is accessed 10 times, an operation of detecting may be performed.
  • a one-way function other than SHA1 may be used in generating the hash value in the authenticator generation step.
  • MD5 SHA256, AES, or DES may be used.
  • the hash value in generating the hash value in the authenticator generation step, may be generated using only a part of the logical address space. For example, a hash value of only the application code area may be generated.
  • a plurality of hash values may be generated in the generation of the hash value in the authenticator generation step.
  • the logical memory space may be divided and a hash value may be generated for each divided area.
  • the application determination unit may determine that only an application having a specific application license is an unauthorized application.
  • the CPU may be a CPU having a protection mode and a normal mode. Furthermore, only the CPU in the protection mode may be able to access the protection memory.
  • the protection memory and the secure device are controlled so that only the software stored in the protection memory can be accessed, but the means may be realized by hardware.
  • the bus may be controlled so that the protection memory and the secure device can be accessed from the CPU only when a program on the protection memory is operating.
  • the normal memory and the protection memory may be the same memory.
  • the non-volatile storage device may store a general-purpose OS.
  • the general-purpose OS is loaded on the normal memory by a special firmware (program) called BIOS (Basic Input Output System) or IPL (Initial Program Loader).
  • BIOS Basic Input Output System
  • IPL Intelligent Program Loader
  • the nonvolatile storage device may store a secure device driver, an application specifying unit, a management-dedicated OS, and a secure VMM.
  • a cryptographic algorithm such as a secret key cryptosystem such as AES cryptography or an asymmetric key cryptography such as RSA cryptography
  • the secure device driver, the application identifying unit, the management OS, and the secure VMM are encrypted. It is stored in the form. Each module is decrypted, loaded onto the protected memory, and executed.
  • the secure VMM may be stored in the normal memory.
  • a falsification detection program (not shown) stored in the protection memory may detect falsification of the secure VMM.
  • the tamper detection of the secure VMM described above may be performed when the secure VMM is loaded into the normal memory, the tamper detection may be performed periodically, or may be performed irregularly based on a random number, You may perform based on some trigger.
  • the secure VMM may be stored in the normal memory.
  • a falsification detection program (not shown) stored in a read-only storage device (ROM) inside the information processing apparatus may detect falsification of the secure VMM.
  • the above-described alteration detection of the secure VMM may be performed when the secure VMM is loaded into the normal memory, the alteration detection may be performed periodically, or may be performed irregularly based on a random number, You may perform based on some trigger.
  • the privileged state of the CPU is realized by using the ring mechanism of the CPU, but other methods may be used.
  • a CPU virtualization domain management domain and general-purpose domain
  • a mechanism that supports complete virtualization may be used.
  • the general-purpose OS manages the page table of the application, but other methods may be used.
  • the secure VMM may manage the page table using shadow paging of OS virtualization technology.
  • the secure VMM refers to the page table for each application managed by the general-purpose OS as the current page table. More specifically, the pointer pointing to the current page table is connected to the page table corresponding to the application currently being processed among the page tables managed by the general-purpose OS.
  • the secure VMM itself makes a copy of the page table managed by the general-purpose OS every time the application to be operated is switched. In this case, since the memory access control is performed based on the page table held by the secure VMM, the secure VMM performs the same processing as the current page table in the above-described embodiment on the page table copied by itself. If you do.
  • the information processing apparatus may send information for identifying the information processing apparatus together with the hash value (authenticator) to the application determination server.
  • a safe communication path may be used between the information processing apparatus and the application determination server.
  • SSL may be used.
  • the information sent from the information processing apparatus to the application determination server may be protected using a digital signature.
  • a digital signature may be created for information to be sent using a TPM (Trusted Computing Group) TPM (Trusted Platform Module), and the electronic signature may be sent to the application determination server.
  • TPM Trusted Computing Group
  • TPM Trusted Platform Module
  • the information processing apparatus and the application determination server may perform challenge / response processing to perform mutual authentication.
  • the CPU can access all the entries in the page table corresponding to privilege information whose level is lower than that of its own privilege state.
  • the privilege state and the privilege information may be associated with each other on a one-to-one basis, and when the ring 3 is in the privilege state, only the entry having the privilege information of the ring 3 may be accessed.
  • the system LSI may be referred to as IC, LSI, super LSI, or ultra LSI depending on the degree of integration, but the case where the system LSI is realized at any of the above integration levels is also included in the present invention. Needless to say. Further, an FPGA (Field Programmable Gate Array) that can be programmed after manufacturing the LSI, or a reconfigurable processor that can reconfigure the connection and setting of circuit cells inside the LSI may be used.
  • FPGA Field Programmable Gate Array
  • the present invention provides a recording medium capable of reading the computer program or the digital signal, such as a flexible disk, a hard disk, a CD-ROM, an MO, a DVD, a DVD-ROM, a DVD-RAM, a BD (Blu). -RayDisc), or recorded in a semiconductor memory or the like. Further, the digital signal may be recorded on these recording media.
  • a recording medium capable of reading the computer program or the digital signal, such as a flexible disk, a hard disk, a CD-ROM, an MO, a DVD, a DVD-ROM, a DVD-RAM, a BD (Blu). -RayDisc), or recorded in a semiconductor memory or the like.
  • the digital signal may be recorded on these recording media.
  • a logical memory space in which an application is stored is locked, and a hash value is generated and determined to prevent device access of an unauthorized application due to application replacement. Has an effect. For this reason, there is an effect of preventing the operation of an unauthorized application in data processing for processing a secure device.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)

Abstract

 本発明は、デバイスアクセス要求を実際に行ったアプリケーションに対して、正当性を確認する情報処理装置を提供することを目的とする。  上記目的を達成するために、本発明は、汎用OS上のアプリケーション102が、セキュアデバイスドライバ105に処理要求を行った際に、セキュアVMM100と管理専用OS104上のアプリ特定部106が、前記アプリケーション102のページテーブルをロックし、前記ページテーブルを参照してハッシュ値を生成する。前記生成したハッシュ値と参照ハッシュ値とを比較して、正当なアプリケーションか否かを判定する。

Description

情報処理装置及びその制御方法
 本発明は、所定のアプリケーションが動作する仮想マシンを管理する仮想マシンモニタを有する情報処理装置及びその制御方法に関するものである。
技術背景
 近年、民生機器では、音楽データをディジタル化して記憶装置に取り込み、音楽を楽しむということが行われるようになっている。また、音楽データの取り扱いのみならずHigh Definition(HD)画像など、より表現能力が高いコンテンツの取り扱いが民生機器に求められるようになっている。
 ここで、ディジタル化された音楽データや上記HD画像等は、劣化なしで複製することが可能である。そこで、著作権者の利益を保護するために、これらのコンテンツは不正な複製等から保護されて取り扱われなければならない。
 そのため、これらのコンテンツは、CPRM(Content Protection Recoding Media)やAACS(Advanced Access Content System)などの著作権保護技術で保護されている。それら、著作権保護技術では、コンテンツを暗号化することによって保護しており、それらのコンテンツをユーザが利用するには、著作権保護技術に対応する端末でデータの復号を行う必要がある。
 著作権保護技術に対応した端末では、暗号化されたコンテンツに対して復号処理を実施する暗号エンジンなどのセキュアデバイスを備えている。そのセキュアデバイスは不正な処理によって、復号が許可されていないコンテンツの復号を行わないように正しく操作される必要がある。
 前述のセキュアデバイス操作を行うプログラムが正当であるか否かを判定する技術として、改ざん検出がある(例えば、特許文献1)。
 特許文献1は、データを扱うプログラムが正当であるか否かを検出する技術であり、図19を用いて簡単に説明を行う。図19は、特許文献1のシーケンスを示す図である。
 まず、ユーザなどの操作によって、処理が開始される(S410)。
 次に、プログラムが入力データに対して処理を行い、処理済み情報を出力する(S411)。
 次に、前述のプログラムに対して、ハッシュ関数を用いて、ハッシュ値(認証子)を作成する(S412)。
 次に、図示していない検証部に、前述の処理済み情報と前述のハッシュ値(認証子)とを送付し、検証部が、送付されたハッシュ値(認証子)が、予め保持しているハッシュ値と一致するか否か判定する。一致する場合には、ハッシュ値に対応するプログラムが正当であると判断する(S413)。
 そして、処理を終了する(S414)。
 また、端末のデバイスが扱うデータを、適切に処理する技術として、例えば特許文献2がある。図20と図21を用いて簡単に説明を行う。
 図20は、特許文献2のソフトウェア構成図を示す図である。
 特許文献2のソフトウェアは、VMM(Virual Machine Monitor、仮想マシンモニタ)400と、汎用OS401とネットワーク対応アプリ402と、汎用OS NICプロキシ403と、リアルタイムOS404と、リアルタイムNICプロキシ405と、リアルタイムUDP/IP406と、NICドライバ407と、から構成される。
 VMM400は、OS仮想化機能を提供する。汎用OS401とリアルタイムOS404は、VMM400が提供する仮想化されたハードウェア上で動作するオペレーティングシステムである。
 ネットワーク対応アプリ402は、ネットワーク処理を行う場合には、汎用OS NICプロキシ403にネットワーク処理を依頼する。そして、汎用OS NICプロキシ403は、リアルタイムNICプロキシ405に処理を依頼する。そして、リアルタイムNICプロキシ405は、リアルタイムUDP/IP406に処理を依頼する。リアルタイムUDP/IP406は、NICドライバ407を利用して、図示していないネットワークインターフェースカード(NIC、Network Interface Card)を制御する。
 また、リアルタイムUDP/IP406が、ネットワーク処理を行う場合にも、NICドライバ407を利用してネットワークインターフェースカード(NIC、Network Interface Card)を制御する。
 図21は、ネットワークインターフェースカードからパケットデータ到着通知を受け取った場合のシーケンスを示す図である。
 パケットデータの到着を検知したNICから、パケットデータ到着通知が割り込みの信号などによって通知される(S400)。
 次に、NICドライバ407が、ネットワークインターフェースカードからデータを取得する。そして、リアルタイムUDP/IP406に、パケットデータを送付する(S401)。
 リアルタイムUDP/IP406は、パケットデータのポート領域に格納された番号が、リアルタイムOS側のソフトウェアで使用するポートの番号であるか否か判定する。前述の番号が、リアルタイムOS側のソフトウェアで使用するポートの番号である場合には、S403に遷移する。前述の番号が、リアルタイムOS側のソフトウェアで使用する番号でない場合には、S404に遷移する(S402)。
 S403では、リアルタイムUDP/IP406は、パケットデータをリアルタイムOS側の適切なソフトウェアに送付し、S405に遷移する(S403)。
 ステップS404では、リアルタイムUDP/IP406は、パケットデータを、リアルタイムNICプロキシ405を経由して、汎用OS NICプロキシ403に送付する。汎用OS NICプロキシ403は、ネットワーク対応アプリ402にパケットデータを送付する(S404)。
 そして、処理を終了する(S405)。
特開2003―186561号公報(第8頁、図1等) 特表2007―500381号公報(第17頁、図1等)
 しかし、上記説明した従来技術では、以下のような問題が生じている。
 即ち、特許文献1の手法は、プログラムに対してハッシュ演算を行って、正当なプログラムであるか否かを判定する。
 しかしながら、この手法では、不正なプログラムと正当なプログラムを差し替えることで、不正なプログラムが動作する場合でも、正当なプログラムであると判定されるという課題がある。
 図19を用いて、前述の課題を簡単に説明する。
 まず、S411で、不正なプログラムが処理を行う。そして、S411からS412に遷移する前に、不正なプログラムと正当なプログラムを差し替える。そして、S412に遷移する。
 S412では、差し替えられた正当なプログラムに対してハッシュ値(認証子)を生成する。そのため、正しいプログラムによる処理が行われたと判断されてしまう。
 また、特許文献2の手法は、デバイスが扱うデータを、リアルタイムOS側のソフトウェアか、または汎用OS側のソフトウェアかの、いずれで処理を行うかを判定するのみであり、アプリが正当なものであるかの確認は行っていない。
 そのため、ネットワーク対応アプリ402がSSL(Secure Sokect Layer)等の安全な通信方式を用いなければならない場合であっても、不正なソフトが、汎用OS401上で動作して、SSLなしで通信を行うことが可能であるという課題がある。
 本発明は、前述の課題を解決するものであり、所定のアプリケーションの正当性を判断した後に前記所定のアプリケーションが別の不正なアプリケーションに書換え、前記不正なアプリケーションによりデバイスが制御されるのを防止できる情報処理装置及びその制御方法を提供することを目的とする。
 前記従来の課題を解決するために、本発明に係る情報処理装置は、所定のデバイスにアクセスする所定のアプリケーションが動作するワークエリア上に前記所定のアプリケーションを書換え可能なものとして管理する仮想マシンと、前記所定のアプリケーションを用いた所定のデバイスへのアクセス要求を前記仮想マシンから検出する検出部と、前記所定のアプリケーションの正当性を検証する検証部と、前記仮想マシン、前記検証部及び前記検出部を管理する仮想マシンモニタと、を具備し、前記検出部は前記アクセス要求を検出するとその旨を前記仮想マシンモニタに通知し、前記仮想マシンモニタは前記ワークエリア上の前記所定のアプリケーションを書換え不可能なものと管理し直してその旨を前記検証部に通知し、前記検証部は前記仮想マシンモニタからの通知を受けると前記所定のアプリケーションが正当であるか否かを判断するものである。
 このような構成により、本発明の情報処理装置は、前記仮想マシンモニタが前記ワークエリアに前記所定のアプリケーションを書換え不可能なものと管理し直した後に前記検証部が前記所定のアプリケーションが正当であるか否かを判断することにより、前記検証部が前記所定のアプリケーションの正当性を検証する前に前記所定のアプリケーションを書換え不可能に管理するので、前記検証部が前記所定のアプリケーションが正当なものと判断した後に前記所定のアプリケーションがワークエリア上で別の不正なアプリケーションに書き換えられるのを防止できる。
 本発明の請求項1に記載の情報処理装置は、所定のデバイスにアクセスする所定のアプリケーションをワークエリア上で動作させる仮想マシンと、前記所定のアプリケーションを用いた所定のデバイスへのアクセス要求を前記仮想マシンから検出する検出部と、前記所定のアプリケーションの正当性を検証する検証部と、前記仮想マシン、前記検証部及び前記検出部を管理し、前記ワークエリア上で動作する所定のアプリケーションを書き換え可能に管理する仮想マシンモニタと、を具備し、前記検出部は前記アクセス要求を検出するとその旨を前記仮想マシンモニタに通知し、前記仮想マシンモニタは前記ワークエリア上の前記所定のアプリケーションを書換え不可能なものと管理し直してその旨を前記検証部に通知し、前記検証部は前記仮想マシンモニタからの通知を受けると前記所定のアプリケーションが正当であるか否かを判断するものである。
 本発明によると、前記仮想マシンモニタが前記ワークエリアに前記所定のアプリケーションを書換え不可能なものと管理し直した後に前記検証部が前記所定のアプリケーションが正当であるか否かを判断することにより、前記検証部が前記所定のアプリケーションの正当性を検証する前に前記所定のアプリケーションを書換え不可能に管理するので、前記検証部が前記所定のアプリケーションが正当なものと判断した後に前記所定のアプリケーションがワークエリア上で別のアプリケーションに書き換えられるのを防止できる。
 また、本発明の請求項2記載の情報処理装置は、請求項1記載の情報処理装置において、前記検証部が前記所定のアプリケーションが正当であると判断した場合、前記所定のアプリケーションを用いて所定のデバイスにアクセスする実行部を設けたものである。
 本発明によると、前記仮想マシンモニタが前記ワークエリアに前記所定のアプリケーションを書換え不可能なものと管理し直した後に、前記所定のアプリケーションが正当であるか否かを判断し、前記所定のアプリケーションを用いた所定のデバイスへのアクセスを実行することにより、前記検証部が前記所定のアプリケーションの正当性を検証する前に前記所定のアプリケーションを書換え不可能に管理するので、前記検証部が前記所定のアプリケーションが正当なものと判断した後に前記所定のアプリケーションがワークエリア上で別の不正なアプリケーションに書き換えられて、この不正なアプリケーションを用いて所定のデバイスがアクセスされるのを防止できる。
 また、本発明の請求項3記載の情報処理装置は、請求項2記載の情報処理装置において、前記仮想マシンモニタは、前記実行部が前記所定のアプリケーションを用いた所定のデバイスへのアクセスを終了した後、前記所定のアプリケーションを書換え可能なものに管理を戻すものである。
 本発明によると、前記仮想マシンモニタに、前記実行部が前記所定のアプリケーションを用いた所定のデバイスへのアクセスを終了した後、前記所定のアプリケーションを書換え可能なものに管理を戻させることにより、前記所定のアプリケーションによるアクセスが終了した後は前記所定のアプリケーションをワークエリアから消去できるので、処理後のアプリケーションによりワークエリアが無駄に占有されるのを防止できる。
 また、本発明の請求項4記載の情報処理装置は、請求項1記載の情報処理装置において、前記仮想マシンモニタは、前記ワークエリアに前記所定のアプリケーションに対応する管理情報を管理し、前記管理情報は前記管理情報を書換える権限を有する主体を示す特権情報を含み、前記所定のアプリケーションの書換え可能な主体が前記仮想マシンを含む旨を前記特権情報が示している場合、前記所定のアプリケーションの書換え可能な主体から前記仮想マシンを排除するように前記特権情報を書き換えることで、前記所定のアプリケーションを書換え不可能なものと管理するものである。
 本発明によると、前記仮想マシンにより書換え可能な管理情報を、前記仮想マシンモニタが前記管理情報の中の特権情報を書換えることにより、前記仮想マシンによる前記所定のアプリケーションの書換えを不可能なものとするので、一旦前記仮想マシンモニタが前記特権情報を書換えると、前記仮想マシンモニタの方で前記仮想マシンによる前記管理情報の書換えを禁止できる。その結果、前記検証部が前記所定のアプリケーションが正当なものか否かを判断した後に前記所定のアプリケーションがワークエリア上で別のアプリケーションに書き換えられるのを確実に防止できる。
 また、前記仮想マシンモニタは、前記管理情報の中の一部の情報である特権情報を書き換えることにより、前記所定のアプリケーションの書換え可能な主体から前記仮想マシンを排除するので、簡易に前記仮想マシンモニタの方で前記仮想マシンによるワークエリア上で動作するアプリケーションの書換えを禁止できる。 さらに、前記管理情報の中の特権情報という既存の情報を書き換えることにより、前記仮想マシンによる前記管理情報の書換えを禁止するための別のデータ構造を不要とするので、書換え禁止にするための構成をシンプルにできる。
 また、本発明の請求項5記載の情報処理装置は、請求項4記載の情報処理装置において、前記仮想マシンモニタは、前記所定のアプリケーションの書換え可能な主体を前記仮想マシン及び前記仮想マシンモニタを含む情報から、前記所定のアプリケーションの書換え可能な主体を前記仮想マシンモニタに制限する情報に前記特権情報を書き換えることで、前記所定のアプリケーションの書換え可能な主体から前記仮想マシンを排除するものである。
 本発明によると、前記所定のアプリケーションの書換え可能な主体を前記仮想マシン及び前記仮想マシンモニタを含む情報から、前記所定のアプリケーションの書換え可能な主体を前記仮想マシンモニタに制限する情報に前記特権情報を書き換えることにより、前記所定のアプリケーションの書換え可能な主体から前記仮想マシンを排除するので、簡易に前記仮想マシンによるワークエリア上で動作するアプリケーションの書換えを禁止できる。
 また、本発明の請求項6記載の情報処理装置は、請求項1記載の情報処理装置において、前記所定のデバイスは、SDカードとしたものである。
 また、本発明の請求項7記載の情報処理装置は、請求項1記載の情報処理装置において、前記所定のデバイスは、前記情報処理装置にコンテンツを提供する外部のコンテンツサーバとしたものである。
 また、本発明の請求項8記載の情報処理装置は、所定のデバイスにアクセスする前記所定のアプリケーションをワークエリア上で動作させる仮想マシンと、前記所定のアプリケーションを用いた所定のデバイスへのアクセス要求を前記仮想マシンから検出する検出部と、前記仮想マシン及び前記検出部を管理し、前記ワークエリア上で動作する所定のアプリケーションを書き換え可能に管理する仮想マシンモニタと、を具備し、前記検出部は前記アクセス要求を検出するとその旨を前記仮想マシンモニタに通知し、前記仮想マシンモニタは前記ワークエリア上の前記所定のアプリケーションを書換え不可能なものと管理し直して、その旨を検証部を備える外部装置に通知し、前記外部装置の検証部に前記所定のアプリケーションが正当であるか否かの判断を行わせることを特徴としたものである。
 本発明によると、前記検証部は、前記情報処理装置の内部ではなく、前記情報処理装置の外部装置に含まれるものであってもよい。
 また、本発明の請求項9記載の情報処理装置は、所定のデバイスにアクセスする所定のアプリケーションをワークエリア上で動作させる仮想マシンと、前記所定のアプリケーションを用いた所定のデバイスへのアクセス要求を前記仮想マシンから検出する検出部と、前記仮想マシン及び前記検出部を管理し、前記ワークエリア上で動作する所定のアプリケーションを書き換え可能に管理する仮想マシンモニタと、サービスを提供する実行部を備える外部装置と通信する通信部と、を具備し、前記検出部は前記アクセス要求を検出するとその旨を前記仮想マシンモニタに通知し、前記仮想マシンモニタは前記ワークエリア上の前記所定のアプリケーションを書換え不可能なものと管理し直し、前記通信部は、前記所定のアプリケーションが書換え不可能なものと管理し直された後に正当なものであると判断された場合に、前記外部装置の実行部から前記サービスの提供を受けることを特徴としたものである。
 本発明によると、前記実行部は、前記情報処理装置の内部ではなく、前記情報処理装置の外部装置に含まれるものであってもよい。
 また、本発明の請求項10に記載の情報処理装置の制御方法は、所定のデバイスにアクセスする所定のアプリケーションをワークエリア上で動作させる仮想マシンと、前記所定のアプリケーションを用いた所定のデバイスへのアクセス要求を前記仮想マシンから検出する検出部と、前記所定のアプリケーションの正当性を検証する検証部と、前記仮想マシン、前記検証部及び前記検出部を管理する仮想マシンモニタと、を具備した情報処理装置において、前記検出部は前記アクセス要求を検出するとその旨を前記仮想マシンモニタに通知し、前記仮想マシンモニタは前記ワークエリア上の前記所定のアプリケーションを書換え不可能なものと管理し直してその旨を前記検証部に通知し、前記検証部は前記仮想マシンモニタからの通知を受けると前記所定のアプリケーションが正当であるか否かを判断するようにしたものである。
 本発明によると、前記仮想マシンモニタが前記ワークエリアに前記所定のアプリケーションを書換え不可能なものと管理し直した後に前記検証部が前記所定のアプリケーションが正当であるか否かを判断することにより、前記検証部が前記所定のアプリケーションの正当性を検証する前に前記所定のアプリケーションを書換え不可能に管理するので、前記検証部が前記所定のアプリケーションが正当なものと判断した後に前記所定のアプリケーションがワークエリア上で別の不正なアプリケーションに書き換えられるのを防止できる。
 また、本発明の請求項11に記載の情報処理装置の制御プログラムは、所定のデバイスにアクセスする所定のアプリケーションをワークエリア上で動作させる仮想マシンと、前記所定のアプリケーションを用いた所定のデバイスへのアクセス要求を前記仮想マシンから検出する検出部と、前記所定のアプリケーションの正当性を検証する検証部と、前記仮想マシン、前記検証部及び前記検出部を管理する仮想マシンモニタと、を具備した情報処理装置の制御プログラムであって、前記検出部が前記アクセス要求を検出すると、その旨を前記仮想マシンモニタに通知するステップと、前記仮想マシンモニタに、前記ワークエリア上の前記所定のアプリケーションを書換え不可能なものと管理し直させ、その旨を前記検証部に通知させるステップと、前記仮想マシンモニタからの通知を受けた前記検証部に、前記所定のアプリケーションが正当であるか否かを判断させるようにしたものである。
 本発明によると、前記仮想マシンモニタが前記ワークエリアに前記所定のアプリケーションを書換え不可能なものと管理し直した後に前記検証部が前記所定のアプリケーションが正当であるか否かを判断することにより、前記検証部が前記所定のアプリケーションの正当性を検証する前に前記所定のアプリケーションを書換え不可能に管理するので、前記検証部が前記所定のアプリケーションが正当なものと判断した後に前記所定のアプリケーションがワークエリア上で別の不正なアプリケーションに書き換えられるのを防止できる。
 また、本発明の請求項12に記載の情報処理装置の集積回路は、所定のデバイスにアクセスする所定のアプリケーションをワークエリア上で動作させる仮想マシンと、前記所定のアプリケーションを用いた所定のデバイスへのアクセス要求を前記仮想マシンから検出する検出部と、前記所定のアプリケーションの正当性を検証する検証部と、前記仮想マシン、前記検証部及び前記検出部を管理する仮想マシンモニタと、を具備し、前記検出部は前記アクセス要求を検出するとその旨を前記仮想マシンモニタに通知し、前記仮想マシンモニタは前記ワークエリア上の前記所定のアプリケーションを書換え不可能なものと管理し直してその旨を前記検証部に通知し、前記検証部は前記仮想マシンモニタからの通知を受けると前記所定のアプリケーションが正当であるか否かを判断するようにしたものである。
 本発明によると、前記仮想マシンモニタが前記ワークエリアに前記所定のアプリケーションを書換え不可能なものと管理し直した後に前記検証部が前記所定のアプリケーションが正当であるか否かを判断することにより、前記検証部が前記所定のアプリケーションの正当性を検証する前に前記所定のアプリケーションを書換え不可能に管理するので、前記検証部が前記所定のアプリケーションが正当なものと判断した後に前記所定のアプリケーションがワークエリア上で別の不正なアプリケーションに書き換えられるのを防止できる。
本発明の実施の形態1のソフトウェア構成を示すブロック図である。 本発明の実施の形態1のハードウェア構成を示すブロック図である。 本発明の実施の形態1の情報処理装置の物理メモリ空間を示す図である。 本発明の実施の形態1の仮想物理メモリ空間と論理メモリ空間との対応関係の一例を示す図である。 本発明の実施の形態1のページテーブルのデータ構造の一例を示す図である。 本発明の実施の形態1のCPUが、通常メモリ及び保護メモリへアクセスを行った場合のアクセス制御を示す図である。 本発明の実施の形態1の汎用OSによるページテーブルとアプリケーションの操作の一例を示す図である。 本発明の実施の形態1のセキュアVMMによるページテーブルとソフト実行環境の操作の一例を示す図である。 本発明の実施の形態1の不正アプリケーションによる、セキュアデバイスアクセス防止を示すシーケンス図である。 本発明の実施の形態2のソフトウェア構成を示す図である。 本発明の実施の形態2の情報処理装置とアプリ判定サーバとがネットワーク接続された構成を示す図である。 本発明の実施の形態3のソフトウェア構成を示す図である。 本発明の実施の形態3の情報処理装置とアプリ判定サーバとサービス提供サーバとがネットワーク接続された構成を示す図である。 本発明の実施の形態3の不正アプリケーションによる、セキュアデバイスアクセス防止を示すシーケンス図である。 本発明の実施の形態4のソフトウェア構成を示す図である。 本発明の実施の形態4の不正アプリケーションによる、セキュアデバイスアクセス防止を示すシーケンス図である。 本発明の実施の形態5のソフトウェア構成を示す図である。 本発明の実施の形態5の不正アプリケーションによる、セキュアデバイスアクセス防止を示すシーケンス図である。 従来のプログラムの正当性を確認するシーケンス図 従来のOS仮想化実行環境における、データを適切に実行環境ごとに処理するソフトウェア構成を示す図である。 従来のOS仮想化実行環境における、データを適切に実行環境ごとに処理するシーケンス図である。 汎用OS上のアプリケーションをロードするシーケンス図である。 本発明の実施の形態1のページテーブルのデータ構造の書換え後一例を示す図である。
符号の説明
 100、133、190、200、230、260、280 セキュアVMM
 101、129、180、201、231、261、281、401 汎用OS
 102、103、127、128、183、184、202、203、232、233、262、263、282、283 アプリケーション
 104、132、204、234、264、284 管理専用OS
 105、130、205、265、285 セキュアデバイスドライバ
 106、131、206、236、266、286 アプリ特定部
 107、207、237、267、287 動作アプリ格納メモリ特定部
 108、208、238、268、288 動作アプリメモリロック部
 109、209、239、269、290 デバイスアクセス要求判定部
 110、210、270、291 デバイスアクセス制御部
 111、211、240、271、289 認証子生成部
 112、223、254、272、292 アプリ判定部
 120、220、250 情報処理装置
 121 CPU
 122 MMU
 123、141、151 通常メモリ
 124、143 保護メモリ
 125 バス
 126 セキュアデバイス
 134 不揮発性記憶装置
 140 情報処理装置の物理メモリ空間
 142、144、152 予約領域
 150 セキュアVMMによって、汎用OSに割り当てられた仮想物理メモリ空間
 135、136、153、160、181、182、300 ページテーブル
 154 アプリケーションの論理メモリ空間
 161、301 ページ番号のフィールド
 162、302 論理アドレス番号のフィールド
 163、303 仮想物理アドレス番号のフィールド
 164、304 特権情報のフィールド
 165、305 書込み操作許可・不許可情報のフィールド
 166、306 読込み操作許可・不許可情報のフィールド
 167、307 その他の情報のフィールド
 170 通常メモリ及び保護メモリへアクセスを行った場合のアクセス制御を示すテーブル
 191 汎用OSが管理するカレントページテーブル
 192 管理専用OSが管理するカレントページテーブル
 193 汎用OSと動作中のアプリケーション
 194 管理専用OSと動作中の管理専用OS上のアプリケーション
 212、241 通信部
 221、251 アプリ判定サーバ
 222、253 ネットワーク
 235 ネットワークインターフェースドライバ
 252 サービス提供サーバ
 255 サービス提供部
 256 サービス提供判定部
 400 VMM
 402 ネットワーク対応アプリ
 403 汎用OS NICプロキシ
 404 リアルタイムOS
 405 リアルタイムNICプロキシ
 406 リアルタイムUDP/IP
 407 NICドライバ
以下に、本発明の実施の形態について、図面を参照しながら説明を行う。
 (実施の形態1)
 <実施の形態1のソフトウェアの構成の説明>
 図1は、本発明の実施の形態1に関わるソフトウェア構成を示す図である。
 実施の形態1の情報処理装置は、仮想マシンモニタであるセキュアVMM100と、汎用OS101と、アプリケーションA 102と、アプリケーションB 103と、管理専用OS104と、検出部であるデバイスアクセス要求判定部109及び実行部であるセキュアアクセス制御部110を含むセキュアデバイスドライバ105と、検証部であるアプリ特定部106と、から構成される。仮想マシンは、汎用OS101と、アプリケーションA102と、アプリケーションB103を含む。
 セキュアVMM100は、OS仮想化機能を提供する。汎用OS101と管理専用OS104は、セキュアVMM100が提供する仮想化されたハードウェア上で動作するオペレーティングシステムである。
 セキュアVMM100は、動作アプリ格納メモリ特定部107と、動作アプリメモリロック部108とを備える。
 アプリケーションA 102とアプリケーションB 103は、ユーザに対してサービスを提供するアプリケーションであり、必要に応じて、図示していないセキュアデバイスにアクセスする。
 セキュアデバイスドライバ105は、図示してないセキュアデバイスを制御するデバイスドライバであり、デバイスアクセス要求判定部109と、デバイスアクセス制御部110を備える。
 アプリ特定部106は、認証子生成部111と、アプリ判定部112を備える。
 <セキュアVMMの構成要素の説明>
 動作アプリ格納メモリ特定部107は、図示していないセキュアデバイスへのアクセスを行う汎用OS101上のアプリケーションを特定する。詳細は後述する。
 動作アプリメモリロック部108は、図示していないセキュアデバイスへのアクセスを行う汎用OS101上のアプリケーションに対応するページテーブルに対して、制御を行う。詳細は後述する。
 <セキュアデバイスドライバの構成要素の説明>
 デバイスアクセス要求判定部109は、図示していないセキュアデバイスへのアクセス要求を検出する。詳細は後述する。
 デバイスアクセス制御部110は、図示していないセキュアデバイスへのアクセス制御を行う。詳細は後述する。
 <アプリ特定部の構成要素の説明>
 認証子生成部111は、図示していないセキュアデバイスに対して、汎用OS101上のアプリケーションの認証子を生成する。詳細は後述する。
 アプリ判定部112は、前述のアプリケーションの認証子を用いて、アプリケーションが正当であるか否かを判定する。詳細は後述する。
 <実施の形態1のハードウェアの構成の説明>
 図2は、図1のソフトウェアが動作する情報処理装置120のハードウェア構成図である。
 図2において、情報処理装置120は、CPU121と、MMU(Memory Management Unit)122と、通常メモリ123と、保護メモリ124と、セキュアデバイス126と、不揮発性記憶装置134が、バス125を介して互いに接続している。
 情報処理装置120は、さらに、図2に図示されていない入出力部や補助記憶装置などを備えているが、これらは本発明の本質ではないので説明を省略する。
 以下、情報処理装置120の各構成要素の詳細について説明する。
 <情報処理装置のハードウェアの構成要素の説明>
 CPU121は、通常メモリ123や保護メモリ124に格納されたプログラム等に含まれる命令コードを実行することにより、情報処理装置120全体の動作を制御する。
 MMU122は、図示していないページテーブルを参照して、CPU121に対して、物理アドレス番号を論理アドレス番号に変換する機能を提供する。さらに、MMU122は、図示していないページテーブルを参照して、CPU121の特権状態に応じて、メモリへの書込み操作や読み込み操作などのアクセス制御機能を提供する。
 不揮発性記憶装置134は、アプリケーションA 127と、アプリケーションB 128とを格納する不揮発性の記憶装置である。具体的には、ハードディスクやフラッシュメモリなどである。
 通常メモリ123は、不揮発性記憶装置134に格納されているアプリケーションA 127と、アプリケーションB 128と、汎用OS129とをロードして、実行される揮発性記憶装置である。本発明のワークエリアに当たる。
 保護メモリ124は、セキュアデバイスドライバ130と、アプリ特定部131と、管理専用OS132と、セキュアVMM133とを格納する記憶装置である。
 セキュアデバイス126は、コンテンツなどの保護すべき情報を取り扱うデバイスであり、不正なアプリケーションからのアクセスを防止する必要があるデバイスである。例えば、暗号化コンテンツの復号などを行う暗復号回路などである。他の例として、暗号化したコンテンツを記録したフラッシュメモリ等の記録媒体や、復号化されたコンテンツが保持されるメモリなどが考えられる。また、セキュアデバイスは情報処理装置に内蔵されたものに限らず、SDカード等の外部の記録装置であってもよい。
 さらに、保護メモリ124とセキュアデバイス126は、保護メモリ124に格納されたソフトウェアのみがアクセス可能となるように制御される。
 <汎用OSとアプリケーションとの関連性の説明>
 汎用OS129は、汎用OS129上で動作するアプリケーションA 127とアプリケーションB 128に対応して、それぞれページテーブル135とページテーブル136を保持する。なお、ページテーブルに関する詳細は後述する。
 <OS仮想化機能を用いた場合のメモリ空間の説明>
 図3は、情報処理装置120の物理メモリ空間140を示す図である。
 情報処理装置120の物理メモリ空間140は、通常メモリに対応するメモリ空間141と、予約領域A 142と、保護メモリに対応するメモリ空間143と、予約領域B 144とで構成される。情報処理装置の物理メモリ空間140は、物理メモリ番地で一意に特定する事が可能である。
 セキュアVMM100は、情報処理装置の物理メモリ空間140を、汎用OS101に割り当てられた物理メモリ空間と、管理専用OS104に割り当てられた物理メモリ空間に分割して管理する。
 汎用OS101に割り当てられた物理メモリ空間は、通常メモリに対応するメモリ空間141と、予約領域A 142とで構成される。
 管理専用OS104に割り当てられた物理メモリ空間は、保護メモリに対応するメモリ空間143と、予約領域B 144とで構成される。
 セキュアVMM100は、汎用OS101と管理専用OS104に対して、それぞれのメモリ空間を、仮想物理アドレス空間として参照させる。汎用OS101と管理専用OS104は、それぞれの仮想物理アドレス空間に対して、仮想物理アドレス番号を用いて、読み込み操作及び書込み操作を行う。
 <仮想物理メモリ空間と論理メモリ空間の説明>
 図4は、仮想物理メモリ空間と論理メモリ空間との対応関係を示す一例の図である。なお、図4の仮想物理メモリ空間は、汎用OSが読み込み操作及び書込み操作を行う仮想物理メモリ空間である。
 通常メモリ151は、ページと呼ばれる固定長サイズに分割されて管理される。
 ページテーブル153は、複数のページをまとめて管理し、論理アドレス空間を構築する。さらに、1つのページテーブルが、1つのアプリケーションに対応する。
 アプリケーションは、論理アドレス空間に対して、論理アドレス番号を用いて読み込み操作及び書込み操作を行う。
 <ページテーブルの構成要素の説明>
 図5は、ページテーブル160のデータ構造の一例を示す図である。
 ページテーブル160は、ページに対応する各エントリに対して、ページ番号161と、論理アドレス番号162と、仮想物理アドレス番号163と、特権情報164と、書込み操作許可・不許可情報165と、読込み操作許可・不許可情報166と、その他の情報167と、から構成されるデータ構造である。
 ページ番号161は、ページの番号を格納するフィールドである。
 論理アドレス番号162は、MMU122が仮想物理アドレス番号を論理アドレス番号に変換する際の対応する論理アドレス番号を格納するフィールドである。本フィールドは、各仮想物理アドレス番号に対応する論理アドレス番号それぞれを格納していてもよいし、ページの先頭論理アドレス番号が格納していてもよい。
 仮想物理アドレス番号163は、MMU122が仮想物理アドレス番号を論理アドレス番号に変換する際の対応する仮想物理アドレス番号を格納するフィールドである。本フィールドは、ページの先頭仮想物理アドレス番号が格納されていてもよい。
 特権情報164は、MMU122がメモリへのアクセス制御を行う場合に参照する特権情報に関する情報を格納するフィールドである。詳細は後述する。
 書込み操作許可・不許可情報165は、ページテーブル160に対応するアプリケーションが、ページへの書込み操作を行ってもよいか否かを示すフィールドである。本フィールドには、許可または不許可を示す情報が格納される。
 読込み操作許可・不許可情報166は、ページテーブル160に対応するアプリケーションが、ページへの読込み操作を行ってもよいか否かを示すフィールドである。本フィールドには、許可または不許可を示す情報が格納される。
 その他の情報167は、ページのサイズや、ページのダーティ情報や、前述の属性以外の情報などが格納されているフィールドである。
 また、ページテーブルの各フィールドの情報の変更は、CPU121の特権状態がリング0の場合のみ可能である。なお、特権状態に関しては、詳細は後述する。
 なお、図5で示したページテーブル160は論理的なデータ構造であり、例えば、公知の階層的なページテーブル構造を用いてもよい。
 なお、図5で示したページテーブル160では、各ページ毎に特権情報が割り当てられているが、1つのページテーブルに対して1つの特権情報を割り当てても良い。その場合には、前記の1つの特権情報は、別のデータ構造やレジスタで管理しても良い。
 図5で示したページテーブル160では、書込み操作許可・不許可情報165は、アプリケーションからの書込みが可能か否かを示すフィールドであるが、それ以外であってもよい。例えば、その他の情報167に格納されている書込み操作主体を示す情報と組み合わせて、前記主体が書込み操作が可能か否かを示すフィールドであってもよい。
 図5で示したページテーブル160では、読込み操作許可・不許可情報166は、アプリケーションからの読込みが可能か否かを示すフィールドであるが、それ以外であってもよい。例えば、その他の情報167に格納されてている読込み操作主体を示す情報と組み合わせて、前記主体が読込み操作が可能か否かを示すフィールドであってもよい。
 <CPUの特権状態によるメモリアクセス制御の説明>
 図6は、CPU121が、通常メモリ123及び保護メモリ124へアクセスを行った場合のアクセス制御を示す表である。
 図6のアクセス制御は、CPU121で実現しても良いし、MMU122で実現しても良い。
 CPU121には、リング0、リング1、リング2、リング3という特権状態がある。CPU121は、特権命令を実行することで、各特権状態を遷移する。
 特権状態リング0であるCPU121で動作する主体であるソフトウェアは、ページテーブル160の特権情報164フィールドが、リング0とリング1とリング2とリング3のページにアクセスすることができる。また、特権情報164フィールドがリング0とリング1とリング2とリング3のページテーブルの内容を書き換えることができる。
 特権状態リング1であるCPU121で動作する主体であるソフトウェアは、ページテーブル160の特権情報164フィールドが、リング1とリング2とリング3のページにアクセスすることができる。また、特権情報164フィールドがリング1とリング2とリング3のページテーブルの内容を書き換えることができる。特権状態リング1であるCPU121で動作する主体であるソフトウェアが、ページテーブル160の特権情報164フィールドが、リング0のページにアクセスした場合には、CPU121またはMMU122が、不正なメモリアクセスであることを検出し、アクセスを拒否する。
 特権状態リング2であるCPU121で動作する主体であるソフトウェアは、ページテーブル160の特権情報164フィールドが、リング2とリング3のページにアクセスすることができる。また、特権情報164フィールドがリング2とリング3のページテーブルの内容を書き換えることができる。特権情報リング2であるCPU121で動作する主体であるソフトウェアが、ページテーブル160の特権情報164フィールドが、リング0とリング1のページにアクセスした場合には、CPU121またはMMU122が、不正なメモリアクセスであることを検出し、アクセスを拒否する。
 特権状態リング3であるCPU121で動作する主体であるソフトウェアは、ページテーブル160の特権情報164フィールドが、リング3のページにアクセスすることができる。また、特権情報164フィールドがリング3のページテーブルの内容を書き換えることができる。特権状態リング3であるCPU121で動作する主体であるソフトウェアが、ページテーブル160の特権情報164フィールドが、リング0とリング1とリング2のページにアクセスした場合には、CPU121またはMMU122が、不正なメモリアクセスであることを検出し、アクセスを拒否する。
 また、情報処理装置120において、リング0にはセキュアVMM100が割り当てられ、リング1には管理専用OS104が割り当てられ、リング2には汎用OS101が割り当てられ、リング3には汎用OS上で動作するアプリケーションが割り当てられている。
 なお、特権の割り当て方法は、前述のリングの割り当てには限らない。汎用OS101と汎用OS上で動作するアプリケーションが割り当てられた特権が、セキュアVMM100と管理専用OS104が割り当てられた特権より低くなるように制御できれば他の割り当て方法を用いてもよい。
 <アプリケーションのロード処理の説明>
 図22は、汎用OSによるアプリケーションのロード処理を示すシーケンス図である。
 図示されていないインターフェースによるユーザの指示などによって、アプリケーションのロード処理が開始される(S300)。
 汎用OS180は、不揮発性記憶装置134から、アプリケーションが格納されているファイルを読み込む(S301)。
 汎用OS180は、ファイルのヘッダファイルに格納されている必要メモリサイズなどを参照して、アプリケーションに割り当てるメモリサイズを算出し、通常メモリ123から必要なメモリ領域を確保する(S302)。
 汎用OS180は、アプリケーションに対応するページテーブルを内部に作成する(S303)。
 汎用OS180は、ステップS302で確保したメモリ領域に、ステップS301で読み込んだファイルからアプリケーションのプログラム(コードとデータ)をロードする(S304)。
 そして、汎用OS180は、アプリケーションのロード処理を終了する(S305)。
 なお、ステップS304とステップS305は、逆の順序で実施されてもよい。
 <OSによるページテーブルとアプリケーションの操作の説明>
 図7は、汎用OSによるページテーブルとアプリケーションの操作の一例を示す図である。図7において、汎用OS180上で、アプリケーションA 183とアプリケーションB 184が動作している。
 汎用OS180は、アプリケーションA 183とアプリケーションB 184に、CPUを、時分割で割り当てることで、アプリケーションA 183とアプリケーションB 184を動作させる。
 前述の時分割で割り当てる操作において、汎用OS180は、アプリケーションA 183とアプリケーションB 184を切り替える。その切り替え操作は、各アプリケーションに対応するページテーブルを切り替えることで実現する。
 図7の場合には、汎用OS180は、アプリケーションA 183に対応するページテーブル181と、アプリケーションB 184に対応するページテーブル182と、を保持し、切り替えることで、アプリケーションを時分割で実行する。
 また、管理専用OS104も、同様のページテーブルの操作を行うことで、管理専用OS104上で動作するソフトウェアを切り替える。
 <セキュアVMMによるページテーブルとソフト実行環境の操作の説明>
 図8は、セキュアVMMによるページテーブルとソフト実行環境の操作の一例を示す図である。図8において、セキュアVMM190上で、汎用OS193と管理専用OS194が動作している。
 セキュアVMM190は、汎用OS193と管理専用OS194に、CPUを、時分割で割り当てることで、汎用OS193と管理専用OS194を動作させる。
 前述の時分割で割り当てる操作において、セキュアVMM190は、汎用OS193と管理専用OS194を切り替える。その切り替え操作は、各OS(ソフト実行環境)に対応するカレントページテーブルを切り替えることで実現する。ここで、カレントページテーブルとは、各OSが現在CPU121に参照させているページテーブルである。
 図8の場合には、セキュアVMM190は、汎用OS193に対応するカレントページテーブル191と、管理専用OS194に対応するカレントページテーブル192と、を保持し、切り替えることで、各OS(ソフト実行環境)を時分割で実行する。
 <不正アプリによるセキュアデバイスアクセスの検出及びアクセス防止の説明>
 以下に、図9を用いて、情報処理装置120が、不正アプリによるセキュアデバイスアクセスの検出及びアクセス防止の説明を行う。
 汎用OS101上のアプリケーションが、汎用OS101を介して、セキュアデバイス処理要求を行う(S100)。
 セキュアVMM100は、前述のソフト実行環境の操作を用いて、汎用OS101から管理専用OS104に切り替える。そして、処理要求検出ステップにおいて、セキュアデバイスドライバ105のデバイスアクセス要求判定部109が、前述のセキュアデバイス処理要求を検出する。そして、デバイスアクセス要求判定部109は、セキュアVMM100に対して、対象アプリ抽出要求を行う(S101)。
 対象アプリ抽出要求に対して、セキュアVMM100は、対象アプリ抽出ステップと対象アプリロックステップを行う。
 対象アプリ抽出ステップでは、セキュアVMM100の動作アプリ格納メモリ特定部107が、汎用OS101のカレントページテーブルを抽出する。汎用OS101が動作させているアプリケーションはセキュアデバイス処理要求を出したアプリケーションであるので、カレントページテーブルはこのアプリケーションのページテーブルとなる(S102)。
 対象アプリロックステップでは、セキュアVMM100の動作アプリメモリロック部108が、汎用OS101のカレントページテーブルに格納されている情報を、保護メモリにバックアップする。そして、動作アプリメモリロック部108が、汎用OS101のカレントページテーブルの書込み許可・不許可情報のフィールドを全て、「不許可」に変更する。例えば、図5に示すページテーブル160に前述の操作を行った場合には、図23のページテーブル300に変更される。書換え後のページテーブル300では、書換え前のページテーブル160の特権情報164のフィールドのリング3が、ページテーブル300の特権情報304で示すようにリング0に書き換えられる。さらに、書換え後のページテーブル300では、書換え前のページテーブル160の書込み操作許可・不許可情報165のフィールドが、ページテーブル300の書込み許可・不許可情報305で示すように全て「不許可」に書き換えられる。
 これにより、セキュアデバイス処理要求を出したアプリケーションがロードされているメモリ空間の書き換えが不可能となる。さらに、特権情報のフィールドを、汎用OSおよび汎用OS上で動作するアプリケーションに割り当てられた特権では変更できないリング番号に変更する。この特権情報の変更により、汎用OSおよび汎用OS上で動作するアプリケーションは、カレントページテーブルの元々の特権情報に関わらず、書込み許可・不許可情報のフィールドを「不許可」から「許可」に戻すことができなくなる。したがって、汎用OS側およびその上で動作するプリケーションによってページテーブルの書込み許可・不許可情報のフィールドを「許可」に戻し、アプリケーションがロードされているメモリ空間の書き換えを可能とするような攻撃も防げる。本実施の形態では、この書込み許可・不許可情報165のフィールドの書き換えと、特権情報のフィールドの書き換えにより、セキュアデバイス処理要求を出したアプリケーションを書換えることができる主体から汎用OSおよび汎用OS上で動作する全アプリケーションを含めた仮想マシンを排除する。そして、アプリ特定部106に対して、アプリ特定要求を行う(S103)。
 アプリ特定要求に対して、アプリ特定部106は、認証子生成ステップとアプリ判定ステップを行う。
 認証子生成ステップでは、アプリ特定部106の認証子生成部111が、前述の抽出されたページテーブルを用いて、論理アドレス空間を参照する。認証子生成部111が、参照した論理アドレス空間に格納されたプログラムから、SHA1などの一方向性関数を用いて、ハッシュ値を生成する(S104)。
 次に、アプリ判定ステップでは、アプリ特定部106のアプリ判定部112が、予め保持している参照ハッシュ値と、前述の生成したハッシュ値とが一致するか否かを確認する。一致する場合には、アプリ判定部112が、S100のセキュアデバイス処理要求を行ったアプリケーションは正当なアプリケーションであると判定する。一致しない場合には、アプリ判定部112が、S100のセキュアデバイス処理要求を行ったアプリケーションは不正なアプリケーションであると判定する。アプリ判定部112が、前述の判定結果を用いて、セキュアデバイスドライバ105に対して、デバイスアクセス制御要求を行う(S105)。
 デバイスアクセス制御要求に対して、セキュアデバイスドライバ105のデバイスアクセス制御部110は、前述の判定結果が、正当なアプリケーションの場合には、セキュアデバイスへのアクセスを許可する。または、デバイスアクセス制御部110は、前述の判定結果が、不正なアプリケーションの場合には、セキュアデバイスへのアクセスを拒否する(S106)。
 デバイスアクセス制御部110が、セキュアデバイスへのアクセスを許可した場合に、セキュアデバイスドライバ105は、セキュアデバイスに対する処理を行う(S107)。そして、処理終了後に、セキュアデバイスドライバ105は、セキュアVMM100に対して、対象アプリロック解除要求を行う。
 対象アプリロック解除要求に対して、セキュアVMM100の動作アプリメモリロック部108は、対象アプリロック解除ステップを行う。
 対象アプリロック解除ステップにおいて、動作アプリメモリロック部108は、バックアップしていたカレントページテーブルの情報を、汎用OS101のカレントページテーブルに再設定を行う。これにより、ページテーブルの書込み許可・不許可情報および特権情報が、対象アプリロックステップ以前の状態に戻る(S108)。
 そして、セキュアVMM100は、汎用OS101に切り替える。汎用OS101は、セキュアデバイスドライバ105の処理結果をアプリケーションに通知する。
 また、ステップS106において、セキュアデバイスへのアクセスを拒否すると判断された場合には、セキュアデバイスドライバ105は、セキュアVMM100に対して、対象アプリロック解除要求を行い、セキュアVMM100の動作アプリメモリロック部108は、前述のステップS108と同様の処理を行う。そして、セキュアVMM100は、汎用OS101に切り替える。汎用OSは、セキュアデバイスドライバ105の処理結果をアプリケーションに通知する。
 <実施の形態1の効果>
 上述した実施の形態1では、セキュアデバイス処理要求が検出されると、その要求を出したアプリケーションがロードされているページテーブルの設定を書き込み不可能とした上で、アプリケーションの検証を行っている。また、この書き込み不可能の設定は、セキュアデバイスへのアクセスが終了するまで解除されない。これにより、正当なアプリケーションで検証を通した上で、メモリ上のアプリケーションを不正なアプリケーションに上書きしてセキュアデバイスへの不正なアクセスを試みる攻撃を防止することが出来る。すなわち、アプリケーションがロードされているメモリを改変できないよう設定にした上でそのアプリケーションを検証しているので、検証が終了した直後にメモリ上のアプリケーションを不正なアプリケーションに差し替えることはできない。
 さらに、ページテーブルの特権情報のフィールドを、汎用OSおよび汎用OS上で動作するアプリケーションでは変更できない特権に書き換えることにより、汎用OS等からはページテーブルの設定を書込み許可に戻すことができなくなるようにしている。これにより、汎用OS上の不正なアプリケーションによってページテーブルの設定を書き込み許可に戻した上で、アプリケーションを差し替えるような攻撃をも防止することができる。
 (実施の形態2)
 図10は、本発明の実施の形態2に関わる情報処理装置のソフトウェア構成を示すブロック図である。
 図11は、本発明の実施の形態2に関わる情報処理装置とアプリ判定部とがネットワーク接続された構成を示す図である。
 実施の形態1の情報処理装置120と実施の形態2の情報処理装置220との構成の差異は以下の通りである。
 実施の形態1の情報処理装置120では、アプリ特定部106が、検証部であるアプリ判定部112を備えていたが、実施の形態2の情報処理装置220のアプリ特定部206は、検証部であるアプリ判定部を備えてない。さらに、実施の形態2のアプリ特定部206は、通信部212を新たに備えている。
 さらに、実施の形態2の情報処理装置220は、ネットワーク222を介して、アプリ判定サーバ221に接続している。アプリ判定サーバ221は、検証部であるアプリ判定部223を備える。
 また、実施の形態1と実施の形態2の動作の違いは以下の通りである。
 実施の形態1では、認証子生成部111が生成したハッシュ値(認証子)を、アプリ判定部112が、参照ハッシュ値(認証子)と比較・判定していた。
 それに対して、実施の形態2では、認証子生成部211が生成したハッシュ値(認証子)を、通信部212が、図示されていないネットワーク機能を利用して、ネットワーク222を介して、アプリ判定サーバ221に送付する。アプリ判定サーバ221のアプリ判定部223は、送付されたハッシュ値(認証子)と、予め保持しているハッシュ値(認証子)とを、比較・判定することで、正当なアプリケーションであるか否かを判定する。
 上記の差異以外は、実施の形態1と実施の形態2は同一であるため、説明は省略する。
 本実施の形態2は、アプリ判定サーバでアプリケーションが正当であるか否かを判定する。そのため、実施の形態1とは異なり、アプリ判定ステップで使用するための予め保持するハッシュ値(認証子)を、情報処理装置220で保持する必要がない。従って、情報処理装置220の記憶領域を削減する事が出来るという効果がある。
 (実施の形態3)
 図12は、本発明の実施の形態3に関わる情報処理装置のソフトウェア構成を示すブロック図である。
 図13は、本発明の実施の形態3に関わる情報処理装置とアプリ判定部とサービス提供サーバがネットワーク接続された構成を示す図である。
 図14は、本発明の実施の形態3に関わるデバイスアクセス制御のシーケンスを示す図である。
 実施の形態1の情報処理装置120と実施の形態3の情報処理装置250との構成の差異は以下の通りである。
 実施の形態1と実施の形態3とのハードウェア構成の差異は、セキュアデバイスは、ネットワークインターフェースであることである。そして、前述のネットワークインターフェースを制御するデバイスドライバは、ネットワークインターフェースドライバ235である。
 実施の形態1の情報処理装置120では、アプリ特定部106が、検証部であるアプリ判定部112を備えていたが、実施の形態3の情報処理装置250のアプリ特定部236は、検証部であるアプリ判定部を備えてない。さらに、実施の形態3のアプリ特定部236は、通信部241を新たに備えている。さらに、実施の形態3のネットワークインターフェースドライバ235は、実行部であるデバイスアクセス制御部を備えていない。
 さらに、実施の形態3の情報処理装置250と、アプリ判定サーバ251と、サービス提供サーバ252とは、ネットワーク253を介して互いに接続している。アプリ判定サーバ251は、検証部であるアプリ判定部254を備える。サービス提供サーバ252は、実行部としてのサービス提供部255とサービス提供判定部256を備える。
 実行部としてのサービス提供部255は、情報処理装置250に対して、コンテンツ配信などのサービスを提供する。
 サービス提供判定部256は、情報処理装置250に対して、サービスを提供してよいか否かを判定する。
 図14のシーケンスを用いて、情報処理装置250が、サービス提供サーバ252から、サービスを受けるステップを説明する。
 まず、情報処理装置250で実施される、セキュアデバイス処理要求(S200)、処理要求検出ステップ(S201)、対象アプリ抽出ステップ(S202)、対象アプリロックステップ(S203)、認証子生成ステップ(S204)、対象アプリロック解除ステップ(S209)は、実施の形態1の各ステップと同一の処理内容のため、説明を省略する。
 認証子送信ステップ(S205)では、通信部241が、生成されたハッシュ値(認証子)を、ネットワーク253を介して、アプリ判定サーバ251に送付する。アプリ判定サーバ251のアプリ判定部254は、送付されたハッシュ値(認証子)と、予め保持しているハッシュ値(認証子)とを、比較・判定することで、正当なアプリケーションであるか否かを判定する。そして、アプリ判定部254は、サービス提供サーバ252に、ネットワーク253を介して、前述の判定結果を送付する(S206)。
 サービス提供サーバ252のサービス提供判定部256は、送付された判定結果を受信する。
 そして、サービス提供判定部256は、判定結果が正当なアプリケーションである場合には(S207)、サービス提供部255に、情報処理装置250に対して、サービスを提供するように指示する。サービスを提供するように指示されたサービス提供部255は、情報処理装置250に、ネットワーク253を介して、サービスを提供する(S208)。
 また、サービス提供判定部256は、判定結果が不正なアプリケーションである場合には(S207)、情報処理装置250に対して、要求失敗であることを示す情報を通知する(S208)。
 なお、アプリ判定サーバ251と、サービス提供サーバ252は、同一のサーバであっても良い。
 なお、アプリ判定サーバ251と、サービス提供サーバ252は、情報処理装置250が接続されてない専用ネットワークで接続されていても良い。専用ネットワークで、アプリ判定サーバ251とサービス提供サーバ252とが接続されている場合には、アプリ判定サーバ251は、判定結果を専用ネットワークを介して、サービス提供サーバ252に通知する。
 上記の差異以外は、実施の形態1と実施の形態3は同一であるため、説明は省略する。
 実施の形態3では、サービス提供サーバが、情報処理装置に対してサービスを提供するか否かを判定する。そのため、ネットワークを介して、サービス提供者がソフトウェアを確認することが出来るという効果がある。
 (実施の形態4)
 図15は、本発明の実施の形態4に関わる情報処理装置のソフトウェア構成を示すブロック図である。
 図16は、本発明の実施の形態4に関わるデバイスアクセス制御のシーケンスを示す図である。
 実施の形態1の情報処理装置120と実施の形態4の情報処理装置との構成の差異は以下の通りである。
 実施の形態1の情報処理装置120では、セキュアデバイスドライバ105が、検出部としてのデバイスアクセス要求判定部109と、実行部としてのデバイスアクセス制御部110とを備えていたが、実施の形態4のセキュアデバイスドライバ265は、検出部としてのデバイスアクセス要求判定部と実行部としてのデバイスアクセス制御部とを備えていない。さらに、実施の形態4のセキュアVMM260は、検出部としてのデバイスアクセス要求判定部269と、実行部としてのデバイスアクセス制御部270とを備えている。
 図16のシーケンスを用いて、実施の形態4の情報処理装置が、正当なアプリケーションのみに対して、セキュアデバイスをアクセスさせるステップを説明する。
 実施の形態1では、処理要求検出ステップ(S101)とデバイス処理判定ステップ(S106)とが、セキュアデバイスドライバ105で実現されていた。それに対して、実施の形態4では、処理要求検出ステップ(S211)とデバイス処理判定ステップ(S216)とが、セキュアVMM260で実現される。
 上記の差異以外は、実施の形態1と実施の形態4は同一であるため、説明は省略する。
 実施の形態4は、実施の形態1とは異なり、デバイスアクセス要求判定部269とデバイスアクセス制御部270が、セキュアVMM260内部に存在し、セキュアデバイスドライバ265内部に存在しない。従って、セキュアデバイスドライバを改変することなしに、実施の形態4の情報処理装置で動作させることが出来るという効果がある。
 (実施の形態5)
 図17は、本発明の実施の形態5に関わる情報処理装置のソフトウェア構成を示すブロック図である。
 図18は、本発明の実施の形態5に関わるデバイスアクセス制御のシーケンスを示す図である。
 実施の形態1の情報処理装置120と実施の形態5の情報処理装置との構成の差異は以下の通りである。
 実施の形態1の情報処理装置120では、アプリ特定部106が、検証部としての認証子生成部111を備えていたが、実施の形態5のアプリ特定部286は、検証部としての認証子生成部を備えていない。さらに、実施の形態5のセキュアVMM280は、検証部としての認証子生成部289を備えている。
 図18のシーケンスを用いて、実施の形態5の情報処理装置が、正当なアプリケーションのみに対して、セキュアデバイスをアクセスさせるステップを説明する。
 実施の形態1では、認証子生成ステップ(S104)が、アプリ特定部106で実現されていた。それに対して、実施の形態5では、認証子生成ステップ(S224)が、セキュアVMM280で実現される。
 上記の差異以外は、実施の形態1と実施の形態5は同一であるため、説明は省略する。
 実施の形態5では、実施の形態1とは異なり、認証子生成部289が、セキュアVMM280内部に存在し、アプリ特定部286内部に存在しない。そのため、動作アプリ格納メモリ特定部287から認証子生成部289への情報通知が、同一モジュール(セキュアVMM280)内部で実現できる。従って、動作アプリ格納メモリ特定部287から認証子生成部289への情報通知が、より高速に出来るという効果がある。
 (その他変形例)
 (1)上記の実施の形態で、処理要求検出ステップにおいて、処理要求自体を検出するのではなく、要求のコマンド種別や、データの処理内容を参照することで処理要求が行われているか否かを判断して検出するとしても良い。
 (2)上記の実施の形態で、処理要求検出ステップが、デバイス初期化の操作のみに対して検出操作を行うとしてもよい。
 (3)上記の実施の形態で、処理要求検出ステップの検出を行うか否かを、乱数に基づいて、ランダムに決定するとしても良い。
 (4)上記の実施の形態で、処理要求検出ステップの検出を行うか否かを、デバイスアクセス回数に基づいて切り替えるとしても良い。例えば、セキュアデバイスドライバに対して、10回のアクセスを行った場合には、検出するという操作を行ってもよい。
 (5)上記の実施の形態で、認証子生成ステップのハッシュ値の生成において、SHA1以外の一方向性関数を用いてもよい。例えば、MD5や、SHA256、AES、DESを用いても良い。
 (6)上記の実施の形態で、認証子生成ステップのハッシュ値の生成において、論理アドレス空間の一部のみを用いて、ハッシュ値を生成しても良い。例えば、アプリケーションのコード領域のみのハッシュ値を生成しても良い。
 (7)上記の実施の形態で、認証子生成ステップのハッシュ値の生成において、複数個のハッシュ値を生成しても良い。例えば、論理メモリ空間を分割して、分割した領域毎にハッシュ値を生成しても良い。
 (8)上記の実施の形態で、対象アプリロックステップのページテーブルの情報をバックアップする場合に、一部の情報のみをバックアップしても良い。
 (9)上記の実施の形態で、アプリ判定部は、特定のアプリケーションライセンスを備えたアプリケーションのみを不正アプリケーションであると判定しても良い。
 (10)上記の実施の形態で、CPUが、保護モードと通常モードを備えるCPUであってもよい。さらに、保護モードのCPUのみが、保護メモリにアクセス可能であってもよい。
 (11)上記の実施の形態で、保護メモリとセキュアデバイスは、保護メモリに格納されたソフトウェアのみがアクセス可能となるように制御されるが、その手段は、ハードウェアによって実現してもよい。例えば、保護メモリ上のプログラムが動作しているときのみ、CPUから、保護メモリとセキュアデバイスへアクセス可能になるようにバスが制御されていてもよい。
 (12)上記の実施の形態で、通常メモリと保護メモリとが、同一のメモリであってもよい。
 (13)上記の実施の形態で、不揮発性記憶装置が、汎用OSを格納していてもよい。その場合は、BIOS(Basic Input Output System)や、IPL(Initial Program Loader)と呼ばれる特別なファームウエア(プログラム)によって、汎用OSを通常メモリ上にロードさせる。
 (14)上記の実施の形態で、不揮発性記憶装置が、セキュアデバイスドライバや、アプリ特定部や、管理専用OSや、セキュアVMMを格納していてもよい。その場合には、AES暗号などの秘密鍵暗号方式や、RSA暗号などの非対称鍵暗号方式などの暗号アルゴリズムを用いて、セキュアデバイスドライバや、アプリ特定部や、管理専用OSや、セキュアVMMは暗号化されて格納されている。そして、各モジュールは、復号されて保護メモリ上にロードされ、実行される。
 (15)上記の実施の形態では、セキュアVMMが通常メモリに格納されていてもよい。その場合には、保護メモリに格納されている図示されていない改ざん検出プログラムが、セキュアVMMの改ざん検出を行ってもよい。さらに、前述のセキュアVMMの改ざん検出は、セキュアVMMを通常メモリにロードする場合に行ってもよく、定期的に改ざん検出をおこなってもよく、乱数などに基づいて不定期に行ってもよく、何らかのトリガに基づいて行ってもよい。
 (16)上記の実施の形態では、セキュアVMMが通常メモリに格納されていてもよい。その場合には、情報処理装置内部の読み込み専用記憶装置(ROM)に格納されている図示されていない改ざん検出プログラムが、セキュアVMMの改ざん検出を行ってもよい。さらに、前述のセキャアVMMの改ざん検出は、セキュアVMMを通常メモリにロードする場合に行ってもよく、定期的に改ざん検出をおこなってもよく、乱数などに基づいて不定期に行ってもよく、何らかのトリガに基づいて行ってもよい。
 (17)上記の実施の形態では、CPUの特権状態をCPUのリングの機構を用いて実現したが、それ以外の方法であってもよい。例えば、完全仮想化をサポートしたCPUの仮想化ドメイン(管理ドメインと汎用ドメイン)の機構を利用してもよい。
 (18)上記の実施の形態では、汎用OSが、アプリケーションのページテーブルを管理していたが、それ以外の方法であってもよい。例えば、OS仮想化技術のシャドー・ページングを利用して、セキュアVMMがページテーブルを管理してもよい。
 また、上記の実施の形態では、汎用OSが管理するアプリケーションごとのページテーブルを、セキュアVMMがカレントページテーブルとして参照する構成を取っていた。より具体的には、カレントページテーブルを指すポインタを、汎用OSが管理するページテーブルのうちの現在処理中のアプリケーションに対応するページテーブルに繋ぐ構成を取っていた。しかし、これに限られるものではない。例えば、上述のシャドー・ページングを使う場合は、動作させるアプリケーションの切り替えが起こるたびに、セキュアVMM自身が、汎用OSが管理するページテーブルのコピーを作る。この場合、メモリアクセスの制御は、セキュアVMMが保持するページテーブルに基づいて行われるので、セキュアVMMは、自身が複製したページテーブルに対して、上記の実施の形態におけるカレントページテーブルと同様の処理を行うとすればよい。
 (19)上記の実施の形態2と実施の形態3では、情報処理装置からアプリ判定サーバに対して、ハッシュ値(認証子)と共に、情報処理装置を識別する情報を送付してもよい。
 (20)上記の実施の形態2と実施の形態3では、情報処理装置とアプリ判定サーバとで、安全な通信路を用いても良い。例えば、SSLを利用しても良い。
 (21)上記の実施の形態2と実施の形態3では、情報処理装置からアプリ判定サーバに対して送付する情報を、電子署名を用いて保護してもよい。例えば、TCG(Trusted Computing Group)のTPM(Trusted Platform Module)を用いて、送付する情報に対して電子署名を作成し、アプリ判定サーバに電子署名を送付してもよい。
 (22)上記の実施の形態2と実施の形態3では、情報処理装置とアプリ判定サーバとで、チャレンジ・レスポンス処理を行い、相互認証を行ってもよい。
 (23)上記の実施の形態では、CPUは、自身の特権状態よりもレベルの低い特権情報に対応するページテーブルのエントリは全てアクセスできるとしていたが、これに限られるものではない。例えば、特権状態と特権情報とを1対1に対応させ、リング3の特権状態の時はリング3の特権情報を持つエントリにしかアクセスできないとしてもよい。
 (24)上記の実施の形態で述べた構成要素については、その一部または全てを実現可能な範囲でソフトウェアとして実装してもよい。この場合、集積回路上に乗せなくてはならないハードウェアの量を抑えることができるので、より集積度を向上させることができる。
 (25)上記の実施の形態で述べた構成要素については、その一部または全てを実現可能な範囲でハードウェアとして実装してもよい。この場合、上記の構成要素をソフトウェアで実装するよりも処理を高速化することができる。このような実装は、特に退避処理や復帰処理等、ユーザの利便性のために高速化が求められる処理などにおいて有用である。
 (26)システムLSIは集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもあるが、システムLSIを上記のいずれの集積度で実現した場合も本発明に含まれることは言うまでもない。また、LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
 さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて構成要素の集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
 (27)また、本発明は、前記コンピュータプログラムまたは前記ディジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blu-rayDisc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記ディジタル信号であるとしてもよい。
 (28)これらの実施の形態および変形例の組合せであってもよい。
 本発明にかかるセキュアデバイスに対するアクセス制御を行う手法は、アプリケーションが格納されている論理メモリ空間をロックし、ハッシュ値を生成・判定することによって、アプリケーションの差し替えによる不正アプリケーションのデバイスアクセスを防止するという効果を有する。そのため、セキュアデバイスを処理するデータ処理において、不正アプリケーションの動作を防止させるという効果がある。

Claims (12)

  1.  所定のデバイスにアクセスする所定のアプリケーションをワークエリア上で動作させる仮想マシンと、
     前記所定のアプリケーションを用いた所定のデバイスへのアクセス要求を前記仮想マシンから検出する検出部と、
     前記所定のアプリケーションの正当性を検証する検証部と、
     前記仮想マシン、前記検証部及び前記検出部を管理し、前記ワークエリア上で動作する所定のアプリケーションを書き換え可能に管理する仮想マシンモニタと、を具備し、
     前記検出部は前記アクセス要求を検出するとその旨を前記仮想マシンモニタに通知し、
     前記仮想マシンモニタは前記ワークエリア上の前記所定のアプリケーションを書換え不可能なものと管理し直してその旨を前記検証部に通知し、
     前記検証部は前記仮想マシンモニタからの通知を受けると前記所定のアプリケーションが正当であるか否かを判断することを特徴とする情報処理装置。
  2.  前記検証部が前記所定のアプリケーションが正当であると判断した場合、前記所定のアプリケーションを用いて所定のデバイスにアクセスする実行部を設けたことを特徴とする請求項1記載の情報処理装置。
  3.  前記仮想マシンモニタは、前記実行部が前記所定のアプリケーションを用いた所定のデバイスへのアクセスを終了した後、前記所定のアプリケーションを書換え可能なものに管理を戻すことを特徴とする請求項2記載の情報処理装置。
  4.  前記仮想マシンモニタは、前記ワークエリアに前記所定のアプリケーションに対応する管理情報を管理し、前記管理情報は前記管理情報を書換える権限を有する主体を示す特権情報を含み、前記所定のアプリケーションの書換え可能な主体が前記仮想マシンを含む旨を前記特権情報が示している場合、前記所定のアプリケーションの書換え可能な主体から前記仮想マシンを排除するように前記特権情報を書き換えることで、前記所定のアプリケーションを書換え不可能なものと管理することを特徴とする請求項1記載の情報処理装置。
  5.  前記仮想マシンモニタは、前記所定のアプリケーションの書換え可能な主体を前記仮想マシン及び前記仮想マシンモニタを含む情報から、前記所定のアプリケーションの書換え可能な主体を前記仮想マシンモニタに制限する情報に前記特権情報を書き換えることで、前記所定のアプリケーションの書換え可能な主体から前記仮想マシンを排除することを特徴とする請求項4記載の情報処理装置。
  6.  前記所定のデバイスは、SDカードであることを特徴とする請求項1記載の情報処理装置。
  7.  前記所定のデバイスは、前記情報処理装置にコンテンツを提供する外部のコンテンツサーバであることを特徴とする請求項1記載の情報処理装置。
  8.  所定のデバイスにアクセスする前記所定のアプリケーションをワークエリア上で動作させる仮想マシンと、
     前記所定のアプリケーションを用いた所定のデバイスへのアクセス要求を前記仮想マシンから検出する検出部と、
     前記仮想マシン及び前記検出部を管理し、前記ワークエリア上で動作する所定のアプリケーションを書き換え可能に管理する仮想マシンモニタと、を具備し、
     前記検出部は前記アクセス要求を検出するとその旨を前記仮想マシンモニタに通知し、
     前記仮想マシンモニタは前記ワークエリア上の前記所定のアプリケーションを書換え不可能なものと管理し直して、その旨を検証部を備える外部装置に通知し、前記外部装置の検証部に前記所定のアプリケーションが正当であるか否かの判断を行わせることを特徴とする情報処理装置。
  9.  所定のデバイスにアクセスする所定のアプリケーションをワークエリア上で動作させる仮想マシンと、
     前記所定のアプリケーションを用いた所定のデバイスへのアクセス要求を前記仮想マシンから検出する検出部と、
     前記仮想マシン及び前記検出部を管理し、前記ワークエリア上で動作する所定のアプリケーションを書き換え可能に管理する仮想マシンモニタと、
     サービスを提供する実行部を備える外部装置と通信する通信部と、を具備し、
     前記検出部は前記アクセス要求を検出するとその旨を前記仮想マシンモニタに通知し、
     前記仮想マシンモニタは前記ワークエリア上の前記所定のアプリケーションを書換え不可能なものと管理し直し、
     前記通信部は、前記所定のアプリケーションが書換え不可能なものと管理し直された後に正当なものであると判断された場合に、前記外部装置の実行部から前記サービスの提供を受けることを特徴とする情報処理装置。
  10.  所定のデバイスにアクセスする所定のアプリケーションをワークエリア上で動作させる仮想マシンと、
     前記所定のアプリケーションを用いた所定のデバイスへのアクセス要求を前記仮想マシンから検出する検出部と、
     前記所定のアプリケーションの正当性を検証する検証部と、
     前記仮想マシン、前記検証部及び前記検出部を管理する仮想マシンモニタと、を具備した情報処理装置の制御方法であって、
     前記検出部は前記アクセス要求を検出するとその旨を前記仮想マシンモニタに通知し、
     前記仮想マシンモニタは前記ワークエリア上の前記所定のアプリケーションを書換え不可能なものと管理し直してその旨を前記検証部に通知し、
     前記検証部は前記仮想マシンモニタからの通知を受けると前記所定のアプリケーションが正当であるか否かを判断することを特徴とする制御方法。
  11.  所定のデバイスにアクセスする所定のアプリケーションをワークエリア上で動作させる仮想マシンと、
     前記所定のアプリケーションを用いた所定のデバイスへのアクセス要求を前記仮想マシンから検出する検出部と、
     前記所定のアプリケーションの正当性を検証する検証部と、
     前記仮想マシン、前記検証部及び前記検出部を管理する仮想マシンモニタと、を具備した情報処理装置の制御プログラムであって、
     前記検出部が前記アクセス要求を検出すると、その旨を前記仮想マシンモニタに通知するステップと、
     前記仮想マシンモニタに、前記ワークエリア上の前記所定のアプリケーションを書換え不可能なものと管理し直させ、その旨を前記検証部に通知させるステップと、
     前記仮想マシンモニタからの通知を受けた前記検証部に、前記所定のアプリケーションが正当であるか否かを判断させるステップとを含む
    ことを特徴とする制御プログラム。
  12.  情報処理装置に用いられる集積回路であって、
     所定のデバイスにアクセスする所定のアプリケーションをワークエリア上で動作させる仮想マシンと、
     前記所定のアプリケーションを用いた所定のデバイスへのアクセス要求を前記仮想マシンから検出する検出部と、
     前記所定のアプリケーションの正当性を検証する検証部と、
     前記仮想マシン、前記検証部及び前記検出部を管理する仮想マシンモニタと、を具備し、
     前記検出部は前記アクセス要求を検出するとその旨を前記仮想マシンモニタに通知し、
     前記仮想マシンモニタは前記ワークエリア上の前記所定のアプリケーションを書換え不可能なものと管理し直してその旨を前記検証部に通知し、
     前記検証部は前記仮想マシンモニタからの通知を受けると前記所定のアプリケーションが正当であるか否かを判断することを特徴とする集積回路。
PCT/JP2009/000500 2008-02-25 2009-02-09 情報処理装置及びその制御方法 WO2009107330A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US12/918,918 US8689212B2 (en) 2008-02-25 2009-02-09 Information processing device for controlling an application able to access a predetermined device, and control method using an information processing device for controlling an application able to access a predetermined device
CN200980105824.2A CN101946252B (zh) 2008-02-25 2009-02-09 信息处理装置及其控制方法
EP09715484.3A EP2249280B1 (en) 2008-02-25 2009-02-09 Information processor and method for controlling the same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2008-043009 2008-02-25
JP2008043009A JP5260081B2 (ja) 2008-02-25 2008-02-25 情報処理装置及びその制御方法

Publications (1)

Publication Number Publication Date
WO2009107330A1 true WO2009107330A1 (ja) 2009-09-03

Family

ID=41015737

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2009/000500 WO2009107330A1 (ja) 2008-02-25 2009-02-09 情報処理装置及びその制御方法

Country Status (5)

Country Link
US (1) US8689212B2 (ja)
EP (1) EP2249280B1 (ja)
JP (1) JP5260081B2 (ja)
CN (1) CN101946252B (ja)
WO (1) WO2009107330A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013080848A1 (ja) * 2011-11-28 2013-06-06 Suginaka Junko ファイル通信処理方法及び外部デバイス

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201137660A (en) * 2009-12-23 2011-11-01 Ibm Method and system for protecting an operating system against unauthorized modification
EP2413257B1 (en) * 2010-07-26 2017-04-26 Sony DADC Austria AG Method for replacing an illegitimate copy of a software program with legitimate copy and corresponding system
US8307169B2 (en) * 2011-03-10 2012-11-06 Safenet, Inc. Protecting guest virtual machine memory
US9460270B2 (en) 2011-04-27 2016-10-04 Panasonic Intellectual Property Corporation Of America Generating child virtual machine to execute authorized application with reduced risk of malware attack
US9032401B2 (en) * 2011-05-16 2015-05-12 Panasonic Intellectual Property Corporation Of America Virtual computer system having a first virtual computer that executes a protected process, a second virtual computer that executes an unprotected process, and a hypervisor that controls the first and second virtual computers
US20130055335A1 (en) * 2011-08-22 2013-02-28 Shih-Wei Chien Security enhancement methods and systems
US9460276B2 (en) 2012-02-22 2016-10-04 Panasonic Intellectual Property Corporation Of America Virtual machine system, confidential information protection method, and confidential information protection program
US10579405B1 (en) * 2013-03-13 2020-03-03 Amazon Technologies, Inc. Parallel virtual machine managers
US10270748B2 (en) 2013-03-22 2019-04-23 Nok Nok Labs, Inc. Advanced authentication techniques and applications
US10198572B2 (en) * 2013-09-17 2019-02-05 Microsoft Technology Licensing, Llc Virtual machine manager facilitated selective code integrity enforcement
JP6181004B2 (ja) 2014-06-20 2017-08-16 株式会社東芝 メモリ管理装置、プログラム、及び方法
JP6584823B2 (ja) 2014-06-20 2019-10-02 株式会社東芝 メモリ管理装置、プログラム、及び方法
JP6162652B2 (ja) 2014-06-20 2017-07-12 株式会社東芝 メモリ管理装置、プログラム、及び方法
US9538377B2 (en) 2014-08-22 2017-01-03 Salesforce.Com, Inc. Switching between restricted-access websites on mobile user devices
US9866589B1 (en) * 2014-12-17 2018-01-09 Airwatch Llc Management of actions initiated by applications in client devices
US9715410B2 (en) * 2015-01-30 2017-07-25 Red Hat Israel, Ltd. Protected virtual machine function access
JP6712720B2 (ja) * 2016-03-22 2020-06-24 オリンパス株式会社 照合情報処理装置
KR20180071679A (ko) * 2016-12-20 2018-06-28 삼성전자주식회사 사용자 단말 장치 및 그의 제어 방법
WO2018139296A1 (ja) * 2017-01-25 2018-08-02 日立オートモティブシステムズ株式会社 車両制御装置およびプログラム更新システム
US11868995B2 (en) 2017-11-27 2024-01-09 Nok Nok Labs, Inc. Extending a secure key storage for transaction confirmation and cryptocurrency
US11831409B2 (en) 2018-01-12 2023-11-28 Nok Nok Labs, Inc. System and method for binding verifiable claims
CN109445902B (zh) * 2018-09-06 2021-05-07 新华三云计算技术有限公司 一种数据操作方法和系统
US12041039B2 (en) 2019-02-28 2024-07-16 Nok Nok Labs, Inc. System and method for endorsing a new authenticator
US11792024B2 (en) 2019-03-29 2023-10-17 Nok Nok Labs, Inc. System and method for efficient challenge-response authentication

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001175486A (ja) * 1999-12-21 2001-06-29 Hitachi Ltd 計算機システム
JP2001337864A (ja) * 2000-03-22 2001-12-07 Hitachi Ltd アクセス制御システム
JP2006065847A (ja) * 2004-08-25 2006-03-09 Microsoft Corp プログラムコードの安全な実行のためのシステムおよび方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7035850B2 (en) * 2000-03-22 2006-04-25 Hitachi, Ltd. Access control system
JP2003186561A (ja) 2001-12-20 2003-07-04 Nippon Telegr & Teleph Corp <Ntt> 情報処理方法、装置及びプログラム
EP1503286B1 (en) 2003-07-30 2014-09-03 Jaluna SA Multiple operating system networking
US7310721B2 (en) 2003-10-30 2007-12-18 Microsoft Corporation Shadow page tables for address translation control
US7725895B2 (en) * 2004-03-31 2010-05-25 Intel Corporation Processor control register virtualization to minimize virtual machine exits
US7797699B2 (en) 2004-09-23 2010-09-14 Intel Corporation Method and apparatus for scheduling virtual machine access to shared resources
JP4116024B2 (ja) * 2005-07-29 2008-07-09 株式会社ソニー・コンピュータエンタテインメント ペリフェラルの使用管理方法、電子システム及びその構成装置
US8042109B2 (en) 2006-03-21 2011-10-18 Intel Corporation Framework for domain-specific run-time environment acceleration using virtualization technology
US7613847B2 (en) 2006-05-16 2009-11-03 Hewlett-Packard Development Company, L.P. Partially virtualizing an I/O device for use by virtual machines

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001175486A (ja) * 1999-12-21 2001-06-29 Hitachi Ltd 計算機システム
JP2001337864A (ja) * 2000-03-22 2001-12-07 Hitachi Ltd アクセス制御システム
JP2006065847A (ja) * 2004-08-25 2006-03-09 Microsoft Corp プログラムコードの安全な実行のためのシステムおよび方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2249280A4 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013080848A1 (ja) * 2011-11-28 2013-06-06 Suginaka Junko ファイル通信処理方法及び外部デバイス

Also Published As

Publication number Publication date
JP5260081B2 (ja) 2013-08-14
CN101946252B (zh) 2013-08-14
EP2249280A4 (en) 2013-02-06
JP2009199530A (ja) 2009-09-03
US20130212575A1 (en) 2013-08-15
US8689212B2 (en) 2014-04-01
CN101946252A (zh) 2011-01-12
EP2249280B1 (en) 2015-08-12
EP2249280A1 (en) 2010-11-10

Similar Documents

Publication Publication Date Title
JP5260081B2 (ja) 情報処理装置及びその制御方法
US20200349265A1 (en) Technologies for trusted i/o with a channel identifier filter and processor-based cryptographic engine
CN110447032B (zh) 管理程序与虚拟机之间的存储器页转换监测
JP5249399B2 (ja) 安全なメモリ区分を使用した安全な実行のための方法および装置
JP5175856B2 (ja) セキュアデバイス・システムにおけるフラッシュメモリ・ブロックの保護と方法
US8555089B2 (en) Program execution apparatus, control method, control program, and integrated circuit
JP4392241B2 (ja) 付属記憶装置を採用したコンピュータ・システム内の安全保護を促進するための方法ならびにシステム
JP5670578B2 (ja) 機密コードおよびデータを保護するためのアーキテクチャを含む方法および装置
US6363463B1 (en) Method and apparatus for protecting flash memory
RU2295834C2 (ru) Инициализация, поддержание, обновление и восстановление защищенного режима работы интегрированной системы, использующей средство управления доступом к данным
US20110289294A1 (en) Information processing apparatus
KR101014179B1 (ko) 플래시 대용량 저장 메모리를 가진 보안 장치를 위한 보안 및 적응형 시스템 구조
CN109800050B (zh) 一种虚拟机的内存管理方法、装置、相关设备及系统
KR101081118B1 (ko) 보안되는 프로그램을 복원하는 컴퓨터 구현 방법, 정보 처리 시스템 및 컴퓨터 판독 가능한 기록 매체
JP5346608B2 (ja) 情報処理装置およびファイル検証システム
JP2010157224A (ja) クライアント・プラットフォーム上のコンテンツを保護する方法
US20020069316A1 (en) Method and apparatus for protecting flash memory
JP2009169868A (ja) 記憶領域アクセス装置及び記憶領域のアクセス方法

Legal Events

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

Ref document number: 200980105824.2

Country of ref document: CN

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

Ref document number: 09715484

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2009715484

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 12918918

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE