KR101770417B1 - Validating the identity of a mobile application for mobile application management - Google Patents
Validating the identity of a mobile application for mobile application management Download PDFInfo
- Publication number
- KR101770417B1 KR101770417B1 KR1020157035910A KR20157035910A KR101770417B1 KR 101770417 B1 KR101770417 B1 KR 101770417B1 KR 1020157035910 A KR1020157035910 A KR 1020157035910A KR 20157035910 A KR20157035910 A KR 20157035910A KR 101770417 B1 KR101770417 B1 KR 101770417B1
- Authority
- KR
- South Korea
- Prior art keywords
- mobile application
- mobile
- application
- access
- management
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/33—User authentication using certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/102—Entity profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/51—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring 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/53—Monitoring 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/126—Applying verification of the received information the source of the received data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/321—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
- H04L9/3213—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/06—Authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/08—Access security
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/30—Security of mobile devices; Security of mobile applications
- H04W12/37—Managing security policies for mobile devices or for controlling mobile applications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2103—Challenge-response
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2115—Third party
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Power Engineering (AREA)
- Computer And Data Communications (AREA)
- Telephonic Communication Services (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
기업 자원들에의 액세스를 관리하는 방법이 제공된다. 액세스 관리자는 그 모바일 디바이스에 설치된 모바일 애플리케이션을 검증하기 위하여 모바일 디바이스에서 동작할 수 있다. 만일 액세스 관리자가 모바일 애플리케이션을 성공적으로 검증하지 못하면, 액세스 관리자는 모바일 애플리케이션이 컴퓨팅 자원에 액세스하는 것을 막을 수 있다. 만일 액세스 관리자가 모바일 애플리케이션을 성공적으로 검증하면, 액세스 관리자는 모바일 애플리케이션을 신뢰성 있는 모바일 애플리케이션으로서 식별할 수 있다. 액세스 관리자는 신뢰성 있는 모바일 애플리케이션이 컴퓨팅 자원에 액세스하는 것을 허용할 수 있다. A method of managing access to corporate resources is provided. The access manager may operate on the mobile device to verify the mobile application installed on the mobile device. If the access manager does not successfully validate the mobile application, the access manager can prevent the mobile application from accessing the computing resource. If the access manager successfully validates the mobile application, the access manager can identify the mobile application as a trusted mobile application. The access manager may allow a trusted mobile application to access the computing resource.
Description
[0001] 본 출원은 "VALIDATING THE IDENTITY OF A MOBILE APPLICATION FOR MOBILE APPLICATION MANAGEMENT"라는 명칭으로 2013년 5월 20일에 출원된 미국 출원번호 제13/898,167호의 우선권을 주장하며, 이 출원은 "Systems and Methods for Enterprise Mobility Management”라는 명칭으로 2013년 3월 29일에 출원된 미국 가특허 출원번호 제61/806,577호의 우선권을 주장한다.[0001] This application claims priority to U.S. Serial No. 13 / 898,167, filed May 20, 2013, entitled " VALIDATING THE IDENTITY OF A MOBILE APPLICATION FOR MOBILE APPLICATION MANAGEMENT, No. 61 / 806,577, filed on March 29, 2013, entitled " Methods for Enterprise Mobility Management ".
[0002] 본원에서 설명된 양상들은 일반적으로 모바일 컴퓨팅 디바이스들의 모바일 애플리케이션들의 관리에 관한 것이다. 특히, 다양한 양상들은 비관리 디바이스에서 동작하는 모바일 애플리케이션을 검증하고 그 모바일 애플리케이션의 실행을 제어하는 접근법들을 제공한다. [0002] The aspects described herein generally relate to the management of mobile applications of mobile computing devices. In particular, various aspects provide approaches for verifying a mobile application running on an unmanaged device and controlling the execution of the mobile application.
[0003] 모바일 컴퓨팅 디바이스들의 사용은 계속해서 성장하고 있다. 특히, 회사 및 다른 기업들은 개인들이 다양한 컴퓨팅 자원들에 원격적으로 액세스하도록 하는데 있어서 모바일 컴퓨팅 디바이스들에 의존해 오고 있다. 이러한 자원들은 예컨대 전자 메일 서비스들, 파일 서비스들, 데이터, 및 기업의 컴퓨터 시스템들에 의해 또는 모바일 디바이스 그 자체에 의해 제공된 다른 전자 자원들을 포함할 수 있다.[0003] The use of mobile computing devices continues to grow. In particular, companies and other companies have relied on mobile computing devices to allow individuals to remotely access various computing resources. Such resources may include, for example, e-mail services, file services, data, and other electronic resources provided by corporate computer systems or by the mobile device itself.
[0004] 개인이 컴퓨팅 자원들에 대해 국부적으로 위치하던지 또는 원격적으로 위치하는지 간에, 기업은 그 컴퓨팅 자원들에 대한 액세스를 보호하고 제어하려고 노력하고 있다. 따라서, 기업은 개인이 액세스하도록 허가되고 자격이 부여된 자원들에만 개인이 액세스할 수 있도록 하기 위하여, 다양한 기술적 메커니즘들(예컨대, 게이트웨이들 및 방화벽들) 뿐만아니라 액세스 제어 메커니즘들(예컨대, 사용자 인증 및 허가)을 구현할 수 있다. 이러한 메커니즘들은 또한 허가되지 않은 개인들이 컴퓨팅 자원들 중 임의의 자원에 액세스하는 것을 방지할 수 있다. [0004] Whether an individual is locally or remotely located with respect to computing resources, an enterprise is trying to protect and control access to its computing resources. Thus, an enterprise may use a variety of technical mechanisms (e.g., gateways and firewalls) as well as access control mechanisms (e.g., user authentication And authorization). These mechanisms may also prevent unauthorized individuals from accessing any of the computing resources.
[0005] 모바일 디바이스들에 대하여, 기업은 그 모바일 디바이스들로부터 컴퓨팅 자원들에 대한 원격 액세스를 제어하는 다양한 접근법들을 사용할 수 있다. 이러한 노력은 모바일 디바이스 관리로서 지칭될 수 있다. 하나의 접근법에서, 기업은 기업-소유 및 기업-통제 모바일 디바이스를 개인에게 제공할 수 있다. 이러한 디바이스는 기업이 모바일 디바이스의 구성, 기능, 동작 및 데이터를 제어하도록 구성될 수 있다. 이와 관련하여, 기업-제어 모바일 디바이스는 관리 디바이스(managed device)로서 지칭될 수 있다. 기업은 예컨대 클라이언트-서버 아키텍처를 통해 관리 디바이스를 원격적으로 제어할 수 있다. 기업 서버는 관리 디바이스에 상주하는 클라이언트 애플리케이션에 커맨드(command)들을 원격적으로 발행할 수 있다. 이러한 커맨드들은 예컨대 새로운 애플리케이션들 또는 기능을 설치하는 것, 기존 애플리케이션들 또는 기능을 업데이트하는 것, 구성 세팅들을 업데이트하는 것, 데이터를 제공하는 것 등을 포함할 수 있다. 만일 관리 디바이스가 분실되거나 또는 도난당하면, 기업은 허가받지 않은 개인이 디바이스에 대해 액세스하거나 또는 디바이스를 통해 자원들에 액세스하는 것을 막기 위하여 디바이스를 로크(lock)하거나 또는 와이프(wipe)하도록 커맨드들을 발행할 수 있다. [0005] For mobile devices, an enterprise can use a variety of approaches to control remote access to computing resources from the mobile devices. This effort can be referred to as mobile device management. In one approach, an enterprise can provide enterprise-owned and enterprise-controlled mobile devices to individuals. Such a device may be configured so that the enterprise controls the configuration, functionality, operation and data of the mobile device. In this regard, the enterprise-controlled mobile device may be referred to as a managed device. The enterprise can remotely control the managed device via a client-server architecture, for example. The enterprise server may remotely issue commands to a client application residing on the management device. These commands may include, for example, installing new applications or functions, updating existing applications or functions, updating configuration settings, providing data, and the like. If a managed device is lost or stolen, the enterprise issues commands to lock or wipe the device to prevent unauthorized individuals from accessing or accessing the devices through the device can do.
[0006] 그러나, 개인들은 기업-소유 모바일 디바이스들 뿐만아니라 개인 모바일 디바이스 둘다를 유지하는데 불편을 느낄 수 있다. 대신에, 개인들은 자신들의 개인 모바일 디바이스들에 의하여 자원들을 액세스하는 것을 선호할 수 있다. 이의 실행은 BYOD(bring-your-own-device)로서 지칭될 수 있다. 이들 개인 디바이스들이 기업에 의해 통제되지 않을 수 있기 때문에, 이러한 개인 디바이스들은 비관리 디바이스들로서 지칭될 수 있다. 이러한 선호도에 부응하기 위하여, 비관리 디바이스들이 이들 자원들에 액세스하도록 하는 솔루션들은 현재 개발중에 있다. [0006] However, individuals may feel inconvenience in maintaining both corporate-owned mobile devices as well as personal mobile devices. Instead, individuals may prefer to access resources by their personal mobile devices. Its implementation may be referred to as BYOD (bring-your-own-device). Since these individual devices may not be controlled by the enterprise, these individual devices may be referred to as unmanaged devices. To meet this preference, solutions are being developed that allow unmanaged devices to access these resources.
[0007] 예컨대, 기업-통제 모바일 애플리케이션을 제공할지도, 비관리 디바이스에서 동작하도록 구성되는 관리 모바일 애플리케이션은 현재 개발중인 하나의 접근법이다. 그러나, 난제들이 아직 남아있다. 비관리 디바이스상에서 동작하는 관리 모바일 애플리케이션들이 실행가능한 접근법이 되도록 하기 위하여, 관리 모바일 애플리케이션을 통해 허가 받지 않고 자원들에 액세스하거나 또는 허가 받지 않고 이 자원들을 사용하는 것을 막는 메커니즘들이 필요할 수 있다. 특히, 자원들을 보호하는 보안 메커니즘들을 회피하기 위하여 관리 모바일 애플리케이션이 변경되도록 하기 위하여 관리 모바일 애플리케이션의 아이덴티티를 검증할 필요성이 있다. 더욱이, 비관리 모바일 디바이스의 관리 모바일 애플리케이션의 동작을 제어할 필요성이 있다.[0007] For example, a managed mobile application that is configured to operate on an unmanaged device, either providing a corporate-controlled mobile application, is one approach that is currently under development. However, the difficulties still remain. To allow managed mobile applications running on unmanaged devices to be a viable approach, mechanisms may be needed to prevent unauthorized access to, or unauthorized use of, resources unauthorized through a managed mobile application. In particular, there is a need to verify the identity of the management mobile application in order to allow the management mobile application to change in order to avoid security mechanisms protecting the resources. Moreover, there is a need to control the operation of the management mobile application of the unmanaged mobile device.
[0008] 하기의 설명은 본원에 설명된 다양한 양상들의 간략화된 요약을 제시한다. 이러한 요약은 포괄적인 개요가 아니며, 중요하거나 핵심적인 엘리먼트들을 식별하거나, 청구항들의 범위를 서술하고자 할 의도도 아니다. 하기의 요약은 단순히 아래에서 제공되는 상세한 설명에 대한 도입부로서 간략화된 형태로 일부 개념들을 제시한다. [0008] The following description presents a simplified summary of the various aspects set forth herein. This summary is not a comprehensive overview, nor is it intended to identify key or critical elements or to delineate the scope of the claims. The following summary merely presents some concepts in a simplified form as an introduction to the detailed description provided below.
[0009] 앞서 설명된 종래기술의 한계들을 극복하고 본 명세서를 읽고 이해할 때 명백하게 될 다른 한계들을 극복하기 위하여, 본원에서 설명된 양상들은 모바일 컴퓨팅 디바이스들의 관리 모바일 애플리케이션들을 사용하여 기업 컴퓨팅 시스템에 위치한 원격 컴퓨팅 자원들에 대한 액세스를 제어하는 것에 관한 것이다. 더욱이, 본 개시내용의 양상들은 모바일 컴퓨팅 디바이스들 그 자체의 국부 컴퓨팅 자원들에 대한 액세스를 제어하는 것에 관한 것이다. 액세스 관리자는 컴퓨팅 자원들에 대한 액세스를 요청하는 모바일 애플리케이션이 그 자체를 정확하게 식별하였고 모바일 컴퓨팅 디바이스에 설치된 이후에 나중에 변경되지 않았는지의 여부를 결정하는 검증 프로세스(validation process)를 수행할 수 있다. 이러한 방식으로, 액세스 관리자는 컴퓨팅 자원에 대한 액세스를 요청하는 모바일 애플리케이션이 신뢰성이 있을 수 있고 그 자원들을 보호하기 위하여 사용되는 보안 메커니즘들을 회피하는 것을 시도하지 않음을 보장할 수 있다. 결과적으로, 기업과 연관된 개인들은 자신들의 개인 모바일 디바이스들로 원격 및 국부 컴퓨팅 자원들을 유리하게 활용할 수 있다. [0009] In order to overcome the limitations of the prior art described above and to overcome other limitations which will become apparent upon reading and understanding the present specification, aspects described herein may be implemented using mobile computing devices of the mobile computing devices, To controlling access to computing resources. Moreover, aspects of the present disclosure relate to controlling access to local computing resources of mobile computing devices themselves. The access manager may perform a validation process that determines whether the mobile application that is requesting access to the computing resources has correctly identified itself and has not changed since it was installed on the mobile computing device. In this manner, the access manager can ensure that the mobile application requesting access to the computing resource does not attempt to circumvent the security mechanisms that may be trusted and used to protect those resources. As a result, individuals associated with the enterprise can leverage remote and local computing resources with their personal mobile devices.
[0010] 본원에서 설명된 제 1 양상은 기업 자원들에의 액세스를 관리하는 방법을 제공한다. 액세스 관리자는 그 모바일 디바이스에 설치된 모바일 애플리케이션을 검증하도록 모바일 디바이스에서 동작할 수 있다. 만일 액세스 관리자가 모바일 애플리케이션을 성공적으로 검증하지 못하면, 액세스 관리자는 모바일 애플리케이션이 컴퓨팅 자원에 액세스하는 것을 막을 수 있다. 만일 액세스 관리자가 모바일 애플리케이션을 성공적으로 검증하면, 액세스 관리자는 모바일 애플리케이션을 신뢰성 있는 모바일 애플리케이션으로서 식별할 수 있다. 따라서, 액세스 관리자는 신뢰성 있는 모바일 애플리케이션이 컴퓨팅 자원에 액세스하는 것을 허용할 수 있다. [0010] The first aspect described herein provides a method for managing access to enterprise resources. The access manager may operate on the mobile device to verify the mobile application installed on the mobile device. If the access manager does not successfully validate the mobile application, the access manager can prevent the mobile application from accessing the computing resource. If the access manager successfully validates the mobile application, the access manager can identify the mobile application as a trusted mobile application. Thus, the access manager may allow trusted mobile applications to access the computing resources.
[0011] 본원에서 설명된 제 2 양상은 모바일 컴퓨팅 디바이스를 제공한다. 모바일 컴퓨팅 디바이스는 컴퓨팅 자원에 액세스하도록 구성된 모바일 애플리케이션, 모바일 애플리케이션과 연관된 저장된 식별 정보 및 액세스 관리자를 포함할 수 있다. 액세스 관리자는, 앞서 설명된 바와같이, 모바일 애플리케이션을 검증하고 컴퓨팅 자원에 대한 액세스를 차단하거나 또는 허용하도록 구성될 수 있다.[0011] A second aspect described herein provides a mobile computing device. The mobile computing device may include a mobile application configured to access computing resources, stored identification information associated with the mobile application, and an access manager. The access manager may be configured to verify the mobile application and block or allow access to the computing resources, as described above.
[0012] 본원에서 설명된 제 3 양상은 모바일 디바이스에서 동작하도록 구성된 액세스 관리자를 제공한다. 앞서 설명된 바와같이, 액세스 관리자는 또한 모바일 디바이스의 모바일 애플리케이션을 검증하고 모바일 애플리케이션을 통해 컴퓨팅 자원에 대한 액세스를 차단하거나 또는 허용하도록 구성될 수 있다. 액세스 관리자는 모바일 애플리케이션에 저장된 애플리케이션 정책에 기초하여 모바일 애플리케이션의 동작을 제어하도록 추가로 구성될 수 있다. [0012] A third aspect described herein provides an access manager configured to operate in a mobile device. As described above, the access manager may also be configured to verify the mobile application of the mobile device and block or allow access to the computing resource via the mobile application. The access manager may be further configured to control the operation of the mobile application based on an application policy stored in the mobile application.
[0013] 본원에서 설명된 일부 양상들은 저장된 식별 정보가 모바일 애플리케이션과 연관되고 이와 함께 생성된 원래의 디지털 인증서일 수 있음을 제공한다. 액세스 관리자는 모바일 컴퓨팅 디바이스의 모바일 운영 체제로부터 수신된 디지털 인증서와 모바일 애플리케이션에 대하여 생성된 원래의 디지털 인증서를 비교함으로써 모바일 애플리케이션을 검증할 수 있다. 컴퓨팅 자원들은 모바일 컴퓨팅 디바이스에 대하여 국부적으로 또는 원격적으로 위치할 수 있다. 컴퓨팅 자원들의 예들은 모바일 컴퓨팅 디바이스 또는 원격 컴퓨팅 시스템에서 동작하는 소프트웨어 애플리케이션, 모바일 컴퓨팅 디바이스 또는 원격 컴퓨팅 시스템에 의해 제공된 서비스, 모바일 컴퓨팅 디바이스 또는 원격 컴퓨팅 시스템에 저장된 데이터, 모바일 컴퓨팅 디바이스 또는 원격 컴퓨팅 시스템의 하드웨어 또는 이들의 조합을 포함한다. [0013] Some aspects described herein provide that stored identification information may be associated with a mobile application and may be the original digital certificate generated with it. The access manager can verify the mobile application by comparing the digital certificate received from the mobile operating system of the mobile computing device with the original digital certificate generated for the mobile application. The computing resources may be located locally or remotely to the mobile computing device. Examples of computing resources include, but are not limited to, software applications running on a mobile computing device or a remote computing system, services provided by a mobile computing device or a remote computing system, data stored on a mobile computing device or remote computing system, hardware of a mobile computing device or remote computing system Or a combination thereof.
[0014] 저장된 식별 정보는 또한 생성시 모바일 애플리케이션에 임베딩된(embedded) 또는 모바일 애플리케이션으로부터 유도된 식별 토큰들일 수 있다. 애플리케이션 서명은 임베딩되고 유도된 식별 토큰들의 배열(arrangement)에 기초하여 구성될 수 있다. 액세스 관리자는 또한 검증 동안 넌스(nonce)를 모바일 애플리케이션에 제공하고, 애플리케이션 서명 및 넌스를 사용하여, 예상된 해시값을 컴퓨팅하는데 넌스를 사용할 수 있다. 액세스 관리자는 예상 응답, 예컨대 예상 해시값을 생성하여, 액세스 관리자로부터의 챌린지(challenge) 이후에 모바일 애플리케이션으로부터 수신된 응답과 예상 응답을 비교할 수 있다.[0014] The stored identification information may also be embedded in the mobile application at the time of creation or identification tokens derived from the mobile application. The application signature may be constructed based on an arrangement of embedded and derived identification tokens. The access manager may also provide nonce during verification for the mobile application, and may use nonce to compute the expected hash value, using application signatures and nonsense. The access manager may generate an expected response, e.g., the expected hash value, to compare the expected response with the response received from the mobile application after a challenge from the access manager.
[0015] 이들 및 추가 양상들은 이하에서 더 상세히 논의되는 개시내용들의 장점과 함께 인식될 것이다.[0015] These and further aspects will be recognized in conjunction with the advantages of the disclosure discussed in more detail below.
[0016] 본원에서 설명된 양상들 및 이의 장점들은 유사한 참조 부호들이 유사한 특징들을 표시하는 첨부 도면들을 고려하여 이하의 상세한 설명을 참조함으로써 더 완전하게 이해될 수 있다.
[0017] 도 1은 본원에서 설명된 하나 이상의 예시적인 양상들에 따라 사용될 수 있는 예시적인 컴퓨터 시스템 아키텍처를 도시한다.
[0018] 도 2는 본원에서 설명된 하나 이상의 예시적인 양상들에 따라 사용될 수 있는 예시적인 원격-액세스 시스템 아키텍처를 도시한다.
[0019] 도 3은 본원에서 설명된 하나 이상의 예시적인 양상들에 따라 사용될 수 있는 예시적인 가상화(하이퍼바이저) 시스템 아키텍처를 도시한다.
[0020] 도 4는 본원에서 설명된 하나 이상의 예시적인 양상들에 따라 사용될 수 있는 예시적인 클라우드-기반 시스템 아키텍처를 도시한다.
[0021] 도 5는 예시적인 기업 모빌리티 관리 시스템을 도시한다.
[0022] 도 6은 다른 예시적인 기업 모빌리티 관리 시스템을 도시한다.
[0023] 도 7은 예시적인 모바일 디바이스 관리 시스템을 도시한다.
[0024] 도 8은 관리 모바일 애플리케이션에 대한 예시적인 애플리케이션 서명 및 챌린지 응답의 블록도를 도시한다.
[0025] 도 9는 비관리 모바일 디바이스의 모바일 애플리케이션을 관리하기 위한 예시적인 방법 단계들의 흐름도이다.
[0026] 도 10은 비관리 모바일 디바이스에서 관리 동작을 위한 관리 모바일 애플리케이션을 준비하기 위한 예시적인 방법 단계들의 흐름도이다.
[0027] 도 11은 비관리 모바일 디바이스에서 관리 모바일 애플리케이션을 초기화하기 위한 예시적인 방법 단계들의 흐름도이다.
[0028] 도 12는 제 1 타입의 모바일 운영 체제를 가진 비관리 모바일 디바이스에서 관리 모바일 애플리케이션을 검증하기 위한 예시적인 방법 단계들의 흐름도이다.
[0029] 도 13은 제 2 타입의 모바일 운영 체제를 가진 비관리 모바일 디바이스에서 관리 모바일 애플리케이션을 검증하기 위한 예시적인 방법 단계들의 흐름도이다.
[0030] 도 14는 관리 모바일 애플리케이션의 동작 동안 애플리케이션 정책들을 시행하기 위한 예시적인 방법 단계들의 흐름도이다. BRIEF DESCRIPTION OF THE DRAWINGS [0016] The aspects described herein and their advantages may be more fully understood by reference to the following detailed description, taken in conjunction with the accompanying drawings, wherein like reference numerals denote like features.
[0017] FIG. 1 illustrates an exemplary computer system architecture that may be used in accordance with one or more exemplary aspects set forth herein.
[0018] FIG. 2 illustrates an exemplary remote-access system architecture that may be used in accordance with one or more exemplary aspects set forth herein.
[0019] FIG. 3 illustrates an exemplary virtualization (hypervisor) system architecture that may be used in accordance with one or more exemplary aspects set forth herein.
[0020] FIG. 4 illustrates an exemplary cloud-based system architecture that may be used in accordance with one or more illustrative aspects described herein.
[0021] FIG. 5 illustrates an exemplary enterprise mobility management system.
[0022] FIG. 6 illustrates another exemplary enterprise mobility management system.
[0023] FIG. 7 illustrates an exemplary mobile device management system.
[0024] FIG. 8 shows a block diagram of an exemplary application signature and challenge response for a management mobile application.
[0025] FIG. 9 is a flow diagram of exemplary method steps for managing a mobile application of an unmanaged mobile device.
[0026] FIG. 10 is a flow diagram of exemplary method steps for preparing a management mobile application for management operations in an unmanaged mobile device.
[0027] Figure 11 is a flow diagram of exemplary method steps for initializing a managed mobile application in an unmanaged mobile device.
[0028] Figure 12 is a flow diagram of exemplary method steps for verifying a managed mobile application in an unmanaged mobile device with a mobile operating system of a first type.
[0029] FIG. 13 is a flow diagram of exemplary method steps for verifying a managed mobile application in an unmanaged mobile device having a second type of mobile operating system.
[0030] FIG. 14 is a flow diagram of exemplary method steps for enforcing application policies during operation of a management mobile application.
[0031] 다양한 실시예들의 이하의 설명에서는 실시예의 일부분을 형성하며, 본원에서 설명된 양상들이 실시될 수 있는 예시적인 다양한 실시예들이 도시되는 앞서 식별된 첨부 도면들을 참조한다. 본원에서 설명된 범위로부터 벗어나지 않고, 다른 실시예들이 활용될 수 있고 구성 및 기능이 수정될 수 있다는 것이 이해되어야 한다. 다양한 양상들은 다른 실시예들을 가능하게 하며 다양한 상이한 방식들로 실시되거나 또는 수행될 수 있다. BRIEF DESCRIPTION OF THE DRAWINGS [0031] The following description of the various embodiments forms part of the embodiments and references to the above identified embodiments, in which are shown various exemplary embodiments in which aspects described herein may be practiced. It is to be understood that other embodiments may be utilized and that the structure and function may be modified without departing from the scope of the invention as described herein. The various aspects enable other embodiments and may be practiced or carried out in various different ways.
[0032] 이하에서 상세히 설명된 요지에 대한 총론으로서, 본원에서 설명된 양상들은 원격적으로 위치한 기업 컴퓨팅 시스템에서 또는 모바일 컴퓨팅 디바이스들 그 자체에서 컴퓨팅 자원들에 대한 원격 및 국부 액세스를 제어하는 것에 관한 것이다. 액세스 관리자는 컴퓨팅 자원들에 대한 액세스를 요청하는 모바일 애플리케이션이 그 자체를 정확하게 식별하였고 모바일 컴퓨팅 디바이스에 설치된 이후 나중에 변경되지 않았는지의 여부를 결정하는 검증 프로세스를 수행할 수 있다. 이러한 방식으로, 액세스 관리자는 컴퓨팅 자원에 대한 액세스를 요청하는 모바일 애플리케이션이 신뢰성이 있을 수 있고 그 자원들을 보호하기 위하여 사용되는 보안 메커니즘들을 회피하는 것을 시도하지 않음을 보장할 수 있다. 결과적으로, 기업과 연관된 개인들은 자신들의 개인 모바일 디바이스들로 컴퓨팅 자원들을 유리하게 활용할 수 있다. 컴퓨팅 자원들은 모바일 컴퓨팅 디바이스에 대해 국부적으로 또는 원격적으로 위치할 수 있다. 컴퓨팅 자원들의 예들은 모바일 컴퓨팅 디바이스 또는 원격 컴퓨팅 시스템에서 동작하는 소프트웨어 애플리케이션, 모바일 컴퓨팅 디바이스 또는 원격 컴퓨팅 시스템에 의해 제공되는 서비스, 모바일 컴퓨팅 디바이스 또는 원격 컴퓨팅 시스템에 저장된 데이터, 모바일 컴퓨팅 디바이스 또는 원격 컴퓨팅 시스템의 하드웨어, 및 이들의 조합들을 포함한다. 본 개시내용에서, 기업의 컴퓨팅 시스템에 원격적으로 위치한 컴퓨팅 자원들은 기업 자원들로서 지칭된다.As a general overview of the subject matter described in detail below, aspects described herein relate to controlling remote and local access to computing resources in remotely located enterprise computing systems or in mobile computing devices themselves will be. The access manager may perform a validation process that determines whether the mobile application requesting access to the computing resources has correctly identified itself and has not changed since its installation on the mobile computing device. In this manner, the access manager can ensure that the mobile application requesting access to the computing resource does not attempt to circumvent the security mechanisms that may be trusted and used to protect those resources. As a result, individuals associated with the enterprise can leverage the computing resources with their personal mobile devices. The computing resources may be located locally or remotely to the mobile computing device. Examples of computing resources include, but are not limited to, software applications running on a mobile computing device or a remote computing system, services provided by a mobile computing device or a remote computing system, data stored on a mobile computing device or a remote computing system, Hardware, and combinations thereof. In this disclosure, computing resources remotely located in a company ' s computing system are referred to as enterprise resources.
[0033] 본원에서 사용되는 어법 및 전문용어가 설명을 위한 것이며 제한으로서 간주되지 않아야 한다는 것이 이해되어야 한다. 오히려, 본원에서 사용되는 문구들 및 용어들은 그들의 가장 넓은 해석 및 의미가 부여되어야 한다. "포함하는" 및 "구성하는" 및 이의 변형들의 사용은 이후에 리스트되는 항목들 및 이의 균등물들 뿐만아니라 추가 항목들 및 이의 균등물들을 포함하는 것으로 의미된다. "장착되는", "연결되는", "커플링되는", "포지셔닝되는", "연동되는"이라는 용어들 및 유사한 용어들의 사용은 직접적으로 및 간접적으로 장착하는, 연결하는, 커플링하는, 포지셔닝하는 및 연동하는 것을 포함하는 것으로 의도된다.[0033] It is to be understood that the phraseology and terminology employed herein is for the purpose of description and should not be regarded as limiting. Rather, the phrases and terminology used herein should be accorded the broadest interpretation and meaning of their abbreviations. The use of "comprising" and "comprising" and variations thereof is meant to include the items listed thereafter and equivalents thereof as well as additional items and equivalents thereof. The use of the terms "attached," " coupled, "" coupled," " positioned ", "coupled ", and similar terms refer to direct and indirect mounting, And < RTI ID = 0.0 > and / or < / RTI >
[0034] 컴퓨팅 아키텍처 [0034] Computing Architecture
[0035] 컴퓨터 소프트웨어, 하드웨어 및 네트워크들은 특히 스탠드얼론(standalone), 네트워크화, 원격-액세스(원격 데이크탑으로도 알려짐), 가상화 및/또는 클라우드-기반 환경들을 비롯하여 다양한 상이한 시스템 환경들에서 활용될 수 있다. 도 1은 스탠드얼론 및/또는 네트워크화 환경에서, 본 개시내용의 하나 이상의 예시적인 양상들을 구현하기 위하여 사용될 수 있는 시스템 아키텍처 및 데이터 프로세싱 디바이스의 일례를 예시한다. 다양한 네트워크 노드들(103, 105, 107 및 109)은 광역 통신망(WAN)(101), 예컨대 인터넷을 통해 상호 연결될 수 있다. 사설 인트라넷들, 기업 네트워크들, LAN들, 도시권 통신망(MAN), 무선 네트워크들, 개인 네트워크(PAN)들 등을 포함하는 다른 네트워크들이 또한 또는 대안적으로 사용될 수 있다. 네트워크(101)는 예시적 목적이며, 더 적은 수의 컴퓨터 네트워크들로 또는 더 많은 수의 컴퓨터 네트워크들로 대체될 수 있다. 근거리 통신망(LAN)은 임의의 공지된 LAN 토폴로지 중 하나 이상을 가질 수 있으며, 이더넷과 같은 다양한 상이한 프로토콜들 중 하나 이상을 사용할 수 있다. 디바이스들(103, 105, 107, 109) 및 다른 디바이스들(도시안됨)은 트위스트 페어 와이어들, 동축 케이블, 광섬유들, 라디오 파들 또는 다른 통신 매체를 통해 네트워크들 중 하나 이상의 네트워크에 연결될 수 있다. [0035] Computer software, hardware and networks can be utilized in a variety of different system environments, especially including standalone, networked, remote-access (also known as remote desktops), virtualization and / or cloud- have. 1 illustrates an example of a system architecture and data processing device that may be used to implement one or more exemplary aspects of the present disclosure in a standalone and / or networked environment. The
[0036] 본원에서 사용되고 도면들에 도시된 바와같은 "네트워크"란 용어는 원격 저장 디바이스들이 하나 이상의 통신 경로들을 통해 함께 커플링되는 시스템들 뿐만아니라 가끔씩 저장 능력을 가지는 이러한 시스템들에 커플링될 수 있는 스탠드-얼론 디바이스들을 지칭한다. 결과적으로, 용어 "네트워크"는 "물리적 네트워크" 뿐만아니라 "콘텐츠 네트워크"를 포함하며, "콘텐츠 네트워크"는 모든 물리적 네트워크들에 걸쳐 상주하는 데이터로 구성되며, 단일 엔티티로 여겨질 수 있다. [0036] The term "network " as used herein and illustrated in the figures may be coupled to systems in which remote storage devices are coupled together via one or more communication paths, as well as occasionally storage systems Lt; / RTI > devices. Consequently, the term "network" includes not only a "physical network ", but also a" content network ", wherein the "content network" consists of data residing across all of the physical networks.
[0037] 컴포넌트들은 데이터 서버(103), 웹 서버(105) 및 클라이언트 컴퓨터들(107, 109)을 포함할 수 있다. 데이터 서버(103)는 본원에서 설명된 개시내용의 하나 이상의 예시적인 양상들을 수행하기 위한 제어 소프트웨어 및 데이터베이스들의 전체 액세스, 제어 및 관리를 제공한다. 데이터 서버(103)는 웹 서버(105)에 연결될 수 있으며, 웹 서버(105)를 통해 사용자들은 요청된 데이터와 상호작용하여 이 데이터를 획득한다. 대안적으로, 데이터 서버(103)는 그 자체적으로 웹 서버로서 작용할 수 있고 인터넷에 직접 연결될 수 있다. 데이터 서버(103)는 네트워크(101)(예컨대, 인터넷)를 통해, 직접 또는 간접 연결을 통해 또는 일부 다른 네트워크를 통해 웹 서버(105)에 연결될 수 있다. 사용자들은 웹 서버(105)에 의해 호스팅되는 하나 이상의 외부적으로 노출된 웹 사이트들을 통해 데이터 서버(103)에 연결하기 하여 원격 컴퓨터들(107, 109)을 사용하여, 예컨대 웹 브라우저들을 사용하여 데이터 서버(103)와 상호작용할 수 있다. 클라이언트 컴퓨터들(107, 109)은 데이터 서버(103)에 저장된 데이터에 액세스하기 위하여 데이터 서버(103)와 협력하여 사용될 수 있거나 또는 다른 목적들을 위해 사용될 수 있다. 예컨대, 클라이언트 디바이스(107)로부터, 사용자는 기술분야에서 공지된 인터넷 브라우저를 사용하여 또는 컴퓨터 네트워크(예컨대, 인터넷)를 통해 웹 서버(105) 및/또는 데이터 서버(103)와 통신하는 소프트웨어 애플리케이션을 실행함으로써 웹 서버(105)에 액세스할 수 있다. [0037] The components may include a
[0038] 서버들 및 애플리케이션들은 동일한 물리적 머신들상에서 결합될 수 있고, 개별적인 가상 또는 논리 어드레스들을 보유할 수 있거나 또는 개별 물리 머신들상에 상주할 수 있다. 도 1은 사용될 수 있는 네트워크 아키텍처의 단지 하나의 예를 예시하며, 당업자는, 본원에서 추가로 설명되는 바와같이, 사용된 특정 네트워크 아키텍처 및 데이터 프로세싱 디바이스들이 변경될 수 있으며, 이들이 제공하는 기능이 부차적이라는 것을 인식할 것이다. 예컨대, 웹 서버(105) 및 데이터 서버(103)에 의해 제공되는 서비스들은 단일 서버상에서 결합될 수 있다.[0038] Servers and applications can be combined on the same physical machines, can have separate virtual or logical addresses, or can reside on separate physical machines. Figure 1 illustrates only one example of a network architecture that may be used and one of ordinary skill in the art will recognize that the particular network architecture and data processing devices used may be altered, as will be further described herein, . For example, the services provided by the
[0039] 각각의 컴포넌트(103, 105, 107, 109)는 임의의 타입의 공지된 컴퓨터, 서버 또는 데이터 프로세싱 디바이스일 수 있다. 데이터 서버(103)는 예컨대 레이트 서버(rate server)(103)의 전체 동작을 제어하는 프로세서(111)를 포함할 수 있다. 데이터 서버(103)는 RAM(113), ROM(115), 네트워크 인터페이스(117), 입력/출력 인터페이스들(119)(예컨대, 키보드, 마우스, 디스플레이, 프린터 등) 및 메모리(121)를 더 포함할 수 있다. I/O(119)는 데이터 또는 파일들을 판독하고, 기록하며, 디스플레이하며 그리고/또는 프린트하기 위한 다양한 인터페이스 유닛들 및 드라이브들을 포함할 수 있다. 메모리(121)는 데이터 프로세싱 디바이스(103)의 전체 동작을 제어하기 위한 운영 체제 소프트웨어(123), 본원에서 설명된 개시내용의 양상들을 수행하도록 데이터 서버(103)에 명령하기 위한 제어 로직(125), 및 본 개시내용의 양상들과 함께 사용될 수 있거나 또는 본원에서 설명된 양상들과 함께 사용되지 않을 수 있는 2차 기능, 지원 기능 및/또는 다른 기능을 제공하는 다른 애플리케이션 소프트웨어(127)를 추가로 저장할 수 있다. 제어 로직은 또한 데이터 서버 소프트웨어(125)로서 본원에서 지칭될 수 있다. 데이터 서버 소프트웨어의 기능은 제어 로직으로 코딩된 규칙들에 기초하여 자동적으로 만들어지거나 또는 사용자가 시스템내에 입력을 제공함으로써 수동적으로 만들어지거나 또는 사용자 입력(예컨대, 질의들, 데이터 업데이트들 등)에 기초한 자동 프로세싱의 조합으로 만들어진 동작들 또는 결정들을 지칭할 수 있다.[0039] Each
[0040] 제 1 데이터베이스(129) 및 제 2 데이터베이스(131)를 포함하는 메모리(121)는 또한 본 개시내용의 하나 이상의 양상들의 수행시에 사용되는 데이터를 저장할 수 있다. 일부 실시예들에서, 제 1 데이터베이스는 (예컨대, 개별 테이블, 보고 등으로서) 제 2 데이터베이스를 포함할 수 있다. 즉, 시스템 설계에 따라, 정보는 단일 데이터베이스에 저장될 수 있거나 또는 상이한 논리적, 가상적 또는 물리적 데이터베이스들로 분리될 수 있다. 디바이스들(105, 107, 109)은 디바이스(103)와 관련하여 설명된 것과 유사한 또는 상이한 아키텍처를 가질 수 있다. 당업자는 본원에서 설명된 데이터 프로세싱 디바이스(103)(또는 디바이스들(105, 107, 109))의 기능이 예컨대 다수의 컴퓨터들에 걸쳐 프로세싱 로드를 분배하기 위하여, 즉 지리적 위치, 사용자 액세스 레벨, 서비스 품질(QoS) 등에 기초하여 트랜잭션(transaction)들을 분리하기 위하여, 다수의 데이터 프로세싱 디바이스들에 걸쳐 분산될 수 있다는 것을 인식할 것이다. [0040] The
[0041] 하나 이상의 양상들은 본원에서 설명되는 바와같이 컴퓨터-사용가능 또는 판독가능 데이터 및/또는 컴퓨터-실행가능 명령들로, 예컨대 하나 이상의 컴퓨터들 또는 다른 디바이스들에 의해 실행되는 하나 이상의 프로그램 모듈들로 구현될 수 있다. 일반적으로, 프로그램 모듈들은 컴퓨터 또는 다른 디바이스의 프로세서에 의해 실행될 때 특정 태스크(task)들을 수행하거나 또는 특정 추상 데이터 타입들을 구현하는 루틴들, 프로그램들, 객체들, 컴포넌트들, 데이터 구조들 등을 포함한다. 모듈들은 실행을 위해 나중에 컴파일링되는 소스 코드 프로그래밍 언어로 쓰여질 수 있거나 또는 HTML 또는 XML와 같은 (그러나, 이에 제한되지 않음) 스크립팅 언어(scripting language)로 쓰여질 수 있다. 컴퓨터 실행가능 명령들은 비휘발성 저장 디바이스와 같은 컴퓨터 판독가능 매체상에 저장될 수 있다. 하드 디스크들, CD-ROM들, 광 저장 디바이스들, 자기 저장 디바이스들 및/또는 이들의 임의의 조합을 포함하는 임의의 적절한 컴퓨터 판독가능 저장 매체가 활용될 수 있다. 더욱이, 본원에서 설명된 바와 같은 데이터 또는 이벤트들을 나타내는 다양한 전송(비-저장) 매체는 금속 와이어들, 광섬유들, 및/또는 무선 전송 매체(예컨대, 에어(air) 및/또는 공간)와 같은 신호-전도 매체(signal-conducting media)를 통해 이동하는 전자기 파들의 형태로 소스와 목적지사이에서 이동될 수 있다. 본원에서 설명된 다양한 양상들은 방법, 데이터 프로세싱 시스템 또는 컴퓨터 프로그램 제품으로서 구현될 수 있다. 따라서, 다양한 기능은 소프트웨어, 펌웨어 및/또는 하드웨어 또는 하드웨어 균등물들, 예컨대 집적회로들, 필드 프로그램가능 게이트 어레이(FPGA)들 등으로 전체적으로 또는 부분적으로 구현될 수 있다. 특정 데이터 구조들이 개시내용의 하나 이상의 양상들을 더 효과적으로 구현하기 위하여 사용될 수 있으며, 이러한 데이터 구조들은 본원에서 설명된 컴퓨터 실행가능 명령들 및 컴퓨터-사용가능 데이터의 범위내에 있는 것으로 고려된다.[0041] One or more aspects may be implemented as computer-usable or readable data and / or computer-executable instructions, as described herein, such as one or more program modules . ≪ / RTI > Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types when executed by a computer or other device's processor do. The modules may be written in a source code programming language compiled later for execution or written in a scripting language such as but not limited to HTML or XML. Computer-executable instructions may be stored on a computer-readable medium, such as a non-volatile storage device. Any suitable computer readable storage medium can be utilized including hard disks, CD-ROMs, optical storage devices, magnetic storage devices, and / or any combination thereof. Moreover, the various transmission (non-storing) media representing the data or events as described herein may be implemented as a signal such as metal wires, optical fibers, and / or wireless transmission media (e.g., air and / Can be moved between the source and destination in the form of electromagnetic waves traveling through the signal-conducting media. The various aspects described herein may be implemented as a method, a data processing system, or a computer program product. Thus, the various functions may be implemented in whole or in part by software, firmware and / or hardware or hardware equivalents such as integrated circuits, field programmable gate arrays (FPGAs), and the like. Certain data structures may be used to more effectively implement one or more aspects of the disclosure, and such data structures are contemplated to be within the scope of computer-usable instructions and computer-usable data described herein.
[0042] 도 2를 추가로 참조하면, 본원에서 설명된 하나 이상의 양상들은 원격-액세스 환경에서 구현될 수 있다. 도 2는 본원에서 설명된 하나 이상의 예시적인 양상들에 따라 사용될 수 있는 예시적인 컴퓨팅 환경(200)의 범용 컴퓨팅 디바이스(201)를 포함하는 예시적인 시스템 아키텍처를 도시한다. 범용 컴퓨팅 디바이스(201)는 클라이언트 액세스 디바이스들에 가상 머신들을 제공하도록 구성된 단일-서버 또는 멀티-서버 데스크탑 가상화 시스템(예컨대, 원격 액세스 또는 클라우드 시스템)에서 서버(206a)로서 사용될 수 있다. 범용 컴퓨팅 디바이스(201)는 랜덤 액세스 메모리(RAM)(205), 판독-전용 메모리(ROM)(207), 입력/출력(I/O) 모듈(209) 및 메모리(215)를 비롯하여 서버 및 이와 연관된 컴포넌트들의 전체 동작을 제어하기 위한 프로세서(203)를 가질 수 있다.[0042] Referring additionally to FIG. 2, one or more aspects described herein may be implemented in a remote-access environment. FIG. 2 illustrates an exemplary system architecture including a general
[0043] I/O 모듈(209)은 마우스, 키패드, 터치 스크린, 스캐너, 광 판독기, 및/또는 스타일러스(또는 다른 입력 디바이스(들)) ― 이를 통해 범용 컴퓨팅 디바이스(201)의 사용자는 입력을 제공할 수 있음 ―를 포함할 수 있으며, 또한 오디오 출력을 제공하기 위한 스피커 및 문자, 시청각 및/또는 그래픽 출력을 제공하기 위한 비디오 디스플레이 디바이스 중 하나 이상을 포함할 수 있다. 소프트웨어는 본원에서 설명된 바와 같은 다양한 기능들을 수행하기 위하여 범용 컴퓨팅 디바이스(201)를 특수 목적 컴퓨팅 디바이스로 구성하기 위한 명령들을 프로세서(203)에 제공하도록 메모리(215) 및/또는 다른 스토리지내에 저장될 수 있다. 예컨대, 메모리(215)는 컴퓨팅 디바이스(201)에 의해 사용된 소프트웨어, 예컨대 운영 체제(217), 애플리케이션 프로그램들(219) 및 연관된 데이터베이스(221)를 저장할 수 있다.The user of the general
[0044] 컴퓨팅 디바이스(201)는 단말들(240)(또한 클라이언트 디바이스들로 지칭됨)과 같은 하나 이상의 원격 컴퓨터들에의 연결들을 지원하는 네트워크화 환경에서 동작할 수 있다. 단말들(240)은 범용 컴퓨팅 디바이스(103 또는 201)와 관련하여 앞서 설명된 엘리먼트들 모두 또는 많은 엘리먼트들을 포함하는, 퍼스널 컴퓨터들, 모바일 디바이스들, 랩탑 컴퓨터들, 태블릿들 또는 서버들일 수 있다. 도 2에 도시된 네트워크 연결들은 근거리 통신망(LAN)(225) 및 광역 통신망(WAN)(229)을 포함하나, 또한 다른 네트워크들을 포함할 수 있다. LAN 네트워킹 환경에서 사용될 때, 컴퓨팅 디바이스(201)는 네트워크 인터페이스 또는 어댑터(223)를 통해 LAN(225)에 연결될 수 있다. WAN 네트워킹 환경에서 사용될 때, 컴퓨팅 디바이스(201)는 모뎀(227), 또는 컴퓨터 네트워크(230)(예컨대, 인터넷)와 같이 WAN(229)를 통해 통신들을 설정하기 위한 다른 광역 네트워크 인터페이스를 포함할 수 있다. 도시된 네트워크 연결들이 예시적이며 컴퓨터들 사이에 통신 링크를 설정하는 다른 수단이 사용될 수 있다는 것이 인식될 것이다. 컴퓨팅 디바이스(201) 및/또는 단말들(240)은 또한 배터리, 스피커, 및 안테나들(도시안됨)과 같은 다양한 다른 컴포넌트들을 포함하는 모바일 단말들(예컨대, 모바일 폰들, 스마트폰들, PDA들, 노트북들 등)일 수 있다.[0044] The
[0045] 본원에서 설명된 양상들은 또한 다수의 다른 범용 또는 특수 목적 컴퓨팅 시스템 환경들 또는 구성들로 운용가능할 수 있다. 본원에서 설명된 양상들과 함께 사용하기에 적합할 수 있는 다른 컴퓨팅 시스템들, 환경들 및/또는 구성들의 예들은 퍼스널 컴퓨터들, 서버 컴퓨터들, 핸드-헬드 또는 랩탑 디바이스들, 멀티프로세서 시스템들, 마이크로프로세서-기반 시스템들, 셋톱 박스들, 프로그램가능 가전제품들, 네트워크 PC들, 미니컴퓨터들, 메인프레임 컴퓨터들, 앞의 시스템들 또는 디바이스들 중 임의의 것을 포함하는 분산형 컴퓨팅 환경들 등을 포함하나 이들에 제한되지 않는다. [0045] The aspects described herein may also be operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of other computing systems, environments, and / or configurations that may be suitable for use with the aspects described herein include, but are not limited to, personal computers, server computers, hand-held or laptop devices, Microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments including any of the preceding systems or devices, But are not limited to these.
[0046] 도 2에 도시된 바와같이, 하나 이상의 클라이언트 디바이스들(240)은 하나 이상의 서버들(206a-206n)(일반적으로 본원에서 "서버(들)(206)"로 지칭됨)과 통신할 수 있다. 일 실시예에서, 컴퓨팅 환경(200)은 서버(들)(206)와 클라이언트 머신(들)(240) 사이에 설치된 네트워크 어플라이언스(appliance)를 포함할 수 있다. 네트워크 어플라이언스는 클라이언트/서버 연결들을 관리할 수 있으며, 일부 경우들에서 복수의 백엔드 서버들(206) 사이의 클라이언트 연결들을 로드 밸런싱할 수 있다. [0046] As shown in FIG. 2, one or
[0047] 클라이언트 머신(들)(240)은 일부 실시예들에서 단일 클라이언트 머신(240) 또는 클라이언트 머신들(240)의 단일 그룹으로 지칭될 수 있는 반면에, 서버(들)(206)는 단일 서버(206) 또는 서버들(206)의 단일 그룹으로 지칭될 수 있다. 일 실시예에서, 단일 클라이언트 머신(240)은 2개 이상의 서버(206)와 통신하는 반면에, 다른 실시예에서 단일 서버(206)는 2개 이상의 클라이언트 머신(240)과 통신한다. 또 다른 실시예에서, 단일 클라이언트 머신(240)은 단일 서버(206)와 통신한다.In some embodiments, client (s) 240 may be referred to as a
[0048] 일부 실시예들에서, 클라이언트 머신(240)은 이하의 비-포괄적인 용어들, 즉 클라이언트 머신(들); 클라이언트(들); 클라이언트 컴퓨터(들); 클라이언트 디바이스(들); 클라이언트 컴퓨팅 디바이스(들); 로컬 머신; 원격 머신; 클라이언트 노드(들); 엔드포인트(들) 또는 엔드포인트 노드(들) 중 어느 하나로 참조될 수 있다. 일부 실시예들에서, 서버(206)는 이하의 비-포괄적인 용어들, 즉 서버(들); 로컬 머신; 원격 머신; 서버 팜(들) 또는 호스트 컴퓨팅 디바이스(들) 중 어느 하나로 참조될 수 있다.[0048] In some embodiments,
[0049] 일 실시예에서, 클라이언트 머신(240)은 가상 머신일 수 있다. 가상 머신은 임의의 가상 머신일 수 있는 반면에, 일부 실시예들에서, 가상 머신은 타입 1 또는 타입 2 하이퍼바이저(hypervisor), 예컨대 Citrix Systems, IBM, VMware에 의해 개발된 하이퍼바이저 또는 임의의 다른 하이퍼바이저에 의해 관리되는 임의의 가상 머신일 수 있다. 일부 양상들에서, 가상 머신은 하이퍼바이저에 의해 관리될 수 있는 반면에, 양상들에서 가상 머신은 서버(206)상에서 실행되는 하이퍼바이저 또는 클라이언트(240)상에서 실행되는 하이퍼바이저에 의해 관리될 수 있다.[0049] In one embodiment,
[0050] 일부 실시예들은 서버(206)상에서 원격적으로 실행되는 애플리케이션 또는 다른 원격적으로 위치한 머신에 의해 생성되는 애플리케이션 출력을 디스플레이하는 클라이언트 디바이스(240)를 포함한다. 이들 실시예들에서, 클라이언트 디바이스(240)는 애플리케이션 윈도우, 브라우저 또는 다른 출력 윈도우의 출력을 디스플레이하기 위하여 가상 머신 수신기 프로그램 또는 애플리케이션을 실행할 수 있다. 일례에서 애플리케이션은 데스크탑인 반면에, 다른 예들에서 애플리케이션은 데스크탑을 생성하거나 또는 제시하는 애플리케이션이다. 데스크탑은 로컬 및/또는 원격 애플리케이션들이 통합될 수 있는 운영 체제의 인스턴스(instance)에 대한 사용자 인터페이스를 제공하는 그래픽 쉘(graphical shell)을 포함할 수 있다. 본원에서 설명된 바와같은 애플리케이션들은 운영 체제(그리고, 또한 선택적으로 데스크탑)의 인스턴스가 로드된 후 실행되는 프로그램들이다.[0050] Some embodiments include a
[0051] 일부 실시예들에서, 서버(206)는 서버(206)상에서 실행되는 애플리케이션에 의해 생성되는 디스플레이 출력을 제시하기 위하여 클라이언트상에서 실행되는 씬-클라이언트(thin-client) 또는 원격-디스플레이 애플리케이션에 데이터를 송신하기 위하여 원격 프리젠테이션 프로토콜 또는 다른 프로그램을 사용한다. 씬-클라이언트 또는 원격-디스플레이 프로토콜은 프로토콜들의 이하의 비-포괄적인 리스트, 즉 플로리다, 포트 로더데일에 위치한 Citrix Systems, Inc.에 의해 개발된 ICA(Independent Computing Architecture) 프로토콜 또는 워싱턴 레드몬드에 위치한 Microsoft Corporation에 의해 제조된 RDP(Remote Desktop Protocol) 중 어느 하나일 수 있다. [0051] In some embodiments, the
[0052] 원격 컴퓨팅 환경은 예컨대 클라우드 컴퓨팅 환경에서 서버들(206a-206n)이 서버 팜(206)으로 논리적으로 함께 그룹핑되도록 2개 이상의 서버(206a-206n)를 포함할 수 있다. 서버 팜(206)은 지리적으로 분산된 반면에 함께 논리적으로 그룹핑되는 서버들(206) 또는 서로 근접하게 배치되는 반면에 함께 논리적으로 그룹핑되는 서버들(206)을 포함할 수 있다. 일부 실시예들에서, 서버 팜(206) 내의 지리적으로 분산된 서버들(206a-206n)은 WAN(광역), MAN(대도시) 또는 LAN(지역)을 사용하여 통신할 수 있으며, 여기서 상이한 지리적 지역들은 상이한 대륙들; 상이한 대륙 지역들; 상이한 국가들; 상이한 주들; 상이한 도시들; 상이한 캠퍼스들; 상이한 방들; 또는 전술한 지리적 위치들의 임의의 조합으로 특징지워질 수 있다. 일부 실시예들에서 서버 팜(206)은 단일 엔티티로서 관리될 수 있는 반면에, 다른 실시예들에서 서버 팜(206)은 다수의 서버 팜들을 포함할 수 있다.[0052] The remote computing environment may include two or more servers 206a-206n, for example, so that in a cloud computing environment, servers 206a-206n are logically grouped together into a
[0053] 일부 실시예들에서, 서버 팜은 실질적으로 유사한 타입의 운영 체제 플랫폼(예컨대, WINDOWS, UNIX, LINUX, iOS, ANDROID, SYMBIAN 등)을 실행하는 서버들(206)을 포함할 수 있다. 다른 실시예들에서, 서버 팜(206)은 제 1 타입의 운영 체제 플랫폼을 실행하는 하나 이상의 서버들의 제 1 그룹 및 제 2 타입의 운영 체제 플랫폼을 실행하는 하나 이상의 서버들의 제 2 그룹을 포함할 수 있다.[0053] In some embodiments, the server farm may include
[0054] 서버(206)는 필요에 따라 임의의 타입의 서버로서, 예컨대 파일 서버, 애플리케이션 서버, 웹 서버, 프록시 서버, 어플라이언스, 네트워크 어플라이언스, 게이트웨이, 애플리케이션 게이트웨이, 게이트웨이 서버, 가상화 서버, 전개 서버, SSL VPN 서버, 방화벽, 웹 서버, 애플리케이션 서버로서, 또는 마스터 애플리케이션 서버, 액티브 디렉토리를 실행하는 서버, 또는 방화벽 기능, 애플리케이션 기능 또는 로드 밸런싱 기능을 제공하는 애플리케이션 가속 프로그램을 실행하는 서버로서 구성될 수 있다. 다른 서버 타입들이 또한 사용될 수 있다.The
[0055] 일부 실시예들은 클라이언트 머신(240)으로부터의 요청들을 수신하며, 제 2 서버(106b)에 요청을 포워드하며 그리고 제 2 서버(106b)로부터의 응답으로 클라이언트 머신(240)에 의해 생성되는 요청에 응답하는 제 1 서버(106a)를 포함한다. 제 1 서버(106a)는 클라이언트 머신(240)이 이용할 수 있는 애플리케이션들의 목록 뿐만아니라 애플리케이션들의 목록내에서 식별되는 애플리케이션을 호스팅하는 애플리케이션 서버(206)와 연관된 어드레스 정보를 획득할 수 있다. 이후, 제 1 서버(106a)는 웹 인터페이스를 사용하여 클라이언트의 요청에 대한 응답을 제시할 수 있으며, 식별된 애플리케이션에 대한 액세스를 클라이언트(240)에 제공하기 위하여 클라이언트(240)와 직접 통신할 수 있다. 하나 이상의 클라이언트들(240) 및/또는 하나 이상의 서버들(206)은 네트워크(230), 예컨대 네트워크(101)를 통해 데이터를 전송할 수 있다.[0055] Some embodiments receive requests from the
[0056] 도 2는 예시적인 데스크탑 가상화 시스템의 고레벨 아키텍처를 도시한다. 도시된 바와같이, 데스크탑 가상화 시스템은 하나 이상의 클라이언트 액세스 디바이스들(240)에 가상 데스크탑들 및/또는 가상 애플리케이션들을 제공하도록 구성된 적어도 하나의 가상화 서버(206)를 포함하는, 단일-서버 또는 멀티-서버 시스템 또는 클라우드 시스템일 수 있다. 본원에서 사용되는 바와같이, 데스크탑은 하나 이상의 애플리케이션들이 호스팅되고 그리고/또는 실행되는 그래픽 환경 또는 공간을 지칭한다. 데스크탑은 로컬 및/또는 원격 애플리케이션들이 통합될 수 있는 운영 체제의 인스턴스에 대한 사용자 인터페이스를 제공하는 그래픽 쉘을 포함할 수 있다. 애플리케이션들은 운영 체제(그리고 선택적으로 또한 데스크탑)의 인스턴스가 로드된 이후에 실행되는 프로그램들을 포함할 수 있다. 운영 체제의 각각의 인스턴스는 물리적(예컨대, 디바이스당 하나의 운영 체제) 또는 가상적(예컨대, 단일 디바이스상에서 실행되는 OS의 많은 인스턴스들)일 수 있다. 각각의 애플리케이션은 로컬 디바이스상에서 실행될 수 있거나 또는 원격적으로 위치한 디바이스(예컨대 원격 디바이스)상에서 실행될 수 있다.[0056] Figure 2 illustrates a high-level architecture of an exemplary desktop virtualization system. As shown, the desktop virtualization system may include a single-server or
[0057] 도 3을 추가로 참조하면, 컴퓨터 디바이스(301)는 가상화 환경의 가상화 서버, 예컨대, 단일-서버, 멀티-서버 또는 클라우드 컴퓨팅 환경으로서 구성될 수 있다. 도 3에 예시된 가상화 서버(301)는 도 2에 예시된 서버(206)의 하나 이상의 실시예들 또는 다른 공지된 컴퓨팅 디바이스로서 전개될 수 있거나 그리고/또는 이에 의해 구현될 수 있다. 가상화 서버(301)에 포함된 것은 하나 이상의 물리적 디스크들(304), 하나 이상의 물리적 디바이스들(306), 하나 이상의 물리적 프로세서들(308) 및 하나 이상의 물리적 메모리들(316)을 포함할 수 있는 하드웨어 계층이다. 일부 실시예들에서, 펌웨어(312)는 물리적 메모리(316)의 메모리 엘리먼트 내에 저장될 수 있고, 물리적 프로세서들(308) 중 하나 이상에 의해 실행될 수 있다. 가상화 서버(301)는 물리적 메모리(316)의 메모리 엘리먼트에 저장되고 물리적 프로세서들(308) 중 하나 이상에 의해 실행될 수 있는 운영 체제(314)를 더 포함할 수 있다. 또한, 하이퍼바이저(302)는 물리적 메모리(316)의 메모리 엘리먼트에 저장될 수 있고 물리적 프로세서들(308) 중 하나 이상에 의해 실행될 수 있다.[0057] Referring additionally to FIG. 3,
[0058] 물리적 프로세서들(308) 중 하나 이상의 프로세서상에서 실행시키는 것은 하나 이상의 가상 머신들(332A-C)(일반적으로 332)일 수 있다. 각각의 가상 머신(332)은 가상 디스크(326A-C) 및 가상 프로세서(328A-C)를 가질 수 있다. 일부 실시예들에서, 제 1 가상 머신(332A)은, 가상 프로세서(328A)를 이용하여, 툴 스택(tools stack)(324)을 포함하는 제어 프로그램(320)을 실행할 수 있다. 제어 프로그램(320)은 제어 가상 머신, Dom0, Domain 0, 또는 시스템 운영 및/또는 제어용으로 사용되는 다른 가상 머신으로서 지칭될 수 있다. 일부 실시예들에서, 하나 이상의 가상 머신(332B-C)은, 가상 프로세서(328B-C)를 이용하여, 게스트 운영 체제(330A-B)를 실행시킬 수 있다.[0058] It may be one or more virtual machines 332A-C (generally 332) to execute on one or more of the
[0059] 가상화 서버(301)는 가상화 서버(301)와 통신하는, 하드웨어의 하나 이상의 피스(piece)들을 구비하는 하드웨어 계층(310)을 포함할 수 있다. 일부 실시예들에서, 하드웨어 계층(310)은 하나 이상의 물리적 디스크들(304), 하나 이상의 물리적 디바이스들(306), 하나 이상의 물리적 프로세서들(308) 및 하나 이상의 메모리(316)를 포함할 수 있다. 물리적 컴포넌트들(304, 306, 308 및 316)은 예컨대, 앞서 설명된 컴포넌트들 중 임의의 컴포넌트를 포함할 수 있다. 물리적 디바이스들(306)은 예컨대, 네트워크 인터페이스 카드, 비디오 카드, 키보드, 마우스, 입력 디바이스, 모니터, 디스플레이 디바이스, 스피커들, 광 드라이브, 저장 디바이스, 범용 직렬 버스 연결, 프린터, 스캐너, 네트워크 엘리먼트(예컨대, 라우터, 방화벽, 네트워크 어드레스 번역기, 로드 밸런서, VPN(virtual private network) 게이트웨이, DHCP(Dynamic Host Configuration Protocol) 라우터 등), 또는 가상화 서버(301)에 연결되거나 이와 통신하는 임의의 디바이스를 포함할 수 있다. 하드웨어 계층(310)의 물리적 메모리(316)는 임의의 타입의 메모리를 포함할 수 있다. 물리적 메모리(316)는 데이터를 저장할 수 있고, 일부 실시예들에서 하나 이상의 프로그램들, 또는 실행 가능한 명령들의 세트를 저장할 수 있다. 도 3은 펌웨어(312)가 가상화 서버(301)의 물리적 메모리(316) 내에 저장된 실시예를 예시한다. 물리적 메모리(316)에 저장된 프로그램 또는 실행 가능한 명령들은 가상화 서버(301)의 하나 이상의 프로세서들(308)에 의해 실행될 수 있다.[0059] The
[0060] 가상화 서버(301)는 또한 하이퍼바이저(302)를 포함할 수 있다. 일부 실시예들에서, 하이퍼바이저(302)는 가상화 서버(301) 상의 프로세서들(308)에 의해 실행되어 임의의 개수의 가상 머신들(332)을 생성 및 관리하는 프로그램일 수 있다. 하이퍼바이저(302)는 가상 머신 모니터 또는 플랫폼 가상화 소프트웨어로 지칭될 수 있다. 일부 실시예들에서, 하이퍼바이저(302)는 컴퓨팅 머신 상에서 실행되는 가상 머신들을 모니터링하는 하드웨어 및 실행 가능한 명령들의 임의의 조합일 수 있다. 하이퍼바이저(302)는 타입 2 하이퍼바이저일 수 있고, 여기서 운영 체제(314) 내에서 실행되는 하이퍼바이저는 가상화 서버(301) 상에서 실행될 수 있다. 이후, 가상 머신들이 하이퍼바이저보다 상위 레벨에서 실행된다. 일부 실시예들에서, 타입 2 하이퍼바이저는 사용자의 운영 체제의 컨텍스트 내에서 실행되어, 타입 2 하이퍼바이저는 사용자의 운영 체제와 상호 작용을 한다. 다른 실시예들에서, 가상화 환경의 하나 이상의 가상화 서버들(301)은 대신에 타입 1 하이퍼바이저(도시안됨)를 포함할 수 있다. 타입 1 하이퍼바이저는 하드웨어 계층(310) 내의 자원들 및 하드웨어에 직접 액세스함으로써 가상화 서버(301) 상에서 실행될 수 있다. 즉, 타입 2 하이퍼바이저(302)는 도시된 바와 같이 호스트 운영 체제(314)를 통해 시스템 자원에 액세스하지만, 타입 1 하이퍼바이저는 호스트 운영 체제(314) 없이 모든 시스템 자원들에 직접 액세스할 수 있다. 타입 1 하이퍼바이저는 가상화 서버(301)의 하나 이상의 물리적 프로세서들(308) 상에서 직접 실행될 수 있고, 물리적 메모리(316)에 저장된 프로그램 데이터를 포함할 수 있다.[0060] The
[0061] 일부 실시예들에서, 하이퍼바이저(302)는 운영 체제(330) 또는 제어 프로그램(320)이 시스템 자원들에 직접 액세스하도록 시뮬레이션하는 임의의 방식으로 가상 머신들(332) 상에서 실행되는 운영 체제들(330) 또는 제어 프로그램들(320)에 가상 자원을 제공할 수 있다. 시스템 자원들은 물리적 디바이스들(306), 물리적 디스크들(304), 물리적 프로세서들(308), 물리적 메모리(316) 및 가상화 서버(301) 하드웨어 계층(310)에 포함된 임의의 다른 컴포넌트를 포함할 수 있으나 이에 제한되는 것은 아니다. 하이퍼바이저(302)는 가상 하드웨어를 에뮬레이트하고, 물리적 하드웨어를 파티셔닝하고, 물리적 하드웨어를 가상화하고, 그리고/또는 컴퓨팅 환경들에 대한 액세스를 제공하는 가상 머신을 실행시키기 위해 사용될 수 있다. 또 다른 실시예들에서, 하이퍼바이저(302)는 가상화 서버(301) 상에서 실행되는 가상 머신(332)에 대한 메모리 파티셔닝 및 프로세서 스케쥴링을 제어한다. 하이퍼바이저(302)는 켈리포니아 팔로 알토에 위치한 VMWare, Inc.에 의해 제조된 것들; 그 개발이 오픈 소스 Xen.org 커뮤니티에 의해 감독되는 오픈 소스 상품인 XEN 하이퍼바이저; 마이크로소프트에 의해 제공되는 vHyperV, VirtualServer 또는 virtual PC 하이퍼바이저들 또는 기타 하이퍼바이저를 포함할 수 있다. 일부 실시예들에서, 가상화 서버(301)는, 게스트 운영 체제들이 실행될 수 있는 가상 머신 플랫폼을 생성하는 하이퍼바이저(302)를 실행시킨다. 이들 실시예들에서, 가상화 서버(301)는 호스트 서버로서 지칭될 수 있다. 이러한 가상화 서버의 예로서 플로리다, 포트 로더데일에 위치한 Citrix Systems, Inc.에 의해 제공되는 XEN SERVER를 들 수 있다.[0061] In some embodiments, the
[0062] 하이퍼바이저(302)는 게스트 운영 체제(330)가 실행되는 하나 이상의 가상 머신들(332B-C)(일반적으로 332)을 생성할 수 있다. 일부 실시예들에서, 하이퍼바이저(302)는 가상 머신 이미지를 로드하여 가상 머신(332)을 생성할 수 있다. 다른 실시예들에서, 하이퍼바이저(302)는 가상 머신(332) 내에서 게스트 운영 체제(330)를 실행시킬 수 있다. 또 다른 실시예에서, 가상 머신(332)은 게스트 운영 체제(330)를 실행시킬 수 있다.[0062] The
[0063] 가상 머신들(332)을 생성하는 것에 추가하여, 하이퍼바이저(302)는 적어도 하나의 가상 머신(332)의 실행을 제어할 수 있다. 다른 실시예들에서, 하이퍼바이저(302)는 가상화 서버(301)에 의해 제공되는 적어도 하나의 하드웨어 자원(예컨대, 하드웨어 계층(310) 내에서 이용가능한 임의의 하드웨어 자원)의 추상화로 하나 이상의 가상 머신(332)을 제시할 수 있다. 다른 실시예들에서, 하이퍼바이저(302)는 가상 머신들(332)이 가상화 서버(301)에서 이용가능한 물리적 프로세서들(308)에 액세스하는 방식을 제어할 수 있다. 물리적 프로세서들(308)에 대한 액세스를 제어하는 것은, 가상 머신(332)이 프로세서(308)에 대한 액세스를 가져야 하는지 여부 및 물리적 프로세서 기능들이 가상 머신(332)에 어떻게 제공되는지를 결정하는 것을 포함할 수 있다.[0063] In addition to creating virtual machines 332, the
[0064] 도 3에 도시된 바와 같이, 가상화 서버(301)는 하나 이상의 가상 머신들(332)을 호스팅 또는 실행할 수 있다. 가상 머신(332)은, 프로세서(308)에 의해 실행될 때 물리적 컴퓨터의 동작을 모방하여, 가상 머신(332)이 물리적 컴퓨팅 디바이스와 매우 유사하게 프로그램들 및 프로세스들을 실행할 수 있도록 하는 실행 가능한 명령들의 세트이다. 도 3은 가상화 서버(301)가 3 개의 가상 머신들(332)을 호스팅하는 실시예를 예시하고 있으나, 다른 실시예들에서, 가상화 서버(301)는 임의의 개수의 가상 머신들(332)을 호스팅할 수 있다. 하이퍼바이저(302)는, 일부 실시예들에서, 각각의 가상 머신(332)에 물리적 하드웨어, 메모리, 프로세서 및 그 가상 머신(332)이 이용할 수 있는 다른 시스템 자원들의 고유한 가상 뷰(unique virtual view)를 제공한다. 일부 실시예들에서, 고유한 가상 뷰는 가상 머신 퍼미션(permission)들, 하나 이상의 가상 머신 식별자에 대한 정책 엔진(policy engine)의 애플리케이션, 가상 머신에 액세스하는 사용자, 가상 머신 상에서 실행되는 애플리케이션들, 가상 머신에 의해 액세스되는 네트워크들 또는 다른 임의의 원하는 기준 중 하나 이상에 기초할 수 있다. 예컨대, 하이퍼바이저(302)는 하나 이상의 비보안(unsecure) 가상 머신들(332) 및 하나 이상의 보안 가상 머신들(332)을 생성할 수 있다. 비보안 가상 머신들(332)은 보안 가상 머신들(332)이 액세스하도록 허용될 수 있는 자원들, 하드웨어, 메모리 위치들 및 프로그램들에 액세스하는 것이 차단될 수 있다. 다른 실시예들에서, 하이퍼바이저(302)는 각각의 가상 머신(332)에게 물리적 하드웨어, 메모리, 프로세서 및 가상 머신(332)이 이용할 수 있는 다른 시스템 자원들에 대한 실질적으로 유사한 뷰를 제공할 수 있다.[0064] As shown in FIG. 3, the
[0065] 각각의 가상 머신(332)은 가상 디스크(326A-C)(일반적으로 326) 및 가상 프로세서(328A-C)(일반적으로 328)를 포함할 수 있다. 가상 디스크(326)는, 일부 실시예들에서, 가상화 서버(301)의 하나 이상의 물리적 디스크들(304) 또는 가상화 서버(301)의 하나 이상의 물리적 디스크들(304)의 일부분에 대한 가상화된 뷰(virtualized view)이다. 물리적 디스크들(304)에 대한 가상화된 뷰는 하이퍼바이저(302)에 의해 생성, 제공 및 관리될 수 있다. 일부 실시예들에서, 하이퍼바이저(302)는 각각의 가상 머신(332)에 물리적 디스크들(304)의 고유한 뷰를 제공한다. 따라서, 이들 실시예들에서, 각각의 가상 머신(332)에 포함된 특정 가상 디스크(326)는 다른 가상 디스크들(326)과 비교하여 고유할 수 있다.[0065] Each virtual machine 332 may include virtual disks 326A-C (generally 326) and virtual processors 328A-C (generally 328). The virtual disk 326 may in some embodiments be a virtualized view of one or more physical disks 304 of the
[0066] 가상 프로세서(328)는 가상화 서버(301)의 하나 이상의 물리적 프로세서들(308)의 가상화된 뷰일 수 있다. 일부 실시예들에서, 물리적 프로세서들(308)의 가상화된 뷰는 하이퍼바이저(302)에 의해 생성, 제공 및 관리될 수 있다. 일부 실시예들에서, 가상 프로세서(328)는 적어도 하나의 물리적 프로세서(308)와 실질적으로 전부 동일한 특징들을 가진다. 다른 실시예들에서, 가상 프로세서(308)는 물리적 프로세서(308)의 수정된 뷰(modified view)를 제공하며, 따라서 가상 프로세서(328)의 특징들 중 적어도 일부는 대응하는 물리적 프로세서(308)의 특징들과 상이하다.[0066] The virtual processor 328 may be a virtualized view of one or more
[0067] 도 4를 추가로 참조하면, 본원에서 설명된 일부 양상들은 클라우드 기반의 환경에서 구현될 수 있다. 도 4는 클라우드 컴퓨팅 환경(또는 클라우드 시스템)(400)의 예를 예시한다. 도 4에서 알 수 있는 바와 같이, 클라이언트 컴퓨터들(411-414)은 클라우드 관리 서버(410)와 통신하여 클라우드 시스템의 컴퓨팅 자원들(예컨대, 호스트 서버들(403), 저장 자원들(404) 및 네트워크 자원들(405))에 액세스할 수 있다.[0067] Referring additionally to FIG. 4, some aspects described herein may be implemented in a cloud-based environment. 4 illustrates an example of a cloud computing environment (or cloud system) 4, the client computers 411-414 communicate with the
[0068] 관리 서버(410)는 하나 이상의 물리적 서버 상에서 구현될 수 있다. 특히, 관리 서버(410)는, 예컨대, 플로리다, 포트 로더데일에 위치한 Citrix Systems, Inc.의 CLOUDSTACK 또는 OPENSTACK을 실행시킬 수 있다. 관리 서버(410)는 클라우드 하드웨어 및 소프트웨어 자원들, 예컨대 호스트 컴퓨터들(403), 데이터 저장 디바이스들(404), 네트워킹 디바이스들(405)을 포함하는 다양한 컴퓨팅 자원들을 관리할 수 있다. 클라우드 하드웨어 및 소프트웨어 자원들은 사설 및/또는 공중 컴포넌트들을 포함할 수 있다. 예컨대, 클라우드는 사설 네트워크를 통해 그리고/또는 하나 이상의 특정 고객들 또는 클라이언트 컴퓨터들(411-414)에 의해 사용될 사설 클라우드로서 구성될 수 있다. 다른 실시예들에서, 공중 클라우드들 또는 하이브리드 공중-사설 클라우드들은 개방형 또는 하이브리드 네트워크들을 통해 다른 고객들에 의해 사용될 수 있다.[0068] The
[0069] 관리 서버(410)는 클라우드 운영자들 및 클라우드 고객들이 클라우드 시스템과 상호 작용할 수 있도록 하는 사용자 인터페이스들을 제공하도록 구성될 수 있다. 예컨대, 관리 서버(410)는 API들의 세트 및/또는 하나 이상의 클라우드 운영자 콘솔 애플리케이션들(예컨대, 웹-기반 스탠드얼론 애플리케이션들)에, 클라우드 운영자들이 클라우드 자원들을 관리하고, 가상화 계층을 구성하고, 고객 계정들을 관리하고 그리고 다른 클라우드 운영 태스크들을 수행할 수 있도록 하는 사용자 인터페이스들을 제공할 수 있다. 관리 서버(410)는 또한, 사용자 인터페이스들이 클라이언트 컴퓨터(411-414)를 통해 최종 사용자(end user)로부터의 클라우드 컴퓨팅 요청들 예컨대, 클라우드 내에서 가상 머신들을 생성, 수정 또는 제거하기 위한 요청들을 수신하도록 구성되면서, API들의 세트 및/또는 하나 이상의 고객 콘솔 애플리케이션을 포함할 수 있다. 클라우드 컴퓨터들(411-414)은 인터넷 또는 다른 통신 네트워크를 통해 관리 서버(410)에 연결할 수 있고, 관리 서버(410)에 의해 관리되는 컴퓨팅 자원들 중 하나 이상의 자원에 대한 액세스를 요청할 수 있다. 클라이언트 요청들에 응답하여, 관리 서버(410)는 클라이언트 요청들에 기초하여 클라우드 시스템의 하드웨어 계층의 물리적 자원들을 선택 및 공급하도록 구성된 자원 관리자를 포함할 수 있다. 예컨대, 관리 서버(410) 및 클라우드 시스템의 추가적인 컴포넌트들은 네트워크(예컨대, 인터넷)를 통해 클라이언트 컴퓨터들(411-414)에서 고객들에 대한 가상 머신들 및 이들의 동작 환경들(예컨대, 하이퍼바이저들, 저장 자원들, 네트워크 엘리먼트들에 의해 제공되는 서비스 등)을 제공, 생성 및 관리하도록 구성되어, 고객에게 연산 자원(computational resource)들, 데이터 저장 서비스들, 네트워크 기능들 및 컴퓨터 플랫폼 및 애플리케이션 지원을 제공할 수 있다. 클라우드 시스템들은 또한, 보안 시스템들, 개발 환경들, 사용자 인터페이스들 등을 포함하는 다양한 특정 서비스들을 제공하도록 구성될 수 있다.[0069] The
[0070] 특정 클라이언트들(411-414)은 예컨대 동일한 최종 사용자들 또는 동일한 회사 또는 조직과 연계된 상이한 사용자들을 대신하여 가상 머신들을 생성하는 상이한 클라이언트 컴퓨터들과 관련될 수 있다. 다른 예들에서, 특정 클라이언트들(411-414)은 예컨대 상이한 회사들 또는 조직들과 연계된 사용자들과는 관련되지 않을 수 있다. 관련되지 않은 클라이언트들의 경우에, 어느 한 사용자의 가상 머신들 또는 스토리지에 대한 정보는 다른 사용자들에게 숨겨질 수 있다.[0070] Specific clients 411-414 may be associated with different client computers that create virtual machines on behalf of different end users or different users associated with the same company or organization, for example. In other instances, the particular clients 411-414 may not be associated with, for example, users associated with different companies or organizations. In the case of unrelated clients, information about virtual machines or storage of one user may be hidden by other users.
[0071] 이제 클라우드 컴퓨팅 환경의 물리적 하드웨어 계층을 참조하면, 가용 존(availability zone)들(401-402)(또는 존(zone)들)은 물리적 컴퓨팅 자원들의 콜로케이트된 세트(collocated set)를 지칭할 수 있다. 존들은 컴퓨팅 자원들의 전체 클라우드의 다른 존들로부터 지리적으로 떨어져 있을 수 있다. 예컨대, 존(401)은 캘리포니아에 위치한 제 1 클라우드 데이터센터일 수 있고, 존(402)은 플로리다에 위치한 제 2 클라우드 데이터센터일 수 있다. 관리 서버(410)는 가용 존들 중 하나에, 또는 떨어진 위치에 위치할 수 있다. 각각의 존은, 게이트웨이를 통해, 관리 서버(410)와 같은, 존 외부에 있는 디바이스들과 인터페이싱하는 내부 네트워크를 포함할 수 있다. 클라우드의 최종 사용자들(예컨대, 클라이언트들(411-414))은 존들 사이를 구분할 수 있거나, 구분할 수 없을 수 있다. 예컨대, 최종 사용자들은 특정 메모리량, 프로세싱 전력 및 네트워크 능력들을 갖는 가상 머신의 생성을 요청할 수 있다. 관리 서버(410)는 사용자의 요청에 응답할 수 있으며, 가상 머신이 존(401) 또는 존(402)의 자원들을 사용하여 생성되었는지의 여부를 사용자가 알 필요 없이 가상 머신을 생성하기 위한 자원들을 할당할 수 있다. 다른 예들에서, 클라우드 시스템은 최종 사용자들이, 가상 머신들(또는 다른 클라우드 자원들)이 특정 존에 또는 존 내의 특정 자원들(403-405) 상에 할당되는 것을 요청하도록 할 수 있다.[0071] Referring now to the physical hardware layer of the cloud computing environment, availability zones 401-402 (or zones) refer to a collocated set of physical computing resources can do. Zones may be geographically separated from other zones of the entire cloud of computing resources. For example,
[0072] 이러한 예에서, 각각의 존(401-402)은 다양한 물리적 하드웨어 컴포넌트들(또는 컴퓨팅 자원들)(403-405), 예컨대, 물리적 호스팅 자원들(또는 프로세싱 자원들), 물리적 네트워크 자원들, 물리적 저장 자원들, 스위치들, 및 클라우드 컴퓨팅 서비스들을 고객들에게 제공하기 위해 사용될 수 있는 추가적인 하드웨어 자원들의 배열을 포함할 수 있다. 클라우드 존(401-402)의 물리적 호스팅 자원들은, 앞서 설명된 가상화 서버들(301)과 같은 하나 이상의 컴퓨터 서버들(403)을 포함할 수 있고, 이 서버들은 가상 머신 인스턴스들을 생성 및 호스팅하도록 구성될 수 있다. 클라우드 존(401 또는 402)의 물리적 네트워크 자원들은 방화벽들, 네트워크 어드레스 번역기들, 로드 밸런서들, VPN(virtual private network) 게이트웨이들, DHCP(Dynamic Host Configuration Protocol) 라우터들 등과 같은 네트워크 서비스를 클라우드 고객들에게 제공하도록 구성된 하드웨어 및/또는 소프트웨어를 포함하는 하나 이상의 네트워크 엘리먼트들(405)(예컨대, 네트워크 서비스 제공자들)을 포함할 수 있다. 클라우드 존(401-402)의 저장 자원들은 저장 디스크들(예컨대, SSD(solid state drive)들, 자기 하드 디스크들 등) 및 다른 저장 디바이스들을 포함할 수 있다.[0072] In this example, each zone 401-402 includes various physical hardware components (or computing resources) 403-405, such as physical hosting resources (or processing resources), physical network resources , Physical storage resources, switches, and an array of additional hardware resources that can be used to provide customers with cloud computing services. The physical hosting resources of the cloud zones 401-402 may include one or more computer servers 403, such as the
[0073] 도 4에 도시된 예시적인 클라우드 컴퓨팅 환경은 또한 (예컨대, 도 1 내지 도 3에 도시된 바와 같은) 가상화 계층과, 가상 머신들을 생성 및 관리하고 클라우드의 물리적 자원들을 이용하여 고객들에게 다른 서비스들을 제공하도록 구성된 추가적인 하드웨어 및/또는 소프트웨어 자원들을 포함할 수 있다. 가상화 계층은 도 3에서 앞서 설명된 바와같은 하이퍼바이저들과, 네트워크 가상화들, 저장 가상화들 등을 제공하는 다른 컴포넌트들을 포함할 수 있다. 가상화 계층은 물리적 자원 계층과 별개의 계층으로 될 수 있거나, 물리적 자원 계층과 동일한 하드웨어 및/또는 소프트웨어 자원들의 일부 또는 전부를 공유할 수 있다. 예컨대, 가상화 계층은 가상화 서버(403)들 각각에 설치된 하이퍼바이저와 물리적 컴퓨팅 자원들을 포함할 수 있다. 공지된 클라우드 시스템, 예컨대 WINDOWS AZURE (워싱턴 레드몬드에 위치한 Microsoft Corporation), AMAZON EC2 (워싱턴 시애틀에 위치한 Amazon.com Inc.), IBM BLUE CLOUD (뉴욕 아몽크에 위치한 IBM Corporation) 등이 대안적으로 사용될 수 있다.[0073] The exemplary cloud computing environment shown in FIG. 4 also includes a virtualization layer (eg, as shown in FIGS. 1-3), a virtualization layer that creates and manages virtual machines and utilizes the physical resources of the cloud Or additional software and / or software resources configured to provide services. The virtualization layer may include hypervisors as described above in FIG. 3, and other components that provide network virtualizations, storage virtualizations, and the like. The virtualization layer may be a separate layer from the physical resource layer, or may share some or all of the same hardware and / or software resources as the physical resource layer. For example, the virtualization layer may include hypervisor and physical computing resources installed in each of the virtualization servers 403. Known cloud systems such as WINDOWS AZURE (Microsoft Corporation, located in Redmond, Washington), AMAZON EC2 (Amazon.com Inc., Seattle, WA), and IBM BLUE CLOUD (IBM Corporation, Armonk, NY) have.
[0074] 기업 모빌리티 관리 아키텍처 Enterprise Mobility Management Architecture
[0075] 도 5는 BYOD 환경에서 사용하기 위한 기업 모빌리티 기술 아키텍처(500)를 나타낸다. 아키텍처는 모바일 디바이스(502)의 사용자가 모바일 디바이스(502)를 사용하여 기업 자원 또는 개인 자원에 액세스하고, 모바일 디바이스(502)를 개인적 용도로 사용하도록 한다. 사용자는 기업에 의해 사용자에게 제공된 모바일 디바이스(502) 또는 사용자에 의해 구매된 모바일 디바이스(502)를 이용하여 이와 같은 기업 서비스들(508) 또는 기업 자원들(504)에 액세스할 수 있다. 사용자는 단지 비지니스용으로 또는 비지니스 및 개인용으로 모바일 디바이스(502)를 활용할 수 있다. 모바일 디바이스는 iOS 운영 체제, 및 안드로이드 운영 체제 등을 실행할 수 있다. 기업은 모바일 디바이스(504)를 관리하기 위한 정책들을 구현하는 것을 선택할 수 있다. 이 정책들은 모바일 디바이스가 식별되거나, 보안 또는 보안 검증되고 기업 자원들에 대해 선택적으로 또는 전체적으로 액세스할 수 있도록 방화벽 또는 게이트웨이를 통해 주입될 수 있다. 정책들은 모바일 디바이스 관리 정책들, 모바일 애플리케이션 관리 정책들, 모바일 데이터 관리 정책들, 또는 모바일 디바이스, 애플리케이션 및 데이터 관리 정책들의 일부 조합일 수 있다. 모바일 디바이스 관리 정책들의 애플리케이션을 통해 관리되는 모바일 디바이스(504)는 등록 디바이스로서 지칭될 수 있다. [0075] FIG. 5 shows an enterprise
[0076] 모바일 디바이스의 운영 체제는 관리 파티션(managed partition)(510) 및 비관리 파티션(unmanaged partition)(512)으로 분리될 수 있다. 관리 파티션(510)은 관리 파티션 상에서 실행되는 애플리케이션들 및 관리 파티션에 저장되는 데이터를 보안하기 위한 정책들이 자신에 적용되게 할 수 있다. 관리 파티션상에서 실행되는 애플리케이션들은 보안 애플리케이션들일 수 있다. 보안 애플리케이션들은 이메일 애플리케이션들, 웹 브라우징 애플리케이션들, SaaS(software-as-a-service) 액세스 애플리케이션들, 윈도우즈 애플리케이션 액세스 애플리케이션들 등일 수 있다. 보안 애플리케이션들은 보안 네이티브 애플리케이션들(514), 보안 애플리케이션 론처(518)에 의해 실행되는 보안 원격 애플리케이션들(522), 보안 애플리케이션 론처(518)에 의해 실행되는 가상화 애플리케이션들(526) 등일 수 있다. 보안 네이티브 애플리케이션들(514)은 보안 애플리케이션 래퍼(wrapper)(520)에 의해 래핑될 수 있다. 보안 애플리케이션 래퍼(520)는 보안 네이티브 애플리케이션이 디바이스상에서 실행될 때 모바일 디바이스(502)상에서 실행되는 통합 정책들을 포함할 수 있다. 보안 애플리케이션 래퍼(520)는 보안 네이티브 애플리케이션(514)의 실행시 요청된 태스크를 완료하기 위하여 보안 네이티브 애플리케이션(514)이 요구할 수 있는, 기업에서 호스팅되는 자원들을 모바일 디바이스(502)상에서 실행되는 보안 네이티브 애플리케이션(514)에게 알려주는 메타-데이터를 포함할 수 있다. 보안 애플리케이션 론처(518)에 의해 실행되는 보안 원격 애플리케이션들(522)은 보안 애플리케이션 론처 애플리케이션(518) 내에서 실행될 수 있다. 보안 애플리케이션 론처(518)에 의해 실행되는 가상화 애플리케이션(526)은 모바일 디바이스(502)상의 자원들, 기업 자원들(504) 등을 활용할 수 있다. 보안 애플리케이션 론처(518)에 의해 실행되는 가상화 애플리케이션들(526)에 의해 모바일 디바이스(502)상에서 사용되는 자원들은 사용자 상호작용 자원들, 프로세싱 자원들 등을 포함할 수 있다. 사용자 상호작용 자원들은 키보드 입력, 마우스 입력, 카메라 입력, 촉각 입력, 오디오 입력, 시각 입력, 제스처 입력 등을 수집하여 전송하기 위하여 사용될 수 있다. 프로세싱 자원들은 사용자 인터페이스를 제시하고, 기업 자원들(504)로부터 수신된 데이터를 프로세싱하는 것 등을 수행하기 위하여 사용될 수 있다. 보안 애플리케이션 론처(518)에 의해 실행되는 가상화 애플리케이션들(526)에 의해 기업 자원들(504)에서 사용되는 자원들은 사용자 인터페이스 생성 자원들, 프로세싱 자원들 등을 포함할 수 있다. 사용자 인터페이스 생성 자원들은 사용자 인터페이스를 어셈블리하고, 사용자 인터페이스를 수정하며, 사용자 인터페이스를 리프레시하는 것 등을 수행하기 위하여 사용될 수 있다. 프로세싱 자원들은 정보를 생성하고, 정보를 판독하며, 정보를 업데이트하며, 정보를 삭제하는 것 등을 수행하기 위하여 사용될 수 있다. 예컨대, 가상화 애플리케이션은 GUI와 연관된 사용자 상호작용들을 기록하고, 이들을 서버 애플리케이션에 통신할 수 있으며, 여기서 서버 애플리케이션은 서버상에서 동작하는 애플리케이션에 대한 입력으로서 사용자 상호작용 데이터를 사용할 수 있다. 이러한 배열에서, 기업은 서버측상의 애플리케이션 뿐만아니라 애플리케이션과 연관된 데이터, 파일들 등을 유지하는 것을 선택할 수 있다. 기업이 모바일 디바이스상에서 전개하기 위하여 일부 애플리케이션들을 보안함으로써 본원의 원리들에 따라 그 일부 애플리케이션들을 "결집(mobilize)시키는" 것을 선택할 수 있는 반면에, 이러한 배열은 또한 특정 애플리케이션들을 위해 선택될 수 있다. 예컨대, 일부 애플리케이션들이 모바일 디바이스상에서 사용하기 위하여 보안될 수 있는 반면에, 다른 애플리케이션들은 모바일 디바이스상에서 전개하기 위하여 준비되거나 또는 전용될 수 없으며, 따라서 기업은 가상화 기술들을 통해 준비되지 않은 애플리케이션들에의 모바일 사용자 액세스를 제공하는 것을 선택할 수 있다. 다른 예로서, 기업은 모바일 디바이스에 대한 애플리케이션을 커스터마이징(customizing)하는 것이 매우 어렵거나 또는 그렇지 않은 경우에 바람직하지 않을 대량 및 복합 데이터 세트들을 가진 대규모 복합 애플리케이션들(예컨대, 자료 자원 계획 애플리케이션들)을 가질 수 있으며, 따라서, 기업은 가상화 기술들을 통해 애플리케이션에의 액세스를 제공하는 것을 선택할 수 있다. 또 다른 예로서, 기업은 심지어 보안된 모바일 환경에서 조차 기업이 너무 민감하게 생각할 수 있는 고보안 데이터(예컨대, 인적 자원 데이터, 고객 데이터, 엔지니어링 데이터)를 유지하는 애플리케이션을 가질 수 있으며, 따라서 기업은 이러한 애플리케이션들 및 데이터에 대한 모바일 액세스를 허용하기 위하여 가상화 기술들을 사용하는 것을 선택할 수 있다. 기업은 서버측에서 동작하는 것이 더 적절한 것으로 여겨지는 애플리케이션들에 대한 액세스를 허용하기 위하여, 가상화 애플리케이션 뿐만아니라 모바일 디바이스상의 완전하게 보안된 그리고 완전하게 기능적인 애플리케이션들을 제공하는 것을 선택할 수 있다. 일 실시예에서, 가상화 애플리케이션은 보안 저장 위치들 중 하나의 위치에 있는 모바일 폰상에 일부 데이터, 파일들 등을 저장할 수 있다. 기업은 예컨대 다른 정보를 허용하지 않으면서 특정 정보가 폰상에 저장되도록 하는 것을 선택할 수 있다.[0076] The operating system of the mobile device may be separated into a managed
[0077] 본원에서 설명된 바와같은 가상화 애플리케이션과 관련하여, 모바일 디바이스는 GUI들을 제시하고 이후 GUI와의 사용자 상호작용들을 기록하도록 설계되는 가상화 애플리케이션을 가질 수 있다. 애플리케이션은 애플리케이션과의 사용자 상호작용들로서 서버측 애플리케이션에 의해 사용될 사용자 상호작용들을 서버에 통신할 수 있다. 이에 응답하여, 서버측상의 애플리케이션은 새로운 GUI를 모바일 디바이스에 다시 전송할 수 있다. 예컨대, 새로운 GUI는 정적 페이지, 동적 페이지, 애니메이션 등일 수 있다.[0077] In connection with a virtualization application as described herein, a mobile device may have a virtualization application that is designed to present GUIs and then record user interactions with the GUI. The application may communicate to the server user interactions to be used by the server-side application as user interactions with the application. In response, the application on the server side can send a new GUI back to the mobile device. For example, the new GUI may be a static page, a dynamic page, an animation, or the like.
[0078] 관리 파티션상에서 실행되는 애플리케이션들은 안정화된 애플리케이션들일 수 있다. 안정화된 애플리케이션들은 디바이스 관리자(524)에 의해 관리될 수 있다. 디바이스 관리자(524)는 안정화된 애플리케이션들을 모니터링하고 문제점들을 검출하여 제거하기 위한 기술들을 활용할 수 있는데, 이러한 문제점들은 그 문제점들을 검출하여 제거하는데 상기 기술들이 활용되지 않았다면 불안정한 애플리케이션을 유발하였을 것이다. [0078] Applications running on the management partition may be stabilized applications. The stabilized applications may be managed by the
[0079] 보안 애플리케이션들은 모바일 디바이스의 관리 파티션(510)의 보안 데이터 컨테이너(528)에 저장된 데이터에 액세스할 수 있다. 보안 데이터 컨테이너에서 보안된 데이터는 보안 래핑된 애플리케이션들(514), 보안 애플리케이션 론처(518)에 의해 실행되는 애플리케이션들, 보안 애플리케이션 론처(518)에 의해 실행되는 가상화 애플리케이션들(526) 등에 의해 액세스될 수 있다. 보안 데이터 컨테이너(528)에 저장된 데이터는 파일들, 데이터베이스들 등을 포함할 수 있다. 보안 데이터 컨테이너(528)에 저장된 데이터는 보안 애플리케이션들(532) 사이에서 공유되는 특정 보안 애플리케이션(530)에 한정된 데이터 등을 포함할 수 있다. 보안 애플리케이션에 한정된 데이터는 보안 범용 데이터(534) 및 고보안 데이터(538)를 포함할 수 있다. 보안 범용 데이터는 AES 128-비트 암호화 등과 같은 고강화 암호화를 사용할 수 있는 반면에, 고보안 데이터(538)는 AES 254-비트 암호화와 같은 초고강화 암호화를 사용할 수 있다. 보안 데이터 컨테이너(528)에 저장된 데이터는 디바이스 관리자(524)로부터의 커맨드의 수신시에 디바이스로부터 제거될 수 있다. 보안 애플리케이션들은 듀얼-모드 옵션(540)을 가질 수 있다. 듀얼 모드 옵션(540)은 비보안 모드에서 보안 애플리케이션을 동작하기 위한 옵션을 사용자에게 제시할 수 있다. 비보안 모드에서, 보안 애플리케이션들은 모바일 디바이스(502)의 비관리 파티션(512)상의 비보안 데이터 컨테이너(542)에 저장된 데이터에 액세스할 수 있다. 비보안 데이터 컨테이너에 저장된 데이터는 개인 데이터(544)일 수 있다. 비보안 데이터 컨테이너(542)에 저장된 데이터는 또한 모바일 디바이스(502)의 비관리 파티션(512)상에서 실행되는 비보안 애플리케이션들(548)에 의해 액세스될 수 있다. 비보안 데이터 컨테이너(542)에 저장된 데이터는 보안 데이터 컨테이너(528)에 저장된 데이터가 모바일 디바이스(502)로부터 제거될 때 모바일 디바이스(502)상에서 유지될 수 있다. 기업은 사용자에 의해 소유되거나 또는 라이센싱되거나 또는 제어되는 개인 데이터, 파일들 및/또는 애플리케이션들(개인 데이터)을 남기거나 또는 그렇지 않은 경우에 보존하면서 기업에 의해 소유되거나 라이센싱되거나 또는 제어되는 선택된 또는 모든 데이터, 파일들 및/또는 애플리케이션들(기업 데이터)을 모바일 디바이스로부터 제거하는 것을 원할 수 있다. 이러한 동작은 선택적 와이프(selective wipe)으로서 지칭될 수 있다. 본원에서 설명된 예들에 따라 기업 및 개인 데이터가 배열되는 경우에, 기업은 선택적 와이프를 수행할 수 있다. [0079] Security applications can access data stored in the
[0080] 모바일 디바이스는 기업의 기업 자원들(504) 및 기업 서비스들(508)에, 공중 인터넷(548) 등에 연결할 수 있다. 모바일 디바이스는 가상 사설 네트워크 연결들을 통해 기업 자원들(504) 및 기업 서비스들(508)에 연결할 수 있다. 가상 사설 네트워크 연결들은 특정 애플리케이션들(550), 특정 디바이스들, 모바일 디바이스상의 특정 보안 영역들 등(552)에 특정적일 수 있다. 예컨대, 폰의 보안 영역에 래핑된 애플리케이션들 각각은 애플리케이션 특정 VPN에의 액세스가 가능한 경우에 사용자 또는 디바이스 속성 정보와 함께 애플리케이션과 연관된 속성들에 기초하여 승인될 수 있도록 애플리케이션 특정 VPN를 통해 기업 자원들에 액세스할 수 있다. 가상 사설 네트워크 연결들은 마이크로소프트 교환 트래픽, 마이크로소프트 액티브 디렉토리 트래픽, HTTP 트래픽, HTTPS 트래픽, 애플리케이션 관리 트래픽 등을 전달할 수 있다. 가상 사설 네트워크 연결들은 싱글-사인-온 인증 프로세스(single-sign-on authentication process)들(554)을 지원하고 인에이블할 수 있다. 싱글-사인-온 프로세스들은 사용자로 하여금 인증 크리덴셜들의 단일 세트를 제공하도록 할 수 있으며, 이후 인증 크리덴셜들은 인증 서비스(558)에 의해 검증된다. 이후, 인증 서비스(558)는 사용자가 각각의 개별 기업 자원(504)에 인증 크리덴셜들을 제공하는 것을 필요로 하지 않고 다수의 기업 자원들(504)에 대한 사용자 액세스를 승인할 수 있다. [0080] The mobile device may connect to
[0081] 가상 사설 네트워크 연결들은 액세스 게이트웨이(560)에 의해 설정 및 관리될 수 있다. 액세스 게이트웨이(560)는 모바일 디바이스(502)에 기업 자원들(504)을 전달하는 것을 관리하고, 가속시키며 그리고 개선하는 성능 강화 특징들을 포함할 수 있다. 액세스 게이트웨이는 또한 모바일 디바이스(502)로부터 공중 인터넷(548)으로 트래픽을 재-라우팅할 수 있으며, 따라서 모바일 디바이스(502)가 공중 인터넷(548)상에서 실행되는 공개적으로 이용가능한 비보안 애플리케이션들에 액세스하도록 할 수 있다. 모바일 디바이스는 트랜스포트 네트워크를 통해 액세스 게이트웨이에 연결할 수 있다. 트랜스포트 네트워크는 유선 네트워크, 무선 네트워크, 클라우드 네트워크, 근거리 통신망, 도시권 통신망, 광역 통신망, 공중 네트워크, 사설 네트워크 등일 수 있다. [0081] Virtual private network connections may be established and managed by the
[0082] 기업 자원들(504)은 이메일 서버들, 파일 공유 서버들, SaaS 애플리케이션들, 웹 애플리케이션 서버들, 윈도우즈 애플리케이션 서버들 등을 포함할 수 있다. 이메일 서비스들은 교환 서버들, Lotus Notes 서버들 등을 포함할 수 있다. 파일 공유 서버들은 ShareFile 서버들 등을 포함할 수 있다. SaaS 애플리케이션들은 Salesforce 등을 포함할 수 있다. 윈도우즈 애플리케이션 서버들은 로컬 윈도우즈 운영 체제 등 상에서 실행되는 것으로 의도된 애플리케이션들을 제공하도록 구축된 일부 애플리케이션 서버를 포함할 수 있다. 기업 자원들(504)은 전제-기반 자원(premise-based resource)들, 클라우드 기반 자원들 등일 수 있다. 기업 자원들(504)은 직접적으로 또는 액세스 게이트웨이(560)를 통해 모바일 디바이스(502)에 의해 액세스될 수 있다. 기업 자원들(504)은 트랜스포트 네트워크를 통해 모바일 디바이스(502)에 의해 액세스될 수 있다. 트랜스포트 네트워크는 유선 네트워크, 무선 네트워크, 클라우드 네트워크, 근거리 통신망, 도시권 통신망, 광역 네트워크, 공중 네트워크, 사설 네트워크 등일 수 있다.[0082]
[0083] 기업 서비스들(508)은 인증 서비스들(558), 위협 검출 서비스(564), 디바이스 관리 서비스들(524), 파일 공유 서비스들(568), 정책 관리자 서비스들(570), 소셜 통합 서비스들(572), 애플리케이션 제어기 서비스(574) 등을 포함할 수 있다. 인증 서비스들(558)은 사용자 인증 서비스들, 디바이스 인증 서비스들, 애플리케이션 인증 서비스들, 데이터 인증 서비스들 등을 포함할 수 있다. 인증 서비스들(558)은 인증서들을 사용할 수 있다. 인증서들은 기업 자원들(504) 등에 의해 모바일 디바이스(502)상에 저장될 수 있다. 모바일 디바이스(502)상에 저장된 인증서들은 모바일 디바이스상의 암호화된 위치에 저장될 수 있으며, 인증서는 인증할 때 등에 사용하기 위해 모바일 디바이스(502)상에 일시적으로 저장될 수 있다. 위협 검출 서비스들(564)은 침입 검출 서비스들, 비허가 액세스 시도 검출 서비스들 등을 포함할 수 있다. 비허가 액세스 시도 검출 서비스들은 디바이스들, 애플리케이션들, 데이터 등에 액세스하기 위한 비허가 시도들을 포함할 수 있다. 디바이스 관리 서비스들(524)은 구성, 프로비저닝, 보안, 지원, 모니터링, 보고 및 해체 서비스들을 포함할 수 있다. 파일 공유 서비스들(568)은 파일 관리 서비스들, 파일 저장 서비스들, 파일 컬래버레이션 서비스들 등을 포함할 수 있다. 정책 관리 서비스들(570)은 디바이스 정책 관리자 서비스들, 애플리케이션 정책 관리자 서비스들, 데이터 정책 관리자 서비스들 등을 포함할 수 있다. 소셜 통합 서비스들(572)은 접촉 통합 서비스들, 컬래버레이션 서비스들, 페이스북, 트위터 및 LinkedIn 등과 같은 소셜 네트워크와의 통합 등을 포함할 수 있다. 애플리케이션 제어기 서비스들(574)은 관리 서비스들, 프로비저닝 서비스들, 전개 서비스들, 할당 서비스들, 철회 서비스들, 래핑 서비스들 등을 포함할 수 있다.[0083]
[0084] 기업 모빌리티 기술 아키텍처(500)는 애플리케이션 스토어(578)를 포함할 수 있다. 애플리케이션 스토어(578)는 비-래핑된 애플리케이션들(580), 사전-래핑된 애플리케이션들(582) 등을 포함할 수 있다. 애플리케이션들은 애플리케이션 제어기(574)로부터 애플리케이션 스토어(578)에 파퓰레이트될 수 있다. 애플리케이션 스토어(578)는 액세스 게이트웨이(560), 공중 네트워크(548) 등을 통해 모바일 디바이스(502)에 의해 액세스될 수 있다. 애플리케이션 스토어는 사용자 인터페이스를 사용할 때 이해하기 쉽고 용이하도록 제공될 수 있다. 애플리케이션 스토어(578)는 소프트웨어 전개 키트(584)에 대한 액세스를 제공할 수 있다. 소프트웨어 전개 키트(584)는 본 상세한 설명에서 이전에 설명된 바와같이 애플리케이션을 래핑함으로써 사용자에 의해 선택된 애플리케이션들을 보안하는 능력을 사용자에게 제공할 수 있다. 이후, 소프트웨어 전개 키트(584)를 사용하여 래핑된 애플리케이션은 애플리케이션 제어기(574)를 사용하여 애플리케이션 스토어(578)에서 파퓰레이트함으로써 모바일 디바이스(502)에게 이용가능하게 만들어질 수 있다.[0084] The enterprise
[0085] 기업 모빌리티 기술 아키텍처(500)는 관리 및 분석 능력(588)을 포함할 수 있다. 관리 및 분석 능력(588)은 자원들이 어떻게 사용되는지, 자원들이 얼마나 자주 사용되는지 등에 관한 정보를 제공할 수 있다. 자원들은 디바이스들, 애플리케이션들, 데이터 등을 포함할 수 있다. 자원들이 어떻게 사용되는지는 어떤 디바이스들이 어떤 애플리케이션들을 다운로드하는지, 어떤 애플리케이션들이 어떤 데이터에 액세스하는지 등을 포함할 수 있다. 자원들이 얼마나 자주 사용되는지는 애플리케이션들이 얼마나 자주 다운로드되었는지, 데이터의 특정 세트가 애플리케이션에 의해 얼마나 많은 횟수로 액세스되었는지 등을 포함할 수 있다. [0085] The enterprise
[0086] 도 6은 다른 예시적인 기업 모빌리티 관리 시스템(600)이다. 도 5를 참조하여 앞서 설명된 모빌리티 관리 시스템(500)의 일부 컴포넌트들은 간략화를 위해 생략되었다. 도 6에 도시된 시스템(600)의 아키텍처는 도 5를 참조로 하여 앞서 설명된 시스템(500)의 아키텍처와 많은 측면에서 유사하고, 앞서 언급되지 않은 추가적인 특징들을 포함할 수 있다.[0086] FIG. 6 is another exemplary enterprise
[0087] 이 경우, 좌측은 수신기(604)를 가진 등록 모바일 디바이스(602)를 나타내는데, 이는 클라우드-기반 서비스들에 대한 게이트웨이(606)("클라우드 게이트웨이)와 상호 작용을 하여, 우측 위쪽에 도시된 것과 같은 다양한 기업 자원들(608) 및 서비스들(609), 예컨대 익스체인지(Exchange), 쉐어포인트(Sharepoint), PKI 자원들, 케베로스(Kerberos) 자원들, 인증서 발행 서비스에 액세스한다. 클라우드 게이트웨이(606)는 또한 액세스 게이트웨이 및 애플리케이션 제어기 기능을 포함할 수 있다. 상세히 도시되지는 않았지만, 모바일 디바이스(602)는 또한 애플리케이션들을 선택하여 다운로드하기 위한 기업 애플리케이션 스토어("스토어 프런트")와 상호 작용할 수 있다.[0087] In this case, the left side represents the registered
[0088] 수신기(604)는, 디스플레이 원격 프로토콜, 이를테면 예컨대 Citrix로부터 구매가능한 HDX/ICA 프로토콜을 이용하여 액세스되는, 기업 데이터 센터에서 호스팅되는 윈도우즈 앱들/데스크탑들에 대한 UI(사용자 인터페이스) 매개자(intermediary)로서 동작할 수 있다. 수신기(604)는 또한 모바일 디바이스(602) 상의 네이티브 애플리케이션들, 예컨대 네이티브 iOS 또는 안드로이드 애플리케이션들의 설치 및 관리를 지원한다. 예컨대, 앞의 도면에 도시된 관리 애플리케이션들(610)(메일, 브라우저, 래핑 애플리케이션)은 모두 디바이스 상에서 국부적으로 실행되는 네이티브 애플리케이션들이다. 수신기(604) 및 본 아키텍처의 모바일 애플리케이션 관리 프로토콜은 기업 자원들/서비스들(608)에 대한 연결 및 SSO(single sign on)와 같은 정책 구동 관리 능력들 및 사양들을 제공하기 위해 동작한다. 모바일 애플리케이션 관리 프로토콜의 일례는 Citrix로부터 구매가능한 MDX(모바일 경험 기술(mobile experience technology)) 프로토콜이다. 수신기(604)는 기업에 대한, 보통 다른 클라우드 게이트웨이 컴포넌트들에 대해 SSO을 가진 액세스 게이트웨이(AG)에 대한 주된 사용자 인증을 처리한다. 수신기(604)는 모바일 디바이스(602) 상의 관리 애플리케이션(610)의 행위를 제어하기 위해 클라우드 게이트웨이(606)로부터 정책들을 획득한다. [0088] The
[0089] 네이티브 애플리케이션들(610)과 수신기(604) 사이의 보안 프로세스-간 통신(IPC: inter-process communication) 링크들(612)은 수신기가 각각의 애플리케이션을 "래핑"하는 관리 프레임워크(614)에 의해 시행될 정책들을 적용하도록 하는 관리 채널을 나타낸다. 관리 프레임워크(614)는 예컨대 Citrix로부터 구매가능한 MDX 프레임워크일 수 있다. IPC 링크(612)는 또한 기업 자원들(608)에 대한 연결 및 SSO를 인에이블하는 크리덴셜 및 인증 정보를 수신기(604)가 적용하도록 한다. 마지막으로, IPC 링크(612)는 관리 프레임워크(614)가 수신기(604)에 의해 구현되는 사용자 인터페이스 기능들, 예컨대 온라인 및 오프라인 인증을 인보크하도록 한다. [0089] Security inter-process communication (IPC) links 612 between
[0090] 수신기(604)와 클라우드 게이트웨이(606) 사이의 통신들은 근본적으로 각각의 네이티브 관리 애플리케이션(610)을 래핑하는 관리 프레임워크(614)로부터 관리 채널을 확장한다. 관리 프레임워크(614)는 수신기(604)로부터 정책 정보를 요청하며, 수신기(604)는 차례로 클라우드 게이트웨이(606)로부터 정책 정보를 요청한다. 관리 프레임워크(614)는 인증을 요청하며, 수신기(604)는 클라우드 게이트웨이(606)(이는 예컨대 Citrix로부터 구매가능한 NetScaler Access Gateway일 수 있음)의 게이트웨이 서비스 부분에 로그인한다. 이하에서 더 완전히 설명되는 바와같이, 수신기(604)는 또한 로컬 데이터 볼트(vault)들(616)에 대한 암호화 키들을 유도하기 위한 입력 자료를 생성하거나 또는 PKI 보호 자원들에 직접 인증을 인에이블할 수 있는 클라이언트 인증서들을 제공할 수 있는 서비스들을 클라우드 게이트웨이(606)상에서 지원할 것을 호출할 수 있다.[0090] Communications between the
[0091] 더 상세히, 관리 프레임워크(614)는 각각의 관리 애플리케이션(610)을 래핑한다. 이는 명시적 구축 단계를 통해 또는 구축후 프로세싱 단계를 통해 통합될 수 있다. 관리 프레임워크(614)는 애플리케이션(610)의 제 1 론치시 수신기(604)와 "페어링"하여, 보안 IPC 링크(612)를 초기화하고 그 애플리케이션에 대한 정책을 획득할 수 있다. 관리 프레임워크(614)는 국부적으로 적용하는 정책의 관련 부분들, 예컨대 로컬 OS 서비스들이 어떻게 사용될 수 있는지 또는 로컬 OS 서비스들이 애플리케이션(610)과 어떻게 상호작용할 수 있는지를 한정하는 억제 정책들 중 일부 및 수신기 로그인 종속성들을 시행할 수 있다.[0091] In more detail, the
[0092] 관리 프레임워크(614)는 인증 및 내부 네트워크 액세스를 용이하게 하기 위하여 보안 IPC 링크(612)를 통해 수신기(604)에 의해 제공된 서비스들을 사용할 수 있다. 사설 및 공유 데이터 볼트들(616)(컨테이너들)의 키 관리는 또한 관리 애플리케이션들(610)과 수신기(604) 간의 적절한 상호작용들에 의해 관리될 수 있다. 볼트들(616)은 온라인 인증 이후에만 이용가능하게 만들어질 수 있거나 또는 정책에 의해 허용되는 경우에 오프라인 인증 이후에 이용가능하게 만들어질 수 있다. 볼트들(616)의 첫번째 사용은 온라인 인증을 요구할 수 있으며, 오프라인 액세스는 온라인 인증이 다시 요구되기 전에 최대 정책 리프레시 기간으로 제한될 수 있다. [0092] The
[0093] 내부 자원들에의 네트워크 액세스는 클라우드 게이트웨이(606)의 액세스 게이트웨이 기능을 통해 개별 관리 애플리케이션들(610)로부터 직접 발생할 수 있다. 관리 프레임워크(614)는 각각의 애플리케이션(610) 대신에 네트워크 액세스를 조정하는 것을 담당한다. 수신기(604)는 온라인 인증 이후에 획득된 적절한 시간 제한된 2차 크리덴셜들을 제공함으로써 이들 네트워크 연결들을 용이하게 할 수 있다. 리버스 웹 프록시 연결들 및 엔드-투-엔드 VPN-스타일 터널들(618)과 같은 다수의 네트워크 연결 모드들이 사용될 수 있다.[0093] Network access to internal resources may occur directly from
[0094] 메일 및 브라우저 관리 애플리케이션들(610)은 특별한 상태를 가지며, 임의적 래핑된 애플리케이션들이 일반적으로 이용가능하지 않을 수 있는 시설들을 사용할 수 있다. 예컨대, 메일 애플리케이션은 전체 AG 로그온을 요구하지 않고 연장된 시간 기간 동안 그 메일 애플리케이션이 메일 서버(예컨대, 익스체인지)에 액세스하도록 하는 특별한 배경 네트워크 액세스 메커니즘을 사용할 수 있다. 브라우저 애플리케이션은 상이한 종류의 데이터를 분리하기 위하여 다수의 사설 데이터 볼트들을 사용할 수 있다. [0094] The mail and
[0095] 이러한 아키텍처는 다양한 다른 보안 특징들의 통합을 지원한다. 예컨대, 일부 경우들에서, 클라우드 게이트웨이(606)(자신의 게이트웨이 서비스들을 포함함)는 디렉토리 서비스 패스워드들, 예컨대 액티브 디렉토리(AD) 패스워드들을 검증할 필요가 없을 수 있다. 일부 상황들에서 디렉토리 서비스 패스워드가 일부 사용자들에 대한 인증 인자로서 사용될 수 있는지는 기업의 재량으로 맡겨질 수 있다. 상이한 인증 방법들은 사용자가 온라인인 경우 또는 오프라인인 경우에 (예컨대, 네트워크에 연결되거나 또는 연결되지 않는 경우에) 사용될 수 있다. [0095] Such an architecture supports the integration of various other security features. For example, in some cases, the cloud gateway 606 (including its own gateway services) may not need to verify directory service passwords, such as Active Directory (AD) passwords. In some situations it can be left at the discretion of the enterprise whether the directory service password can be used as an authentication factor for some users. The different authentication methods may be used when the user is online or offline (e.g., connected to the network or not connected).
[0096] 스텝 업(step up) 인증은 클라우드 게이트웨이(606)가 강한 인증을 요구하는 높게 분류된 데이터에 대해 액세스하도록 허용되는 관리 네이티브 애플리케이션들(610)을 식별할 수 있고 비록 이것이, 재인증이 이전의 약한 로그인 레벨 이후에 사용자에 의해 요구되는 것을 의미할지라도, 적절한 인증을 수행한 이후에만 이들 애플리케이션들에 대한 액세스가 허용되도록 하는 것이 특징이다. [0096] The step-up authentication can identify the managed
[0097] 이러한 솔루션의 다른 보안 특징은 모바일 디바이스(602)상의 데이터 볼트들(616)(컨테이너들)의 암호화이다. 볼트들(616)은 파일들, 데이터베이스들, 및 구성들을 포함하는 모든 온-디바이스 데이터가 보호되도록 암호화될 수 있다. 온라인 볼트들의 경우에 키들이 서버(예컨대, 클라우드 게이트웨이)에 저장될 수 있으며, 오프-라인 볼트들의 경우에 키들의 로컬 복사본이 사용자 패스워드에 의해 보호될 수 있다. 데이터가 보안 컨테이너(616)에서 디바이스(602)상에 국부적으로 저장될 때, AES 256 암호화 알고리즘이 최소로 활용되는 것이 바람직하다.[0097] Another security feature of this solution is the encryption of data vols 616 (containers) on the
[0098] 다른 보안 컨테이너 특징들이 또한 구현될 수 있다. 예컨대, 애플리케이션(610)내에서 발생하는 모든 보안 이벤트들이 로깅되어 백엔드에 보고되는 로깅 특징이 포함될 수 있다. 데이터 와이프가 지원될 수 있고, 예컨대 애플리케이션(610)이 탬퍼링(tampering)을 검출하면 연관된 암호화 키들이 랜덤 데이터로 쓰여질 수 있으며, 따라서 사용자 데이터가 파괴된 파일 시스템상에는 힌트가 남겨지지 않는다. 스크린샷 보호(screenshot protection )는 임의의 데이터가 스크린샷들에 저장되는 것을 애플리케이션이 방지할 수 있는 다른 특징이다. 예컨대, 키 윈도우의 은폐 특성은 YES로 세팅될 수 있다. 이는 스크린상에 현재 디스플레이되고 있는 모든 콘텐츠가 은폐되도록 할 수 있으며, 따라서 임의의 콘텐츠가 정상적으로 상주할 블랭크 스크린샷을 초래한다. [0098] Other security container features may also be implemented. For example, a logging feature may be included in which all security events occurring in the
[0099] 로컬 데이터 전달은 예컨대 임의의 데이터가 애플리케이션 컨테이너 외부로 국부적으로 전달되는 것을 방지함으로써, 예컨대 임의의 데이터를 복사하거나 또는 이를 외부 애플리케이션에 송신함으로써 방지될 수 있다. 키보드 캐시 특징은 민감한 텍스트 필드들에 대한 자동보정 기능을 디스에이블하도록 동작할 수 있다. SSL 인증 검증은 동작가능할 수 있으며, 따라서 애플리케이션은 그것이 키체인에 저장되는 대신에 서버 SSL 인증서를 상세하게 검증한다. 암호화 키 생성 특징은 (오프라인 액세스가 요구되는 경우에) 디바이스상의 데이터를 암호화하기 위하여 사용되는 키가 사용자에 의해 공급되는 패스프레이즈(passphrase)를 사용하여 생성되도록 사용될 수 있다. 이는 오프라인 액세스가 요구되지 않는 경우에 서버측에서 랜덤하게 생성되어 저장되는 다른 키들과 XOR 연산될 수 있다. 키 유도 함수들은 사용자 패스워드로부터 생성된 키들이 키의 암호 해시를 생성하는 것보다 오히려 KDF들(키 유도 함수들, 특히 PBKDF2)을 사용하도록 동작할 수 있다. 후자는 무차별 대입 공격(brute force attack) 또는 디렉토리 공격에 취약한 키를 만든다. [0099] Local data transfer can be prevented, for example, by preventing any data from being delivered locally to the outside of the application container, for example by copying any data or sending it to an external application. The keyboard cache feature may be operable to disable automatic correction for sensitive text fields. SSL authentication verification may be operable, so the application verifies the server SSL certificate in detail instead of being stored in the keychain. The encryption key generation feature may be used so that a key used to encrypt data on the device (if offline access is required) is generated using a passphrase supplied by the user. It can be XORed with other keys that are randomly generated and stored on the server side when offline access is not required. The key derivation functions may operate such that the keys generated from the user password use KDFs (key derivation functions, in particular PBKDF2) rather than generating a cryptographic hash of the key. The latter creates keys vulnerable to brute force attacks or directory attacks.
[0100] 추가로, 하나 이상의 초기화 벡터들이 암호화 방법들에서 사용될 수 있다. 초기화 벡터는 동일한 암호화된 데이터의 다수의 복사본들이 상이한 암호 텍스트 출력을 초래하도록 할 수 있으며, 따라서 리플레이 및 암호해독 공격들이 방지된다. 이는 또한 데이터를 암호화하기 위하여 사용되는 특정 초기화 벡터가 알려지지 않은 경우에 암호화 키가 도난당했을지라도 공격자가 임의의 데이터를 암호해독하는 것을 방지할 수 있다. 추가로, 인증 및 이후 암호해독이 사용될 수 있으며, 여기서 사용자가 애플리케이션 내에서 인증된 이후에만 애플리케이션 데이터가 암호해독된다. 다른 특징은 필요할 때만 (디스크가 아니라) 메모리에서 유지될 수 있는, 메모리내의 민감 데이터와 관련될 수 있다. 예컨대, 로그인 크리덴션들은 로그인 이후에 메모리로부터 지워질 수 있으며, 암호화 키들 및 목적-C 인스턴스 변수들 내의 다른 데이터가 저장되지 않는데, 왜냐하면 이들 데이터는 용이하게 참조될 수 있기 때문이다. 대신에, 메모리는 이들을 위해 수동으로 할당받을 수 있다.[0100] Additionally, one or more initialization vectors may be used in the encryption methods. The initialization vector may cause multiple copies of the same encrypted data to result in different cryptographic text output, thus preventing replay and decryption attacks. This can also prevent an attacker from decrypting any data even if the encryption key is stolen in the event that the particular initialization vector used to encrypt the data is not known. Additionally, authentication and subsequent decryption may be used, where the application data is decrypted only after the user is authenticated within the application. Other features may relate to sensitive data in memory, which may be retained in memory only when needed (not the disk). For example, login credentials may be cleared from memory after login, and other data in the encryption keys and Objective-C instance variables are not stored because these data can be easily referenced. Instead, the memory can be manually allocated for these.
[0101] 인액티비티 타임아웃(inactivity timeout)이 구현될 수 있으며, 여기서 인액티비티의 정책-정의된 기간 이후에 사용자 세션이 종료된다.An inactivity timeout may be implemented wherein the user session ends after a policy-defined period of inactivity.
[0102] 관리 프레임워크(614)로부터의 데이터 누출은 다른 방식들로 방지될 수 있다. 예컨대, 애플리케이션(610)이 배경으로 될 때, 메모리는 미리 결정된(구성가능) 시간 기간 이후에 클리어(clear)될 수 있다. 배경화 될 때, 전경화 프로세스(foregrounding process)를 고정시키기 위하여 애플리케이션의 마지막으로 디스플레이된 스크린에서 스냅샷이 취해질 수 있다. 스크린샷은 컨피덴셜 데이터를 포함할 수 있고 따라서 클리어되어야 한다. [0102] Data leakage from the
[0103] 다른 보안 특징은 하나 이상의 애플리케이션들에 액세스하기 위해 디렉토리 서비스(622) 패스워드를 사용하지 않고 OTP(one time password)(620)를 사용하는 것과 관련된다. 일부 경우들에서, 일부 사용자들은 자신들의 디렉토리 서비스 패스워드를 알지 못하며(또는 그들의 디렉토리 서비스 패스워드를 알도록 허용되지 않으며) 따라서 이들 사용자들은 OTP(620)를 사용하여, 예컨대 SecurID와 같은 하드웨어 OTP 시스템을 사용하여 인증할 수 있다(OTP들은 또한 Entrust 또는 Gemalto와 같은 상이한 벤더들에 의해 제공될 수 있다). 일부 경우들에서, 사용자가 사용자 ID로 인증한 이후에, 텍스트가 OTP(620)와 함께 사용자에게 송신된다. 일부 경우들에서, 이는 프롬프트가 단일 필드인 경우에 단지 온라인 사용을 위해서만 구현될 수 있다. [0103] Another security feature involves using one time password (OTP) 620 without using a
[0104] 오프라인 패스워드는 기업 정책을 통해 오프라인 사용이 허용되는 애플리케이션들(610)에 대한 오프라인 인증을 위하여 구현될 수 있다. 예컨대, 기업은 스토어 프런트가 이러한 방식으로 액세스되는 것을 원할 수 있다. 이러한 경우에, 수신기(604)는 사용자가 맞춤형 오프라인 패스워드를 세팅할 것을 요구할 수 있으며, 디렉토리 서비스 패스워드는 사용되지 않는다. 클라우드 게이트웨이(606)는 표준 윈도우즈 서버 패스워드 복잡성 요건들이 수정될 수 있을 지라도 이 요건들에 의해 기술되는 것과 같은 최소 길이, 캐릭터 클래스 구성(character class composition) 및 패스워드들의 수명에 대해 패스워드 표준들을 제어하고 시행하기 위한 정책들을 제공할 수 있다.[0104] The offline password may be implemented for offline authentication for
[0105] 다른 특징은 (관리 프레임워크 마이크로 VPN 특징을 통해 PKI 보호 웹 자원들에 액세스하기 위한) 2차 크리덴셜들로서 특정 애플리케이션들(610)에 대한 클라이언트측 인증서를 인에이블하는 것과 관련된다. 예컨대, 메일 애플리케이션은 이러한 인증서를 활용할 수 있다. 이러한 경우에, 모바일 데이터 동기화 프로토콜(예컨대, ActiveSync에 의해 사용되는 프로토콜)을 사용한 인증서-기반 인증이 지원될 수 있으며, 여기서 수신기(604)로부터의 인증서는 클라우드 게이트웨이(606)에 의해 리트리브되고 키체인으로 사용될 수 있다. 각각의 관리 애플리케이션은 클라우드 게이트웨이에서 정의되는 라벨에 의해 식별되는 하나의 연관된 클라이언트 인증서를 가질 수 있다.[0105] Another feature relates to enabling client-side certificates for
[0106] 클라우드 게이트웨이(606)는 관련된 관리 애플리케이션들이 내부 PKI 보호 자원들을 인증하도록 클라이언트 인증서들을 발행하는 것을 지원하기 위하여 기업 특수 목적 웹 서비스와 상호작용할 수 있다. [0106] The
[0107] 수신기(604) 및 관리 프레임워크(614)는 내부 PKI 보호 네트워크 자원들을 인증하기 위한 클라이언트 인증서들을 획득하여 사용하는 것을 지원하도록 시행될 수 있다. 예컨대 보안 및/또는 분리 요건들의 다양한 레벨들을 매칭시키기 위하여 2개 이상의 인증서가 지원될 수 있다. 인증서들은 메일 및 브라우저 관리 애플리케이션들에 의해, 궁극적으로 임의적 래핑된 애플리케이션들에 의해 사용될 수 있다 (관리 프레임워크가 https 요청들을 중재하는 것이 타당한 웹 서비스 스타일 통신 패턴들을 이들 애플리케이션들이 사용하는 경우에). [0107]
[0108] iOS상에서의 관리 프레임워크 클라이언트 인증서 지원은 각각의 사용 기간 동안 각각의 관리 애플리케이션에서 PKCS 12 BLOB (Binary Large Object)를 iOS 키체인에 임포트(import)하는 것에 의존할 수 있다. 관리 프레임워크 클라이언트 인증서 지원은 사설 인-메모리 키 스토리지(private in-memory key storage)를 가진 HTTPS 구현을 사용할 수 있다. 클라이언트 인증서는 iOS 키체인에서 제시되지 않을 수 있으며 그리고 강하게 보호되는 "온라인-전용" 데이터 값을 잠재적으로 제외하고 지속되지 않을 수 있다. Management Framework on iOS Client certificate support may rely on importing a PKCS 12 binary large object (BLOB) into each iOS keychain in each management application during each usage period. Management Framework Client certificate support can use an HTTPS implementation with private in-memory key storage. Client certificates may not be presented in the iOS keychain and may not persist, potentially excluding strongly protected "online-only" data values.
[0109] 상호 SSL은 또한 모바일 디바이스(602)가 기업에게 인증될 것을 요구함으로써 추가 보안을 제공하도록 구현될 수 있으며, 이와 반대의 경우도 마찬가지다. 클라우드 게이트웨이(606)에 인증하기 위한 가상 스마트 카드들이 또한 구현될 수 있다.[0109] Mutual SSL can also be implemented to provide additional security by requiring the
[0110] 제한된 그리고 전체 케베로스 지원 둘다가 추가 특징들일 수 있다. 전체 지원 특징은 디렉토리 서비스 패스워드 또는 신뢰성 있는 클라이언트 인증서를 사용하여 디렉토리 서비스(622)에 대해 전체 케베로스 로그인을 수행하고 HTTP 교섭 인증 챌린지들에 응답하기 위하여 케베로스 서비스 티켓들을 획득하는 능력과 관련된다. 제한된 지원 특징은 AFEE에서의 강제 위임(constrained delegation)과 관련되며, 여기서 AFEE는 케베로스 프로토콜 전환을 인보크하는 것을 지원하며, 따라서 이는 HTTP 교섭 인증 챌린지들에 응답하여 (강제 위임 대상인) 케베로스 서비스 티켓들을 획득하여 사용할 수 있다. 이러한 메커니즘은 리버스 웹 프록시(CVPN으로도 지칭됨) 모드에서 그리고 http(https가 아님) 연결들이 VPN 및 마이크로 VPN 모드에서 프록시될 때 작동한다. [0110] Both limited and full Kerberos support may be additional features. The full support feature relates to the ability to perform a full Kerberos login to the
[0111] 다른 특징은 애플리케이션 컨테이너 로킹(locking) 및 와이핑(wiping)과 관련되며, 이는 자일-브레이크(jail-break) 또는 루팅 검출시 자동적으로 발생하며 관리 콘솔로부터의 푸시 커맨드(pushed command)로서 발생할 수 있으며 그리고 애플리케이션(610)이 실행되지 않을 때 조차 원격 와이프 기능(remote wipe functionality)을 포함할 수 있다. [0111] Another feature involves application container locking and wiping, which occurs automatically upon jail-break or routing detection and as a pushed command from the management console And may even include remote wipe functionality even when the
[0112] 스토어 프론트 및 애플리케이션 제어기의 멀티-사이트 아키텍처 또는 구성이 지원될 수 있으며, 이는 사용자들로 하여금 실패의 경우에 여러 상이한 위치들 중 하나의 위치로부터 서비스받도록 한다.[0112] Multi-site architecture or configuration of the store front and application controllers may be supported, which allows users to be served from one of several different locations in the event of failure.
[0113] 일부 경우들에서, 관리 애플리케이션들(610)은 API(예시적인 OpenSSL)를 통해 인증서 및 개인 키에 액세스하도록 허용될 수 있다. 기업의 신뢰성 있는 관리 애플리케이션들(610)은 애플리케이션의 클라이언트 인증서 및 개인 키를 사용하여 특정 공개 키 동작들을 수행하도록 허용될 수 있다. 따라서, 예컨대, 애플리케이션이 브라우저와 같이 동작하며 인증서 액세스가 요구되지 않을 때, 애플리케이션이 "나는 누구인가"에 대한 인증서를 판독할 때, 애플리케이션이 보안 세션 토큰을 구축하기 위하여 인증서를 사용할 때, 그리고 애플리케이션이 중요한 데이터에 대한 디지털 서명(예컨대, 트랜잭션 로그)을 위해 또는 일시적 데이터 암호화를 위해 개인 키들을 사용할 때, 다양한 사용의 경우들이 식별되어 처리될 수 있다. [0113] In some cases,
[0114] 관리 모바일 애플리케이션들의 식별 Identification of Management Mobile Applications
[0115] 도 7에서, 예시적인 모바일 디바이스 관리 시스템(700)이 도시된다. 시스템(700)은 도 5 및 도 6을 참조로 하여 앞서 각각 설명된 시스템들(500 및 600)과 많은 측면들에서 유사할 수 있다. 시스템(700)은 또한 단순화를 위하여 앞서 설명된 특정 컴포넌트들을 생략할 수 있으며, 앞서 언급되지 않은 추가 특징들을 포함할 수 있다.[0115] In FIG. 7, an exemplary mobile
[0116] 모바일 디바이스 관리 시스템(700)은 네트워크(706)를 통해 하나 이상의 모바일 디바이스들(704)과 신호 통신하는 기업 시스템(702)을 포함할 수 있다. 기업 시스템은 기업 애플리케이션 서버(708), 액세스 게이트웨이(710), 및 기업 자원들(712)과 같은 하나 이상의 컴퓨팅 자원들을 포함할 수 있다.The mobile
[0117] 기업 애플리케이션 서버(708)는 도 5를 참조로 하여 앞서 논의된 애플리케이션 스토어(578)와 많은 측면들에서 유사할 수 있다. 기업 애플리케이션 서버(708)는 모바일 디바이스, 예컨대 모바일 디바이스(704)에 설치하기 위하여 이용가능한 모바일 애플리케이션들(714)에의 액세스를 제공할 수 있다. 앞서 언급한 바와같이, 모바일 애플리케이션들(714)은 보안 모바일 애플리케이션 및 비보안 모바일 애플리케이션 둘다를 포함할 수 있다. 따라서, 모바일 애플리케이션들(714)은 도 5를 참조로 하여 앞서 설명된 비래핑된 애플리케이션들(180) 및 사전-래핑된 애플리케이션들(182)에 대응할 수 있다. 앞서 또한 언급한 바와같이, 보안 모바일 애플리케이션은 보안 애플리케이션 래퍼로 래핑될 수 있으며, 보안 애플리케이션 래퍼는 보안 모바일 애플리케이션을 관리하고 이 보안 모바일 애플리케이션의 실행을 제어한다. 이와 관련하여, 보안 모바일 애플리케이션, 래핑된 모바일 애플리케이션 또는 등록된 모바일 애플리케이션은 또한 관리 모바일 애플리케이션으로서 지칭될 수 있다. [0117]
[0118] 기업 애플리케이션 서버(708)는 또한 모바일 애플리케이션들(714)과 각각 연관된 애플리케이션 정책들(716) 및 애플리케이션 메타데이터(718)에의 액세스를 제공할 수 있다. 애플리케이션 정책(716)은 모바일 애플리케이션의 관리가 실현되게 하는 메커니즘들 중 하나의 메커니즘을 나타낼 수 있다. 앞서 언급한 바와같이, 애플리케이션 정책(716)은 어떤 사용자들이 관리 모바일 애플리케이션을 활용할 수 있는지, 관리 모바일 애플리케이션이 어떤 컴퓨팅 자원들에 액세스할 수 있는지, 모바일 디바이스에서 실행할 때 관리 모바일 애플리케이션에서 이용가능한 사양들, 및 이들의 조합들에 관한 권리들 및 자격들을 정의할 수 있다.[0118]
[0119] 애플리케이션 메타데이터(718)는 모바일 애플리케이션을 설명하고 그리고/또는 식별하는 정보를 지칭한다. 애플리케이션 메타데이터(718)는 새로운 모바일 애플리케이션의 빌드 프로세스(build process) 동안 생성될 수 있으며, 새로운 모바일 애플리케이션이 기업 애플리케이션 서버에 발표될 때 기업 애플리케이션 서버(708)를 통해 이용가능하게 만들어질 수 있다. 애플리케이션 메타데이터(718)는 예컨대 모바일 애플리케이션의 이름, 모바일 애플리케이션의 크기, 모바일 애플리케이션에 대한 고유 식별자, 모바일 애플리케이션의 버전 등을 포함할 수 있다. 이하에서 추가로 논의되는 바와같이, 애플리케이션 메타데이터(718)는 또한 모바일 애플리케이션의 아이덴티티를 검증하는데 유용한 정보를 포함할 수 있다.[0119]
[0120] 액세스 게이트웨이(710)는 모바일 디바이스, 예컨대 모바일 디바이스(704)에서 동작하는 관리 모바일 애플리케이션에 의한 기업 자원들(712)에의 액세스를 용이하게 할 수 있다. 액세스 게이트웨이(710)는 도 5 및 도 6을 참조로 하여 앞서 각각 설명된 액세스 게이트웨이(160) 및 클라우드 게이트웨이(606)와 많은 측면들에서 유사할 수 있다. 기업 자원들(712)은 도 5 및 도 6을 참조로 하여 앞서 각각 또한 설명된, 기업 자원들(504 및 608) 뿐만아니라 기업 서비스들(508 및 609)에 대응할 수 있다. 일단 검증되고, 인증되어 허가되면, 모바일 애플리케이션들은 앞서 설명된 바와같이 액세스 게이트웨이(710)를 통해 기업 자원들(712)에 액세스할 수 있다.[0120] The
[0121] 관리 모바일 애플리케이션들(720) 뿐만아니라 비관리 모바일 애플리케이션들(722)은 모두 모바일 디바이스(704)에 상주할 수 있다. 액세스 관리자 애플리케이션(724)은 또한 모바일 디바이스(704)에 상주할 수 있으며, 모바일 디바이스상의 관리 모바일 애플리케이션들(720)의 실행을 관리할 수 있다. 관리 모바일 애플리케이션 및 비관리 모바일 애플리케이션 둘다를 포함하는 모바일 디바이스는 비관리 모바일 디바이스로서 지칭될 수 있는데, 왜냐하면 기업이 단지 그 모바일 디바이스의 관리 모바일 애플리케이션들을 제어하는 기능만을 갖추고 있고 모바일 디바이스, 예컨대 비관리 애플리케이션들의 다른 양상들을 제어하는 것을 갖추고 있지 않을 수 있기 때문이다. 모바일 디바이스(704)가 관리 모바일 애플리케이션(720) 및 비관리 모바일 애플리케이션들(722)을 포함하기 때문에, 도 7에서 예로서 도시된 모바일 디바이스는 비관리 모바일 디바이스로서 지칭될 수 있으며, 개인의 개인 모바일 디바이스를 나타낼 수 있다.[0121] Management
[0122] 액세스 관리자 애플리케이션(724)("액세스 관리자")은 도 6을 참조로 하여 앞서 논의된 수신기(604)와 많은 측면들에서 유사할 수 있다. 이하에서 추가로 논의되는 바와같이, 액세스 관리자(724)는 사용자 인증, 모바일 애플리케이션 아이덴티티의 검증 및 모바일 애플리케이션 정책들의 시행을 관리할 수 있다. 사용자는 모바일 디바이스(704)에 액세스 관리자(724)를 초기에 다운로드하여 설치하기 위하여 (예컨대, 웹 브라우저를 통해) 기업 애플리케이션 서버(708)에 액세스할 수 있다. 앞서 논의한 바와같이, 액세스 관리자(724)는 또한 사용자가 기업 시스템(702)으로부터 구매가능한 모바일 애플리케이션들을 브라우징하고, 다운로드하며 설치하는 것을 가능하게 하는, 기업 애플리케이션 서버(708)에 대한 인터페이스의 역할을 할 수 있다.[0122] The access manager application 724 ("access manager") may be similar in many aspects to the
[0123] 사용자가 관리 모바일 애플리케이션(720)을 모바일 디바이스(704)에 다운로드할 때, 액세스 관리자(724)는 또한 관리 모바일 애플리케이션(720)과 연관된 애플리케이션 메타데이터(718) 뿐만아니라 관리 모바일 애플리케이션과 연관된 임의의 애플리케이션 정책들(716)을 다운로드할 수 있다. 앞서 논의한 바와같이, 액세스 관리자(724)는 모바일 애플리케이션(720)에 대한 애플리케이션 메타데이터(718)를 기업 애플리케이션 서버(708)로부터 수신할 수 있다. 일부 예시적인 구현들에서, 액세스 관리자(724)는 모바일 디바이스(704)의 보안 위치에, 예컨대 도 5의 보안 데이터 컨테이너(528) 및/또는 도 6의 보안 데이터 볼트들(616)에 애플리케이션 메타데이터(718) 및 애플리케이션 정책들(716)을 저장할 수 있다.When the user downloads the management
[0124] 액세스 관리자(724)는 또한 모바일 디바이스(704)에 현재 설치되어 있고 액세스 관리자의 관리하에 있는 관리 모바일 애플리케이션들의 리스트(726)를 포함할 수 있다. 새로운 관리 모바일 애플리케이션의 설치시에, 액세스 관리자(724)는 관리 모바일 애플리케이션 리스트(726)에 새로운 엔트리를 추가할 수 있다. 리스트(726)의 새로운 엔트리는 모바일 디바이스(704)에 설치된 새로운 관리 모바일 애플리케이션에 대응할 수 있다.[0124]
[0125] 앞서 언급한 바와같이, 액세스 관리자(724)는 예컨대 관리 모바일 애플리케이션이 그 자체를 정확하게 식별하였음을 보장하고 그리고/또는 관리 모바일 애플리케이션이 모바일 디바이스(704)에 설치된 이후에 변경되지 않았음을 보장하기 위하여, 관리 모바일 애플리케이션(720)의 아이덴티티를 검증하도록 구성될 수 있다. 액세스 관리자는 관리 모바일 디바이스(720)의 아이덴티티를 검증하기 위하여 애플리케이션 메타데이터(718)에 포함된 식별 정보(728)에 의존할 수 있다. 일부 예시적인 실시예들에서, 액세스 관리자(724)는 관리 모바일 애플리케이션의 아이덴티티를 검증하기 위하여 관리 모바일 애플리케이션(720)이 동작중인 모바일 플랫폼에 의존할 수 있다. 모바일 플랫폼의 운영 체제는 관리 모바일 애플리케이션에 대한 저장된 식별 정보와 액세스 관리자(724)가 비교할 수 있는 식별 정보를 생성할 수 있다. 만일 저장된 식별 정보가 운영 체제로부터 수신된 식별 정보와 매칭되면, 액세스 관리자(724)는 관리 모바일 애플리케이션(720)을 신뢰성 있는 모바일 애플리케이션으로서 식별하고, 기업 자원들(712)에 대한 액세스를 승인할 수 있다. 만일 관리 모바일 애플리케이션에 대한 저장된 식별 정보가 운영 체제로부터 수신된 식별 정보와 매칭되지 않으면, 액세스 관리자(724)는 관리 모바일 애플리케이션(720)을 의심스럽거나 또는 신뢰할 수 없는 모바일 애플리케이션으로서 식별하고 기업 자원들(712)에 대한 액세스를 거절할 수 있다. 앞서 언급한 바와같이, 액세스 관리자(724)는 또한 모바일 디바이스(704) 그 자체에 있는 국부 컴퓨팅 자원들에 대한 액세스를 승인하거나 또는 거절할 수 있다. 모바일 디바이스(704)의 국부 컴퓨팅 자원들은 예컨대 카메라 또는 다른 기록 하드웨어; 위치 기반 서비스, 예컨대 GPS, 네트워크 서비스들, 예컨대 셀룰라 또는 인터넷 서비스들, 통신 서비스들, 예컨대 블루투스, 인터페이스 커맨드들, 예컨대 컷-앤드-페이스트(cut-and-paste) 및 스크린샷 사양들을 포함할 수 있다. [0125] As mentioned above, the
[0126] 다른 예시적인 실시예들에서, 액세스 관리자(724)는 관리 모바일 애플리케이션(720) 그 자체를 식별하기 위하여 관리 모바일 애플리케이션(720)에 챌린징할 수 있다. 액세스 관리자(724)는 관리 모바일 애플리케이션(720)에 챌린지 요청을 발행하고 예상 챌린지 응답을 결정할 수 있다. 예상 챌린지 응답은 그 자체를 정확하게 식별하였고 변경되지 않았던 관리 모바일 애플리케이션으로부터 수신되는 것으로 예상된 응답이다. 이하에서 추가로 설명되는 바와같이, 그 자체를 정확하게 식별하였고 변경되지 않았던 모바일 애플리케이션만이 예상된 챌린징된 응답을 생성할 수 있을 것이다. 만일 관리 모바일 애플리케이션(720)으로부터 수신된 응답이 예상된 응답과 매칭되면, 액세스 관리자(724)는 관리 모바일 애플리케이션(720)을 신뢰성 있는 모바일 애플리케이션으로 식별할 수 있다. 만일 관리 모바일 애플리케이션(720)을 신뢰성 있는 모바일 애플리케이션으로서 식별하였다면, 액세스 관리자는 기업 자원들(712)에 액세스하는데 필요한 크리덴셜들을 관리 모바일 애플리케이션에 제공할 수 있다. 만일 관리 모바일 애플리케이션(720)으로부터 수신된 응답이 예상된 응답과 매칭되지 않으면, 액세스 관리자는 관리 모바일 애플리케이션을 의심스럽거나 또는 신뢰할 수 없는 모바일 애플리케이션으로서 식별할 수 있으며, 기업 자원들(712)에 대한 액세스를 거절할 수 있다. 다시, 액세스 관리자(724)는 관리 모바일 애플리케이션(720)으로부터 수신된 응답이 예상된 응답과 매칭되는지의 여부에 따라 모바일 디바이스(704)의 국부 컴퓨팅 자원들에 대한 액세스를 승인하거나 또는 거절할 수 있다.In other exemplary embodiments, the
[0127] 예상된 응답은 관리 모바일 애플리케이션(720)과 연관되는 애플리케이션 메타데이터(718)에 포함된 식별 정보(728)에 적어도 부분적으로 기초할 수 있다. 식별 정보는 모바일 애플리케이션 그 자체가 생성될 때 생성될 수 있다. 식별 정보는 예컨대 애플리케이션 서명을 생성하기 위하여 사용될 수 있는 원래의 디지털 인증서 또는 원래의 정보일 수 있다. 따라서, 예상된 응답은 식별 정보(728)를 포함할 수 있거나 또는 그렇지 않은 경우에 식별 정보(728)에 대응할 수 있다. 이하에서 추가로 설명되는 바와같이, 차후에 변경되는 모바일 애플리케이션 또는 거짓 아이덴티티(false identity)를 제출하는 모바일 애플리케이션은 예상된 응답을 생성할 수 없고 따라서 컴퓨팅 자원들에 대한 액세스를 획득할 수 없다.[0127] The expected response may be based, at least in part, on the
[0128] 관리 모바일 애플리케이션의 아이덴티티를 검증하기 위한 다양한 접근법들이 선택적으로 사용될 수 있다. 궁극적으로 구현되는 특정 접근법은 모바일 디바이스(704)의 운영 체제 및 모바일 플랫폼에 의존할 수 있다. 예컨대, 캘리포니아 마운틴 뷰에 위치한 Google Inc.로부터 구매가능한 안드로이드 운영 체제는 액세스 관리자가 컴퓨팅 자원들에 대한 액세스를 요청하는 모바일 애플리케이션을 강력하게 식별할 수 있게 하는 메커니즘들을 포함할 수 있다. 당업자는 기업 자원들(712)과 같은 컴퓨팅 자원들에 대한 액세스를 요청하는 관리 모바일 애플리케이션의 아이덴티티를 검증하기 위하여 액세스 관리자(724)가 활용할 수 있는 애플리케이션의 서명 인증서를 요청하기 위한 빌트-인 메커니즘들을 안드로이드 운영 체제가 포함할 수 있음을 인식할 것이다. 안드로이드 운영 체제는 애플리케이션이 설치 이후에 변경되는 것을 막을 수 있고 모바일 애플리케이션이 상이한 모바일 애플리케이션에 대하여 생성된 서명 인증서를 사용하는 것을 막을 수 있다는 것이 또한 인식될 것이다. 이러한 방식으로, 액세스 관리자(724)는 관리 모바일 애플리케이션의 아이덴티티를 검증하기 위하여 모바일 플랫폼의 운영 체제에 의해 제공되는 서명 인증서들에 의존할 수 있다. 서명 인증서들을 사용하여 애플리케이션 아이덴티티를 검증하는 것은 이하에서 추가로 더 상세히 논의될 것이다.[0128] Various approaches for verifying the identity of the management mobile application can optionally be used. The particular approach ultimately implemented may depend on the operating system and mobile platform of the
[0129] 그러나, 다른 운영 체제들은 액세스 관리자(724)가 컴퓨팅 자원들에 대한 액세스를 요청하는 관리 모바일 애플리케이션의 아이덴티티를 검증하는 것에 의존할 수 있는 빌트-인 메커니즘들을 포함하지 않을 수 있다. 예컨대, 캘리포니아 쿠퍼티노에 위치한 Apple Inc.로부터 구매가능한 iOS 운영 체제는 관리 모바일 애플리케이션에 대한 서명 인증서를 요청하기 위한 메커니즘들을 포함하지 않을 수 있다. 더욱이, iOS에서 프로세스-간 통신을 위하여 이용가능한 방법들은 통신의 각각의 끝에서 모바일 애플리케이션들의 아이덴티티를 검증하기 위한 메커니즘들을 포함하지 않을 수 있다. iOS 플랫폼상에서 동작하는 모바일 애플리케이션들은 예컨대 카피-앤-페이스트(copy-and-paste) 절차를 통해, 어그리드 투 URL 방식(agreed to URL scheme)을 통해 또는 네트워크를 통해 통신들을 교환할 수 있다.However, other operating systems may not include built-in mechanisms in which
[0130] 일부 예시적인 구현들에서, 액세스 관리자(724) 및 관리 모바일 애플리케이션(720)은 네트워크를 통해, 예컨대 전송 제어 프로토콜(TCP: transmission control protocol)을 통해 통신하도록 구성될 수 있다. 이러한 예에서, 액세스 관리자(724)는 TCP 소켓을 열고 관리 모바일 애플리케이션(720)으로부터 연결 요청을 수신하는 것을 대기할 수 있다. 그러나, TCP가 액세스 관리자(724)에 대한 연결을 요청하는 관리 모바일 애플리케이션을 식별하기 위한 메커니즘을 포함하지 않는다는 것이 인식될 것이다. iOS 플랫폼이 요청을 하는 모바일 애플리케이션에 대한 서명 인증서를 획득하기 위한 메커니즘을 포함하지 않을 수 있기 때문에, 요청하는 모바일 애플리케이션의 아이덴티티를 검증하기 위한 추가 단계들이 사용될 수 있다. 서명 인증서에 의존하는 것에 대신에, 이러한 예에서 액세스 관리자(724)는 이하에서 제시된 바와같이 관리 모바일 애플리케이션(720)에 임베딩되고 그리고/또는 관리 모바일 애플리케이션(720)으로부터 유도되는 식별 정보(732)에 적어도 부분적으로 의존할 수 있다.[0130] In some example implementations, the
[0131] 앞서 논의된 래핑 프로세스는 관리 모바일 애플리케이션으로서 동작하도록 모바일 애플리케이션을 구성할 수 있다. 이와 관련하여, 래핑 프로세스는 관리 모바일 애플리케이션(720)에 관리 프레임워크(730)를 포함시킬 수 있다(예컨대, 관리 모바일 애플리케이션(720)에 관리 프레임워크(730)를 삽입하고, 임베딩하고, 래핑하는 등을 수행할 수 있다). 관리 프레임워크(730)는 도 5 및 도 6를 참조로 하여 앞서 각각 논의된 보안 애플리케이션 래퍼(120) 및 관리 프레임워크(614)에 대응할 수 있다. 도 6을 참조로 하여 앞서 논의된 바와같이, 관리 프레임워크(730)는 액세스 관리자(724)가 모바일 애플리케이션(720)의 동작을 관리하는 것을 가능하게 한다.[0131] The lapping process discussed above can configure a mobile application to act as a management mobile application. In this regard, the wrapping process may include a
[0132] 관리 모바일 애플리케이션(720)은 또한 액세스 관리자(724)에 그 자체를 식별하기 위하여 관리 프레임워크(730)를 사용할 수 있다. 특히, 관리 프레임워크(730)는 아이덴티티 검증 절차 동안 액세스 관리자(724)에 의해 제기된 챌린지에 대한 응답을 생성할 수 있다. [0132] The management
[0133] 일부 예시적인 구현들에서, 관리 모바일 애플리케이션(720)의 관리 프레임워크(730)는 애플리케이션 서명을 생성하도록 구성될 수 있다. 관리 프레임워크(730)는 또한 이러한 애플리케이션 서명에 적어도 부분적으로 기초하는 챌린지 응답을 제공하도록 구성될 수 있다. 차례로, 애플리케이션 서명은 관리 모바일 애플리케이션(720)에 임베딩되고 그리고/또는 관리 모바일 애플리케이션(720)으로부터 유도된 식별 정보(732)에 기초할 수 있다. 달리 말하면, 관리 프레임워크(730)는 관리 모바일 애플리케이션(720)과 연관된 정적 정보 및 동적 정보에 기초하여 애플리케이션 서명을 생성할 수 있다.[0133] In some exemplary implementations, the
[0134] 정적 정보는 앞서 설명된 래핑 프로세스 동안 관리 모바일 애플리케이션(720)에 임베딩되는 시크릿 정보(secret information)일 수 있다. 예컨대, 시크릿 정보는 래핑 프로세스 동안 애플리케이션에 임베딩된 하나 이상의 식별 토큰들(734)을 포함할 수 있다. 식별 토큰들(734)은 예컨대 관리 모바일 애플리케이션(720)의 바이너리(binary)로 임베딩된 랜덤화된 알파뉴메릭 스트링(randomized alphanumeric string)들일 수 있다. 관리 프레임워크(730)는 액세스 관리자(724)로부터 수신된 챌린지에 응답하기 위하여 애플리케이션 서명을 구성할 때 식별 토큰들(734)을 추출하도록 구성될 수 있다.[0134] The static information may be secret information embedded in the management
[0135] 동적 정보는 관리 모바일 애플리케이션(720)으로부터 유도된 식별 토큰들일 수 있다. 예컨대, 유도된 식별 토큰들은 모바일 애플리케이션 번들(bundle)의 다양한 컴포넌트들, 예컨대 모바일 애플리케이션 바이너리, 애플리케이션 아이콘, 애플리케이션 프레임워크들 등에 대하여 선택적 해시 함수들을 사용하여 획득된 해시 값들일 수 있다. 액세스 관리자(724)는 아이덴티티 검증 절차 동안 ad hoc 형식으로 이러한 동적 식별 정보를 유도할 수 있다. 하나 이상의 선택적 해시 함수들은 유도된 식별 토큰들을 나타내는 하나 이상의 선택적 해시 값들을 생성하기 위하여 사용될 수 있다. 액세스 관리자는 필요에 따라 관리 모바일 애플리케이션(720)으로부터 동적 식별 정보를 유도하는 것을 돕기 위하여 관리 프레임워크(730)를 활용할 수 있다. [0135] The dynamic information may be identification tokens derived from the management
[0136] 관리 프레임워크(730)는 또한 액세스 관리자(724)로부터 수신된 챌린지에 대한 응답으로 사용되는 애플리케이션 서명을 구성하도록 구성될 수 있다. 애플리케이션 서명은 관리 모바일 애플리케이션(720)으로부터 추출된 동적 정보 뿐만아니라 관리 모바일 애플리케이션으로부터 유도된 동적 정보의 조합을 포함할 수 있다. 관리 프레임워크(730)는 특정 방식으로 애플리케이션 서명내에 정적 정보 및 동적 정보를 배열하도록 추가로 구성될 수 있다. 따라서, 관리 모바일 애플리케이션에 임베딩된 정적 정보, 모바일 애플리케이션으로부터 유도된 동적 정보, 및 애플리케이션 서명 내에서의 정적 및 동적 정보의 배열을 통해 관리 모바일 장치(720)가 강력하게 식별될 수 있다. The
[0137] 앞서 논의한 바와같이, 액세스 관리자(724)는 관리 모바일 애플리케이션(720)에 챌린징할 때 예상된 응답을 생성하도록 구성될 수 있다. 따라서, 액세스 관리자(724)는 예상된 애플리케이션 서명을 구성하도록 유사하게 구성될 수 있다. 액세스 관리자(724)는 관리 모바일 애플리케이션(720)에 대한 애플리케이션 메타데이터(718)에 포함된 식별 정보(728)에 기초하여 예상된 애플리케이션 서명을 구성할 수 있다. 액세스 관리자는 또한 관리 모바일 애플리케이션(720)으로부터 동적 정보를 동적으로 유도하도록 구성될 수 있다. 게다가, 액세스 관리자(724)는 특정 방식으로 예상된 애플리케이션 서명내에 정적 및 동적 정보를 배열하도록 유사하게 구성될 수 있다.[0137] As discussed above,
[0138] 리플레이 공격(replay attack)들에 대해 보호하기 위하여, 액세스 관리자(724)는 챌린지에 대한 응답으로 사용하기 위한 넌스(예컨대, 임의의 수 및 난수)를 관리 모바일 애플리케이션(720)에 제공할 수 있다. 액세스 관리자(724)는 예상된 해시값을 획득하기 위하여 예상된 애플리케이션 서명을 사용하여 넌스를 해싱할 수 있다. 유사하게, 관리 모바일 애플리케이션의 관리 프레임워크(730)는 응답 해시값을 획득하기 위하여, 수신된 넌스를 사용하여 애플리케이션 서명을 해싱할 수 있다. 따라서, 액세스 관리자(724)로부터의 챌린지에 응답하여, 관리 모바일 애플리케이션(720)은 애플리케이션 서명으로부터 획득된 컴퓨팅된 해시값과 액세스 관리자로부터 수신된 넌스를 액세스 관리자에 제공할 수 있다. 따라서, 액세스 관리자는 예상된 해시값을 수신된 해시값과 비교할 수 있다. 따라서, 액세스 관리자(724)는 예상된 해시값이 수신된 해시값과 매칭될 때 관리 모바일 애플리케이션(720)을 신뢰성 있는 모바일 애플리케이션으로서 식별할 수 있다.To protect against replay attacks, the
[0139] 도 8을 참조하면, 예시적인 애플리케이션 서명 및 챌린지 응답의 블록도가 도시된다. 앞서 논의한 바와같이, 관리 모바일 애플리케이션(800)은 액세스 관리자(804)로부터의 챌린지에 응답하여 애플리케이션 서명(802)을 생성할 수 있다. 애플리케이션 서명(802)은 관리 모바일 애플리케이션(800)에 임베딩된 식별 토큰들(806) 뿐만아니라 관리 모바일 애플리케이션으로부터 유도된 식별 토큰들(808)을 포함할 수 있다. 도 8에서 알 수 있는 바와같이, 관리 모바일 애플리케이션(800)은 특정 방식으로 애플리케이션 서명(802)내에, 임베딩된 식별 토큰들(806) 및 유도된 식별 토큰들(808)을 배열할 수 있다. 예로서, 관리 모바일 애플리케이션(800)은 애플리케이션 서명을 구성하기 위하여 특정 순서로, 임베딩된 식별 토큰들(806) 및 유도된 식별 토큰들(808)을 연접할 수 있다. 다른 예에서, 관리 모바일 애플리케이션(800)은 애플리케이션 서명을 구성하기 위하여, 임베딩된 식별 토큰들(806)의 부분들 및 유도된 식별 토큰들(808)의 부분들을 연접할 수 있다. 애플리케이션 서명을 구성하기 위한 다양한 접근법들이 선택적으로 사용될 수 있다는 것이 인식될 것이다. 또한 앞서 언급한 바와같이, 액세스 관리자(804)는 관리 모바일 애플리케이션(800)에 넌스(810)를 제공할 수 있다. 관리 모바일 애플리케이션(800)은 애플리케이션 서명(802) 및 넌스(810)에 기초하여 해시 값(814)을 생성하기 위하여 해시 함수(812)를 사용할 수 있다. 관리 모바일 애플리케이션(800)은 수신된 챌린지에 대한 응답(816)으로 해시 값(814)을 액세스 관리자(802)에게 제공할 수 있다.[0139] Referring now to FIG. 8, a block diagram of an exemplary application signature and challenge response is shown. As discussed above, the management
[0140] 관리 모바일 애플리케이션(800)의 아이덴티티를 검증하기 위하여, 액세스 관리자(804)는 애플리케이션 메타데이터(822)와 함께 저장된 식별 토큰들(820) 및 관리 모바일 애플리케이션으로부터 유도된 식별 토큰들(808)에 기초하여, 예상된 애플리케이션 서명(818)을 구성할 수 있다. 액세스 관리자(804)는 또한 넌스(810) 및 애플리케이션 메타데이터(822)로부터의 식별 토큰들(820)에 기초하여 예상된 해시값(824)을 생성하기 위하여 해시 함수(812)를 사용할 수 있다. 챌린지에 대한 응답으로, 액세스 관리자(804)는 챌린지 응답(816)을 수신할 수 있으며, 예상된 해시값(824)과 챌린지 응답의 해시값(814)을 비교할 수 있다.In order to verify the identity of the management
[0141] 본 개시내용의 이익과 함께, 기업 애플리케이션 서버(도 7에서 708)로부터 수신된 변경되지 않은 모바일 애플리케이션만이 예상된 해시 값(824)을 생성할 수 있다는 것이 인식할 것이다. 예상된 애플리케이션 서명(818)이 모바일 디바이스에 영구적으로 저장되는 것이 아니고 오히려 컴퓨팅 자원들에 대한 액세스를 요청하는 모바일 애플리케이션(800)의 아이덴티티를 검증하도록 필요에 따라 재구성될 수 있다는 것이 또한 인식될 것이다. 따라서, 앞서 제시된 접근법은 컴퓨팅 자원들에 대한 모바일 애플리케이션 액세스를 승인하거나 또는 거절해야 하는지의 여부를 결정하기 위하여 모바일 애플리케이션을 강력하게 식별하기 위한 메커니즘을 나타낸다. With the benefit of this disclosure, it will be appreciated that only the unmodified mobile application received from the enterprise application server (708 in FIG. 7) can generate the expected
[0142] 도 9-도 14는 관리 모바일 애플리케이션의 아이덴티티를 검증하고, 일단 검증되면 애플리케이션 정책들을 시행하고 그리고 관리 모바일 애플리케이션들의 동작을 제어하는 양상들과 관련된 예시적인 방법 단계들을 도시한다.[0142] FIGS. 9-14 illustrate exemplary method steps associated with aspects of verifying the identity of a managed mobile application, once enforced, enforcing application policies, and controlling operations of managed mobile applications.
[0143] 도 9에서, 비관리 모바일 디바이스에서 모바일 애플리케이션을 관리하기 위한 예시적인 방법 단계들의 흐름도(900)가 도시된다. 기업은 모바일 디바이스(예컨대, 비관리 모바일 디바이스)에서 동작하도록 구성되며 모바일 디바이스로부터의 컴퓨팅 자원들에 액세스하도록 구성된 관리 모바일 애플리케이션을 생성할 수 있다(블록(902)). 기업은 또한 액세스 관리자 애플리케이션에 의해 관리될 관리 모바일 애플리케이션을 모바일 디바이스에 구성할 수 있다. 앞서 논의한 바와같이, 기업은 액세스 관리자가 관리 모바일 애플리케이션의 아이덴티티를 검증하고 관리 모바일 애플리케이션의 동작을 제어하는 것을 가능하게 하는 관리 프레임워크(예컨대, MDX 프레임워크)를 래핑하거나 또는 그렇지 않은 경우에 이 관리 프레임 워크를 포함할 수 있다.[0143] In FIG. 9, a
[0144] 관리 모바일 애플리케이션의 생성시, 기업은 또한 관리 모바일 애플리케이션과 연관된 식별 정보를 생성할 수 있다(블록(904)). 식별 정보는 예컨대 식별 토큰들을 포함하는 애플리케이션 메타데이터 및/또는 서명된 애플리케이션 인증서일 수 있다. 식별 토큰들은 일부 예시적인 구현들에서, 관리 모바일 애플리케이션(예컨대, 애플리케이션 바이너리)으로 임베딩될 수 있다. 사용자는 모바일 디바이스에 액세스 관리자를 다운로드하여 설치할 수 있다(블록(906)). 액세스 관리자는 기업 애플리케이션 서버(예컨대, 기업 애플리케이션 스토어)를 브라우징하고 다양한 관리 모바일 애플리케이션들을 선택하여 모바일 디바이스에 다운로드할 인터페이스를 사용자에게 제공할 수 있다. 액세스 관리자는 기업 애플리케이션 서버에 로그온하기 위하여 액세스 크리덴셜들을 제공할 것을 사용자에게 요구할 수 있다. 사용자는 사용자 프로파일과 연관될 수 있으며, 사용자 프로파일은 다양한 권리들 및 자격들과 연관될 수 있다. 이러한 방식에서, 다운로드하기 위하여 이용가능한 것으로 사용자에게 제시된 관리 모바일 애플리케이션들은 사용자에게 할당된 권리들 및 자격들에 의존하며, 예컨대 기업 애플리케이션 서버는 단지 사용자가 사용하도록 사용자에게 자격이 부여된 관리 모바일 애플리케이션들을 제시할 수 있다. [0144] Upon creation of the management mobile application, the enterprise may also generate identification information associated with the management mobile application (block 904). The identification information may be, for example, application metadata including identification tokens and / or a signed application certificate. The identification tokens may be embedded in a management mobile application (e.g., application binary), in some example implementations. The user may download and install the access manager on the mobile device (block 906). The access manager may provide an interface for a user to browse an enterprise application server (e.g., an enterprise application store) and select various managed mobile applications to download to the mobile device. The access manager may require the user to provide access credentials to log on to the enterprise application server. A user may be associated with a user profile, and a user profile may be associated with various rights and entitlements. In this manner, the management mobile applications presented to the user as available for download will depend on the rights and entitlements assigned to the user, for example, the enterprise application server will only be able to provide management mobile applications Can be presented.
[0145] 만일 관리 모바일 애플리케이션을 선택하였다면, 사용자는 액세스 관리자를 통해 모바일 애플리케이션을 다운로드하여, 모바일 디바이스에 모바일 애플리케이션을 설치할 수 있다(블록(908)). 기업 애플리케이션 서버는 또한 모바일 애플리케이션과 연관된 식별 정보 뿐만아니라 모바일 애플리케이션과 연관된 액세스 정책을 제공할 수 있다. 따라서, 사용자가 관리 모바일 애플리케이션을 다운로드하여 설치할 때, 액세스 관리자는 또한 식별 정보를 다운로드하여 저장할 수 있고(블록(910)) 모바일 애플리케이션과 연관된 애플리케이션 정책을 다운로드하여 저장할 수 있다(블록(912)).[0145] If the management mobile application is selected, the user can download the mobile application through the access manager and install the mobile application in the mobile device (block 908). The enterprise application server can also provide identification information associated with the mobile application as well as access policies associated with the mobile application. Thus, when a user downloads and installs a management mobile application, the access manager may also download and store the identification information (block 910) and download and store the application policy associated with the mobile application (block 912).
[0146] 만일 모바일 디바이스에 모바일 애플리케이션을 설치하였다면, 사용자는 컴퓨팅 자원에 액세스하기 위하여 모바일 애플리케이션을 활용할 수 있다. 모바일 애플리케이션이 컴퓨팅 자원에 액세스하는 것을 시도할 때, 모바일 애플리케이션은 액세스 관리자로 체크-인(check-in)하여 자원에 대한 액세스를 요청할 수 있다(블록(914)). 컴퓨팅 자원에 액세스하기 위한 요청을 수신할 때, 액세스 관리자는 기업 애플리케이션 서버로부터 수신되고 모바일 디바이스에 저장된 식별 정보를 리트리브할 수 있다(블록(916)). 액세스 관리자는 또한 모바일 운영 체제, 예컨대 서명된 애플리케이션 인증으로부터 또는 모바일 애플리케이션 그 자체, 예컨대 애플리케이션 서명에 적어도 부분적으로 기초한 해시 값으로부터 식별 정보를 수신할 수 있다(블록(918)).[0146] If a mobile application is installed on a mobile device, the user can utilize the mobile application to access the computing resource. When the mobile application attempts to access the computing resource, the mobile application may check in with the access manager to request access to the resource (block 914). Upon receiving the request to access the computing resource, the access manager may retrieve the identification information received from the enterprise application server and stored on the mobile device (block 916). The access manager may also receive identification information from a mobile operating system, e.g., a signed application authentication, or from a hash value based at least in part on the mobile application itself, e.g., an application signature (block 918).
[0147] 이후, 액세스 관리자는 저장된 식별 정보와 수신된 식별 정보를 비교할 수 있다(블록(920)). 만일 수신된 식별 정보가 저장된 식별 정보와 매칭되면(블록(922): Y), 액세스 관리자는 모바일 애플리케이션이 유효함을 결정하여, 모바일 애플리케이션을 신뢰성 있는 모바일 애플리케이션으로서 식별할 수 있다. 따라서, 액세스 관리자는 관리 모바일 애플리케이션이 컴퓨팅 자원에 액세스하는 것을 허용할 수 있다(블록(924)). 액세스 관리자는 예컨대 기업 자원과의 연결을 설정하고 기업 자원에 액세스하는데 필요한 액세스 크리덴셜들, 인증서들, 키들 등을 모바일 애플리케이션에 제공할 수 있다. 일부 예시적인 구현들에서, 모바일 애플리케이션과 연관된 애플리케이션 정책은 모바일 애플리케이션이 컴퓨팅 자원에 액세스하여 이를 사용하는 방식을 결정할 수 있다. 만일 수신된 식별 정보가 저장된 식별 정보와 매칭되지 않으면(블록(924): N), 액세스 관리자는 모바일 애플리케이션이 무효함을 결정하여, 모바일 애플리케이션을 신뢰성 있는 모바일 애플리케이션으로서 식별하지 않을 수 있으며, 따라서 모바일 애플리케이션이 컴퓨팅 자원에 액세스하는 것을 막을 수 있다(블록(926)).[0147] Thereafter, the access manager may compare the stored identification information with the received identification information (block 920). If the received identification information matches the stored identification information (block 922: Y), the access manager may determine that the mobile application is valid and identify the mobile application as a trusted mobile application. Thus, the access manager may allow the management mobile application to access the computing resources (block 924). The access manager may provide the mobile application with access credentials, certificates, keys, and the like, which are needed, for example, to establish a connection with enterprise resources and to access corporate resources. In some exemplary implementations, an application policy associated with a mobile application may determine how the mobile application accesses and uses the computing resource. If the received identification information does not match the stored identification information (block 924: N), the access manager may determine that the mobile application is invalid and may not identify the mobile application as a trusted mobile application, The application may be prevented from accessing the computing resource (block 926).
[0148] 도 10은 비관리 모바일 디바이스에서, 관리 동작을 위한 관리 모바일 애플리케이션을 준비하기 위한 예시적인 방법 단계들의 흐름도(1000)이다. 앞서 언급한 바와같이, 일부 모바일 운영 체제들은 모바일 애플리케이션의 아이덴티티를 검증하기 위하여 액세스 관리자가 사용할 수 있는 빌트-인 메커니즘들을 제공하지 않을 수 있다. 따라서, 모바일 애플리케이션은 자신이 그 자체를 강력하게 식별할 수 있도록 구성될 수 있다. 기업은 모바일 애플리케이션을 관리 모바일 애플리케이션으로서 준비하기 위하여 툴키트(toolkit)를 사용할 수 있다(블록(1002)). 툴키트는 모바일 애플리케이션을 관리 모바일 애플리케이션으로 변환하는 기능(예컨대, MDX 프레임워크)를 추가할 수 있다(블록(1004)). 툴키트는 또한 식별 토큰들(예컨대, 랜덤화된 스트링들)을 생성하여 관리 모바일 애플리케이션으로 임베딩할 수 있다(블록(1006)). 관리 모바일 애플리케이션에 추가된 기능은 애플리케이션 서명을 구성하기 위하여 관리 모바일 애플리케이션이 임베딩된 식별 토큰들을 추출하고 배열하며 결합하는 것을 가능하게 하는 기능을 포함할 수 있다. 관리 모바일 애플리케이션에 추가된 기능은 또한 관리 모바일 애플리케이션이 식별 토큰들을 동적으로 유도할 뿐만아니라 애플리케이션 서명을 구성할 때 임베딩된 식별 토큰들과 유도된 식별 토큰들을 배열하여 결합하는 것을 가능하게 하는 기능을 포함할 수 있다. 게다가, 관리 모바일 애플리케이션에 추가된 기능은 관리 모바일 애플리케이션이 애플리케이션 서명에 적어도 부분적으로 기초하여 해시값을 생성하는 것을 가능하게 하는 기능을 부가적으로 포함할 수 있다.[0148] FIG. 10 is a flow diagram 1000 of exemplary method steps for preparing a management mobile application for management operations, in an unmanaged mobile device. As noted above, some mobile operating systems may not provide built-in mechanisms that an access manager may use to verify the identity of a mobile application. Thus, a mobile application can be configured to strongly identify itself. The enterprise may use a toolkit to prepare the mobile application as a management mobile application (block 1002). The toolkit may add functionality (e.g., MDX framework) to convert the mobile application to a management mobile application (block 1004). The toolkit may also generate and embed identification tokens (e.g., randomized strings) into the management mobile application (block 1006). The functionality added to the management mobile application may include functionality that enables the management mobile application to extract, arrange, and combine embedded identification tokens to configure the application signatures. The functionality added to the management mobile application also includes the ability to enable the management mobile application to dynamically derive the identification tokens as well as to combine the derived identification tokens with the embedded identification tokens when configuring the application signatures can do. In addition, the functionality added to the management mobile application may additionally include functionality that enables the management mobile application to generate the hash value based at least in part on the application signature.
[0149] 툴키트는 또한 모바일 애플리케이션에 임베딩된 식별 토큰들을 포함하는 관리 모바일 애플리케이션에 대한 애플리케이션 메타데이터를 생성할 수 있다(블록(1008)). 이후, 기업은 애플리케이션 메타데이터 및 모바일 애플리케이션과 연관된 임의의 애플리케이션 정책들과 함께 관리 모바일 애플리케이션을 기업 애플리케이션 서버에 발표할 수 있다(블록(1010)). 기업 애플리케이션 서버는 선택된 모바일 애플리케이션을 다운로드하기 위한 요청을 모바일 디바이스로부터 수신할 수 있다(블록(1012)). 만일 액세스 관리자가 모바일 디바이스에 아직 설치되지 않았다면(블록(1014): N), 기업 애플리케이션 서버는 먼저 액세스 관리자 애플리케이션을 모바일 디바이스에 다운로드할 수 있다(블록(1016)). 일단 액세스 관리자가 모바일 애플리케이션에 설치되면(블록(1014: Y), 기업 애플리케이션 서버는 요청의 수신에 응답하여, 선택된 모바일 애플리케이션을 모바일 디바이스에 다운로드할 수 있다(1018). 앞서 언급한 바와같이, 기업 애플리케이션 서버는 또한 모바일 디바이스에 저장하기 위하여, 선택된 모바일 애플리케이션과 연관된 애플리케이션 메타데이터를 모바일 디바이스에 다운로드할 수 있다. 액세스 관리자는 애플리케이션 메타데이터에 대해 액세스할 수 있으며, 따라서 액세스 관리자는 애플리케이션 메타데이터와 연관된 모바일 애플리케이션의 아이덴티티를 검증할 수 있다. [0149] The toolkit may also generate application metadata for a managed mobile application that includes identification tokens embedded in the mobile application (block 1008). The enterprise may then publish the management mobile application to the enterprise application server along with application metadata and any application policies associated with the mobile application (block 1010). The enterprise application server may receive a request from the mobile device to download the selected mobile application (block 1012). If the access manager has not yet been installed on the mobile device (block 1014: N), the enterprise application server may first download the access manager application to the mobile device (block 1016). Once the access manager is installed in the mobile application (block 1014: Y), the enterprise application server may download 1018 the selected mobile application to the mobile device in response to receiving the request 1018. As mentioned above, The application server may also download application metadata associated with the selected mobile application to the mobile device for storage on the mobile device. The access manager may have access to the application metadata, The identity of the mobile application can be verified.
[0150] 도 11에서, 비관리 모바일 디바이스에서 관리 모바일 애플리케이션을 초기화하기 위한 예시적인 방법 단계들의 흐름도(1100)가 도시된다. 모바일 디바이스가 먼저 활성화되고 초기화될 때(블록(1102)), 액세스 관리자 애플리케이션은 론치된 제 1 모바일 애플리케이션들 중 하나일 수 있다(블록(1104)). 액세스 관리자는 예컨대 모바일 디바이스의 스타트업 프로세스의 부분으로서 그리고/또는 모바일 디바이스에서 수신되는 사용자 입력에 응답하여 자동적으로 론치할 수 있다. 액세스 관리자 애플리케이션이 론치할 때, 액세스 관리자는 사용자로부터 액세스 크리덴셜들(예컨대, 사용자이름 및 패스워드)을 요청할 수 있다(블록(1106)). 이후, 액세스 관리자는 인증을 위한 액세스 크리덴셜들을 기업 서버에 제공할 수 있다(블록(1108)). 만일 기업 서버가 사용자를 인증하지 않으면(블록(1110): N), 액세스 관리자는 모바일 디바이스의 임의의 관리 모바일 애플리케이션들이 컴퓨팅 자원들에 액세스하는 것을 막을 수 있다(블록(1112)). 예컨대, 액세스 관리자는 기업 자원들과의 연결들을 설정하는데 필요한 액세스 크리덴셜들을 모바일 애플리케이션들에 제공하지는 않을 수 있다.[0150] In FIG. 11, a
[0151] 만일 기업 서버가 사용자를 인증하면(블록(1110): Y), 기업 서버는 액세스 관리자 애플리케이션이 변경되지 않도록 하기 위하여 액세스 관리자 그 자체의 아이덴티티를 검증할 수 있다(블록(1114)). 기업 서버는 관리 모바일 애플리케이션과 동일한 방식으로 액세스 관리자의 아이덴티티를 검증할 수 있다. 예로서, 액세스 관리자를 서명하기 위하여 사용되는 서명 인증서는 액세스 관리자 애플리케이션을 검증하기 위하여 사용될 수 있다. 예컨대, 기업 시스템은 관리 모바일 애플리케이션을 검증할 수 있다. 만일 액세스 관리자가 검증되지 않으면(블록(1116): N), 관리 모바일 애플리케이션들의 관리 프레임워크는 액세스 관리자를 모바일 디바이스로부터 손실한 것으로서 간주할 수 있으며, 따라서 관리 모바일 애플리케이션들은 컴퓨팅 자원들에 액세스하는 것이 방지될 수 있다(블록(1112)). [0151] If the enterprise server authenticates the user (block 1110: Y), the enterprise server may verify the identity of the access manager itself to prevent the access manager application from changing (block 1114). The enterprise server can verify the identity of the access manager in the same manner as the management mobile application. By way of example, the signing certificate used to sign the access manager may be used to verify the access manager application. For example, an enterprise system can verify a management mobile application. If the access manager is not verified (block 1116: N), the management framework of the management mobile applications may consider the access manager as being lost from the mobile device, and therefore the management mobile applications may not be able to access the computing resources (Block 1112).
[0152] 만일 기업 서버가 액세스 관리자 애플리케이션의 아이덴티티를 검증하면(블록(1116); Y), 관리 모바일 애플리케이션이 개시될 수 있다(블록(1118)). 론치시 뿐만아니라 동작 동안, 모바일 애플리케이션은 액세스 관리자로 체크-인할 수 있으며, 따라서 액세스 관리자는 관리 모바일 애플리케이션의 아이덴티티를 검증할 수 있다(블록(1120)). 만일 액세스 관리자가 관리 모바일 애플리케이션의 아이덴티티를 검증할 수 없으면(블록(1122): N), 액세스 관리자는 관리 모바일 애플리케이션이 컴퓨팅 자원들에 액세스하는 것을 막을 수 있다(블록(1124)). 만일 액세스 관리자가 관리 모바일 애플리케이션의 아이덴티티를 성공적으로 검증하면(블록(1122): Y), 액세스 관리자는 관리 모바일 애플리케이션들을 신뢰성 있는 모바일 애플리케이션으로서 식별할 수 있다(블록(1126)). 만일 관리 모바일 애플리케이션만이 오직 모바일 디바이스에 론치하였다면, 액세스 관리자는 신뢰성 있는 모바일 애플리케이션을 포함하도록, 액세스 관리자에 의해 관리되는 모바일 애플리케이션들의 리스트를 업데이트할 수 있다(블록(1128)). 만일 관리 모바일 애플리케이션의 아이덴티티를 검증하였다면, 액세스 관리자는 또한 신뢰성 있는 모바일 애플리케이션이 컴퓨팅 자원들에 액세스하는 것을 허용할 수 있다(블록(1130)).[0152] If the enterprise server verifies the identity of the access manager application (block 1116), then the management mobile application may be started (block 1118). During the launch as well as during operation, the mobile application can check-in to the access manager so that the access manager can verify the identity of the management mobile application (block 1120). If the access manager can not verify the identity of the management mobile application (block 1122: N), the access manager may prevent the management mobile application from accessing the computing resources (block 1124). If the access manager successfully verifies the identity of the management mobile application (block 1122: Y), the access manager may identify the management mobile applications as a trusted mobile application (block 1126). If only the management mobile application has launched to the mobile device, the access manager may update the list of mobile applications managed by the access manager to include the trusted mobile application (block 1128). If verifying the identity of the management mobile application, the access manager may also allow the trusted mobile application to access the computing resources (block 1130).
[0153] 도 12에는 제 1 타입의 모바일 운영 체제를 가진 비관리 모바일 디바이스의 관리 모바일 애플리케이션을 검증하기 위한 예시적인 방법 단계들의 흐름도(1200)가 도시되어 있다. 이러한 예에서, 모바일 운영 체제는 모바일 애플리케이션의 아이덴티티를 검증하기 위하여 액세스 관리자가 활용할 수 있는 빌트-인 메커니즘들을 포함하지 않을 수 있다. 액세스 관리자는 컴퓨팅 자원에 액세스하는 것을 시도하는 요청을 관리 모바일 애플리케이션으로부터 수신할 수 있다(블록(1202)). 요청을 수신할 때, 액세스 관리자는 아이덴티티 검증 프로세스를 시작하도록 관리 모바일 애플리케이션과 핸드셰이크(handshake)를 개시할 수 있다(블록(1204)). 관리 모바일 애플리케이션은 예컨대 고유 애플리케이션 식별자를 액세스 관리자에 제공함으로써 액세스 관리자에게 그 자체를 식별할 수 있다(블록(1206)). 차례로, 액세스 관리자는 모바일 애플리케이션과 연관된 애플리케이션 메타데이터를 리트리브하기 위하여 애플리케이션 식별자를 활용할 수 있다(블록(1208)). 액세스 관리자는 또한 넌스를 생성하고 넌스를 모바일 애플리케이션에 제공할 수 있다(블록(1210)).[0153] FIG. 12 shows a flow diagram 1200 of exemplary method steps for verifying a managed mobile application of an unmanaged mobile device with a mobile operating system of a first type. In this example, the mobile operating system may not include built-in mechanisms that the access manager may utilize to verify the identity of the mobile application. The access manager may receive from the management mobile application a request to access the computing resource (block 1202). Upon receiving the request, the access manager may initiate a handshake with the managing mobile application to begin the identity verification process (block 1204). The management mobile application may identify itself to the access manager by, for example, providing a unique application identifier to the access manager (block 1206). In turn, the access manager may utilize the application identifier to retrieve application metadata associated with the mobile application (block 1208). The access manager may also generate nonce and provide nonce to the mobile application (block 1210).
[0154] 이후, 액세스 관리자 및 관리 모바일 애플리케이션은 모바일 애플리케이션의 아이덴티티를 검증하고 모바일 애플리케이션이 신뢰성 있는 모바일 애플리케이션인지의 여부를 결정하기 위하여 사용되는 애플리케이션 서명 및 대응하는 해시값을 구성하는 프로세스를 시작할 수 있다. 모바일 애플리케이션은 임베딩된 식별 토큰들을 추출하고(블록(1212)) 애플리케이션 서명을 구성하기 위하여 사용되는 유도된 식별 토큰들을 유도할 수 있다(블록(1214)). 이후, 모바일 애플리케이션은 애플리케이션 서명을 획득하기 위하여, 추출된 임베딩된 식별 토큰들과 유도된 식별 토큰들을 배열하여 결합할 수 있다(블록(1216)). 모바일 애플리케이션은 액세스 관리자로부터 수신된 넌스 및 애플리케이션 서명을 사용하여 해시값을 컴퓨팅할 수 있다(블록(1218)).[0154] Thereafter, the access manager and the management mobile application may begin the process of verifying the identity of the mobile application and configuring the application signature and corresponding hash value used to determine whether the mobile application is a trusted mobile application . The mobile application may extract the embedded identification tokens (block 1212) and derive the derived identification tokens used to construct the application signature (block 1214). The mobile application may then combine and combine the extracted embedded identification tokens with the derived identification tokens to obtain the application signature (block 1216). The mobile application may compute the hash value using the nonsense and application signatures received from the access manager (block 1218).
[0155] 만일 모바일 애플리케이션에 넌스를 제공하였다면, 액세스 관리자는 모바일 애플리케이션과 연관된 애플리케이션 메타데이터로부터, 임베딩된 식별 토큰들을 리트리브할 수 있다(블록(1220)). 액세스 관리자는 예상된 애플리케이션 서명을 구성하기 위하여 사용되는 유도된 식별 토큰들을 모바일 애플리케이션으로부터 유사하게 유도할 수 있다(블록(1222)). 이후, 액세스 관리자는 예상된 애플리케이션 서명을 획득하기 위하여, 애플리케이션 메타데이터로부터 리트리브된 임베딩된 식별 토큰들 및 유도된 식별 토큰들을 배열하여 결합할 수 있다(블록(1224)). 액세스 관리자는 모바일 애플리케이션에 제공된 넌스 및 예상된 애플리케이션 서명을 사용하여, 예상된 해시값을 컴퓨팅할 수 있다(블록(1226)). [0155] If provided to the mobile application, the access manager may retrieve the embedded identification tokens from the application metadata associated with the mobile application (block 1220). The access manager may similarly derive the derived identification tokens used to construct the expected application signature from the mobile application (block 1222). The access manager may then combine and combine the retrieved identification tokens and derived identification tokens from the application metadata to obtain the expected application signature (block 1224). The access manager may compute the expected hash value using the nonsense and expected application signatures provided to the mobile application (block 1226).
[0156] 애플리케이션 메타데이터로부터 리트리브된 임베딩된 식별 토큰들이 모바일 디바이스로부터 추출된 임베딩된 식별 토큰들과 동일한 경우에; 액세스 관리자에 의해 유도된 식별 토큰들이 모바일에 의해 유도된 식별 토큰들과 동일한 경우에; 액세스 관리자에 의해 구성된 예상된 애플리케이션 서명이 모바일 애플리케이션에 의해 구성된 애플리케이션 서명과 동일한 경우에, 그리고 모바일 애플리케이션이 해시값을 컴퓨팅하기 위하여 액세스 관리자에 의해 제공된 넌스를 사용하는 경우에, 액세스 관리자에 의해 컴퓨팅된 해시값이 모바일 애플리케이션에 의해 컴퓨팅된 해시값과 동일해야 한다는 것이 인식될 것이다. 따라서, 모바일 애플리케이션은 액세스 관리자에 대한 응답으로 해시값을 제공할 수 있으며(블록(1228)), 액세스 관리자는 예상된 해시값과 모바일 애플리케이션으로부터 수신된 값과 비교할 수 있다(블록(1230)). 만일 예상된 해시값이 수신된 해시값과 매칭되지 않으면(블록(1232): N), 액세스 관리자는 모바일 애플리케이션이 그 자체를 거짓으로 식별하였고, 모바일 디바이스에 설치된 이후에 변경되었음을 결정할 수 있는 식이다. 결과적으로, 액세스 관리자는 컴퓨팅 자원들에 대한 모바일 애플리케이션 액세스를 거절할 수 있다(블록(1234)). 만일 예상된 해시값이 수신된 해시값과 매칭되면(블록(1232): Y), 액세스 관리자는 모바일 애플리케이션을 신뢰성 있는 모바일 애플리케이션으로서 식별할 수 있고 신뢰성 있는 모바일 애플리케이션이 컴퓨팅 자원들에 액세스하는 것을 허용할 수 있다(블록(1236)).[0156] If the retrieved embedded identification tokens from the application metadata are identical to the embedded identification tokens extracted from the mobile device; If the identification tokens derived by the access manager are identical to the identification tokens derived by the mobile; If the expected application signature configured by the access manager is the same as the application signature configured by the mobile application and if the mobile application uses the nonce provided by the access manager to compute the hash value, It will be appreciated that the hash value must be the same as the hash value computed by the mobile application. Accordingly, the mobile application may provide a hash value in response to the access manager (block 1228), and the access manager may compare the expected hash value with the value received from the mobile application (block 1230). If the expected hash value does not match the received hash value (block 1232: N), the access manager can determine that the mobile application has identified itself as false and has changed since it was installed on the mobile device . As a result, the access manager may reject the mobile application access to computing resources (block 1234). If the expected hash value matches the received hash value (block 1232: Y), the access manager can identify the mobile application as a trusted mobile application and allow the trusted mobile application to access the computing resources (Block 1236).
[0157] 도 13에는 제 2 타입의 모바일 운영 체제를 가진 비관리 모바일 디바이스에서 관리 모바일 애플리케이션을 검증하기 위한 예시적인 방법 단계들의 흐름도(1300)가 도시되어 있다. 이러한 예에서, 모바일 운영 체제는 모바일 애플리케이션의 아이덴티티를 검증하기 위하여 액세스 관리자가 활용할 수 있는 빌트-인 메커니즘들을 포함할 수 있다. 액세스 관리자는 컴퓨팅 자원에 액세스하기 위한 요청을 관리 모바일 애플리케이션으로부터 수신할 수 있다(블록(1302)). 액세스 관리자는 모바일 애플리케이션에 대한 고유 애플리케이션 식별자를 모바일 운영 체제로부터 요청할 수 있으며(블록(1304)) 이에 응답하여 애플리케이션 식별자를 수신할 수 있다(블록(1306)). [0157] FIG. 13 shows a flow diagram 1300 of exemplary method steps for verifying a managed mobile application in an unmanaged mobile device having a second type of mobile operating system. In this example, the mobile operating system may include built-in mechanisms that the access manager may utilize to verify the identity of the mobile application. The access manager may receive a request from the management mobile application to access the computing resource (block 1302). The access manager may request a unique application identifier for the mobile application from the mobile operating system (block 1304) and may receive the application identifier in response (block 1306).
[0158] 모바일 애플리케이션에 대한 애플리케이션 식별자에 기초하여, 액세스 관리자는 관리 모바일 애플리케이션들의 리스트에 질의할 수 있다(1308). 만일 관리 모바일 애플리케이션들의 리스트가 컴퓨팅 자원에 대한 액세스를 요청하는 모바일 애플리케이션을 포함하지 않는다면(블록(1310): N), 액세스 관리자는 자원에 대한 모바일 애플리케이션 액세스를 거절할 수 있다(블록(1312)). 그러나, 만일 관리 모바일 애플리케이션들의 리스트가 컴퓨팅 자원에 대한 액세스를 요청하는 모바일 애플리케이션을 포함하면(블록(1310): N), 액세스 관리자는 모바일 애플리케이션에 대한 애플리케이션 인증서를 모바일 운영 체제로부터 요청할 수 있다(블록(1314)).[0158] Based on the application identifier for the mobile application, the access manager may query 1308 the list of managed mobile applications. If the list of managed mobile applications does not include a mobile application requesting access to the computing resource (block 1310: N), the access manager may reject the mobile application access to the resource (block 1312) . However, if the list of managed mobile applications includes a mobile application requesting access to a computing resource (block 1310: N), the access manager may request an application certificate for the mobile application from the mobile operating system (Step 1314).
[0159] 앞서 언급한 바와같이, 기업 애플리케이션 서버는 모바일 디바이스들에 설치된 모바일 애플리케이션들에 대한 애플리케이션 인증서들을 제공할 수 있다. 애플리케이션 인증서들은 액세스 관리자에 의해 액세스가능한 모바일 디바이스의 보안 저장 위치에 저장될 수 있다. 따라서, 액세스 관리자는 모바일 운영 체제로부터, 요청된 애플리케이션 인증서들을 수신하고(블록(1316)) 기업 애플리케이션 서버에 의해 제공된 저장된 애플리케이션 인증서들을 리트리브할 수 있다(블록(1318)). 일부 예시적인 구현들에서, 액세스 관리자는 예컨대 SHA-1 해시 함수를 사용하여 인증서들 각각에 대한 개별 해시값들을 컴퓨팅할 수 있다(블록(1320)). 액세스 관리자는 모바일 운영 체제로부터 수신된 인증서들의 해시값과 저장된 인증서의 해시값을 비교할 수 있다(블록(1322)). 만일 해시값들이 매칭되면(블록(1324): Y), 액세스 관리자는 모바일 애플리케이션이 신뢰성 있는 모바일 애플리케이션임을 결정하고, 모바일 애플리케이션이 컴퓨팅 자원들에 액세스하는 것을 허용할 수 있다(블록(1326)). 만일 해시값들이 매칭되지 않으면(블록(1324): N), 액세스 관리자는 모바일 애플리케이션이 신뢰성 없는 모바일 애플리케이션임을 결정하고, 컴퓨팅 자원들에 대한 모바일 애플리케이션 액세스를 거절할 수 있다(블록(1312)). [0159] As mentioned above, the enterprise application server can provide application certificates for mobile applications installed on mobile devices. The application certificates may be stored in a secured storage location of the mobile device accessible by the access manager. Accordingly, the access manager may receive the requested application certificates (block 1316) from the mobile operating system (block 1316) and retrieve the stored application certificates provided by the enterprise application server (block 1318). In some exemplary implementations, the access manager may compute individual hash values for each of the certificates using, for example, an SHA-1 hash function (block 1320). The access manager may compare the hash value of the certificates received from the mobile operating system with the hash value of the stored certificate (block 1322). If the hash values are matched (block 1324: Y), the access manager may determine that the mobile application is a trusted mobile application and allow the mobile application to access the computing resources (block 1326). If the hash values are not matched (block 1324: N), the access manager may determine that the mobile application is an untrusted mobile application and may reject the mobile application access to the computing resources (block 1312).
[0160] 도 14에서, 관리 모바일 애플리케이션의 동작 동안 애플리케이션 정책들을 시행하기 위한 예시적인 방법 단계들의 흐름도(1400)가 도시된다. 앞서 언급된 바와같이, 기업 애플리케이션 서버는 모바일 디바이스들에서 설치된 관리 모바일 애플리케이션들과 연관된 애플리케이션 정책들을 제공할 수 있다. 기업은 애플리케이션 정책들을 주기적으로 업데이트할 수 있으며, 따라서 액세스 관리자는 관리 모바일 애플리케이션이 컴퓨팅 자원들에 액세스하는 것을 허용하기 전에 가장 최근 및 최신 애플리케이션 정책들이 모바일 디바이스에 저장되도록 구성될 수 있다. 이러한 방식으로, 기업은 애플리케이션들 및 애플리케이션 기능들에 대한 자격들을 승인하거나 또는 리보크할 수 있다.[0160] In FIG. 14, a
[0161] 액세스 관리자가 관리 모바일 애플리케이션의 아이덴티티를 검증한후(블록(1402)), 액세스 관리자는 관리 모바일 애플리케이션과 연관되며 모바일 디바이스에 저장된 애플리케이션 정책을 리트리브할 수 있다(블록(1404)). 이후, 액세스 관리자는 애플리케이션 정책과 연관된 정책 정보, 예컨대 정책 날짜, 정책 버전 번호 등에 대해 기업 애플리케이션 서버에 질의할 수 있다(블록(1406)). 기업 애플리케이션 서버로부터 수신된 정책 정보에 기초하여, 액세스 관리자는 모바일 디바이스에 저장된 애플리케이션 정책이 현재 정책인지의 여부를 결정할 수 있다(블록(1408)). 예로서, 액세스 관리자는 기업 애플리케이션 서버로부터 수신된 정책 날짜 또는 정책 버전과 모바일 디바이스에 저장된 애플리케이션 저액의 정책 날짜 또는 정책 버전을 비교할 수 있다. 만일 정책 날짜 또는 정책 버전이 매칭되지 않으면, 액세스 관리자는 모바일 디바이스에 저장된 애플리케이션 정책이 현재 정책이 아님을 결정할 수 있다(블록(1408): N). 만일 정책 날짜 또는 정책 버전이 매칭되면, 액세스 관리자는 모바일 디바이스에 저장된 애플리케이션 정책이 현재 정책임을 결정할 수 있다(블록(1408): Y).[0161] After the access manager verifies the identity of the management mobile application (block 1402), the access manager may retrieve the application policy associated with the management mobile application and stored on the mobile device (block 1404). The access manager may then query the enterprise application server for policy information associated with the application policy, e.g., policy date, policy version number, and so on (block 1406). Based on the policy information received from the enterprise application server, the access manager may determine whether the application policy stored on the mobile device is current policy (block 1408). By way of example, the access manager may compare the policy date or policy version received from the enterprise application server with the policy date or policy version of the application low amount stored on the mobile device. If the policy date or policy version does not match, the access manager may determine that the application policy stored on the mobile device is not current policy (block 1408: N). If the policy date or policy version matches, the access manager may determine that the application policy stored on the mobile device is current policy (block 1408: Y).
[0162] 만일 애플리케이션 정책이 현재 정책이 아니면(블록(1408): N), 액세스 관리자는 기업 시스템, 예컨대 기업 애플리케이션 스토어로부터의 모바일 애플리케이션과 연관된 현재 정책을 리트리브할 수 있다(블록(1410)). 액세스 관리자는 현재의 애플리케이션 정책을 다운로드할 수 있고, 모바일 디바이스의 보안 저장 위치에 현재 애플리케이션 정책을 저장할 수 있다(블록(1412)). 일단 액세스 관리자가 모바일 애플리케이션에 대한 현재의 정책을 획득하였다면, 관리 모바일 애플리케이션은 자신이 의도한 컴퓨팅 자원에 액세스하거나 또는 이를 사용할 수 있는지의 여부를 결정하기 위하여 애플리케이션 정책을 참조할 수 있다(블록(1414)).[0162] If the application policy is not the current policy (block 1408: N), the access manager may retrieve the current policy associated with the mobile application from the enterprise system, eg, the enterprise application store (block 1410). The access manager may download the current application policy and store the current application policy in the secure storage location of the mobile device (block 1412). Once the access manager has acquired the current policy for the mobile application, the management mobile application may refer to the application policy to determine whether it can access or use the intended computing resource (block 1414 )).
[0163] 관리 프레임워크는 예컨대 컴퓨팅 자원에 액세스하거나 또는 컴퓨팅 자원을 사용하기 전에 정책에 질의하도록 관리 모바일 애플리케이션을 구성할 수 있다. 예로서, 프레임워크는 모바일 디바이스의 다른 모바일 애플리케이션에 데이터가 복사될 수 있는지의 여부를 결정하기 위하여 애플리케이션 정책에 질의하도록 관리 모바일 애플리케이션을 구성할 수 있다. 일부 예시적인 구현들에서, 관리 모바일 애플리케이션은 모바일 디바이스의 다른 관리 모바일 애플리케이션들에만 데이터를 복사할 수 있다. 다른 예로서, 프레임워크는 모바일 디바이스가 관리 모바일 애플리케이션의 스크린샷을 캡처할 수 있는지를 결정하기 위하여 애플리케이션 정책에 질의하도록 관리 모바일 애플리케이션을 구성할 수 있다. 이들 및 다른 예들은 본 개시내용의 장점과 함께 인식될 것이다.[0163] The management framework may configure the management mobile application to query policies, for example, before accessing or using computing resources. By way of example, the framework may configure the management mobile application to query the application policy to determine whether data can be copied to other mobile applications of the mobile device. In some exemplary implementations, the management mobile application may only copy data to other management mobile applications of the mobile device. As another example, the framework may configure the management mobile application to query the application policy to determine if the mobile device can capture a screenshot of the management mobile application. These and other examples will be recognized with the benefit of this disclosure.
[0164] 만일 관리 모바일 애플리케이션이 의도한 컴퓨팅 자원에 액세스하거나 또는 이 컴퓨팅 자원을 이용하도록 애플리케이션 정책이 허용하면(블록(1416): Y), 프레임워크는 관리 모바일 애플리케이션이 의도된 액션을 수행하도록 허용할 수 있다(블록(1418)). 그러나, 만일 관리 모바일 애플리케이션이 의도한 컴퓨팅 자원에 액세스하거나 또는 이를 사용하도록 애플리케이션 정책이 허용하지 않으면(블록(1418): N), 프레임워크는 관리 모바일 애플리케이션이 의도된 액션을 수행하는 것을 막을 수 있다(블록(1420)).[0164] If the application policy permits the management mobile application to access or use the intended computing resource (block 1416: Y), the framework allows the management mobile application to perform the intended action (Block 1418). However, if an application policy does not allow the management mobile application to access or use the intended computing resource (block 1418: N), the framework may prevent the management mobile application from performing the intended action (Block 1420).
[0165] 모바일 디바이스 관리와 모바일 애플리케이션 관리 Mobile device management and mobile application management
[0166] 비록 모바일 애플리케이션 관리(MAM)가 비관리 디바이스와 관련하여 논의되었을지라도, 본 개시내용의 양상들은 또한 관리 디바이스들에 대하여 역시 사용될 수 있다. 기업은 모바일 디바이스의 동작을 추가로 제어하기 위하여 모바일 애플리케이션 관리와 함께 모바일 디바이스 관리(MDM)를 활용할 수 있다. 특히, 모바일 디바이스는 MDM 시스템과 모바일 디바이스 사이의 관리 관계를 설정하기 위하여 MDM 시스템에 등록할 수 있다. 일단 모바일 디바이스가 등록되면, MDM 시스템은 정책들을 시행하고, 모바일 디바이스를 모니터링하며, 모바일 디바이스에 정보를 푸시(push)하는 등을 수행하기 위하여 관리 관계를 레버리지(leverage)할 수 있다.Although Mobile Application Management (MAM) has been discussed with respect to unmanaged devices, aspects of the present disclosure may also be used for managed devices as well. An enterprise can utilize Mobile Device Management (MDM) with mobile application management to further control the operation of the mobile device. In particular, the mobile device may register with the MDM system to establish a management relationship between the MDM system and the mobile device. Once the mobile device is registered, the MDM system may leverage the management relationship to enforce policies, monitor the mobile device, push information to the mobile device, and so on.
[0167] 요컨대, MDM 시스템은 관리 관계가 없을 때는 달리 이용할 수 없는, 모바일 디바이스에 대한 정보를 획득할 수 있다. 이러한 정보는 모바일 디바이스의 애플리케이션들을 통해 발견가능하거나 또는 판독가능하지 않는 디바이스-레벨 세팅들에 대응할 수 있다. 이러한 디바이스-레벨 세팅들은 PIN 또는 패스워드 세팅들, 암호화 세팅들, 네트워크-관련 세팅들 등을 포함할 수 있다. 이러한 정보는 또한 모바일 디바이스에서 현재 실행되고 있는 프로세스들 및 모바일 디바이스(예컨대, 애플리케이션 디렉토리)에 설치된 모바일 애플리케이션들에 관한 정보를 포함할 수 있다. MDM 시스템은 관리 모바일 디바이스에 관한 추가적인 또는 대안적인 타입들의 정보를 추가로 획득할 수 있다. MDM 시스템은 관리 모바일 디바이스로부터 획득된 정보와 다양한 정책들을 비교하고 이에 응답하여 다양한 액션들을 취할 수 있다.In summary, the MDM system can obtain information about a mobile device that is otherwise unavailable when there is no management relationship. This information may correspond to device-level settings that are not discoverable or readable through the applications of the mobile device. These device-level settings may include PIN or password settings, encryption settings, network-related settings, and the like. This information may also include information about processes currently running on the mobile device and mobile applications installed on the mobile device (e.g., an application directory). The MDM system may additionally obtain additional or alternative types of information regarding the management mobile device. The MDM system may compare various policies with information obtained from the management mobile device and take various actions in response.
[0168] 디바이스 PIN/패스워드에 대하여, MDM 시스템은 디바이스가 PIN/패스워드를 통해 보안되는지의 여부, PIN/패스워드의 복잡성, 및 PIN/패스워드의 수명을 표시하는 정보를 획득할 수 있다. 관리 관계를 통해, MDM 시스템은 디바이스의 PIN/패스워드 세팅들에 관한 정보를 획득할 수 있다. MDM 시스템은 디바이스 PIN들/패스워드들의 사용을 제어하는 정책들과 이러한 정보를 비교할 수 있다. 예로서, 만일 모바일 디바이스가 PIN/패스워드에 의해 보안되어야 함을 보안 정책이 표시하고 디바이스 PIN/패스워드 세팅이 인에이블되지 않음을 모바일 디바이스로부터 획득된 정보가 표시하면, MDM 시스템은 디바이스 PIN들/패스워드들에 관한 보안 정책을 표시하는 통지들을 관리 모바일 디바이스에 푸시할 수 있다. 다른 예로서, 만일 디바이스 PIN/패스워드가 보안 정책의 복잡성 요건들을 만족하지 않음을 MDM 시스템이 결정하면, MDM 시스템은 새롭고 더 복잡한 PIN/패스워드가 보안 정책을 따르도록 요구됨을 표시하는 통지를 관리 모바일 디바이스에 유사하게 푸시할 수 있다. 추가 예로서, 만일 디바이스 PIN들/패스워드들이 주기적으로 변경되어야 함을 보안 정책이 표시하면, MDM 시스템은 현재 디바이스 PIN/패스워드가 만료되었음을 결정할 때 디바이스 PIN/패스워드를 변경할 필요성을 표시하는 통지를 관리 모바일 디바이스에 푸시할 수 있다.[0168] For a device PIN / password, the MDM system may obtain information indicating whether the device is secured via a PIN / password, the complexity of the PIN / password, and the lifetime of the PIN / password. Through the management relationship, the MDM system can obtain information about the PIN / password settings of the device. The MDM system can compare this information with policies that control the use of device PINs / passwords. By way of example, if the information obtained from the mobile device indicates that the security policy indicates that the mobile device should be secured by a PIN / password and that the device PIN / password setting is not enabled, the MDM system sends the device PINs / To the management mobile device. ≪ RTI ID = 0.0 > [0040] < / RTI > As another example, if the MDM system determines that the device PIN / password does not meet the complexity requirements of the security policy, the MDM system sends a notification indicating that a new, more complex PIN / password is required to comply with the security policy, As shown in FIG. As a further example, if the security policy indicates that device PINs / passwords should be periodically changed, the MDM system sends a notification indicating the need to change the device PIN / password when determining that the current device PIN / password has expired. Can be pushed to the device.
[0169] 암호화 세팅들에 대하여, MDM 시스템은 또한 디바이스에서 하드웨어 암호화가 인에이블되었는지의 여부를 표시하는 정보를 획득할 수 있다. 관리 관계를 통해, MDM 시스템은 보안 정책이 하드웨어 암호화를 요구하고 하드웨어 암호화가 모바일 디바이스에서 현재 인에이블되지 않음을 결정할 때 관리 모바일 디바이스의 하드웨어 암호화를 인에이블할 수 있다. MDM 시스템은 또한 관리 관계를 통해 관리 모바일 디바이스에 네트워크-관련 세팅들을 세팅할 수 있다. [0169] For encryption settings, the MDM system may also obtain information indicating whether hardware encryption is enabled in the device. Through the management relationship, the MDM system can enable hardware encryption of the management mobile device when the security policy requires hardware encryption and hardware encryption is not currently enabled in the mobile device. The MDM system may also set network-related settings to the management mobile device via the management relationship.
[0170] MDM 시스템은 관리 모바일 디바이스에서 현재 실행되고 있는 프로세스들에 관한 정보를 추가로 획득할 수 있다. MDM 시스템은 예컨대 관리 모바일 디바이스에서의 멀웨어를 식별하기 위하여 악의적인 애플리케이션들, 프로그램들 또는 프로세스들의 리스트와 실행 프로세스들을 비교할 수 있다. 관리 관계를 통해, MDM 시스템은 멀웨어 또는 잠재적으로 악의적인 것으로 식별된 임의의 프로세스들을 삭제할 수 있다. MDM 시스템은 또한 모바일 디바이스와의 관리 관계를 통해 대응하는 악의적인 애플리케이션들 또는 프로그램들을 제거할 수 있다. [0170] The MDM system may further obtain information about the processes currently running on the management mobile device. The MDM system can compare execution processes with lists of malicious applications, programs or processes, for example, to identify malware on a managed mobile device. Through the management relationship, the MDM system can delete any processes identified as malware or potentially malicious. The MDM system may also remove corresponding malicious applications or programs through a management relationship with the mobile device.
[0171] 유사하게, MDM 시스템은 관리 모바일 디바이스에 설치된 애플리케이션들의 리스트를 획득할 수 있다. MDM 시스템은 설치된 애플리케이션들의 리스트와 예컨대 애플리케이션 화이트리스트(whitelist) 또는 애플리케이션 블랙리스트(blacklist)를 비교할 수 있다. 애플리케이션 화이트리스트는 모바일 디바이스에 설치되도록 허용된 모바일 애플리케이션들의 리스트일 수 있다. 만일 설치된 애플리케이션들의 리스트가 모바일 애플리케이션 화이트리스트에 있지 않은 애플리케이션을 포함하면, MDM 시스템은 애플리케이션을 제거하기 위하여 관리 관계를 레버리지할 수 있다. 애플리케이션 블랙리스트는 모바일 디바이스에 설치되는 것이 금지된 모바일 애플리케이션들의 리스트일 수 있다. 만일 설치된 애플리케이션들의 리스트가 모바일 애플리케이션 블랙리스트에 있는 애플리케이션을 포함하면, MDM 시스템은 애플리케이션을 제거하기 위하여 관리 관계를 유사하게 레버리지할 수 있다. MDM 시스템은 어떤 모바일 애플리케이션들이 모바일 디바이스에 설치되는지를 제어하기 위하여 관리 모바일 디바이스에 모바일 애플리케이션들을 푸시하기 위한 관리 관계를 추가적으로 레버리지할 수 있다는 것이 인식될 것이다. 이러한 개시내용을 고려하여, MDM 시스템이 모바일 디바이스에 설치된 모바일 애플리케이션들을 더 강력하게 제어할 수 있다는 점이 또한 인식될 것이다. 앞서 설명된 바와같이, MAM은 애플리케이션이 정책을 위반함을 결정할 때 모바일 디바이스에 설치된 모바일 애플리케이션을 디스에이블할 수 있다. MDM이 MAM과 함께 사용되나 모바일 애플리케이션이 단지 디스에이블될 수 없을 때, MDM은 모바일 디바이스로부터 전체적으로 제거될 수 있다. MDM 시스템은 다른 타입들의 정보를 관리 모바일 디바이스에 푸시할 수 있다. 예컨대, MDM 시스템은 모바일 디바이스에 애플리케이션 업데이트들 또는 인증서들을 푸시하기 위한 관리 관계를 레버리지할 수 있다. 인증서들은 예컨대 X.509 디바이스 인증서들일 수 있다. Similarly, the MDM system may obtain a list of applications installed on the management mobile device. The MDM system can compare a list of installed applications with, for example, an application whitelist or an application blacklist. The application whitelist can be a list of mobile applications that are allowed to be installed on the mobile device. If the list of installed applications contains an application that is not in the mobile application whitelist, the MDM system may leverage the managed relationship to remove the application. The application blacklist may be a list of mobile applications that are prohibited from being installed on the mobile device. If the list of installed applications includes an application in the mobile application blacklist, the MDM system may leverage the management relationship similarly to remove the application. It will be appreciated that the MDM system may leverage additional management relationships to push mobile applications to the management mobile device to control which mobile applications are installed on the mobile device. In view of this disclosure, it will also be appreciated that the MDM system can more robustly control mobile applications installed in mobile devices. As described above, the MAM may disable the mobile application installed on the mobile device when the application determines that the policy is violated. When the MDM is used with the MAM, but the mobile application can not just be disabled, the MDM can be removed entirely from the mobile device. The MDM system may push other types of information to the management mobile device. For example, the MDM system may leverage a management relationship to push application updates or certificates to a mobile device. Certificates may be, for example, X.509 device certificates.
[0172] 본 개시내용에 제공된 개시내용들은 다수의 기술적 장점들을 제공한다. 일반적으로, 앞서 제시된 접근법들은 기업으로 하여금 모바일 플랫폼과 관계없이 모바일 애플리케이션을 보안적으로 강력하게 식별하는 것을 가능하게 한다. 앞서 제시된 접근법들은 또한 잠재적 민감 데이터, 예컨대 인증 크리덴셜들, 디지털 인증서들, 기업 데이터 등에 액세스하는 모바일 애플리케이션들의 아이덴티티를 검증하기 위한 자동화된 방식을 제공한다. 앞서 제시된 접근법들을 구현하는 기업은 또한 개인들이 자신들의 개인 디바이스들을 사용하여 기업 자원들에 액세스하도록 함으로써 기업 관리 하의 물리적 디바이스들의 수를 감소시킬 수 있다. 이와 관련하여, 기업은 모바일 디바이스 관리 시스템에 전체 디바이스를 등록하는 것을 회피할 수 있으며, 대신에 단지 모바일 애플리케이션 관리 시스템내의 모바일 디바이스에 다양한 모바일 애플리케이션들을 등록할 수 있다. 이들 및 다른 장점들은 앞서 제공된 개시내용들과 장점과 함께 인식될 것이다. The disclosure provided in this disclosure provides a number of technical advantages. In general, the approaches presented above enable companies to securely identify mobile applications, regardless of their mobile platform. The approaches presented above also provide an automated way to verify the identity of mobile applications accessing potential sensitive data, such as authentication credentials, digital certificates, corporate data, and the like. Companies implementing the above-described approaches can also reduce the number of physical devices under corporate control by allowing individuals to access corporate resources using their personal devices. In this regard, an enterprise can avoid registering an entire device in a mobile device management system, and instead can simply register various mobile applications in a mobile device in a mobile application management system. These and other advantages will be recognized in connection with the foregoing disclosure and advantages.
[173] 비록 요지가 구성적 특징들 및/또는 방법적 동작들에 특정한 언어로 설명되었을지라도, 첨부된 청구항들에서 정의된 요지가 반드시 앞서 설명된 특정 특징들 또는 동작들로 제한되는 것이 아니라는 것이 이해되어야 한다. 오히려, 앞서 설명된 특정 특징들 및 동작들은 하기의 청구항들의 예시적인 구현들로서 설명된다. Although the subject matter has been described in language specific to constitutive features and / or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above Should be understood. Rather, the specific features and acts described above are described as exemplary implementations of the following claims.
Claims (20)
모바일 컴퓨팅 디바이스의 액세스 관리자를 동작시키는 단계;
상기 액세스 관리자를 사용하여, 상기 모바일 컴퓨팅 디바이스에 설치된 모바일 애플리케이션을 검증(validate)하는 단계;
상기 액세스 관리자에 의한 모바일 애플리케이션의 검증이 실패할 때, 상기 모바일 애플리케이션이 컴퓨팅 자원에 액세스하는 것을 막는 단계;
상기 액세스 관리자에 의한 모바일 애플리케이션의 검증이 성공적일 때, 상기 모바일 애플리케이션을 신뢰성 있는 모바일 애플리케이션으로서 식별하는 단계;
상기 신뢰성 있는 모바일 애플리케이션이 상기 컴퓨팅 자원에 액세스하는 것을 허용하는 단계; 및
상기 모바일 컴퓨팅 디바이스의 모바일 애플리케이션과 연관된 식별 정보를 저장하는 단계를 포함하고,
상기 모바일 애플리케이션을 검증하는 단계는, 저장된 식별 정보에 기초하여 상기 모바일 애플리케이션을 검증하는 단계로서,
상기 모바일 애플리케이션을 식별하는 응답을 제공하기 위하여 상기 모바일 애플리케이션에 챌린징(challenging)하는 단계;
저장된 식별 정보에 적어도 부분적으로 기초하여, 예상 응답을 생성하는 단계;
상기 모바일 컴퓨팅 디바이스에 의해 제공된 응답과 상기 예상 응답을 비교하는 단계;
상기 예상 응답이 상기 모바일 애플리케이션에 의해 제공된 응답과 매칭(matching)될 때 상기 모바일 애플리케이션이 유효함을 결정하는 단계; 및
상기 예상 응답이 상기 모바일 애플리케이션에 의해 제공된 응답과 매칭되지 않을 때 상기 모바일 컴퓨팅 디바이스가 무효함을 결정하는 단계
를 포함하는 것인, 기업 자원들에의 액세스를 관리하는 방법.A method for managing access to corporate resources,
Operating an access manager of the mobile computing device;
Validating a mobile application installed on the mobile computing device using the access manager;
Preventing the mobile application from accessing the computing resource when the verification of the mobile application by the access manager fails;
Identifying the mobile application as a trusted mobile application when the verification of the mobile application by the access manager is successful;
Allowing the trusted mobile application to access the computing resource; And
Storing identification information associated with a mobile application of the mobile computing device,
Wherein verifying the mobile application comprises verifying the mobile application based on stored identification information,
Challenging the mobile application to provide a response identifying the mobile application;
Generating an expected response based at least in part on the stored identification information;
Comparing the expected response with a response provided by the mobile computing device;
Determining that the mobile application is valid when the expected response matches a response provided by the mobile application; And
Determining that the mobile computing device is invalid when the expected response does not match the response provided by the mobile application
The method comprising the steps of:
임베딩된 식별 토큰들을 추출하도록 상기 모바일 애플리케이션을 구성하는 단계;
상기 예상 응답이 상기 임베딩된 식별 토큰들에 적어도 부분적으로 기초하도록 상기 저장된 식별 정보에 상기 임베딩된 식별 토큰들을 포함시키는 단계를 더 포함하며; 그리고
상기 모바일 애플리케이션에 의해 제공된 응답은 상기 모바일 애플리케이션으로부터 추출된 상기 임베딩된 식별 토큰들에 적어도 부분적으로 기초하는, 기업 자원들에의 액세스를 관리하는 방법.The method of claim 1, further comprising: embedding identification tokens in the mobile application before the mobile application is installed on the mobile computing device;
Configuring the mobile application to extract embedded identification tokens;
Further comprising the step of including the embedded identification tokens in the stored identification information such that the expected response is based at least in part on the embedded identification tokens; And
Wherein the response provided by the mobile application is based at least in part on the embedded identification tokens extracted from the mobile application.
상기 액세스 관리자를 사용하여, 상기 모바일 애플리케이션으로부터 하나 이상의 식별 토큰들을 유도하는 단계;
상기 임베딩된 식별 토큰들 및 상기 유도된 식별 토큰들의 배열(arrangement)에 기초하여, 예상 애플리케이션 서명을 생성하는 단계; 및
상기 예상 애플리케이션 서명에 적어도 부분적으로 추가로 기초하여, 상기 예상 응답을 생성하는 단계를 더 포함하는, 기업 자원들에의 액세스를 관리하는 방법.5. The method of claim 4, wherein verifying the mobile application comprises:
Deriving one or more identification tokens from the mobile application using the access manager;
Generating an expected application signature based on an arrangement of the embedded identification tokens and the derived identification tokens; And
Further comprising generating the expected response based at least in part on the expected application signature. ≪ RTI ID = 0.0 >< / RTI >
상기 모바일 애플리케이션에 넌스(nonce)를 제공하는 단계;
상기 예상 애플리케이션 서명 및 상기 넌스를 사용하여 예상 해시값을 컴퓨팅하는 단계를 더 포함하며; 그리고
상기 예상 응답은 상기 예상 해시값인, 기업 자원들에의 액세스를 관리하는 방법.6. The method of claim 5, wherein verifying the mobile application comprises:
Providing a nonce to the mobile application;
Computing the expected hash value using the expected application signature and the nonce; And
Wherein the expected response is the expected hash value.
상기 원래의 디지털 인증서에 기초하여 제 1 해시값을 컴퓨팅하고 상기 모바일 컴퓨팅 디바이스의 모바일 운영 체제로부터 수신된 디지털 인증서에 기초하여 제 2 해시값을 컴퓨팅하는 단계;
상기 제 1 해시값과 상기 제 2 해시값을 비교하는 단계;
상기 제 1 해시값이 상기 제 2 해시값과 매칭될 때 상기 모바일 애플리케이션이 유효함을 결정하는 단계; 및
상기 제 1 해시값이 상기 제 2 해시값과 매칭되지 않을 때 상기 모바일 컴퓨팅 디바이스가 무효함을 결정하는 단계를 포함하는, 기업 자원들에의 액세스를 관리하는 방법.8. The method of claim 7, wherein verifying the mobile application comprises:
Computing a first hash value based on the original digital certificate and computing a second hash value based on a digital certificate received from a mobile operating system of the mobile computing device;
Comparing the first hash value with the second hash value;
Determining that the mobile application is valid when the first hash value matches the second hash value; And
And determining that the mobile computing device is invalid when the first hash value does not match the second hash value.
상기 모바일 애플리케이션이 상기 TCP 소켓에 상기 액세스 관리자와의 연결을 설정하기를 대기하는 단계를 포함하며; 그리고
상기 액세스 관리자는 상기 모바일 애플리케이션이 상기 TCP 소켓에 상기 액세스 관리자와의 연결을 설정할 때 상기 모바일 애플리케이션의 검증을 개시하는, 기업 자원들에의 액세스를 관리하는 방법.2. The method of claim 1, further comprising: using the access manager to open a Transmission Control Protocol (TCP) socket of the mobile computing device;
Waiting for the mobile application to establish a connection with the access manager to the TCP socket; And
Wherein the access manager initiates verification of the mobile application when the mobile application establishes a connection with the access manager in the TCP socket.
상기 모바일 컴퓨팅 디바이스에 상기 애플리케이션 정책을 저장하는 단계; 및
상기 액세스 관리자를 사용하여 그리고 상기 애플리케이션 정책에 기초하여 상기 신뢰성 있는 모바일 애플리케이션의 동작을 제어하는 단계를 더 포함하는, 기업 자원들에의 액세스를 관리하는 방법.2. The method of claim 1, further comprising: obtaining an application policy associated with the trusted mobile application;
Storing the application policy in the mobile computing device; And
Further comprising using the access manager and controlling operation of the trusted mobile application based on the application policy.
컴퓨팅 자원에 액세스하도록 구성된 모바일 애플리케이션;
상기 모바일 애플리케이션과 연관된 저장된 식별 정보;
상기 저장된 식별 정보에 기초하여 상기 모바일 애플리케이션을 검증하도록 구성된 액세스 관리자를 포함하며; 그리고
상기 액세스 관리자는,
상기 모바일 애플리케이션의 검증이 실패할 때, 상기 모바일 애플리케이션이 상기 컴퓨팅 자원에 액세스하는 것을 막으며;
상기 모바일 애플리케이션의 검증이 성공적일 때, 상기 모바일 애플리케이션을 신뢰성 있는 모바일 애플리케이션으로서 식별하며;
상기 신뢰성 있는 모바일 애플리케이션이 상기 컴퓨팅 자원에 액세스하는 것을 허용하도록 추가로 구성되며;
상기 액세스 관리자에 의한 모바일 애플리케이션의 검증은,
상기 모바일 애플리케이션을 식별하는 응답을 제공하기 위하여 상기 모바일 애플리케이션에 챌린징하며;
저장된 식별 정보에 적어도 부분적으로 기초하여, 예상 응답을 생성하며;
상기 모바일 애플리케이션에 의해 제공된 응답과 상기 예상 응답을 비교하며;
상기 예상 응답이 상기 모바일 애플리케이션에 의해 제공된 응답과 매칭될 때 상기 모바일 애플리케이션이 유효함을 결정하며; 그리고
상기 예상 응답이 상기 모바일 애플리케이션에 의해 제공된 응답과 매칭되지 않을 때 상기 모바일 컴퓨팅 디바이스가 무효함을 결정하는 것인, 모바일 컴퓨팅 디바이스.As a mobile computing device,
A mobile application configured to access computing resources;
Stored identification information associated with the mobile application;
And an access manager configured to verify the mobile application based on the stored identification information; And
The access manager,
Prevent the mobile application from accessing the computing resource when verification of the mobile application fails;
Identify the mobile application as a trusted mobile application when the verification of the mobile application is successful;
Further configured to allow the trusted mobile application to access the computing resource;
Wherein the verification of the mobile application by the access manager comprises:
Challenge the mobile application to provide a response identifying the mobile application;
Generate an expected response based at least in part on the stored identification information;
Compare the expected response with a response provided by the mobile application;
Determine that the mobile application is valid when the expected response matches a response provided by the mobile application; And
The mobile computing device determining that the mobile computing device is invalid when the expected response does not match the response provided by the mobile application.
상기 저장된 식별 정보는 상기 예상 응답이 상기 임베딩된 식별 토큰들에 적어도 부분적으로 기초하도록 상기 임베딩된 식별 토큰들을 포함하며; 그리고
상기 모바일 애플리케이션에 의해 제공된 응답은 상기 모바일 애플리케이션으로부터 추출된 상기 임베딩된 식별 토큰들에 적어도 부분적으로 기초하는, 모바일 컴퓨팅 디바이스.12. The mobile device of claim 11, wherein the mobile application comprises embedded identification tokens and is configured to extract the embedded identification tokens;
The stored identification information includes the embedded identification tokens such that the expected response is based at least in part on the embedded identification tokens; And
Wherein the response provided by the mobile application is based at least in part on the embedded identification tokens extracted from the mobile application.
상기 모바일 애플리케이션으로부터 하나 이상의 식별 토큰들을 유도하며;
상기 임베딩된 식별 토큰들 및 상기 유도된 식별 토큰들의 배열에 기초하여, 예상 애플리케이션 서명을 생성하며; 그리고
상기 예상 애플리케이션 서명에 적어도 부분적으로 추가로 기초하여, 상기 예상 응답을 생성하도록 추가로 구성되는, 모바일 컴퓨팅 디바이스.14. The apparatus of claim 13,
Derive one or more identification tokens from the mobile application;
Generate an expected application signature based on the embedded identification tokens and an array of the derived identification tokens; And
Wherein the mobile device is further configured to generate the expected response based at least in part on the expected application signature.
상기 모바일 애플리케이션에 넌스를 제공하며;
상기 예상 애플리케이션 서명 및 상기 넌스를 사용하여 예상 해시값을 컴퓨팅하도록 추가로 구성되며; 그리고
상기 예상 응답은 상기 예상 해시값인, 모바일 컴퓨팅 디바이스.15. The system of claim 14,
Provide non-acceptance to the mobile application;
Further configured to compute an expected hash value using the expected application signature and the nonce; And
Wherein the expected response is the expected hash value.
상기 액세스 관리자는,
상기 원래의 디지털 인증서에 기초하여 제 1 해시값을 컴퓨팅하고 상기 모바일 운영 체제로부터 수신된 디지털 인증서에 기초하여 제 2 해시값을 컴퓨팅하며;
상기 제 1 해시값과 상기 제 2 해시값을 비교하며;
상기 제 1 해시값이 상기 제 2 해시값과 매칭될 때 상기 모바일 애플리케이션이 유효함을 결정하며; 그리고
상기 제 1 해시값이 상기 제 2 해시값과 매칭되지 않을 때 상기 모바일 컴퓨팅 디바이스가 무효함을 결정하도록 추가로 구성되는, 모바일 컴퓨팅 디바이스.17. The system of claim 16, further comprising a mobile operating system;
The access manager,
Computing a first hash value based on the original digital certificate and computing a second hash value based on a digital certificate received from the mobile operating system;
Compare the first hash value with the second hash value;
Determine that the mobile application is valid when the first hash value matches the second hash value; And
Wherein the mobile computing device is further configured to determine that the mobile computing device is invalid when the first hash value does not match the second hash value.
i) 상기 모바일 컴퓨팅 디바이스 또는 원격 컴퓨팅 시스템에서 동작하는 소프트웨어 애플리케이션;
ii) 상기 원격 컴퓨팅 시스템의 모바일 컴퓨팅 디바이스에 의해 제공되는 서비스;
iii) 상기 모바일 컴퓨팅 디바이스 또는 상기 원격 컴퓨팅 시스템에 저장된 데이터;
iv) 상기 모바일 컴퓨팅 디바이스 또는 상기 원격 컴퓨팅 시스템의 하드웨어; 및
v) 이들의 조합 중 적어도 하나인, 모바일 컴퓨팅 디바이스.12. The computer-readable medium of claim 11,
i) a software application running on the mobile computing device or remote computing system;
ii) a service provided by a mobile computing device of the remote computing system;
iii) data stored in the mobile computing device or the remote computing system;
iv) hardware of the mobile computing device or the remote computing system; And
v) at least one of these combinations.
상기 액세스 관리자는 상기 애플리케이션 정책에 기초하여 상기 신뢰성 있는 모바일 애플리케이션의 동작을 제어하도록 구성되는, 모바일 컴퓨팅 디바이스.12. The mobile computing device of claim 11, further comprising an application policy associated with the mobile computing device; And
Wherein the access manager is configured to control the operation of the trusted mobile application based on the application policy.
상기 액세스 관리자는,
상기 모바일 컴퓨팅 디바이스에 저장되고 모바일 애플리케이션과 연관된 식별 정보에 기초하여, 상기 모바일 컴퓨팅 디바이스에 설치된 상기 모바일 애플리케이션을 검증하며;
상기 모바일 애플리케이션의 검증이 실패할 때, 상기 모바일 애플리케이션이 컴퓨팅 자원에 액세스하는 것을 막으며;
상기 모바일 애플리케이션의 검증이 성공적일 때, 상기 모바일 애플리케이션을 신뢰성 있는 모바일 애플리케이션으로서 식별하며;
상기 신뢰성 있는 모바일 애플리케이션이 상기 컴퓨팅 자원에 액세스하는 것을 허용하며;
상기 모바일 컴퓨팅 디바이스에 저장된 애플리케이션 정책에 기초하여 상기 신뢰성 있는 모바일 애플리케이션의 동작을 제어하도록 구성되며;
상기 액세스 관리자에 의한 모바일 애플리케이션의 검증은,
상기 모바일 애플리케이션을 식별하는 응답을 제공하기 위하여 상기 모바일 애플리케이션에 챌린징하며;
저장된 식별 정보에 적어도 부분적으로 기초하여, 예상 응답을 생성하며;
상기 모바일 애플리케이션에 의해 제공된 응답과 상기 예상 응답을 비교하며;
상기 예상 응답이 상기 모바일 애플리케이션에 의해 제공된 응답과 매칭될 때 상기 모바일 애플리케이션이 유효함을 결정하며; 그리고
상기 예상 응답이 상기 모바일 애플리케이션에 의해 제공된 응답과 매칭되지 않을 때 상기 모바일 컴퓨팅 디바이스가 무효함을 결정하는 것인, 액세스 관리자.An access manager configured to operate in a mobile computing device,
The access manager,
Verify the mobile application installed on the mobile computing device based on identification information stored in the mobile computing device and associated with the mobile application;
Prevent the mobile application from accessing the computing resource when verification of the mobile application fails;
Identify the mobile application as a trusted mobile application when the verification of the mobile application is successful;
Allow the trusted mobile application to access the computing resource;
And to control the operation of the trusted mobile application based on an application policy stored in the mobile computing device;
Wherein the verification of the mobile application by the access manager comprises:
Challenge the mobile application to provide a response identifying the mobile application;
Generate an expected response based at least in part on the stored identification information;
Compare the expected response with a response provided by the mobile application;
Determine that the mobile application is valid when the expected response matches a response provided by the mobile application; And
The mobile computing device determining that the mobile computing device is invalid when the expected response does not match the response provided by the mobile application.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/898,167 | 2013-05-20 | ||
US13/898,167 US9270674B2 (en) | 2013-03-29 | 2013-05-20 | Validating the identity of a mobile application for mobile application management |
PCT/US2014/037850 WO2014189722A1 (en) | 2013-05-20 | 2014-05-13 | Validating the identity of a mobile application for mobile application management |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020177022867A Division KR101877732B1 (en) | 2013-05-20 | 2014-05-13 | Validating the identity of a mobile application for mobile application management |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160010600A KR20160010600A (en) | 2016-01-27 |
KR101770417B1 true KR101770417B1 (en) | 2017-08-22 |
Family
ID=50977092
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020157035910A KR101770417B1 (en) | 2013-05-20 | 2014-05-13 | Validating the identity of a mobile application for mobile application management |
KR1020177022867A KR101877732B1 (en) | 2013-05-20 | 2014-05-13 | Validating the identity of a mobile application for mobile application management |
KR1020187019305A KR20180081833A (en) | 2013-05-20 | 2014-05-13 | Validating the identity of a mobile application for mobile application management |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020177022867A KR101877732B1 (en) | 2013-05-20 | 2014-05-13 | Validating the identity of a mobile application for mobile application management |
KR1020187019305A KR20180081833A (en) | 2013-05-20 | 2014-05-13 | Validating the identity of a mobile application for mobile application management |
Country Status (6)
Country | Link |
---|---|
US (2) | US9270674B2 (en) |
EP (2) | EP3179697B1 (en) |
JP (1) | JP6222592B2 (en) |
KR (3) | KR101770417B1 (en) |
CN (1) | CN105379223B (en) |
WO (1) | WO2014189722A1 (en) |
Families Citing this family (117)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101666831B1 (en) | 2008-11-26 | 2016-10-17 | 캘거리 싸이언티픽 인코포레이티드 | Method and system for providing remote access to a state of an application program |
US10055105B2 (en) | 2009-02-03 | 2018-08-21 | Calgary Scientific Inc. | Method and system for enabling interaction with a plurality of applications using a single user interface |
US9544143B2 (en) | 2010-03-03 | 2017-01-10 | Duo Security, Inc. | System and method of notifying mobile devices to complete transactions |
US9532222B2 (en) | 2010-03-03 | 2016-12-27 | Duo Security, Inc. | System and method of notifying mobile devices to complete transactions after additional agent verification |
EP2386977A1 (en) * | 2010-05-11 | 2011-11-16 | Gemalto SA | System for displaying a private computer file on a screen of a telecommunications terminal and corresponding method |
US9741084B2 (en) | 2011-01-04 | 2017-08-22 | Calgary Scientific Inc. | Method and system for providing remote access to data for display on a mobile device |
CA2734860A1 (en) | 2011-03-21 | 2012-09-21 | Calgary Scientific Inc. | Method and system for providing a state model of an application program |
DE102011015711A1 (en) * | 2011-03-31 | 2012-10-04 | Giesecke & Devrient Gmbh | Update a disk application |
JP6164747B2 (en) | 2011-08-15 | 2017-07-19 | カルガリー サイエンティフィック インコーポレイテッド | Method for flow control in a collaborative environment and for reliable communication |
SG10201606764XA (en) | 2011-08-15 | 2016-10-28 | Calgary Scient Inc | Non-invasive remote access to an application program |
US9467463B2 (en) | 2011-09-02 | 2016-10-11 | Duo Security, Inc. | System and method for assessing vulnerability of a mobile device |
CN103959708B (en) | 2011-09-30 | 2017-10-17 | 卡尔加里科学公司 | Including the non-coupled application extension for shared and annotation the interactive digital top layer of the remote application that cooperates |
CA2856658A1 (en) | 2011-11-23 | 2013-05-30 | Calgary Scientific Inc. | Methods and systems for collaborative remote application sharing and conferencing |
KR20130082948A (en) * | 2011-12-23 | 2013-07-22 | 주식회사 케이티 | Payment agency system, user terminal and market server |
US9602581B2 (en) | 2012-03-02 | 2017-03-21 | Calgary Scientific Inc. | Remote control of an application using dynamic-linked library (DLL) injection |
US9729673B2 (en) | 2012-06-21 | 2017-08-08 | Calgary Scientific Inc. | Method and system for providing synchronized views of multiple applications for display on a remote computing device |
KR102038964B1 (en) * | 2013-03-18 | 2019-11-26 | 삼성전자주식회사 | Method and apparatus for mutual authenticating between applications |
US10073966B2 (en) * | 2013-04-29 | 2018-09-11 | Sri International | Operating system-independent integrity verification |
KR102052651B1 (en) * | 2013-04-30 | 2019-12-05 | 삼성전자주식회사 | Method for controlling access to data and an electronic device thereof |
US10725968B2 (en) | 2013-05-10 | 2020-07-28 | Box, Inc. | Top down delete or unsynchronization on delete of and depiction of item synchronization with a synchronization client to a cloud-based platform |
BR112015028628A2 (en) | 2013-05-15 | 2017-07-25 | Visa Int Service Ass | method and system |
US10410003B2 (en) * | 2013-06-07 | 2019-09-10 | Apple Inc. | Multiple containers assigned to an application |
US9294468B1 (en) * | 2013-06-10 | 2016-03-22 | Google Inc. | Application-level certificates for identity and authorization |
US9633037B2 (en) | 2013-06-13 | 2017-04-25 | Box, Inc | Systems and methods for synchronization event building and/or collapsing by a synchronization component of a cloud-based platform |
US9805050B2 (en) | 2013-06-21 | 2017-10-31 | Box, Inc. | Maintaining and updating file system shadows on a local device by a synchronization client of a cloud-based platform |
WO2015013321A2 (en) * | 2013-07-25 | 2015-01-29 | Declarativ, Inc. | Opportunistic use of transient user interface space |
US9305162B2 (en) * | 2013-07-31 | 2016-04-05 | Good Technology Corporation | Centralized selective application approval for mobile devices |
JP6465542B2 (en) * | 2013-09-02 | 2019-02-06 | キヤノン株式会社 | Information processing apparatus, control method thereof, and program |
US10824756B2 (en) | 2013-09-20 | 2020-11-03 | Open Text Sa Ulc | Hosted application gateway architecture with multi-level security policy and rule promulgations |
US10171501B2 (en) | 2013-09-20 | 2019-01-01 | Open Text Sa Ulc | System and method for remote wipe |
EP2851833B1 (en) | 2013-09-20 | 2017-07-12 | Open Text S.A. | Application Gateway Architecture with Multi-Level Security Policy and Rule Promulgations |
US20190230130A1 (en) * | 2013-09-20 | 2019-07-25 | Open Text Sa Ulc | System and method for updating downloaded applications using managed container |
US9055057B1 (en) | 2013-09-23 | 2015-06-09 | Emc Corporation | Automatic elevation of system security |
JP6210812B2 (en) * | 2013-09-24 | 2017-10-11 | キヤノン株式会社 | Information processing apparatus, control method therefor, and program |
US9342331B2 (en) * | 2013-10-21 | 2016-05-17 | International Business Machines Corporation | Secure virtualized mobile cellular device |
US9203823B2 (en) | 2013-10-30 | 2015-12-01 | At&T Intellectual Property I, L.P. | Methods and systems for selectively obtaining end user authentication before delivering communications |
GB2519790B (en) * | 2013-10-30 | 2017-07-12 | 1E Ltd | Configuration of network devices |
CA2931762C (en) | 2013-11-29 | 2020-09-22 | Calgary Scientific Inc. | Method for providing a connection of a client to an unmanaged service in a client-server remote access system |
US9760704B2 (en) * | 2014-05-23 | 2017-09-12 | Blackberry Limited | Security apparatus session sharing |
US9602514B2 (en) * | 2014-06-16 | 2017-03-21 | Box, Inc. | Enterprise mobility management and verification of a managed application by a content provider |
US9374361B2 (en) * | 2014-07-03 | 2016-06-21 | Verizon Patent And Licensing Inc. | Cross-native application authentication application |
US9537868B2 (en) | 2014-07-29 | 2017-01-03 | Time Warner Cable Enterprises Llc | Communication management and policy-based data routing |
US10367916B2 (en) * | 2014-09-12 | 2019-07-30 | Sap Se | Enhanced feature vector |
EP3210364B8 (en) | 2014-10-21 | 2021-03-10 | Proofpoint, Inc. | Systems and methods for application security analysis |
EP4155984B1 (en) * | 2014-10-31 | 2024-08-28 | Proofpoint, Inc. | Systems and methods for privately performing application security analysis |
US10015264B2 (en) | 2015-01-30 | 2018-07-03 | Calgary Scientific Inc. | Generalized proxy architecture to provide remote access to an application framework |
AU2016210974A1 (en) | 2015-01-30 | 2017-07-27 | Calgary Scientific Inc. | Highly scalable, fault tolerant remote access architecture and method of connecting thereto |
US10158622B2 (en) * | 2015-02-27 | 2018-12-18 | Samsung Electronics Co., Ltd. | System and method for a generic single sign-on function |
JP6250166B2 (en) | 2015-04-20 | 2017-12-20 | エスゼット ディージェイアイ テクノロジー カンパニー リミテッドSz Dji Technology Co.,Ltd | Method, system and computer readable medium for supporting application development of moving objects |
EP3304336B1 (en) | 2015-06-01 | 2019-10-09 | Duo Security, Inc. | Method for enforcing endpoint health standards |
DE102015108714A1 (en) * | 2015-06-02 | 2016-12-08 | Deutsche Telekom Ag | Method for setting settings within a mobile electronic device |
US9703572B2 (en) * | 2015-06-05 | 2017-07-11 | Airwatch Llc | Managed application detection logic |
US11593075B2 (en) | 2015-11-03 | 2023-02-28 | Open Text Sa Ulc | Streamlined fast and efficient application building and customization systems and methods |
US9537865B1 (en) * | 2015-12-03 | 2017-01-03 | International Business Machines Corporation | Access control using tokens and black lists |
US9973497B2 (en) * | 2015-12-04 | 2018-05-15 | Sap Se | System and method for communication to enterprise environment users of a mobile application by the mobile application provider |
US10341320B2 (en) * | 2016-01-19 | 2019-07-02 | Aerohive Networks, Inc. | BYOD credential management |
US10158669B2 (en) * | 2016-01-28 | 2018-12-18 | Adp, Llc | Dynamic application versioning system |
US10200369B1 (en) | 2016-02-16 | 2019-02-05 | Symantec Corporation | Systems and methods for dynamically validating remote requests within enterprise networks |
US11388037B2 (en) | 2016-02-25 | 2022-07-12 | Open Text Sa Ulc | Systems and methods for providing managed services |
US10530762B2 (en) * | 2016-03-09 | 2020-01-07 | Google Llc | Electing whether to unify passcodes |
US10219151B2 (en) | 2016-03-17 | 2019-02-26 | Aerohive Networks, Inc. | Chromebook credential management |
GB2548599B (en) * | 2016-03-23 | 2020-02-12 | Jaguar Land Rover Ltd | Apparatus and method for device authentication |
US10528734B2 (en) | 2016-03-25 | 2020-01-07 | The Mitre Corporation | System and method for vetting mobile phone software applications |
CN105809440B (en) * | 2016-03-29 | 2020-09-11 | 北京小米移动软件有限公司 | Online payment method and device |
WO2017218694A1 (en) | 2016-06-14 | 2017-12-21 | Aerohive Networks, Inc. | Seamless wireless device onboarding |
US10070316B2 (en) * | 2016-06-16 | 2018-09-04 | Samsung Electronics Co., Ltd. | Permission delegation framework |
US10205595B2 (en) | 2016-06-22 | 2019-02-12 | Vmware, Inc. | Methods and apparatus to authenticate and differentiate virtually identical resources using session chaining |
CA3032883C (en) * | 2016-06-29 | 2022-05-17 | Greeneden U.S. Holdings Ii, Llc | Technologies for managing application configurations and associated credentials |
WO2018005143A1 (en) | 2016-06-29 | 2018-01-04 | Duo Security, Inc. | Systems and methods for endpoint management classification |
US10621333B2 (en) | 2016-08-08 | 2020-04-14 | International Business Machines Corporation | Install-time security analysis of mobile applications |
US10333715B2 (en) * | 2016-11-14 | 2019-06-25 | International Business Machines Corporation | Providing computation services with privacy |
US10375097B2 (en) * | 2016-12-21 | 2019-08-06 | Cisco Technology, Inc. | Identifying self-signed certificates using HTTP access logs for malware detection |
EP3523745B1 (en) * | 2016-12-22 | 2021-08-25 | Samsung Electronics Co., Ltd. | Electronic device, method for controlling thereof and computer-readable recording medium |
US10362612B2 (en) * | 2017-03-06 | 2019-07-23 | Citrix Systems, Inc. | Virtual private networking based on peer-to-peer communication |
US10355933B2 (en) | 2017-03-31 | 2019-07-16 | Microsoft Technology Licensing, Llc | Dependency graph for coordination of device configuration |
US11366914B2 (en) | 2017-04-14 | 2022-06-21 | Hewlett-Packard Development Company, L.P. | Authenticating access of service of service entity to application of client device based on whether root certificate corresponding to application is installed in service entity |
CN107240408B (en) * | 2017-05-11 | 2019-05-10 | 中国科学院信息工程研究所 | For the read-write managing and control system of CD-ROM CD media |
US10645073B1 (en) * | 2017-06-12 | 2020-05-05 | Ca, Inc. | Systems and methods for authenticating applications installed on computing devices |
US10909228B2 (en) | 2017-07-19 | 2021-02-02 | Box, Inc. | Server-side authentication policy determination for mobile applications |
US11294653B2 (en) * | 2017-09-27 | 2022-04-05 | Jayant Shukla | Methods and systems of disassembling executable code |
US10887107B1 (en) * | 2017-10-05 | 2021-01-05 | National Technology & Engineering Solutions Of Sandia, Llc | Proof-of-work for securing IoT and autonomous systems |
JP6644756B2 (en) * | 2017-11-21 | 2020-02-12 | エスゼット ディージェイアイ テクノロジー カンパニー リミテッドSz Dji Technology Co.,Ltd | Method, system and computer readable medium for supporting application development of movable objects |
US10412113B2 (en) | 2017-12-08 | 2019-09-10 | Duo Security, Inc. | Systems and methods for intelligently configuring computer security |
WO2019140276A1 (en) * | 2018-01-12 | 2019-07-18 | MobileIron, Inc. | Asserting user, app, and device binding in an unmanaged mobile device |
US11063762B1 (en) * | 2018-02-22 | 2021-07-13 | Allscripts Software, Llc | Computing system for inter-application communication |
US11146407B2 (en) | 2018-04-17 | 2021-10-12 | Digicert, Inc. | Digital certificate validation using untrusted data |
JP7179482B2 (en) * | 2018-04-19 | 2022-11-29 | キヤノン株式会社 | Information processing device, control method, and its program |
US11263036B2 (en) | 2018-07-16 | 2022-03-01 | Samsung Electronics Co., Ltd. | Method and device for controlling access of application |
KR20200008498A (en) * | 2018-07-16 | 2020-01-28 | 삼성전자주식회사 | Method and device for handling access of applications |
US10929162B2 (en) * | 2018-07-27 | 2021-02-23 | Futurewei Technologies, Inc. | Virtual machine container for applications |
US11227041B2 (en) * | 2018-08-24 | 2022-01-18 | Baskaran Dharmarajan | Identification service based authorization |
US10599486B1 (en) * | 2018-09-21 | 2020-03-24 | Citrix Systems, Inc. | Systems and methods for intercepting and enhancing SaaS application calls via embedded browser |
EP3648429A1 (en) * | 2018-10-29 | 2020-05-06 | Siemens Aktiengesellschaft | Method and system for providing access to data stored in a security data zone of a cloud platform |
CN109769010B (en) * | 2018-12-04 | 2021-11-30 | 平安科技(深圳)有限公司 | Method, device, equipment and storage medium for accessing CloudStack server based on SDK |
US11658962B2 (en) | 2018-12-07 | 2023-05-23 | Cisco Technology, Inc. | Systems and methods of push-based verification of a transaction |
US11044096B2 (en) * | 2019-02-04 | 2021-06-22 | Accenture Global Solutions Limited | Blockchain based digital identity generation and verification |
US11122091B2 (en) * | 2019-04-16 | 2021-09-14 | FireMon, LLC | Network security and management system |
US11089004B2 (en) * | 2019-05-01 | 2021-08-10 | Blackberry Limited | Method and system for application authenticity attestation |
US11017064B2 (en) | 2019-05-14 | 2021-05-25 | Bank Of America Corporation | Authentication using interprogram communication |
US20200364354A1 (en) * | 2019-05-17 | 2020-11-19 | Microsoft Technology Licensing, Llc | Mitigation of ransomware in integrated, isolated applications |
CN110231965B (en) * | 2019-06-19 | 2022-05-10 | 京东方科技集团股份有限公司 | Cloud device, application processing method and electronic device |
CN110399141A (en) * | 2019-07-17 | 2019-11-01 | 中科恒运股份有限公司 | A kind of integrated mobile-terminal platform scheme more applied |
US20210056053A1 (en) * | 2019-08-19 | 2021-02-25 | Cryptography Research, Inc. | Application authentication and data encryption without stored pre-shared keys |
US20220277089A1 (en) | 2019-09-02 | 2022-09-01 | Grabtaxi Holdings Pte. Ltd. | Communications server apparatus and method for determination of an abstention attack |
US11343252B2 (en) | 2019-11-11 | 2022-05-24 | Vmware, Inc. | Kernel level application data protection |
US11244077B2 (en) * | 2020-01-31 | 2022-02-08 | Fortanix, Inc. | Securing data integrity for an application |
CN111314475B (en) * | 2020-02-21 | 2021-05-04 | 北京紫光展锐通信技术有限公司 | Session creation method and related equipment |
WO2021203026A1 (en) * | 2020-04-03 | 2021-10-07 | Prescient Devices, Inc. | Content-based application security for distributed computing system |
US12041449B2 (en) * | 2020-04-10 | 2024-07-16 | Qualcomm Incorporated | Method and apparatus for verifying mobile device communications |
US20220038282A1 (en) * | 2020-07-28 | 2022-02-03 | Citrix Systems, Inc. | Secure Token Transfer between Untrusted Entities |
CN114386050A (en) * | 2020-10-20 | 2022-04-22 | 华为云计算技术有限公司 | Asset access control method, device, equipment and medium |
US20220182385A1 (en) * | 2020-12-09 | 2022-06-09 | Citrix Systems, Inc. | Cross-endpoint enterprise application authorization and management |
CN115221497A (en) * | 2021-03-29 | 2022-10-21 | 北京小米移动软件有限公司 | Method and device for setting use permission of application, electronic equipment and storage medium |
CN112732535B (en) * | 2021-03-31 | 2021-06-22 | 荣耀终端有限公司 | Method for controlling time-limited use of application program and electronic equipment |
US11895133B2 (en) | 2021-04-05 | 2024-02-06 | Bank Of America Corporation | Systems and methods for automated device activity analysis |
US11811668B2 (en) * | 2021-08-19 | 2023-11-07 | Bank Of America Corporation | System for implementing disposition bias for validating network traffic from upstream applications |
US12074983B2 (en) | 2021-11-09 | 2024-08-27 | Samsung Electronics Co., Ltd. | Trusted computing device and operating method thereof |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050216422A1 (en) * | 2000-09-08 | 2005-09-29 | International Business Machines Corporation. | System and method for secure authentication of external software modules provided by third parties |
US20060130123A1 (en) * | 2004-12-14 | 2006-06-15 | International Business Machines Corporation | Method for authenticating database connections in a multi-tier environment |
US20090293118A1 (en) * | 2008-05-21 | 2009-11-26 | Mei Yan | Systems for authentication for access to software development kit for a peripheral device |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08137686A (en) * | 1994-09-16 | 1996-05-31 | Toshiba Corp | Method and device for managing data on literary work |
US5870467A (en) | 1994-09-16 | 1999-02-09 | Kabushiki Kaisha Toshiba | Method and apparatus for data input/output management suitable for protection of electronic writing data |
JP3779837B2 (en) | 1999-02-22 | 2006-05-31 | 松下電器産業株式会社 | Computer and program recording medium |
US7565551B2 (en) * | 2003-02-19 | 2009-07-21 | Microsoft Corporation | Enhancing software integrity through installation and verification |
EP1652085A4 (en) * | 2003-07-11 | 2007-12-19 | Computer Ass Think Inc | System and method for using common communication channel by web page applets |
US8122100B2 (en) * | 2003-07-28 | 2012-02-21 | Limelight Networks, Inc. | Multiple object download |
JP4636607B2 (en) | 2005-06-29 | 2011-02-23 | 株式会社日立ソリューションズ | How to protect sensitive files in security application |
US8145917B2 (en) * | 2005-12-30 | 2012-03-27 | Nokia Corporation | Security bootstrapping for distributed architecture devices |
JP2008073184A (en) | 2006-09-20 | 2008-04-03 | Namco Bandai Games Inc | Program, information storage medium and game device |
US8245285B1 (en) * | 2006-09-22 | 2012-08-14 | Oracle America, Inc. | Transport-level web application security on a resource-constrained device |
US8225093B2 (en) * | 2006-12-05 | 2012-07-17 | Qualcomm Incorporated | Providing secure inter-application communication for a mobile operating environment |
KR20110033112A (en) * | 2008-05-21 | 2011-03-30 | 쌘디스크 코포레이션 | Authentication for access to software development kit for a peripheral device |
JP5577527B2 (en) * | 2008-06-25 | 2014-08-27 | 日本電気株式会社 | Information processing system, personal information device, and access management method |
US8869289B2 (en) * | 2009-01-28 | 2014-10-21 | Microsoft Corporation | Software application verification |
CN102498491A (en) | 2009-09-14 | 2012-06-13 | 森清 | Secure audit system and secure audit method |
US20120297457A1 (en) * | 2010-11-15 | 2012-11-22 | Brian Schulte | Interactive Malware Detector |
JP5622668B2 (en) * | 2011-06-16 | 2014-11-12 | 株式会社エヌ・ティ・ティ・データ | Application authentication system, application authentication method |
US9161225B2 (en) * | 2011-09-23 | 2015-10-13 | Blackberry Limited | Authentication procedures for managing mobile device applications |
-
2013
- 2013-05-20 US US13/898,167 patent/US9270674B2/en active Active
-
2014
- 2014-05-13 EP EP17154058.6A patent/EP3179697B1/en active Active
- 2014-05-13 JP JP2016515356A patent/JP6222592B2/en not_active Expired - Fee Related
- 2014-05-13 EP EP14731459.5A patent/EP3000213B1/en active Active
- 2014-05-13 WO PCT/US2014/037850 patent/WO2014189722A1/en active Application Filing
- 2014-05-13 CN CN201480038881.4A patent/CN105379223B/en active Active
- 2014-05-13 KR KR1020157035910A patent/KR101770417B1/en active IP Right Grant
- 2014-05-13 KR KR1020177022867A patent/KR101877732B1/en active IP Right Grant
- 2014-05-13 KR KR1020187019305A patent/KR20180081833A/en not_active Application Discontinuation
-
2016
- 2016-01-26 US US15/006,348 patent/US9838398B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050216422A1 (en) * | 2000-09-08 | 2005-09-29 | International Business Machines Corporation. | System and method for secure authentication of external software modules provided by third parties |
US20060130123A1 (en) * | 2004-12-14 | 2006-06-15 | International Business Machines Corporation | Method for authenticating database connections in a multi-tier environment |
US20090293118A1 (en) * | 2008-05-21 | 2009-11-26 | Mei Yan | Systems for authentication for access to software development kit for a peripheral device |
Also Published As
Publication number | Publication date |
---|---|
EP3000213A1 (en) | 2016-03-30 |
US9838398B2 (en) | 2017-12-05 |
CN105379223A (en) | 2016-03-02 |
US20160142418A1 (en) | 2016-05-19 |
KR20160010600A (en) | 2016-01-27 |
KR101877732B1 (en) | 2018-07-12 |
JP2016526223A (en) | 2016-09-01 |
EP3179697A1 (en) | 2017-06-14 |
US20140298420A1 (en) | 2014-10-02 |
CN105379223B (en) | 2017-06-23 |
WO2014189722A1 (en) | 2014-11-27 |
KR20170098961A (en) | 2017-08-30 |
JP6222592B2 (en) | 2017-11-01 |
EP3000213B1 (en) | 2017-04-26 |
KR20180081833A (en) | 2018-07-17 |
US9270674B2 (en) | 2016-02-23 |
EP3179697B1 (en) | 2020-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101770417B1 (en) | Validating the identity of a mobile application for mobile application management | |
US10609560B2 (en) | Using derived credentials for enrollment with enterprise mobile device management services | |
EP3462759B1 (en) | Secure single sign-on and conditional access for client applications | |
US11627120B2 (en) | Dynamic crypto key management for mobility in a cloud environment | |
KR101722631B1 (en) | Secured access to resources using a proxy | |
KR101992740B1 (en) | Data management for an application with multiple operation modes | |
KR101738400B1 (en) | Mobile device locking with context | |
KR101824980B1 (en) | Secure client drive mapping and file storage system for mobile device management type security | |
EP2992698A1 (en) | Application with multiple operation modes | |
KR101730984B1 (en) | Data management for an application with multiple operation modes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
A107 | Divisional application of patent | ||
GRNT | Written decision to grant |