KR20150059651A - 보안 모델에 기초한 소프트웨어 프로그램의 기능 제한 - Google Patents

보안 모델에 기초한 소프트웨어 프로그램의 기능 제한 Download PDF

Info

Publication number
KR20150059651A
KR20150059651A KR1020157012175A KR20157012175A KR20150059651A KR 20150059651 A KR20150059651 A KR 20150059651A KR 1020157012175 A KR1020157012175 A KR 1020157012175A KR 20157012175 A KR20157012175 A KR 20157012175A KR 20150059651 A KR20150059651 A KR 20150059651A
Authority
KR
South Korea
Prior art keywords
widget
data processing
processing system
software program
sensitive
Prior art date
Application number
KR1020157012175A
Other languages
English (en)
Other versions
KR101622300B1 (ko
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 KR20150059651A publication Critical patent/KR20150059651A/ko
Application granted granted Critical
Publication of KR101622300B1 publication Critical patent/KR101622300B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application

Abstract

보안 모델에 기초하여 소프트웨어 프로그램의 기능을 제한하기 위한 시스템, 방법, 루틴 및/또는 기술이 설명된다. 하나 이상의 실시예는, 위젯이 취하고자 하는 하나 이상의 동작에 기초하여 소프트웨어 프로그램(예를 들어, 위젯)의 기능을 제한하는 것을 포함할 수 있다. 하나 이상의 실시예는, 모바일 장치의 잠금 스크린 상에 위치하고/하거나 이 잠금 스크린을 통해 액세스가능한 위젯의 기능을 제한하는 것을 포함할 수 있다. 하나 이상의 실시예는, 시스템이 비인증된 상태에 있을 때 위젯이 애플리케이션으로 하여금 민감한 액션을 수행하게 하는 것을 방지하는 것을 포함할 수 있다. 하나 이상의 실시예는, 민감한 동작이 취해질 것이라는 것을 나타내는 함수를 위젯이 포함한다면, 위젯이 모바일 장치의 특정한 스크린(예를 들어, 잠금 스크린) 상에 설치 및/또는 디스플레이되는 것을 방지하는 것을 포함할 수 있다.

Description

보안 모델에 기초한 소프트웨어 프로그램의 기능 제한{LIMITING THE FUNCTIONALITY OF A SOFTWARE PROGRAM BASED ON A SECURITY MODEL}
관련 출원들에 대한 상호 참조
본 출원은, 2012년 10월 4일자로 출원된 미국 가특허 출원 제61/709,778호 및 2012년 12월 10일자로 출원된 미국 특허 출원 제13/709,634호로부터 우선권을 주장한다. 이 가출원의 개시물은 참조로 완전히 본 명세서에 포함되어 있다.
기술분야
본 개시물은 소프트웨어 프로그램의 기능을 제한하는 것에 관한 것이며, 더 구체적으로는, 소프트웨어 프로그램의 의도된 액션을 검사하며 이 소프트웨어 프로그램의 기능을 보안 모델에 기초하여 제한하기 위한 하나 이상의 시스템, 방법, 루틴 및/또는 기술에 관한 것이다.
스마트폰과 같은 모바일 장치는 더욱 진보하게 되었다. 일부 모바일 장치는, 컴퓨터 코드, 예를 들어, 운영 체제(OS)를 구현하는 코드 및/또는 소프트웨어 개발 키트(SDK)로부터의 코드를 실행하는 프로세서를 병합한다. 일부 모바일 장치는 제3자(즉, 운영 체제를 제작한 측 이외의 당사자)에 의해 생성된 코드, 예를 들어, 제3자 애플리케이션 및/또는 위젯을 실행할 수 있다. 일부 모바일 장치는, 예를 들어, 모바일 장치 상의 물리적 버튼이 눌러질 때 모바일 장치의 스크린 상에 디스플레이되는 잠금 스크린(lock screen)을 포함한다. 사용자는 모바일 장치의 모든 피쳐와 기능으로의 완전한 액세스(full access)를 얻기 위해 잠금 스크린을 통해 크리덴셜을 입력하는 것이 요구될 수 있다.
통상적인 그리고 전통적인 접근법의 추가적인 제한 및 단점은, 도면을 참조하여 본 출원의 나머지 부분에 제시되는 본 발명의 일부 양태와 이러한 시스템의 비교를 통하여 통상의 기술자에게 명백해질 것이다.
본 개시물은 보안 모델에 기초하여 소프트웨어 프로그램의 기능을 제한하기 위한 하나 이상의 시스템, 방법, 루틴 및/또는 기술을 설명한다. 소프트웨어 프로그램의 기능은 위젯이 취하고자 하는 하나 이상의 동작에 기초하여 제한될 수 있다. 하나 이상의 시스템, 방법, 루틴 및/또는 기술은, 모바일 장치의 잠금 스크린 상에 위치하고/하거나 이 잠금 스크린을 통해 액세스가능한 소프트웨어 프로그램(예를 들어, 위젯)의 기능을 제한하는 것을 포함할 수 있다. 하나 이상의 시스템, 방법, 루틴 및/또는 기술은, 시스템이 비인증된 상태에 있을 때 위젯이 애플리케이션으로 하여금 민감한 액션(sensitive actions)을 수행하게 하는 것을 방지하는 것을 포함할 수 있다. 위젯은, 일단 시스템이 인증된 상태에 진입하면, 애플리케이션으로 하여금 민감한 액션을 수행하게 하는 것이 허용될 수 있다. 하나 이상의 시스템, 방법, 루틴 및/또는 기술은, 민감한 동작(sensitive operation)이 취해질 것이라는 것을 나타내는 함수(function)를 위젯이 포함한다면, 위젯이 모바일 장치의 특정한 스크린 및/또는 슬롯(예를 들어, 잠금 스크린) 상에 설치 및/또는 디스플레이되는 것을 방지하는 것을 포함할 수 있다.
본 개시물의 이들 그리고 다른 이점들, 양태들 및 신규 특징들뿐만 아니라 그 예시된 실시예의 상세사항들은 다음의 설명과 도면들로부터 보다 완전히 이해될 것이다. 전술한 일반적 설명은 예시적이며 설명적일 뿐이고, 청구되는 본 개시물을 제한하는 것이 아님이 이해되어야 한다.
수개의 특징과 이점이 다음의 개시물에서 설명되며, 이 개시물에서는 예로서 다음의 도면들을 이용하여 수개의 실시예들이 설명된다.
도 1은 네트워크 셋업의 예시적인 컴포넌트, 접속 및 상호작용을 나타내는 블록도를 도시하는데, 이러한 네트워크 셋업에서 본 개시물의 하나 이상의 실시예가 유용할 수 있다.
도 2는 본 개시물의 하나 이상의 실시예에 따른 예시적인 모바일 장치 또는 스마트폰의 예시를 도시한다.
도 3a는 본 개시물의 하나 이상의 실시예에 따른 모바일 장치 또는 스마트폰의 예시적인 잠금 스크린의 예시를 도시한다.
도 3b는 본 개시물의 하나 이상의 실시예에 따른 모바일 장치 또는 스마트폰의 예시적인 잠금 스크린의 예시를 도시한다.
도 4a는 보안 모델에 기초하여 소프트웨어 프로그램의 기능을 제한하기 위한 방법에서의 예시적인 단계들을 나타내는 흐름도의 일부를 도시한다.
도 4b는 보안 모델에 기초하여 소프트웨어 프로그램의 기능을 제한하기 위한 방법에서의 예시적인 단계들을 나타내는 흐름도의 일부를 도시한다.
도 4c는 보안 모델에 기초하여 소프트웨어 프로그램의 기능을 제한하기 위한 방법에서의 예시적인 단계들을 나타내는 흐름도의 일부를 도시한다.
도 5는 본 개시물의 하나 이상의 실시예에 따른 모바일 장치 또는 스마트폰 내에 포함될 수 있는 예시적인 데이터 처리 시스템의 블록도를 도시한다.
다양한 모바일 장치는 제3자(즉, 운영 체제를 제작한 측 이외의 당사자)에 의해 생성된 코드, 예를 들어, 제3자 애플리케이션 및/또는 위젯을 실행할 수 있다. "애플리케이션"이라는 용어는 모바일 장치 상에서 실행되는 소프트웨어 프로그램을 지칭할 수 있고, 애플리케이션은 다양한 기능을 수행할 수 있고/있거나, 데이터 또는 정보를 저장, 액세스 및/또는 수정할 수 있다. "위젯"이라는 용어는 모바일 장치 상에서 실행되는 소프트웨어 프로그램을 지칭할 수 있고, 위젯은, 특히, 하나 이상의 애플리케이션에 대한 인터페이스, 예를 들어, 애플리케이션(들)에 의해 제공되는 전체 사용자 인터페이스와 비교하여 정보 및/또는 기능으로의 단축 액세스를 사용자에게 제공하는 인터페이스를 사용자에게 제공할 수 있다. 예를 들어, 위젯은 애플리케이션에 관련된 다양한 중요한 정보 부분을 사용자에게 제시하는 인터페이스를 디스플레이할 수 있다. 다른 예로서, 위젯은, 사용자가 애플리케이션에 관하여 취할 수 있는 다양한 기능이나 액션을 사용자에게 제시하는 인터페이스를 디스플레이할 수 있다. 위젯 및/또는 위젯의 인터페이스는, 사용자가 위젯을 신속히 발견하여 상호작용할 수 있도록, 컴퓨터 또는 모바일 장치의 그래픽 사용자 인터페이스(GUI)에서의 소정 위치로부터 액세스가능할 수 있다. 예를 들어, 위젯은, 데스크톱 스크린, 태스크바(taskbar), 론치 패드(launch pad), 또는 GUI의 다른 용이하게 액세스가능한 위치 상에 배치될 수 있다.
사용자는 애플리케이션에 관련된 기능이나 액션이 취해져야 한다는 것을 나타내기 위해 위젯과 상호작용할 수 있다. 그러면, 위젯은 (예를 들어, OS를 통해) 애플리케이션이 이 기능이나 액션을 구동 또는 실행하게 할 수 있다. 애플리케이션은 (예를 들어, OS를 통해) 애플리케이션이 취한 기능이나 액션에 관련된 정보를 위젯에 리턴하고, 위젯은 이 정보를 디스플레이할 수 있다. 이것은, 애플리케이션, 위젯 및 이들 사이의 상호작용의 일례일 뿐이라는 것이 이해되어야 한다. 본 개시물을 명확히 설명하기 위하여, 여기서 제공된 다양한 설명은 전술된 것과 유사한 방식으로 위젯 및/또는 애플리케이션을 언급할 수 있다. 그러나, 본 개시물은 일반적으로 다른 타입의 위젯, 애플리케이션 및 소프트웨어 프로그램도 고려한다. 예를 들어, 여기서 설명된 시스템, 방법, 루틴 및/또는 기술은, 컴퓨터, 예를 들어, 데스크톱 컴퓨터, 모바일 컴퓨터, 태블릿 컴퓨터, 스마트폰, PDA, 모바일 장치 등의 상에서 실행되는 위젯, 애플리케이션 및/또는 소프트웨어 프로그램에 대해 일반적으로 유사한 방식으로 적용될 수 있다.
다양한 위젯(또는 일반적으로는 소프트웨어 프로그램)은, 예를 들어, 사용자 입력에 응답하여, 다양한 동작의 수행을 시도할 수 있다. 이들 동작은, 애플리케이션(또는 일반적으로는 다른 소프트웨어 프로그램)이, 액션, 예를 들어, 데이터를 변경, 액세스 및/또는 수정할 수 있는 액션을 수행하게 하는 것을 의도할 수 있다. 일부 경우에, 위젯은, 민감한 동작, 예를 들어, 애플리케이션이 민감한 데이터 및/또는 설정을 액세스, 변경 및/또는 삭제하게 하거나, 또는 다른 방식으로 애플리케이션이 의도되지 않거나, 비인가되거나 또는 민감한 액션을 수행하게 할 수 있는 액션을 수행하려고 시도할 수 있다. 일례로서, 전자 메일 애플리케이션에 관련된 위젯은, 전자 메일 애플리케이션이 중요한 전자 메일 메시지를 삭제하게 하는 동작을 수행하려고 시도할 수 있다. 다른 예로서, 위젯은 위젯에 대한 바람직하지 않은 사용자 입력에 응답하여 애플리케이션이 의도되지 않은 액션을 수행하게 할 수 있다. 바람직하지 않은 사용자 입력은, 모바일 장치의 비인가된 사용자로부터, 또는 모바일 장치와 우연히 상호작용하는 사용자로부터, 예를 들어, 스마트폰의 터치스크린에 우연히 터치(즉, "폴싱(falsing)")함으로써 비롯될 수 있다.
본 개시물은 보안 모델에 기초하여 소프트웨어 프로그램의 기능을 제한하기 위한 하나 이상의 시스템, 방법, 루틴 및/또는 기술을 설명한다. 하나 이상의 시스템, 방법, 루틴 및/또는 기술은, 위젯이 취하고자 하는 하나 이상의 동작에 기초하여 위젯의 기능을 제한하는 것을 포함할 수 있다. 하나 이상의 시스템, 방법, 루틴 및/또는 기술은, 모바일 장치의 잠금 스크린 상에 위치하고/하거나 이 잠금 스크린을 통해 액세스가능한 위젯의 기능을 제한하는 것을 포함할 수 있다. 하나 이상의 시스템, 방법, 루틴 및/또는 기술은, 시스템이 비인증된 상태에 있을 때 위젯이 애플리케이션으로 하여금 민감한 액션을 수행하게 하는 것을 방지하는 것을 포함할 수 있다. 위젯은, 일단 시스템이 인증된 상태에 진입하면, 애플리케이션으로 하여금 민감한 액션을 수행하게 하는 것이 허용될 수 있다. 하나 이상의 시스템, 방법, 루틴 및/또는 기술은, 미래에, 예를 들어, 조건이 발생할 때 취해질 동작을 나타내는 함수(예를 들어, 위젯에 의해 인보크되는 함수)를 포함하는 운영 체제(OS) 및/또는 소프트웨어 개발 키트(SDK)와 함께 동작하도록 구성될 수 있다. 하나 이상의 시스템, 방법, 루틴 및/또는 기술은, 위젯이 이러한 함수를 포함하며 이 함수가 민감한 동작이 취해질 것이라는 것을 나타낸다면, 위젯이 모바일 장치의 특정한 스크린(예를 들어, 잠금 스크린) 상에 설치 및/또는 디스플레이되는 것을 방지하는 것을 포함할 수 있다.
도 1은 네트워크 셋업(100)의 예시적인 컴포넌트, 접속 및 상호작용을 나타내는 블록도를 도시하는데, 이러한 네트워크 셋업에서 본 개시물의 하나 이상의 실시예가 유용할 수 있다. 네트워크 셋업(100)은, 도 1에 도시된 것보다 더 적거나 추가의 컴포넌트, 접속 및 상호작용을 포함할 수도 있다는 것을 이해해야 한다. 도 1은 컴포넌트, 접속 및 상호작용의 훨씬 더 큰 네트워크일 수 있는 것의 일부에 포커싱한다. 네트워크 셋업(100)은, 하나 이상의 모바일 장치(예를 들어, 모바일 장치(102)), 하나 이상의 네트워크(예를 들어, 네트워크(104)) 및 다수의 서버(예를 들어, 애플리케이션 및/또는 위젯 서버(106, 108, 110))를 포함할 수 있다. 네트워크(104)는, 데이터 처리 시스템, 서버, 모바일 장치 및 아마도 다른 장치와 같은 다양한 장치들 사이에 통신 링크를 제공하는데 이용되는 매체일 수 있다. 네트워크(104)는, 무선 또는 유선 통신 링크와 같은 접속을 포함할 수 있다. 일부 예에서, 네트워크(104)는, 서로 통신하기 위해 TCP IP(Transmission Control Protocol Internet Protocol) 프로토콜 모음을 이용하는 게이트웨이와 네트워크의 전세계적 집합을 나타낸다. 일부 예에서, 네트워크(104)는, 인트라넷, LAN(local area network), WAN(wide area network) 및/또는 인터넷을 포함하거나 그 일부일 수 있다.
네트워크 셋업(100)은, 하나 이상의 모바일 장치, 예를 들어, 모바일 장치(102)를 포함할 수 있다. 모바일 장치는, 하나 이상의 네트워크(104)를 통해 하나 이상의 애플리케이션 및/또는 위젯 서버(106, 108, 110)와 통신할 수 있다. 모바일 장치(102)는, 하나 이상의 애플리케이션 및/또는 위젯 서버(106, 108, 110)로부터 하나 이상의 제3자 애플리케이션 및/또는 위젯을 다운로드할 수 있다. 모바일 장치(102)는 하나 이상의 제3자 애플리케이션 및/또는 위젯을 설치 및/또는 실행할 수 있다. 또한, 모바일 장치(102)는 하나 이상의 제1자 애플리케이션 및/또는 위젯(예를 들어, 운영 체제의 생성자에 의해 제작된 애플리케이션 및/또는 위젯)을 설치 및/또는 실행할 수 있다. 도 1과 본 명세서의 다양한 설명은 본 개시물의 시스템, 방법, 루틴 및/또는 기술을 설명하기 위해 모바일 장치의 예를 이용할 수 있지만, 다른 장치들, 예를 들어, 데스크톱 컴퓨터, 모바일 컴퓨터, 태블릿 컴퓨터, 스마트폰, PDA 등도 또한 작동할 수 있다는 것을 이해해야 한다.
도 2는 본 개시물의 하나 이상의 실시예에 따른 예시적인 모바일 장치(202) 또는 스마트폰의 예시를 도시한다. 모바일 장치(202)는, 예를 들어, 도 1의 모바일 장치(102)와 실질적으로 유사할 수 있다. 모바일 장치(202)는, 운영 체제(OS)를 구현하는 코드, 다른 네이티브 코드(즉, 스마트폰 및/또는 운영 체제의 생성자에 의해 제작된 코드), 및 제3자에 의해 개발된 코드(예를 들어, 제3자 애플리케이션 및/또는 위젯)를 포함한 컴퓨터 코드를 구동 또는 실행하는 프로세서를 포함할 수 있다. 모바일 장치(202)는, 하나 이상의 소프트웨어 개발 키트(SDK) 및/또는 하나 이상의 애플리케이션 프로그래밍 인터페이스(API)로부터의 코드를 또한 구동 또는 실행할 수 있다. 도 2는 모바일 장치(202) 상에서 구동 또는 실행될 수 있는 코드 또는 함수의 다양한 예시적인 부분을 도시한다.
모바일 장치(202)는, 하나 이상의 위젯, 예를 들어, 위젯(204)에 관련된 코드를 포함할 수 있다. 모바일 장치(202)는 하나 이상의 애플리케이션, 예를 들어, 애플리케이션(208)에 관련된 코드를 포함할 수 있다. 위젯(204)은, 하나 이상의 애플리케이션(예를 들어, 애플리케이션(208))이, 하나 이상의 액션, 예를 들어, 민감한 데이터를 변경, 액세스 및/또는 삭제할 수 있는 액션을 수행하게 할 수 있다. 따라서, 위젯(204)은 애플리케이션(208)과 통신(또는 통신하려고 시도)할 수 있다. 본 개시물의 시스템, 방법, 루틴 및/또는 기술은, 위젯(204) 대신에 제1 일반 소프트웨어 프로그램(general software program)을 고려하고, 애플리케이션(208) 대신에 제2 일반 소프트웨어 프로그램을 고려한다는 점을 이해해야 한다. 도 2의 예시는 일례일 뿐이다.
모바일 장치(202)는 위젯 분석기(206)에 관련된 코드를 포함할 수 있다. 위젯 분석기(206)는 위젯(예를 들어, 위젯(204))의 의도된 동작을 분석 및/또는 검사할 수 있고, 보안 모델에 기초하여 이 동작을 허용 또는 방지할 수 있다. 보안 모델은, 사용자, 애플리케이션, 프로세스 및/또는 데이터에 대한 액세스 권한과 같은 보안 정책을 명시하고 시행하기 위한 방식을 지칭할 수 있다. 예를 들어, 보안 모델은, 민감한 액션인, 애플리케이션에 의해 취해진 액션의 타입 및/또는 민감한 데이터로 간주되는 데이터의 타입을 명시할 수 있다. 다른 예로서, 보안 모델은, 장치가 다양한 상태에 있는 동안에 어느 타입의 액션들이 실행될 수 있는지를 명시할 수 있다. 위젯 분석기(206)에 의해 방지될 수 있는 민감한 동작의 일례로서, 위젯(204)은, (예를 들어, 보안 모델에 따라) 민감하다고 결정되는 로컬 데이터(즉, 모바일 장치(202) 상에 저장된 데이터)를 액세스, 디스플레이, 수정 및/또는 삭제하려고 시도할 수 있다. 민감한 동작의 다른 예로서, 위젯(204)은, 예를 들어, 애플리케이션을 통해 원격 데이터(즉, 원격 서버 상에 저장된 데이터)를 액세스, 디스플레이, 수정 및/또는 삭제하려고 시도할 수 있다. 민감한 동작의 다른 예로서, 위젯(204)은 민감하다고 결정되는 로컬 시스템 프로세스 및/또는 설정에 액세스하려고 시도할 수 있다. 민감한 동작의 다른 예로서, 위젯(204)은 민감하다고 결정되는 원격 프로세스 및/또는 설정에 액세스하려고 시도할 수 있다. 위젯 분석기(206)는, 위젯이 취하고자 하는 하나 이상의 액션에 기초하여 위젯(예를 들어, 위젯(204))의 기능을 제한할 수 있다. 예를 들어, 위젯 분석기(206)는, 예를 들어, 모바일 장치(202)가 비인증된 상태에 있을 때, 위젯(204)이 애플리케이션(208)으로 하여금 액션을 수행하게 하는 것을 방지할 수 있다. 더 일반적으로, 위젯 분석기(206)는 위젯(204)이 애플리케이션(208)과 통신하는 것을 방지할 수 있다. 위젯 분석기(206)는, 일단 시스템이 인증된 상태에 진입하면, 위젯(204)이 애플리케이션으로 하여금 액션을 수행하게 하는 것을 허용할 수 있다. 더 일반적으로, 위젯 분석기(206)는 위젯(204)이 애플리케이션(208)과 통신하는 것을 허용할 수 있다.
위젯 분석기(206)는 인증 모듈(210)(예를 들어, 잠금 스크린 및/또는 인증 코드)과 통신하여, 위젯(204)에 의해 개시된 동작이 실행되도록 허용되어야 하는지 및/또는 허용되어야 할 때를 결정할 수 있다. 인증 모듈(210)은, 사용자가, 크리덴셜, 예를 들어, 선택적으로는 사용자-정의되는 PIN, 패턴, 패스워드 등을 입력하는 것을 허용할 수 있다. 인증 모듈(210)은 장치가 다양한 상태에 진입하게 할 수 있다. 예를 들어, 모바일 장치(즉, OS 및 연관된 코드)는, 사용자가 인증 모듈(210)을 통해 크리덴셜을 입력했는지에 기초하여 다양한 상태에 있을 수 있다. 사용자가 올바른 크리덴셜을 입력하기 전에, 모바일 장치는 비인증된 상태에 있을 수 있다. 사용자가 올바른 크리덴셜을 입력한 후에, 모바일 장치는 인증된 상태에 있을 수 있다. 위젯 분석기는 모바일 장치가 비인증된 상태에 있을 때 위젯(204)의 기능을 더 많이 제한할 수 있고, 위젯 분석기는 모바일 장치가 인증된 상태에 있을 때 위젯(204)이 동작을 실행할 자유를 더 많이 허용할 수 있다. 상태에 의존하는 이러한 제한은 보안 모델에 의해 정의될 수 있다.
본 개시물의 하나 이상의 실시예에서, 위젯 분석기(206)는, 미래에, 예를 들어, 조건이 발생할 때 취해질 동작을 나타내는 함수(예를 들어, 위젯(204)에 의해 인보크되는 함수)를 포함 및/또는 제공하는 운영 체제(OS) 및/또는 소프트웨어 개발 키트(SDK)와 함께 동작하도록 구성될 수 있다. 이 함수는, 취해질 동작에 관한 정보, 예를 들어, 동작이 어떤 데이터를 액세스, 수정 및/또는 삭제하려고 시도할 수 있는지를 나타낼 수 있다. 다른 예로서, 이 함수는, 동작이 애플리케이션에 관련된 액션을 야기하려고 시도할 것임을 나타낼 수 있다. 다른 예로서, 이 함수는 애플리케이션에 의해 정의되고 위젯에 의해 인보크될 수 있다. 예를 들어, 애플리케이션은 이 함수를 정의한 다음, 이 함수를 위젯에 "부여(lend)"하여, 위젯이 애플리케이션을 대신하여 이 함수를 인보크 및/또는 실행하게 할 수 있다. 위젯 분석기(206)는 위젯을 분석 및/또는 검사하여, 위젯이 임의의 이러한 함수를 포함 또는 인보크하는지를 판정할 수 있다. 위젯이 이러한 함수를 포함 또는 인보크한다면, 위젯 분석기(206)는 의도된 동작 및/또는 액션을 분석할 수 있고, 예를 들어, 보안 모델에 기초하여, 동작 및/또는 액션을 허용 또는 방지할 수 있다.
하나의 특정한 예로서, 본 개시물의 하나 이상의 실시예에 따르면, 운영 체제(및/또는 SDK)는, 위젯이, 미래에, 예를 들어, 조건이 충족되는 것에 응답하여, 개시할 동작을 나타내도록 구성된 하나 이상의 객체, 함수 및/또는 함수의 클래스를 포함 및/또는 제공할 수 있다. 다양한 운영 체제에서, 이러한 함수는 펜딩 인텐트(pending intent) 또는 펜딩 인텐트 함수 또는 객체로 지칭될 수 있다. 여기서 제공된 다양한 설명은 펜딩 인텐트 및/또는 관련된 함수를 언급할 수 있지만, 본 개시물의 시스템, 방법, 루틴 및/또는 기술은 위젯이 미래에 개시할 동작을 나타내는 유사한 함수에도 적용될 수 있다는 것을 이해해야 한다. 위젯(또는 일반적으로는 소프트웨어 프로그램)은 하나 이상의 펜딩 인텐트 함수 또는 객체를 포함 또는 인보크할 수 있다. 펜딩 인텐트는 위젯이 애플리케이션으로 하여금 액션을 수행하게 하거나 애플리케이션을 대신하여 액션을 수행하도록 허용 및/또는 구성할 수 있다. 펜딩 인텐트는 위젯이 애플리케이션으로 하여금 특정한 허가 및/또는 사용자 모델과 함께 액션을 수행하게 하도록 허용 및/또는 구성할 수 있다. 예를 들어, 펜딩 인텐트를 개시하는 것은, 애플리케이션이, 특정한 사용자 허가와 함께 또는 관리자나 시스템 허가와 함께, 특정한 사용자로서 액션을 수행하게 할 수 있다.
운영 체제는 특정한 애플리케이션에 관하여 액션이 취해져야 하는 것을 나타내는 함수를 포함 및/또는 제공할 수 있다. 이러한 함수는 인텐트 또는 인텐트 함수로 지칭될 수 있다. "인텐트"라는 용어는, 인텐트가 활성화될 때 애플리케이션에 의해 실행되거나 애플리케이션으로서 실행될 액션 또는 동작을 명시하는 액션가능한 항목(actionable item)을 지칭할 수 있다. 인텐트는 액션이나 동작을 론칭하는데 필요한 모든 정보를 포함하는 객체일 수 있다. 인텐트는, 함수, 예를 들어, startActivity라 불리는 함수에 의해 활성화 또는 실행될 수 있다. 인텐트는 펜딩 인텐트 함수에 의해 활성화 또는 실행될 수 있다. 인텐트가 활성화되는 경우, 운영 체제는, 예를 들어, 특정한 애플리케이션을 (예를 들어, 특정한 허가 모델과 함께 또는 특정한 사용자로서) 론칭하고, 선택적으로, 애플리케이션이 특정한 액션을 수행하게 함으로써, 액션을 구동 또는 실행할 수 있다. 하나의 특정한 예로서, 운영 체제는, 애플리케이션의 명칭을 수락하도록 설계 및/또는 구성된 활동 관리자를 포함할 수 있고, 예를 들어, 특정한 사용자로서, 그 애플리케이션을 론칭할 수 있다. 일단 액션이 구동 또는 실행되면, OS는, 그 액션 또는 동작이, 예를 들어, 인텐트 함수, 펜딩 인텐트 함수 및/또는 위젯 또는 다른 소프트웨어 프로그램을 실행하게 한 함수(들)에 그 액션의 결과를 리턴할 수 있다. 여기서 제공된 다양한 설명은 인텐트를 언급할 수 있지만, 본 개시물의 시스템, 방법, 루틴 및/또는 기술은 애플리케이션에 의해 또는 애플리케이션으로서 실행될 액션이나 동작을 명시하는 유사한 함수나 액션가능한 항목에도 적용될 수 있다는 것을 이해해야 한다.
예를 들어, 위젯에 의해 인보크되는 펜딩 인텐트는 인텐트에 관련될 수 있다. 펜딩 인텐트는, 인텐트를 "랩핑(wrap)"할 수 있고, 이것은, 인텐트로 하여금 예를 들어 PendingIntent.Send라 불리는 함수를 실행 또는 활성화하게 할 수 있는 함수를 펜딩 인텐트가 포함할 수 있다는 것을 의미한다. 펜딩 인텐트는, 예를 들어, 액션 또는 동작을 특정한 허가와 함께 및/또는 특정한 사용자로서 구동 또는 실행해야 한다는 것을 운영 체제에 나타내기 위해, 인텐트에 대한 허가 및/또는 사용자 모델을 명시할 수 있다. 펜딩 인텐트는 인텐트를 활성화하기 이전에 조건을 대기하도록 설계 및/또는 구성될 수 있다. 예를 들어, 펜딩 인텐트 객체는, 사용자로부터의 입력, 예를 들어, 버튼을 누르는 것과 같이 모바일 장치 상의 터치스크린을 통해 입력된 입력을 대기하거나 리스닝할 수 있다. 다른 예로서, 펜딩 인텐트는, 시각 또는 소정 기간의 만료와 같이, 시간 기반의 조건을 대기하거나 리스닝할 수 있다. 특정한 예로서, 펜딩 인텐트는, 사용자가 버튼을 누르는 때를 검출하도록 설계 및/또는 구성될 수 있고, 이에 응답하여, 인텐트, 예를 들어, 웹 브라우저가 론칭되어야 한다는 것을 나타내는 인텐트, 또는 메시지가 디스플레이되어야 한다는 것을 나타내는 인텐트가 활성화될 수 있다.
도 2를 참조하면, 위젯 분석기(206)는 위젯(예를 들어, 위젯(204))을 분석 및/또는 검사하여, 위젯이 임의의 펜딩 인텐트를 포함 또는 구현하는지를 판정하고, 그러한 경우에는, 펜딩 인텐트가 어떤 액션에 관련되어 있는지를 판정할 수 있다. 이와 관련하여, 위젯 분석기(206)는 위젯을 분석 및/또는 검사하여, 예를 들어 조건이 충족될 때 위젯이 실행 또는 활성화하고자 하는 액션이나 인텐트가 무엇인지를 판정할 수 있다. 다양한 운영 체제의 경우, 펜딩 인텐트 함수가 예를 들어 위젯에 의해 이용된다면, 펜딩 인텐트의 조건이 충족될 때 그 위젯이 실제로 실행하는 동작 또는 인텐트는 변경될 수 없다. 따라서, 펜딩 인텐트 함수를 분석하는 것은, 예를 들어, 액션을 구동 또는 실행해야 한다는 것을 위젯이 OS에 나타내기 이전에, 예를 들어, 액션을 인터셉트하고/하거나 방지하기 위해, 위젯이 취하고자 하는 동작을 예측하는 유용한 방식이 될 수 있다. 하나의 특정한 예로서, 위젯 분석기(206)는 위젯이 하고자 하는 것이 무엇인지에 관한 더 많은 정보를 얻기 위해 펜딩 인텐트 함수의 하나 이상의 서브-함수들을 분석할 수 있다. 예를 들어, 펜딩 인텐트는, 펜딩 인텐트가 취하고자 계획하는 액션이 무엇인지를 나타내는 함수, 예를 들어, 펜딩 intent.getActivity라 불리는 함수를 포함할 수 있다. 다른 예로서, 펜딩 인텐트는, 그 펜딩 인텐트가 OS로 하여금 액션 또는 동작을 실행하게 하도록 계획하고 있다는 것을 나타내는 함수, 예를 들어, 펜딩 intent.isActivity라 불리는 함수를 포함할 수 있다.
위젯 분석기(206)는 정적 및/또는 동적 방식으로 위젯을 분석 및/또는 검사할 수 있다. 정적 분석은, 위젯이 모바일 장치 상에서 설치, 인스턴스화, 구동 및/또는 실행되기 이전에 위젯을 분석하는데 유용할 수 있다. 동적 분석은, 예를 들어, 위젯이 인스턴스화되었거나 실행되기 시작한 후에, 위젯을 분석하는데 유용할 수 있다. 위젯 분석기(206)는, 위젯에 관련된 코드 및/또는 코드로부터 메모리에 생성된 객체를 분석함으로써 정적 방식으로 위젯을 분석 및/또는 검사할 수 있다. 코드는, 예를 들어, 위젯이 사용자 및/또는 모바일 장치의 다른 피쳐 또는 기능과 어떻게 상호작용하는지를 명시할 수 있다. 하나의 특정한 예로서, 위젯은, 위젯의 윈도우 및/또는 사용자 인터페이스가 어떻게 디스플레이 및/또는 상호작용해야 하는지를 나타내는 레이아웃 파일(예를 들어, XML 파일)을 포함할 수 있다. 위젯 분석기(206)는, 이러한 레이아웃 파일 및 코드에 의해 생성된 관련된 객체를 분석 및/또는 검사하여, 위젯이 임의의 펜딩 인텐트, 예를 들어, 사용자 입력에 응답하여 인텐트를 활성화하는 펜딩 인텐트를 이용할 것인지를 판정할 수 있다. 위젯의 정적 분석을 수행하기 위하여, 위젯 분석기(206)는 레이아웃 파일을 확장(expand) 또는 인플레이팅(inflate)하여, 예를 들어, 시각적 레이아웃 또는 사용자 인터페이스를 나타내는 트리를 메모리에 생성할 수 있다. 위젯 분석기(206)는 트리에서의 각 버튼을 분석하고, 그것이 펜딩 인텐트에 관련되어 있는지를 판정할 수 있다.
위젯 분석기(206)는, 위젯에 관련된 코드 및/또는 메모리에 생성된 객체를 분석함으로써 동적 방식으로 위젯을 분석 및/또는 검사할 수 있다. 이러한 방식으로, 위젯 분석기(206)는, 위젯이 설치 및/또는 인스턴스화된 후에, 그리고 아마도 위젯이 실행을 시작한 후에, 위젯을 분석할 수 있다. 예를 들어, 위젯 분석기(206)는 위젯이 인스턴스화된 후에 위젯을 분석하여 임의의 펜딩 인텐트를 식별하여, 예를 들어, 사용자 입력의 결과로서 펜딩 인텐트가 개시되는 때를 준비할 수 있다. 다른 예로서, 위젯 분석기(206)는, 일단 조건(예를 들어, 사용자 입력)이 검출되면 위젯을 분석할 수 있다. 이와 관련하여, 위젯 분석기는 각 사용자 입력 이벤트에 기초하여 위젯을 분석할 수 있다. 일부 실시예에서, 위젯 분석기는, 위젯이 인스턴스화된 후에, 그러나 사용자 입력 이전에, 일부 분석(예를 들어, 전체 위젯 객체의 스캐닝)을 행한 다음, 위젯 분석기는 각 사용자 입력 이벤트에 응답하여 위젯의 추가 분석을 수행할 수 있다. 본 개시물을 참조한 후에 동적 분석을 수행하는 다양한 다른 방식들도 명백하게 될 것이다.
위젯 분석기(206)는, 위젯의 의도된 동작을 판정하기 위해 위젯을 분석하는 것에 응답하여 하나 이상의 액션을 취할 수 있다. 예를 들어, 위젯 분석기(206)는, 하나 이상의 의도된 동작이 허용되지 않아야 한다고 위젯 분석기가 결정한다면 위젯의 기능을 제한할 수 있다. 위젯 분석기(206)는, 다양한 방식으로, 예를 들어, 위젯이 애플리케이션으로 하여금 액션을 수행하게 하는 것을 방지 또는 지연시킴으로써(예를 들어, 액션을 야기하는 시도를 인터셉트하여 폐기하거나 무시함으로써) 또는 위젯이 특정한 스크린 및/또는 슬롯 상에 설치 또는 디스플레이되는 것을 방지함으로써, 위젯의 기능을 제한할 수 있다. 다른 예로서, 위젯 분석기(206)는 위젯에 의해 개시된 액션을 인터셉트할 수 있고, 소정의 조건이 충족될 때까지(예를 들어, 사용자가 잠금 스크린을 통해 올바른 크리덴셜을 입력할 때까지) 액션을 홀딩 또는 지연시킬 수 있다. 이와 관련하여, 위젯은 (예를 들어, 사용자 입력에 응답하여) 액션을 개시 또는 시작할 수 있고, 위젯 분석기는 일단 조건이 충족되면 액션이 론칭되는 것을 허용할 수 있다. 다른 예로서, 위젯 분석기(206)는 윈도우 또는 메시지가 모바일 장치의 스크린 상에 나타나게 할 수 있고, 윈도우 또는 메시지는, 크리덴셜, 예를 들어, 사용자-정의된 PIN, 패턴 또는 패스워드를 입력하도록 사용자에 촉구할 수 있다. 일단 사용자가 패스워드를 입력하면, 위젯 분석기(206)는 위젯이 설치 및/또는 디스플레이되도록 허용할 수 있고/있거나, 위젯이 애플리케이션으로 하여금 액션을 수행하게 하도록 허용할 수 있다.
본 개시물의 하나 이상의 실시예에서, 위젯 분석기(206) 및/또는 하나 이상의 위젯(예를 들어, 위젯(204))은 잠금 스크린 및/또는 키보호(keyguard)(210)와 함께 기능할 수 있다. 일부 실시예에서, 잠금 스크린 및/또는 키보호(210)는, 비인가된 사용자가 잠금 스크린을 볼 수만 있어, 예를 들어, 비인가된 사용자가 데스크톱, 시스템 설정 페이지, 애플리케이션 등으로 내비게이팅하는 것을 방지할 수 있도록 모바일 장치를 안전하게 하는 잠금 스크린 및/또는 키보호 기능/피쳐일 수 있다. 일부 실시예에서, 위젯 분석기(206)는, 사용자가 잠금 스크린 및/또는 키보호(210)와 관련된 인터페이스(예를 들어, 터치스크린 상의 가상 키패드)를 이용하여 크리덴셜(예를 들어, 사용자-정의된 PIN, 패턴 또는 패스워드)을 입력할 때까지 (예를 들어, 위젯에 의해 개시된 액션을 지연시킴으로써) 위젯의 기능을 제한할 수 있다. 사용자가 올바른 크리덴셜을 입력하면, 위젯 분석기(206)는 위젯에게 더 많은 자유를 허용할 수 있는데, 예를 들어, 위젯에 의해 개시된 액션이 론칭되는 것을 허용하여, 예를 들어, 애플리케이션으로 하여금 특정한 민감한 동작을 수행하게 하도록 할 수 있다. 사용자가 올바르지 않은 크리덴셜을 입력하면, 위젯 분석기(206)는 위젯을 제한된 상태로 유지할 수 있고/있거나, 애플리케이션으로 하여금 특정한 액션을 수행하게 하는 위젯에 의한 시도를 폐기할 수 있다.
본 개시물의 하나 이상의 실시예에서, 위젯(예를 들어, 위젯(204))은, 잠금 스크린, 예를 들어, 잠금 스크린(210) 상에 설치 및/또는 디스플레이되도록 설계, 프로그래밍 및/또는 구성될 수 있다. 이들 실시예에서, 모바일 장치 상에서 실행 중인 OS는, 위젯(예를 들어, 소정의 프로그래밍 가이드라인을 충족하는 위젯)이, 잠금 스크린, 예를 들어, 비인가된 사용자가 잠금 스크린 외에 임의의 스크린을 보는 것을 방지하는 모바일 장치의 주 잠금 스크린 상에 디스플레이되는 것을 허용하도록 구성될 수 있다. 이들 실시예에서, 위젯의 개발자는, 위젯이 잠금 스크린 상에 설치 및/또는 디스플레이될 수 있도록, (예를 들어, SDK로부터의 하나 이상의 API를 이용하여) 위젯을 설계 및/또는 프로그래밍할 수 있다. 예를 들어, 개발자는, 소정의 위젯이 특정한 운영 체제 및 잠금 스크린과 함께 동작하는 것을 보증할 수 있고, 위젯은, 위젯이 잠금 스크린 상에서 적절히 실행되도록 프로그래밍되어 있다는 운영 체제에 대한 표시(예를 들어, 선언 파일에서의 태그)를 포함할 수 있다.
도 3a 및 도 3b는 본 개시물의 하나 이상의 실시예에 따른 모바일 장치(302) 또는 스마트폰 상에 디스플레이할 수 있는 예시적인 잠금 스크린(예를 들어, 잠금 스크린(303))의 예시를 도시한다. 도 3a 및 도 3b에서 알 수 있는 바와 같이, 하나 이상의 위젯(예를 들어, 위젯(304, 306))은 잠금 스크린(303) 상에 설치, 인스턴스화 및/또는 디스플레이될 수 있다. 위젯 1 및 위젯 2 각각은 잠금 스크린(303) 상에 윈도우 또는 레이아웃(일반적으로, 부분(304, 306)을 참조)을 디스플레이할 수 있다. 각각의 윈도우 또는 레이아웃은 하나 이상의 애플리케이션과 관련된 다양한 정보 부분을 사용자에게 디스플레이하는 인터페이스를 포함할 수 있다. 또한, 이 인터페이스는, 사용자가 하나 이상의 애플리케이션에 관하여 취할 수 있는 다양한 기능이나 액션을 사용자에게 디스플레이할 수 있다.
잠금 스크린(303)은, 사용자가 모바일 장치(302)를 잠금해제하는 것을 허용하는 대화형 잠금해제 피쳐(예를 들어, 잠금해제 피쳐(308 및/또는 312))를 포함할 수 있다. 예를 들어, 도 3a를 참조하면, 잠금해제 피쳐(308)는, 장치를 잠금해제하거나 장치의 잠금해제 프로세스를 개시할 수 있는 버튼이나 슬라이더(예를 들어, 장치의 스크린에 걸쳐 손가락을 슬라이딩시킴으로써 사용자가 관여할 수 있는 슬라이더)를 포함할 수 있다. 일부 실시예에서, 잠금해제 피쳐(308)에 관여하는 것은, 사용자가 PIN(예를 들어, 도 3b의 PIN 패드(312) 참조), 패스워드, 패턴 등을 입력하는 것을 허용하는 확장된 잠금해제 피쳐와 같이, 추가의 인증 레벨이 모바일 장치의 스크린 상에 나타나게 할 수 있다. 도 3b에서 알 수 있는 바와 같이, 일부 실시예에서, 잠금 스크린은, 사용자가 PIN, 패스워드, 패턴 등을 입력하는 것을 허용하는 패드와 같은 확장된 잠금해제 피쳐(312)를 포함한다. 일부 실시예에서, 확장된 잠금해제 피쳐(312)는 예비 잠금해제 피쳐(예를 들어, 잠금해제 피쳐(308))에 먼저 관여할 필요 없이 잠금 스크린 상에 디스플레이될 수 있다. 도 3b의 실시예에서, 하나 이상의 위젯(예를 들어, 위젯(304))은 확장된 잠금해제 피쳐(312)와 함께 잠금 스크린(303) 상에 디스플레이될 수 있다. 일부 실시예에서, 확장된 잠금해제 피쳐(312)는, 사용자가 위젯을 통해 민감한 동작을 활성화하려고 시도하는 것에 응답하여 잠금 스크린 상에 나타날 수 있다. 이들 실시예에서, 잠금 스크린은 하나 이상의 위젯, 및 선택적으로는 잠금해제 피쳐(308)를 보여줄 수 있고, 일단 사용자가 민감한 동작을 활성화하려고 시도하면, 잠금 스크린은 확장된 잠금해제 피쳐(312)를 디스플레이하도록 변경될 수 있다.
동작 시의 본 개시물의 하나 이상의 실시예의 일례로서, 위젯은 모바일 장치의 잠금 스크린 상에 설치, 인스턴스화 및/또는 디스플레이될 수 있다. 장치는 잠금 또는 비인증된 상태에서 시작할 수 있다. 비인증된 상태에서, 위젯은 (예를 들어, 다양한 버튼, 링크 등을 통해) 사용자에게 다양한 정보 부분 및/또는 다양한 기능을 디스플레이할 수 있다. 예를 들어, 소셜 네트워킹 위젯은 하나 이상의 통보(예를 들어, 새로운 메시지 또는 업데이트)를 디스플레이할 수 있고, 사용자가 통보에 관련된 콘텐츠를 보기 위해 연관된 애플리케이션으로 내비게이팅하는 것을 허용하는 하나 이상의 버튼이나 링크를 디스플레이할 수 있다. 비인증된 상태에서, 사용자는 위젯의 기능들 중 일부를 활성화하도록 허용될 수 있다. 예를 들어, 사용자는 복수의 펜딩 통보를 통해 이동하는 버튼을 활성화가능할 수 있다. 비인증된 상태에서, 다른 기능들은 방지, 제약, 인터셉트 및/또는 지연될 수 있다. 일부 실시예에서, 위젯은, 사용자 입력을 리스닝하는 펜딩 인텐트를 포함 또는 인보크할 수 있고, 위젯 분석기는 이러한 펜딩 인텐트를 검출할 수 있으며, 펜딩 인텐트에 의해 개시되는 임의의 민감한 동작을 인터셉트할 수 있다. 예를 들어, 사용자는 통보를 보기 위해 애플리케이션으로의 내비게이팅을 시도하는 버튼을 활성화할 수 있다. 이 때, 위젯 분석기는, 이러한 동작이 제약되어야 한다고 결정할 수 있고, 그 동작은 인터셉트 및/또는 지연될 수 있고, 인증 모듈 또는 잠금해제 피쳐가 디스플레이될 수 있다. 사용자가 적절한 크리덴셜을 입력하면, 이전에 인터셉트되거나 지연된 동작이 활성화되거나 론칭되는 것이 허용될 수 있다. 예를 들어, 사용자가 올바른 크리덴셜을 입력한 후에, 사용자는 통보에 관련된 콘텐츠를 보기 위해 애플리케이션으로 넘어갈 수 있다. 사용자가 올바르지 않은 크리덴셜을 입력하면, 이전에 인터셉트된 동작은 폐기될 수 있다. 이와 관련하여, 본 개시물의 기술은, 장치가 잠금되어 있거나 비인증되어 있을 때 제한된 방식으로 사용자가 (예를 들어, 위젯을 통해) 애플리케이션 또는 데이터와 상호작용하는 것을 허용할 수 있다. 그러면, 인증 후에, 사용자는 애플리케이션과 더 확장된 방식으로 상호작용할 수 있고/있거나, 애플리케이션 또는 데이터로 직접 내비게이트할 수 있다.
일부 실시예들에서, 잠금 스크린(303)은 복수의 서브 스크린을 포함할 수 있다. 각각의 서브 스크린은 도 3a 및 도 3b에 도시된 잠금 스크린 예와 유사하게 나타날 수 있다. 각각의 서브 스크린은 하나 이상의 위젯을 포함할 수 있고, 각각의 서브 스크린은 잠금해제 피쳐 및/또는 확장된 잠금해제 피쳐를 포함할 수 있다. 잠금 스크린(303)은 사용자가 서브 스크린들 사이에서 내비게이트하는 것을 허용할 수 있다. 예를 들어, 사용자는 모바일 장치의 스크린에 걸쳐 손가락을 슬라이딩 또는 스와이핑(swipe)하여, 하나의 서브 스크린으로부터 다음 서브 스크린으로 이동할 수 있다. 복수의 서브 스크린은, 모바일 장치를 잠금해제하지 않고 (예를 들어, 제한된 기능으로) 사용자에게 복수의 위젯으로의 액세스를 제공하도록 모바일 장치(302)를 구성할 수 있다. 이와 관련하여, 사용자는, 모바일 장치가 잠금된 또는 비인증된 상태에 머무는 동안 다양한 장치의 다양한 기능(예를 들어, 제한된 또는 비파괴적 기능)에 액세스할 수 있다.
잠금 스크린(303)(또는 적용가능하다면 각각의 서브 스크린)은 하나 이상의 슬롯을 포함할 수 있고, 각각의 슬롯은 위젯을 디스플레이하도록 지정된다. 예를 들어, 도 3a를 참조하면, 잠금 스크린(303)은, 위젯 1을 디스플레이하는 제1 슬롯, 위젯 2를 디스플레이하는 제2 슬롯, 및 선택적으로 더 많은 슬롯을 포함할 수 있다. 일부 예에서, 잠금 스크린 또는 서브 스크린은, 위젯이 모바일 장치의 스크린의 대부분 또는 전부를 점유할 수 있도록 하는 단일 슬롯을 포함할 수 있다. 잠금 스크린(303)은, 예를 들어, 어느 위젯이 잠금 스크린이나 서브 스크린 상에 그리고 어느 슬롯에 나타날 것인지를 선택함으로써, 사용자가 잠금 스크린을 구성하는 것을 허용하도록 설계될 수 있다.
일부 실시예에서, 모바일 장치는 (예를 들어, 위젯 분석기를 통해) 다양한 잠금 스크린, 서브 스크린 및/또는 슬롯에 대한 다양한 규칙 및/또는 요건을, 예를 들어 보안 모델을 구현함으로써 부과할 수 있다. 규칙 및/또는 요건은, 위젯이 특정한 슬롯에 설치 및/또는 디스플레이될 때 위젯이 취하도록 허용되어야 하는 액션의 타입을 명시할 수 있다. 위젯이 특정한 잠금 스크린, 서브 스크린 및/또는 슬롯 상에 설치 및/또는 디스플레이되는 것을 OS가 허용하기 위하여, 위젯은 특정한 규칙 및/또는 요건을 따르는 것이 요구될 수 있다. 예를 들어, 모바일 장치는, 사용자가 특정한 슬롯에 위젯을 설치하려고 시도하고 그 위젯이 그 슬롯의 규칙 및/또는 요건을 따르지 않는다면 에러를 디스플레이할 수 있다. 일부 실시예에서, 하나 이상의 잠금 스크린, 서브 스크린 및/또는 슬롯은, 위젯이 더 엄격한 규칙 및/또는 요건을 따라야 할 수 있는 것을 의미하는 "보호됨"으로서 지정될 수 있다. 다른 예로서, 하나 이상의 잠금 스크린, 서브 스크린 및/또는 슬롯은, 위젯이 정보를 디스플레이할 수만 있고 사용자 입력을 수락하도록 구성될 수 없다는 것을 의미하는 "판독-전용"으로서 지정될 수 있다. 이 예에서, 판독-전용 위젯(예를 들어, 소셜 네트워킹 위젯)은 통보를 디스플레이할 수 있고, 사용자는 관련된 애플리케이션과 상호작용하기 위해 장치를 잠금해제해야 할 수 있다. 예를 들어, 사용자는 모바일 장치를 잠금해제하고, 관련된 애플리케이션(예를 들어, 소셜 네트워킹 애플리케이션)으로 내비게이트하여 론칭한 다음, 그 애플리케이션을 통해 통보에 액세스해야 할 수 있다.
일부 실시예에서, 모바일 장치는 (예를 들어, 위젯 분석기를 통해) 다양한 잠금 스크린, 서브 스크린 및/또는 슬롯에 관한 다양한 사용자 및/또는 허가 모델을, 예를 들어 보안 모델을 구현함으로써 부과할 수 있다. 위젯이 특정한 잠금 스크린, 서브 스크린 및/또는 슬롯 상에 설치 및/또는 디스플레이되는 것을 OS가 허용하기 위하여, 위젯은 특정한 사용자 및/또는 허가 모델을 따르는 것이 요구될 수 있다. 예를 들어, 제1 슬롯은 위젯이 시스템 액션을 수행하는 것을 허용할 수 있다. 특정한 예로서, 제1 슬롯은 위젯이 시스템 또는 루트 특권으로 인텐트를 활성화하도록 설계된 펜딩 인텐트를 포함하는 것을 허용할 수 있다. 이와 관련하여, 잠금 스크린 상에 디스플레이된 다양한 위젯은 다양한 사용자로서 또는 다양한 허가와 함께 액션이 수행되게 할 수 있다. 예를 들어, 하나의 위젯(예를 들어, 클록과 같은 제1자 위젯)은 시스템 액션을 허용할 수 있고, 다른 위젯(예를 들어, 제3자 위젯)은 액션이 특정한 사용자로서, 예를 들어, 위젯이 활성화할 수 있는 더 많이 제한된 액션의 목록과 함께 실행되는 것만을 허용할 수 있다.
다른 예로서, 서브 스크린 0은, 사용자가 모바일 장치 상의 전원 버튼을 누를 때 디폴트로 먼저 디스플레이되는 잠금 스크린일 수 있다. 서브 스크린 0은, 예를 들어, 서브 스크린 0이 우연한 또는 비인가된 입력에 가장 취약하기 때문에, 가장 엄격한 규칙 및/또는 요건을 부과할 수 있다. 예를 들어, 전화기가 사용자의 포켓에 있을 때 사용자가 우연히 모바일 장치 상의 전원 버튼을 누를 수 있고, 사용자는 이어서 우연히 터치스크린을 터치(예를 들어, 폴싱)할 수 있다. 사용자로부터의 이러한 우연한 입력의 가능성 때문에, 서브 스크린 0 상에 디스플레이되는 위젯은 그 위젯이 취할 수 있는 액션의 타입에서 제한되는 것이 바람직할 수 있다. 다른 서브 스크린(예를 들어, 사용자가 손가락 스와이프 등을 통해 내비게이트해야 할 수 있는 서브 스크린들)은, 예를 들어, 사용자가 이들 스크린들에 우연히 내비게이트하기 더 어려우므로, 서브 스크린 0과 비교하여 더 느슨한 규칙 및/또는 제약을 가질 수 있다.
본 개시물의 소정 실시예들은, 보안 모델에 기초하여 소프트웨어 프로그램의 기능을 제한하기 위한 하나 이상의 방법에서 발견될 수 있다. 여기서 설명되고 연관 도면들에서 도시된 다양한 방법들에 관하여, 설명 및/또는 도시된 단계들 중 하나 이상은 상이한 순서로 수행될 수도 있다는 것을 이해해야 한다. 추가로, 일부 실시예에서, 방법은 설명 및/또는 도시된 단계들보다 더 많거나 더 적은 단계들을 포함할 수 있다.
도 4a는 보안 모델에 기초하여 소프트웨어 프로그램의 기능을 제한하기 위한 방법에서의 예시적인 단계들을 나타내는 흐름도의 일부(400)를 도시한다. 특히, 도 4a는, 사용자가 소프트웨어 프로그램을 설치, 인스턴스화 및/또는 디스플레이하려고 시도할 때, 소프트웨어 프로그램(예를 들어, 위젯)의 기능을 제한하는데 있어서 포함된 예시적인 단계들을 도시할 수 있다. 단계(402)에서, (예를 들어, 사용자 입력에 응답하여) 모바일 장치의 특정한 스크린 및/또는 슬롯(예를 들어, 잠금 스크린) 상에 위젯을 설치, 인스턴스화 및/또는 디스플레이하려는 시도가 이루어질 수 있다. 단계(404)에서, 위젯이 민감한 동작의 실행을 의도하는지를 판정하기 위해서 위젯이 분석될 수 있다. 일부 실시예에서, 위젯이 임의의 펜딩 인텐트를 포함 또는 인보크하는지를 판정하기 위해서 위젯이 분석될 수 있다. 단계(404)에 관한 더 상세한 사항(예를 들어, 예시적인 단계들의 확장된 목록)은 도 4c에서 볼 수 있다(도 4a의 박스 A와 도 4c의 대응하는 박스 A 참조). 도 4a를 참조하면, 단계(406)에서, 위젯의 설치, 호출 및/또는 디스플레이는, 예를 들어, 단계(404)의 결과에 기초하여 제한될 수 있다. 더 구체적으로는, 단계(408)에서, 특정한 스크린 및/또는 슬롯은 위젯이 실행할 수 있는 허용가능한 동작 타입에 관한 규칙 및/또는 요건을 가질 수 있다. 이들 규칙 및/또는 요건은, 보안 모델, 예를 들어, 도 4c의 보안 모델(470)로부터 나올 수 있다. 단계(408)에서, 이들 규칙 및/또는 요건은 위젯이 실행하고자 하는 동작(예를 들어, 민감한 동작)과 비교될 수 있다. 단계(410)에서, 위젯이 특정한 스크린 및/또는 슬롯의 규칙을 따른다면(예를 들어, 허용가능한 동작을 실행하고자 한다면), 위젯은 그 특정한 스크린 및/또는 슬롯에 설치, 인보크 및/또는 디스플레이될 수 있다(단계(412)). 이 때, 위젯은 실행될 수 있고, 사용자는 그 위젯과 상호작용할 수 있다. 단계(410)에서, 위젯이 특정한 스크린 및/또는 슬롯의 규칙을 따르지 않는다면(예를 들어, 민감한 동작을 실행하고자 한다면), 위젯이 그 특정한 스크린 및/또는 슬롯에 설치, 인보크 및/또는 디스플레이되는 것이 방지될 수 있다(단계(414)). 추가적으로, 단계(414)에서, 에러 메시지가 모바일 장치의 스크린 상에 디스플레이될 수 있다.
도 4b는 보안 모델에 기초하여 소프트웨어 프로그램의 기능을 제한하기 위한 방법에서의 예시적인 단계들을 나타내는 흐름도의 일부(430)를 도시한다. 특히, 도 4b는, 위젯이 동작, 예를 들어, 민감한 동작을 실행하려고 시도할 때, 소프트웨어 프로그램(예를 들어, 위젯)의 기능을 제한하는데 있어서 포함된 예시적인 단계들을 도시할 수 있다. 단계(432)에서, 사용자는, 예를 들어, 잠금 스크린 상에 디스플레이될 위젯을 설치 및/또는 인보크할 수 있다. 단계(434)에서, 위젯이 민감한 동작의 실행을 의도하는지를 판정하기 위해서 위젯이 분석될 수 있다. 일부 실시예에서, 위젯이 임의의 펜딩 인텐트를 포함하는지를 판정하기 위해서 위젯이 분석될 수 있다. 단계(434)에 관한 더 상세한 사항(예를 들어, 예시적인 단계들의 확장된 목록)은 도 4c에서 볼 수 있다(도 4b의 박스 A와 도 4c의 대응하는 박스 A 참조). 도 4b를 참조하면, 단계(436)에서, 위젯의 기능은, 예를 들어, 단계(434)의 결과에 기초하여, 위젯이 실행하는 것이 허용될 수 있는 동작들에 관하여 제한될 수 있다. 더 구체적으로는, 단계(438)에서, 위젯은, 예를 들어 사용자가 위젯과 상호작용하는 것의 결과로서, 동작을 실행 또는 개시하려고 시도할 수 있다. 예를 들어, 사용자는 모바일 장치의 터치스크린 상의 버튼을 터치하여, 예를 들어, 전자 메일 메시지를 삭제하도록 전자 메일 애플리케이션에 지시하는 액션을 위젯이 개시하게 할 수 있다. 단계(440)에서, 민감한 동작의 실행이 시도되고 있는지가 판정될 수 있다. 이 판정은, 위젯이 의도된 동작(예를 들어, 어떤 동작 타입이 민감한 것으로 간주되어야 하는지)에 대해 분석되었을 때 단계(434)에서 부분적으로 이루어졌을 수 있다. 대안으로서, 일부 실시예에서, 예를 들어, 일단 사용자 상호작용이 검출되었으면, 전체 판정이 단계(440)에서 이루어질 수 있다. 이들 실시예에서, 단계(434)는 사실상 단계(440)에 위치할 수 있다. 동작이 민감한 것이 아니라면, 그 동작은 실행되는 것이 허용될 수 있다(단계(444)). 단계(442)에서, 위젯이 민감한 동작을 실행하려고 시도하고 있다면, 그 동작은 인터셉트될 수 있고, 그 동작이 실행되는 것이 (예를 들어, 일시적으로) 지연 및/또는 방지될 수 있다. 단계(446)에서, 인증 모듈 또는 잠금해제 피쳐가 모바일 장치의 스크린 상에 디스플레이될 수 있다. 사용자는 크리덴셜을 입력하도록 촉구받을 수 있다. 단계(448)에서, 사용자가 올바르지 않은 크리덴셜을 입력하면, 동작이 폐기되고/되거나, 이 동작이 실행되는 것이 (예를 들어, 영구적으로) 방지될 수 있다(단계(450)). 단계(448)에서, 사용자가 올바른 크리덴셜을 입력하면, 동작이 실행되는 것이 허용될 수 있다(단계(444)).
도 4c는 보안 모델에 기초하여 소프트웨어 프로그램의 기능을 제한하기 위한 방법에서의 예시적인 단계들을 나타내는 흐름도의 일부(460)를 도시한다. 특히, 도 4c는, 위젯이 민감한 동작의 실행을 의도하는지를 판정하는데 있어서 포함된 예시적인 단계들을 도시할 수 있다. 도 4c는 각각 도 4a 및 도 4b의 단계들(404 및 434)에 대해 상술하고(예를 들어, 예시적인 단계들의 확장된 목록을 보여주고) 있다(도 4a 및 도 4b의 박스 A와 도 4c의 대응하는 박스 A 참조). 도 4c를 참조하면, 단계(462)에서, 루틴은 위젯에 관련된 코드 및/또는 객체(예를 들어, 메모리에서 확장된 코딩 객체)를 스캔할 수 있고, 예를 들어 사용자 입력에 응답하여 미래에 동작을 실행할 객체를 탐색할 것이다. 일부 실시예에서, 루틴은 코드 및/또는 객체를 스캔하여 임의의 펜딩 인텐트를 찾을 수 있다. 단계(464)에서, 이러한 객체 및/또는 코드가 발견되는지가 판정될 수 있다. 이러한 객체 및/또는 코드가 발견되지 않으면, 부분(460)은 어떠한 민감한 동작도 의도되어 있지 않다는 것을 나타낼 수 있다(단계(472)). 단계(466)에서, 이러한 객체 및/또는 코드가 발견되면, 객체 및/또는 코드는 분석 및/또는 질의되어, 객체의 의도된 동작을 결정할 수 있다. 예를 들어, 의도된 동작(예를 들어, 인텐트)을 요청하는 펜딩 인텐트에 관련된 함수가 실행될 수 있다. 단계(468)에서, 의도된 동작이 민감한 것인지가 판정될 수 있다. 단계(486)에서(그리고 선택적으로 도 4a 내지 도 4c에 도시된 흐름도의 다른 단계들에서) 보안 모델(470)이 참조 및/또는 구현될 수 있으며, 보안 모델은, 사용자, 애플리케이션, 프로세스 및/또는 데이터에 대한 액세스 권한과 같은 보안 정책을 명시할 수 있다. 예를 들어, 보안 모델은, 민감한 액션인, 애플리케이션에 의해 취해진 액션의 타입 및/또는 민감한 데이터로 간주되는 데이터의 타입을 명시할 수 있다. 다른 예로서, 보안 모델은, 장치가 다양한 상태에 있을 때 실행될 수 있는 커맨드 타입, 및/또는 위젯이 다양한 스크린 및/또는 슬롯에 설치될 때 어떤 커맨드 타입이 실행될 수 있는지를 명시할 수 있다. 의도된 동작이 민감하지 않은 것이면, 부분(460)은 어떠한 민감한 동작도 의도되어 있지 않다는 것을 나타낼 수 있다(단계(472)). 단계(474)에서, 의도된 동작이 민감한 것이면, 부분(460)은 민감한 동작(들)이 의도되어 있다는 것을 나타낼 수 있고, 선택적으로 민감한 동작(들)에 대한 상세사항을 제공할 수 있다(단계(474)).
본 개시물의 다양한 실시예들은, 보안 모델에 기초하여 소프트웨어 프로그램의 기능을 제한하기 위한 하나 이상의 시스템, 방법, 루틴 및/또는 기술을 개시한다. 하나 이상의 실시예에서, 방법은 데이터 처리 시스템, 컴퓨터, 모바일 장치, 스마트폰 등에서 실행될 수 있다. 이 방법은, 데이터 처리 시스템이 비인증된 상태에 있는지 또는 인증된 상태에 있는지를 판정하는 단계를 포함할 수 있다. 이 방법은, 제1 소프트웨어 프로그램으로 하여금 민감한 동작을 실행하게 하는 코드를 제1 소프트웨어 프로그램이 포함하는지를 판정하기 위해서 제1 소프트웨어 프로그램을 분석하는 단계를 포함할 수 있다. 데이터 처리 시스템이 비인증된 상태에 있을 때에 어느 동작들이 민감한 것인지를 판정하기 위해서 보안 모델이 이용될 수 있다.
이 방법은, 데이터 처리 시스템이 비인증된 상태에 있다면 제1 소프트웨어 프로그램의 기능을 제한하는 단계를 포함할 수 있다. 기능을 제한하는 단계는 민감한 동작의 수행 또는 완료를 방지하는 단계를 포함할 수 있다. 이 방법은 데이터 처리 시스템 상에 잠금 스크린을 디스플레이하는 단계를 포함할 수 있다. 제1 소프트웨어 프로그램은 잠금 스크린 상에 설치 및/또는 디스플레이될 수 있도록 구성될 수 있다. 잠금 스크린은 사용자로부터 인증 입력을 수신하도록 구성될 수 있다. 잠금 스크린은, 인증 입력이 검증된다면 데이터 처리 시스템이 비인증된 상태로부터 인증된 상태로 천이하게 하도록 구성될 수 있다. 이 방법은, 잠금 스크린을 통해, 사용자로부터 인증 입력을 수신하고, 그 인증 입력이 검증되는지를 판정하는 단계를 포함할 수 있다. 이 방법은, 인증 입력이 검증되었을 때에 제1 소프트웨어 프로그램의 기능을 확장하는 단계를 포함할 수 있다. 기능을 확장하는 단계는 민감한 동작이 그 의도된 목적을 완료할 수 있게 하는 단계를 포함할 수 있다. 제1 소프트웨어 프로그램의 기능을 제한하는 단계는 제1 소프트웨어 프로그램이 민감한 동작을 실행하는 때를 검출하는 단계, 및 민감한 동작을 인터셉트하고, 이 동작이 그 의도된 목적을 완료하는 것을 방지하는 단계를 포함할 수 있다. 민감한 동작은 민감한 동작을 수행하도록 제2 소프트웨어 프로그램에 지시하는 것을 포함할 수 있고, 보안 모델은, 액션이 민감한 액션인지를 판정하는데 이용될 수 있다. 제1 소프트웨어 프로그램은 위젯일 수 있고, 제2 소프트웨어 프로그램은 애플리케이션일 수 있다. 민감한 동작은, 민감한 동작이 그 의도된 목적을 완료하려고 시도하기 전에 소정 조건을 대기하도록 설계될 수 있다. 이 조건은, 사용자가 데이터 처리 시스템의 스크린 상의 버튼과 상호작용하였음을 나타내는 사용자로부터의 입력일 수 있다.
본 개시물의 하나 이상의 실시예에서, 데이터 처리 시스템, 컴퓨터, 모바일 장치, 스마트폰 등에서 방법이 실행될 수 있다. 이 방법은, 위젯이 데이터 처리 시스템의 스크린 및/또는 슬롯에 설치 및/또는 디스플레이되어야 함을 나타내는 입력을 수신하는 단계를 포함할 수 있다. 위젯은, 제2 소프트웨어 프로그램에 의해 제공된 정보 및/또는 기능의 서브세트에 대한 액세스 및/또는 상호작용을 제공하는 제1 소프트웨어 프로그램일 수 있다. 스크린 및/또는 슬롯은, 그 상에 디스플레이되었을 때에 위젯이 실행할 수 있는 동작들의 타입들에 관한 규칙들 및/또는 요건들과 연관될 수 있다. 이 방법은, 일단 위젯이 설치되었으면, 그 위젯이 실행하고자 하는 동작을 그 위젯이 나타내는지를 판정하기 위해서 위젯을 분석하는 단계를 포함할 수 있다. 이 방법은, 설치 및/또는 디스플레이가 허용되는지를 판정하기 위해서 위젯이 실행하고자 하는 동작과 규칙들 및/또는 요건들을 비교하는 단계를 포함할 수 있다. 이 방법은, 설치 및/또는 디스플레이가 허용되어 있지 않다면 위젯의 설치 및/또는 디스플레이를 방지하는 단계를 포함할 수 있다. 위젯은, 그 동작을 특정한 사용자로서 그리고/또는 특정한 허가와 함께 실행하기 위해 함수를 이용할 수 있다. 이 함수는 펜딩 인텐트일 수 있다.
본 개시물의 하나 이상의 실시예는, 컴퓨터 코드를 저장하는 하나 이상의 메모리 유닛과, 하나 이상의 메모리 유닛에 결합된 하나 이상의 프로세서 유닛을 포함할 수 있는 데이터 처리 시스템을 설명한다. 하나 이상의 프로세서 유닛은 하나 이상의 메모리 유닛에 저장된 컴퓨터 코드를 실행하여, 데이터 처리 시스템이 비인증된 상태에 있는지 또는 인증된 상태에 있는지를 판정하도록 데이터 처리 시스템을 구성할 수 있다. 데이터 처리 시스템은, 제1 소프트웨어 프로그램으로 하여금 민감한 동작을 실행하게 하는 코드를 제1 소프트웨어 프로그램이 포함하는지를 판정하기 위해서 제1 소프트웨어 프로그램을 분석하도록 또한 구성될 수 있다. 데이터 처리 시스템이 비인증된 상태에 있을 때에 어느 동작들이 민감한 것인지를 판정하기 위해서 보안 모델이 이용될 수 있다. 데이터 처리 시스템은, 데이터 처리 시스템이 비인증된 상태에 있다면 제1 소프트웨어 프로그램의 기능을 제한하도록 또한 구성될 수 있다. 기능을 제한하는 것은 민감한 동작의 수행 또는 완료를 방지하는 것을 포함할 수 있다.
데이터 처리 시스템은, 데이터 처리 시스템 상에 잠금 스크린을 디스플레이하도록 또한 구성될 수 있다. 제1 소프트웨어 프로그램은 잠금 스크린 상에 설치 및/또는 디스플레이될 수 있도록 구성될 수 있다. 잠금 스크린은 사용자로부터 인증 입력을 수신하도록 구성될 수 있다. 잠금 스크린은, 인증 입력이 검증된다면 데이터 처리 시스템이 비인증된 상태로부터 인증된 상태로 천이하게 하도록 구성될 수 있다. 데이터 처리 시스템은, 잠금 스크린을 통해, 사용자로부터 인증 입력을 수신하고, 그 인증 입력이 검증되는지를 판정하도록 또한 구성될 수 있다. 데이터 처리 시스템은, 인증 입력이 검증되었을 때에 제1 소프트웨어 프로그램의 기능을 확장하도록 또한 구성될 수 있다. 기능을 확장하는 것은 민감한 동작이 그 의도된 목적을 완료할 수 있게 하는 것을 포함할 수 있다. 제1 소프트웨어 프로그램의 기능을 제한하는 것은 제1 소프트웨어 프로그램이 민감한 동작을 실행하는 때를 검출하는 것, 및 민감한 동작을 인터셉트하고, 이 동작이 그 의도된 목적을 완료하는 것을 방지하는 것을 포함할 수 있다. 민감한 동작은 민감한 액션을 수행하도록 제2 소프트웨어 프로그램에 지시하는 것을 포함하고, 보안 모델은, 액션이 민감한 액션인지를 판정하는데 이용될 수 있다. 제1 소프트웨어 프로그램은 위젯일 수 있고, 제2 소프트웨어 프로그램은 애플리케이션이다. 민감한 동작은, 민감한 동작이 그 의도된 목적을 완료하려고 시도하기 전에 소정 조건을 대기하도록 설계될 수 있다. 이 조건은, 사용자가 데이터 처리 시스템의 스크린 상의 버튼과 상호작용하였음을 나타내는 사용자로부터의 입력일 수 있다.
상이한 도시된 실시예들의 플로우차트 및 블록도에 나타낸 예시적인 방법 및 루틴을 포함한 본 개시물의 방법, 루틴 및 솔루션은, 데이터 처리 시스템이 여기서 설명된 방법, 루틴, 기술 및 솔루션을 수행 및/또는 실행하게 구성되도록 프로그램된 데이터 처리 시스템에 의해 실행되는 소프트웨어로서 구현될 수 있다. 여기서 참조된 블록도 또는 플로우차트도에서의 각각의 블록 또는 심볼은, 명시된 기능 또는 기능들을 하나 이상의 데이터 처리 시스템에 의해 구현하기 위한 하나 이상의 실행가능한 명령어를 포함하는 컴퓨터 이용가능한 또는 판독가능한 프로그램 코드의 모듈, 세그먼트 또는 부분을 나타낼 수 있다. 본 개시물의 일부 대안적 구현에서, 블록도 또는 플로우차트의 블록들 또는 심볼들에 나타낸 기능 또는 기능들은 도면들에 표시된 순서를 이탈하여 발생할 수 있다. 예를 들어, 일부 경우에, 연속 도시된 2개의 블록 또는 심볼은, 수반된 기능에 따라, 실질적으로 동시에 실행될 수 있거나, 또는 이들 블록들은 때때로 역순으로 실행될 수 있다. 컴퓨터 코드의 일부 또는 전부는, 데이터 처리 시스템이 코드를 실행하기 전에 데이터 처리 시스템의 메모리로 로딩될 수 있다.
도 5는 본 개시물의 하나 이상의 실시예에 따른 모바일 장치(502) 또는 스마트폰 내에 포함될 수 있는 예시적인 데이터 처리 시스템(500)의 블록도를 도시한다. 데이터 처리 시스템(500)은, 본 개시물의 방법, 루틴 및/또는 솔루션 중 하나 이상을, 부분적으로 또는 전체적으로 실행하는데 이용될 수 있다. 본 개시물의 일부 실시예에서, 하나보다 많은 데이터 처리 시스템, 예를 들어, 데이터 처리 시스템(500)이, 여기서 설명된 방법, 루틴, 기술 및/또는 솔루션을 구현하는데 이용될 수 있다. 도 5의 예에서, 데이터 처리 시스템(500)은, 컴포넌트들, 예를 들어, 프로세서 유닛(504), 메모리(506), 영속 스토리지(508), 통신 유닛(510), 입력/출력(I/O) 유닛(512) 및 디스플레이(514) 사이에 통신을 제공하는 통신 패브릭(communications fabric)(503)을 포함할 수 있다. 버스 시스템은 통신 패브릭(503)을 구현하는데 이용될 수 있고, 시스템 버스 또는 입력/출력 버스와 같은 하나 이상의 버스로 이루어질 수 있다. 버스 시스템은, 버스 시스템에 부착된 상이한 컴포넌트들 또는 장치들 사이에서의 데이터의 전송을 제공하는 임의의 적합한 타입의 아키텍쳐를 이용하여 구현될 수 있다.
프로세서 유닛(504)은, 데이터 처리 시스템(500)으로, 예를 들어 메모리(506)로 로딩될 수 있는 명령어들(예를 들어, 소프트웨어 프로그램, 애플리케이션, 위젯, SDK 코드, 네이티브 OS 코드 등)을 실행하는 역할을 할 수 있다. 프로세서 유닛(504)은 특정한 구현에 따라 하나 이상의 프로세서의 세트일 수 있거나 또는 멀티프로세서 코어일 수 있다. 프로세서 유닛(504)은, 메인 프로세서가 단일 칩 상에서 보조 프로세서들과 함께 존재하는 하나 이상의 이종 프로세서 시스템을 이용하여 구현될 수 있다. 다른 예시로서, 프로세서 유닛(504)은 동일한 타입의 복수의 프로세서를 포함하는 대칭 멀티-프로세서 시스템일 수 있다.
메모리(506)는, 예를 들어, 랜덤 액세스 메모리이거나, 임의의 다른 적합한 휘발성 또는 비휘발성 스토리지 장치일 수 있다. 메모리(506)는 캐시 메모리의 하나 이상의 계층을 포함할 수 있다. 영속 스토리지(508)는 특정한 구현에 따라 다양한 형태를 취할 수 있다. 예를 들어, 영속 스토리지(508)는 하나 이상의 컴포넌트 또는 장치를 포함할 수 있다. 예를 들어, 영속 스토리지(508)는 하드 드라이브, 고체 상태 드라이브, 플래시 메모리, 또는 전술한 것의 일부 조합일 수 있다.
운영 체제를 위한 명령어들은 영속 스토리지(508) 상에 위치할 수 있다. 하나의 특정한 실시예에서, 운영 체제는 모바일 장치 또는 스마트폰을 위한 다수의 공지된 운영 체제(예를 들어, Android, iOS 등)의 소정 버전일 수 있다. 애플리케이션 및/또는 프로그램을 위한 명령어들도 또한 영속 스토리지(508) 상에 위치할 수 있다. 이들 명령어들은 프로세서 유닛(504)에 의한 실행을 위해 메모리(506)로 로딩될 수 있다. 예를 들어, 본 개시물에서 설명된 상이한 실시예들의 방법 및/또는 프로세스는, 메모리(506)와 같은 메모리로 로딩될 수 있는 컴퓨터 구현된 명령어들을 이용하여 프로세서 유닛(504)에 의해 수행될 수 있다. 이들 명령어들은, 프로세서 유닛(504)에서의 프로세서에 의해 판독되며 실행될 수 있는 프로그램 코드, 컴퓨터 이용가능한 프로그램 코드 또는 컴퓨터 판독가능한 프로그램 코드로 지칭될 수 있다.
디스플레이(514)는, 예를 들어, LCD 또는 LED 스크린 또는 모니터, 또는 다른 타입의 디스플레이를 통해 사용자에게 정보를 디스플레이하는 메커니즘을 제공할 수 있다. 본 개시물 전체에 걸쳐, "디스플레이"라는 용어는, 물리적 스크린과 같은 물리적 디스플레이, 또는 물리적 장치의 스크린 상에서 사용자가 보는 이미지를 지칭하기 위해 유연한 방식으로 이용될 수 있다는 점을 이해해야 한다. 입력/출력(I/O) 유닛(512)은, 데이터 처리 시스템(500)에 접속될 수 있는 다른 장치들과의 데이터의 입력 및 출력을 허용한다. 입력/출력 장치는 중간 I/O 제어기를 통해 또는 직접적으로 시스템에 결합될 수 있다.
통신 유닛(510)은, 예를 들어, 하나 이상의 네트워크를 통해, 다른 데이터 처리 시스템 또는 장치와의 통신을 제공할 수 있다. 통신 유닛(510)은 네트워크 인터페이스 카드일 수 있다. 통신 유닛(510)은, 유선 및/또는 무선 통신 링크의 이용을 통해 통신을 제공할 수 있다. 일부 실시예에서, 통신 유닛은, 다양한 무선 통신 표준, 예를 들어, 셀룰러 표준, WIFI 표준, BlueTooth 표준 등에 따라 통신하는 회로를 포함할 수 있다.
데이터 처리 시스템(500)에 대해 예시된 상이한 컴포넌트들은, 상이한 실시예들이 구현될 수 있는 방식에 대해 아키텍쳐적 제한을 제공하려는 것을 의미하는 것은 아니다. 상이한 예시적인 실시예들은, 데이터 처리 시스템(500)에 대해 예시된 것들에 추가하거나 이들을 대신한 컴포넌트들을 포함하는 데이터 처리 시스템에서 구현될 수 있다. 도 5에 도시된 다른 컴포넌트들은 도시된 예와는 다를 수 있다.
상이한 유리한 실시예들의 설명이 예시와 설명을 위해 제시되었으며, 모든 것을 망라하도록 의도되지는 않거나 개시된 형태의 실시예들로 제한되지는 않는다. 많은 수정과 변형이 통상의 기술자에게 명백할 것이다. 추가의 상이한 유리한 실시예들은 다른 유리한 실시예들과 비교하여 상이한 이점들을 제공할 수 있다. 선택된 실시예 또는 실시예들은, 실제 애플리케이션의 실시예들의 원리를 최상으로 설명하기 위해서 그리고 통상의 기술자가 고려되는 특정한 이용에 적합한 다양한 수정을 갖는 다양한 실시예들에 대해 본 개시물을 이해할 수 있게 하기 위해서 선정 및 설명되었다.

Claims (20)

  1. 하나 이상의 프로세서를 갖는 데이터 처리 시스템에 의해 실행되는 방법으로서,
    상기 데이터 처리 시스템이 비인증된 상태에 있는 것을 결정하는 단계 ― 상기 비인증된 상태로부터 인증된 상태로 천이하기 위해 인증 입력이 요구됨 ―;
    제1 소프트웨어 프로그램으로 하여금 민감한 동작(sensitive operation)을 실행하게 하는 코드를 상기 제1 소프트웨어 프로그램이 포함하는지를 판정하기 위해서 상기 제1 소프트웨어 프로그램을 분석하는 단계 ― 상기 제1 소프트웨어 프로그램은 상기 데이터 처리 시스템이 잠금 상태에 있을 때 상기 데이터 처리 시스템의 잠금 스크린 상에 위치한 위젯으로서 상기 비인증된 상태에서 활성이거나 실행되고 있고, 상기 데이터 처리 시스템이 상기 비인증된 상태에 있을 때에 어느 동작들이 민감한 것인지를 판정하기 위해서 보안 모델이 이용되고, 상기 보안 모델은 상기 데이터 처리 시스템에 저장된 데이터와 상호작용하거나 상기 데이터 처리 시스템 내의 설정들과 상호작용하는 동작에 기초하여 상기 동작이 민감한지를 결정함 ―; 및
    상기 데이터 처리 시스템이 상기 비인증된 상태에 있을 때에 상기 제1 소프트웨어 프로그램의 기능을 제한하는 단계 ― 상기 기능을 제한하는 단계는 상기 민감한 동작의 수행 또는 완료를 방지하고 민감하지 않은 동작의 수행 또는 완료를 허용하며, 민감하지 않은 동작의 상기 수행 또는 상기 완료는 상기 데이터 처리 시스템이 상기 잠금 상태에 유지되는 동안 수행됨 ―
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 데이터 처리 시스템 상에 디스플레이하기 위한 잠금 스크린(lock screen)을 제공하는 단계를 더 포함하고,
    상기 잠금 스크린은 인증 입력을 수신하도록 구성되고,
    상기 잠금 스크린은, 상기 인증 입력의 검증에 기초하여, 상기 데이터 처리 시스템으로 하여금 상기 비인증된 상태로부터 상기 인증된 상태로 천이하게 하도록 구성되는 방법.
  3. 제2항에 있어서,
    상기 잠금 스크린을 통해, 인증 입력을 수신하고, 상기 인증 입력이 검증되는지를 판정하는 단계;
    상기 인증 입력이 검증되는 것에 기초하여, 상기 비인증된 상태로부터 상기 인증된 상태로 천이하는 단계; 및
    상기 인증 입력이 검증되었을 때에, 상기 제1 소프트웨어 프로그램의 기능을 확장하는 단계 ― 상기 기능을 확장하는 단계는 상기 민감한 동작이 그 의도된 목적을 완료할 수 있게 하는 단계를 포함함 ―
    를 더 포함하는 방법.
  4. 제1항에 있어서, 상기 제1 소프트웨어 프로그램의 기능을 제한하는 단계는 상기 제1 소프트웨어 프로그램이 상기 민감한 동작을 실행하는 때를 검출하는 단계, 및 상기 민감한 동작을 인터셉트하고, 상기 민감한 동작이 그 의도된 목적을 완료하는 것을 방지하는 단계를 포함하는 방법.
  5. 제1항에 있어서, 상기 민감한 동작은 민감한 액션을 수행하도록 제2 소프트웨어 프로그램에 지시하는 것을 포함하고, 상기 보안 모델은, 액션이 민감한 액션인지를 판정하는데 이용되는 방법.
  6. 제5항에 있어서, 상기 제2 소프트웨어 프로그램은 애플리케이션(application)인 방법.
  7. 제1항에 있어서, 상기 민감한 동작은, 상기 민감한 동작이 그 의도된 목적을 완료하려고 시도하기 전에 소정 조건을 대기하도록 설계되는 방법.
  8. 제7항에 있어서, 상기 조건은, 상기 데이터 처리 시스템의 스크린 상의 버튼과의 상호작용을 나타내는 방법.
  9. 하나 이상의 프로세서를 갖는 데이터 처리 시스템 상에서 실행되는 방법으로서,
    위젯이 상기 데이터 처리 시스템의 잠금 스크린 및/또는 슬롯 상에 설치 및/또는 디스플레이되는 것을 나타내는 입력을 수신하는 단계 ― 상기 위젯은, 제2 소프트웨어 프로그램에 의해 제공된 정보 및/또는 기능의 서브세트에 대한 액세스 및/또는 상호작용을 제공하는 제1 소프트웨어 프로그램이고, 상기 잠금 스크린 및/또는 슬롯은, 그 상에 디스플레이되었을 때에 위젯이 실행하는 동작들의 타입들에 관한 규칙들 및/또는 요건들과 연관됨 ―;
    일단 상기 위젯이 설치되었으면, 상기 위젯이 실행하고자 하는 동작을 상기 위젯이 나타내는지를 판정하기 위해서 상기 위젯을 분석하는 단계;
    적어도 하나의 제한된 위젯 기능을 판정하도록 상기 설치 및/또는 디스플레이가 허용되는지를 판정하기 위해서 상기 위젯이 실행하고자 하는 동작과 상기 규칙들 및/또는 요건들을 비교하는 단계; 및
    상기 데이터 처리 시스템이 비인증된 상태에 있을 때에 상기 적어도 하나의 제한된 위젯 기능을 제한하는 단계 ― 상기 적어도 하나의 제한된 위젯 기능을 제한하는 단계는 민감한 동작의 수행 또는 완료를 방지하고 민감하지 않은 동작의 수행 또는 완료를 허용하는 단계를 포함하고, 민감하지 않은 동작의 상기 수행 또는 상기 완료는 상기 데이터 처리 시스템이 잠금 상태에 유지되는 동안 수행되며, 상기 적어도 하나의 제한된 위젯 기능은 상기 데이터 처리 시스템에 저장된 데이터와 상호작용하거나 상기 데이터 처리 시스템 내의 설정들과 상호작용하는 상기 제한된 위젯 기능에 기초하여 민감함 ―
    를 포함하는 방법.
  10. 제9항에 있어서, 상기 설치 및/또는 디스플레이가 허용되지 않는 경우, 상기 위젯의 설치 및/또는 디스플레이를 방지하는 단계를 더 포함하는 방법.
  11. 제9항에 있어서, 상기 위젯은, 상기 동작을 특정한 사용자로서 그리고/또는 특정한 허가와 함께 실행하기 위해 함수(function)를 이용하는 방법.
  12. 제11항에 있어서, 상기 함수는 펜딩 인텐트(pending intent)인 방법.
  13. 데이터 처리 시스템으로서,
    컴퓨터 코드를 저장하는 하나 이상의 메모리 유닛; 및
    상기 하나 이상의 메모리 유닛에 결합된 하나 이상의 프로세서 유닛
    을 포함하고,
    상기 하나 이상의 프로세서 유닛은 상기 하나 이상의 메모리 유닛에 저장된 상기 컴퓨터 코드를 실행하도록 구성되어,
    상기 데이터 처리 시스템이 비인증된 상태에 있는지 또는 인증된 상태에 있는지를 판정하고,
    제1 소프트웨어 프로그램으로 하여금 민감한 동작을 실행하게 하는 코드를 상기 제1 소프트웨어 프로그램이 포함하는지를 판정하기 위해서 상기 제1 소프트웨어 프로그램을 분석하며 ― 상기 제1 소프트웨어 프로그램은 상기 데이터 처리 시스템이 잠금 상태에 있을 때 상기 데이터 처리 시스템의 잠금 스크린 상에 위치된 위젯으로서 상기 비인증된 상태에서 활성이거나 실행되고 있고, 상기 데이터 처리 시스템이 상기 비인증된 상태에 있을 때에 어느 동작들이 민감한 것인지를 판정하기 위해서 보안 모델이 이용되고, 상기 보안 모델은 상기 데이터 처리 시스템에 저장된 데이터와 상호작용하거나 상기 데이터 처리 시스템 내의 설정들과 상호작용하는 동작에 기초하여 상기 동작이 민감한지를 판정함 ―; 및
    상기 데이터 처리 시스템이 상기 비인증된 상태에 있는 경우, 상기 제1 소프트웨어 프로그램의 기능을 제한하도록 ― 상기 기능을 제한하는 것은 상기 민감한 동작의 수행 또는 완료를 방지하고 민감하지 않은 동작의 수행 또는 완료를 허용하는 것을 포함하고, 민감하지 않은 동작의 상기 수행 또는 상기 완료는 상기 데이터 처리 시스템이 상기 잠금 상태에 유지되는 동안 수행됨 ―
    상기 데이터 처리 시스템을 구성하는 데이터 처리 시스템.
  14. 제13항에 있어서, 상기 하나 이상의 프로세서 유닛은 상기 하나 이상의 메모리 유닛에 저장된 상기 컴퓨터 코드를 실행하여, 상기 데이터 처리 시스템 상에 잠금 스크린을 디스플레이하도록 상기 데이터 처리 시스템을 구성하고,
    상기 잠금 스크린은 인증 입력을 수신하도록 구성되고,
    상기 잠금 스크린은, 상기 인증 입력이 검증되는 경우, 상기 데이터 처리 시스템으로 하여금 상기 비인증된 상태로부터 상기 인증된 상태로 천이하게 하도록 구성되는 데이터 처리 시스템.
  15. 제14항에 있어서, 상기 하나 이상의 프로세서 유닛은 상기 하나 이상의 메모리 유닛에 저장된 상기 컴퓨터 코드를 실행하여,
    상기 잠금 스크린을 통해, 인증 입력을 수신하고, 상기 인증 입력이 검증되는지를 판정하고,
    상기 인증 입력이 검증되었을 때에, 상기 제1 소프트웨어 프로그램의 기능을 확장하도록 ― 상기 기능을 확장하는 것은 상기 민감한 동작이 그 의도된 목적을 완료할 수 있게 하는 것을 포함함 ―
    상기 데이터 처리 시스템을 구성하는 데이터 처리 시스템.
  16. 제13항에 있어서, 상기 제1 소프트웨어 프로그램의 기능을 제한하는 것은 상기 제1 소프트웨어 프로그램이 상기 민감한 동작을 실행하는 때를 검출하는 것, 및 상기 민감한 동작을 인터셉트하고, 상기 민감한 동작이 그 의도된 목적을 완료하는 것을 방지하는 것을 포함하는 데이터 처리 시스템.
  17. 제13항에 있어서, 상기 민감한 동작은 민감한 액션을 수행하도록 제2 소프트웨어 프로그램에 지시하는 것을 포함하고, 상기 보안 모델은, 액션이 민감한 액션인지를 판정하는데 이용되는 데이터 처리 시스템.
  18. 제17항에 있어서, 상기 제1 소프트웨어 프로그램은 위젯이고, 상기 제2 소프트웨어 프로그램은 애플리케이션인 데이터 처리 시스템.
  19. 제13항에 있어서, 상기 민감한 동작은, 상기 민감한 동작이 그 의도된 목적을 완료하려고 시도하기 전에 소정 조건을 대기하도록 설계되는 데이터 처리 시스템.
  20. 제19항에 있어서, 상기 조건은, 상기 데이터 처리 시스템의 스크린 상의 버튼과의 상호작용인 데이터 처리 시스템.
KR1020157012175A 2012-10-04 2013-09-26 보안 모델에 기초한 소프트웨어 프로그램의 기능 제한 KR101622300B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261709778P 2012-10-04 2012-10-04
US61/709,778 2012-10-04
US13/709,634 US8954736B2 (en) 2012-10-04 2012-12-10 Limiting the functionality of a software program based on a security model
US13/709,634 2012-12-10
PCT/US2013/061792 WO2014055313A1 (en) 2012-10-04 2013-09-26 Limiting the functionality of a software program based on a security model

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020157011497A Division KR20150055102A (ko) 2012-10-04 2013-09-26 보안 모델에 기초한 소프트웨어 프로그램의 기능 제한

Publications (2)

Publication Number Publication Date
KR20150059651A true KR20150059651A (ko) 2015-06-01
KR101622300B1 KR101622300B1 (ko) 2016-05-18

Family

ID=50433856

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020157012175A KR101622300B1 (ko) 2012-10-04 2013-09-26 보안 모델에 기초한 소프트웨어 프로그램의 기능 제한
KR1020167025287A KR20160111543A (ko) 2012-10-04 2013-09-26 보안 모델에 기초한 소프트웨어 프로그램의 기능 제한
KR1020157011497A KR20150055102A (ko) 2012-10-04 2013-09-26 보안 모델에 기초한 소프트웨어 프로그램의 기능 제한

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020167025287A KR20160111543A (ko) 2012-10-04 2013-09-26 보안 모델에 기초한 소프트웨어 프로그램의 기능 제한
KR1020157011497A KR20150055102A (ko) 2012-10-04 2013-09-26 보안 모델에 기초한 소프트웨어 프로그램의 기능 제한

Country Status (5)

Country Link
US (1) US8954736B2 (ko)
EP (1) EP2904535B1 (ko)
KR (3) KR101622300B1 (ko)
CN (1) CN104813326B (ko)
WO (1) WO2014055313A1 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014011163A1 (en) * 2012-07-11 2014-01-16 Empire Technology Development Llc Network congestion reduction
KR101949737B1 (ko) * 2012-08-28 2019-02-19 엘지전자 주식회사 이동 단말기 및 이의 제어 방법, 이를 위한 기록 매체
KR20150003455A (ko) * 2013-07-01 2015-01-09 삼성디스플레이 주식회사 홍채 인식 휴대 장치의 구동 방법 및 홍채 인식 휴대 장치
US9923953B2 (en) 2013-07-31 2018-03-20 Adenda Media Inc. Extending mobile applications to the lock screen of a mobile device
CN106991305A (zh) * 2013-11-22 2017-07-28 华为终端有限公司 消息的处理方法及装置
US9692879B1 (en) 2014-05-20 2017-06-27 Invincea, Inc. Methods and devices for secure authentication to a compute device
US9959405B2 (en) * 2014-05-28 2018-05-01 Apple Inc. Sandboxing third party components
US10198594B2 (en) 2014-12-30 2019-02-05 Xiaomi Inc. Method and device for displaying notification information
DK179360B1 (en) 2015-06-07 2018-05-22 Apple Inc Devices, methods and graphical user interfaces for providing and interacting with notifications
US20160364574A1 (en) * 2015-06-11 2016-12-15 Microsoft Technology Licensing, Llc Content projection over device lock screen
EP3319000A1 (en) * 2016-11-02 2018-05-09 Skeyecode Method for securing a transaction performed from a non-secure terminal
KR102285880B1 (ko) * 2017-05-17 2021-08-05 구글 엘엘씨 데이터 유출 방지
KR20210003802A (ko) * 2018-04-12 2021-01-12 텔레폰악티에볼라겟엘엠에릭슨(펍) 전달된 코드 모듈을 사용하는 보안 장치 동작
CN111026446A (zh) * 2018-10-09 2020-04-17 阿里巴巴集团控股有限公司 锁屏方法、锁屏系统、数据处理方法及设备
US11204984B2 (en) * 2019-06-12 2021-12-21 Blackberry Limited Systems and methods for managing access to application data on computing devices

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NZ531131A (en) 2001-08-13 2005-12-23 Qualcomm Inc Using permissions to allocate device resources to an application
US20040203895A1 (en) * 2002-12-16 2004-10-14 Senaka Balasuriya Locking of communication device based on proximity
US8453065B2 (en) 2004-06-25 2013-05-28 Apple Inc. Preview and installation of user interface elements in a display environment
US20060143715A1 (en) 2004-12-28 2006-06-29 Motorola, Inc. Method and apparatus for providing security policy enforcement
US7743336B2 (en) * 2005-10-27 2010-06-22 Apple Inc. Widget security
US20070136207A1 (en) * 2005-12-13 2007-06-14 Nokia Corporation Locking of applications for specially marked content
JP4185533B2 (ja) 2006-06-15 2008-11-26 株式会社カシオ日立モバイルコミュニケーションズ 認証機能付き携帯端末装置及びプログラム
JP2008021021A (ja) 2006-07-11 2008-01-31 Hitachi Ltd ソフトウエアのライセンス認証方法
JP4982256B2 (ja) 2007-06-04 2012-07-25 京セラドキュメントソリューションズ株式会社 電子機器、アプリケーション認証方法、アプリケーション実行システムおよびアプリケーション実行プログラム
US20090253406A1 (en) * 2008-04-02 2009-10-08 William Fitzgerald System for mitigating the unauthorized use of a device
US8756704B2 (en) * 2008-12-15 2014-06-17 International Business Machines Corporation User impersonation and authentication
US8326358B2 (en) * 2009-01-30 2012-12-04 Research In Motion Limited System and method for access control in a portable electronic device
US20100242097A1 (en) 2009-03-20 2010-09-23 Wavemarket, Inc. System and method for managing application program access to a protected resource residing on a mobile device
US8683554B2 (en) 2009-03-27 2014-03-25 Wavemarket, Inc. System and method for managing third party application program access to user information via a native application program interface (API)
US8434153B2 (en) * 2009-08-24 2013-04-30 Microsoft Corporation Application display on a locked device
US8499346B2 (en) 2009-12-18 2013-07-30 Ncr Corporation Secure authentication at a self-service terminal
US8811948B2 (en) * 2010-07-09 2014-08-19 Microsoft Corporation Above-lock camera access
US8249556B2 (en) * 2010-07-13 2012-08-21 Google Inc. Securing a mobile computing device
KR101684970B1 (ko) * 2010-08-18 2016-12-09 엘지전자 주식회사 이동단말기 및 그 제어방법
KR101669967B1 (ko) * 2010-08-23 2016-10-27 엘지전자 주식회사 이동단말기 및 그 제어방법
CN102542202A (zh) * 2011-12-27 2012-07-04 长春希达电子技术有限公司 实时锁屏系统
CN102647521B (zh) * 2012-04-05 2013-10-09 福州博远无线网络科技有限公司 基于语音短命令和声纹技术解除手机锁屏的方法

Also Published As

Publication number Publication date
EP2904535B1 (en) 2018-11-14
KR20160111543A (ko) 2016-09-26
EP2904535A4 (en) 2016-06-22
EP2904535A1 (en) 2015-08-12
CN104813326A (zh) 2015-07-29
KR20150055102A (ko) 2015-05-20
US8954736B2 (en) 2015-02-10
WO2014055313A1 (en) 2014-04-10
US20140101768A1 (en) 2014-04-10
KR101622300B1 (ko) 2016-05-18
CN104813326B (zh) 2016-12-14

Similar Documents

Publication Publication Date Title
KR101622300B1 (ko) 보안 모델에 기초한 소프트웨어 프로그램의 기능 제한
US11157616B2 (en) Mobile application management
KR102038467B1 (ko) 암호 설정 방법 및 장치와, 락 해제 방법 및 장치
US10788984B2 (en) Method, device, and system for displaying user interface
CN105519038B (zh) 用户输入的数据保护方法及系统
US11336599B2 (en) Architecture for performing action in a third-party service by an email client
CN104866752B (zh) 一种应用保护方法及用户终端
CA2813172A1 (en) Multiple-access-level lock screen
Shin et al. Design and implementation of improved authentication system for android smartphone users
WO2016177000A1 (zh) 进入操作系统桌面的方法和移动智能终端
US10582005B2 (en) Architecture for performing actions in a third-party service by an email client
WO2019100897A1 (zh) 一种应用程序启动方法、启动装置及计算机可读存储介质
US20180137268A1 (en) Authentication screen
CN105956431A (zh) 一种应用保护处理方法和移动终端
CN106022077A (zh) 一种屏幕解锁方法及终端
CN105786370B (zh) 用户界面解锁的方法及装置
Huang et al. A11y and Privacy don't have to be mutually exclusive: Constraining Accessibility Service Misuse on Android
KR100925508B1 (ko) 액티브엑스 컨트롤 실행 관리 장치 및 방법
KR101716690B1 (ko) 데이터 무단 엑세스 차단 방법 및 그 기능이 구비된 컴퓨팅 장치
KR101033932B1 (ko) 웹브라우저를 통한 악성행위를 차단하는 장치 및 방법
Gangwal et al. AutoSpill: Credential Leakage from Mobile Password Managers
CN111279339B (zh) 一种应用锁定的方法、终端设备及计算机可读介质
CN106485105A (zh) 一种终端系统的安全保护方法及设备
Hidhaya et al. Supplementary event-listener injection attack in smart phones
Wang et al. Fingerprint-jacking: Practical fingerprint authorization hijacking in Android apps

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190425

Year of fee payment: 4