KR102532696B1 - 어플리케이션의 포그라운드 서비스 실행시 보안을 제공하기 위한 통신 단말 및 방법 - Google Patents

어플리케이션의 포그라운드 서비스 실행시 보안을 제공하기 위한 통신 단말 및 방법 Download PDF

Info

Publication number
KR102532696B1
KR102532696B1 KR1020180080710A KR20180080710A KR102532696B1 KR 102532696 B1 KR102532696 B1 KR 102532696B1 KR 1020180080710 A KR1020180080710 A KR 1020180080710A KR 20180080710 A KR20180080710 A KR 20180080710A KR 102532696 B1 KR102532696 B1 KR 102532696B1
Authority
KR
South Korea
Prior art keywords
foreground service
foreground
application
communication terminal
service
Prior art date
Application number
KR1020180080710A
Other languages
English (en)
Other versions
KR20200006841A (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 주식회사 케이티
Priority to KR1020180080710A priority Critical patent/KR102532696B1/ko
Publication of KR20200006841A publication Critical patent/KR20200006841A/ko
Application granted granted Critical
Publication of KR102532696B1 publication Critical patent/KR102532696B1/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/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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Telephone Function (AREA)

Abstract

안드로이드 등의 운영체제 기반에서 어플리케이션의 포그라운드 서비스가 실행될 때 악성 스크립트 등에 의한 공격을 방어하여 보안을 제공하는 방법 및 이를 위한 통신 단말이 개시된다. 일 측면에 따른 통신 단말은, 프로그램들을 저장하는 메모리; 및 상기 메모리와 결합되어 상기 프로그램들을 실행하는 프로세서를 포함하고, 상기 프로그램들은, 사용자로부터 최근 실행된 어플리케이션들을 모두 한 번에 종료하기 위한 모두 지우기 입력의 감지시, 현재 백그라운드에서 실행 중이면서 상태 바를 통해 종료할 수 있는 적어도 하나 이상의 어플리케이션으로 포그라운드 서비스 종료 명령을 전송하는 포그라운드 서비스 제어 모듈을 포함한다.

Description

어플리케이션의 포그라운드 서비스 실행시 보안을 제공하기 위한 통신 단말 및 방법{COMMUNICATION TERMINAL AND METHOD FOR PROVIDING SECURITY WHEN FOREGROUND SERVICE OF APPLICATION IS RUNNING}
본 발명은 안드로이드 등의 운영체제 기반에서의 어플리케이션의 포그라운드 서비스 기술에 관한 것으로서, 보다 구체적으로 안드로이드 등의 운영체제 기반에서 어플리케이션의 포그라운드 서비스가 실행될 때 보안을 제공하는 방법 및 이를 위한 통신 단말에 관한 것이다.
최근 디지털 기술의 발달과 함께 이동통신 단말기, PDA(Personal Digital Assistant), 전자수첩, 스마트 폰, 태블릿 PC(Personal Computer), 웨어러블 디바이스(wearable device) 등과 같은 다양한 유형의 통신 단말이 널리 사용되고 있다. 이러한, 통신 단말은 음성 통화, SMS(Short Message Service)/MMS(Multimedia Message Service) 등과 같은 메시지 전송, 영상통화, 전자수첩, 촬영, 이메일 송수신, 방송재생, 인터넷, 음악재생, 일정관리, 소셜 네트워크 서비스(SNS, Social Networking Service), 메신저, 사전, 게임 등의 기능과 같이 다양한 기능들을 구비하게 되었다.
현재 통신 단말의 대표적인 운영체제로서 안드로이드(Android)와 IOS를 들 수 있다. 안드로이드 운영체제는 구글에서 개발한 것으로서 구글 앱 스토어에서 어플리케이션을 다운로드하여 설치할 수 있도록 지원한다. 이러한 어플리케이션들은 자체 UI(User Interface)를 제공하면서 동시에 브라우저와 같이 웹 페이지를 표시할 수 있도록 지원한다. 안드로이드 운영체제는 자체적으로 통신 단말과 밀접하게 결합되어 있어서 푸시, 백그라운드 서비스, 포그라운드 서비스 등의 사용자 환경을 제공하고 있다. 이중 백그라운드 서비스는 현재 무언가 실행되고 있다는 것을 사용자가 인지하지 못하는 서비스이고, 포그라운드 서비스는 현재 무언가 실행되고 있다는 것을 사용자가 인지하고 있는 서비스이다.
최근 출시된 안드로이드 O 버전에서는 고질적인 배터리 수명 문제를 개선하기 위해 백그라운드 서비스 실행을 강제로 제한한다. 즉, 기존 모든 백그라운드 서비스는 포그라운드 서비스로 전환하여, 사용자에게 포그라운드 서비스가 실행 중임을 상단의 상태 바를 통해 알려야 하는 것으로 변경되었다. 그리고 사용자는 상단의 상태 바에서 포그라운드 서비스를 강제로 종료할 수 있도록 변경되었다. 다시 말하면, 기존에는 디스플레이에 실행 중인 화면이 표시되지 않고 백그라운드로 실행되면 백그라운드 서비스라 하였으나, 지금은 디스플레이에 실행 중인 화면이 표시되지 않더라도 상태 바를 통해 서비스가 실행 중인 것이 알려지므로 해당 서비스는 백그라운드 서비스가 아닌 포그라운드 서비스로 정의된다.
이와 같이 백그라운드에서 동작하면서 상태 바를 통해 실행 중임을 알리는 포그라운드 서비스는 오직 상태 바를 통해서만 종료할 수 있다. 즉, 안드로이드 운영체제의 통신 단말에서는 왼쪽 하단의 메뉴를 누르면 최근 실행하였던 어플리케이션들의 목록이 나오고 '모두 지우기'를 누르면 최근 실행되었던 어플리케이션의 태스크들이 모두 삭제되어 종료될 수 있도록 하는데, 백그라운드에서 동작하면서 상태 바를 통해 실행 중임을 알리는 포그라운드 서비스는 '모두 지우기'를 통해 종료되지 않고, 오직 상태 바를 통해서만 종료해야 한다. 즉, 상태 바를 내린 후 개별적으로 포그라운드 서비스를 종료해야 한다. 도 6은 상태 바를 내렸을 때 포그라운드 서비스를 알리는 화면이다.
이러한 특성은 해커에 의한 공격 대상이 될 수 있다. 예를 들어, 어플리케이션이 웹 페이지를 표시할 때 웹 페이지가 정상적으로 표시되지 않고 블랭크(blank) 페이지가 발생하는 경우가 있다. 이는 어플리케이션이 데이터를 받지 못하였거나 쿠키가 정상적인 정보가 아닐 경우 또는 잘못된 데이터의 유입으로 인해, 또는 악성 스크립트가 포함된 URL에 접속하여 발생할 수 있다. 이와 같이 블랭크 페이지가 발생하더라도 어플리케이션은 지속적으로 웹 커넥션을 유지하고 있는 상태이다. 이와 같은 오류 발생시 일반적으로 스마트 폰을 사용하는 사용자들은 상태 바를 내려서 어플리케이션을 종료시키기 보다는 '모두 지우기' 메뉴를 통해 어플리케이션을 종료시킨다. 그런데 '모두 지우기'로는 해당 어플리케이션의 포그라운드 서비스가 종료되지 않으므로 악성 스크립트에 의한 개인 정보 탈취가 지속적으로 이루어질 수 있다.
본 발명은 상기와 같은 문제점을 해결하기 위해 제안된 것으로서, 안드로이드 등의 운영체제 기반에서 어플리케이션의 포그라운드 서비스가 실행될 때 악성 스크립트 등에 의한 공격을 방어하여 보안을 제공하는 방법 및 이를 위한 통신 단말을 제공하는데 목적이 있다.
일 측면에 따른 통신 단말은, 프로그램들을 저장하는 메모리; 및 상기 메모리와 결합되어 상기 프로그램들을 실행하는 프로세서를 포함하고, 상기 프로그램들은, 사용자로부터 최근 실행된 어플리케이션들을 모두 한 번에 종료하기 위한 모두 지우기 입력의 감지시, 현재 백그라운드에서 실행 중이면서 상태 바를 통해 종료할 수 있는 적어도 하나 이상의 어플리케이션으로 포그라운드 서비스 종료 명령을 전송하는 포그라운드 서비스 제어 모듈을 포함한다.
상기 프로그램들은, 스케줄러를 더 포함하고, 상기 포그라운드 서비스 제어 모듈은, 상기 적어도 하나 이상의 어플리케이션으로부터, 미리 허용된 포그라운드 서비스 목록을 수신하여 상기 스케줄러에 등록한 후에 상기 포그라운드 서비스 종료 명령을 전송할 수 있다.
상기 스케줄러는, 상기 포그라운드 서비스 종료 명령에 대한 응답이 수신되면, 상기 미리 허용된 포그라운드 서비스 목록의 포그라운드 서비스를 재실행할 수 있다.
상기 포그라운드 서비스 제어 모듈은, 상기 모두 지우기 입력의 감지시마다, 현재 백그라운드에서 실행 중이면서 상태 바를 통해 종료할 수 있는 적어도 하나 이상의 어플리케이션으로부터, 미리 허용된 포그라운드 서비스 목록을 수신하여 상기 스케줄러에 등록할 수 있다.
상기 포그라운드 서비스 제어 모듈은, 어플리케이션의 설치시마다 해당 어플리케이션으로부터, 미리 허용된 포그라운드 서비스 목록을 수신하여 저장하고, 특정 포그라운드 서비스로부터 컨텍스트 생성 요청시 그 특정 포그라운드 서비스가 상기 미리 허용된 포그라운드 서비스 목록에 속하지 않으면 컨텍스트 실패 응답을 회신할 수 있다.
상기 포그라운드 서비스 제어 모듈 및 상기 스케줄러는, 안드로이드 운영체제의 커널 계층에 속한다.
다른 측면에 따른 통신 단말에서 포그라운드 서비스 제어 모듈이 보안을 제공하는 방법은, 사용자로부터 최근 실행된 어플리케이션들을 모두 한 번에 종료하기 위한 모두 지우기 입력을 감지하는 단계; 및 현재 백그라운드에서 실행 중이면서 상태 바를 통해 종료할 수 있는 적어도 하나 이상의 어플리케이션으로 포그라운드 서비스 종료 명령을 전송하는 단계를 포함한다.
상기 방법은, 상기 전송하는 단계 이전에, 상기 적어도 하나 이상의 어플리케이션으로부터, 미리 허용된 포그라운드 서비스 목록을 수신하여 스케줄러에 등록하는 단계를 더 포함할 수 있다.
상기 방법은, 상기 전송하는 단계 이후에, 상기 포그라운드 서비스 종료 명령에 대한 응답이 수신되면, 상기 미리 허용된 포그라운드 서비스 목록의 포그라운드 서비스를 재실행하는 단계를 더 포함할 수 있다.
상기 스케줄러에 등록하는 단계는, 상기 모두 지우기 입력의 감지시마다 반복 수행될 수 있다.
상기 방법은, 상기 감지하는 단계 이전에, 어플리케이션의 설치시마다 해당 어플리케이션으로부터, 미리 허용된 포그라운드 서비스 목록을 수신하여 저장하는 단계; 및 특정 포그라운드 서비스로부터 컨텍스트 생성 요청시 그 특정 포그라운드 서비스가 상기 미리 허용된 포그라운드 서비스 목록에 속하지 않으면 컨텍스트 실패 응답을 회신하는 단계를 더 포함할 수 있다.
본 발명에 따르면, 어플리케이션에서 웹 페이지 표시를 위한 컨텍스트 생성 요청이 발생할 때, 미리 허용된 포그라운드 서비스로부터의 요청이 아닐 때는 컨텍스트 생성을 실패 처리함으로써 허용되지 않은 포그라운드 서비스의 실행 자체를 차단하여 보안을 강화한다.
본 발명에 따르면, 사용자가 통신 단말에서 상태 바에서 종료를 입력하지 않고 '모두 지우기' 입력을 할 때에도 모든 포그라운드 서비스를 강제로 종료함으로써 신속하게 포그라운드 서비스를 종료할 수 있어 보안을 강화한다.
도 1은 본 발명의 일 실시예에 따른 통신 단말을 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 통신 단말의 프로그램들을 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른 포그라운드 서비스를 제어하기 위한 구성을 프로그램 계층별로 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따른 포그라운드 서비스를 강제로 종료하는 방법을 설명하는 흐름도이다.
도 5는 본 발명의 다른 실시예에 따른 포그라운드 서비스 실행을 차단하는 방법을 설명하는 흐름도이다.
도 6은 상태 바를 내렸을 때 포그라운드 서비스를 알리는 화면이다.
상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일 실시예를 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 통신 단말을 나타낸 도면이다. 도 1을 참조하면, 통신 단말(100)은 버스(110), 프로세서(120), 메모리(130), 입출력 인터페이스(150), 디스플레이(160), 및 통신 인터페이스(170)를 포함할 수 있다. 어떤 실시예에서는, 통신 단말(100)은, 구성요소들 중 적어도 하나를 생략하거나 다른 구성요소를 더 구비할 수 있다.
버스(110)는 구성요소들(110-170)을 서로 연결하고, 구성요소들 간의 통신(예: 제어 메시지 또는 데이터)을 전달하는 회로를 포함할 수 있다. 프로세서(120)는, 중앙처리장치(central processing unit(CPU)), 어플리케이션 프로세서(application processor(AP)), 또는 커뮤니케이션 프로세서(communication processor(CP)) 중 하나 또는 그 이상을 포함할 수 있다. 프로세서(120)는, 예를 들면, 통신 단말(100)의 적어도 하나의 다른 구성요소들의 제어 및/또는 통신에 관한 연산이나 데이터 처리를 실행할 수 있다.
메모리(130)는, 휘발성 및/또는 비휘발성 메모리를 포함할 수 있다. 메모리(130)는, 예를 들면, 통신 단말(100)의 적어도 하나의 다른 구성요소에 관계된 명령 또는 데이터를 저장할 수 있다. 한 실시예에 따르면, 메모리(130)는 소프트웨어 및/또는 프로그램(140)을 저장할 수 있다. 프로그램(140)은, 예를 들면, 커널(141), 미들웨어(143), 어플리케이션 프로그래밍 인터페이스(API)(145), 및/또는 어플리케이션(147) 등을 포함할 수 있다. 커널(141), 미들웨어(143), 또는 API(145)의 적어도 일부는, 운영 시스템으로 지칭될 수 있다. 커널(141)은, 예를 들면, 다른 프로그램들(예: 미들웨어(143), API(145), 또는 어플리케이션(147))에 구현된 동작 또는 기능을 실행하는 데 사용되는 시스템 리소스들(예: 버스(110), 프로세서(120), 또는 메모리(130) 등)을 제어 또는 관리할 수 있다. 또한, 커널(141)은 미들웨어(143), API(145), 또는 어플리케이션(147)에서 통신 단말(100)의 개별 구성요소에 접근함으로써, 시스템 리소스들을 제어 또는 관리할 수 있는 인터페이스를 제공할 수 있다.
미들웨어(143)는, 예를 들면, API(145) 또는 어플리케이션(147)이 커널(141)과 통신하여 데이터를 주고받을 수 있도록 중개 역할을 수행할 수 있다. 또한, 미들웨어(143)는 어플리케이션(147)으로부터 수신된 하나 이상의 작업 요청들을 우선 순위에 따라 처리할 수 있다. 예를 들면, 미들웨어(143)는 어플리케이션(147) 중 적어도 하나에 통신 단말(100)의 시스템 리소스(예: 버스(110), 프로세서(120), 또는 메모리(130) 등)를 사용할 수 있는 우선 순위를 부여하고, 상기 하나 이상의 작업 요청들을 처리할 수 있다.
API(145)는 어플리케이션(147)이 커널(141) 또는 미들웨어(143)에서 제공되는 기능을 제어하기 위한 인터페이스로, 예를 들면, 파일 제어, 창 제어, 영상 처리, 또는 문자 제어 등을 위한 적어도 하나의 인터페이스 또는 함수(예: 명령어)를 포함할 수 있다. 입출력 인터페이스(150)는, 예를 들면, 사용자 또는 다른 외부 기기로부터 입력된 명령 또는 데이터를 통신 단말(100)의 다른 구성요소(들)에 전달하거나, 또는 전자 장치(101)의 다른 구성요소(들)로부터 수신된 명령 또는 데이터를 사용자 또는 다른 외부 기기로 출력할 수 있다.
디스플레이(160)는, 예를 들면, 액정 디스플레이(LCD), 발광 다이오드(LED) 디스플레이, 유기 발광 다이오드(OLED) 디스플레이, 또는 마이크로 전자기계 시스템 (MEMS) 디스플레이, 또는 전자종이(electronic paper) 디스플레이를 포함할 수 있다. 디스플레이(160)는, 예를 들면, 사용자에게 각종 콘텐츠(예: 텍스트, 이미지, 비디오, 아이콘, 및/또는 심볼 등)을 표시할 수 있다. 디스플레이(160)는, 터치 스크린을 포함할 수 있으며, 예를 들면, 전자 펜 또는 사용자의 신체의 일부를 이용한 터치, 제스쳐, 근접, 또는 호버링 입력을 수신할 수 있다. 통신 인터페이스(170)는, 예를 들면, 통신 단말(100)과 외부 장치 간의 통신을 설정할 수 있다. 예를 들면, 통신 인터페이스(170)는 무선 통신 또는 유선 통신을 통해서 네트워크에 연결되어 외부 장치(106))와 통신할 수 있다.
무선 통신은, 예를 들면, LTE, LTE-A(LTE advance), CDMA(code division multiple access), WCDMA(wideband CDMA), UMTS(universal mobile telecommunications system), WiBro(wireless broadband), 또는 GSM(global system for mobile communications) 등 중 적어도 하나를 사용하는 셀룰러 통신을 포함할 수 있다. 일 실시예에 따르면, 무선 통신은, 예를 들면, WiFi(wireless fidelity), 블루투스, 블루투스 저전력(BLE: bluetooth low energy), 지그비(Zigbee), NFC(near field communication), 자력 시큐어 트랜스미션(magnetic secure transmission), 라디오 프리퀀시(RF), 또는 보디 에어리어 네트워크(BAN) 중 적어도 하나를 포함할 수 있다.
도 2는 본 발명의 일 실시예에 따른 통신 단말의 프로그램들을 나타낸 도면이다. 도 2를 참조하면, 프로그램들은 커널(141), 미들웨어(143), API(145), 및 어플리케이션(147)을 포함할 수 있다. 프로그램들의 적어도 일부는 통신 단말(100) 상에 프리로드되거나, 외부 장치, 예를 들어 구글 플레이 등의 서버로부터 다운로드 가능하다. 커널(141), 미들웨어(143), 또는 API(145)의 적어도 일부는, 운영 시스템으로 지칭될 수 있다. 운영체제는, 예를 들면, Android, iOS, Windows, Symbian, Tizen, 또는 Bada를 포함할 수 있다. 바람직하게 운영체제는 안드로이드(Android)이다.
커널(141)은, 예를 들면, 시스템 리소스 매니저(221) 및/또는 디바이스 드라이버(222)를 포함할 수 있다. 시스템 리소스 매니저(221)는 시스템 리소스의 제어, 할당, 또는 회수를 수행할 수 있다. 일 실시예에 따르면, 시스템 리소스 매니저(221)는 프로세스 관리부, 메모리 관리부, 또는 파일 시스템 관리부를 포함할 수 있다. 디바이스 드라이버(222)는, 예를 들면, 디스플레이 드라이버, 카메라 드라이버, 블루투스 드라이버, 공유 메모리 드라이버, USB 드라이버, 키패드 드라이버, WiFi 드라이버, 오디오 드라이버, 또는 IPC(inter-process communication) 드라이버를 포함할 수 있다.
미들웨어(143)는, 예를 들면, 어플리케이션(147)이 공통적으로 필요로 하는 기능을 제공하거나, 어플리케이션(147)이 통신 단말 내부의 제한된 시스템 자원을 사용할 수 있도록 API(145)를 통해 다양한 기능들을 어플리케이션(147)으로 제공할 수 있다. 실시예에 따르면, 미들웨어(143)는 어플리케이션 매니저(211), 윈도우 매니저(212), 리소스 매니저(213), 노티피케이션 매니저(214) 등을 포함한다. 어플리케이션 매니저(211)는, 예를 들면, 어플리케이션(147)의 생명 주기를 관리할 수 있다. 윈도우 매니저(212)는 화면에서 사용되는 GUI 자원을 관리할 수 있다. 리소스 매니저(213)는 어플리케이션(147)의 소스 코드 또는 메모리의 공간을 관리할 수 있다. 노티피케이션 매니저(214)는, 예를 들면, 도착 메시지, 약속, 근접성 알림 등의 이벤트를 사용자에게 제공할 수 있다. 이외에도 파워 매니저, 런타임 라이브러리, 패키지 매니저, 커넥티비티 매니저 등을 포함할 수 있다. 미들웨어(143)는 운영체제의 종류별로 특화된 모듈을 제공할 수 있다.
API(145)는 예를 들면, API 프로그래밍 함수들의 집합으로, 운영체제에 따라 다른 구성으로 제공될 수 있다. 예를 들면, 안드로이드 또는 iOS의 경우, 플랫폼별로 하나의 API 셋을 제공할 수 있으며, 타이젠의 경우, 플랫폼별로 두 개 이상의 API 셋을 제공할 수 있다.
어플리케이션(147)은, 예를 들면, 홈(201), 다이얼러(202), 브라우저(203), 카메라(204) 등을 포함할 수 있다. 이외에도 SMS/MMS, IM(Instant Message), 알람, 앨범, 이메일 등을 포함할 수 있다.
도 3은 본 발명의 일 실시예에 따른 포그라운드 서비스를 제어하기 위한 구성을 프로그램 계층별로 나타낸 도면이다. 도 3을 참조하면, 어플리케이션(147)은, 액티비티 컴포넌트(301), 서비스 컴포넌트(302), 브로드캐스트 리시버 컴포넌트(303) 및 컨텐츠 프로바이더 컴포넌트(304)를 포함한다.
액티비티 컴포넌트(301)는, 사용자에게 보여주는 UI(User Interface)를 구성하는 컴포넌트이고, 하나의 어플리케이션(147)에 적어도 하나 이상 존재한다. 이러한 액티비티 컴포넌트(301)는 매니페이스에서 선언되어야 한다. 서비스 컴포넌트(302)는, 포그라운드 서비스와 백그라운드 서비스를 포함한다. 포그라운드 서비스는 사용자가 인지할 수 있는 서비스이고 백드라운드 서비스는 사용자가 인지할 수 없는 서비스이다. 브로드캐스트 리시버 컴포넌트(303)는 통신 단말(100)에서 발생하는 이벤트나 정보를 수신하여 처리하는 컴포넌트이다. 예를 들어 배터리 부족이나 WiFi 설정, 전화나 문자 메시지 수신 등 통신 단말(100)에서 발생하는 이벤트나 정보를 수신하여 처리한다. 컨텐츠 프로바이더 컴포넌트(304)는 어플리케이션 사이에서 데이터를 공유하는 컴포넌트이다.
본 발명에 있어서 어플리케이션(147)에는 미리 허용된 포그라운드 서비스 목록이 설정된다. 어플리케이션(147)의 개발 단계에서 개발자에 의해 어플리케이션(147)에 설정될 수 있다. 안드로이드 운영체제에서 태스크(task)는 어플리케이션이 실행될 때 해당 실행되는 어플리케이션의 상술한 관련 컴포넌트를 묶어놓은 그룹의 개념이다. 즉 태스크는 일정한 프로그램 영역(예: 코드, 변수, 스택 등)을 가지고 실행되는 작업(job)을 의미할 수 있다. 태스크는 사용자의 요청을 대리할 수 있다. 예를 들어, 상기 태스크는 임베디드 시스템(embedded system)에서 스케쥴링(scheduling)의 최소 단위를 의미할 수 있다. 또한, 프로세스(process)는 상기 태스크와 관련된 프로그램이 메모리(130)에 올려져 프로세서(120)에 의해 실행되는 것을 의미할 수 있다. 따라서, 프로세스와 태스크는 처리되는 계층이 상이할 뿐, 통신 단말(100)에서 수행되는 동일한 프로그램을 의미할 수 있다. 그리고 본 발명에서의 '서비스'는 더 포괄적으로 태스크를 의미할 수도 있다. 포그라운드 서비스의 종료는 태스크의 종료 또는 프로세스의 종료를 포함할 수 있다.
안드로이드 운영체제의 스마트폰에서 좌측 하단 메뉴 버튼을 입력하면 최근에 실행되었던 어플리케이션들의 목록이 나타나고 이들을 모두 지울 수 있는 '모두 지우기'(즉, kill recent Task) 메뉴가 제공된다. 사용자가 '모두 지우기'를 입력하면, 안드로이드 운영체제는 최근에 실행되었던 어플리케이션들(즉, 태스크들)을 모두 종료시킨다. 그러나 종래의 안드로이드 운영체제는 어플리케이션 중에서 백그라운드로 동작하면서 상태 바에 어플리케이션이 실행 중임을 알리는 포그라운드 서비스는 종료시키지 않는다. 안드로디드 O 버전부터는 사용자가 직접 상태 바에서 종료를 선택해야 한다. 도 3을 참조하면, 커널 계층의 미들웨어(143)에는 포그라운드 서비스 제어 모듈(320)과 스케줄러(330)가 포함되고, 상기 포그라운드 서비스 제어 모듈(320) 및 상기 스케줄러(330)가 해당 포그라운드 서비스를 강제로 종료시키고 재실행시킨다.
포그라운드 서비스 제어 모듈(320)은, 사용자로부터 '모두 지우기'에 관한 입력을 감지한다. 포그라운드 서비스 제어 모듈(320)은, 사용자의 '모두 지우기' 입력을 감지하면, 포그라운드 서비스를 실행 중인 어플리케이션으로부터, 허용된 포그라운드 서비스 목록을 읽어들이고 이를 스케줄러(330)에 등록한다. 이러한 등록은, '모두 지우기' 입력이 감지될 때마다 수행된다. '모두 지우기'는 안드로이드 운영체제에서 하단 메뉴를 누르면 나오기도 하고 또는 상태 바를 내리면 나오기도 한다. 그리고 나서 포그라운드 서비스 제어 모듈(320)은 실행 중인 포그라운드 서비스로 종료 명령을 전송하여 강제로 종료시킨다. 나머지 최근 실행되었던 태스크들은 운영체제에 의해 원래대로 종료된다.
스케줄러(330)는, 상기 포그라운드 서비스 제어 모듈(320)로부터, 허용된 포그라운드 서비스 목록을 수신하여 등록하고, 상기 포그라운드 서비스 제어 모듈(320)로부터 포그라운드 서비스 종료 완료 신호가 수신되면, 상기 등록한 포그라운드 서비스 목록에 해당하는 포그라운드 서비스들을 재실행시킨다. 백그라운드에서 실행되지만 상태 바에 실행 중임을 알리는 포그라운드 서비스에서 오류가 발생하여 블랭크(blank) 페이지 등이 발생한 경우, 사용자는 '모두 지우기'를 실행할 수 있고, 종래에는 해당 포그라운드 서비스는 상태 바에서 종료하지 않는 한 종료되지 않았으나 본 발명에서는 해당 포그라운드 서비스는 '모두 지우기'시 강제 종료된다. 그리고 해당 포그라운드 서비스는 지속적인 실행이 요구되기 때문에 자동으로 재실행시켜 블랭크 페이지 등의 오류를 제거한 정상적인 페이지를 표시한다.
도 4는 본 발명의 일 실시예에 따른 포그라운드 서비스를 강제로 종료하는 방법을 설명하는 흐름도이다.
도 4를 참조하면, 어플리케이션(147)은 하이브리드 어플리케이션일 수 있다. 즉 자체 UI를 구현하여 컨텐츠를 표시할 수도 있고 또는 사용자로부터 입력된 URL에 접속하여 웹 페이지를 수신하여 표시할 수 있다. 본 실시예에서 어플리케이션(147), 바람직하게는 액티비티 컴포넌트(301)는 사용자로부터 입력된 URL에 접속하여 웹 페이지를 수신하는 것을 설명한다. 어플리케이션(147)은 웹 페이지의 표시를 위해 커널 계층의 윈도우 매니저(212)로 컨텍스트(context) 생성을 요청한다(S401). 윈도우 매니저(212)는 화면에서 사용되는 GUI 자원을 관리하는 커널 계층의 컴포넌트로서, 어플리케이션(147)으로 컨텍스트를 반환한다(S402).
어플리케이션(147)은 윈도우 매니저(212)로부터 수신된 컨텍스트를 이용하여 포그라운드 서비스를 실행한다(S403). 그리고 어플리케이션(147)은 상기 컨텍스트를 이용하여 웹 화면을 생성하여 표시한다(S404). 그런데, 잘못된 데이터의 유입으로 인해 웹 화면이 정상적으로 표시되지 않고 블랭크(blank) 페이지가 발생할 수 있다. 블랭크 페이지가 발생하더라도 어플리케이션(147)의 포그라운드 서비스는 웹 커넥션을 계속 유지하게 된다.
따라서, 사용자는 블랭크 페이지 등의 오류 발생시, 통신 단말(100)에서 '모두 지우기'를 입력하게 되고, 커널 계층의 포그라운드 서비스 제어 모듈(320)은 사용자의 '모두 지우기' 입력을 감지한다(S405). 이에 따라 포그라운드 서비스 제어 모듈(320)은 현재 포그라운드 서비스가 실행 중인 어플리케이션(147)으로 해당 어플리케이션(147)에 등록되어 있는 허용된 포그라운드 서비스 목록을 요청하고 응답을 수신한다(S406, S407). 그리고 포그라운드 서비스 제어 모듈(320)은 수신된 응답, 즉 허용된 포그라운드 서비스 목록을 스케줄러(330)에 전송하여 등록한다(S408).
이어서 포그라운드 서비스 제어 모듈(320)은 어플리케이션(147), 보다 구체적으로는 포그라운드 서비스 컴포넌트(302)로 종료 명령을 전송한다(S409). 포그라운드 서비스 컴포넌트(302)는 상기 종료 명령에 따라 종료하고 이에 대한 응답을 회신한다(S410). 포그라운드 서비스 제어 모듈(320)은 회신된 응답을 스케줄러(330)로 전달하고(S411), 스케줄러(330)는 상기 단계 S408에서 등록된 허용된 포그라운드 서비스를 재실행한다. 즉 스케줄러(330)는 어플리케이션(147)으로 포그라운드 서비스의 재실행을 요청한다(S412). 따라서, 종료되었던 포그라운드 서비스가 재실행되어 정상적인 웹 화면이 표시될 수 있다.
도 5는 본 발명의 다른 실시예에 따른 포그라운드 서비스 실행을 차단하는 방법을 설명하는 흐름도이다.
도 5를 참조하면, 통신 단말(100)에 사용자로부터 입력된 URL에 접속하여 웹 페이지를 수신하여 표시할 수 있는 어플리케이션(147)이 설치된다(S501). 예를 들어, 통신 단말(100)의 구글 플레이는 사용자가 선택한 어플리케이션(147)을 앱 스토어 서버로부터 다운로드하여 설치한다. 설치 후 어플리케이션(147)은 기 등록되어 있는 허용된 포그라운드 서비스 목록을 커널 계층의 포그라운드 서비스 제어 모듈(320)로 전송한다(S502). 포그라운드 서비스 제어 모듈(320)은 수신된 허용된 포그라운드 서비스 목록을 저장한다(S503).
한편, 사용자에 의해 어플리케이션(147)이 실행될 수 있다. 본 실시예에서 어플리케이션(147), 바람직하게는 액티비티 컴포넌트(301) 또는 포그라운드 서비스 컴포넌트(302)는 URL에 접속하여 웹 페이지를 수신하는 것을 설명한다. 어플리케이션(147)은 웹 페이지의 표시를 위해 커널 계층의 윈도우 매니저(212)로 컨텍스트(context) 생성을 요청한다(S504). 윈도우 매니저(212)는 화면에서 사용되는 GUI 자원을 관리하는 커널 계층의 컴포넌트로서, 어플리케이션(147)으로 컨텍스트를 반환하기 전에, 컨텍스트 생성을 요청한 포그라운드 서비스가 허용된 포그라운드 서비스인지 포그라운드 서비스 제어 모듈(320)로 확인을 요청한다(S505). 포그라운드 서비스 제어 모듈(320)은 확인 요청된 포그라운드 서비스와 단계 S503에서 저장한 허용된 포그라운드 서비스 목록을 비교하고 그 확인 결과를 응답한다(S506). 윈도우 매니저(212)는 컨텍스트를 요청한 포그라운드 서비스가 허용된 포그라운드 서비스인 경우에는 컨텍스트를 반환하고(S507), 그렇지 않은 경우 컨텍스트를 반환하지 않고 실패 응답을 어플리케이션(147)으로 회신한다.
도 5를 참조한 실시예에 따르면, 등록되지 않은 포그라운드 서비스의 실행 자체를 차단함으로써 안전한 어플리케이션 사용 환경을 유지하여 개인 정보를 보호할 수 있다. 만약 해커에 의해, 허용된 포그라운드 서비스가 해킹되었을 경우, 도 5를 참조한 실시예로 차단할 수 없겠으나, 도 4를 참조한 실시예에 따라 '모두 지우기'를 통해서 해당 포그라운드 서비스를 종료할 수 있어, 두 단계의 보안 절차를 규정할 수 있다.
본 명세서는 많은 특징을 포함하는 반면, 그러한 특징은 본 발명의 범위 또는 특허청구범위를 제한하는 것으로 해석되어서는 안 된다. 또한, 본 명세서에서 개별적인 실시예에서 설명된 특징들은 단일 실시예에서 결합되어 구현될 수 있다. 반대로, 본 명세서에서 단일 실시예에서 설명된 다양한 특징들은 개별적으로 다양한 실시예에서 구현되거나, 적절히 결합되어 구현될 수 있다.
도면에서 동작들이 특정한 순서로 설명되었으나, 그러한 동작들이 도시된 바와 같은 특정한 순서로 수행되는 것으로, 또는 일련의 연속된 순서, 또는 원하는 결과를 얻기 위해 모든 설명된 동작이 수행되는 것으로 이해되어서는 안 된다. 특정 환경에서 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다. 아울러, 상술한 실시예에서 다양한 시스템 구성요소의 구분은 모든 실시예에서 그러한 구분을 요구하지 않는 것으로 이해되어야 한다. 상술한 프로그램 구성요소 및 시스템은 일반적으로 단일 소프트웨어 제품 또는 멀티플 소프트웨어 제품에 패키지로 구현될 수 있다.
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(시디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.
100 : 통신 단말
141 : 커널
143 : 미들웨어
147 : 어플리케이션
301 : 액티비티
302 : 서비스
303 : 브로드캐스트
304 : 컨텐츠 프로바이더
320 : 포그라운드 서비스 제어 모듈
330 : 스케줄러

Claims (12)

  1. 프로그램들을 저장하는 메모리; 및
    상기 메모리와 결합되어 상기 프로그램들을 실행하는 프로세서를 포함하고,
    상기 프로그램들은,
    사용자로부터 최근 실행된 어플리케이션들을 모두 한 번에 종료하기 위한 모두 지우기 입력의 감지시, 현재 백그라운드에서 실행 중이면서 상태 바를 통해 종료할 수 있는 적어도 하나 이상의 어플리케이션으로 포그라운드 서비스 종료 명령을 전송하는 포그라운드 서비스 제어 모듈을 포함하고,
    상기 프로그램들은, 스케줄러를 더 포함하고,
    상기 포그라운드 서비스 제어 모듈은,
    상기 적어도 하나 이상의 어플리케이션으로부터, 미리 허용된 포그라운드 서비스 목록을 수신하여 상기 스케줄러에 등록한 후에 상기 포그라운드 서비스 종료 명령을 전송하는 것을 특징으로 하는 통신 단말.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 스케줄러는,
    상기 포그라운드 서비스 종료 명령에 대한 응답이 수신되면, 상기 미리 허용된 포그라운드 서비스 목록의 포그라운드 서비스를 재실행하는 것을 특징으로 하는 통신 단말.
  4. 제 1 항에 있어서,
    상기 포그라운드 서비스 제어 모듈은,
    상기 모두 지우기 입력의 감지시마다, 현재 백그라운드에서 실행 중이면서 상태 바를 통해 종료할 수 있는 적어도 하나 이상의 어플리케이션으로부터, 미리 허용된 포그라운드 서비스 목록을 수신하여 상기 스케줄러에 등록하는 것을 특징으로 하는 통신 단말.
  5. 제 1 항에 있어서,
    상기 포그라운드 서비스 제어 모듈은,
    어플리케이션의 설치시마다 해당 어플리케이션으로부터, 미리 허용된 포그라운드 서비스 목록을 수신하여 저장하고, 특정 포그라운드 서비스로부터 컨텍스트 생성 요청시 그 특정 포그라운드 서비스가 상기 미리 허용된 포그라운드 서비스 목록에 속하지 않으면 컨텍스트 실패 응답을 회신하는 것을 특징으로 하는 통신 단말.
  6. 제 1 항에 있어서,
    상기 포그라운드 서비스 제어 모듈 및 상기 스케줄러는, 안드로이드 운영체제의 커널 계층에 속하는 것을 특징으로 하는 통신 단말.
  7. 통신 단말에서 포그라운드 서비스 제어 모듈이 보안을 제공하는 방법으로서,
    사용자로부터 최근 실행된 어플리케이션들을 모두 한 번에 종료하기 위한 모두 지우기 입력을 감지하는 단계;
    상기 적어도 하나 이상의 어플리케이션으로부터, 미리 허용된 포그라운드 서비스 목록을 수신하여 스케줄러에 등록하는 단계; 및
    현재 백그라운드에서 실행 중이면서 상태 바를 통해 종료할 수 있는 적어도 하나 이상의 어플리케이션으로 포그라운드 서비스 종료 명령을 전송하는 단계를 포함하는 방법.
  8. 삭제
  9. 제 7 항에 있어서,
    상기 전송하는 단계 이후에,
    상기 포그라운드 서비스 종료 명령에 대한 응답이 수신되면, 상기 미리 허용된 포그라운드 서비스 목록의 포그라운드 서비스를 재실행하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  10. 제 7 항에 있어서,
    상기 스케줄러에 등록하는 단계는,
    상기 모두 지우기 입력의 감지시마다 반복 수행되는 것을 특징으로 하는 방법.
  11. 제 7 항에 있어서,
    상기 감지하는 단계 이전에,
    어플리케이션의 설치시마다 해당 어플리케이션으로부터, 미리 허용된 포그라운드 서비스 목록을 수신하여 저장하는 단계; 및
    특정 포그라운드 서비스로부터 컨텍스트 생성 요청시 그 특정 포그라운드 서비스가 상기 미리 허용된 포그라운드 서비스 목록에 속하지 않으면 컨텍스트 실패 응답을 회신하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  12. 제 7 항, 제 9 항 내지 제 11 항 중 어느 한 항에 따른 방법을 컴퓨터 시스템을 통해 실행하는 컴퓨터 프로그램으로서 기록매체에 기록된 컴퓨터 프로그램.
KR1020180080710A 2018-07-11 2018-07-11 어플리케이션의 포그라운드 서비스 실행시 보안을 제공하기 위한 통신 단말 및 방법 KR102532696B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180080710A KR102532696B1 (ko) 2018-07-11 2018-07-11 어플리케이션의 포그라운드 서비스 실행시 보안을 제공하기 위한 통신 단말 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180080710A KR102532696B1 (ko) 2018-07-11 2018-07-11 어플리케이션의 포그라운드 서비스 실행시 보안을 제공하기 위한 통신 단말 및 방법

Publications (2)

Publication Number Publication Date
KR20200006841A KR20200006841A (ko) 2020-01-21
KR102532696B1 true KR102532696B1 (ko) 2023-05-12

Family

ID=69369643

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180080710A KR102532696B1 (ko) 2018-07-11 2018-07-11 어플리케이션의 포그라운드 서비스 실행시 보안을 제공하기 위한 통신 단말 및 방법

Country Status (1)

Country Link
KR (1) KR102532696B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101306658B1 (ko) 2012-07-20 2013-11-21 주식회사 안랩 휴대용 단말기의 방화벽 장치 및 이를 이용한 정보 유출 방지 방법
KR101409175B1 (ko) 2013-12-16 2014-06-20 주식회사 시큐브 스마트기기의 보안파일 접근 제어 장치 및 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130028559A (ko) * 2011-09-09 2013-03-19 (주)나무소프트 파일 관리 장치 및 파일 관리 방법
CN105373419A (zh) * 2014-08-26 2016-03-02 阿里巴巴集团控股有限公司 一种后台应用的操作方法及装置
CN104239094B (zh) * 2014-08-29 2017-12-08 小米科技有限责任公司 后台应用程序的控制方法、装置及终端设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101306658B1 (ko) 2012-07-20 2013-11-21 주식회사 안랩 휴대용 단말기의 방화벽 장치 및 이를 이용한 정보 유출 방지 방법
KR101409175B1 (ko) 2013-12-16 2014-06-20 주식회사 시큐브 스마트기기의 보안파일 접근 제어 장치 및 방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Annina Koskiola, "Will my geofencing function in the background?"(2018.05.)*
Rhythm Software, "Task Manager"(2017.08.)*

Also Published As

Publication number Publication date
KR20200006841A (ko) 2020-01-21

Similar Documents

Publication Publication Date Title
US10469428B2 (en) Apparatus and method for transmitting message
US10069692B2 (en) Electronic device and method for providing information thereof
US10547890B2 (en) Apparatus and method for displaying user interface
EP3057028B1 (en) Electronic device for installing application and method of controlling same
US11579899B2 (en) Method and device for dynamically managing kernel node
US20160126996A1 (en) Mobile Communication Using a Plurality of Subscriber Identity Modules
KR20170033121A (ko) 서비스 처리 방법 및 이를 구현하는 전자 장치
US9872180B2 (en) Method for managing network access and electronic device therefor
CN108090345B (zh) linux系统外部命令执行方法及装置
KR20180020401A (ko) 통신망 연결 제어 방법, 저장 매체 및 이를 위한 전자 장치
US20160080293A1 (en) Accounts Control
KR20170019807A (ko) 전자 장치 및 전자 장치의 공동 사용을 위한 방법
US10530732B2 (en) Method for using a content subscription list and electronic device supporting the same
US11100243B2 (en) Selective persistence of data utilized by software containers
US20170046279A1 (en) Content security processing method and electronic device supporting the same
US9880979B2 (en) Information processing terminal, method and storage medium for switching to a privacy mode
US20160364161A1 (en) External device operating method and electronic device supporting the same
KR20170050170A (ko) 연락처 정보 제공 방법 및 장치
EP2950205B1 (en) System and method for unifying the listing and launching of applications and packages spread across multiple domains
KR102532696B1 (ko) 어플리케이션의 포그라운드 서비스 실행시 보안을 제공하기 위한 통신 단말 및 방법
US10209978B1 (en) Mobile application installation service on a mobile phone
US10631177B1 (en) Mobile phone chipset parameter adaptation framework
US11606457B2 (en) Technology and method for selectively providing network function to application of device
CN110753909B (zh) 服务调度方法和装置、计算机设备、计算机可读存储介质
US10891017B1 (en) Rotating icon selection and interaction software development kit (SDK)

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant