KR20240021816A - 앱 전용 관리를 통한 모바일 vpn 자동 시작 - Google Patents

앱 전용 관리를 통한 모바일 vpn 자동 시작 Download PDF

Info

Publication number
KR20240021816A
KR20240021816A KR1020237043342A KR20237043342A KR20240021816A KR 20240021816 A KR20240021816 A KR 20240021816A KR 1020237043342 A KR1020237043342 A KR 1020237043342A KR 20237043342 A KR20237043342 A KR 20237043342A KR 20240021816 A KR20240021816 A KR 20240021816A
Authority
KR
South Korea
Prior art keywords
vpn
application
mam
control application
policy
Prior art date
Application number
KR1020237043342A
Other languages
English (en)
Inventor
제임스 매튜 해밀턴 오클리
닐 아담 제이콥슨
Original Assignee
마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 filed Critical 마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Publication of KR20240021816A publication Critical patent/KR20240021816A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0245Filtering by information in the payload
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/22Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks comprising specially adapted graphical user interfaces [GUI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0272Virtual private networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/029Firewall traversal, e.g. tunnelling or, creating pinholes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/08Access security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/30Security of mobile devices; Security of mobile applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/30Security of mobile devices; Security of mobile applications
    • H04W12/37Managing security policies for mobile devices or for controlling mobile applications

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Automation & Control Theory (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

MAM 환경에서 VPN을 자동 시작하기 위한 기법이 공개된다. MAM 제어 애플리케이션이 컴퓨터 시스템에서 런칭된다. 정책이 쿼리되고 정책에 기초하여 VPN 애플리케이션을 자동 시작할지 여부에 대해 결정이 내려진다. 정책에 기초하여, VPN 애플리케이션이 자동 시작되고, VPN 애플리케이션은 적어도 MAM 제어 애플리케이션에 의해 사용 가능한 VPN 터널을 개시한다. 그런 다음 MAM 제어 애플리케이션으로 또는 그로부터 전송되는 네트워크 통신이 VPN 터널을 통과한다.

Description

앱 전용 관리를 통한 모바일 VPN 자동 시작
"가상 사설 네트워크(virtual private network)"(VPN)는 네트워크 연결을 통해 전송되는 통신을 보호하는 서비스의 한 유형이다. 특히 VPN은 데이터 패킷이 한 지점에서 다른 지점으로 이동할 수 있는 암호화된 터널을 제공한다. VPN이 클라이언트 디바이스에 의해 인터넷을 통해 엔드포인트에 연결하는 데 사용될 때, 해당 VPN 연결은 사용자의 데이터를 보호하는데 도움이 되며, 그럼으로써 사용자가 비공개적이고 안전한 방식으로 데이터와 상호 작용할 수 있도록 한다. VPN은 또한 사용자의 IP 주소를 숨기고 심지어 사용자의 물리 주소스를 숨기는 데에도 사용될 수 있다. 또한, VPN을 통해 전송되는 데이터 패킷을 암호화함으로서, 이들 데이터 패킷은 잠재적으로 악의적인 공격자로부터 보호된다. 이와 같이, 많은 기업은 특히 이들 기업의 사용자가 기업의 데이터와 상호 작용할 때 VPN을 사용하기를 원한다. 그러므로 VPN을 활용하기 위한 개선된 기법이 필요한 것이다.
본 명세서에 청구된 주제는 임의의 단점을 해결하거나 위에서 설명한 것과 같은 환경에서만 동작하는 실시예로 제한되지 않는다. 오히려, 이러한 배경은 본 명세서에 기술된 일부 실시예가 실시될 수 있는 하나의 예시적인 기술 영역을 예시하기 위해 제공되는 것일 뿐이다.
본 명세서에 개시된 실시예는 컴퓨터 시스템에서 동작하는 모바일 애플리케이션 관리(mobile application management, MAM) 환경에서 가상 사설 네트워크(VPN)를 자동으로 시작하기 위한 시스템, 디바이스(예를 들어, 웨어러블 디바이스, 하드웨어 저장 디바이스 등) 및 방법에 관한 것이다.
일부 실시예는 MAM 제어 애플리케이션(MAM-controlled application)이 컴퓨터 시스템에서 런칭(launching) 중에 있다는 것을 결정한다. MAM 제어 애플리케이션이 런칭 중에 있다는 것을 결정한 후에, 실시예는 정책을 쿼리하고 정책에 기초하여 VPN 애플리케이션을 자동 시작할지를 결정한다. VPN 애플리케이션이 MAM 제어 애플리케이션의 런칭 후에 또는 그와 동시에 자동 시작될 것이라고 표시하는 정책에 기초하여, 실시예는 적어도 MAM 제어 애플리케이션에 의해 사용 가능한 VPN 터널을 개시하도록 구성된 VPN 애플리케이션을 자동 시작한다. 실시예는 또한 MAM 제어 애플리케이션으로 또는 그로부터 전송되는 네트워크 통신이 VPN 터널을 통과하게 한다. 선택적으로, 일부 실시예는 애플리케이션이 자동 시작된 지 얼마 후에 VPN 애플리케이션이 VPN 터널을 종료하게 한다.
일부 실시예는 MAM 제어 애플리케이션이 컴퓨터 시스템에서 런칭 중에 있다는 것을 결정한다. MAM 제어 애플리케이션이 런칭 중에 있다는 것을 결정한 후에, 실시예는 정책을 쿼리하고, MAM 제어 애플리케이션의 사용자 인터페이스(user interface, UI)가 컴퓨터 시스템의 포그라운드(foreground)로 옮겨진 후에 또는 옮겨지는 동안 VPN 애플리케이션이 VPN 터널을 자동으로 개시할 것이라는 것을 정책이 표시하고 있다는 것을 결정한다. MAM 제어 애플리케이션의 UI가 현재 또는 나중에 포그라운드로 옮겨지거나 옮겨질 것이라는 표시에 응답하여, 실시예는 VPN 애플리케이션이 적어도 MAM 제어 애플리케이션에 의해 사용 가능한 VPN 터널을 개시하게 한다. 또한, 실시예는 MAM 제어 애플리케이션으로 또는 그로부터 전송되는 네트워크 통신이 VPN 애플리케이션에 의해 제공되는 VPN 터널을 통과하게 한다.
이 요약 부분은 아래의 상세한 설명에서 추가 설명되는 다양한 개념을 간략화된 형태로 소개하기 위해 제공된다. 이 요약 부분은 청구된 주제의 주요 특징 또는 필수 특징을 식별하려는 의도가 아니며, 청구된 주제의 범위를 결정하는데 도움으로 사용되게 하려는 의도도 아니다.
추가적인 특징 및 장점은 다음에 이어지는 설명에서 제시될 것이며, 설명으로부터 부분적으로 명백해지거나 본 명세서의 교시를 실시함으로써 알 수 있을 것이다. 본 발명의 특징 및 장점은 첨부된 청구범위에 특별히 지적된 수단 및 조합에 의해 실현되고 획득될 수 있다. 본 발명의 특징은 다음의 설명 및 첨부된 청구범위로부터 보다 완전하게 명백해지거나, 이하에 제시되는 본 발명을 실시함으로써 알 수 있을 것이다.
위에서 언급한 장점 및 특징과 다른 장점 및 특징이 획득될 수 있는 방식을 설명하기 위해, 위에서 간략히 설명한 주제에 대한 보다 특별한 설명이 첨부 도면에 예시된 구체적인 실시예를 참조하여 주어질 것이다. 이들 도면은 전형적인 실시예만을 묘사하며 그래서 그 범위가 제한적인 것으로 간주되어서는 안 된다는 점을 이해할 것이며, 실시예는 첨부 도면을 사용하여 추가적으로 구체적이고 상세하게 기술되고 설명될 것이다:
도 1은 "개인 소유 디바이스 가져오기(bring your own device)" (BYOD) 아키텍처의 예를 예시한다.
도 2는 모바일 디바이스 관리(mobile device management, MDM) 환경과 모바일 애플리케이션 관리(mobile application management, MAM) 환경의 차이점을 예시한다.
도 3은 하나의 디바이스 또는 엔드포인트를 다른 디바이스 또는 엔드포인트에 연결하는 데 사용될 수 있는 가상 사설 네트워크(VPN)의 용도를 예시한다.
도 4는 "마이크로 VPN 애플리케이션"과 "VPN 애플리케이션"의 차이점을 예시한다.
도 5는 전통적으로 VPN 애플리케이션이 MDM 환경에서 자동으로 트리거되거나 시작될 수 없지만, 전통적으로 VPN 애플리케이션이 MDM 환경에서 자동으로 트리거될 수 있는 방법을 예시한다.
도 6은 개시된 원리에 따라 MAM 환경에서 VPN 애플리케이션이 자동으로 트리거되는 예시적인 구현을 예시한다.
도 7은 MAM 환경에서 VPN 애플리케이션이 자동으로 시작되는 다른 시나리오를 예시한다.
도 8은 VPN 애플리케이션의 자동 시작을 트리거할 수 있는 예시적인 조건을 예시한다.
도 9는 MAM 환경에서 VPN 애플리케이션을 자동 시작하기 위한 예시적인 방법의 흐름도이다.
도 10은 MAM 환경에서 VPN을 자동 시작하기 위한 방법의 다른 예시적인 방법의 흐름도이다
도 11은 개시된 동작 중 임의의 동작을 수행하도록 구성된 컴퓨터 시스템의 예를 예시한다.
본 명세서에 개시된 실시예는 컴퓨터 시스템에서 동작하는 모바일 애플리케이션 관리(MAM) 환경에서 가상 사설 네트워크(VPN)를 자동 시작하기 위한 시스템, 디바이스(예를 들어, 웨어러블 디바이스, 하드웨어 저장 디바이스 등) 및 방법에 관한 것이다. 본 명세서에서 사용되는 것으로 "런치(launch)"라는 용어는 애플리케이션이 동작하기 시작하거나, 선택적으로는 애플리케이션의 특정 컴포넌트가 동작하기 시작하는 시나리오, 이를테면 사용자 인터페이스가 클라이언트 디바이스의 포그라운드로 옮겨지는 경우 또는 VPN이 동작하기 시작하는 경우를 말할 수 있다. "런치"는 또한 애플리케이션 UI가 백그라운드(background)에 있었지만 이제는 포그라운드로 옮겨지는 경우(예를 들어, 아마 사용자가 애플리케이션을 종료하지 않은 채 애플리케이션에서 떠나 탐색했고, 이제 사용자가 그 애플리케이션으로 돌아오는 경우)와 같이, 애플리케이션이 이전에 일시 중지되었거나 또는 백그라운드 상태에 있었을 때 애플리케이션이 포그라운드 동작을 재개하는 시나리오를 말할 수도 있다. "자동 시작(auto-start)"이라는 용어(및 그 변형 용어)는 VPN 애플리케이션이 자동으로(즉, 사용자 입력 없이) 시작되고(즉, 런칭되고) 자동으로 트리거되어 MAM 제어 애플리케이션에 의해 연결을 위한 VPN 터널을 설정하는 시나리오를 말하며, 여기서 자동 시작은 정책에 의해 촉진된다. VPN 애플리케이션을 "자동 시작"함으로써, 사용자는 VPN 애플리케이션을 수동으로 런칭하지 않으며; 더욱이, VPN 애플리케이션은 사용자에게 포그라운드 UI를 디스플레이할 필요가 없을 수 있다. 그 대신, VPN 애플리케이션은 자동으로 시작될 수 있고 백그라운드에서 실행될 수 있다.
일부 실시예는 MAM 제어 애플리케이션이 컴퓨터 시스템에서 런칭 중에 있다는 것을 결정한다. MAM 제어 애플리케이션이 런칭 중에 있다는 것을 결정한 후에, 실시예는 정책을 쿼리하고 정책에 기초하여 VPN 애플리케이션을 자동 시작할지를 결정한다. VPN 애플리케이션이 MAM 제어 애플리케이션의 런칭 후에 또는 그와 동시에 자동 시작될 것이라고 표시하는 정책에 기초하여, 실시예는 적어도 MAM 제어 애플리케이션에 의해 사용 가능한 VPN 터널을 개시하도록 구성된 VPN 애플리케이션을 자동 시작한다. 실시예는 또한 MAM 제어 애플리케이션으로 또는 그로부터 전송되는 네트워크 통신이 VPN 터널을 통과하게 한다. 선택적으로, 일부 실시예는 VPN 애플리케이션이 VPN 터널을 종료하게 한다.
일부 실시예는 MAM 제어 애플리케이션이 컴퓨터 시스템에서 런칭 중에 있다는 것을 결정한다. MAM 제어 애플리케이션이 런칭 중에 있다는 것을 결정한 후에, 실시예는 정책을 쿼리하고, MAM 제어 애플리케이션의 사용자 인터페이스(UI)가 컴퓨터 시스템의 포그라운드로 옮겨진 후에 또는 옮겨지는 동안 VPN 애플리케이션이 VPN 터널을 자동으로 개시할 것이라는 것을 정책이 표시하고 있다는 것을 결정한다. MAM 제어 애플리케이션의 UI가 현재 또는 나중에 포그라운드로 옮겨지거나 옮겨질 것이라는 표시에 응답하여, 실시예는 VPN 애플리케이션이 적어도 MAM 제어 애플리케이션에 의해 사용 가능한 VPN 터널을 개시하게 한다. 또한, 실시예는 MAM 제어 애플리케이션으로 또는 그로부터 전송되는 네트워크 통신이 VPN 애플리케이션에 의해 제공되는 VPN 터널을 통과하게 한다.
기술적 이점, 개선 사항 및 실제 적용의 사례
다음 섹션에서는 개시된 실시예에 의해 제공되는 몇 가지 예시적인 개선 사항과 실제 응용이 개요된다. 그러나 이것은 그저 예일 뿐이며 실시예가 이러한 개선 사항으로만 제한되는 것이 아니라는 것을 인식해야 한다.
개시된 실시예는 기술 분야에 다양하고 실질적인 이점을 가져온다. 예를 들어, VPN이 MAM 환경에서 자동으로 시작될 수 있도록 함으로써, 실시예는 MAM 환경을 호스팅하는 클라이언트 디바이스에 의한 사용자 경험을 직접적으로 상당히 개선한다. 예를 들어 설명하면, 개시된 원리를 따름으로써, 사용자는 더 이상 수동으로 VPN을 시작할 필요가 없다. 더욱이, 사용자와 IT 관리자는 VPN이 기업 데이터를 보호하고 있다는 것을 확신할 수 있다. 이러한 의미에서, 자동으로 시작되는 VPN은 기업 데이터에 대한 향상된 데이터 보호를 제공한다.
실시예는 또한 컴퓨터 시스템의 기본 동작을 개선한다. 한 예로서, 실시예는 VPN이 사용 중일 때 자동으로 지능적으로 시작하고 중지할 수 있다. 이러한 지능을 통해, 실시예는 VPN이 항상 켜져 있는 것과는 반대로 필요할 때 사용되는 결과로서 디바이스의 배터리 수명을 최대화하거나 적어도 개선하는 데 도움이 된다. 유사한 방식으로, 실시예는 VPN을 지능적으로 켜고 끄는 능력의 결과로서 메모리 이용률을 개선한다. 이러한 이득과 많은 다른 이득은 이제 본 개시내용의 나머지 부분 내내 자세히 설명될 것이다.
BYOD 아키텍처
이제 "개인 소유 디바이스 가져오기(bring your own device)" BYOD 아키텍처(100)의 예를 예시하는 도 1에 대해 주의가 집중될 것이다. 예를 들어, BYOD 아키텍처(100)는 직원 자신의 개인 디바이스(예를 들어, 스마트폰, 태블릿, 노트북 등)와 같은 클라이언트 디바이스(105) 및 기업 환경(110)(예를 들어, 기업 조직의 네트워크 인프라)을 포함한다. 디바이스(105)는 인터넷, 근거리 네트워크(local area network, LAN), 또는 일부 다른 유형의 광역 네트워크(wide area network, WAN)와 같은 임의의 유형의 네트워크(115)를 통해 기업 환경(110)에 연결할 수 있다.
도 1에서, 기업 환경(110)은 경계 네트워크(120)와 인트라넷(125)을 포함하는 것으로 도시되어 있다. 경계 네트워크(120)는 릴레이 서버(130)와 같은 임의의 수의 서버를 포함할 수 있다. 릴레이 서버(130)는 로드 밸런서와 유사하게 요청을 수신하고 처리하기 위해 잠재적으로 내부 서버를 선택하는 데 사용될 수 있다. 인트라넷(125)은 서버(135)와 같이 임의의 수의 서버를 포함하는 것으로 도시된다. 예를 들어, 요청은 릴레이 서버(130)에 의해 수신될 수 있다. 그런 다음 릴레이 서버(130)는 기업 환경(110)의 인트라넷(125) 부분에서 어떤 서버가 요청을 처리하고 핸들링하는 데 사용 가능한지를 결정할 수 있다.
일부 경우에, 방화벽(140)은 다양한 유형의 인입 트래픽으로부터 기업 환경(110)을 보호하기 위해 논리적으로 기업 환경(110)의 프론트 엔드에 위치될 수 있다. 유사하게, 경계 네트워크(120)와 인트라넷(125) 사이에 중간 방화벽(intervening firewall)(145)이 위치되어 인트라넷(125)의 내부 서버에 대한 추가적인 보호를 제공할 수 있다.
이러한 아키텍처에 의하면, 기업은 사용자/직원이 자기 자신의 개인 디바이스를 사용하여 업무 관련 일을 작업할 수 있도록 할 수 있다. 직원들이 자기 자신의 디바이스를 사용할 수 있는 결과로서 경험하는 편리함 때문에, BYOD 아키텍처를 향한 추세가 커지고 있다. 직원의 개인 디바이스가 사용될 때 기업 조직의 데이터가 보호되도록 하는 기업 조직 측의 요구가 또한 커지고 있다. 이러한 보호수단(safeguard)을 제공하기 위해 다양한 구조가 개발되었다. 이러한 구조는 아래에서 보다 자세히 설명하는 바와 같이 MDM 환경 및 MAM 환경을 포함한다.
MDM 및 MAM 환경
위에서 시사한 바와 같이, BYOD 아키텍처에서 기업 데이터를 보호하고 제어하기 위한 상이한 기법이 있다. 이러한 기법 중 하나는 "모바일 디바이스 관리(Mobile Device Management)" 또는 "MDM"이라고 지칭되는 한편, 다른 기술은 "모바일 애플리케이션 관리(Mobile Application Management)" 또는 "MAM"이라고 지칭된다. 도 2는 이들 두 기법 간의 차이점을 보여준다.
도 2는 MDM(200)에 의해 제어되는 디바이스와 MAM(205)에 의해 제어되는 디바이스를 도시한다. 일반적으로, MDM(200)은 기업에 의해 사용자의 디바이스를 제어하기 위해 사용하는 관리 기법이다. 사용자 디바이스는 종종 다양한 온 디바이스 애플리케이션(on-device application) 및/또는 구성, 정책, 토큰, 백엔드 인프라, 및/또는 기업(예를 들어, IT 부서)이 사용자의 디바이스를 특정 방식으로, 이를테면 디바이스가 기업의 데이터를 가지고 또는 액세스하는 것으로 행할 수 있는 것을 제한함으로써, 제어할 수 있도록 설계된 인증서를 포함하도록 구성된다. MDM(200)은 데이터, 애플리케이션, 구성 등을 무선을 통해 배포함으로써 정책이 디바이스에서 정책을 구현될 수 있도록 한다. 일반적으로, MDM(200)은 도 2에 도시된 바와 같이, 전체 디바이스를 덮고 있는 "감옥 창살(jail bar)"에 의해 전체 디바이스를 제어할 수 있다. 이와 관련하여, MDM(200)은 기업의 IT 관리자가 사용자 디바이스에 대해 정책을 제어하고, 보호하고, 시행할 수 있도록 한다.
MDM(200)이 있다면, 사용자 디바이스에 클라이언트 에이전트가 설치되는 경우는 흔하다. 기업 시스템은 서버 및 서버 에이전트를 포함한다. 정책은 서버 에이전트를 통해 구성되며, 서버 에이전트는 정책을 디바이스의 에이전트로 푸시하거나 전송한다. 에이전트는 다양한 애플리케이션 프로그래밍 인터페이스(application programming interface, API) 및 디바이스의 운영 체제(operating system, OS)와 통신함으로써 정책을 구현하도록 구성된다. 그 다음에 에이전트는 전체 디바이스를 제어한다.
반면에, MAM(205)은 보다 세분화되거나 정교한 제어에 중점을 둔다. 즉, 전체 디바이스를 효과적으로 제어하는 MDM(200)과 대조적으로, MAM(205)은 디바이스에 설치된 특정 애플리케이션을 제어한다. 즉, 각각의 애플리케이션은 정책을 구현하고 해당 특정 애플리케이션을 제어하기 위해 동작하는 임베디드 MAM 컴포넌트를 포함할 수 있다.
한 예로서, MAM(205)은 제어 앱(controlled app)(210)(예를 들어, 기업 데이터에 액세스하는 데 사용되는 이메일 애플리케이션)을 제어할 수 있지만, 사용자의 디바이스에 설치된 게임 애플리케이션일 수 있는 앱(215)을 제어하지 않을 수 있다. 제어 앱(210)은 기업 정책을 구현하는 데 사용되는 임베디드 MAM 컴포넌트를 가질 수 있는 반면, 앱(215)은 임베디드 MAM 컴포넌트를 갖지 않을 수 있다.
이러한 의미에서, MAM(205)은 사용자의 디바이스에 설치된 특정 소프트웨어나 애플리케이션을 제어하는 데 사용할 수 있지만 전체 디바이스는 제어할 수 없다. 더욱이, MAM 환경은 MAM 제어 애플리케이션(예를 들어, 제어 앱(210))을 제한(220)하도록 동작하지만, 클라이언트 디바이스에 설치된 다른 애플리케이션(예를 들어, 앱(215))을 제한하는 것은 삼간다.
가상 사설 네트워크
기업은 사용자가 기업 데이터와 상호 작용할 때 가상 사설 네트워크(VPN)를 활용하기를 희망하는 경우가 흔하다. 즉, 사용자의 디바이스에 MDM 환경 또는 MAM 환경이 설치되어 있든 상관없이, 기업은 VPN의 사용을 희망하는 경우가 흔하다. 일반적으로, VPN은 공용 네트워크를 가로질러 사설 네트워크(예를 들어, 터널)를 설정한다. VPN은 사용자의 디바이스가 공용 네트워크(예를 들어, 인터넷)를 통해 연결되는 것과는 대조적으로 마치 특정 엔드포인트에 직접 연결된 것처럼 이런 방식으로 사용자가 이 VPN 터널을 사용하여 데이터를 보내고 받을 수 있도록 한다. 도 3은 그 예시이다.
도 3은 컴퓨터 시스템(305)(예를 들어, 아마 도 2에 도시된 것과 같은 클라이언트 디바이스) 및 액세스 포인트(access point, AP)(310)(예를 들어, 라우터)를 포함하는 예시적인 아키텍처(300)를 도시한다. 아키텍처(300)는 또한 아마 공공 인터넷 또는 일부 다른 WAN과 같은 네트워크(315)를 포함한다. 실시예는 컴퓨터 시스템(305)이 다른 AP(325) 및 아마 기업 서버와 같은 컴퓨터 시스템과 연결할 수 있도록 네트워크를 통해 VPN 터널(320)을 개시할 수 있다. VPN 터널(320)은 데이터 패킷이 두 컴퓨터 시스템(305, 330) 사이에서 전송될 수 있는 보안 경로를 제공한다.
도 4는 VPN의 몇몇 상이한 구현을 도시한다. 하나의 사례로, 앱 A는 VPN 터널(405)을 개시하여 네트워크 통신(예를 들어, 네트워크 통신(410))이 앱 A로만 또는 앱 A으로부터 서버(415)로만 전송될 수 있도록 구성되는 소위 마이크로 VPN 애플리케이션(400)을 포함할 수 있다. 참고로, 마이크로 VPN 애플리케이션(400)은 앱 A의 임베디드 컴포넌트 또는 그의 일부이다.
특히, 마이크로 VPN 애플리케이션(400)은 임의의 다른 애플리케이션이 아닌 앱 A에 대해서만 통신을 전달하도록 제한된다. 즉, 디바이스에 앱 B가 포함되면, 앱 B는 마이크로 VPN 애플리케이션(400)에 의해 제공되는 VPN 터널(405)을 사용할 수 없다. 그 대신 앱 B는 상이한 VPN 터널을 사용해야 한다. 그러므로 본 명세서에서 사용되는 바와 같이 "마이크로 VPN 애플리케이션(micro VPN application)"은 앱 A와 같이 단일 애플리케이션만을 위한 전용 VPN 터널을 제공하는 VPN 제공 서비스(VPN providing service)를 말한다.
다른 사례로, ("마이크로 VPN 애플리케이션"과는 별개인) VPN 애플리케이션(420)이 제공되어 다수의 상이한 애플리케이션이 동일한 VPN 터널(425)을 사용할 수 있도록 할 수 있다. VPN 애플리케이션(420)은 독립적인 애플리케이션이며 반드시 근원 애플리케이션의 내장된 부분 또는 그의 컴포넌트일 필요가 없다는 것을 주목하자.
도 4는 각각 동일한 VPN 터널(425)을 사용하여 통신을 송신 및 수신하는 3개의 상이한 애플리케이션(앱 B, 앱 C 및 앱 D)을 도시한다. 예를 들어 설명하면, 앱 B는 앱 B 네트워크 통신(430)을 서버(445)로 송신하거나 수신하고; 앱 C는 앱 C 네트워크 통신(435)을 송신하거나 수신하고; 앱 D는 앱 D 네트워크 통신(445)을 송신하거나 수신한다. 그러므로 마이크로 VPN 애플리케이션(400)에 의해 제공되는 VPN 터널(405)과는 대조적으로, VPN 애플리케이션(420)에 의해 제공되는 VPN 터널(425)은 다수의 상이한 애플리케이션에 의해 사용될 수 있으며, 단일 애플리케이션에만 전용되지는 않는다.
MDM은 전체 디바이스에 대한 제어권이 있기 때문에, VPN 애플리케이션을 자동으로 시작, 실행, 트리거 또는 개시하는 능력은 전통적으로 MDM 환경에서 사용 가능했다. 예를 들어, MDM은 애플리케이션이 런칭되는 때를 모니터링할 수 있다. MDM은 정책을 참조하여 VPN이 해당 애플리케이션에 사용되어야 하는지를 결정할 수 있다. 그런 다음 MDM은 정책에 기초하여, 애플리케이션에 의해 사용하기 위한 VPN을 자동으로 개시할 수 있다. 이러한 동작은 일반적으로 MDM이 해당 디바이스의 모든 애플리케이션을 비롯한 전체 디바이스를 제어할 수 있기 때문에 사용할 수 있다. 일부 경우에, MDM 에이전트는 애플리케이션이 런칭되는 것을 실제로 모니터링하지 않고, 오히려 그냥 OS 제공 API(예를 들어, 전체 디바이스 MDM 권한이 있는 에이전트에게만 사용 가능한 API)를 사용하여 "VPN을 항상 실행 상태로 유지함" 또는 "이 애플리케이션이 런칭될 때 VPN을 자동으로 시작함"과 같은 커맨드로 OS를 구성할 수 있다. 그 다음에 이러한 커맨드를 이행하는 프로세스는 OS 레벨에서 이루어질 수 있다.
그러나 이것은 MAM 환경에서는 그렇지 않다. 회상해 보면, MAM 환경에서는 권한이 낮은 앱 전용 레벨에서 제어권이 행사된다. MAM이 특정 애플리케이션의 동작을 제어하는 능력이 있기는 하지만, 이것은 전통적으로 MDM이 그러한 애플리케이션을 제어할 수 있는 방식으로 다른 애플리케이션(예를 들어, VPN 애플리케이션)에 "접근(reach out)"하여 제어할 수 없는 경우였다. 그러므로 전통적인 MAM 시스템에는 다른 애플리케이션이 런칭되는 것에 응답하여 VPN 애플리케이션을 자동으로 시작하는 능력이 포함되지 않았다.
마이크로 VPN 애플리케이션이 전통적으로 MDM 환경 또는 MAM 환경에서 어떻게 자동으로 시작될 수 있었는지를 또한 주목해야 한다. 그것은 마이크로 VPN 애플리케이션이 애플리케이션의 내장된 부분 또는 컴포넌트이기 때문이었다. 근원 애플리케이션이 시작될 때, 애플리케이션이 MDM으로 제어되는지 아니면 MAM으로 제어되는지에 관계없이, 마이크로 VPN 애플리케이션도 시작된다. 앞서 숙고한 바와 같이, 본 개시내용은 "마이크로 VPN 애플리케이션"이 "VPN 애플리케이션"과는 별개라는 것을 분명히 한다. 따라서 VPN 애플리케이션은 전통적으로 MAM 환경에서 자동으로 시작, 실행, 트리거 또는 개시될 수 없었다. 도 5는 더 자세한 내용을 제공한다.
도 5는 전통적인 MDM 환경이 연루된 시나리오와 전통적인 MAM 환경이 연루된 시나리오의 두 개의 시나리오를 도시한다. 구체적으로, 도 5는 MDM 환경을 갖춘 디바이스(500)를 도시한다. MDM 환경(500)은 (해당 디바이스에 설치된 임의의 애플리케이션을 비롯하여) 전체 디바이스를 제어할 수 있기 때문에, MDM 환경(500)은 VPN 애플리케이션(510)을 자동 시작(505)하고, 그런 다음 VPN 애플리케이션은 서버(520)와의 VPN 터널(515)을 개시할 수 있었다. 예를 들어, 디바이스가 기업 데이터와 상호 작용하는 데 사용될 때, MDM 환경(500)은 VPN 애플리케이션(510)을 자동으로 트리거하거나 시작할 수 있었다.
전통적으로, MAM 환경(525)에서는 그렇지 않았다. 즉, 애플리케이션에 내장된 클라이언트 측 MAM 에이전트가 해당 특정 애플리케이션을 제어할 수는 있지만, MAM 에이전트는 VPN 애플리케이션(530)과 같은 다른 애플리케이션의 런칭을 제어하거나 심지어 트리거할 수 있는 능력이 없었고; 그 대신 전통적으로 사용자가 수동으로 VPN 애플리케이션(530)을 트리거하거나 시작해야 하고, 그런 다음 VPN 애플리케이션이 서버(540)로의 VPN 터널(535)을 개시했다. 이러한 전통적인 기술에 의하면, 사용자가 추가 작업을 수행해야 했고, 그럼으로써 사용자 측에서 불만과 부담이 증가했다. 또한, IT 관리자는 VPN을 사용하지 않은 결과로서 사용자가 기업 데이터를 안전하게 보호하지 못할 수 있다는 데 대해 종종 불만했고 우려했다. 그러므로 MAM 환경에서 VPN 애플리케이션을 자동으로 시작, 트리거, 런칭 또는 개시하여, VPN 애플리케이션이 하나 또는 잠재적으로 하나보다 많은 MAM 제어 애플리케이션에 VPN 터널을 제공할 수 있도록 하기 위한 개선된 기법이 필요하다.
달리 말하면, 인기 있는 모바일 디바이스 플랫폼은 하나의 애플리케이션이 (최종 사용자 동의 후에) 디바이스 상의 다른 애플리케이션으로부터의 트래픽을 터널링하는 데 사용되는 VPN 연결을 설정할 수 있는 능력을 제공한다. MDM이 사용 중일 때, MDM 솔루션의 관리자는 디바이스가 VPN 애플리케이션을 자동으로 시작하도록 구성할 수 있다. 그에 반해, MAN이 디바이스 관리 없이 단독으로 사용 중일 때, 전통적으로 이러한 자동 시작 구성은 디바이스 플랫폼으로부터 사용할 수 없었다. 그럼에도 불구하고, MAM을 배포하는 관리자는 관리되는 애플리케이션이 사용 중일 때 VPN 애플리케이션을 자동으로 시작할 수 있는 능력을 원하고 있다.
MAM 환경에서 VPN 애플리케이션 자동 시작
개시된 원리에 따르면, 소프트웨어 라이브러리는 MAM 제어 또는 MAM 관리(MAM-managed) 애플리케이션에 내장될 수 있으며, 해당 라이브러리는 디바이스 플랫폼 또는 심지어 MAM 제어 애플리케이션 로직에 의한 명시적인 액션 없이도 특정 관리자 구성 설정 또는 "정책"에 기초하여 (MAM 제어 애플리케이션과 관련된) 독립적이고 외적인 VPN 애플리케이션(즉, 마이크로 VPN 애플리케이션이 아님)을 자동으로 시작(즉, "자동 시작")하도록 구성될 수 있다. 예를 들어, MAM 제어 애플리케이션에는 MAM 공급업체가 만든 소프트웨어 라이브러리 또는 소프트웨어 개발 키트(software development kit, SDK)가 내장되어 있을 수 있다. SDK는 MAM 제어 애플리케이션이 런칭될 때 디바이스 플랫폼(예를 들어, 운영 체제)에 의해 제공되는 표준 메커니즘을 사용하여 코드를 실행하도록 구성될 수 있다.
MAM 제어 애플리케이션이 런칭될 때, (MAM 제어 애플리케이션에 내장되어 있는 결과로서) SDK 코드 또한 런칭되며, SDK 코드는 로컬로 캐싱될 수 있거나 표준 방식으로 인터넷을 통해 검색될 수 있는 특정의 관리자 제공 정책(administrator-provided policy)을 참조한다. 정책에 의해 지시를 받으면, SDK는 VPN 애플리케이션의 런칭을 트리거할 수 있으며, 그런 다음 VPN 애플리케이션은 VPN 터널을 생성할 수 있다. VPN 애플리케이션의 런칭을 트리거하는 것은 표준 플랫폼 제공 IPC 메커니즘(예를 들어, 안드로이드 플랫폼(Android platform)의 인텐트(Intent))을 사용하여 전송되는 메시지를 SDK에 의해 디바이스의 OS로 송신함으로써 수행될 수 있다. 이 메시지를 수신하면, VPN 애플리케이션은 연관된 원격 서버와의 연결을 설정한 다음 플랫폼의 규정된 방식을 사용하여 VPN 터널 인터페이스를 구성할 수 있다. 그러면 MAM 제어 애플리케이션으로부터의 네트워크 트래픽은 사용자가 VPN 애플리케이션을 수동으로 런칭할 필요도 없고, MAM 제어 애플리케이션의 개발자가 코드를 작성하여 그렇게 할 필요도 없이 VPN 터널을 통해 흘러갈 수 있다. 이러한 소개와 함께, 이제 도 6으로 주의가 집중될 것이다.
도 6은 MAM 환경에서 VPN 애플리케이션을 자동으로 시작하기 위한 하나의 예시적인 구현을 도시한다. 특히, 도 6은 지금까지 설명한 클라이언트 디바이스들 중 대표적인 클라이언트 디바이스(600)를 도시한다. 클라이언트 디바이스(600)는 운영 체제(OS)(605) 및 도 2의 제어 앱(210)과 같은 MAM 제어 앱(610)을 포함한다.
일부 예시적인 시나리오에서, MAM 제어 앱(610)은 앞서 논의된 바와 같이 (예를 들어, 기업 정책을 구현하는) MAM 제어 앱(610)의 동작을 제어하는 데 사용되는 MAM 컴포넌트(615)를 포함하도록 구성된다. MAM 컴포넌트(615)는 소프트웨어 개발 키트(라이브러리라고도 알려짐)(620)를 포함하도록 갖추어지거나 구성될 수 있다. 일부 경우에, MAM 컴포넌트(615)와 SDK(620)는 동일하다. 따라서, 일부 실시예에서, MAM 제어 애플리케이션(610)은 MAM 원리에 따라 기업 정책에 기초하여 MAM 제어 애플리케이션의 동작을 제한하거나 한정하는 MAM 컴포넌트(615)를 포함한다. 이러한 한정의 한 예로서, 정책은 MAM 제어 애플리케이션이 기업 데이터와 상호 작용할 때 VPN만 사용할 것을 요구할 수 있다. 한정의 다른 예로서, 정책은 MAM 제어 애플리케이션이 사용자에게 특정 수준의 인증을 필요로 함을 요구할 수 있다.
앞서 논의한 바와 같이, 정책은 MAM 제어 앱(610)의 동작을 제어하는 데 사용된다. SDK(620)는 VPN 터널이 사용되어야 한다고 적시하는 정책을 비롯한 해당 정책을 획득하고 구현하도록 구성될 수 있다.
하나의 예시적인 기법에서, SDK(620)는 메시지(630)를 통해 클라이언트 디바이스(600)의 스토리지(storage)(625)와 통신할 수 있다. 스토리지(625)는 어떤 이전 시점에 클라이언트 디바이스(600)에서 수신되었을 수 있는 정책(635)을 캐싱하거나 그와 달리 저장할 수 있다. 이러한 의미에서, SDK(620)는 정책(635)을 획득하기 위해 로컬 스토리지 저장소를 쿼리할 수 있다.
다른 예에서, SDK(620)는 정책(650A)을 보유할 수 있는 원격 스토리지(650)에 액세스하기 위해 네트워크(640)를 통해 서버(645)와 통신할 수 있다. 이러한 의미에서, SDK(620)는 원격 위치에서 정책(650A)을 획득할 수 있다.
SDK(620)가 정책(635, 650A)을 획득하는 방법에 관계없이 SDK(620)는 해당 정책을 사용하여 다수의 동작을 수행한다. 예를 들어, 정책은 MAM 제어 앱(610)이 사용 중일 때 또는 아마 MAM 제어 앱(610)의 사용자 인터페이스(UI)가 클라이언트 디바이스(600)의 포그라운드로 옮겨질 때 VPN 터널이 개시되어야 하는지를 적시할 수 있다. 실제로, 나중에 보다 자세히 설명되는 바와 같이, 정책은 임의의 개수의 명시된 조건 또는 기준에 기초하여 VPN 터널이 개시되어야 한다고 적시할 수 있다.
SDK(620)는 MAM 제어 앱(610)의 한 부분이기 때문에(즉, SDK(620)는 MAM 제어 앱(610)에 내장되어 있음), SDK(620)는 MAM 제어 앱(610)이 런칭될 때 런칭될 것이다. 그런 다음 SDK(620)는 OS(605)와 통신하여, 아마 MAM 제어 앱(610)의 UI가 표면으로 드러나는 때(즉, 클라이언트 디바이스의 디스플레이의 포그라운드로 옮겨질 때)와 같은 MAM 제어 앱(610)의 다양한 상태를 결정할 수 있다.
SDK(620)는 이제 다양한 기준(예를 들어, 아마 UI가 포그라운드로 옮겨지는 것)에 기초하여 VPN 애플리케이션(655)이 런칭되어야 할지 아닐지를 지정할 수 있는 정책을 갖고 있기 때문에, SDK(620)는 기준 또는 조건이 만족되거나 또는 미리 결정된 향후 기간 내에 만족될 때 VPN 애플리케이션(655)의 자동 시작(660)(런칭(660A)으로도 알려짐)을 트리거할 수 있다. 이러한 자동 시작에 대한 더 자세한 내용은 나중에 제공될 것이다.
정책은 VPN 애플리케이션의 자동 시작을 트리거하기 위해 임의의 유형의 조건 또는 기준을 명시할 수 있다. 위에서 시사한 바와 같이, 하나의 예시적인 조건은 MAM 제어 애플리케이션의 UI가 포그라운드로 옮겨질 때일 수 있다. 다른 예시적인 조건은 MAM 제어 애플리케이션이 네트워크 통신을 송신하거나 수신하는 시나리오를 포함할 수 있다. 다른 예시적인 조건은 클라이언트 디바이스에 Wi-Fi 기능이 켜져 있는 시나리오를 포함할 수 있다.
따라서, 정책은 임의의 유형의 조건 또는 기준을 명시할 수 있다. 해당 조건 또는 기준이 만족될 때, SDK는 자동으로 VPN 애플리케이션을 시작할 수 있다.
SDK(620)는 VPN 애플리케이션(655)을 자동 시작(660)하게 할 수 있고, 그런 다음 VPN 애플리케이션(655)은 네트워크 통신(670)이 MAM 제어 앱(610)으로부터 또는 MAM 제어 애플리케이션(610)으로 전달, 잠재적으로는 서버(645)로 전달될 수 있는 VPN 터널(665)을 개시할 수 있다. VPN 애플리케이션(655)을 자동으로 트리거하고, 그런 다음 VPN 애플리케이션이 VPN 터널(665)을 개시하는 프로세스는 표준 플랫폼 제공 인터-프로세스 통신(inter-process communication, IPC)을 사용하여, 이를테면 OS(605)와 통신함으로써 또는 잠재적으로는 OS(605)와 연관된 통신을 인터셉트함으로서 수행될 수 있다. 또한, VPN 터널(665)은 클라이언트 디바이스(600)에서 실행되는 다른 MAM 제어 애플리케이션에 의해 사용될 수 있다.
이와 관련하여, 클라이언트 디바이스(600)가 MAM 환경을 호스팅하거나 포함한다 하더라도, VPN 애플리케이션(655)은 SDK(620)의 구현 정책의 결과로서 자동으로 트리거되거나 시작될 수 있다. 달리 말하면, VPN 애플리케이션(655)은 MAM 제어 앱(610)을 동작하기 위해 실행되는 로직과 독립적으로 VPN 터널(665)을 개시한다. 즉, 일단 VPN 애플리케이션(655)이 SDK(620)를 통해 트리거되면, VPN 애플리케이션(655)은 SDK(620)와 독립적으로 동작하여 VPN 터널(665)을 개시할 수 있다. 한 번 더 이러한 자동 시작 프로세스에 대한 더 자세한 내용이 곧 제공될 것이다.
따라서, 일부 실시예에서, MAM 제어 애플리케이션과 통합된 라이브러리(예를 들어, SDK)는 클라이언트 디바이스의 운영 체제와 통신하도록 구성될 수 있다. 이 라이브러리는 운영 체제와의 통신에 기초하여 MAM 제어 애플리케이션의 사용자 인터페이스(UI)가 차후에 클라이언트 디바이스의 포그라운드로 옮겨질 때 또는 몇몇 다른 명시된 조건이 발생할 때를 결정할 수 있다. 이를 위해, 라이브러리는 OS와 상호 작용하여 UI가 언제 표면으로 드러날지, 현재 표면으로 드러나고 있는지, 이미 표면으로 드러났는지를 결정할 수 있다. 라이브러리는 (i) UI가 차후에 미리 결정된 기간 내에 포그라운드로 옮겨질 것이라는 결정, (ii) UI가 현재 포그라운드로 옮겨지는 중이라는 결정, 또는 (iii) UI가 이미 포그라운드로 옮겨졌다는 결정에 응답하여 VPN 애플리케이션을 트리거하여 VPN 터널을 개시한다. UI가 이미 포그라운드로 옮겨졌으면, 라이브러리는 UI가 표면으로 드러난 후에(즉, 포그라운드로 옮겨진 후에) 미리 결정된 기간 내에 VPN 애플리케이션을 트리거하도록 구성될 수 있다. 해당 기간은 임의의 기간으로 설정될 수 있다.
앞에서, 마이크로 VPN 애플리케이션에 대해 언급하였다. 전통적으로, 마이크로 VPN 애플리케이션은 해당 마이크로 VPN 애플리케이션의 근원 애플리케이션(즉, 마이크로 VPN 애플리케이션이 내장된 애플리케이션)이 런칭될 때 자동으로 시작될 수 있었다. 특히, 그러나, 마이크로 VPN 애플리케이션(또는 간단히 "마이크로 VPN")은 VPN 프로토콜과 네트워크 인터셉트 로직을 해당 근원 애플리케이션에 내장해야 한다는 것과 다수의 애플리케이션 간의 공유 연결의 부족으로 인해 종종 덜 바람직하다. 반면에, 개시된 실시예는 다수의 상이한 애플리케이션을 향한 다수의 연결을 호스팅하도록 구성된 VPN 애플리케이션을 자동으로 시작할 수 있다.
이와 관련하여, VPN 애플리케이션은 플랫폼 VPN 프레임워크를 사용할 수 있으며, 디바이스 관리와 함께 또는 디바이스 관리 없이 사용될 수 있다. 뿐만 아니라, VPN 애플리케이션을 사용하는 것은 마이크로 VPN을 사용하는 것의 단점을 피할 수 있다. 따라서, 개시된 실시예는 MAM 환경에서 VPN 애플리케이션을 자동으로 시작할 수 있다. 이러한 원리는 (MDM 환경 또는 MAM 환경 중 어느 하나에서) 마이크로 VPN을 자동으로 시작하는 것과는 별개이며 MDM 환경에서 VPN 애플리케이션을 자동으로 시작하는 것과도 별개이다. 이러한 의미에서, 개시된 원리는 본연의 운영 체제 및 플랫폼 VPN 기능성을 활용하여 공유 VPN 터널을 자동 시작하고 관리할 수 있는 애플리케이션 계층 관리자(즉, SDK)를 제공한다. 공유 VPN 터널을 개시하는 VPN 애플리케이션은 기업 정책에 기초하여 자동으로 트리거되거나 개시될 수 있다. 뿐만 아니라, VPN 애플리케이션은 다수의 MAM 제어 애플리케이션이 동일한 VPN 터널을 사용할 수 있도록 할 수 있다. 뿐만 아니라, VPN 애플리케이션이 이미 실행 중이면, 관리 계층은 제 2 MAM 제어 애플리케이션을 VPN 터널에 연결하기 위해 실제로 아무것도 해야 할 필요가 없다. 대신에, VPN 애플리케이션이 플랫폼 메커니즘을 사용하여 자신이 VPN 기능성을 제공하고 있음을 OS에게 알리는 전용 VPN 애플리케이션이라는 이유로 해당 연결은 OS 메커니즘을 통해 자동으로 발생할 수 있다.
도 7은 MAM 환경에서 VPN 애플리케이션이 자동으로 시작되는 때와 방법을 결정하기 위한 정책이 획득될 수 있는 다른 시나리오를 도시한다. 구체적으로, 도 7은 클라이언트 디바이스(700), MAM 제어 앱(705), 및 MAM 제어 앱(705)의 일부로 포함된 SDK(710)를 도시한다. 도 6에서 MAM 컴포넌트(615)가 MAM 제어 앱(610)의 일부인 반면, 도 7은 MAM 컴포넌트(715)가 MAM 제어 앱(705)의 일부가 아니고 오히려 클라이언트 디바이스(700)에서 동작하는 독립 컴포넌트인 시나리오를 도시한다. 이 시나리오에서, MAM 컴포넌트(715)는 클라이언트 디바이스(700)에서 중앙 제어 컴포넌트로서 동작할 수 있고 잠재적으로 다수의 MAM 제어 앱을 제어할 수 있는 반면, 도 6의 MAM 컴포넌트(615)는 하나의 MAM 제어 앱(610)만을 제어한다. 그렇기는 하지만, MAM 컴포넌트(715)는 여전히 클라이언트 디바이스(700)에 대해 완전한 제어권을 갖지 못하고; 대신에 명시된 애플리케이션만 제어할 수 있다는 점에서 제한적인 제어권을 가지고 있다. 따라서, 일부 실시예에서, 클라이언트 디바이스는 MAM 제어 애플리케이션의 동작을 제한하거나 한정하는 MAM 컴포넌트를 포함한다.
앞서 언급한 SDK는 OS와 통신하여 MAM 제어 애플리케이션의 UI가 언제 표면으로 드러날지 또는 포그라운드로 옮겨질지를 결정하도록 구성된다. SDK는 또한 UI가 이미 포그라운드로 옮겨졌는지 또는 현재 포그라운드로 옮겨지는 중인지를 결정할 수 있다. 이러한 시나리오는 VPN 애플리케이션을 자동으로 시작하기 위한 트리거링 조건이 될 수 있다. 도 8은 그 예시이다.
도 8은 초기에 클라이언트 디바이스의 백그라운드(805) 위치에 있는 예시적인 UI(800)를 도시한다. UI(800)은 MAM 제어 애플리케이션의 UI이다. 앞서 언급한 SDK는 클라이언트 디바이스의 OS와 통신하여 UI(800)가 포그라운드(805)에서 백그라운드(810)로 천이할 때를 결정할 수 있다. 일부 경우에, SDK는 OS와의 통신에 기초하여 UI(800)가 천이할 기간(815)을 결정할 수 있다. 이와 관련하여, SDK는 UI(800)가 현재 포그라운드(810)로 천이 중인지를 결정할 수 있고/있거나 UI(800)가 나중에 천이할 때에 대한 향후 기간을 결정할 수 있다. SDK는 또한 UI(800)가 이미 포그라운드(810)로 천이되었는지 여부도 결정할 수 있다.
UI(800)가 포그라운드(810)로 천이되기 전에, 천이 중에 또는 천이 후의 미리 결정된 기간 내에, 자동 시작(820)에 의해 표시된 바와 같이, SDK는 구현될 때, VPN 애플리케이션이 자동으로 활성화 또는 런칭되는 결과를 가져오는 정책을 구현할 수 있다. 즉, SDK는 선택적으로 OS와 통신하여 VPN 애플리케이션의 자동 시작을 트리거할 수 있다. 유사하게, UI가 포그라운드(825)에서 백그라운드(830)로 천이할 때, 자동 정지(835)에 의해 표시된 바와 같이, SDK는 (예를 들어, OS와의 통신을 통해) 그러한 천이를 검출하여 VPN 터널 및/또는 VPN 애플리케이션을 자동으로 정지 또는 종료할 수 있다. 이제 이러한 특징에 대한 더 자세한 내용이 도 9 및 10의 흐름도와 관련하여 논의될 것이다.
예시적인 방법
이제 다음의 논의는 수행될 수 있는 다수의 방법과 방법 행위를 언급한다. 방법 행위가 특정 순서로 논의되거나 흐름도에서 특정 순서로 발생하는 것으로 예시될 수 있지만, 특별히 언급되지 않는 한 특정 순서는 요구되지 않거나, 또는 어떤 행위가 그 행위가 수행되기 전에 완료되는 다른 행위에 종속하기 때문에 요구되지 않는다.
도 9는 클라이언트 디바이스에서 동작하는 모바일 애플리케이션 관리(MAM) 환경에서 가상 사설 네트워크(VPN)를 자동 시작하기 위한 예시적인 방법(900)의 흐름도를 예시한다. 예를 들어, 방법(900)은 도 6의 클라이언트 디바이스(600) 또는 도 7의 클라이언트 디바이스(700)를 사용하여 구현될 수 있다. 유사하게, 방법(900)은 도 1의 BYOD 아키텍처(100)에서 구현될 수 있다. 개시된 동작 중 적어도 일부의 동작은 컴퓨터 프로세서를 통해 구현될 수 있는 앞서 언급한 SDK에 의해 수행될 수 있다. 더욱이, 개시된 동작은 컴퓨터 프로세서에 의해 더 높은 레벨에서 수행될 수 있다. 예를 들어, 프로세서는 무엇보다도 SDK의 동작, OS의 동작 및 VPN 애플리케이션의 동작을 수행할 수 있다. 프로세서에 관한 자세한 내용은 나중에 도 11과 관련하여 제공될 것이다.
초기에, MAM 제어 애플리케이션이 클라이언트 디바이스에서 런칭 중에 있다는 것을 결정하는 행위(행위(905))가 있다. "런칭"라는 용어는 폭넓게 해석되어야 하며, MAM 제어 애플리케이션의 초기 시작 또는 아마 심지어는 MAM 제어 애플리케이션이 재개되고 애플리케이션의 UI가 디바이스의 포그라운드로 옮겨지는 시나리오를 포함할 수 있다. MAM 제어 애플리케이션이 런칭 중에 있다는 것을 결정하는 프로세스는 앞서 언급한 SDK를 통해 수행될 수 있다. 특히, SDK는 MAM 제어 애플리케이션이 런칭 중에 있을 때 트리거될 수 있다. 유사하게, SDK는 OS와 통신하여 MAM 제어 애플리케이션에 관한 추가 정보, 이를테면 아마 MAM 제어 애플리케이션의 UI가 백그라운드에서 포그라운드로 천이할 때를 결정할 수 있다.
MAM 제어 애플리케이션이 런칭 중에 있다는 것을 결정한 후에, 행위(910)는 정책을 쿼리하고 정책에 기초하여 VPN 애플리케이션을 자동 시작할지를 결정하는 단계를 수반한다. 한 예로서, 도 6의 SDK(620)는 클라이언트 디바이스에 로컬로 저장되거나 캐싱되는 정책(635)을 쿼리하고/하거나, 원격으로 저장된 정책(650A)을 쿼리할 수 있다. 정책은 기업 정책이며, MAM 제어 애플리케이션이 사용 중일 때 VPN이 사용되어야 하는지 아닌지를 지정할 수 있다. SDK(또는 라이브러리)는 정책을 해석한 다음, 이를테면 VPN 애플리케이션의 자동 트리거 또는 자동 시작을 촉진함으로써, 정책을 적용할 수 있으며, 그런 다음 VPN 애플리케이션은 VPN 터널을 개시할 수 있다(즉, VPN 애플리케이션은 VPN 터널을 개시하도록 구성된다). 정책이 원격으로 저장될 때, 정책을 쿼리하는 프로세스는 선택적으로 원격 서버로부터 클라이언트 디바이스로 로컬로 정책을 다운로드하는 것을 트리거할 수 있다.
VPN 애플리케이션이 (UI가 포그라운드로 옮겨지는 시나리오를 비롯하여) MAM 제어 애플리케이션의 런칭 후에 또는 그와 동시에 자동 시작될 것이라고 표시하는 정책에 기초하여, 행위(915)는 적어도 MAM 제어 애플리케이션에 의해 사용 가능한 VPN 터널을 개시하는 VPN 애플리케이션을 자동으로 트리거링 또는 자동 시작하는 단계를 포함한다. 예를 들어, 도 6의 정책(635, 650A)은 MAM 제어 앱(610)의 UI가 포그라운드로 옮겨질 때 VPN이 사용되어야 한다는 것을 표시할 수 있다.
일부 경우에, VPN 애플리케이션은 MAM 제어 애플리케이션의 UI가 차후에 클라이언트 디바이스의 포그라운드로 옮겨질 것이라는 결정을 내린 후에 VPN 터널을 개시한다. 예를 들어, SDK는, OS와 통신함으로써 (또는 아마 OS로부터 통신을 인터셉트함으로써), UI가 나중에 포그라운드로 옮겨질 때를 결정할 수 있다. 한 예로서, 통신은 인터셉트되거나 수신될 수 있는데, 여기서 통신은 지정된 시간(예를 들어, 아마 1 밀리초(millsecond, ms), 2 ms, 3 ms, 4 ms, 5 ms 등) 내에 UI가 표면으로 드러나고 포그라운드로 옮겨질 것이라고 표시한다. 이 통신에 기초하여, SDK는 VPN 애플리케이션의 런칭 또는 자동 시작을 트리거할 수 있다.
이러한 의미에서, MAM 제어 애플리케이션 내에 통합된 라이브러리(예를 들어, SDK)는 MAM 제어 애플리케이션의 사용자 인터페이스(UI)가 차후에 클라이언트 디바이스의 포그라운드로 옮겨질 때를 식별한다. 더욱이, 라이브러리는 VPN 애플리케이션이 자동 시작될 것인지를 결정하기 위해 정책을 쿼리하는 메시지를 제출할 수 있다.
일부 경우에, VPN 애플리케이션은 MAM 제어 애플리케이션이 런칭된 후에 그리고 MAM 제어 애플리케이션의 UI가 포그라운드로 옮겨지기 전에 VPN 터널을 개시한다. 일부 경우에, VPN 애플리케이션은 UI가 포그라운드로 옮겨진 후에 명시된 시간 프레임 내에 VPN 터널을 개시한다. 예를 들어, 명시된 시간 프레임은 1 밀리초(ms), 2 ms, 3 ms, 4 ms, 5 ms 등일 수 있다.
그런 다음 행위(920)는 MAM 제어 애플리케이션으로 또는 그로부터 전송된 네트워크 통신이, MAM 제어 애플리케이션과 연관된 정책에 기초하여 자동으로 트리거되거나 자동 시작된 VPN 애플리케이션에 의해 제공되는 VPN 터널을 통과하게 하는 단계를 포함한다. 예를 들어 설명하면, 도 6의 VPN 터널(665)이 VPN 애플리케이션(655)에 의해 개시된 후에, 네트워크 통신(670)은 VPN 터널(665)을 통해 전송될 수 있다. VPN 애플리케이션에 의해 제공되는 VPN 터널은 클라이언트 디바이스에서 실행되는 다수의 상이한 애플리케이션(예를 들어, 다수의 상이한 MAM 제어 앱)으로부터의 다수의 네트워크 통신을 호스팅하도록 구성될 수 있다.
(점선 테두리로 표시된 바와 같이), 행위(925)는 VPN 애플리케이션이 자동 시작된 이후 특정 시점에 VPN 애플리케이션이 VPN 터널을 종료하게 하는 단계를 포함할 수 있다. 이러한 종료는 (i) MAM 제어 애플리케이션이 닫혔거나 동작을 중단했거나 또는 아마 닫히는 과정 중에 있다는 결정의 결과로서, (ii) UI가 포그라운드에서 백그라운드로 천이하는 중이라는 (또는 천이되었다는) 결정의 결과로서, (iii) 몇몇 다른 조건이 충족되는 결과로서 발생할 수 있다. 다른 조건의 예로는 사용자가 자기의 디바이스를 잠그거나 디바이스가 꺼지게 하는 시나리오를 들 수 있다.
도 10은 개시된 SDK에 의해 수행될 수도 있는 예시적인 방법(1000)의 다른 흐름도를 도시한다. 구체적으로, 방법(1000)은 개시된 클라이언트 디바이스와 같은 컴퓨터 시스템 상에서 동작하는 모바일 애플리케이션 관리(MAM) 환경에서 가상 사설 네트워크(VPN)를 자동 시작하기 위한 다양한 동작을 제시한다.
행위(1005)는 MAM 제어 애플리케이션이 컴퓨터 시스템에서 런칭 중이라는 것을 결정한다. 앞서 설명한 바와 같이, 이러한 동작은 SDK가 디바이스의 OS와 상호 작용하여 MAM 제어 애플리케이션이 런칭하는 방법을 결정함으로써 수행될 수 있다. 런칭은 MAM 제어 애플리케이션의 UI가 포그라운드로 옮겨지는 시나리오를 포함한다.
MAM 제어 애플리케이션이 런칭 중이라는 것을 결정한 후에, 행위(1010)는 정책을 쿼리하는 단계를 포함한다. 그 다음에 행위(1015)는 MAM 제어 애플리케이션의 사용자 인터페이스(UI)가 컴퓨터 시스템의 포그라운드로 옮겨진 후에 또는 옮겨지는 동안 VPN 애플리케이션이 VPN 터널을 자동으로 개시할 것이라는 것을 정책이 표시하고 있다는 것을 결정하는 단계를 포함한다. 정책은 기업에 의해 제어되며, SDK는 클라이언트 디바이스에서 해당 정책을 구현할 수 있다.
MAM 제어 애플리케이션의 UI가 차후에 포그라운드로 옮겨질 것이라는 표시에 응답하여, 행위(1020)는 VPN 애플리케이션으로 하여금 적어도 MAM 제어 애플리케이션에 의해 사용 가능한 VPN 터널을 개시하도록 하는 단계를 포함한다. 일부 실시예에서, 표시는 MAM 제어 애플리케이션의 UI가 포그라운드로 옮겨질 것을 표시할 수 있다. 뿐만 아니라, 이 표시는 컴퓨터 시스템의 운영 체제에 의해 제공될 수 있다.
또한, 행위(1025)는 MAM 제어 애플리케이션으로 또는 그로부터 전송되는 네트워크 통신이 VPN 애플리케이션에 의해 제공되는 VPN 터널을 통과하게 하는 단계를 포함한다. 따라서, 개시된 실시예는 특히 MAM 환경에서 VPN 애플리케이션을 자동으로 시작할 수 있는 결과로서, 다양하고 실질적인 이득을 가져다 준다.
예시적인 컴퓨터/컴퓨터 시스템
이제 본 명세서에 설명된 동작들 중 임의의 동작을 포함할 수 있는/있거나 수행하기 위해 사용될 수 있는 예시적인 컴퓨터 시스템(1100)을 예시하는 도 11에 대해 주의가 집중될 것이다. 컴퓨터 시스템(1100)은 다양한 상이한 형태를 취할 수 있다. 예를 들어, 컴퓨터 시스템(1100)은 태블릿(1100A), 데스크톱 또는 랩톱(1100B), 웨어러블 디바이스(1100C), 모바일 디바이스 또는 스탠드얼론 디바이스로서 구현될 수 있다. 줄임표(1100D)는 컴퓨터 시스템(1100)이 임의의 다른 형태도 취할 수 있음을 나타낸다. 컴퓨터 시스템(1100)은 또한 컴퓨터 시스템(1100)과 통신하는 하나 이상의 연결된 컴퓨팅 컴포넌트/디바이스를 포함하는 분산 시스템일 수 있다.
가장 기본적인 구성에서, 컴퓨터 시스템(1100)은 다양한 상이한 컴포넌트를 포함한다. 도 11은 컴퓨터 시스템(1100)이 하나 이상의 프로세서(1105)("하드웨어 프로세싱 유닛"으로도 알려짐) 및 스토리지(1110)를 포함하는 것을 도시한다.
프로세서(들)(1105)와 관련하여, 본 명세서에 설명된 기능성은 적어도 부분적으로 하나 이상의 하드웨어 로직 컴포넌트(예를 들어, 프로세서(들)(1105))에 의해 수행될 수 있다는 것이 인식될 것이다. 예를 들어, 제한 없이, 사용될 수 있는 예시적인 유형의 하드웨어 로직 컴포넌트/프로세서는 필드 프로그래머블 게이트 어레이(Field-Programmable Gate Array, "FPGA"), 프로그램 특정 또는 애플리케이션 특정 집적 회로(Program-Specific or Application-Specific Integrated Circuit)("ASIC"), 프로그램 특정 표준 제품(Program-Specific Standard Product)("ASSP"), 시스템 온 칩 시스템(System-On-A-Chip System)("SOC"), 복합 프로그래머블 로직 디바이스(Complex Programmable Logic Device)("CPLD"), 중앙 프로세싱 유닛(Central Processing Unit)("CPU"), 그래픽 프로세싱 유닛(Graphical Processing Unit)("GPU") 또는 임의의 다른 유형의 프로그래머블 하드웨어를 포함한다.
본 명세서에서 사용되는 바와 같이, "실행 가능한 모듈", "실행 가능한 컴포넌트", "컴포넌트", "모듈", "엔진" 또는 심지어 "SDK"라는 용어는 하드웨어 프로세싱 유닛 또는 컴퓨터 시스템(1100)에서 실행될 수 있는 소프트웨어 객체, 루틴 또는 메서드를 지칭할 수 있다. 본 명세서에 설명된 상이한 컴포넌트, 모듈, 엔진 및 서비스는 컴퓨터 시스템(1100)에서 실행되는 객체 또는 프로세서로서 (예를 들어, 별도의 스레드로서) 구현될 수 있다.
스토리지(1110)는 휘발성, 비휘발성 또는 이들 둘의 일부 조합일 수 있는 물리적 시스템 메모리일 수 있다. 본 명세서에서 "메모리"라는 용어는 또한 물리적 저장 매체와 같은 비휘발성 대용량 스토리지를 지칭하는 데 사용될 수 있다. 컴퓨터 시스템(1100)이 분산되어 있으면, 처리, 메모리 및/또는 저장 역량도 분산될 수 있다.
스토리지(1110)는 실행 가능 명령어(1115)를 포함하는 것으로 도시된다. 실행 가능 명령어(1115)는 다양한 방법에 설명된 동작과 같은 개시된 동작을 수행하기 위해 컴퓨터 시스템(1100)의 프로세서(1105)에 의해 실행 가능한 명령어를 나타낸다.
개시된 실시예는 아래에서 더 상세하게 논의되는 바와 같이, 예를 들어, (프로세서(들)(1105)와 같은) 하나 이상의 프로세서 및 (스토리지(1110))와 같은) 시스템 메모리와 같은 컴퓨터 하드웨어를 포함하는 특수 목적 또는 범용 컴퓨터를 포함하거나 활용할 수 있다. 실시예는 또한 컴퓨터 실행 가능 명령어 및/또는 데이터 구조를 전달하거나 저장하기 위한 물리적 및 다른 컴퓨터 판독 가능 매체를 포함한다. 이러한 컴퓨터 판독 가능 매체는 범용 또는 특수 목적 컴퓨터 시스템에 의해 액세스될 수 있는 임의의 사용 가능한 매체일 수 있다. 컴퓨터 실행 가능 명령어를 데이터 형태로 저장하는 컴퓨터 판독 가능 매체는 "물리적 컴퓨터 저장 매체" 또는 "하드웨어 저장 디바이스"이다 컴퓨터 실행 가능 명령어를 전달하는 컴퓨터 판독 가능 매체는 "전송 매체"이다 따라서, 제한이 아닌 예시적인 것으로서, 현재의 실시예는 적어도 두 개의 뚜렷이 상이한 종류의 컴퓨터 판독 가능 매체: 컴퓨터 저장 매체 및 전송 매체를 포함할 수 있다.
컴퓨터 저장 매체("하드웨어 저장 디바이스"로도 알려짐)는 컴퓨터 판독 가능 하드웨어 저장 디바이스, 이를테면 RAM, ROM, EEPROM, CD-ROM, RAM, 플래시 메모리, 상변화 메모리(phase-change memory)("PCM") 또는 다른 유형의 메모리에 기초한 솔리드 스테이트 드라이브(solid state drive("SSD"), 또는 다른 광학 디스크 스토리지, 자기 디스크 스토리지 또는 다른 자기 저장 디바이스, 또는 컴퓨터 실행 가능 명령어, 데이터 또는 데이터 구조의 형태로 원하는 프로그램 코드 수단을 저장하고 범용 또는 특수 목적 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체이다. 컴퓨터 시스템(1100)은 또한 네트워크(1120)를 통해 외부 센서(예를 들어, 하나 이상의 원격 카메라) 또는 디바이스에 (유선 또는 무선 연결을 통해) 연결될 수 있다. 예를 들어, 컴퓨터 시스템(1100)은 데이터를 획득하거나 처리하기 위해 임의의 수의 디바이스 또는 클라우드 서비스와 통신할 수 있다. 일부 경우에, 네트워크(1120)는 자체가 클라우드 네트워크일 수 있다. 뿐만 아니라, 컴퓨터 시스템(1100)은 또한 하나 이상의 유선 또는 무선 네트워크를 통해 컴퓨터 시스템(1100)과 관련하여 설명된 임의의 처리를 수행하도록 구성된 원격/별도의 컴퓨터 시스템(들)에 연결될 수 있다.
네트워크(1120)와 같은 "네트워크"는 컴퓨터 시스템, 모듈 및/또는 다른 전자 디바이스 사이에서 전자 데이터를 전송할 수 있도록 하는 하나 이상의 데이터 링크 및/또는 데이터 스위치로서 정의된다. 정보가 네트워크(유선, 무선 또는 유선과 무선의 조합)를 통해 컴퓨터로 전송되거나 제공될 때, 컴퓨터는 그 연결을 적절히 전송 매체라고 여긴다. 컴퓨터 시스템(1100)은 네트워크(1120)와 통신하는 데 사용되는 하나 이상의 통신 채널을 포함할 것이다. 전송 매체는 데이터 또는 원하는 프로그램 코드 수단을 컴퓨터 실행 가능 명령어의 형태 또는 데이터 구조의 형태로 전달하는 데 사용될 수 있는 네트워크를 포함한다. 또한, 이러한 컴퓨터 실행 가능 명령어는 범용 또는 특수 목적 컴퓨터에 의해 액세스될 수 있다. 위의 조합은 또한 컴퓨터 판독 가능 매체의 범위 내에 포함되어야 한다. 다양한 컴퓨터 시스템 컴포넌트에 접근하면, 컴퓨터 실행 가능 명령 또는 데이터 구조 형태의 프로그램 코드 수단이 전송 매체로부터 컴퓨터 저장 매체로 (또는 그 반대로) 자동으로 전송될 수 있다. 예를 들어, 네트워크 또는 데이터 링크를 통해 수신된 컴퓨터 실행 가능 명령어 또는 데이터 구조는 네트워크 인터페이스 모듈(예를 들어, 네트워크 인터페이스 카드(network interface card) 또는 "NIC") 내의 RAM에 버퍼링된 다음 결국 컴퓨터 시스템 RAM으로 및/또는 컴퓨터 시스템에 있는 낮은 휘발성의 컴퓨터 저장 매체로 전송될 수 있다. 따라서, 컴퓨터 저장 매체는 전송 매체를 또한 (또는 주로) 활용하는 컴퓨터 시스템 컴포넌트에 포함될 수 있다는 것을 이해해야 한다.
컴퓨터 실행 가능(또는 컴퓨터 해석 가능) 명령어는, 예를 들어, 범용 컴퓨터, 특수 목적 컴퓨터 또는 특수 목적 프로세싱 디바이스로 하여금 특정 기능 또는 기능 그룹을 수행하게 하는 명령어로 구성된다. 컴퓨터 실행 가능 명령어는, 예를 들어, 바이너리, 어셈블리 언어와 같은 중간 포맷 명령어, 또는 심지어 소스 코드일 수 있다. 주제가 구조적 특징 및/또는 방법론적 행위에 특유한 언어로 설명되었지만, 첨부된 청구범위에서 정의된 주제가 반드시 위에서 설명된 특징 또는 위에서 설명한 행위로 제한되는 것이 아니라는 것을 이해해야 한다. 오히려, 설명된 특징 및 행위는 청구항을 구현하는 예시적인 형태로서 개시된다. 관련 기술분야의 통상의 기술자라면 실시예는 퍼스널 컴퓨터, 데스크톱 컴퓨터, 랩톱 컴퓨터, 메시지 프로세서, 휴대용 디바이스, 멀티 프로세서 시스템, 마이크로프로세서 기반 또는 프로그래머블 소비자 가전, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 모바일 텔레폰, PDA, 페이저, 라우터, 스위치 등을 비롯한 많은 유형의 컴퓨터 시스템 구성을 갖춘 네트워크 컴퓨팅 환경에서 실시될 수 있다는 것을 인식할 것이다. 실시예는 또한 네트워크를 통해 (유선 데이터 링크, 무선 데이터 링크, 또는 유선과 무선 데이터 링크의 조합에 의해) 링크된 로컬 및 원격 컴퓨터 시스템이 각각 작업(예를 들어, 클라우드 컴퓨팅, 클라우드 서비스 등)을 수행하는 분산 시스템 환경에서도 실시될 수 있다. 분산 시스템 환경에서, 프로그램 모듈은 로컬 및 원격 메모리 저장 디바이스 둘 모두에 위치할 수 있다.
전술한 내용을 고려하여 보면, 본 발명은 위에서 개요 설명한 바와 같이, 그리고 다음 양태에 의해 예시된 바와 같이, 다수의 상이한 구성으로 구현될 수 있다.
1. 클라이언트 디바이스에서 동작하는 모바일 애플리케이션 관리(MAM) 환경에서 가상 사설 네트워크(VPN)를 자동 시작하기 위한 방법으로서, 상기 방법은:
클라이언트 디바이스에서 MAM 제어 애플리케이션이 런칭 중이라는 것을 결정하는 단계와,
MAM 제어 애플리케이션이 런칭 중이라는 것을 결정한 후에, 정책을 쿼리하고 정책에 기초하여 VPN 애플리케이션을 자동 시작할지를 결정하는 단계와,
VPN 애플리케이션이 MAM 제어 애플리케이션의 런칭 후에 또는 그와 동시에 자동 시작될 것이라고 표시하는 정책에 기초하여, 적어도 MAM 제어 애플리케이션에 의해 사용 가능한 VPN 터널을 개시하도록 구성된 VPN 애플리케이션을 자동 시작하는 단계와,
MAM 제어 애플리케이션으로 또는 그로부터 전송되는 네트워크 통신이 VPN 터널을 통과하게 하는 단계를 포함한다.
2. 선행하는 양태 1에 따른 방법으로서, 여기서 VPN 애플리케이션은 MAM 제어 애플리케이션의 사용자 인터페이스(UI)가 차후에 클라이언트 디바이스의 포그라운드로 옮겨질 것이라는 결정을 내린 후에 VPN 터널을 개시한다.
3. 선행하는 양태 1 또는 양태 2에 따른 방법으로서, 여기서 VPN 애플리케이션은 MAM 제어 애플리케이션이 런칭된 후에 그리고 MAM 제어 애플리케이션의 UI가 클라이언트 디바이스의 포그라운드로 옮겨지기 전에 VPN 터널을 개시한다.
4. 선행하는 양태 1 내지 양태 3에 따른 방법으로서, 여기서 MAM 제어 애플리케이션 내에 통합된 라이브러리는 MAM 제어 애플리케이션의 사용자 인터페이스(UI)가 차후에 클라이언트 디바이스의 포그라운드로 옮겨질 때를 식별하며, 여기서 라이브러리는 정책을 쿼리하는 메시지를 제출한다.
5. 선행하는 양태 1 내지 양태 4에 따른 방법으로서, 여기서 정책은 클라이언트 디바이스에 로컬로 캐싱된다.
6. 선행하는 양태 1 내지 양태 5에 따른 방법으로서, 여기서 정책을 쿼리하는 것은 원격 서버로부터 클라이언트 디바이스로 로컬로 정책을 다운로드하는 것을 트리거한다.
7. 선행하는 양태 1 내지 양태 6에 따른 방법으로서, 여기서 MAM 제어 애플리케이션과 통합된 라이브러리는 클라이언트 디바이스의 운영 체제와 통신하고, 여기서 라이브러리는 운영 체제와의 통신에 기초하여, MAM 제어 애플리케이션의 사용자 인터페이스(UI)가 차후에 클라이언트 디바이스의 포그라운드로 옮겨질 때를 결정하며, 여기서 라이브러리는 UI가 차후에 미리 결정된 기간 내에 포그라운드로 옮겨질 것이라는 결정에 응답하여 VPN 애플리케이션을 트리거하여 VPN 터널을 개시한다.
8. 선행하는 양태 1 내지 양태 7에 따른 방법으로서, 여기서 VPN 애플리케이션에 의해 제공되는 VPN 터널은 클라이언트 디바이스에서 실행되는 다수의 상이한 애플리케이션으로부터의 다수의 네트워크 통신을 호스팅하도록 구성된다.
9. 선행하는 양태 1 내지 양태 8에 따른 방법으로서, 여기서 MAM 환경은 MAM 제어 애플리케이션을 제한하도록 동작하지만 클라이언트 디바이스에 설치된 제 2 애플리케이션을 제한하는 것을 삼간다.
10. 선행하는 양태 1 내지 양태 9에 따른 방법으로서, 여기서 방법은 VPN 애플리케이션이 VPN 터널을 종료하도록 하는 단계를 더 포함한다.
11. 컴퓨터 시스템에서 동작하는 모바일 애플리케이션 관리(MAM) 환경에서 가상 사설 네트워크(VPN)를 자동 시작하도록 구성된 컴퓨터 시스템으로서, 상기 컴퓨터 시스템은:
프로세서; 및
프로세서에 의해 실행 가능한 명령어를 저장하는 컴퓨터 판독 가능 하드웨어 저장 디바이스를 포함하되, 명령어는 컴퓨터 시스템으로 하여금 적어도:
MAM 제어 애플리케이션(MAM-controlled application)이 컴퓨터 시스템에서 런칭 중이라는 것을 결정하게 하고; MAM 제어 애플리케이션이 런칭 중이라는 것을 결정한 후에, 정책을 쿼리하고 정책에 기초하여 VPN 애플리케이션을 자동 시작할지를 결정하게 하고;
VPN 애플리케이션이 MAM 제어 애플리케이션의 런칭 후에 또는 그와 동시에 자동 시작될 것이라고 표시하는 정책에 기초하여, 적어도 MAM 제어 애플리케이션에 의해 사용 가능한 VPN 터널을 개시하도록 구성된 VPN 애플리케이션을 자동 시작하게 하고;
MAM 제어 애플리케이션으로 또는 그로부터 전송되는 네트워크 통신이 VPN 터널을 통과하게 하며;
VPN 애플리케이션이 VPN 터널을 종료하게 한다.
12. 선행하는 양태 11에 따른 컴퓨터 시스템으로서, 여기서 VPN 애플리케이션은 MAM 제어 애플리케이션이 동작을 중단했다는 결정에 응답하여 VPN 터널을 종료한다.
13. 선행하는 양태 11 또는 양태 12에 따른 컴퓨터 시스템으로서, 여기서 VPN 애플리케이션은 MAM 제어 애플리케이션의 사용자 인터페이스(UI)가 컴퓨터 시스템의 포그라운드로부터 컴퓨터 시스템의 백그라운드로 천이했다는 결정에 응답하여 VPN 터널을 종료한다.
14. 선행하는 양태 11 내지 양태 13에 따른 컴퓨터 시스템으로서, 여기서 VPN 애플리케이션은 MAM 제어 애플리케이션이 닫혔다는 결정에 응답하여 VPN 터널을 종료한다.
15. 선행하는 양태 11 내지 양태 14에 따른 컴퓨터 시스템으로서, 여기서 MAM 제어 애플리케이션은 MAM 제어 애플리케이션의 동작을 제한하는 MAM 컴포넌트를 포함한다.
16. 선행하는 양태 11 내지 양태 15에 따른 컴퓨터 시스템으로서, 여기서 컴퓨터 시스템은 MAM 제어 애플리케이션의 동작을 제한하는 MAM 컴포넌트를 포함한다.
17. 선행하는 양태 11 내지 양태 16에 따른 컴퓨터 시스템으로서, 여기서 VPN 애플리케이션은 MAM 제어 애플리케이션을 동작하기 위해 실행되는 로직과 독립적으로 VPN 터널을 개시한다.
18. 선행하는 양태 11 내지 양태 17에 따른 컴퓨터 시스템으로서, 여기서 VPN 터널을 개시하는 VPN 애플리케이션을 자동으로 트리거하는 것은 표준 플랫폼 제공 프로세스 간 통신(IPC)을 사용하여 수행된다.
19. 컴퓨터 시스템에서 동작하는 모바일 애플리케이션 관리(MAM) 환경에서 가상 사설 네트워크(VPN)를 자동 시작하도록 구성된 컴퓨터 시스템으로서, 상기 컴퓨터 시스템은:
프로세서; 및
프로세서에 의해 실행 가능한 명령어를 저장하는 컴퓨터 판독 가능 하드웨어 저장 디바이스를 포함하되, 명령어는 컴퓨터 시스템으로 하여금 적어도:
MAM 제어 애플리케이션이 컴퓨터 시스템에서 런칭 중이라는 것을 결정하게 하고;
MAM 제어 애플리케이션이 런칭 중이라는 것을 결정한 후에, 정책을 쿼리하게 하고;
MAM 제어 애플리케이션의 사용자 인터페이스(UI)가 컴퓨터 시스템의 포그라운드로 옮겨진 후에 또는 옮겨지는 동안 VPN 애플리케이션이 VPN 터널을 자동으로 개시할 것이라는 것을 정책이 표시하고 있다는 것을 결정하게 하고;
MAM 제어 애플리케이션의 UI가 차후에 포그라운드로 옮겨질 것이라는 표시에 응답하여, VPN 애플리케이션이 적어도 MAM 제어 애플리케이션에 의해 사용 가능한 VPN 터널을 개시하게 하며;
MAM 제어 애플리케이션으로 또는 그로부터 전송되는 네트워크 통신이 VPN 애플리케이션에 의해 제공되는 VPN 터널을 통과하게 한다.
20. 선행하는 양태 19에 따른 컴퓨터 시스템으로서, 여기서 MAM 제어 애플리케이션의 UI가 포그라운드로 옮겨질 것이라는 것을 표시하는 표시는 컴퓨터 시스템의 운영 체제에 의해 제공된다.
본 발명은 그 특성에서 벗어나지 않고 다른 구체적인 형태로 구현될 수 있다. 설명된 실시예는 모든 측면에서 예시적인 것으로만 간주되어야 하며 제한적인 것으로 간주되어서는 안 된다. 그러므로 본 발명의 범위는 전술한 설명에 의해서라기 보다는 첨부된 청구범위에 의해 나타내진다. 청구항의 의미와 동등성 범위 내에 있는 모든 변경 사항은 그 범위 내에 포괄되어야 한다.

Claims (15)

  1. 클라이언트 디바이스에서 동작하는 모바일 애플리케이션 관리(mobile application management, MAM) 환경에서 가상 사설 네트워크(virtual private network, VPN)를 자동 시작하기 위한 방법으로서,
    상기 클라이언트 디바이스에서 MAM 제어 애플리케이션(MAM-controlled application)이 런칭 중인 것이라는 것을 결정하는 단계와,
    상기 MAM 제어 애플리케이션이 런칭 중이라는 것을 결정한 후에, 정책을 쿼리하고 상기 정책에 기초하여 VPN 애플리케이션을 트리거할지를 결정하는 단계와,
    상기 VPN 애플리케이션이 상기 MAM 제어 애플리케이션의 런칭 후에 또는 그와 동시에 트리거될 것이라고 표시하는 상기 정책에 기초하여, 적어도 상기 MAM 제어 애플리케이션에 의해 사용 가능한 VPN 터널을 개시하는 상기 VPN 애플리케이션을 자동으로 트리거하는 단계와,
    상기 MAM 제어 애플리케이션으로 또는 그로부터 전송된 네트워크 통신이, 상기 MAM 제어 애플리케이션과 연관된 상기 정책에 기초하여 자동으로 트리거된 상기 VPN 애플리케이션에 의해 제공되는 상기 VPN 터널을 통과하게 하는 단계를 포함하는
    VPN 자동 시작 방법.
  2. 제 1 항에 있어서,
    상기 VPN 애플리케이션은 상기 MAM 제어 애플리케이션의 사용자 인터페이스(user interface, UI)가 차후에 상기 클라이언트 디바이스의 포그라운드(foreground)로 옮겨질 것이라는 결정을 내린 후에 상기 VPN 터널을 개시하는
    VPN 자동 시작 방법.
  3. 제 1 항에 있어서,
    상기 VPN 애플리케이션은 상기 MAM 제어 애플리케이션이 런칭된 후에 그리고 상기 MAM 제어 애플리케이션의 UI가 상기 클라이언트 디바이스의 포그라운드로 옮겨지기 전에 상기 VPN 터널을 개시하는
    VPN 자동 시작 방법.
  4. 제 1 항에 있어서,
    상기 MAM 제어 애플리케이션 내에 통합된 라이브러리는 상기 MAM 제어 애플리케이션의 사용자 인터페이스(UI)가 차후에 상기 클라이언트 디바이스의 포그라운드로 옮겨질 때를 식별하며, 상기 라이브러리는 상기 정책을 쿼리하는 메시지를 제출하는
    VPN 자동 시작 방법.
  5. 제 1 항에 있어서,
    상기 정책은 상기 클라이언트 디바이스에 로컬로 캐싱되는
    VPN 자동 시작 방법.
  6. 제 1 항에 있어서,
    상기 정책을 쿼리하는 것은 원격 서버로부터 상기 클라이언트 디바이스로 로컬로 정책을 다운로드하는 것을 트리거하는
    VPN 자동 시작 방법.
  7. 제 1 항에 있어서,
    상기 MAM 제어 애플리케이션과 통합된 라이브러리는 상기 클라이언트 디바이스의 운영 체제와 통신하고,
    상기 라이브러리는, 상기 운영 체제와의 통신에 기초하여, 상기 MAM 제어 애플리케이션의 사용자 인터페이스(UI)가 차후에 상기 클라이언트 디바이스의 포그라운드로 옮겨질 때를 결정하고,
    상기 라이브러리는 상기 UI가 차후에 미리 결정된 기간 내에 포그라운드로 옮겨질 것이라는 결정에 응답하여 상기 VPN 애플리케이션을 트리거하여 상기 VPN 터널을 개시하는
    VPN 자동 시작 방법.
  8. 제 1 항에 있어서,
    상기 VPN 애플리케이션에 의해 제공되는 상기 VPN 터널은 상기 클라이언트 디바이스에서 실행되는 다수의 상이한 애플리케이션으로부터의 다수의 네트워크 통신을 호스팅하도록 구성되는
    VPN 자동 시작 방법.
  9. 제 1 항에 있어서,
    상기 MAM 환경은 상기 MAM 제어 애플리케이션을 제한하도록 동작하지만 상기 클라이언트 디바이스에 설치된 제 2 애플리케이션을 제한하는 것을 삼가는
    VPN 자동 시작 방법.
  10. 제 1 항에 있어서,
    상기 VPN 애플리케이션이 상기 VPN 터널을 종료하게 하는 단계를 더 포함하는
    VPN 자동 시작 방법.
  11. 컴퓨터 시스템에서 동작하는 모바일 애플리케이션 관리(mobile application management, MAM) 환경에서 가상 사설 네트워크(virtual private network, VPN)를 자동 시작하도록 구성된 상기 컴퓨터 시스템으로서,
    프로세서와,
    상기 프로세서에 의해 실행 가능한 명령어를 저장하는 컴퓨터 판독 가능 하드웨어 저장 디바이스를 포함하되, 상기 명령어는 상기 컴퓨터 시스템으로 하여금 적어도:
    MAM 제어 애플리케이션(MAM-controlled application)이 상기 컴퓨터 시스템에서 런칭 중이라는 것을 결정하게 하고,
    상기 MAM 제어 애플리케이션이 런칭 중이라는 것을 결정한 후에, 정책을 쿼리하고 상기 정책에 기초하여 VPN 애플리케이션을 트리거할지를 결정하게 하고,
    상기 VPN 애플리케이션이 상기 MAM 제어 애플리케이션의 런칭 후에 또는 그와 동시에 트리거될 것이라고 표시하는 상기 정책에 기초하여, 적어도 상기 MAM 제어 애플리케이션에 의해 사용 가능한 VPN 터널을 개시하는 상기 VPN 애플리케이션을 자동으로 트리거하게 하고,
    상기 MAM 제어 애플리케이션으로 또는 그로부터 전송된 네트워크 통신이, 상기 MAM 제어 애플리케이션과 연관된 상기 정책에 기초하여 자동으로 트리거된 상기 VPN 애플리케이션에 의해 제공되는 상기 VPN 터널을 통과하게 하고,
    상기 VPN 애플리케이션이 상기 VPN 터널을 종료하게 하는
    컴퓨터 시스템.
  12. 제 11 항에 있어서,
    상기 VPN 애플리케이션은 상기 MAM 제어 애플리케이션이 동작을 중단했다는 결정에 응답하여 상기 VPN 터널을 종료하는
    컴퓨터 시스템.
  13. 제 11 항에 있어서,
    상기 VPN 애플리케이션은 상기 MAM 제어 애플리케이션의 사용자 인터페이스(UI)가 상기 컴퓨터 시스템의 포그라운드로부터 상기 컴퓨터 시스템의 백그라운드(background)로 천이했다는 결정에 응답하여 상기 VPN 터널을 종료하는
    컴퓨터 시스템.
  14. 제 11 항에 있어서,
    상기 VPN 애플리케이션은 상기 MAM 제어 애플리케이션이 닫혔다는 결정에 응답하여 상기 VPN 채널을 종료하는
    컴퓨터 시스템.
  15. 제 11 항에 있어서,
    상기 MAM 제어 애플리케이션은 상기 MAM 제어 애플리케이션의 동작을 제한하는 MAM 컴포넌트를 포함하는
    컴퓨터 시스템.
KR1020237043342A 2021-06-15 2022-05-18 앱 전용 관리를 통한 모바일 vpn 자동 시작 KR20240021816A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/348,541 US11909723B2 (en) 2021-06-15 2021-06-15 Mobile VPN autostart through app-only management
US17/348,541 2021-06-15
PCT/US2022/029733 WO2022265791A1 (en) 2021-06-15 2022-05-18 Mobile vpn autostart through app-only management

Publications (1)

Publication Number Publication Date
KR20240021816A true KR20240021816A (ko) 2024-02-19

Family

ID=82058311

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237043342A KR20240021816A (ko) 2021-06-15 2022-05-18 앱 전용 관리를 통한 모바일 vpn 자동 시작

Country Status (5)

Country Link
US (2) US11909723B2 (ko)
EP (1) EP4356277A1 (ko)
KR (1) KR20240021816A (ko)
CN (1) CN117501270A (ko)
WO (1) WO2022265791A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220417217A1 (en) * 2021-06-29 2022-12-29 Charter Communications Operating, Llc Method and Apparatus for Automatically Switching Between Virtual Private Networks

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8578443B2 (en) * 2011-06-01 2013-11-05 Mobileasap, Inc. Real-time mobile application management
US9043480B2 (en) * 2011-10-11 2015-05-26 Citrix Systems, Inc. Policy-based application management
US8806570B2 (en) * 2011-10-11 2014-08-12 Citrix Systems, Inc. Policy-based application management
US20140032733A1 (en) * 2011-10-11 2014-01-30 Citrix Systems, Inc. Policy-Based Application Management
US20140109176A1 (en) * 2012-10-15 2014-04-17 Citrix Systems, Inc. Configuring and providing profiles that manage execution of mobile applications
US20140109171A1 (en) * 2012-10-15 2014-04-17 Citrix Systems, Inc. Providing Virtualized Private Network tunnels
US10277578B2 (en) * 2015-01-05 2019-04-30 Citrix Systems, Inc. Securing network activity managed by operating systems
US9735943B2 (en) * 2015-05-11 2017-08-15 Citrix Systems, Inc. Micro VPN tunneling for mobile platforms
US10678867B2 (en) * 2017-08-16 2020-06-09 Citrix Systems, Inc. Systems and methods for web collaboration
US9948612B1 (en) * 2017-09-27 2018-04-17 Citrix Systems, Inc. Secure single sign on and conditional access for client applications
US10761863B2 (en) * 2018-09-28 2020-09-01 Citrix Systems, Inc. Mobile application management by run-time insertion of a replacement instrumentation object into a mobile application process
US10698703B2 (en) * 2018-09-28 2020-06-30 Citrix Systems, Inc. Mobile application management by run-time insertion of a substitute application class loader into a mobile application process

Also Published As

Publication number Publication date
US20240137343A1 (en) 2024-04-25
US11909723B2 (en) 2024-02-20
CN117501270A (zh) 2024-02-02
US20220400100A1 (en) 2022-12-15
WO2022265791A1 (en) 2022-12-22
EP4356277A1 (en) 2024-04-24

Similar Documents

Publication Publication Date Title
US11991051B2 (en) Providing mobile device management functionalities
US10701082B2 (en) Application with multiple operation modes
US10089458B2 (en) Separate, disposable execution environment for accessing unverified content
JP2019526842A (ja) 仮想ブラウザ統合
CN114208112A (zh) 用于可扩展网络服务的连接池
EP3265949B1 (en) Operating system management
JP2018525858A (ja) モバイルプラットフォーム用のマイクロvpnトンネリング
TW201703485A (zh) 編排實體與虛擬交換器以執行安全邊界之系統及方法
US11303641B2 (en) Methods and systems for accessing remotely stored files using virtual applications
US20240137343A1 (en) Mobile vpn autostart through app-only management
WO2020150978A1 (en) Optimized network selection
US20210014683A1 (en) Systems and methods for secure endpoint connection and communication
US11722461B2 (en) Connecting client devices to anonymous sessions via helpers
KR20210150479A (ko) 클라이언트 디바이스에 대한 전용 셀룰러 네트워크 연결을 사용한 데스크탑 가상화
US10462050B1 (en) Systems and methods for chaining virtual private networks
JP2023040221A (ja) プロバイダネットワークサービス拡張
US20160366173A1 (en) Security of VDI Clones