KR102408348B1 - 단말 장치 및 단말 장치의 제어 방법 - Google Patents

단말 장치 및 단말 장치의 제어 방법 Download PDF

Info

Publication number
KR102408348B1
KR102408348B1 KR1020170177237A KR20170177237A KR102408348B1 KR 102408348 B1 KR102408348 B1 KR 102408348B1 KR 1020170177237 A KR1020170177237 A KR 1020170177237A KR 20170177237 A KR20170177237 A KR 20170177237A KR 102408348 B1 KR102408348 B1 KR 102408348B1
Authority
KR
South Korea
Prior art keywords
terminal device
data
model
behavior data
encrypted
Prior art date
Application number
KR1020170177237A
Other languages
English (en)
Other versions
KR20190075558A (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 KR1020170177237A priority Critical patent/KR102408348B1/ko
Priority to PCT/KR2018/014392 priority patent/WO2019124770A1/ko
Priority to US16/760,653 priority patent/US11341253B2/en
Publication of KR20190075558A publication Critical patent/KR20190075558A/ko
Application granted granted Critical
Publication of KR102408348B1 publication Critical patent/KR102408348B1/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/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • 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/602Providing cryptographic facilities or services
    • 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/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Artificial Intelligence (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Telephonic Communication Services (AREA)

Abstract

단말 장치의 제어 방법이 개시된다. 본 단말 장치의 제어 방법은, 사용자가 단말 장치를 조작함에 따라 생성되는 행위 데이터의 데이터 타입별로 행위 데이터가 암호화될 서로 다른 암호문의 개수를 결정하는 단계, 결정된 개수 단위의 동일한 타입의 행위 데이터가 서로 다른 암호문으로 암호화되도록 행위 데이터를 암호화하여 암호문을 생성하는 단계, 생성된 암호문을 외부 서버로 전송하는 단계, 전송된 암호문에 기초하여 학습된 행위 데이터에 대한 모델이 수신되면, 수신된 모델에 기초하여 단말 장치의 동작을 모니터링하는 단계를 포함한다. 이때, 모델은 기계 학습, 신경망 또는 딥러닝 알고리즘 중 적어도 하나에 따라 학습된 것일 수 있다.

Description

단말 장치 및 단말 장치의 제어 방법{TERMINAL APPARATUS AND CONTROLLING METHOD OF THE TERMINAL APPARATUS}
본 개시는 단말 장치 및 단말 장치의 제어 방법에 관한 것으로, 보다 상세하게는, 기계 학습(machine learning) 시스템을 구성하는 단말 장치 및 단말 장치의 제어 방법에 관한 것이다.
최근 딥러닝을 중심으로 급격히 발전한 기계 학습 기술은 그 범용성으로 인해 자율 주행, 광고, 교육, 금융, 헬스 케어, 전자 상거래, 국방, 보안 등 다양한 분야에 적용이 시도되고 있으며, 이에 따라 다양한 지능형 시스템의 출현이 예고되고 있다.
기계 학습(machine learning)은 인공 지능 기술의 한 분야로서 데이터를 이용해 모델을 생성하는 모델링 기법이다. 기계 학습 기반의 모델링은 일정 시간 이상 수집된 대용량의 데이터와 높은 연산량이 요구되므로, 단말 장치보다는 서버를 통해서 학습이 진행되는 것이 일반적이다.
특히, 단말 장치에서 수집되는 데이터를 이용하여 기계 학습 기반의 모델을 생성 및 활용하는 시스템에서는, 기계 학습 서버가 단말 장치로부터 수집한 데이터를 이용하여 모델을 생성하게 되는데, 이때, 단말 장치 사용자의 프라이버시가 문제될 수 있다.
예를 들어, 단말 장치 운영 체제의 시스템 콜(system-call)을 학습하여 사용자의 이상 행위를 탐지하는 기계 학습 기반 시스템의 경우, 서버는 단말 장치로부터 수신된 시스템 콜 데이터를 학습하여 사용자 행위(user behavior)의 정상 패턴모델을 생성하고, 생성된 모델을 단말 장치로 전송한다. 이에 따라, 단말 장치는 서버로부터 수신한 모델과 사용자의 단말 장치 조작에 따라 발생하는 시스템 콜을 비교하여 사용자의 이상 행위를 탐지할 수 있다.
이와 같은 시스템에서, 서버는 언제든지 시스템 콜 데이터를 분석하여 사용자가 단말 장치를 통해 무엇을 하고 있는지 알 수 있으므로, 단말 장치 사용자의 프라이버시가 문제될 수 있다.
이러한 프라이버시 문제를 막기 위해, 시스템 콜 데이터를 암호화하는 방법을 생각해 볼 수 있는데, 확률론적 암호화 기법(probabilistic encryption scheme)을 통해 시스템 콜을 암호화하는 경우 동일한 시스템 콜이 다른 암호문으로 암호화되므로 기계 학습이 불가능한 문제점이 있고, 결정론적 암호화 기법(deterministic encryption scheme)을 통해 시스템 콜을 암호화하는 경우에도 기계 학습이 가능함은 별론, 시스템 콜에 관한 통계 데이터를 근거로 한 주파수 공격(frequency attack)에 취약해지는 문제가 여전히 존재하게 된다.
따라서, 단말 장치를 통해 수집되는 사용자의 행위 데이터를 이용하여 기계 학습 기반의 모델을 생성 및 활용하는 시스템에서, 사용자의 프라이버시 문제없이 서버에서 행위 데이터를 학습하고, 단말 장치에서 활용할 수 있는 기술에 대한 필요성이 대두된다.
본 개시는 상술한 문제점에 따른 것으로, 본 개시의 목적은, 프라이버시 문제없이 서버에서 단말 장치 사용자의 행위 데이터를 학습하고, 학습된 모델을 단말 장치에서 활용할 수 있는 단말 장치 및 단말 장치의 제어 방법을 제공함에 있다.
이상과 같은 목적을 달성하기 위한 본 개시의 일 실시 예에 따른 단말 장치의 제어 방법은 사용자가 상기 단말 장치를 조작함에 따라 생성되는 행위 데이터의 데이터 타입별로 상기 행위 데이터가 암호화될 서로 다른 암호문의 개수를 결정하는 단계, 상기 결정된 개수 단위의 동일한 타입의 행위 데이터가 서로 다른 암호문으로 암호화되도록 상기 행위 데이터를 암호화하여 암호문을 생성하는 단계, 상기 생성된 암호문을 외부 서버로 전송하는 단계, 상기 전송된 암호문에 기초하여 학습된 상기 행위 데이터에 대한 모델이 수신되면, 상기 수신된 모델에 기초하여 상기 단말 장치의 동작을 모니터링하는 단계를 포함한다.
또한, 상기 결정하는 단계는, 상기 행위 데이터의 데이터 타입별 발생 빈도 수에 관한 통계 데이터를 획득하는 단계 및 상기 획득된 통계 데이터 상의 행위 데이터 타입 각각이 적어도 하나의 암호문으로 암호화될 경우 각 암호문의 발생 빈도 수가 기설정된 빈도 수가 되도록 하는 데이터 타입별 암호문의 개수를 상기 서로 다른 암호 문의 개수로 결정하는 단계를 포함한다.
또한, 상기 기설정된 빈도 수는, 상기 통계 데이터 상의 상기 행위 데이터의 데이터 타입별 발생 빈도 수와는 상이할 수 있다.
또한, 상기 모니터링하는 단계는, 상기 결정된 개수 단위의 동일한 타입의 행위 데이터가 상기 서로 다른 암호문으로 암호화되도록, 상기 모델 수신 후 생성된 행위 데이터를 암호화하여 암호문을 생성하는 단계 및 상기 모델 수신 후 생성된 암호문을 상기 모델과 비교하여 상기 단말 장치의 동작을 모니터링하는 단계를 포함할 수 있다.
또한, 상기 생성하는 단계는, 결정론적 암호화 방식(deterministic encryption scheme)을 이용하여 상기 생성되는 행위 데이터를 순차적으로 암호화할 수 있다.
또한, 상기 행위 데이터는, 상기 외부 서버가 상기 모델을 생성하기 위해 기계 학습에 사용하는 학습 데이터일 수 있다.
또한, 상기 행위 데이터는, 상기 단말 장치의 운영 체제가 제공하는 시스템 콜 함수의 호출 데이터 또는 상기 단말 장치가 수행한 동작에 관한 데이터이고, 상기 모델은, 상기 단말 장치가 동작할 때 호출되는 시스템 콜의 패턴에 관한 모델 또는 상기 단말 장치의 동작 패턴에 관한 모델일 수 있다.
또한, 상기 모델을 기설정된 주기로 업데이트하는 단계를 더 포함할 수 있다.
한편, 본 개시의 일 실시 예에 따른 단말 장치는, 외부 서버와 통신하는 통신부 및 사용자가 상기 단말 장치를 조작함에 따라 생성되는 행위 데이터의 데이터 타입별로 상기 행위 데이터가 암호화될 서로 다른 암호문의 개수를 결정하며, 상기 결정된 개수 단위의 동일한 타입의 행위 데이터가 서로 다른 암호문으로 암호화되도록 상기 행위 데이터를 암호화하여 암호문을 생성하고, 상기 생성된 암호문을 외부 서버로 전송하며, 상기 전송된 암호문에 기초하여 학습된 상기 행위 데이터에 대한 모델이 수신되면, 상기 수신된 모델에 기초하여 상기 단말 장치의 동작을 모니터링하는 프로세서를 포함한다.
또한, 상기 프로세서는, 상기 행위 데이터의 데이터 타입별 발생 빈도 수에 관한 통계 데이터를 획득하고, 상기 획득된 통계 데이터 상의 행위 데이터 타입 각각이 적어도 하나의 암호문으로 암호화될 경우 각 암호문의 발생 빈도 수가 기설정된 빈도 수가 되도록 하는 데이터 타입별 암호문의 개수를 상기 서로 다른 암호 문의 개수로 결정할 수 있다.
또한, 상기 기설정된 빈도 수는, 상기 통계 데이터 상의 상기 행위 데이터의 데이터 타입별 발생 빈도 수와는 상이할 수 있다.
또한, 상기 프로세서는, 상기 결정된 개수 단위의 동일한 타입의 행위 데이터가 상기 서로 다른 암호문으로 암호화되도록, 상기 모델 수신 후 생성된 행위 데이터를 암호화하여 암호문을 생성하고, 상기 모델 수신 후 생성된 암호문을 상기 모델과 비교하여 상기 단말 장치의 동작을 모니터링할 수 있다.
상기 프로세서는, 결정론적 암호화 방식(deterministic encryption scheme)을 이용하여 상기 생성되는 행위 데이터를 순차적으로 암호화할 수 있다.
또한, 상기 행위 데이터는, 상기 외부 서버가 상기 모델을 생성하기 위해 기계 학습에 사용하는 학습 데이터일 수 있다.
또한, 상기 행위 데이터는, 상기 단말 장치의 운영 체제가 제공하는 시스템 콜 함수의 호출 데이터 또는 상기 단말 장치가 수행한 동작에 관한 데이터이고, 상기 모델은, 상기 단말 장치가 동작할 때 호출되는 시스템 콜의 패턴에 관한 모델 또는 상기 단말 장치의 동작 패턴에 관한 모델일 수 있다.
또한, 상기 프로세서는, 상기 모델을 기설정된 주기로 업데이트할 수 있다.
한편, 본 개시의 일 실시 예에 따른, 단말 장치의 제어 방법을 실행하기 위한 프로그램을 포함하는 컴퓨터 판독가능 기록 매체에 있어서, 상기 제어 방법은, 사용자가 상기 단말 장치를 조작함에 따라 생성되는 행위 데이터의 데이터 타입 별로 상기 행위 데이터가 암호화될 서로 다른 암호문의 개수를 결정하는 단계, 상기 결정된 개수 단위의 동일한 타입의 행위 데이터가 서로 다른 암호문으로 암호화되도록 상기 행위 데이터를 암호화하여 암호문을 생성하는 단계, 상기 생성된 암호문을 외부 서버로 전송하는 단계 및 상기 전송된 암호문에 기초하여 학습된 상기 행위 데이터에 대한 모델이 수신되면, 상기 수신된 모델에 기초하여 상기 단말 장치의 동작을 모니터링하는 단계를 포함한다.
이상 설명한 바와 같이 본 개시의 다양한 실시 예에 따르면, 프라이버시 문제없이 서버에서 단말 장치 사용자의 행위 데이터를 학습하고, 학습된 모델을 단말 장치에서 활용할 수 있게 된다.
도 1은 본 개시의 일 실시 예에 따른 기계 학습 시스템의 예시도,
도 2는 본 개시의 일 실시 예에 따른 단말 장치의 블럭도,
도 3은 주파수 공격 및 본 개시의 일 실시 예에 따른 균일 샘플링 및 결정론적 암호화를 설명하기 위한 도면,
도 4는 본 개시의 일 실시 다른 예에 따른 단말 장치의 상세 블럭도,
도 5는 도 5는 본 개시의 일 실시 예에 따른 기계 학습 시스템의 동작을 모듈 단위로 구분하여 설명하기 위한 도면, 및
도 6은 본 개시의 일 실시 예에 따른 단말 장치의 동작을 도시한 흐름도이다.
이하, 본 개시의 다양한 실시 예가 첨부된 도면을 참조하여 기재된다. 그러나, 이는 본 개시에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 개시의 실시 예의 다양한 변경(modifications), 균등물(equivalents), 및/또는 대체물(alternatives)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.
본 개시에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
본 개시에서, "A 또는 B," "A 또는/및 B 중 적어도 하나," 또는 "A 또는/및 B 중 하나 또는 그 이상" 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. 예를 들면, "A 또는 B," "A 및 B 중 적어도 하나," 또는 "A 또는 B 중 적어도 하나"는, (1) 적어도 하나의 A를 포함, (2) 적어도 하나의 B를 포함, 또는 (3) 적어도 하나의 A 및 적어도 하나의 B 모두를 포함하는 경우를 모두 지칭할 수 있다.
본 개시에서 사용된 "제1," "제2," "첫째," 또는 "둘째," 등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다.
어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 다른 구성요소(예: 제 3 구성요소)가 존재하지 않는 것으로 이해될 수 있다.
본 개시에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한(suitable for)," "~하는 능력을 가지는(having the capacity to)," "~하도록 설계된(designed to)," "~하도록 변경된(adapted to)," "~하도록 만들어진(made to)," 또는 "~를 할 수 있는(capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성된(또는 설정된)"은 하드웨어적으로 "특별히 설계된(specifically designed to)" 것만을 반드시 의미하지 않을 수 있다. 대신, 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다.
이하에서 첨부된 도면을 참조하여 본 개시의 다양한 실시 예를 상세히 설명한다.
도 1은 본 개시의 일 실시 예에 따른 기계 학습 시스템의 예시도이다. 도 1에 따르면, 기계 학습(machine learning) 시스템(10)은 단말 장치(100) 및 서버(200)를 포함한다.
도 1에서는 단말 장치(100)의 일 예로 스마트폰을 도시하였지만 단말 장치(100)의 구현 예가 이에 한정되는 것은 아니며, 단말 장치(100)는 스마트 TV, 태블릿 PC, 랩탑 컴퓨터, 전자 액자, LFD(Large Format Display), 테이블형 디스플레이, PDA, 전자수첩, 스마트 냉장고, 세탁기, 청소기, 사운드 바, 도어락, 난방기, 공유기, 전자레인지 등과 같은 다양한 전자 장치로 구현될 수 있다. 또한, 도 1에서는 하나의 서버(200)를 도시하였지만, 복수로 구성된 서버들이 후술하는 서버(200)의 동작을 수행할 수도 있다.
단말 장치(100)는 사용자의 행위 데이터(behavior data)를 서버(200)로 전송할 수 있다. 여기서, 사용자의 행위 데이터는 사용자가 단말 장치(100)를 조작함에 따라 단말 장치(100)에서 생성되는 데이터로서, 단말 장치(100)를 통한 사용자의 행위와 관련된 데이터이다.
예를 들어, 행위 데이터는 사용자가 단말 장치(100)를 조작함에 따라 단말 장치(100)의 운영 체제(operating system)에서 호출되는 시스템 콜(system-call)에 관한 데이터 또는 사용자가 단말 장치(100)를 조작함에 따라 생성되는 단말 장치(100)가 수행한 동작에 관한 데이터 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
한편, 행위 데이터를 생성시키는 사용자의 조작에는 단말 장치(100)의 전원 온/오프 조작, 애플리케이션의 설치, 실행, 사용 또는 종료 조작, 화면 넘김 조작, 웹페이지 검색 조작, 카메라 촬영 조작, 텍스트 입력 조작 등 사용자가 단말 장치(100)를 통해 수행할 수 있는 모든 종류의 조작이 포함될 수 있다. 한편, 단말 장치(100)의 종류에 따라 사용자가 수행할 수 있는 조작이 달라질 수 있음은 물론이다.
단말 장치(100)는 행위 데이터가 생성될 때마다 행위 데이터를 서버(200)로 전송할 수도 있고, 기설정된 시간 단위 또는 사용자 조작에 따른 동작 단위로 행위 데이터를 서버(200)로 전송할 수도 있다.
예를 들어, 행위 데이터가 시스템 콜에 관한 데이터인 경우, 단말 장치(100)는 사용자의 조작에 따라 시스템 콜이 호출될 때마다 호출된 시스템 콜에 관한 데이터를 서버(200)로 전송할 수도 있고, 호출된 시스템 콜에 관한 데이터를 기설정된 시간 단위 또는 사용자 조작에 따른 동작 단위로 모아서 서버(200)로 전송할 수도 있다. 또한, 행위 데이터가 단말 장치(100)가 수행한 동작에 관한 데이터인 경우, 단말 장치(100)는 단말 장치(100)의 동작에 관한 데이터가 생성될 때마다 생성된 동작에 관한 데이터를 서버(200)로 전송할 수도 있고, 기설정된 시간 단위로 단말 장치(100)의 동작 내역에 관한 데이터를 서버(200)로 전송할 수도 있다.
서버(200)는 단말 장치(100)로부터 수신한 행위 데이터를 기계 학습(machine learning)하여 모델을 생성할 수 있다. 여기서, 모델은 서버(200)가 행위 데이터를 학습 데이터로 하여 학습한 결과물로서, 서버(200)가 어떤 데이터를 어떤 시간 단위로 학습하느냐에 따라 생성되는 모델은 달라질 수 있다.
예를 들어, 서버(200)가 단말 장치(100)에서 호출된 시스템 콜을 학습하는 경우, 서버(200)는 단말 장치(100)가 동작할 때 호출되는 시스템 콜의 패턴에 관한 모델을 생성할 수 있다. 또한, 서버(200)가 단말 장치(100)가 수행한 동작에 관한 데이터를 학습하는 경우, 서버(200)는 단말 장치(100)의 동작 패턴에 관한 모델을 생성할 수 있다.
이때, 시스템 콜이나 단말 장치(100)가 수행한 동작에 관한 데이터는 단말 장치(100)의 동작에 따라 순서를 가지고 호출 내지 생성되므로, 서버(200)는 이와 같이 순서를 가지고 호출 내지 생성된 행위 데이터를 기설정된 시간(예를 들어, 하루, 3시간 등) 단위로 학습하여 각 행위 데이터에 대한 모델을 생성할 수 있다.
또한, 서버(200)는 단말 장치(100)로부터 수신한 행위 데이터를 학습하여 모델을 업데이트하고, 업데이트된 모델을 단말 장치(100)로 제공할 수도 있다. 이때, 업데이트 주기는 시스템(10) 설계자 또는 단말 장치(100) 사용자에 의해 설정될 수 있다.
서버(200)가 행위 데이터를 학습하여 모델을 생성하거나 업데이트하는 보다 자세한 내용은 본 개시의 요지와 무관하므로, 이하 설명을 생략한다.
서버(200)는 생성한 모델을 단말 장치(100)로 전송하고, 단말 장치(100)는 서버(200)로부터 수신한 모델에 따라 다양한 동작을 수행할 수 있다.
예를 들어, 시스템 콜의 패턴에 관한 모델을 수신한 경우, 단말 장치(100)는 단말 장치(100)의 동작에 따라 현재 호출되는 시스템 콜과 서버(200)로부터 수신한 모델을 비교하여 사용자의 이상 조작 내지 단말 장치(100)의 이상 동작을 감지 또는 모니터링할 수 있다.
또한, 단말 장치(100)가 동작하는 패턴에 관한 모델을 수신한 경우, 단말 장치(100)는, 단말 장치(100)가 현재 수행하는 동작에 관한 데이터(또는 현재 사용자의 단말 장치(100) 조작 내역)와 서버(200)로부터 수신한 모델을 비교하여 사용자의 이상 조작 내지 단말 장치(100)의 이상 동작을 감지 내지 모니터링할 수 있다.
한편, 단말 장치(100)가 서버(200)로부터 수신한 모델에 기초하여 수행할 수 있는 동작이 사용자의 이상 조작 내지 단말 장치(100)의 이상 동작을 모니터링하는 것에 한정되는 것은 아니며, 어떤 행위 데이터의 학습을 통해 어떤 모델을 수신했는지에 따라 단말 장치(100)의 동작은 달라질 수 있다.
이상과 같은 기계 학습(machine learning) 시스템(10)의 일련의 동작 과정에서 단말 장치(100)는 서버(200)로 행위 데이터를 전송하고, 서버(200)는 단말 장치(200)로부터 행위 데이터를 수신하게 되는데, 행위 데이터는 단말 장치(100)를 통한 사용자의 행위에 관한 정보를 포함하고 있으므로, 단말 장치(100)가 행위 데이터를 암호화하지 않고 그대로 서버(200)로 전송한다면, 행위 데이터의 전송 과정이나 서버(200) 단에서 행위 데이터가 유출될 수 있어 단말 장치(100) 사용자의 프라이버시가 침해될 수 있다. 예를 들어, 서버(200) 운영자가 마음만 먹는다면 언제든지 행위 데이터를 분석하여 단말 장치(200) 사용자가 무엇을 하고 있는지 알 수 있게 된다.
위 프라이버시 문제를 해결하기 위해, 단말 장치(100)가 단순히 확률론적 암호화 기법(deterministic encryption scheme)을 통해 행위 데이터를 암호화하여 서버(200)로 전송하는 경우, 서버(200)는 행위 데이터를 학습할 수 없게 되거나 설사 학습하더라도 의미 있는 모델을 생성할 수 없게 된다. 또한, 단말 장치(100)가 동일한 행위 데이터를 동일한 암호문으로 암호화하는 결정론적 암호화 방식(deterministic encryption scheme)을 통해 행위 데이터를 암호화하여 서버(200)로 전송하는 경우, 서버(200)가 암호문을 학습하여 의미 있는 모델을 생성할 수 있음은 별론, 여전히 암호문에 대한 주파수 공격(frequency attack)이 가능하여 단말 장치(100) 사용자의 프라이버시 문제가 남게 된다.
예를 들어, 사용자의 조작에 따라 단말 장치(100)가 동작하면서 read - read - write - open - read - open - write - open - read - read와 같은 순서로 시스템 콜이 호출되어 서버(200)로 전송될 수 있다. 이때, 단말 장치(100)가 위 시스템 콜을 확률론적 암호화 방식으로 암호화한다면, 동일한 시스템 콜이 서로 다른 암호문으로 암호화되므로, 서버(200)가 시스템 콜을 학습할 수 없거나 학습하더라도 의미 없는 모델이 생성된다.
한편, 단말 장치(100)가 위 시스템 콜을 결정론적 암호화 방식으로 암호화한다면, 동일한 시스템 콜이 동일한 암호문으로 암호화되므로, 서버(200)는 시스템 콜을 학습하여 의미 있는 모델을 생성할 수 있다. 예를 들어, read는 232#$로, write는 235*로, open은 a,&/로 암호화된 경우, 위 시스템 콜은 232#$ - 232#$ - 235* - a,&/ - 232#$ - a,&/ - 235* - a,&/ - 232#$ - 232#$와 같이 암호화되어 서버(200)로 전송되며, 서버(200)는 단말 장치(100)로부터 수신한 암호문을 학습하여 시스템 콜의 패턴에 관한 모델을 생성할 수 있다. 즉, 서버(200)는 232#$가 read이고, 235*가 write이며, a,&/가 open 인지 알 수는 없지만, 암호문의 패턴을 학습할 수는 있으며, 이를 통해 의미 있는 모델을 생성할 수 있다.
한편, 단말 장치(100)가 위와 같이 시스템 콜을 결정론적 암호화 방식으로 암호화하더라도, 서버(200)가 어떤 시스템 콜이 어떤 암호문으로 암호화된 것인지 알 수 있다면 여전히 서버(200)를 통한 사용자의 프라이버시 유출이 문제될 수 있다.
구체적으로, 서버(200)는 사용자가 단말 장치(100)를 사용할 때 호출되는 시스템 콜의 유형별 발생 빈도에 관한 통계 데이터를 이용하여 어떤 시스템 콜이 어떤 암호문으로 암호화된 것인지 알 수 있다. 기계 학습은 기본적으로 많은 양의 데이터를 학습하여 모델을 생성하는 것이므로, 서버(200)에는 단말 장치(100)로부터 수신한 암호문이 지속적으로 축적된다. 단순히 시스템 콜을 결정론적 암호화 방식으로 암호화한다는 것은 동일한 유형의 시스템 콜을 동일한 암호문으로 암호화하는 것이므로, 지속적으로 축적되는 암호문의 유형별 빈도 수는 상기 통계 데이터를 따라가게 된다. 따라서, 서버(200)는 축적된 암호문의 유형별 빈도 수와 상기 통계 데이터 상에서 시스템 콜의 유형별 빈도 수를 비교하여 어떤 시스템 콜이 어떤 암호문으로 암호화된 것인지 알 수 있게 된다.
상기 예에서, 서버(200)에 축적된 암호문 232#$ : 235* : a,&/의 빈도 수가 5:2:3이고, 통계 데이터 상에서 read : write : open의 빈도 수가 5:2:3이라면, 서버(200)는 read가 232#$로 암호화되고, write가 235*로 암호화되고, open이 a,&/로 암호화된 것임을 알 수 있게 된다. 이와 같이, 데이터의 유형별 빈도 수에 관한 일반적인 통계 데이터를 이용하여 어떤 데이터가 어떤 암호문으로 암호화된 것인지 역으로 알아내는 것을 주파수 공격이라 한다.
즉, 단말 장치(100)가 결정론적 암호화 방식을 통해 행위 데이터를 암호화하더라도 서버(200)는 통계 데이터를 이용하여 주파수 공격이 가능하므로, 단말 장치(100) 사용자의 행위 데이터는 여전히 안전하지 않다.
그러나, 본 개시의 일 실시 예에 따르면, 이상과 같은 기계 학습(machine learning) 시스템(10)의 일련의 동작 과정에서, 단말 장치(100)가 행위 데이터를 행위 데이터의 타입별로 서로 다른 개수의 암호문으로 암호화하고, 이때, 결정론적 암호화 방식을 적용함으로써, 사용자의 프라이버시에 대한 문제(해킹이나 주파수 공격 등)없이 서버(200)가 행위 데이터를 학습할 수 있게 된다.
도 2는 본 개시의 일 실시 예에 따른 단말 장치(100)의 구성도이다. 도 2에 따르면, 단말 장치(100)는 통신부(110) 및 프로세서(120)를 포함한다.
통신부(110)는 각종 유, 무선 통신 방식에 따라 다양한 유형의 외부 기기와 통신을 수행할 수 있다. 특히, 통신부(110)는 프로세서(120)의 제어를 받아 서버(200)와 통신을 수행할 수 있다. 이때, 서버(200)는 단말 장치(100)로부터 행위 데이터를 수신하여 학습하고, 모델을 생성하는 기계 학습 서버일 수 있다.
한편, 통신부(110)는 행위 데이터의 데이터 타입별 발생 빈도 수에 관한 통계 데이터를 제공하는 별도의 서버와 통신할 수 있다. 그러나, 실시 예에 따라 서버(200)가 상기 통계 데이터를 단말 장치(100)로 제공할 수도 있다.
프로세서(120)는 단말 장치(100)의 전반적인 동작을 제어한다. 특히, 프로세서(120)는 사용자가 단말 장치(100)를 조작함에 따라 행위 데이터를 생성할 수 있다.
예를 들어, 프로세서(120)는 사용자가 단말 장치(100)를 조작함에 따라 호출되는 시스템 콜 함수에 관한 데이터를 생성할 수 있다. 구체적으로, 운영 체제를 탑재한 단말 장치(100)는 사용자의 조작에 따라 동작할 때마다 운영 체제가 지원하는 시스템 콜 함수가 호출되게 되는데, 프로세서(120)는 이와 같이 단말 장치(100)가 동작할 때마다 호출되는 시스템 콜 함수에 관한 데이터를 생성할 수 있다.
여기서, 프로세서(120)가 시스템 콜 함수에 관한 데이터를 생성한다는 것은, 프로세서(120)가, 호출되는 시스템 콜 함수에 대한 데이터를 별도로 생성하는 것일 수 있다. 또는 프로세서(120)가 단말 장치(100)의 동작에 따라 시스템 콜 함수를 호출하는 것 자체도 프로세서(120)가 시스템 콜 함수에 관한 데이터를 생성하는 것에 포함될 수 있다. 이때, 호출되는 시스템 콜 함수의 종류와 순서는 단말 장치(100)가 수행하는 동작의 종류에 따라 달라질 수 있다.
또한, 프로세서(120)는 사용자가 단말 장치(100)를 조작함에 따라 생성되는 단말 장치(100)가 수행한 동작에 관한 데이터를 생성할 수 있다. 구체적으로, 사용자가 단말 장치(100)를 조작하면 그에 따라 단말 장치(100)는 동작하며, 프로세서(120)는 단말 장치(100)가 동작한 내역에 관한 데이터를 생성할 수 있다. 예를 들어, 단말 장치(100)가 수행한 동작에 관한 데이터에는, 전원 온, 전원 오프, 애플리케이션의 설치, 실행, 사용, 종료, 페이지 전환, 웹페이지 접속, 사진 또는 동영상 촬영, 텍스트 입력 등 단말 장치(100)가 수행할 수 있는 모든 종류의 동작에 관한 데이터가 포함될 수 있다.
또한, 프로세서(120)는 단말 장치(100)에서 생성되는 행위 데이터를, 행위 데이터의 데이터 타입별로 서로 다른 개수의 암호문으로 암호화할 수 있다. 이때, 프로세서(120)는 결정론적 암호화 방식을 이용할 수 있다. 여기서, 결정론적 암호화 방식은 동일한 데이터가 별도로 암호화되더라도 항상 동일한 암호문으로 암호화되는 암호화 방식을 의미한다.
구체적으로, 프로세서(120)는 행위 데이터가 암호화될 서로 다른 암호문의 개수를 결정하고, 결정된 개수 단위의 동일한 타입의 행위 데이터가 서로 다른 암호문으로 암호화되도록 행위 데이터를 암호화하여 암호문을 생성할 수 있다.
이때, 본 개시의 일 실시 예에 따르면, 프로세서(120)는 행위 데이터를 균일 샘플링(uniform sampling)하여 암호문을 생성할 수 있다. 여기서, 균일 샘플링(uniform sampling)은, 서버(200)에 축적될 암호문의 타입별 빈도 수가 균등 분포(uniform distribution)를 갖도록 프로세서(120)가 행위 데이터를 나누어 암호화한다는 것을 의미한다. 이를 위해, 프로세서(120)는 행위 데이터의 데이터 타입별 발생 빈도 수에 관한 통계 데이터를 이용할 수 있다.
전술한 바와 같이, 주파수 공격은, 행위 데이터를 암호화한 암호문이 많이 축적되면 암호문의 종류별 발생 빈도 수가 행위 데이터의 종류별 발생 빈도 수에 대한 통계 데이터를 따르게 되는 성질을 이용하여 역으로 암호문이 어떤 행위 데이터를 암호화한 것인지 알아내는 것이므로, 행위 데이터를 암호화하되 암호문이 축적되더라도 축적된 암호문의 종류별 빈도 수가 통계 데이터와 달라지도록 행위 데이터를 암호화한다면 주파수 공격이 불가능해진다.
따라서, 본 개시의 일 실시 예에 따르면, 프로세서(120)는, 주파수 공격에 이용될 수 있는 상기 통계 데이터 상의 행위 데이터 타입 각각이 적어도 하나의 암호문으로 암호화될 경우 암호문들의 종류별 발생 빈도 수가 모두 같아지도록 하는 암호문의 개수를 행위 데이터의 데이터 타입별로 결정하고, 결정된 개수 단위의 동일한 타입의 행위 데이터가 서로 다른 암호문으로 암호화되도록 단말 장치(100)에서 생성되는 행위 데이터를 암호화하여 암호문을 생성함으로써, 단말 장치(100)가 전송하는 암호문이 서버(200)에서 축적되더라도 주파수 공격이 불가능하게 할 수 있다.
도 3은 주파수 공격 및 본 개시의 일 실시 예에 따른 균일 샘플링 및 결정론적 암호화를 설명하기 위한 도면이다. 한편, 도 3에서는 단말 장치(100)의 동작에 따라 시스템 콜 함수 중 read, write, open 만 호출되는 경우를 예로 들어 도시하였으나, 이는 설명의 편의를 위한 것일 뿐 시스템 콜의 종류가 이에 한정되는 것이 아님은 물론이다.
도 3의 (a)는 시스템 콜의 종류별 빈도 수에 관한 통계 데이터를 도시하고 있다. 사용자 조작에 따라 단말 장치(100)가 동작하면서 호출되는 시스템 콜은 사용자의 조작마다 그 종류 및 순서가 다를 수 있다. 그러나, 많은 양의 데이터를 축적하여 통계치를 계산해 보면 시스템 콜의 호출 빈도 수가 상대적으로 일정한 비율에 수렴하게 된다. 도 3의 (a)는 일 예로 read, write, open이 5:2:3의 비율로 호출되는 통계 데이터를 도시하고 있다.
도 3의 (b)는 주파수 공격을 설명하기 위한 도면이다. 단말 장치(100)가 시스템 콜을 단순히 결정론적 암호화 방식으로 암호화한다면, 즉, 예를 들어, read는 a로, write는 b로, open은 c로 각각 암호화한다면, 서버(200)가 단말 장치(100)로부터 수신한 암호문의 패턴 내지 순서를 학습하여 모델을 생성할 수 있음은 별론, 서버(200)에 축적되는 암호문의 빈도 수는 도 3의 (b)에 도시된 바와 같이 a, b, c가 5:2:3의 비율을 갖게 될 것임을 알 수 있다.
따라서, 서버(200)는 축적된 암호문의 종류별 빈도 수를 도 3의 (b)와 같이 계산한 후 도 3의 (a)의 통계 데이터와 비교하여 a가 read를, b가 write를, c가 open을 각각 암호화한 것임을 알 수 있게 된다. 단말 장치(100)의 동작에 따라 어떤 시스템 콜이 어떤 순서로 호출되는지는 알려진 내용이므로, 서버(200)가 각 암호문이 어떤 시스템 콜을 암호화한 것인지 알 수 있다면, 단말 장치(100)로부터 수신되는 암호문으로부터 단말 장치(100)가 어떤 동작을 하고 있는지 알 수 있어, 단말 장치(100) 사용자의 프라이버시가 문제된다.
도 3의 (c)는 본 개시의 일 실시 예에 따라 시스템 콜을 균일 샘플링하여 암호화한 경우, 서버(200)에 축적된 암호문의 종류별 빈도 수를 도시하고 있다. 본 개시의 일 실시 예에 따르면 프로세서(120)는 도 3의 (a)와 같은 통계 데이터를 이용하여 서버(200)에 축적될 암호문의 타입별 빈도 수가 균등 분포(uniform distribution)를 갖도록 하는 암호문의 개수를 결정할 수 있다.
구체적으로, 프로세서(120)는, 도 3의 (a)와 같은 통계 데이터 상의 read, write, open이 각각 암호화될 경우, 암호문들의 종류별 빈도 수가 일정해지도록 하는 시스템 콜의 타입별 암호문의 개수를 결정할 수 있다. 도 3의 (a)의 통계 데이터 상에서 read, write, open은 5:2:3의 비율을 가지므로, read가 5개, write가 2개, open이 3개의 서로 다른 암호문으로 암호화될 경우, 각 암호문의 빈도 수가 일정해질 것을 예상할 수 있다.
따라서, 프로세서(120)는 시스템 콜 read, write, open이 암호화될 서로 다른 암호문의 개수로, 5개, 2개, 3개를 결정하고, 결정된 개수 단위의 동일한 타입의 시스템 콜이 서로 다른 암호문으로 암호화되도록 시스템 콜을 암호화하여 암호문을 생성할 수 있다. 예를 들어, 사용자의 조작에 따라 단말 장치(100)가 동작하면서 read - read - write - open - read - open - write - open - read - read 와 같은 순서로 시스템 콜이 호출된 경우, 프로세서(120)는 호출된 시스템 콜에서 5개 단위의 read가 서로 다른 암호문 a, b, c, d, e로 암호화되고, 2개 단위의 write가 서로 다른 암호문 j, k로 암호화되며, 3개 단위의 open이 서로 다른 암호문 x, y, z로 암호화되도록 시스템 콜을 암호화하여 암호문 a - b - j - x - c - y - k - z - d - e를 생성할 수 있다.
프로세서(120)가 위와 같은 방식으로 시스템 콜을 암호화하여 암호문을 서버(200)로 전송하는 경우, 서버(200)가 축적된 암호문의 종류별 빈도 수를 계산하더라도, 도 3의 (c)와 같이 암호문의 종류별 빈도 수가 동일하게 나오므로, 도 3의 (a)와 같은 통계 데이터를 이용한 주파수 공격이 불가능해 진다.
한편, 단말 장치(100)가 같은 동작을 할 때 호출되는 시스템 콜은 동일하며, 프로세서(120)는 위와 같이 균일 샘플링된 시스템 콜을 결정론적 암호화 방식을 이용하여 순차적으로 암호화하므로, 서버(200)는 단말 장치(100)로부터 수신되는 암호문을 학습하여 유의미한 모델을 생성할 수 있게 된다.
한편, 도 3에서는 시스템 콜 데이터를 예로 들어 프로세서(120)의 동작을 설명하였으나, 실시 예가 이에 한정되는 것이 아님은 물론이다. 전술한 바와 같이, 사용자 조작에 따라 단말 장치(100)가 수행한 동작(예를 들어, 전원 온, 전원 오프, 웹페이지 접속, 애플리케이션 실행, 페이지 넘김, 영상 촬영 등)에 관한 데이터를 서버(200)가 학습하여 모델을 생성할 수 있다. 이 예에서도, 단말 장치(100)가 수행하는 동작에 관한 통계 데이터가 알려져 있다면, 행위 데이터의 암호화에도 불구하고, 주파수 공격이 가능하다. 따라서, 본 개시의 일 실시 예에 따르면, 프로세서(120)는 단말 장치(100)가 수행하는 동작에 관한 통계 데이터에 기초하여, 단말 장치(100)에서 생성되는 단말 장치(100)가 수행한 동작에 관한 데이터를 균일 샘플링하고, 균일 샘플링된 데이터를 결정론적 암호화 방식으로 암호화함으로써, 주파수 공격의 가능성 없이 서버(200)가 모델을 생성할 수 있도록 한다.
한편, 프로세서(120)가 행위 데이터의 타입별로 행위 데이터가 암호화될 서로 다른 암호문의 개수를 결정하는 실시 예가 이에 한정되는 것은 아니다. 전술한 바와 같이, 암호문이 서버(200)에 축적되더라도 축적된 암호문의 종류별 빈도 수가 통계 데이터와 달라지도록 행위 데이터를 암호화한다면 주파수 공격이 불가능해진다. 따라서, 프로세서(120)는, 서버(200)에 축적된 암호문의 종류별 빈도 수가 통계 데이터와는 다른 기설정된 분포를 가지도록 하는 암호문의 개수를, 행위 데이터가 암호화될 서로 다른 암호문의 개수로 결정할 수도 있을 것이다.
전술한 통계 데이터는 단말 장치(100) 제조시 단말 장치(100)에 기저장된 것일 수 있다. 그러나, 이에 한정되는 것은 아니며, 프로세서(120)가 통신부(110)를 통해 통계 데이터를 제공하는 서버로부터 수신 또는 업데이트한 것일 수도 있다. 또는 실시 예에 따라, 프로세서(120)가 단말 장치(100)에 축적된 행위 데이터를 이용하여 상기 암호문의 개수 결정을 위한 통계 데이터를 산출할 수도 있다.
한편, 프로세서(120)는 상술한 바와 같이 행위 데이터를 암호화하여 생성한 암호문을 통신부(110)를 통해 서버(200)로 전송할 수 있다.
서버(200)는 단말 장치(100)로부터 수신한 암호문을 학습하여 모델을 생성할 수 있다. 예를 들어, 서버(200)는 시스템 콜을 학습하여 단말 장치(100)가 동작할 때 호출되는 시스템 콜의 패턴에 관한 모델을 생성할 수 있다. 또한, 서버(200)는 단말 장치(100)가 수행한 동작에 관한 데이터를 학습하여 단말 장치(100)의 동작 패턴에 관한 모델을 생성할 수도 있다. 서버(200)의 동작에 관한 도 1과 중복되는 내용은 설명을 생략한다.
서버(200)는 생성된 모델을 단말 장치(100)로 전송하며, 단말 장치(100)는 행위 데이터가 학습된 모델, 정확하게는, 암호문이 학습된 모델을 서버(200)로부터 수신할 수 있다. 이에 따라, 프로세서(120)는 수신한 모델에 기초하여 다양한 동작을 수행할 수 있다.
특히, 프로세서(120)는 전송된 암호문에 기초하여 서버(200)에서 학습된 행위 데이터에 대한 모델이 수신되면, 수신된 모델에 기초하여 단말 장치(100)의 동작을 모니터링할 수 있다. 구체적으로, 프로세서(120)는 서버(200)로부터 수신한 모델과 현재 생성되는 행위 데이터를 비교하여 단말 장치(100)의 동작을 모니터링할 수 있다.
예를 들어, 단말 장치(100)가 동작할 때 호출되는 시스템 콜의 패턴에 관한 모델이 수신된 경우, 프로세서(120)는 단말 장치(100)의 현재 동작에 따라 호출되는 시스템 콜을 수신된 모델과 비교하여 단말 장치(100)의 이상 동작 내지 사용자의 이상 조작을 모니터링할 수 있다.
서버(200)로부터 수신한 시스템 콜의 패턴에 관한 모델은, 해당 모델 생성 이전에, 사용자가 단말 장치(100)를 정상적으로 조작함에 따라 호출된 시스템 콜에 관한 데이터를 서버(200)가 학습하여 생성한 것이다. 따라서, 예를 들어, 도난 또는 분실된 단말 장치(100)를 타인이 사용하는 경우 등과 같이, 비정상적인 경우에 타인이 단말 장치(100)를 조작함에 따라 호출되는 시스템 콜은 상기 모델과는 다른 패턴을 갖게 될 것이므로, 프로세서(120)는 모델과 시스템 콜을 비교하여 단말 장치(100)의 이상 동작 내지 사용자의 이상 조작을 감지할 수 있다.
단말 장치(100)의 동작 패턴에 관한 모델이 수신된 경우에도, 프로세서(120)는, 단말 장치(100)가 현재 수행하는 동작에 관한 데이터와 수신된 모델을 비교하여 단말 장치(100)의 이상 동작 내지 사용자의 이상 조작을 모니터링할 수 있음은 물론이다.
한편, 단말 장치(100)가 서버(200)로부터 수신하는 모델은 암호문이 학습된 모델이므로, 프로세서(120)는 현재 생성되는 행위 데이터를 전술한 방법과 동일하게 암호화한 후 모델과 비교해야 한다. 따라서, 프로세서(120)는, 전술한 바와 같이 결정된 서로 다른 암호문의 개수 단위의 동일한 타입의 행위 데이터가 서로 다른 암호문으로 암호화되도록, 모델 수신 후 단말 장치(100)에서 생성되는 행위 데이터를 암호화하여 암호문을 생성하고, 생성된 암호문을 모델과 비교할 수 있다.
한편, 이상에서는, 서버(200)가 행위 데이터(구체적으로는, 행위 데이터가 암호화된 암호문)를 학습하여 모델을 생성하고, 생성된 모델을 단말 장치(100)로 전송하는 경우를 예로 들었으나, 실시 예가 이에 한정되는 것은 아니다.
실시 예에 따라, 서버(200)는, 행위 데이터(구체적으로는, 행위 데이터가 암호화된 암호문)를 학습하여, 단말 장치(100)가 모델을 생성하는데 필요한 기계 학습 파라미터를 생성할 수도 있다. 이 경우, 파라미터가 수신되면, 프로세서(120)는 수신된 파라미터에 기초하여 모델을 생성하고, 생성된 모델에 기초하여 상술한 바와 같이 단말 장치(100)의 동작을 모니터링할 수 있다.
도 4는 본 개시의 다른 일 실시 예에 따른 단말 장치의 상세 블럭도이다. 도 4에 따르면, 단말 장치(100')는 통신부(110), 프로세서(120), 디스플레이(130), 사용자 입력부(140) 및 저장부(150)를 포함한다. 도 4에 도시된 각 구성은 반드시 단말 장치(100')에 모두 포함되어야 하는 것은 아니며, 단말 장치(100')의 종류에 따라 일부 구성이 생략되거나 다른 구성이 더 포함될 수도 있다. 도 4를 설명함에 있어, 전술한 것과 동일한 구성의 중복되는 내용은 설명을 생략한다.
통신부(110)는 다양한 외부 장치와 통신을 수행하여 각종 정보를 송, 수신할 수 있다. 특히, 통신부(110)는 단말 장치(100')에서 생성된 행위 데이터가 암호화된 암호문을 서버(200)로 전송하고, 전송된 암호문에 기초하여 학습된 행위 데이터에 대한 모델을 서버(200)로부터 수신할 수 있다. 또한, 통신부(110)는 행위 데이터의 종류별 빈도 수에 관한 통계 데이터를 서버(200) 또는 통계 데이터를 관리하는 별도의 서버로부터 수신할 수도 있다.
이를 위해, 통신부(110)는 근거리 무선 통신 모듈(미도시) 및 무선랜 통신 모듈(미도시) 중 적어도 하나의 통신 모듈을 포함할 수 있다. 근거리 무선 통신 모듈(미도시)은 근거리에 위치한 외부 기기와 무선으로 데이터 통신을 수행하는 통신 모듈로써, 예를 들어, 블루투스(Bluetooth) 모듈, 지그비(ZigBee) 모듈, NFC(Near Field Communication) 모듈, 적외선 통신 모듈 등이 될 수 있다. 또한, 무선랜 통신 모듈(미도시)은 와이파이(WiFi), IEEE 등과 같은 무선 통신 프로토콜에 따라 외부 네트워크에 연결되어 외부 서버 또는 외부 기기와 통신을 수행하는 모듈이다.
이 밖에 통신부(110)는 3G(3rd Generation), 3GPP(3rd Generation Partnership Project), LTE(Long Term Evoloution) 등과 같은 다양한 이동 통신 규격에 따라 이동 통신망에 접속하여 통신을 수행하는 이동 통신 모듈을 더 포함할 수도 있으며, HDMI(High-Definition Multimedia Interface), USB(Universal Serial Bus), IEEE(Institute of Electrical and Eletronics Engineers) 1394, RS-232, RS-422, RS-485, Ethernet 등과 같은 통신 규격에 따른유선 통신 모듈(미도시)을 더 포함할 수도 있다.
디스플레이(130)는 단말 장치(100')의 종류에 따라 각종 영상 내지 화면을 표시할 수 있다. 여기서, 영상은 텍스트, 정지영상, 동영상, 아이콘, GUI(Graphic User Interface), OSD(On Screen Display) 등과 같은 다양한 포맷의 영상일 수 있다. 이를 위해, 디스플레이(130)는 LCD(Liquid Crystal Display), OLED(Organic Light Emitting Diodes), AM-OLED(Active-Matrix Organic Light-Emitting Diode), PDP(Plasma Display Panel) 등과 같은 다양한 형태의 디스플레이로 구현될 수 있다.
사용자 입력부(140)는 단말 장치(100')를 조작하기 위한 다양한 사용자 명령을 입력받을 수 있다. 이를 위해, 사용자 입력부(140)는 사용자 음성을 수신하는 마이크, 사용자의 푸시 조작을 입력받는 푸시형 버튼, 사용자 터치 조작을 입력받는 터치 패널, 복수의 방향으로 조작 가능한 조그 스위치, 외부 영상을 입력받는 이미지 센서, 사용자의 움직임을 감지하는 모션 센서 등을 포함할 수 있으나, 이에 한정되는 것은 아니다. 한편, 터치 패널이 디스플레이(130)와 상호 레이어 구조를 이루는 터치 스크린을 포함할 수도 있다.
저장부(150)는 각종 프로그램 및 데이터를 저장한다. 특히, 저장부(150)는 행위 데이터의 종류별 빈도 수에 관한 통계 데이터를 저장할 수 있다. 또한, 저장부(150)는 단말 장치(100')의 동작을 수행하기 위한 운영 체제(operating system, o/s) 및 각종 프로그램을 저장할 수 있다. 이를 위해, 저장부(150)는 RAM(Random Access Memory), ROM(Read Only Memory), SSD(Solid State Disk), 플래시 메모리, 하드 디스크 또는 광디스크 등을 포함할 수 있으나, 이에 한정되는 것은 아니다. 실시 예에 따라, 저장부(150)는 클라우드 서버 등으로도 얼마든지 구현될 수다.
카메라부(미도시)는 사용자 조작에 따라 단말 장치(100') 외부의 영상을 촬영한다. 이를 위해, 카메라부(미도시)는 각종 이미지 센서 및 렌즈 등을 포함할 수 있다.
프로세서(120)는 단말 장치(100')의 전반적인 동작을 제어한다. 특히, 프로세서(120)는 단말 장치(100')를 제어하여 도 1 내지 도 3을 통해 전술한 프로세서(120)의 동작을 수행할 수 있다.
이를 위해, 프로세서(120)는 운영 체제 또는 응용 프로그램을 구동하여 프로세서(120)에 연결된 하드웨어 또는 소프트웨어 구성요소들을 제어할 수 있고, 각종 데이터 처리 및 연산을 수행할 수 있다. 또한, 프로세서(120)는 다른 구성요소들 중 적어도 하나로부터 수신된 명령 또는 데이터를 휘발성 메모리에 로드하여 처리하고, 다양한 데이터를 비휘발성 메모리에 저장할 수 있다.
프로세서(120)는 해당 동작을 수행하기 위한 전용 프로세서(예, 임베디드 프로세서) 또는 메모리 디바이스에 저장된 하나 이상의 소프트웨어 프로그램을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)로 구현될 수 있다.
프로세서(120)는 RAM(121), ROM(122), GPU(123), 메인 CPU(124) 및 제1 내지 제n 인터페이스(125-1,...,125-n)를 포함할 수 있다. RAM(121), ROM(122), GPU(123), 메인 CPU(124) 및 제1 내지 제n 인터페이스(125-1,...,125-n) 등은 버스(126)를 통해 서로 연결될 수 있다. 메인 CPU(124)는 저장부(150)에 액세스하여, 저장부(150)에 저장된 운영체제(O/S)를 이용하여 부팅을 수행한다. 그리고, 메인 CPU(124)는 저장부(150)에 저장된 각종 프로그램, 컨텐츠, 데이터 등을 이용하여 다양한 동작을 수행할 수 있다.
구체적으로, ROM(122)에는 시스템 부팅을 위한 명령어 세트 등이 저장된다. 턴온 명령이 입력되어 전원이 공급되면, 메인 CPU(124)는 ROM(122)에 저장된 명령어에 따라 저장부(140)에 저장된 O/S를 RAM(121)에 복사하고, O/S를 실행시켜 시스템을 부팅시킨다. 부팅이 완료되면, 메인 CPU(124)는 저장부(150)에 저장된 각종 프로그램을 RAM(121)에 복사하고, RAM(121)에 복사된 프로그램을 실행시켜 각종 동작을 수행한다. GPU(123)는 단말 장치(100')의 부팅이 완료되면, 아이콘, 이미지, 텍스트 등과 같은 다양한 객체를 포함하는 화면을 생성할 수 있다.
도 5는 본 개시의 일 실시 예에 따른 기계 학습 시스템의 동작을 모듈 단위로 구분하여 설명하기 위한 도면이다. 도 5에 따르면, 단말 장치(100')는 시스템(system)(510), 행위 데이터 수집부(behavior data collector)(520), 결정론적 암호화 및 균일 샘플링부(uniform sampler with deterministic encryption)(530), 학습 요청부(training requestor)(540) 및 이상 행위 감지부(anomaly detector)(550)을 포함하고, 서버(200)는 기계 학습부(machine learning Trainer)(560) 및 행위 데이터 데이터베이스(behavior data DB)(570)를 포함할 수 있다.
시스템(510)은 단말 장치(100')의 동작에 따라 행위 데이터를 생성하는 구성이다. 예를 들어, 시스템(510)은 운영 체제, 미들웨어 또는 각종 애플리케이션일 수 있으나, 이에 한정되는 것은 아니다. 예를 들어, 시스템(510)은 사용자가 단말 장치(100')를 조작함에 따라 호출되는 시스템 콜 함수를 제공하거나 단말 장치(100')가 수행한 동작에 관한 데이터를 생성할 수 있다.
행위 데이터 수집부(520)는 시스템(510)에서 행위 데이터가 생성될 때마다 또는 기설정된 주기로 행위 데이터를 수집한다.
결정론적 암호화 및 균일 샘플링부(530)는 행위 데이터 수집부(520)가 수집한 행위 데이터를 전술한 바와 같이 균일 샘플링 및 결정론적 암호화하여 암호문을 생성한다. 이때, 결정론적 암호화 방식으로는 AES(Advanced Encryption Standard)나 DES(Data Encryption Standard)이 이용될 수 있으나, 이에 한정되는 것은 아니다.
학습 요청부(540)는 결정론적 암호화 및 균일 샘플링부(530)에서 생성된 암호문을 암호문이 생성될 때마다 또는 기설정된 주기로 서버(200)로 전송할 수 있다.
단말 장치(100, 100')로부터 전송된 행위 데이터(구체적으로는 행위 데이터가 암호화된 암호문)는 서버(200)의 기계 학습부(560)를 통해 기계 학습이 진행되되며, 일정량 또는 일정 시간의 행위 데이터는 기계 학습부(560)의 학습을 위해 행위 데이터 DB(570)에 저장 및 유지된다.
한편, 기계 학습부(560)에서 모델이 생성되면, 생성된 모델은 단말 장치(100')로 제공되며, 단말 장치(100')의 이상 행위 감지부(550)는 모델에 기초하여 행위 데이터에 대해 이상 탐지를 수행한다. 이때, 본 개시의 일 실시 예에 따르면, 서버(200)의 기계 학습부(560)는 행위 데이터를 기계 학습하여 파라미터를 단말 장치(100')로 제공하고, 단말 장치(100')의 이상 행위 감지부(550)는 서버(200)로부터 수신한 파라미터를 이용하여 모델을 생성한 후 이상 탐지를 수행할 수 있으나, 이에 한정되는 것은 아니다.
구체적으로, 이상 행위 감지부(550)는, 모델(또는 파라미터) 수신 후에 행위 데이터 수집부(520)에 의해 수집되고 결정론적 암호화 및 균일 샘플링부(530)에 의해 암호화된 암호문을, 서버(200)로부터 수신한 모델(또는 파라미터를 이용하여 생성한 모델)과 비교하여 이상 탐지를 수행할 수 있다.
한편, 도 5에 도시된 단말 장치(100')의 각 모듈들은 저장부(150)에 저장된 프로그램 모듈일 수 있다. 따라서, 프로세서(120)는 저장부(150)에 저장된 프로그램 모듈을 실행시켜 상술한 동작을 수행할 수 있다.
도 6은 본 개시의 일 실시 예에 따른 단말 장치(100, 100')의 동작을 도시한 흐름도이다. 도 6에 따르면, 단말 장치(100, 100')는, 사용자가 단말 장치를 조작함에 따라 생성되는 행위 데이터의 데이터 타입별로 행위 데이터가 암호화될 서로 다른 암호문의 개수를 결정할 수 있다(S610). 이때, 행위 데이터는, 단말 장치(100, 100')의 운영 체제가 제공하는 시스템 콜 함수의 호출 데이터 또는 단말 장치(100, 100')가 수행한 동작에 관한 데이터일 수 있으나, 이에 한정되는 것은 아니다.
구체적으로, 단말 장치(100, 100')는, 행위 데이터의 데이터 타입별 발생 빈도 수에 관한 통계 데이터를 획득하고, 획득된 통계 데이터 상의 행위 데이터 타입 각각이 적어도 하나의 암호문으로 암호화될 경우 각 암호문의 발생 빈도 수가 기설정된 빈도 수가 되도록 하는 데이터 타입별 암호문의 개수를 서로 다른 암호 문의 개수로 결정할 수 있다. 여기서, 기설정된 빈도 수는, 통계 데이터 상의 행위 데이터의 데이터 타입별 발생 빈도 수와는 상이한 빈도 수 일 수 있다. 특히, 행위 데이터의 데이터 타입별 발생 빈도 수가 모두 동일할 수 있으나, 이에 한정되는 것은 아니다.
한편, 단말 장치(100, 100')는, 결정된 개수 단위의 동일한 타입의 행위 데이터가 서로 다른 암호문으로 암호화되도록 행위 데이터를 암호화하여 암호문을 생성하고(S620), 생성된 암호문을 외부 서버(200)로 전송할 수 있다(S630). 이때, 단말 장치(100, 100')는, AES 또는 DES와 같은 결정론적 암호화 방식(deterministic encryption scheme)을 이용하여 생성되는 행위 데이터를 순차적으로 암호화할 수 있다.
서버(200)는 단말 장치(100, 100')로부터 수신한 행위 데이터(구체적으로는, 암호문)를 기계 학습하여 해당 행위 데이터에 관한 모델을 생성할 수 있다. 구체적으로, 서버(200)는 단말 장치(100, 100')로부터 수신한 행위 데이터가 시스템 콜에 관한 데이터(구체적으로는, 시스템 콜에 관한 데이터가 암호화된 암호문)인 경우, 단말 장치(100, 100')가 동작할 때 호출되는 시스템 콜의 패턴에 관한 모델을 생성할 수 있다. 또한, 서버(200)는 단말 장치(100, 100')로부터 수신한 행위 데이터가 단말 장치(100, 100')가 수행한 동작에 관한 데이터(구체적으로는, 단말 장치(100, 100')가 수행한 동작에 관한 데이터가 암호화된 암호문)인 경우, 단말 장치(100, 100')의 동작 패턴에 관한 모델을 생성할 수 있다.
이때, 서버(200)가 모델을 생성한다는 것은 서버(200)가 해당 행위 데이터(구체적으로는, 암호문)에 대한 모델을 직접 생성하는 것뿐만 아니라, 모델 생성을 위한 파라미터를 생성하는 것까지 포함할 수 있다. 한편, 서버(200)가 제공하는 모델(또는 파라미터)은 기설정된 주기로 단말 장치(100, 100')에서 업데이트될 수 있다.
이에 따라, 단말 장치(100, 100')는, 전송된 암호문에 기초하여 학습된 행위 데이터에 대한 모델(또는 파라미터)이 수신되면, 수신된 모델(또는 파라미터)에 기초하여 단말 장치(100, 100')의 동작을 모니터링할 수 있다(S640).
구체적으로, 단말 장치(100, 100')는, 상기 S610 단계에서 결정된 개수 단위의 동일한 타입의 행위 데이터가 서로 다른 암호문으로 암호화되도록, 모델(또는 파라미터) 수신 후 단말 장치(100, 100')에서 생성된 행위 데이터를 암호화하여 암호문을 생성하고, 모델(또는 파라미터) 수신 후 생성된 암호문을 서버(200)로부터 수신한 모델(또는 파라미터를 이용하여 단말 장치(100, 100')가 생성한 모델)과 비교하여 단말 장치(100, 100')의 동작을 모니터링할 수 있다.
한편, 이상에서는, 행위 데이터의 예로 시스템 콜에 관한 데이터 및 단말 장치(100, 100')가 수행한 동작에 관한 데이터를 주로 설명하였으나, 행위 데이터가 이에 한정되는 것은 아니다. 즉, 사용자의 조작에 따라 단말 장치(100, 100')에서 생성되는 데이터로서, 행위 데이터의 종류별 빈도 수에 관한 통계 데이터가 존재하여 주파수 공격이 가능하고, 서버(200)에서 기계 학습이 가능한 데이터로는 어떤 데이터이든 행위 데이터가 될 수 있다. 예를 들어, 사용자가 단말 장치(100, 100')의 잠금 화면을 해제한 동작에 관한 데이터, 사용자의 웹 서핑 내역에 관한 데이터, 사용자의 온라인 쇼핑 내역에 관한 데이터, 사용자가 입력한 텍스트에 관한 데이터 등도 행위 데이터가 될 수 있다. 이와 같은 행위 데이터 역시 전술한 바와 같이, 균일 샘플링 및 결정론적 암호화를 통해 암호화되며, 서버(200)로 암호문이 전송된다.
서버(200)는 행위 데이터(정확히는, 암호문)를 학습하여 모델을 생성할 수 있다. 예를 들어, 행위 데이터가 잠금 화면 해제 동작에 관한 데이터인 경우, 서버(200)는 사용자의 잠금 화면 해제 동작 패턴에 관한 모델을 생성할 수 있다. 또한, 행위 데이터가 사용자의 애플리케이션 사용 내역에 관한 데이터인 경우, 서버(200)는 사용자의 애플리케이션 사용 패턴에 관한 모델을 생성할 수 있다. 또한, 행위 데이터가 사용자의 온라인 쇼핑 내역에 관한 데이터인 경우, 서버(200)는 사용자의 온라인 쇼핑 패턴에 관한 모델을 생성할 수 있다. 또한, 행위 데이터가 사용자가 입력한 텍스트에 관한 데이터인 경우, 서버(200)는 사용자의 단어 사용 패턴에 관한 모델을 생성할 수 있다.
이와 같이, 서버(200)에서 생성된 모델은 단말 장치(100, 100')로 제공되며, 단말 장치(100, 100')는 수신한 모델을 이용하여 다양한 동작을 수행할 수 있다. 한편, 이상에서는 단말 장치(100, 100')가 수신한 모델을 이용하여 단말 장치(100, 100')의 동작을 모니터링하는 것을 주로 예로 들어 설명하였으나, 이에 한정되는 것이 아님은 물론이다. 가령, 온라인 쇼핑 패턴에 관한 모델이나 애플리케이션 사용 패턴에 관한 모델을 수신한 경우, 단말 장치(100, 100')는 상품 추천 서비스나 애플리케이션 추천 서비스를 제공할 수도 있다. 또한, 사용자의 단어 사용 패턴에 관한 모델을 수신한 경우, 단말 장치(100, 100')는 관련 검색어 또는 유사어 추천 서비스를 제공할 수도 있다. 단말 장치(100, 100')가 서버(200)로부터 수신한 모델에 따라 어떤 동작을 수행할 수 있는지에 관한 보다 구체적인 내용은, 본 개시의 요지와 무관하므로 더 자세한 설명은 생략한다.
한편, 이상에서는, 서버(200)가 기계 학습(machine learning)을 통해 모델을 생성하는 것을 예로 들어 설명하였으나, 본 개시의 기술적 사상이 이에 한정되는 것은 아니다. 가령, 서버(200)가 신경망 또는 딥러닝 알고리즘을 이용하여 행위 데이터(구체적으로는, 암호문)를 학습하고, 학습된 모델을 단말 장치(100, 100')로 제공하는 시스템에서도 본 개시의 기술적 사상이 그대로 적용될 수 있음은 물론이다.
이상 설명한 바와 같이 본 개시의 다양한 실시 예에 따르면, 프라이버시 문제없이 서버에서 단말 장치 사용자의 행위 데이터를 학습하고, 학습된 모델을 단말 장치에서 활용할 수 있게 된다.
한편, 본 개시의 다양한 실시 예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media)에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 여기서, 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시 예들에 따른 서버(200) 또는 단말 장치(100, 100')를 포함할 수 있다. 상기 명령이 프로세서에 의해 실행될 경우, 프로세서가 직접, 또는 상기 프로세서의 제어하에 다른 구성요소들을 이용하여 상기 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
일 실시 예에 따르면, 본 개시에 개시된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시 예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시 예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
이상의 설명은 본 개시의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 개시의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 또한, 본 개시에 따른 실시 예들은 본 개시의 기술 사상을 한정하기 위한 것이 아니라 설명하기 한 것이고, 이러한 실시 예에 의하여 본 개시의 기술 사상의 범위가 한정되는 것은 아니다. 따라서, 본 개시의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 개시의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
100: 단말 장치                       200: 서버
110: 통신부 120: 프로세서

Claims (17)

  1. 단말 장치의 제어 방법에 있어서,
    사용자가 상기 단말 장치를 조작함에 따라 생성되는 행위 데이터의 데이터 타입별로 상기 행위 데이터가 암호화될 서로 다른 암호문의 개수를 결정하는 단계;
    상기 결정된 개수 단위의 동일한 타입의 행위 데이터가 서로 다른 암호문으로 암호화되도록 상기 행위 데이터를 암호화하여 암호문을 생성하는 단계;
    상기 생성된 암호문을 외부 서버로 전송하는 단계;
    상기 전송된 암호문에 기초하여 학습된 상기 행위 데이터에 대한 모델이 수신되면, 상기 수신된 모델에 기초하여 상기 단말 장치의 동작을 모니터링하는 단계;를 포함하는 제어 방법.
  2. 제 1 항에 있어서,
    상기 결정하는 단계는,
    상기 행위 데이터의 데이터 타입별 발생 빈도 수에 관한 통계 데이터를 획득하는 단계; 및
    상기 획득된 통계 데이터 상의 행위 데이터 타입 각각이 적어도 하나의 암호문으로 암호화될 경우 각 암호문의 발생 빈도 수가 기설정된 빈도 수가 되도록 하는 데이터 타입별 암호문의 개수를 상기 서로 다른 암호 문의 개수로 결정하는 단계;를 포함하는 것을 특징으로 하는 제어 방법.
  3. 제 2 항에 있어서,
    상기 기설정된 빈도 수는,
    상기 통계 데이터 상의 상기 행위 데이터의 데이터 타입별 발생 빈도 수와는 상이한 것을 특징으로 하는 제어 방법.
  4. 제 1 항에 있어서,
    상기 모니터링하는 단계는,
    상기 결정된 개수 단위의 동일한 타입의 행위 데이터가 상기 서로 다른 암호문으로 암호화되도록, 상기 모델 수신 후 생성된 행위 데이터를 암호화하여 암호문을 생성하는 단계; 및
    상기 모델 수신 후 생성된 암호문을 상기 모델과 비교하여 상기 단말 장치의 동작을 모니터링하는 단계;를 포함하는 것을 특징으로 하는 제어 방법.
  5. 제 1 항에 있어서,
    상기 생성하는 단계는,
    결정론적 암호화 방식(deterministic encryption scheme)을 이용하여 상기 생성되는 행위 데이터를 순차적으로 암호화하는 것을 특징으로 하는 제어 방법.
  6. 제 1 항에 있어서,
    상기 행위 데이터는,
    상기 외부 서버가 상기 모델을 생성하기 위해 기계 학습에 사용하는 학습 데이터인 것을 특징으로 하는 제어 방법.
  7. 제 1 항에 있어서,
    상기 행위 데이터는,
    상기 단말 장치의 운영 체제가 제공하는 시스템 콜 함수의 호출 데이터 또는 상기 단말 장치가 수행한 동작에 관한 데이터이고,
    상기 모델은,
    상기 단말 장치가 동작할 때 호출되는 시스템 콜의 패턴에 관한 모델 또는 상기 단말 장치의 동작 패턴에 관한 모델인 것을 특징으로 하는 제어 방법.
  8. 제 2 항에 있어서,
    상기 모델을 기설정된 주기로 업데이트하는 단계;를 더 포함하는 것을 특징을 하는 제어 방법.
  9. 단말 장치에 있어서,
    외부 서버와 통신하는 통신부; 및
    사용자가 상기 단말 장치를 조작함에 따라 생성되는 행위 데이터의 데이터 타입별로 상기 행위 데이터가 암호화될 서로 다른 암호문의 개수를 결정하며, 상기 결정된 개수 단위의 동일한 타입의 행위 데이터가 서로 다른 암호문으로 암호화되도록 상기 행위 데이터를 암호화하여 암호문을 생성하고, 상기 생성된 암호문을 외부 서버로 전송하며, 상기 전송된 암호문에 기초하여 학습된 상기 행위 데이터에 대한 모델이 수신되면, 상기 수신된 모델에 기초하여 상기 단말 장치의 동작을 모니터링하는 프로세서;를 포함하는 단말 장치.
  10. ◈청구항 10은(는) 설정등록료 납부시 포기되었습니다.◈
    제 9 항에 있어서,
    상기 프로세서는,
    상기 행위 데이터의 데이터 타입별 발생 빈도 수에 관한 통계 데이터를 획득하고, 상기 획득된 통계 데이터 상의 행위 데이터 타입 각각이 적어도 하나의 암호문으로 암호화될 경우 각 암호문의 발생 빈도 수가 기설정된 빈도 수가 되도록 하는 데이터 타입별 암호문의 개수를 상기 서로 다른 암호 문의 개수로 결정하는 것을 특징으로 하는 단말 장치.
  11. ◈청구항 11은(는) 설정등록료 납부시 포기되었습니다.◈
    제 10 항에 있어서,
    상기 기설정된 빈도 수는,
    상기 통계 데이터 상의 상기 행위 데이터의 데이터 타입별 발생 빈도 수와는 상이한 것을 특징으로 하는 단말 장치.
  12. ◈청구항 12은(는) 설정등록료 납부시 포기되었습니다.◈
    제 9 항에 있어서,
    상기 프로세서는,
    상기 결정된 개수 단위의 동일한 타입의 행위 데이터가 상기 서로 다른 암호문으로 암호화되도록, 상기 모델 수신 후 생성된 행위 데이터를 암호화하여 암호문을 생성하고, 상기 모델 수신 후 생성된 암호문을 상기 모델과 비교하여 상기 단말 장치의 동작을 모니터링하는 것을 특징으로 하는 단말 장치.
  13. ◈청구항 13은(는) 설정등록료 납부시 포기되었습니다.◈
    제 9 항에 있어서,
    상기 프로세서는,
    결정론적 암호화 방식(deterministic encryption scheme)을 이용하여 상기 생성되는 행위 데이터를 순차적으로 암호화하는 것을 특징으로 하는 단말 장치.
  14. ◈청구항 14은(는) 설정등록료 납부시 포기되었습니다.◈
    제 9 항에 있어서,
    상기 행위 데이터는,
    상기 외부 서버가 상기 모델을 생성하기 위해 기계 학습에 사용하는 학습 데이터인 것을 특징으로 하는 단말 장치.
  15. ◈청구항 15은(는) 설정등록료 납부시 포기되었습니다.◈
    제 9 항에 있어서,
    상기 행위 데이터는,
    상기 단말 장치의 운영 체제가 제공하는 시스템 콜 함수의 호출 데이터 또는 상기 단말 장치가 수행한 동작에 관한 데이터이고,
    상기 모델은,
    상기 단말 장치가 동작할 때 호출되는 시스템 콜의 패턴에 관한 모델 또는 상기 단말 장치의 동작 패턴에 관한 모델인 것을 특징으로 하는 단말 장치.
  16. ◈청구항 16은(는) 설정등록료 납부시 포기되었습니다.◈
    제 10 항에 있어서,
    상기 프로세서는,
    상기 모델을 기설정된 주기로 업데이트하는 것을 특징을 하는 단말 장치.
  17. 통신부 및 프로세서를 포함하는 단말 장치의 제어 방법을 실행하기 위한 프로그램을 포함하는 컴퓨터 판독가능 기록 매체에 있어서,
    상기 제어 방법은,
    상기 프로세서가 사용자가 상기 단말 장치를 조작함에 따라 생성되는 행위 데이터의 데이터 타입 별로 상기 행위 데이터가 암호화될 서로 다른 암호문의 개수를 결정하는 단계;
    상기 프로세서가 상기 결정된 개수 단위의 동일한 타입의 행위 데이터가 서로 다른 암호문으로 암호화되도록 상기 행위 데이터를 암호화하여 암호문을 생성하는 단계;
    상기 프로세서가 상기 통신부를 통해 상기 생성된 암호문을 외부 서버로 전송하는 단계; 및
    상기 프로세서가 상기 전송된 암호문에 기초하여 학습된 상기 행위 데이터에 대한 모델을 상기 통신부를 통해 수신하면, 상기 수신된 모델에 기초하여 상기 단말 장치의 동작을 모니터링하는 단계;를 포함하는 컴퓨터 판독가능 기록 매체.
KR1020170177237A 2017-12-21 2017-12-21 단말 장치 및 단말 장치의 제어 방법 KR102408348B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020170177237A KR102408348B1 (ko) 2017-12-21 2017-12-21 단말 장치 및 단말 장치의 제어 방법
PCT/KR2018/014392 WO2019124770A1 (ko) 2017-12-21 2018-11-22 단말 장치 및 단말 장치의 제어 방법
US16/760,653 US11341253B2 (en) 2017-12-21 2018-11-22 Terminal apparatus and control method of terminal apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170177237A KR102408348B1 (ko) 2017-12-21 2017-12-21 단말 장치 및 단말 장치의 제어 방법

Publications (2)

Publication Number Publication Date
KR20190075558A KR20190075558A (ko) 2019-07-01
KR102408348B1 true KR102408348B1 (ko) 2022-06-14

Family

ID=66993518

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170177237A KR102408348B1 (ko) 2017-12-21 2017-12-21 단말 장치 및 단말 장치의 제어 방법

Country Status (3)

Country Link
US (1) US11341253B2 (ko)
KR (1) KR102408348B1 (ko)
WO (1) WO2019124770A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102501824B1 (ko) * 2019-08-30 2023-02-20 주식회사 카카오뱅크 신분증 인식 모델을 이용한 분산 학습 방법, 서버, 어플리케이션 및 이를 통한 신분증 인식 방법
KR102127171B1 (ko) 2019-08-30 2020-06-26 주식회사 카카오뱅크 신분증 인식 모델을 이용한 분산 학습 방법, 서버, 어플리케이션 및 이를 통한 신분증 인식 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170264749A1 (en) 2015-10-19 2017-09-14 Nanjing Howso Technology Co., Ltd CROWDSOURCING-MODE-BASED ANALYSIS METHOD FOR UTILIZATION OF WIRELESS NETWORK RESOURCES BY MOBILE Apps

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7072876B1 (en) * 2000-09-19 2006-07-04 Cigital System and method for mining execution traces with finite automata
JP2006053788A (ja) * 2004-08-12 2006-02-23 Ntt Docomo Inc ソフトウェア動作監視装置及びソフトウェア動作監視方法
US20070297606A1 (en) * 2006-06-27 2007-12-27 Tkacik Thomas E Multiple key security and method for electronic devices
JP5212208B2 (ja) 2009-03-23 2013-06-19 沖電気工業株式会社 受信装置、方法及びプログラム
JP6198850B2 (ja) * 2013-01-25 2017-09-20 クアルコム,インコーポレイテッド モバイルデバイス上での挙動の特徴の適応的な観測
US9996694B2 (en) 2013-03-18 2018-06-12 The Trustees Of Columbia University In The City Of New York Unsupervised detection of anomalous processes using hardware features
US9160742B1 (en) 2013-09-27 2015-10-13 Emc Corporation Localized risk analytics for user authentication
CN105745663B (zh) 2013-12-19 2018-11-16 英特尔公司 包括机器学习快照评估的保护系统
US9866646B2 (en) 2015-08-07 2018-01-09 Bento Labs Inc. Systems and methods for anticipatory push search for a homescreen browser
US9960911B2 (en) * 2015-09-11 2018-05-01 Signalchip Innovations Private Limited System and method for securing wireless communication through physical layer control and data channel
US9830470B2 (en) 2015-10-09 2017-11-28 Sap Se Encrypting data for analytical web applications
KR101767454B1 (ko) * 2015-11-12 2017-08-14 주식회사 엔젠소프트 다양한 웹 서비스 환경에서 사용자의 행위 패턴 분석을 통한 이상행위 탐지 방법과 그를 위한 장치
KR102450834B1 (ko) * 2016-01-04 2022-10-05 한국전자통신연구원 다중 특징벡터를 이용하는 행위기반 악성코드 탐지 장치 및 방법
US10341321B2 (en) * 2016-10-17 2019-07-02 Mocana Corporation System and method for policy based adaptive application capability management and device attestation
US20180191759A1 (en) * 2017-01-04 2018-07-05 American Express Travel Related Services Company, Inc. Systems and methods for modeling and monitoring data access behavior
US10586057B2 (en) * 2017-11-16 2020-03-10 Intuit Inc. Processing data queries in a logically sharded data store

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170264749A1 (en) 2015-10-19 2017-09-14 Nanjing Howso Technology Co., Ltd CROWDSOURCING-MODE-BASED ANALYSIS METHOD FOR UTILIZATION OF WIRELESS NETWORK RESOURCES BY MOBILE Apps

Also Published As

Publication number Publication date
KR20190075558A (ko) 2019-07-01
WO2019124770A1 (ko) 2019-06-27
US11341253B2 (en) 2022-05-24
US20200349262A1 (en) 2020-11-05

Similar Documents

Publication Publication Date Title
US20220360976A1 (en) Systems and methods for real-time remote control of mobile applications
Babun et al. Iotdots: A digital forensics framework for smart environments
US11347632B2 (en) Generating and signing a line-of-code behavior and relation model
US10630778B2 (en) System and method of controlling data transmission of external apparatus connected to gateway
US20210076212A1 (en) Recognizing users with mobile application access patterns learned from dynamic data
US11328067B2 (en) System and method for threat impact characterization
US10791177B2 (en) System to monitor and control sensor devices
US9832802B2 (en) Facilitating communications via a mobile internet-enabled connection interface
US20190129823A1 (en) Analyzing screenshots to detect application issues
US20190363966A1 (en) Online techniques for parameter mean and variance estimation in dynamic regression models
CN108475321A (zh) 用于允许防推断攻击的隐私保护实时服务的系统和方法
KR102408348B1 (ko) 단말 장치 및 단말 장치의 제어 방법
EP3352495B1 (en) Electronic device and method for providing event management service
US20170103239A1 (en) Identification of industrial equipment using micro-location services
EP3547185A2 (en) Apparatus and method for post-authentication user verification based on user interactions
JP6546088B2 (ja) 物理オブジェクトと通信デバイスとの間の許可された通信を確立するための方法
CN111567076A (zh) 用户终端设备、电子设备、包括它们的系统及控制方法
KR20180116242A (ko) 진동 네트워크의 대역폭 추정 시스템 및 방법
US10554677B1 (en) Detection of real user interaction with a mobile application
US20170108851A1 (en) Industrial automation electronic pinboard
KR102012397B1 (ko) 제어 디바이스를 사용하여 통신 네트워크를 통한 전자 디바이스의 상이한 동작 상태들의 제어
US20230308453A1 (en) Method and system for adaptive trust recovery in mixed environment communications
Özkurt Efficient Server Room Monitoring with Flutterand Firebase-Real-Time Insights and InstantNotifications
KR20200058147A (ko) 전자 장치 및 그의 제어 방법

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