KR20180017028A - 객체 지향 콘텍스트들에서의 이행 문제를 완화하기 위한 데이터 모니터링을 위한 기술들 - Google Patents

객체 지향 콘텍스트들에서의 이행 문제를 완화하기 위한 데이터 모니터링을 위한 기술들 Download PDF

Info

Publication number
KR20180017028A
KR20180017028A KR1020177035387A KR20177035387A KR20180017028A KR 20180017028 A KR20180017028 A KR 20180017028A KR 1020177035387 A KR1020177035387 A KR 1020177035387A KR 20177035387 A KR20177035387 A KR 20177035387A KR 20180017028 A KR20180017028 A KR 20180017028A
Authority
KR
South Korea
Prior art keywords
sensitive data
data element
application
policy
sensitive
Prior art date
Application number
KR1020177035387A
Other languages
English (en)
Inventor
마이클 제이. 티. 찬
루 샤오
로사리오 카마로타
올리비에 진 베노이트
사우라브 삽니스
인 링 리옹
매니쉬 모한
Original Assignee
퀄컴 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 퀄컴 인코포레이티드 filed Critical 퀄컴 인코포레이티드
Publication of KR20180017028A publication Critical patent/KR20180017028A/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/604Tools and structures for managing or administering access control 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/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
    • 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/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/105Multiple levels of security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2101Auditing as a secondary aspect

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Medical Informatics (AREA)
  • Automation & Control Theory (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

보안 자산 관리자를 사용하여 이행 데이터 문제를 완화하기 위한 기술들이 제공된다. 이러한 기술들은 애플리케이션에 대한 소스 코드와 연관된 데이터 엘리먼트가 민감 데이터 엘리먼트임을 표시하기 위한 데이터 태그로 소스 코드를 태깅하고, 민감 데이터 엘리먼트와 연관된 이행 규칙들을 포함하는 정책 파일에 액세스하고, 그리고 소스 코드로부터 애플리케이션에 대한 하나 또는 그보다 많은 객체 파일들을 생성함으로써 보안 자산 관리자 호환 애플리케이션을 생성하는 것을 포함한다. 이러한 기술들은 또한, 보안 자산 관리자에 의해 관리되는 보안 메모리 영역에 민감 데이터 엘리먼트를 저장하는 것, 그리고 민감 데이터 엘리먼트가 발생하는 애플리케이션에 의해 민감 데이터 엘리먼트와 연관된 정책에 따라 민감 데이터 엘리먼트를 관리하는 것을 포함하며, 정책은 민감 데이터 엘리먼트와 연관된 이행 규칙들을 정의한다.

Description

객체 지향 콘텍스트들에서의 이행 문제를 완화하기 위한 데이터 모니터링을 위한 기술들
[0001] 민감(sensitive) 데이터에 액세스하여 처리하기 위한 애플리케이션의 사용은 이러한 애플리케이션들이 이러한 민감 데이터를 애플리케이션 간에 누설하고 있지 않음을 보장하도록 이러한 민감 데이터의 소유자/관리자들 및 애플리케이션 개발자들에 대해 과제들을 제시한다. 이 문제는 이행(transitive) 데이터 문제로 언급되었다.
[0002] 종래의 컴퓨팅 디바이스들에서는, 애플리케이션 A가 애플리케이션 B와 민감 데이터 D를 공유할 때, 데이터 D가 애플리케이션 B에 의해 애플리케이션 C 또는 다른 애플리케이션들에 누설될 수 있다. 데이터는 또한 하나 또는 그보다 많은 다른 애플리케이션들에 누설되기 전에 수정될 수 있다. JavaEE 및 .NET으로 개발된 확장 가능 생태계들 및 안드로이드 운영 시스템과 같은 서비스 지향 아키텍처(SOA: Service Oriented Architecture)들뿐만 아니라, 바람직하지 않고 예측 불가능한 방식들로 애플리케이션들 사이에서 데이터가 유포될 수 있는 그러한 다른 환경들에서도 이러한 상호 작용 및 이행성 문제들이 존재할 수 있다. 이러한 문제들이 발생할 수 있는 상황들의 예들은: (1) 고용인들이 그들의 개인 모바일 디바이스(전화기들, 태블릿들, 랩톱들 등)를 사용하여 민감한 회사 정보에 액세스하는 Bring Your Own Device 플랜들을 이용하는 조직들, (2) 민감한 금융 데이터가 애플리케이션 간에 전달될 수 있는 금융 서비스들, (3) 건강 모니터링 서비스들- 연방법 및/또는 주법(예컨대 HIPAA)에 따라 보호될 수 있는 민감한 건강 관련 데이터가 애플리케이션 간에 전달될 수 있는 경우 -을 포함한다. 신뢰 중요 이벤트들의 신뢰할 수 있는 감사(audit)가 떠오르는 요건이다.
[0003] 본 개시내용에 따라 민감 데이터를 보호하기 위한 방법의 구현들은, 보안 자산 관리자에 의해 관리되는 보안 메모리 영역에 민감 데이터 엘리먼트를 저장하는 단계; 및 민감 데이터 엘리먼트가 발생하는 애플리케이션에 의해 민감 데이터 엘리먼트와 연관된 정책에 따라 민감 데이터 엘리먼트를 관리하는 단계를 포함하며, 정책은 민감 데이터 엘리먼트와 연관된 이행 규칙들을 정의한다.
[0004] 이러한 방법의 구현들은 다음 특징들 중 하나 또는 그보다 많은 특징을 포함할 수 있다. 이행 규칙들은 민감 데이터 엘리먼트가 어떤 다른 애플리케이션들과 공유될 수 있는지를 정의하는 규칙들을 포함한다. 민감 데이터 엘리먼트를 관리하는 단계는, 민감 데이터 엘리먼트가 발생하는 애플리케이션으로부터의 정책을 민감 데이터 엘리먼트로부터 도출된 데이터 엘리먼트들에 적용하는 단계를 더 포함한다. 민감 데이터 엘리먼트를 관리하는 단계는, 민감 데이터 엘리먼트 및 그 민감 데이터 엘리먼트로부터 도출된 임의의 데이터 엘리먼트들에 대해 수행되는 각각의 동작을 감사하는 단계를 포함한다. 민감 데이터 엘리먼트 및 그 민감 데이터 엘리먼트로부터 도출된 임의의 데이터 엘리먼트들에 대해 수행되는 각각의 동작을 감사하는 단계는, 보안 자산 관리자에 의해 관리되는 보안 메모리 영역에 감사 정보를 저장하는 단계를 포함한다. 민감 데이터 엘리먼트를 관리하는 단계는, 민감 데이터 엘리먼트에 대한 연산들을 수행하기 위한 하나 또는 그보다 많은 함수들을 제공하는 단계를 포함한다. 민감 데이터 엘리먼트를 관리하는 단계는, 하나 또는 그보다 많은 함수들에 의해 생성된 중간 데이터 값들을 보안 메모리 영역에 저장하는 단계를 포함한다.
[0005] 본 개시내용에 따른 장치의 예시적인 구현은 메모리 및 프로세서를 포함한다. 프로세서는 보안 자산 관리자에 의해 관리되는 메모리의 보안 메모리 영역에 민감 데이터 엘리먼트를 저장하고, 민감 데이터 엘리먼트가 발생하는 애플리케이션에 의해 민감 데이터 엘리먼트와 연관된 정책에 따라 민감 데이터 엘리먼트를 관리하도록 구성되며, 정책은 민감 데이터 엘리먼트와 연관된 이행 규칙들을 정의한다.
[0006] 이러한 장치의 구현들은 다음 특징들 중 하나 또는 그보다 많은 특징을 포함할 수 있다. 이행 규칙들은 민감 데이터 엘리먼트가 어떤 다른 애플리케이션들과 공유될 수 있는지를 정의하는 규칙들을 포함한다. 민감 데이터 엘리먼트를 관리하도록 구성된 프로세서는, 민감 데이터 엘리먼트가 발생하는 애플리케이션으로부터의 정책을 민감 데이터 엘리먼트로부터 도출된 데이터 엘리먼트들에 적용하도록 추가로 구성된다. 민감 데이터 엘리먼트를 관리하도록 구성된 프로세서는, 민감 데이터 엘리먼트 및 그 민감 데이터 엘리먼트로부터 도출된 임의의 데이터 엘리먼트들에 대해 수행되는 각각의 동작을 감사하도록 추가로 구성된다. 민감 데이터 엘리먼트 및 그 민감 데이터 엘리먼트로부터 도출된 임의의 데이터 엘리먼트들에 대해 수행되는 각각의 동작을 감사하도록 구성된 프로세서는, 보안 자산 관리자에 의해 관리되는 보안 메모리 영역에 감사 정보를 저장하도록 추가로 구성된다. 민감 데이터 엘리먼트를 관리하도록 구성된 프로세서는 민감 데이터 엘리먼트에 대한 연산들을 수행하기 위한 하나 또는 그보다 많은 함수들을 제공하도록 추가로 구성된다. 민감 데이터 엘리먼트를 관리하도록 구성된 프로세서는, 하나 또는 그보다 많은 함수들에 의해 생성된 중간 데이터 값들을 보안 메모리 영역에 저장하도록 추가로 구성된다.
[0007] 본 개시내용에 따라 보안 자산 관리자 호환(compliant) 애플리케이션을 생성하기 위한 방법은, 애플리케이션에 대한 소스 코드와 연관된 데이터 엘리먼트가 민감 데이터 엘리먼트임을 표시하기 위한 데이터 태그로 소스 코드를 태깅하는 단계, 민감 데이터 엘리먼트와 연관된 이행 규칙들을 포함하는 정책 파일에 액세스하는 단계, 및 소스 코드로부터 애플리케이션에 대한 하나 또는 그보다 많은 객체 파일들을 생성하는 단계를 포함한다.
[0008] 이러한 방법의 구현들은 다음 특징들 중 하나 또는 그보다 많은 특징을 포함할 수 있다. 객체 파일이 신뢰할 수 있는 제공자에 의해 생성되었음을 표시하는 보안 인증서로 하나 또는 그보다 많은 객체 파일들이 서명된다. 데이터 태그는 애플리케이션의 런타임시 보안 자산 관리자에 의해 민감 데이터 엘리먼트 및 그 민감 데이터 엘리먼트로부터 도출된 임의의 데이터 엘리먼트들에 어떤 정책이 적용되어야 하는지를 식별하는 고유 식별자를 포함한다. 애플리케이션에 대한 하나 또는 그보다 많은 객체 파일들을 생성하는 단계는, 데이터 태그를 인식하도록 그리고 민감 데이터 엘리먼트의 인스턴스들을 관리하기 위한 민감 데이터 객체 타입을 생성하도록 구성되는 보안 자산 관리자 호환 컴파일러로 소스 코드를 컴파일하는 단계를 포함한다. 보안 자산 관리자를 구현하는 타깃 디바이스에 대한 실행 가능 파일을 생성하기 위해 객체 파일이 적어도 하나의 다른 객체 파일 또는 라이브러리와 링크된다. 민감 데이터 엘리먼트와 연관된 이행 규칙들은 민감 데이터 엘리먼트에 액세스하여 민감 데이터 엘리먼트에 대한 하나 또는 그보다 많은 연산들을 수행하도록 허용되는 한 세트의 신뢰할 수 있는 애플리케이션들을 식별한다. 민감 데이터 엘리먼트와 연관된 이행 규칙들은 어떤 애플리케이션들이 민감 데이터 엘리먼트로부터 데이터를 도출할 수 있는지를 식별한다.
[0009] 본 개시내용에 따른 예시적인 장치는 메모리 및 프로세서를 포함한다. 프로세서는 메모리에 저장된 애플리케이션에 대해 저장된 소스 코드와 연관된 데이터 엘리먼트가 민감 데이터 엘리먼트임을 표시하기 위한 데이터 태그로 소스 코드를 태깅하고, 민감 데이터 엘리먼트와 연관된 이행 규칙들을 포함하는 정책 파일에 액세스하고, 그리고 메모리 내의 소스 코드로부터 애플리케이션에 대한 하나 또는 그보다 많은 객체 파일들을 생성하도록 구성된다.
[0010] 이러한 장치의 구현들은 다음 특징들 중 하나 또는 그보다 많은 특징을 포함할 수 있다. 프로세서는 객체 파일이 신뢰할 수 있는 제공자에 의해 생성되었음을 표시하는 보안 인증서로 하나 또는 그보다 많은 객체 파일들을 서명하도록 구성된다. 데이터 태그는 애플리케이션의 런타임시 보안 자산 관리자에 의해 데이터 태그와 연관된 민감 데이터 엘리먼트에 어떤 정책이 적용되어야 하는지를 식별하는 고유 식별자를 포함한다. 애플리케이션에 대한 하나 또는 그보다 많은 객체 파일들을 생성하도록 구성된 프로세서는, 데이터 태그를 인식하도록 그리고 민감 데이터 엘리먼트의 인스턴스들을 관리하기 위한 민감 데이터 객체 타입을 생성하도록 구성되는 보안 자산 관리자 호환 컴파일러로 소스 코드를 컴파일하도록 추가로 구성된다. 프로세서는 보안 자산 관리자를 구현하는 타깃 디바이스에 대한 실행 가능 파일을 생성하기 위해 객체 파일을 적어도 하나의 다른 객체 파일 또는 라이브러리와 링크하도록 추가로 구성된다. 민감 데이터 엘리먼트와 연관된 이행 규칙들은 민감 데이터 엘리먼트에 액세스하여 민감 데이터 엘리먼트에 대한 하나 또는 그보다 많은 연산들을 수행하도록 허용되는 한 세트의 신뢰할 수 있는 애플리케이션들을 식별한다. 민감 데이터 엘리먼트와 연관된 이행 규칙들은 어떤 애플리케이션들이 민감 데이터 엘리먼트로부터 데이터를 도출할 수 있는지를 식별한다.
[0011] 도 1은 본 명세서에서 논의되는 기술들을 구현하기에 적합할 수 있는 예시적인 네트워크 아키텍처 또는 컴퓨팅 환경의 블록도이다.
[0012] 도 2는 도 1에 예시된 빌드 시스템을 구현하는 데 사용될 수 있는 컴퓨팅 디바이스의 블록도이다.
[0013] 도 3은 도 1 - 도 2에 도시된 빌드 시스템의 기능 모듈들을 예시하는, 도 1 - 도 2에 예시된 빌드 시스템의 기능 블록도이다.
[0014] 도 4는 도 1에 예시된 타깃 디바이스를 구현하는 데 사용될 수 있는 컴퓨팅 디바이스의 블록도이다.
[0015] 도 5는 도 1 - 도 4에 도시된 타깃 디바이스의 기능 모듈들을 예시하는, 도 1 - 도 4에 예시된 타깃 디바이스의 기능 블록도이다.
[0016] 도 6은 본 명세서에서 논의되는 기술들에 따라 민감 데이터를 로킹-다운(lock down)하기 위한 예시적인 프로세스의 논리 블록도이다.
[0017] 도 7은 본 명세서에서 논의되는 기술들에 따라 민감 데이터를 로킹-온(lock on)하기 위한 예시적인 프로세스의 논리 블록도이다.
[0018] 도 8은 본 명세서에서 논의되는 기술들에 따라 보안 자산 관리자를 구현하는 애플리케이션을 빌드하기 위한 예시적인 프로세스의 흐름도이다.
[0019] 도 9는 본 명세서에서 개시되는 기술들에 따라 민감 데이터를 보호하기 위한 예시적인 프로세스의 흐름도이다.
[0020] 도 10은 본 명세서에서 논의되는 기술들에 따라 민감 데이터 엘리먼트에 대한 액세스를 제어하기 위한 예시적인 프로세스의 흐름도이다.
[0021] 도 11은 본 명세서에서 논의되는 기술들에 따라 기존의 민감 데이터 엘리먼트로부터 새로운 민감 데이터 엘리먼트를 도출하기 위한 예시적인 프로세스의 흐름도이다.
[0022] 이행 데이터 문제를 완화하기 위한 기술들이 본 명세서에서 개시된다. 다중 애플리케이션 환경들은 애플리케이션 간에 데이터가 누설될 수 있는 이행성 문제를 나타낼 수 있다. 본 명세서에서 개시되는 기술들은, 민감 데이터가 애플리케이션들에 의해 어떻게 이용되고 그리고/또는 공유될 수 있는지를 표시하는 규칙들을 포함하는 정책들의 사용을 통해 민감 데이터에 대한 액세스를 제어함으로써, 민감 데이터의 특정 인스턴스와 연관된 본래의 정책 규칙들을 민감 데이터의 인스턴스로부터 도출된 임의의 데이터에 적용함으로써, 데이터에 대한 무단 액세스를 방지하기 위해 메모리의 보안 영역 내의 데이터를 로킹-다운함으로써, 그리고 민감 데이터 엘리먼트의 각각의 인스턴스 및 그로부터 도출된 데이터의 각각의 인스턴스를 추적하여 민감 데이터 엘리먼트의 디스포지션(disposition)에 대한 전체 이력을 제공하는, 각각의 민감 데이터 엘리먼트에 대한 감사 이력을 생성함으로써 이 문제를 해결한다.
[0023] 본 명세서에서 개시되는 기술들은 공유 인터페이스들을 통해 애플리케이션들 사이에 공유되고 액세스되는 민감 데이터 객체들의 이력을 추적하는 데 사용될 수 있다. 보안 자산 관리자(SAM: Secure Asset Manager)를 사용하여 다중 애플리케이션 환경에서 민감 데이터가 애플리케이션 간에 누설되는 것을 막기 위한 기술들이 개시된다. 본 명세서에서 논의되는 기술들은 민감 데이터의 유포에 대한 규칙들을 정의하는 정책에 의해 허용되는 경우를 제외하고는 애플리케이션들 간의 민감 데이터의 무단 공유를 막도록 민감 데이터를 태깅하는 데 사용될 수 있다. 본 명세서에서 개시되는 기술들은 또한 민감 데이터로부터 도출된 데이터의 무단 공유를 막는 데 사용될 수 있다. 본래의 민감 데이터 엘리먼트와 연관된 정책은 민감 데이터 엘리먼트로부터 도출된 임의의 데이터와 연관될 수 있으므로, 도출된 데이터는 본래의 민감 데이터 엘리먼트와 연관된 정책 규칙들에 따라 취급된다. 본 명세서에서 개시되는 기술들은 또한, 컴퓨팅 디바이스 상의 애플리케이션들에 의해 액세스, 공유 및/또는 수정되는 민감 데이터 엘리먼트들의 인스턴스들을 추적하기 위해 디바이스 상의 신뢰 중요 이벤트들의 감사 로그를 생성하는 것을 포함할 수 있다. 본 명세서에서 개시되는 기술들은 디지털 저작권 관리(DRM: Digital Rights Management), 신뢰할 수 있는 실행 환경들, 및/또는 다수의 애플리케이션들이 구현될 수 있고 애플리케이션들 간의 민감 데이터의 공유가 요구되는 다른 운용 환경들을 포함하지만 이에 한정된 것은 아닌 매우 다양한 콘텍스트들에 적용될 수 있다.
[0024] 본 명세서에서 개시되는 기술들은 2개의 논리 스테이지들로 나뉠 수 있다. 첫 번째 스테이지는 본 명세서에서 "정보의 로킹-다운" 단계로 지칭되고, 두 번째 스테이지는 본 명세서에서 "정보의 로킹-온" 스테이지로 지칭된다. 정보의 로킹-다운 단계를 예시하는 일례가 도 6에 예시되고, 정보의 로킹-온 단계를 예시하는 일례가 도 7에 예시된다.
[0025] 도 6은 정보의 로킹-다운 스테이지를 예시하는 고 레벨 논리 블록도를 제공한다. 로킹-다운 단계 동안, 애플리케이션과 연관된 민감 데이터 엘리먼트들이 소스 코드에 태깅되어, 민감 데이터 엘리먼트들 및 이들로부터 도출된 데이터의 유포가 보안 자산 관리자에 의해 관리되는 SAM 호환 애플리케이션들을 생성할 수 있다. SAM의 기능은 도 7에 관해 보다 상세히 논의된다.
[0026] 애플리케이션에 대한 소스 코드(605)는 민감 데이터의 액세스 및 공유의 제어가 요구되는 민감 데이터 엘리먼트들에 대한 하나 또는 그보다 많은 레퍼런스들을 포함할 수 있다. 애플리케이션 개발자는 민감 데이터 엘리먼트의 인스턴스를 소스 코드 내의 태그(610)로 태깅할 수 있다. 태그(610)는 태그(610)와 연관된 데이터 엘리먼트를 민감 데이터라고 표시하고, 민감 데이터 엘리먼트에 저장된 데이터의 액세스 및 유포는 애플리케이션과 연관된 정책(620)에 의해 제어될 것이다. 태그(610)는 민감 데이터 엘리먼트와 어떤 정책 정보가 연관되는지 그리고 민감 데이터 엘리먼트와 연관된, 정책으로부터의 특정 이행 규칙들을 고유하게 식별하는 데 사용될 수 있다. SAM 인식 컴파일러(615)가 민감 데이터 엘리먼트와 연관된 객체들을 생성할 때, 이 식별자가 객체와 연관된다. SAM(705)은 이 태그와 연관된 객체들의 모든 인스턴스들을 계속 파악하고, 이러한 객체들이 상이한 애플리케이션과 공유된다 하더라도, 그 태그와 연관된 정책을 이러한 객체들에 적용하도록 구성된다. 태그(610)는 정책 정보 자체를 전달하는 것이 아니라, 대신 특정한 민감 데이터 엘리먼트에 적용하는 정책 정보에 대한 포인터로서의 역할을 한다. 민감 데이터 엘리먼트로부터 도출되는 임의의 데이터 엘리먼트들은 태그(610)에 의해 전달되는 정보를 물려받을 것이다. SAM(705)은 새로운 데이터 엘리먼트들이 도출된 본래의 민감 데이터 엘리먼트와 연관된 동일한 정책 정보를 이용하여 이러한 데이터 엘리먼트들의 관리를 계속할 것이다.
[0027] SAM 인식 컴파일러(615)는 태그(610)를 포함하는 소스 코드(605)를 컴파일하는 데 사용될 수 있다. SAM 인식 컴파일러(615)는 소스 코드에 포함된 민감 데이터 엘리먼트들을 식별하는 태그들을 인식하고 민감 데이터 엘리먼트들과 연관된 객체 코드를 생성하여, SAM이 애플리케이션과 연관된 정책 정보에 따라 민감 데이터 엘리먼트들의 액세스 및 유포를 제어할 수 있게 하도록 구성될 수 있다.
[0028] SAM 인식 컴파일러(615)는 민감 데이터 엘리먼트와 연관된 객체 클래스를 생성하도록 구성될 수 있어, 런타임시 애플리케이션에 의해 생성된 민감 데이터 엘리먼트의 인스턴스들이 이 객체 클래스의 인스턴스들 또는 그로부터 도출된 객체 클래스가 된다. SAM 인식 컴파일러(615)는 애플리케이션에 대한 객체 코드 및 애플리케이션과 연관된 정책 정보(620)를 포함하는 객체 파일들을 출력하도록 구성될 수 있다. 정책 정보(620)는 파일 또는 파일들의 형태일 수 있고 또는 정책 정보를 저장하기 위한 데이터베이스 내의 엔트리들 또는 다른 저장 포맷을 포함할 수 있다. 객체 파일들은 배포(deployment)(635)를 위해 처리될 수 있다. 배포 단계 동안, 객체 파일들에 포함된 객체 코드는 애플리케이션이 배포될 특정 타깃 디바이스(175)에 대해 링크 및/또는 다른 식으로 처리될 수 있다. SAM 인식 컴파일러(615)는 애플리케이션의 배포를 담당하는 애플리케이션 개발자 또는 콘텐츠 제공자와 연관된 개인 암호화 키를 사용하여 객체 파일들을 암호화 및/또는 서명하도록 구성될 수 있다.
[0029] 도 6에 예시된 예는 소스 코드 내의 단일 태그(610)를 포함하지만, 본 명세서에서 개시되는 기술들에 따라 빌드되는 애플리케이션은 소스 코드 내의 다수의 민감 데이터 엘리먼트들을 나타내는 다수의 태그들을 사용할 수 있다. 도 6에 예시된 프로세스에 따라 빌드된 SAM 호환 애플리케이션은 애플리케이션이 도 7에 예시된 보안 자산 관리자(705)와 상호 작용하여 민감 데이터 엘리먼트들을 저장, 액세스 및/또는 수정할 수 있게 하는 인터페이스를 정의하는 SAM 애플리케이션 프로그래밍 인터페이스(API: Application Programming Interface)들을 구현할 수 있다.
[0030] 민감 데이터 엘리먼트는 애플리케이션 개발자가 어떠한 실수도 없이 유포되어야 하는 정보라고 여기는 임의의 정보를 포함할 수 있다. 예컨대, 민감 정보는 금융 데이터, 의료 또는 건강 데이터, 교육 기록들, 고용 기록들, 정부 데이터 및/또는 유포가 통제되어야 하는 다른 정보를 포함할 수 있다. 민감 데이터 엘리먼트들의 유포는 애플리케이션과 연관된 정책 정보(620)에 의해 통제될 수 있다. 특정 데이터 엘리먼트에 대한 정책 정보는 소스 코드(605)에서 민감 데이터 엘리먼트를 태깅하는 데 사용된 태그(610)를 식별하는 데이터 태그 정보를 포함할 수 있다. 데이터 태그는 소스 코드로부터 태깅된 각각의 데이터 엘리먼트를 고유하게 참조하는 고유 식별자를 포함할 수 있다.
[0031] 데이터 태그는 소스 코드에서 민감 데이터 엘리먼트들을 식별하는 데 사용될 수 있는 객체 타입으로서 구현될 수 있다. 민감 데이터 엘리먼트들은 SAM 호환 민감 데이터 객체 클래스의 특성들을 물려받는, 소스 코드 내의 객체들로서 정의될 수 있다. 소스 코드는 객체 정의에 "민감" 식별자를 부가함으로써 태깅될 수 있고, SAM 인식 컴파일러(615)는 이 태그를 처리하여, 본 명세서에서 논의되는 SAM 호환 기술들을 사용하여 연산되는 객체 파일들(625)을 생성하도록 구성될 수 있다. 예컨대, 프로그래머는 소스 코드 내의 소셜 보안 번호 객체에 "민감" 태그를 부가하여, 소셜 보안 번호 객체가 그 사용 및 유포가 애플리케이션과 연관된 정책에 의해 통제되어야 하는 민감 데이터 엘리먼트임을 표시할 수 있다. SAM 인식 컴파일러(615)는 SAM 호환 민감 데이터 엘리먼트 객체 타입의 특성들을 물려받게 소셜 보안 번호 객체 타입을 수정하도록 구성될 수 있다. 민감 데이터 엘리먼트 객체 타입은 민감 데이터 엘리먼트와 연관된 정책 정보를 저장하기 위한 데이터 엘리먼트들을 포함할 수 있고, 민감 데이터 엘리먼트를 SAM(705)에 저장하기 위한 방법, SAM(705)의 일시적 작업 메모리(715) 내의 민감 데이터 엘리먼트에 대한 연산들을 수행하기 위한 방법, 애플리케이션 및 민감 데이터 엘리먼트와 연관된 정책 정보에 액세스하기 위한 방법, 민감 데이터 엘리먼트들의 사용 및 유포를 통제하기 위한 정책 정보를 적용하기 위한 방법, 및/또는 본 명세서에서 개시되는 기술들의 다른 양상들을 구현할 수 있다.
[0032] 민감 식별자는 또한 특정 데이터 엘리먼트에 대한 고유 식별자와 같은 파라미터들을 포함하도록 구성될 수 있다. 고유 식별자는 특정 애플리케이션에서 동일한 타입의 다수의 민감 데이터 엘리먼트들을 구분하는 데 사용될 수 있고, 그리고/또는 정책 파일에 포함된 각각의 민감 데이터 엘리먼트와 연관된 정책 정보를 식별하는 데 사용될 수 있다. 서로 다른 데이터 엘리먼트들은 정책 파일에서 이러한 데이터 엘리먼트들에 대해 정의된, 애플리케이션들 간의 이들의 사용 및 유포에 대한 서로 다른 규칙들을 가질 수 있다.
[0033] 도 7은 정보의 로킹-온 스테이지를 예시하는 고 레벨 논리 블록도를 제공한다. 로킹-온 스테이지 동안, 보안 자산 관리자(705)에 호환되는 도 6에 예시된 기술을 사용하여 빌드된 애플리케이션이 타깃 디바이스(175) 상에서 실행될 수 있다. 보안 자산 관리자(705)에 호환되는 애플리케이션은 애플리케이션이 애플리케이션과 연관된 정책에 따라 SAM(705)에 의해 관리되고 있는 민감 데이터에 액세스하여 이를 사용할 수 있게 하는 인터페이스를 포함할 수 있다. 민감 데이터는 보안 자산 관리자(705)에 의해 이용되는 보호 메모리 영역 내에 저장될 수 있고, 데이터를 생성한 애플리케이션과 연관된 정책에 의해 데이터에 액세스하도록 허용된 애플리케이션들에만 액세스 가능하다. 민감 데이터 엘리먼트를 원래 생성했던 애플리케이션과 연관된 정책이 SAM(705)에 의해, 민감 데이터 엘리먼트로부터 도출된 임의의 데이터 엘리먼트들에 또한 적용된다. 더욱이, 이 정책은 민감 데이터 엘리먼트의 수명 주기 전반에 걸쳐 민감 데이터 엘리먼트를 따르며, 다른 애플리케이션과 공유되는 데이터 엘리먼트의 사본들뿐만 아니라 본래의 민감 데이터 엘리먼트 또는 그 사본들로부터 도출된 정보에도 적용된다. 이에 따라, 민감 데이터 엘리먼트를 원래 생성했던 애플리케이션과 연관된 정책이 SAM(705)에 의해, 다른 SAM 호환 애플리케이션들과 공유되는 민감 데이터 엘리먼트들의 사본들에 또한 적용되어 민감 정보의 무단 유포를 막는다.
[0034] 보안 자산 관리자(705)는 도 6에 예시된 프로세스를 사용하여 빌드된 SAM 호환 애플리케이션에 포함된 소프트웨어로서 구현될 수 있거나 타깃 디바이스(175) 상의 소프트웨어, 펌웨어, 또는 이들의 결합으로서 구현될 수 있다. 보안 자산 관리자(705)는 타깃 디바이스(175)의 보안 메모리 공간에서 실행되는 애플리케이션일 수 있다. 예컨대, 타깃 디바이스(175)의 프로세서(410)는 보안 처리 환경 밖에서 실행되고 있는 애플리케이션들에는 액세스 불가능한 메모리 전용 부분을 포함할 수 있는 보안 처리 환경을 구현하도록 구성될 수 있다. 다른 구현들에서, 보안 자산 관리자(705)는 보안 처리 환경의 일부가 아닌 메모리 부분에서 동작하도록 구성될 수 있다. 보안 자산 관리자(705)는 다른 프로세스들에 의해 데이터 액세스를 막도록 구성될 수 있다. 예컨대, 보안 자산 관리자(705)는 보안 자산 관리자(705)와 연관된 일시적 작업 메모리(715) 및 영구적 작업 메모리(720)의 데이터 콘텐츠를 암호화하거나 아니면 난독화하도록 구성될 수 있다. SAM(705)은 타깃 디바이스(175)의 프로세서(410)가 SAM(705)과 연관된 데이터를 처리하고 있는 동안 타깃 디바이스(175)의 프로세서(410)와 연관된 모든 레지스터들을 로킹-다운하여, 보호되는 데이터가 SAM(705)에 의해 관리되는 보안 메모리 공간으로부터 누설되지 않음을 보장하도록 구성될 수 있다. SAM(705)은 SAM 호환 애플리케이션들이 민감 데이터 엘리먼트들을 생성하여 SAM(705)에 의해 관리되는 보안 메모리 공간에 저장할 수 있게 하는 인터페이스를 제공하도록 구성될 수 있다. 인터페이스는 또한, SAM 호환 애플리케이션들이 SAM(705)에 의해 관리되는 보안 메모리 공간 내의 민감 데이터 엘리먼트들로부터의 새로운 보안 데이터 엘리먼트들을 액세스, 수정 또는 도출하게 할 수 있다. SAM(705)은 특정 민감 데이터 엘리먼트가 발생한 애플리케이션을 추적하도록 구성될 수 있다. SAM(705)은 SAM(705)에 의해 유지되고 있는 민감 데이터 엘리먼트로부터 도출되는 데이터에 대한 소스 정보를 추적하도록 구성될 수 있다. SAM(705)은 민감 데이터의 소스인 애플리케이션과 연관된 정책 정보를 적용하여, 어떤 애플리케이션들이 특정 데이터 엘리먼트로부터의 파생 정보를 액세스, 수정 또는 생성할 수 있는지를 결정하도록 구성될 수 있다.
[0035] SAM(705)은 SAM 호환 애플리케이션이 SAM 호환 애플리케이션에 의해 생성된 민감 데이터 엘리먼트를 나타내는 객체의 인스턴스를 SAM(705)에 의한 저장 및 관리를 위해 SAM(705)에 제공할 수 있게 하는 인터페이스를 제공할 수 있다. 대안으로, 또는 이 인터페이스에 추가하여, SAM(705)은 SAM(705)이 SAM(705)에 의한 저장 및 관리를 위한 민감 데이터 엘리먼트를 나타내는 객체의 새로운 인스턴스를 생성할 것을 SAM 호환 애플리케이션이 요청할 수 있게 하는 인터페이스를 제공할 수 있다. SAM 호환 애플리케이션은 객체를 생성하는 데 필요한 정보를 SAM(705)에 제공하도록 구성될 수 있다.
[0036] 일시적 작업 메모리(715)는 영구적 작업 메모리(720)에 저장된 민감 데이터 엘리먼트들에 대해 수행되고 있는 연산들을 위해 SAM(705)에 의해 사용될 수 있다. SAM(705)은 민감 데이터 엘리먼트에 대한 연산이 완료된 후 일시적 작업 메모리(715)의 콘텐츠를 클리어하도록 구성될 수 있다. 영구적 작업 메모리(720)는 연산의 일부로서 현재 사용되고 있지 않은 하나 또는 그보다 많은 애플리케이션들에 의해 맡겨진 민감 데이터 엘리먼트들, 민감 데이터 엘리먼트들과 연관된 정책 정보, 및 민감 데이터 엘리먼트에 대한 연산이 수행될 때 생성된 일시적 데이터 엘리먼트들이 아닌 다른 영구적 정보와 같은 정보를 저장하는 데 사용될 수 있다. 일부 구현들에서, 일시적 작업 메모리(715) 및 영구적 작업 메모리(720)는 단일 메모리 공간으로 구현될 수 있고, SAM(705)은 일시적 데이터 및 영구적 데이터 아이템들의 메모리 할당 및 클린업을 관리하도록 구성될 수 있다. SAM(705)은 타깃 디바이스(175) 상의 SAM 호환 애플리케이션이 종료되는 것에 응답하여 그리고/또는 현재 민감 데이터가 필요하지 않은 SAM 호환 애플리케이션으로부터의 명령에 응답하여 영구적 작업 메모리(720)로부터 정책 정보 및/또는 민감 데이터 엘리먼트와 같은 영구적 데이터를 클린업하도록 구성될 수 있다. SAM 호환 애플리케이션은 SAM 호환 애플리케이션이 SAM(705)에 의해 유지되고 있는 특정 세트의 데이터를 더는 필요로 하지 않는다는 것을 SAM(705)에 시그널링하도록 구성될 수 있고, SAM(705)은 일시적 작업 메모리(715) 및 영구적 작업 메모리(720)에 저장된 애플리케이션과 연관된 임의의 민감 데이터 엘리먼트들을 클린업하도록 구성될 수 있다. 더욱이, SAM(705)은 원래 데이터를 공유했던 애플리케이션이 더는 디바이스 상에서 능동적으로 실행되고 있지 않고 SAM(705)에 의해 저장된 민감 데이터 엘리먼트들을 이용하고 있지 않더라도, 다른 애플리케이션들과 공유되었던 임의의 민감 데이터 엘리먼트들에 애플리케이션과 연관된 정책을 계속해서 적용하도록 구성될 수 있다.
[0037] SAM(705)은 또한 영구적 작업 메모리(720)에 정책 정보를 저장하도록 구성될 수 있다. 특정 애플리케이션과 연관된 정책 정보는 주기적으로 업데이트될 수 있다. 예컨대, 특정 애플리케이션에 대한 정책 정보는 애플리케이션이 민감 데이터 엘리먼트들을 공유할 수 있는 하나 또는 그보다 많은 다른 애플리케이션들의 식별자들을 추가 또는 제거하도록 업데이트될 수 있다. SAM(705)은 신뢰할 수 있는 엔티티로부터의 업데이트된 정책 정보를 요청하도록 그리고/또는 신뢰할 수 있는 엔티티에 의해 타깃 디바이스(175)로 푸시된 업데이트된 정책 정보를 수신하도록 구성될 수 있다.
[0038] 로거(logger) 모듈(710)은 민감 데이터 엘리먼트에 대해 수행되는 임의의 연산들에 대한 감사 로그의 엔트리를 생성하도록 구성될 수 있다. 로거 모듈(710)은 영구적 작업 메모리(720)에 감사 로그들을 저장하도록 구성될 수 있다. 로거 모듈(710)은 SAM(705)에 의해 유지되는 민감 데이터의 특정 인스턴스를 어떤 애플리케이션들이 요청하는지, SAM(705)에 의해 유지되는 민감 데이터에 대해 수행된 동작들, 그리고 민감 데이터의 사용 및 유포를 추적하는 데 사용될 수 있는 다른 정보를 로깅하도록 구성될 수 있다. 로거 모듈(710)은 또한 SAM(705)에 의해 유지되는 민감 데이터 엘리먼트들로부터 도출된 데이터 엘리먼트들의 생성을 로깅하도록 구성될 수 있다.
예시적인 네트워크/컴퓨팅 환경
[0039] 도 1은 본 명세서에서 논의되는 기술들을 구현하기에 적합할 수 있는 예시적인 컴퓨팅 환경의 블록도이다. 본 명세서에서 예시되는 특정 구성은 단지 본 명세서에서 개시되는 기술들이 사용될 수 있는 하나의 컴퓨팅 환경의 일례일 뿐이다. 게다가, 이러한 컴퓨팅 환경의 구현은, 본 명세서에 예시되지 않으며 명확하게 하기 위해 생략된 추가 엘리먼트들을 포함할 수 있다.
[0040] 빌드 시스템(125)은 하나 또는 그보다 많은 타깃 디바이스들(175) 상에 배포될 수 있는 보안 자산 관리자(SAM) 호환 애플리케이션들을 빌드하기 위한 수단을 제공하도록 구성될 수 있다. 빌드 시스템(125)은 적어도 도 6과 도 8에 예시된 프로세스들을 구현하기 위한 수단을 제공하도록 구성될 수 있는데, 이 수단은 빌드 시스템(125)에 의해 소프트웨어, 하드웨어, 또는 이들의 결합으로 구현될 수 있다. 빌드 시스템(125)을 구현하는 데 사용될 수 있는 컴퓨팅 디바이스의 예들은 도 2와 도 3에서 예시되며, 이들은 아래에서 상세히 논의된다. 도 1에 예시된 예시적인 컴퓨팅 환경은, 본 명세서에서 개시되는 기술들이 구현될 수 있으며 한정하는 것으로 의도되지는 않는 컴퓨팅 환경의 하나의 가능한 구성을 예시한다. 다른 구성들이 가능하다. 예컨대, 빌드 시스템(125) 및/또는 도 6과 도 8에 예시된 프로세스들은 하나보다 많은 컴퓨팅 디바이스 상에서 수행될 수 있으며, 신뢰할 수 있는 엔티티(190)는 일부 구현들에 포함되지 않을 수 있고, 그리고/또는 네트워크(110)는 빌드 시스템(125) 및 타깃 디바이스(175)에 소프트웨어 콘텐츠를 제공하는 데 이용되지 않을 수 있다.
[0041] 본 명세서에서 논의되는 예들은 타깃 디바이스(175) 상에서 이용될 애플리케이션 또는 애플리케이션들을 생성하기 위해 단일 빌드 시스템(125)을 이용하지만, 타깃 디바이스(175)는 다수의 빌드 시스템들(125)로부터 SAM 호환 애플리케이션들을 수신하도록 구성될 수 있다. 더욱이, 타깃 디바이스(175) 및 빌드 시스템(125)은 유선 또는 무선 접속을 통해 간접적으로 또는 직접적으로 서로 접속될 수 있으며, 빌드 시스템(125)과 타깃 디바이스(175) 사이에는 네트워크(110)와 같은 하나 또는 그보다 많은 개입 시스템들 또는 네트워크들이 있을 수 있다. 예컨대, 빌드 시스템(125)에 의해 생성된 애플리케이션들은 신뢰할 수 있는 엔티티(190) 및/또는 논리적으로 빌드 시스템(125)과 타깃 디바이스(175) 사이에 배치될 수 있는 (도시되지 않은) 개별 콘텐츠 서버로부터의 다운로드를 위해 이용 가능해질 수 있다. 예컨대, 애플리케이션 개발자는 신뢰할 수 있는 엔티티(190) 또는 다른 콘텐츠 서버로부터의 다운로드를 위해 이용 가능한 타깃 디바이스(175)와 호환 가능한 하나 또는 그보다 많은 SAM 호환 애플리케이션들을 제작할 수 있고, 타깃 디바이스(175)의 제작자 또는 배포자는 운영 시스템과 연관된 하나 또는 그보다 많은 애플리케이션들을 신뢰할 수 있는 엔티티(190) 또는 다른 콘텐츠 서버로부터 타깃 디바이스(175)로 다운로드할 수 있다.
[0042] 빌드 시스템(125)은 타깃 디바이스(175)의 제작자, 타깃 디바이스(175)의 네트워크 서비스 제공자, 타깃 디바이스(175)의 재판매자, 타깃 디바이스(175) 상에서 사용될 수 있는 애플리케이션들의 애플리케이션 콘텐츠 제공자, 시청각 콘텐츠 제공자에 의해, 그리고/또는 타깃 디바이스(175) 상에서 이용될 수 있는 운영 시스템들을 제공하는 운영 시스템 제공자에 의해 운영될 수 있다. 타깃 디바이스(175)의 제작자 또는 재판매자는 타깃 디바이스(175)에 의해 사용될 수 있는 그리고 애플리케이션에 대해 정의된 정책을 기반으로 공유가 제한되어야 하는 민감 데이터에 대한 액세스를 가질 수 있는 하나 또는 그보다 많은 애플리케이션들을 포함할 수 있다.
[0043] 타깃 디바이스(175)는 타깃 디바이스(175)의 영구적 메모리에 저장된 소프트웨어 콘텐츠를 실행하도록 구성된 컴퓨터 시스템이다. 타깃 디바이스(175)는 빌드 시스템(125)으로부터 그리고/또는 다수의 빌드 시스템들(125)로부터 하나 또는 그보다 많은 애플리케이션들을 수신하도록 구성될 수 있다. 타깃 디바이스(175)는 모바일 디바이스, 이를테면 모바일 전화기, 태블릿 컴퓨터, 랩톱 컴퓨터, 휴대용 게임 디바이스, 웨어러블 컴퓨팅 디바이스, 또는 소프트웨어 콘텐츠를 실행하기 위한 프로세서를 포함하는 그러한 다른 디바이스를 포함할 수 있다. 타깃 디바이스(175)는 또한 비-모바일 디바이스, 이를테면 데스크톱 컴퓨터 시스템, 컴퓨터 서버, 셋톱 박스, 디지털 비디오 녹화기(DVR: digital video recorder), 게임 콘솔, 또는 모바일 디바이스만큼 쉽게 이동 가능하지 않은 그러한 다른 디바이스를 포함할 수 있다. 타깃 디바이스(175)는 적어도 도 7과 도 9에 예시된 프로세스를 구현하기 위한 수단을 제공하도록 구성될 수 있는데, 이 수단은 타깃 디바이스(175)에 의해 소프트웨어, 하드웨어, 또는 이들의 결합으로 구현될 수 있다.
[0044] 신뢰할 수 있는 엔티티(190)는 하나 또는 그보다 많은 SAM 호환 애플리케이션들과 관련된 정책 정보에 대한 저장소로서 이용될 수 있는 선택적 엔티티이다. 신뢰할 수 있는 엔티티(190)는 빌드 시스템(125)으로부터 애플리케이션에 대한 정책 정보를 수신하도록 구성될 수 있다. 신뢰할 수 있는 엔티티(190)는 애플리케이션 개발자들이 특정 애플리케이션에 대한 정책 정보를 수정할 수 있게 하는 사용자 인터페이스를 제공할 수 있다. 신뢰할 수 있는 엔티티(190)는 타깃 디바이스(175)로부터 정책 정보에 대한 요청들을 수신하고 네트워크(110)를 통해 타깃 디바이스에 정보를 전송하도록 구성될 수 있다. 신뢰할 수 있는 엔티티(190)는 또한 하나 또는 그보다 많은 SAM 호환 애플리케이션들을 이용하는 타깃 디바이스들(175)에 업데이트된 정책 정보를 푸시하도록 구성될 수 있다. 신뢰할 수 있는 엔티티(190)는 또한 타깃 디바이스(175) 상에서 사용될 수 있는 SAM 호환 애플리케이션들의 다운로드들을 제공하도록 구성될 수 있다. 예컨대, 신뢰할 수 있는 엔티티(190)는 타깃 디바이스(175)에 대해 애플리케이션 콘텐츠가 다운로드될 수 있는 애플리케이션 저장소 또는 라이브러리를 구현하는 콘텐츠 서버로서 동작하도록 구성될 수 있다.
[0045] 도 1에 예시된 예시적인 네트워크 구성 또는 컴퓨팅 환경은 단지 본 명세서에서 개시되는 기술들이 구현될 수 있는 하나의 가능한 구성의 일례일 뿐이다. 다른 구성들은 도 1에 예시되지 않은 추가 엘리먼트들을 포함할 수 있고, 다양한 컴포넌트들이 도 1에 도시된 것과는 다른 구성으로 상호 접속될 수 있다.
예시적인 하드웨어
[0046] 도 2는 도 1에 예시된 빌드 시스템(125)을 구현하는 데 사용될 수 있는 컴퓨팅 시스템의 블록도이다. 빌드 시스템(125)은 도 7에 예시된 프로세스들을 적어도 부분적으로 구현하는 데 사용될 수 있다.
[0047] 빌드 시스템(125)은 버스(201)에 의해 서로 접속된 범용 프로세서(210), 비-일시적 메모리(260) 및 네트워크 인터페이스(265)를 포함하는 컴퓨터 시스템을 포함한다. 빌드 시스템(125)의 다른 구현들은 도 2의 예시적인 구현에 예시되지 않은 추가 엘리먼트들을 포함할 수 있고 그리고/또는 도 2에 예시된 예시적인 실시예에 예시된 엘리먼트들 전부를 포함하지는 않을 수 있다.
[0048] 프로세서(210)는 지능형 디바이스, 예컨대 개인용 컴퓨터 중앙 처리 유닛(CPU: central processing unit), 마이크로컨트롤러, 주문형 집적 회로(ASIC: application specific integrated circuit) 등일 수 있다. 메모리(260)는 랜덤 액세스 메모리(RAM: random access memory), 판독 전용 메모리(ROM: read-only memory), 또는 이들의 결합을 포함할 수 있는 비-일시적 저장 디바이스이다. 메모리(260)는 (설명은 소프트웨어가 기능(들)을 수행한다고 쓰여 있을 수 있지만) 본 명세서에서 설명되는 기능들을 수행하도록 프로세서(210)를 제어하기 위한 명령들을 포함하는 프로세서 판독 가능, 프로세서 실행 가능 소프트웨어 코드를 저장할 수 있다. 소프트웨어는 네트워크 접속을 통해 다운로드되거나, 디스크로부터 업로드되는 등에 의해 메모리(260)에 로딩될 수 있다. 또한, 소프트웨어는 직접 실행 가능하지 않을 수 있어, 예컨대 실행 전에 컴파일링을 필요로 할 수 있다.
[0049] 네트워크 인터페이스(265)는 네트워크(110)와 같은 하나 또는 그보다 많은 네트워크들에 대한 유선 및/또는 무선 접속을 제공하기 위한 수단을 제공할 수 있다. 네트워크 인터페이스(265)는 빌드 시스템(125)이 타깃 디바이스(175), 신뢰할 수 있는 엔티티(190), 및/또는 네트워크에 접속된 다른 엔티티들, 이를테면 애플리케이션 또는 운영 시스템 콘텐츠 및/또는 정책 정보와 같은 실행 가능 프로그램 콘텐츠를 타깃 디바이스(175)에 배포하도록 구성된 콘텐츠 제공자 또는 신뢰할 수 있는 엔티티(190)와 통신하는 것을 가능하게 할 수 있다.
[0050] 메모리(260) 내의 소프트웨어는 애플리케이션에 대한 정책을 구성하기 위한 사용자 인터페이스를 제공하는 동작, 애플리케이션에 대한 소스 코드에 데이터 태그들을 부가하기 위한 사용자 인터페이스를 제공하기 위한 동작, 애플리케이션을 빌드하기 위한 동작, 및 애플리케이션을 타깃 디바이스(175)에 또는 콘텐츠 서버에 배포하기 위한 동작을 비롯하여 다양한 동작들을 프로세서(210)가 수행할 수 있게 하도록 구성된다. 빌드 시스템(125)의 메모리(260) 내의 소프트웨어는 또한 SAM 호환 애플리케이션 또는 애플리케이션들의 사본들을 신뢰할 수 있는 엔티티(190) 및/또는 개별 콘텐츠 서버에 제공하도록 구성될 수 있는데, 여기서 개별 콘텐츠 서버는 애플리케이션들을 타깃 디바이스들(175)에 배포하는 데 사용된다. 빌드 시스템(125)의 메모리(260) 내의 소프트웨어 중 일부 또는 전부에 의해 수행되는 기능들은 빌드 시스템(125)의 디지털 또는 아날로그 하드웨어 컴포넌트들 및/또는 하드웨어와 소프트웨어의 결합으로서 구현될 수 있다.
[0051] 도 3은 도 2에 도시된 메모리(260)의 기능 모듈들을 예시하는, 도 2에 예시된 빌드 시스템(125)의 기능 블록도이다. 예컨대, 빌드 시스템(125)은 데이터 태깅 모듈(362), 애플리케이션 빌드 모듈(364), 데이터 액세스 모듈(366) 및 정책 구성 모듈(368)을 포함할 수 있다. 빌드 시스템(125)은 빌드 시스템(125)에 다른 기능을 제공하는 하나 또는 그보다 많은 추가 기능 모듈들을 또한 포함할 수 있다. 도 3에 예시된 기능 모듈들은 도 3에 예시된 바와 같이 프로세서(210)에 의해 실행되는 소프트웨어로서 구현될 수 있거나 하드웨어 또는 하드웨어와 프로세서(210)에 의해 실행되는 소프트웨어의 결합으로 구현될 수 있다. 도 2 및 도 3에 예시된 빌드 시스템(125)은 도 7에 예시된 프로세스들과 연관된 빌드 시스템(125)을 구현하는 데 사용될 수 있다. 프로세서(210)는 또한 본 명세서에서 논의되는 빌드 시스템(125)의 다양한 모듈들을 구현하기 위한 수단을 제공할 수 있고, 펌웨어로 구현된 하나 또는 그보다 많은 모듈들과 함께 동작할 수 있다. 빌드 시스템(125)은 본 명세서에서 논의되는 모듈들 중 일부 또는 전부를 구현하는 디지털 및/또는 아날로그 회로를 포함할 수 있다.
[0052] 데이터 태깅 모듈(362)은 소프트웨어 코드에서 민감 데이터 엘리먼트들을 태깅하기 위한 수단을 제공할 수 있다. 데이터 태깅 모듈(362)은, 사용자가 민감 데이터 엘리먼트들인 데이터 엘리먼트들을 소프트웨어 내에서 식별할 수 있도록 빌드 시스템(125)의 사용자에게 애플리케이션에 대한 소프트웨어 코드를 위한 사용자 인터페이스를 제시하고, 애플리케이션에 대한 정책 파일에 포함될 그 특정 데이터 엘리먼트와 연관된 정책 규칙들을 생성하기 위한 수단을 제공할 수 있다. 정책 파일은 어떤 애플리케이션들이 민감 데이터 엘리먼트에 액세스할 수 있는지, 애플리케이션이 다른 애플리케이션들과 민감 데이터를 공유할 수 있는지 여부, 그리고 애플리케이션이 어떤 애플리케이션들과 민감 데이터를 공유할 수 있는지를 표시할 수 있다. 데이터 태깅 모듈(362)은 다수의 타입들의 타깃 디바이스들에 대한 이미지들을 제작하기 위한 수단을 제공할 수 있다. 도 6에 관해 앞서 논의한 바와 같이, 데이터 태깅 모듈(362)은 SAM 인식 컴파일러(615)가 민감 데이터 엘리먼트를 식별하는 데 사용할 수 있는 식별자를 소스 코드에 부가하도록 구성될 수 있다.
[0053] 애플리케이션 빌드 모듈(364)은 데이터 태그와 각각 연관되었던 하나 또는 그보다 많은 민감 데이터 엘리먼트들을 포함하는 애플리케이션을 빌드하기 위한 수단, 하나 또는 그보다 많은 타깃 디바이스들(175)에 애플리케이션을 제공하기 위한 수단, 타깃 디바이스(175)로의 배포를 위해 애플리케이션 및/또는 애플리케이션과 연관된 정책 정보를 신뢰할 수 있는 엔티티(190)에 업로드하기 위한 수단을 제공할 수 있다. 애플리케이션 빌드 모듈(364)은 데이터 태깅 모듈(362)에 의해 태깅되었던 소스 코드를 컴파일하도록 구성될 수 있으며, 소스 코드에서 태깅되었던 민감 데이터 엘리먼트들과 객체 타입들을 연관시킬 수 있다. 태깅된 소스 코드로부터 생성된 애플리케이션은, 민감 데이터 엘리먼트를 저장하는 데 사용될 수 있는 민감 데이터 엘리먼트 객체의 인스턴스를 생성하도록 그리고 SAM(705)이 민감 데이터 객체를 저장할 것을 요청하도록 구성될 수 있다. 대안으로, 애플리케이션은 SAM(705)이 민감 데이터 엘리먼트들의 새로운 인스턴스를 생성할 것을 요청하도록 그리고 SAM(705)과 연관된 메모리 영역, 이를테면 영구적 작업 메모리(720)에 민감 데이터 엘리먼트를 저장하도록 구성될 수 있다. 일부 구현들에서, 애플리케이션 빌드 모듈(364)은 소스 코드에서 태깅되었던 각각의 민감 데이터 엘리먼트에 대한 민감 데이터 엘리먼트 객체를 생성하도록 구성될 수 있는데, 여기서 객체는 SAM(705)이 SAM(705)에 의해 관리되는 보호 메모리 영역에 민감 데이터 엘리먼트를 저장할 것을 요청하기 위한 로직을 포함하도록 구성된다. 이러한 구현들의 민감 데이터 객체는 민감 데이터 엘리먼트 객체에 저장된 데이터가 소프트웨어 코드를 작성한 프로그래머의 손을 떠나 보안을 유지함을 보장하는 데 필요한 로직의 대부분을 포함할 것이며, 민감 데이터 객체는 애플리케이션에 의해 이용된 임의의 다른 객체와 비슷하게 취급될 수 있다.
[0054] 데이터 액세스 모듈(366)은 메모리(260) 및/또는 빌드 시스템(125)과 연관된 다른 데이터 저장 디바이스들에 데이터를 저장하도록 구성될 수 있다. 데이터 액세스 모듈(366)은 또한 메모리(260) 및/또는 빌드 시스템(125)과 연관된 다른 데이터 저장 디바이스들 내의 데이터에 액세스하도록 구성될 수 있다. 데이터 액세스 모듈(366)은 빌드 시스템(125)의 다른 모듈들 및/또는 컴포넌트들로부터의 요청들을 수신하여 메모리(260) 및/또는 빌드 시스템(125)과 연관된 다른 데이터 저장 디바이스들에 데이터를 저장하고 그리고/또는 이에 저장된 데이터에 액세스하도록 구성될 수 있다.
[0055] 정책 구성 모듈(368)은 애플리케이션 개발자가 애플리케이션과 연관될 정책 파일 또는 정책 파일들을 생성할 수 있게 하는 사용자 인터페이스를 제공할 수 있다. 정책 파일은 애플리케이션에 대한 민감 데이터 엘리먼트들과 연관된 정책 정보를 포함한다. 정책 구성 모듈(368)은 또한 정책 파일들이 수정될 수 있게 하도록 구성될 수 있다. 예컨대, 애플리케이션과 연관된 소스 코드는 민감 데이터 엘리먼트들과 연관된 추가 데이터 태그들을 포함하도록 업데이트될 수 있다. 정책 구성 모듈(368)은 신뢰할 수 있는 엔티티(190)에 정책 파일을 제공하도록 구성될 수 있고, 신뢰할 수 있는 엔티티(190)는 정책 정보를 타깃 디바이스(175)에 배포하도록 구성될 수 있다. 정책 구성 모듈(368)에 의해 제공되는 사용자 인터페이스는 애플리케이션과 연관된 개개의 데이터 엘리먼트들을 공유하기 위한 규칙들 또는 애플리케이션과 연관된 모든 민감 데이터 엘리먼트들을 공유하기 위한 규칙들이 업데이트될 수 있게 하도록 구성될 수 있다. 애플리케이션 개발자 또는 배포자는 특정 애플리케이션이 어떤 애플리케이션들과 데이터를 공유할 수 있는지 그리고 애플리케이션이 다른 애플리케이션들과 어떤 민감 데이터 엘리먼트들을 공유할 수 있는지를 업데이트하길 원할 수 있다. 정책 구성 모듈(368)은 애플리케이션이 하나 또는 그보다 많은 타깃 디바이스들(175)에 이미 배포되었다면 정책 정보가 업데이트될 수 있게 하도록 구성될 수 있다. 정책 구성 모듈(368)은 업데이트들을 빌드 시스템(125)으로부터 네트워크(110)를 통해 하나 또는 그보다 많은 타깃 디바이스들로 또는 신뢰할 수 있는 엔티티(190)로 전송하도록 구성될 수 있다. 타깃 디바이스들(175)은 신뢰할 수 있는 엔티티(190)로부터의 업데이트된 정책 정보를 주기적으로 요청하도록 구성될 수 있다. 신뢰할 수 있는 엔티티(190)는 또한 업데이트된 정책 정보를 타깃 디바이스(175)에 푸시하도록 구성될 수 있다.
[0056] 정책 정보는 어떻게 민감 데이터 엘리먼트가 다른 애플리케이션들과 공유될 수 있고 그리고/또는 다른 애플리케이션들에 의해 이용될 수 있는지를 정의하는, 민감 데이터 엘리먼트와 연관된 하나 또는 그보다 많은 이행 규칙들을 정의할 수 있다. 정책 정보는 발신 애플리케이션으로부터 얼마나 많은 레벨들의 민감 데이터 엘리먼트가 전파될 수 있는지를 규정하는 이행 규칙들을 포함할 수 있다. 본 명세서에서 사용되는 것과 같이 사용되는 "레벨"이라는 용어는 정책에 의해 부과된 한계에 도달하기 전에 민감 데이터 엘리먼트의 인스턴스들의 체인을 따라 얼마나 많은 인스턴스들이 생성될 수 있는지를 의미한다. 정책은 민감 데이터 엘리먼트에 대해 수행될 수 있는 서로 다른 타입들의 연산들에 대해 서로 다른 타입들의 한계들을 부과할 수 있다. 정책 정보에 포함된 이행 규칙들은 지정된 엔티티가 각각의 레벨에서 민감 데이터 엘리먼트로 무엇을 그리고 어떻게 할 수 있는지에 대한 고 레벨의 제어를 제공할 수 있다. 이행 규칙들은 특정 엔티티가 특정 민감 데이터 엘리먼트에 대해 어떤 연산들을 수행할 수 있는지를 지시할 수 있다. 규칙들은 또한 발신 애플리케이션으로부터의 특정 레벨의 엔티티가 민감 데이터 엘리먼트로 무엇을 그리고 어떻게 수행할 수 있는지를 지시할 수 있다. 발신 엔티티는 또한 발신 애플리케이션에 대한 정책 정보에 대해 업데이트를 발행함으로써 발신 엔티티로부터 제거된 특정 레벨에서의 엔티티들에 대한 또는 특정 엔티티들에 대한 특권들을 철회할 수 있다. 정책 정보는 민감 엘리먼트의 발신자가 그 민감 데이터 엘리먼트에 대해 세분화된 제어를 할 수 있게 한다. 정책 정보에 포함된 이행 규칙들은 정책 구성 모듈(368)을 사용하여 제시 및/또는 수정될 수 있다.
[0057] 도 4는 도 1에 예시된 타깃 디바이스(175)를 구현하는 데 사용될 수 있는 컴퓨팅 시스템의 블록도이다. 타깃 디바이스는 도 8에 예시된 프로세스들을 적어도 부분적으로 구현하는 데 사용될 수 있다.
[0058] 타깃 디바이스(175)는 버스(401)에 의해 서로 접속된 프로세서(410), 디지털 신호 프로세서(DSP: digital signal processor)(420), 무선 인터페이스(425), GNSS 인터페이스(465) 및 비-일시적 메모리(460)를 포함하는 컴퓨터 시스템을 포함한다. 타깃 디바이스(175)의 다른 구현들은 도 4의 예시적인 구현에 예시되지 않은 추가 엘리먼트들을 포함할 수 있고 그리고/또는 도 4에 예시된 예시적인 실시예에 예시된 엘리먼트들 전부를 포함하지는 않을 수 있다. 예컨대, 타깃 디바이스(175)의 일부 구현들은 GNSS 인터페이스(465), DSP(420) 및/또는 무선 인터페이스(425)를 포함하지 않을 수 있다.
[0059] 무선 인터페이스(425)는 타깃 디바이스(175)가 WWAN, WLAN, 및/또는 다른 무선 통신 프로토콜들을 사용하여 데이터를 전송 및/또는 수신할 수 있게 하는 무선 수신기, 송신기, 트랜시버 및/또는 다른 엘리먼트들을 포함할 수 있다. 무선 인터페이스(425)는 다수의 무선 통신 표준들을 사용하여 무선 신호들을 송신 및 수신할 수 있는 하나 또는 그보다 많은 다중 모드 모뎀들을 포함할 수 있다. 무선 인터페이스(425)는 무선 통신 프로토콜들을 사용하여 통신하도록 구성된 무선 디바이스들로/로부터 통신들을 전송 및 수신하기 위한 안테나(434)에 라인(432)에 의해 접속된다. 도 4에 예시된 타깃 디바이스(175)는 단일 무선 인터페이스(425) 및 단일 안테나(434)를 포함하지만, 타깃 디바이스(175)의 다른 구현들은 다수의 무선 인터페이스들(425) 및/또는 다수의 안테나들(434)을 포함할 수 있다. 더욱이, 타깃 디바이스(175)는 무선 인터페이스 대신 또는 이에 추가하여, 하나 또는 그보다 많은 네트워크들에 유선 접속을 제공하기 위한 유선 인터페이스를 포함할 수 있다.
[0060] I/O 인터페이스(470)는 타깃 디바이스(175)에 대한 데이터 입력들 및/또는 출력들을 제공할 수 있는 하나 또는 그보다 많은 포트들 및/또는 다른 인터페이스들을 제공할 수 있다. 예를 들어, I/O 인터페이스(470)는 범용 직렬 버스(USB: Universal Serial Bus) 포트 및/또는 외부 디바이스들을 모바일 디바이스에 접속하는 데 사용될 수 있는 다른 타입의 포트와 같은 하나 또는 그보다 많은 포트들을 포함할 수 있다. I/O 인터페이스(470)는 또한 버튼들, 스위치들, 키패드, 터치스크린 및/또는 사용자로부터의 입력을 수신하기 위한 다른 수단과 같은 하나 또는 그보다 많은 입력 디바이스들을 포함할 수 있다. I/O 인터페이스(470)는 또한 오디오 및/또는 시각 콘텐츠를 출력하기 위한 하나 또는 그보다 많은 수단, 이를테면 스크린, 스피커, 헤드폰 포트 및/또는 이러한 콘텐츠를 출력하기 위한 다른 수단을 포함할 수 있다.
[0061] GNSS 인터페이스(465)는 타깃 디바이스(175)가 하나 또는 그보다 많은 GNSS 시스템들과 연관된 송신기들로부터 신호들을 수신할 수 있게 하는 무선 수신기 및/또는 다른 엘리먼트들을 포함할 수 있다. GNSS 인터페이스(465)는 GNSS 송신기들로부터 신호들을 수신하기 위한 안테나(474)에 라인(472)에 의해 접속된다. 타깃 디바이스(175)는 GNSS 시스템들과 연관된 위성들 및 다른 송신기들과 연관된 위성들로부터 수신된 신호들을 사용하여 타깃 디바이스(175)의 위치를 결정하도록 구성될 수 있다. 타깃 디바이스(175)는 또한 다른 무선 디바이스들로부터 수신된 신호들과 함께 GNSS 시스템들과 연관된 위성들 및 다른 송신기들로부터 수신된 신호들을 사용하도록 구성될 수 있다.
[0062] DSP(420)는 무선 인터페이스(425) 및/또는 GNSS 인터페이스(465)로부터 수신된 신호들을 처리하도록 구성될 수 있고, 메모리(460)에 저장된 프로세서 판독 가능, 프로세서 실행 가능 소프트웨어 코드로서 구현된 하나 또는 그보다 많은 모듈들에 대한 또는 이와 함께 신호들을 처리하도록 구성될 수 있고, 그리고/또는 프로세서(410)와 함께 신호들을 처리하도록 구성될 수 있다.
[0063] 프로세서(410)는 지능형 디바이스, 예컨대 개인용 컴퓨터 중앙 처리 유닛(CPU), 마이크로컨트롤러, 주문형 집적 회로(ASIC) 등일 수 있다. 메모리(460)는 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 또는 이들의 결합을 포함할 수 있는 비-일시적 저장 디바이스이다. 메모리(460)는 (설명은 소프트웨어가 기능(들)을 수행한다고 쓰여 있을 수 있지만) 본 명세서에서 설명되는 기능들을 수행하도록 프로세서(410)를 제어하기 위한 명령들을 포함하는 프로세서 판독 가능, 프로세서 실행 가능 소프트웨어 코드를 저장할 수 있다. 소프트웨어는 네트워크 접속을 통해 다운로드되거나, 외부 메모리 디바이스로부터 업로드되는 등에 의해 메모리(460)에 로딩될 수 있다. 또한, 소프트웨어는 직접 실행 가능하지 않을 수 있어, 예컨대 실행 전에 컴파일링을 필요로 할 수 있다.
[0064] 메모리(460) 내의 소프트웨어는 프로세서(410)가 무선 통신을 위해 구성된 디바이스들로부터의 데이터 전송 및/또는 수신을 구현하는 것을 비롯해 다양한 동작들을 수행할 수 있게 하도록 구성된다. 타깃 디바이스(175)의 메모리(460) 내의 소프트웨어 중 일부 또는 전부에 의해 수행되는 기능들은 타깃 디바이스(175)의 디지털 또는 아날로그 하드웨어 컴포넌트들 및/또는 하드웨어와 소프트웨어의 결합으로서 구현될 수 있다.
[0065] 도 5는 도 4에 도시된 메모리(460)의 기능 모듈들을 예시하는, 도 4에 예시된 타깃 디바이스(175)의 기능 블록도이다. 예컨대, 타깃 디바이스(175)는 보안 자산 관리자 모듈(562), 데이터 액세스 모듈(566) 및 정책 구성 모듈(568)을 포함할 수 있다. 타깃 디바이스(175)는 타깃 디바이스(175)에 다른 기능을 제공하는 하나 또는 그보다 많은 추가 기능 모듈들을 또한 포함할 수 있다. 도 5에 예시된 기능 모듈들은 도 5에 예시된 바와 같이 프로세서 실행 가능 소프트웨어로서 구현될 수 있거나 하드웨어 또는 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 도 4 및 도 5에 예시된 타깃 디바이스(175)는 도 7 및 도 9에 예시된 프로세스와 연관된 타깃 디바이스(175)를 구현하는 데 사용될 수 있다. 프로세서(410)는 또한 프로세서 실행 가능 소프트웨어를 포함할 수 있는 타깃 디바이스(175)의 다양한 모듈들을 구현하기 위한 수단을 제공할 수 있고, 펌웨어로 구현된 하나 또는 그보다 많은 모듈들과 함께 동작할 수 있다. 타깃 디바이스(175)는 타깃 디바이스(175)의 모듈들 중 일부 또는 전부를 구현하는 디지털 및/또는 아날로그 회로를 포함할 수 있다.
[0066] 보안 자산 관리자 모듈(562)은 타깃 디바이스(175) 상에 보안 자산 관리자(SAM)(705)를 구현하기 위한 수단을 제공할 수 있다. 보안 자산 관리자 모듈(562)은 도 7에 예시된 그리고 도 9에 예시된 프로세스에 사용되는 로거 모듈(710)을 구현하기 위한 수단을 제공할 수 있다. 보안 자산 관리자 모듈(562)은 또한 SAM(705)의 일시적 작업 메모리(715) 및 영구적 작업 메모리(720)의 콘텐츠를 관리하기 위한 수단을 제공할 수 있다. 보안 자산 관리자 모듈(562)은 메모리(460)의 일부를 이용하여 일시적 작업 메모리(715)와 영구적 작업 메모리(720) 그리고/또는 타깃 디바이스(175)의 다른 메모리를 구현하도록 구성될 수 있다. 보안 자산 관리자 모듈(562)은 프로세서(410)가 보안 처리 환경을 제공할 수 있다면 프로세서(410)에 의해 제공되는 그러한 보안 처리 환경을 이용하도록 구성될 수 있다. 보안 자산 관리자 모듈(562)은 타깃 디바이스(175) 상에서 실행되는 다른 애플리케이션들 및/또는 프로세스들이 일시적 작업 메모리(715) 및 영구적 작업 메모리(720)에 할당된 메모리 공간에 액세스하는 것을 막음으로써 일시적 작업 메모리(715) 및 영구적 작업 메모리(720)의 콘텐츠를 보호하도록 구성될 수 있다. 보안 자산 관리자 모듈(562)은 또한 일시적 작업 메모리(715) 및 영구적 작업 메모리(720)의 콘텐츠를 난독화하거나, 암호화하거나 아니면 보호하도록 구성될 수 있다.
[0067] 보안 자산 관리자 모듈(562)은 SAM(705)의 일시적 작업 메모리(715) 및 영구적 작업 메모리(720)에 저장된 민감 데이터에 대한 액세스를 관리하기 위한 수단을 제공할 수 있다. 보안 자산 관리자 모듈(562)은, 영구적 작업 메모리(720)에 저장된 정책 정보에 액세스하고, 빌드 시스템(125)의 데이터 태깅 모듈(362)에 의해 태깅되었고 SAM(705)의 일시적 작업 메모리(715) 및/또는 영구적 작업 메모리(720)에 저장되지 않은 민감 데이터의 인스턴스들에 정책 정보를 적용하도록 구성될 수 있다. 보안 자산 관리자 모듈(562)은 달리 명시되지 않는 한, 도 7과 도 9에 예시된 프로세스들과 연관된 다양한 동작들을 수행하기 위한 수단을 제공하도록 구성될 수 있다.
[0068] 데이터 액세스 모듈(566)은 메모리(460) 및/또는 타깃 디바이스(175)와 연관된 다른 데이터 저장 디바이스들에 데이터를 저장하도록 구성될 수 있다. 데이터 액세스 모듈(566)은 또한 메모리(460) 및/또는 타깃 디바이스(175)와 연관된 다른 데이터 저장 디바이스들 내의 데이터에 액세스하도록 구성될 수 있다. 데이터 액세스 모듈(566)은 타깃 디바이스(175)의 다른 모듈들 및/또는 컴포넌트들로부터의 요청들을 수신하여 메모리(460) 및/또는 타깃 디바이스(175)와 연관된 다른 데이터 저장 디바이스들에 데이터를 저장하고 그리고/또는 이에 저장된 데이터에 액세스하도록 구성될 수 있다.
[0069] 정책 구성 모듈(568)은 타깃 디바이스(175)의 사용자가 타깃 디바이스(175) 상의 하나 또는 그보다 많은 SAM 호환 애플리케이션들과 연관된 정책 정보를 수정하는 것을 가능하게 할 수 있는 사용자 인터페이스를 제공할 수 있다. 정책 구성 모듈(568)은 타깃 디바이스(175)의 사용자가 그 사용자에 대한 민감 정보가 애플리케이션들 간에 어떻게 공유되는지를 커스터마이즈할 수 있게 하고 어떤 정보가 공유될 수 있는지를 제어할 수 있게 하도록 구성될 수 있다. 타깃 디바이스(175)의 사용자는 특정 애플리케이션에 대한 정책 정보에 포함된 이행 규칙들을 보거나, 수정 또는 생성함으로써 민감 데이터 엘리먼트들에 대해 동일한 또는 유사한 세분화된 제어를 수행할 수 있다. 정책 구성 모듈(568)은 타깃 디바이스(175)의 사용자가 타깃 디바이스(175) 상의 애플리케이션들에 제공되었던 정책들보다 더 또는 덜 엄격한 정책들의 공유를 구현하는 것을 가능하게 할 수 있다. 예컨대, 애플리케이션 개발자 또는 배포자에 의해 제공된 정책 정보가 제1 애플리케이션과 제2 애플리케이션 간의 민감 데이터 공유를 허용했다 하더라도, 타깃 디바이스의 사용자는 제2 애플리케이션과의 어떠한 정보의 공유도 막도록 제1 애플리케이션과 연관된 정책을 구성할 수 있다. 타깃 디바이스(175)의 사용자는 또한 그러한 애플리케이션들과 연관된 정책 파일들에 원래 포함되지 않았던 2개의 SAM 호환 애플리케이션들 간의 데이터의 공유를 허용할 수 있다. 예컨대, 애플리케이션 개발자 또는 배포자에 의해 제공된 정책 정보가 제1 애플리케이션과 제3 애플리케이션 간의 민감 데이터 공유를 허용하지 않았다 하더라도, 타깃 디바이스(175)의 사용자는 제3 애플리케이션과의 임의의 정보의 공유를 가능하게 하도록 제1 애플리케이션과 연관된 정책을 구성할 수 있다. 정책 구성 모듈(568)은 타깃 디바이스(175) 상에 어떤 SAM 호환 애플리케이션들이 설치되는지 그리고 사용자가 애플리케이션들 간에 이 정보를 공유하기 위한 규칙들을 구성할 수 있는 SAM 호환 애플리케이션들 각각과 연관된 민감 데이터 엘리먼트들을 식별하도록 구성될 수 있다. 예컨대, 사용자는 제1 애플리케이션과 제2 애플리케이션 간에 사용자의 이름과 같은 어떤 민감 데이터 엘리먼트의 공유는 허용할 수 있지만, 제1 애플리케이션이 사용자의 소셜 보안 번호 또는 소득 정보와 같은 다른 정보를 제2 애플리케이션과 공유하는 것은 막을 수 있다.
[0070] 정책 구성 모듈(568)은 또한 타깃 디바이스(175)의 사용자가 애플리케이션과 연관된 정책 정보를 무시하는 것을 막도록 구성될 수 있다. 애플리케이션 퍼블리셔(publisher) 또는 배포자는 특정 애플리케이션과 연관된 정책 정보가 타깃 디바이스(175)의 사용자에 의해 무시될 수 없음을 표시할 수 있다. 애플리케이션 퍼블리셔 또는 배포자는 또한 특정 데이터 엘리먼트들과 연관된 정책 규칙들이 타깃 디바이스(175)의 사용자에 의해 무시될 수 없음을 표시할 수 있다. 예컨대, 디지털 저작권 관리(DRM) 보호 콘텐츠를 이용하는 애플리케이션의 개발자 또는 퍼블리셔는 사용자 및/또는 타깃 디바이스(175)와 연관된 인증 정보를 애플리케이션들 간에 공유될 수 없는 정보라고 표시할 수 있고, 타깃 디바이스(175)의 사용자는 인증 정보를 얻어 보호 콘텐츠에 대한 DRM 보호들을 잠재적으로 회피하기 위해 이러한 정책 규칙들을 무시하는 것이 불가능하다. 애플리케이션의 개발자 또는 퍼블리셔는 또한 암호화되지 않은 또는 보호되지 않은 콘텐츠를 애플리케이션들 간에 공유될 수 없는 정보라고 표시하여, DRM 보호들 없이 콘텐츠를 저장할 수 있는 다른 애플리케이션에 보호되지 않은 콘텐츠를 제공함으로써 콘텐츠에 대한 DRM 보호들이 회피되는 것을 막을 수 있다.
예시적인 구현들
[0071] 도 8은 본 명세서에서 논의되는 기술들에 따라 보안 자산 관리자를 구현하는 애플리케이션을 빌드하기 위한 예시적인 프로세스의 흐름도이다. 도 8에 예시된 프로세스는 달리 명시되지 않는 한, 도 1 - 도 3에 예시된 빌드 시스템(125)을 사용하여 구현될 수 있다. 빌드 시스템(125)의 데이터 태깅 모듈(362) 및/또는 애플리케이션 빌드 모듈(364)은 달리 명시되지 않는 한, 도 8에 예시된 프로세스의 다양한 스테이지들을 수행하기 위한 수단을 제공할 수 있다.
[0072] 애플리케이션에 대한 소스 코드와 연관된 데이터 엘리먼트가 민감 데이터임을 표시하는 시맨틱(semantic) 태그로 소스 코드가 태깅될 수 있다(스테이지(805)). 빌드 시스템(125)의 데이터 태깅 모듈(362)은 애플리케이션 개발자가 소스 코드에서 민감 데이터를 태깅할 수 있게 하는 사용자 인터페이스를 제공하도록 구성될 수 있다. 태그들은 애플리케이션들 간의 정보의 유포가 애플리케이션과 연관된 정책 파일에서 허용되는 것으로 제한되어야 함을 표시한다. 예컨대, 정책 파일은 빌드되는 애플리케이션이 태깅된 정보를 다른 애플리케이션과 공유할 수 있는지 여부를 표시할 수 있다. 정책 파일은 또한, 빌드되는 애플리케이션이 태깅된 정보로부터 도출된 정보를 생성할 수 있는지 여부를 표시할 수 있다. 데이터 태깅 모듈(362)은 데이터 액세스 모듈(366)을 통해 빌드 시스템의 메모리(260)에 시맨틱 태그 정보를 저장하도록 구성될 수 있다. 시맨틱 태그 정보는 런타임시 민감 데이터 엘리먼트와 연관된 데이터를 추적하는 데 사용될 보안 객체들을 생성하도록 SAM 인식 컴파일러(615)에 의해 사용될 수 있다.
[0073] 데이터 엘리먼트와 연관된 보안 정보를 식별하는 정책 정보가 액세스될 수 있다(스테이지(810)). 데이터 엘리먼트와 연관된 정책 정보는 빌드 시스템(125)의 애플리케이션 빌드 모듈(364)에 의해 액세스될 수 있다. 애플리케이션 빌드 모듈(364)은 데이터 액세스 모듈(366)이 메모리(260) 또는 빌드 시스템(125)의 다른 메모리로부터 정책 정보를 리트리브할 것을 요청하도록 구성될 수 있다. 빌드 시스템(125)은 애플리케이션에 대한 정책 정보가 정의될 수 있게 하는 사용자 인터페이스를 제공하도록 구성될 수 있는 정책 구성 모듈(368)을 포함할 수 있다. 정책 정보는 애플리케이션과 연관된 하나 또는 그보다 많은 민감 데이터 엘리먼트들에 대한 정보를 포함할 수 있다. 정책 정보는 애플리케이션이 어떻게 각각의 민감 데이터 엘리먼트를 사용하도록 허용될 수 있는지를 표시할 수 있다. 정책 정보는 애플리케이션이 다른 특정 애플리케이션들과 민감 데이터 엘리먼트를 공유하고, 데이터 엘리먼트를 수정하고, 그리고/또는 민감 데이터 엘리먼트로 다른 동작들을 수행하도록 허용됨을 표시할 수 있다.
[0074] 태깅된 소스 코드로부터 객체 파일이 생성될 수 있다(스테이지(815)). 애플리케이션 빌드 모듈(364)은 태그(610)를 포함하는 소스 코드(605)로부터 객체 파일들을 생성하도록 구성될 수 있다. 애플리케이션 빌드 모듈(364)은 도 6에 예시된 SAM 인식 컴파일러(615)를 구현하도록 구성될 수 있다. 애플리케이션 빌드 모듈(364)은 대안으로, SAM 인식 컴파일러(615)를 초기화하고 SAM 인식 컴파일러(615)에 소스 코드(605)를 제공하도록 구성될 수 있다. SAM 인식 컴파일러(615)는 애플리케이션에 대한 객체 코드 및 애플리케이션과 연관된 정책 정보(620)를 포함하는 객체 파일들을 출력하도록 구성될 수 있다. SAM 인식 컴파일러(615)는 스테이지(805)에서 소스 코드와 연관되었던 민감 데이터 엘리먼트들과 연관된 데이터 태그들 각각과 연관된 객체 파일들을 생성하도록 구성될 수 있다. 민감 데이터 엘리먼트와 연관된 객체들은 타깃 디바이스(175)에 의해 애플리케이션이 실행될 때 애플리케이션과 연관된 정책 정보(620)에 따라 도 7에 예시된 보안 자산 관리자(705)에 의해 관리될 수 있다.
[0075] 객체 파일이 신뢰할 수 있는 제공자에 의해 생성되었음을 표시하기 위한 보안 인증서로 객체 파일이 서명될 수 있다(스테이지(820)). 객체 파일들은 선택적으로는 보안 인증서로 암호화 및/또는 서명되어, 애플리케이션에 대한 객체 파일들이 신뢰할 수 있는 제공자에 의해 생성되었음을 표시할 수 있다. 보안 인증서는 타깃 디바이스(175)로의 애플리케이션 배포를 담당하는 애플리케이션 개발자 또는 콘텐츠 제공자와 연관된 개인 키와 연관될 수 있다. 객체 파일들은 이들이 본 명세서에서 논의되는 민감 정보를 다루기 위한 기술들에 따르는 애플리케이션들을 제공하는 신뢰할 수 있는 소스에서 나온 것임을 표시하도록 서명될 수 있다. SAM 호환이라고 알려진 애플리케이션의 위조 사본을 대체하려고 시도하는 공격자는 객체 파일들을 서명하기 위한 적절한 인증서가 없을 것이다. 객체 파일들은 배포(635)를 위해 처리될 수 있다. 배포 단계 동안, 객체 파일들에 포함된 객체 코드는 애플리케이션이 배포될 특정 타깃 디바이스(175)에 대해 링크 및/또는 다른 식으로 처리될 수 있다. 타깃 디바이스(175)로의 애플리케이션의 배포(635)와 연관된 처리 단계들은 애플리케이션 빌드 모듈(364)에 의해 수행될 수 있다.
[0076] 도 9는 본 명세서에서 개시되는 기술들에 따라 민감 데이터를 보호하기 위한 예시적인 프로세스의 흐름도이다. 도 9에 예시된 프로세스는 달리 명시되지 않는 한, 도 1, 도 4 및 도 5에 예시된 타깃 디바이스(175)를 사용하여 구현될 수 있다. 타깃 디바이스(175)의 보안 자산 관리자 모듈(562)은 달리 명시되지 않는 한, 도 9에 예시된 프로세스의 다양한 스테이지들을 수행하기 위한 수단을 제공할 수 있다. 도 9에 예시된 프로세스는 보안 자산 관리자(705)가 타깃 디바이스(175) 상의 민감 데이터에 대한 액세스를 어떻게 관리할 수 있는지를 입증한다.
[0077] 보안 자산 관리자에 의해 관리되는 보안 메모리 영역에 민감 데이터 엘리먼트가 저장될 수 있다(스테이지(905)). SAM(705)은 SAM(705)에 의해 관리되는 메모리 영역의 영구적 작업 메모리(720)에 민감 데이터 엘리먼트의 인스턴스를 저장하도록 구성될 수 있다. 민감 데이터 엘리먼트는 도 6과 도 8에 관해 앞서 논의한 기술을 사용하여 빌드되었을 수 있는 제1 애플리케이션 SAM 호환 애플리케이션에 대한 응답으로 저장될 수 있다. SAM(705)은 SAM(705)에 민감 데이터 엘리먼트를 놓으라는 제1 애플리케이션으로부터의 요청에 응답하여 영구적 작업 메모리(720)에서 새로운 민감 데이터 엘리먼트 객체를 인스턴스화하도록 구성될 수 있다. SAM(705)은 타깃 디바이스(175) 상에서 동작하는 다른 프로세스들에는 실질적으로 액세스 불가능한 타깃 디바이스(175)의 메모리(460) 부분에 영구적 작업 메모리(720)를 유지하도록 구성된다. SAM(705)은 프로세서(410)에 의해 제공되는 메모리의 보안 구역에 영구적 작업 메모리(720)를 유지하도록 구성될 수 있는데, 이 보안 구역은 메모리(460)의 일부일 수 있거나 타깃 디바이스(175)의 개별 메모리일 수 있다. SAM(705)은 또한 메모리(460)의 범용 부분에 영구적 작업 메모리(720)를 유지하도록 구성될 수 있지만, SAM(705)은 보안 자산 관리자(705)와 연관된 일시적 작업 메모리(715) 및 영구적 작업 메모리(720)의 데이터 콘텐츠를 암호화하거나 아니면 난독화하도록 구성될 수 있다. SAM(705)은 또한 비-SAM 호환 프로세스들에 의한 데이터 무단 액세스를 방지하도록, 프로세서(410)가 SAM(705)에 의해 관리되고 있는 민감 데이터 엘리먼트와 연관된 데이터에 대해 연산을 수행하고 있는 동안 타깃 디바이스(175)의 프로세서(410)의 레지스터들에서 데이터를 로킹-다운하도록 구성될 수 있다.
[0078] 민감 데이터 엘리먼트는 민감 데이터 엘리먼트가 발생하는 애플리케이션에 의해 민감 데이터 엘리먼트와 연관된 정책에 따라 관리될 수 있다(스테이지(910)). 정책 정보는 어떻게 민감 데이터 엘리먼트가 다른 애플리케이션들과 공유될 수 있고 그리고/또는 다른 애플리케이션들에 의해 이용될 수 있는지를 정의하는, 민감 데이터 엘리먼트와 연관된 하나 또는 그보다 많은 이행 규칙들을 정의할 수 있다. 민감 데이터 엘리먼트를 관리하는 것은 다음을 포함한다:
ㆍ 민감 데이터 엘리먼트와 관련하여 취해진 임의의 동작들에 대한 감사 엔트리들을 영구적 작업 메모리(720)에 저장된 감사 로그들에 부가하는 것.
ㆍ 민감 데이터 엘리먼트가 발생하는 애플리케이션의 정책을 민감 데이터 엘리먼트 및 그 민감 데이터 엘리먼트로부터 도출된 사본들 또는 데이터에 적용하는 것.
ㆍ SAM(705)은 보안 메모리 영역 내의 민감 데이터 엘리먼트에 대해 수행될 수 있는 하나 또는 그보다 많은 연산들을 제공한다. 하나 또는 그보다 많은 함수들에 의해 생성된 임의의 중간 값들이 또한 보안 메모리 영역에 저장된다.
ㆍ 민감 데이터 엘리먼트가 발생하는 애플리케이션에 의해 민감하다고 표시된 데이터는 민감 데이터 엘리먼트로부터 도출된 임의의 데이터 엘리먼트들처럼 계속 민감하다. SAM(705)은 본래의 데이터 엘리먼트로부터 도출된 데이터 엘리먼트들이 다른 애플리케이션에 의해 사용되고 있다 하더라도, 데이터 엘리먼트가 발생하는 애플리케이션에 의해 이 본래의 데이터 엘리먼트에 적용되었던 것과 동일한 정책을 계속해서 적용할 것이다. 따라서 민감 데이터 엘리먼트에 액세스할 권한이 부여되었던 하나 또는 그보다 많은 중간 애플리케이션들에 의해 민감 데이터 엘리먼트에 대한 연산이 수행되었다 하더라도, 정책 정보에 따라 민감 데이터 엘리먼트에 액세스할 권한이 부여되지 않는 애플리케이션은 민감 데이터 엘리먼트 또는 그로부터 도출된 데이터에 액세스하는 것이 불가능할 것이다.
ㆍ 정책들은 업데이트될 수 있고, SAM(705)은 그에 포함된 이행 규칙들에 대한 변화들을 변경된 규칙들과 연관된 민감 데이터 엘리먼트의 인스턴스들에 적용하도록 구성될 수 있다. SAM(705)은 타깃 디바이스(175)에 의해 유지되는 정책 정보에 대한 업데이트들을 수신하도록 구성될 수 있다. 앞서 논의한 바와 같이, 정책 정보는 애플리케이션 개발자, 콘텐츠 제공자, 네트워크 제공자 또는 다른 소스에 의해 타깃 디바이스(175)로부터 외부적으로 업데이트되어 타깃 디바이스(175)에 전파될 수 있다. 정책 정보는 또한 일부 구현들에서는, 타깃 디바이스(175)의 사용자가 민감 데이터 엘리먼트들과 연관된 이행 규칙들을 구성할 수 있게 하는 사용자 인터페이스를 통해 타깃 디바이스(175)의 사용자에 의해 업데이트될 수 있다. 일부 구현들에서, SAM(705)은 정책에 대한 변화들을 SAM(705)에 의해 관리되고 있는 민감 데이터 엘리먼트의 임의의 인스턴스들에 즉시 적용하도록 구성될 수 있다. 정책 정보는 또한 민감 데이터 엘리먼트와 연관된 데이터 엘리먼트들의 체인 아래로 전파될 수 있는데, 이는 민감 데이터 엘리먼트의 사본들이거나 민감 데이터 엘리먼트로부터 도출될 수 있고, 또는 민감 데이터 엘리먼트로부터 도출된 다른 민감 데이터 엘리먼트로부터 도출될 수 있다. SAM(705)은 또한, 민감 데이터 엘리먼트의 새로운 인스턴스들에 정책 변화들을 적용하고, 민감 데이터 엘리먼트 및/또는 그로부터 도출된 민감 데이터 엘리먼트들의 기존의 인스턴스들을 민감 데이터 엘리먼트의 그러한 인스턴스들이 생성된 시점에 준비가 되어 있던 정책에 따라 계속해서 관리하도록 구성될 수 있어, 민감 데이터 엘리먼트의 인스턴스들이 이들의 수명 주기 전반에 걸쳐 동일한 정책: SAM 호환 애플리케이션에 의해 더는 요구되지 않는 메모리로부터의 제거를 통한 생성을 사용하여 관리된다.
ㆍ 정책들은 발신 애플리케이션으로부터 벗어나 얼마나 많은 레벨들로 민감 데이터 엘리먼트가 전파될 수 있는지에 대한 한계들을 부과할 수 있다. 본 명세서에서 사용되는 것과 같이 사용되는 "레벨"이라는 용어는 정책에 의해 부과된 한계에 도달하기 전에 민감 데이터 엘리먼트의 인스턴스들의 체인을 따라 얼마나 많은 인스턴스들이 생성될 수 있는지를 의미한다. 정책은 민감 데이터 엘리먼트에 대해 수행될 수 있는 서로 다른 타입들의 연산들에 대해 서로 다른 타입들의 한계들을 부과할 수 있다. 예컨대, 예시적인 정책은 규칙들을 구현할 수 있는데, 이를테면: 민감 데이터 엘리먼트의 사본이 발신 애플리케이션에 의해 생성된 본래의 민감 데이터 엘리먼트로부터 제1 개수의 레벨들까지 전파될 수 있고, 파생 데이터 엘리먼트들은 단지 본래의 민감 데이터 엘리먼트로부터 벗어나 제2 개수의 레벨들까지일 수 있으며, 본래의 민감 데이터 엘리먼트로부터 벗어나 제3 개수의 레벨들까지만 데이터 엘리먼트에 대해 수정들이 이루어질 수 있고, 실행 가능 콘텐츠는 본래의 민감 데이터 엘리먼트로부터 벗어나 제4 개수의 레벨들까지만 실행될 수 있으며, 여기서 제1, 제2, 제3 및 제4 레벨 한계들은 동일한 값 또는 서로 다른 값일 수 있다. 이러한 레벨들 각각에 도달하면, SAM(705)은 이러한 레벨들과 연관된 연산이 수행되는 것을 막을 수 있다.
[0079] 도 10은 본 명세서에서 논의되는 기술들에 따라 보안 자산 관리자를 구현하는 애플리케이션을 운용하기 위한 예시적인 프로세스의 흐름도이다. 도 10에 예시된 프로세스는 달리 명시되지 않는 한, 도 1, 도 4 및 도 5에 예시된 타깃 디바이스(175)를 사용하여 구현될 수 있다. 타깃 디바이스(175)의 보안 자산 관리자 모듈(562)은 달리 명시되지 않는 한, 도 10에 예시된 프로세스의 다양한 스테이지들을 수행하기 위한 수단을 제공할 수 있다. 도 10에 예시된 프로세스는 보안 자산 관리자(705)가 타깃 디바이스(175) 상의 민감 데이터를 어떻게 관리할 수 있는지를 입증한다. 도 9에 예시된 프로세스는 타깃 디바이스(175) 상에서 발생할 수 있는 애플리케이션들 간의 상호 작용들 및 애플리케이션들 간의 민감 데이터 유포의 제어의 일례를 제공한다. SAM(705)은 타깃 디바이스(175)의 보안 자산 관리자 모듈(562)에 의해 구현될 수 있다. 도 10에 예시된 프로세스는 도 9에 예시된 프로세스의 스테이지(910)를 적어도 부분적으로 구현하는 데 사용될 수 있다.
[0080] 민감 데이터 엘리먼트의 제1 인스턴스를 보안 메모리 영역에 놓으라는 요청이 제1 애플리케이션으로부터 수신될 수 있다(스테이지(1005)). 민감 데이터 엘리먼트는 민감 데이터 엘리먼트와 연관된 정책 정보를 식별하는 데이터 태그를 포함한다. 민감 데이터 엘리먼트는 제1 애플리케이션에 의해 이용되는 데이터 엘리먼트이다. 민감 데이터 엘리먼트는 애플리케이션의 소스 코드(605) 내의 태그(610)와 연관되었다. 민감 데이터 엘리먼트는 애플리케이션의 개발자가 애플리케이션에 의해 자유롭게 유포되지 않아야 하는 정보로서 태깅한 애플리케이션의 개발자가 애플리케이션에 의해 자유롭게 유포되지 않아야 하는 정보로서 태깅한, 애플리케이션에 의해 사용되는 정보의 인스턴스이다. 민감 정보의 유포는 애플리케이션과 연관된 정책 정보(620)에 기반하여 보안 자산 관리자(705)에 의해 통제되어야 한다. 제1 애플리케이션은 SAM 호환 애플리케이션이며, 도 6과 도 8에 관해 앞서 논의한 기술을 사용하여 빌드되었을 수 있다. SAM(705)은 SAM(705)에 민감 데이터 엘리먼트를 놓으라는 제1 애플리케이션으로부터의 요청에 응답하여 영구적 작업 메모리(720)에서 새로운 민감 데이터 엘리먼트 객체를 인스턴스화하도록 구성될 수 있다. SAM(705)은 타깃 디바이스(175) 상에서 동작하는 다른 프로세스들에는 실질적으로 액세스 불가능한 타깃 디바이스(175)의 메모리(460) 부분에 영구적 작업 메모리(720)를 유지하도록 구성된다. SAM(705)은 프로세서(410)에 의해 제공되는 메모리의 보안 구역에 영구적 작업 메모리(720)를 유지하도록 구성될 수 있는데, 이 보안 구역은 메모리(460)의 일부일 수 있거나 타깃 디바이스(175)의 개별 메모리일 수 있다. SAM(705)은 또한 메모리(460)의 범용 부분에 영구적 작업 메모리(720)를 유지하도록 구성될 수 있지만, SAM(705)은 보안 자산 관리자(705)와 연관된 일시적 작업 메모리(715) 및 영구적 작업 메모리(720)의 데이터 콘텐츠를 암호화하거나 아니면 난독화하도록 구성될 수 있다.
[0081] SAM(705)은 요청을 개시한 애플리케이션과 연관된 식별자를 새로 생성된 민감 데이터 엘리먼트 객체와 연관시키고 그리고/또는 그 애플리케이션과 연관된 정책 정보를 민감 데이터 객체에 저장하도록 구성될 수 있다. SAM(705)은 객체에 저장된 정책 정보를 이용하여, 그 안에 저장된 민감 데이터가 다른 애플리케이션들과 공유될 수 있는지, 수정될 수 있는지, 그리고/또는 애플리케이션 및/또는 다른 애플리케이션들에 의해 달리 이용될 수 있는지를 결정할 수 있다. SAM(705)은 민감 데이터 엘리먼트 객체에 저장된 이 정책 정보를 본래의 민감 데이터 엘리먼트 객체로부터 도출된 임의의 민감 데이터 엘리먼트 객체들과 연관시켜, 정책 정보가 민감 데이터 엘리먼트의 전체 수명 주기 동안 민감 데이터 엘리먼트들을 따르게 하도록 구성될 수 있다. SAM(705)은 본래의 정책 규칙들을 민감 데이터 객체 및 임의의 파생 민감 데이터 객체들에 적용하여 데이터를 저장하는 애플리케이션들과 관련된 이행 문제들을 방지한다. 예컨대, 애플리케이션 A와 연관된 정책 정보가 애플리케이션 A가 애플리케이션 B와는 특정 민감 데이터 엘리먼트를 공유하지만 애플리케이션 C와는 공유하지 않게 할 수 있다면, 애플리케이션 A로부터의 정책 정보는 민감 데이터 엘리먼트의 전체 수명 주기에 걸쳐 민감 데이터 엘리먼트 객체를 따르기 때문에 SAM(705)은 애플리케이션 B가 이 민감 데이터 엘리먼트를 애플리케이션 C와 공유하는 것을 막을 것이다.
[0082] 보안 메모리 내의 민감 데이터 엘리먼트의 제1 인스턴스에 대한 연산을 수행하라는 제2 애플리케이션으로부터의 요청이 수신될 수 있다(스테이지(1010)). SAM(705)은 민감 데이터 엘리먼트의 인스턴스를 영구적 작업 메모리(720)에 유지하기 때문에, 제1 애플리케이션은 민감 데이터 엘리먼트의 제1 인스턴스를 제2 애플리케이션과 직접 공유할 수 없다. 제1 애플리케이션은 제2 애플리케이션과 민감 데이터의 제1 인스턴스에 대한 액세스를 공유하는 것을 비롯하여 SAM(705)이 영구적 작업 메모리(720)에 저장된 민감 데이터 엘리먼트의 인스턴스에 대한 어떤 동작을 수행할 것을 요청할 수 있다. 제1 애플리케이션은 제2 애플리케이션으로부터의 또는 제1 애플리케이션의 일부에 대해 취해진 일부 동작으로부터의 요청에 응답하여 SAM(705)이 제2 애플리케이션에 민감 데이터 엘리먼트의 제1 인스턴스에 대한 액세스를 제공할 것을 요청하도록 구성될 수 있다. SAM(705)의 로거 모듈(710)은 요청과 연관된 정보를 SAM(705)에 의해 유지되는 감사 로그들에 추가하도록 구성될 수 있다. 감사 로그에 추가된 정보는 어떤 정보가 요청되었는지, 어떤 애플리케이션이 정보에 액세스할 것을 요청했는지, 어떤 애플리케이션이 정보의 소스였는지를 식별하는 정보, 및/또는 민감 정보의 유포를 추적하기 위해 나중에 사용될 수 있는 다른 정보를 포함할 수 있다. 민감 데이터 엘리먼트의 판독 또는 액세스, 민감 데이터 엘리먼트의 수정, 또는 민감 데이터 엘리먼트가 실행 가능 컴포넌트를 포함하는 경우에 민감 데이터 엘리먼트의 실행을 비롯하여 다양한 타입들의 연산들이 민감 데이터 엘리먼트의 제1 인스턴스에 대해 수행될 것이 요청될 수 있다. 실행 가능 컴포넌트는 프로세서 실행 가능 프로그램 코드를 포함할 수 있다. SAM(705)은 SAM(705)에 의해 유지되는 보안 메모리 공간 내에서 실행 가능 컴포넌트를 실행하도록 구성될 수 있다.
[0083] 다음의 예는 도 10에 관해 논의되는 개념들을 예시하지만, 본 명세서에서 기술들이 논의한 애플리케이션들의 타입들을 제한하는 것으로 의도된 것은 아니다. 이 예의 목적들을 위해, 본 명세서에서는 애플리케이션 A로 언급되는 제1 애플리케이션은 뱅킹 애플리케이션이고, 애플리케이션 B로 언급되는 제2 애플리케이션은 투자 애플리케이션이며, 애플리케이션 A와 애플리케이션 B 둘 다 민감 데이터에 대한 액세스를 관리하기 위해 SAM(705)을 이용하는 SAM 호환 애플리케이션들로 개발되었다. 애플리케이션 B는 투자 애플리케이션 B가 애플리케이션 A의 사용자와 연관된 은행 계좌로부터의 자금들을 이용하여 주식들 또는 다른 투자물들을 구입할 수 있게 하도록 사용자와 연관된 은행 계좌번호를 획득하길 원할 수 있다. 이에 따라, 애플리케이션 B는 SAM(705)으로부터의 은행 계좌 정보에 관해 민감 데이터 엘리먼트에 대한 액세스를 요청할 수 있고, 또는 애플리케이션 B는 애플리케이션 A로부터의 은행 계좌 정보에 관해 민감 데이터 엘리먼트에 대한 액세스를 요청할 수 있으며, 애플리케이션 A는 요청을 SAM(705)에 전달할 수 있다.
[0084] 각각의 SAM 호환 애플리케이션과 연관된 정책 정보는 타깃 디바이스(175) 상의 다른 SAM 호환 애플리케이션들에 의해 판독될 수 있고, 다른 애플리케이션들이 어떤 정보가 요청될 수 있는지를 알 수 있다. SAM 호환 애플리케이션은 또한 타깃 디바이스(175) 상의 다른 애플리케이션으로부터의 특정 민감 데이터 엘리먼트에 대한 액세스를 요청하도록 구성될 수 있다. 일부 구현들에서, 이 요청은 타깃 디바이스(175)의 사용자로부터의 명령에 대한 응답으로 트리거될 수 있다. 예컨대, SAM 호환 애플리케이션은 사용자로부터의 민감 데이터 엘리먼트, 이를테면 타깃 디바이스(175)의 사용자로부터의 은행 계좌 정보를 요청하도록 구성될 수 있다. SAM 호환 애플리케이션은 사용자가 요청된 정보를 입력할 수 있게 하거나 요청된 정보에 대한 액세스를 갖는 타깃 디바이스(175) 상의 다른 SAM 호환 애플리케이션을 식별할 수 있게 하는 사용자 인터페이스를 제공할 수 있다. 그 다음, SAM 호환 애플리케이션은 다른 SAM 호환 애플리케이션으로부터의 원하는 정보를 요청할 수 있고, SAM(705)은 민감 데이터 엘리먼트와 연관된 정책 정보 그리고 민감 데이터 엘리먼트에 대한 액세스를 갖는 것으로 식별된 애플리케이션을 기초로 SAM 호환 애플리케이션이 요청된 정보에 액세스하는 것을 가능하게 할 수 있다.
[0085] 민감 데이터 엘리먼트와 연관된 정책 정보가 액세스될 수 있다(스테이지(1015)). SAM(705)은 제1 애플리케이션에 대한 정책 정보에 액세스할 수 있다. 민감 데이터 엘리먼트는 제1 애플리케이션에 의해 생성되었다. 따라서 제1 애플리케이션과 연관된 정책 정보는 SAM(705)에 의해 민감 데이터 엘리먼트 및 그 민감 데이터 엘리먼트로부터 도출된 임의의 데이터 엘리먼트들에 적용될 것이다. 정책 정보는 SAM(705)에 의해 유지되는 영구적 작업 메모리(720)에 저장될 수 있다. SAM(705)은 영구적 작업 메모리(720)에서 정책 정보가 이용 가능하지 않은 경우에 신뢰할 수 있는 엔티티(190)로부터의 정책 정보(620)를 요청하도록 구성될 수 있다. 앞서 논의한 바와 같이, 특정 데이터 엘리먼트와 연관된 정책 정보가 SAM(705)에 의해 유지되는 민감 데이터 객체 엘리먼트에서 식별될 수 있다. SAM(705)은 민감 데이터 엘리먼트 객체로부터 얻어진 정보를 사용하여 어떤 정책 정보가 얻어져야 하는지를 결정할 수 있다.
[0086] 정책 정보를 기초로 제2 애플리케이션이 민감 데이터 엘리먼트의 제1 인스턴스에 대한 연산을 수행하도록 허용되는지 여부의 결정이 이루어질 수 있다(스테이지(1020)). SAM(705)은 제1 애플리케이션과 연관된 정책 정보를 기초로 제2 애플리케이션이 영구적 작업 메모리(720) 내의 민감 데이터 엘리먼트의 제1 인스턴스에 액세스할 수 있는지 여부를 결정할 수 있다. 정책 정보는 제1 애플리케이션이 어떤 애플리케이션들과 민감 데이터 엘리먼트들을 공유할 수 있는지를 표시할 수 있다. 정책 정보는 제1 애플리케이션이 어떤 다른 애플리케이션들과 어떤 민감 데이터 엘리먼트들을 공유할 수 있는지를 식별할 수 있다. 애플리케이션은 소스 코드에서 태깅된 다수의 민감 데이터 엘리먼트들과 연관될 수 있고, 정책 정보는 그 특정 데이터 엘리먼트가 어떻게 공유될 수 있는지를 표시하는, 각각의 민감 데이터 엘리먼트에 대한 정보를 포함할 수 있다. 각각의 민감 데이터 엘리먼트들은 해당 민감 데이터가 공유될 수 있는 서로 다른 애플리케이션들을 잠재적으로 가질 수 있다. 앞서 논의한 바와 같이, 요청된 민감 데이터 엘리먼트가 다른 애플리케이션으로부터 얻어졌거나 다른 민감 데이터 엘리먼트로부터 도출되었다면, 소스 민감 데이터 엘리먼트와 연관된 정책 정보가 요청된 민감 데이터 엘리먼트에 적용될 것이고, 요청된 민감 데이터 엘리먼트는 소스 민감 데이터 엘리먼트와 연관된 정책에 반해 사용되거나 유포될 수 없다.
[0087] 정책 정보에 의해 민감 데이터 엘리먼트에 대한 연산이 허용되는지 여부의 결정이 이루어질 수 있다(스테이지(1025)). SAM(705)은 민감 데이터 엘리먼트와 연관된 정책 정보를 제2 애플리케이션에 의해 요청된 액세스와 비교하도록 구성될 수 있다. 요청은 제 2 애플리케이션이 어떤 타입의 액세스를 원하는지를 표시하고 민감 데이터 엘리먼트와 연관된 정책 정보가 제2 데이터 엘리먼트에 이러한 액세스를 허용하는지 여부를 결정할 수 있다. 예컨대, 요청은 제2 애플리케이션이 판독 전용 액세스, 민감 데이터 엘리먼트를 수정하기 위한 액세스, 민감 데이터 엘리먼트의 사본을 만들기 위한 액세스, 그리고/또는 민감 데이터 엘리먼트에 대한 계산들을 수행하거나 민감 데이터 엘리먼트로부터 새로운 데이터를 도출하기 위한 액세스를 요청하고 있음을 표시할 수 있다. 이러한 예들은 제2 애플리케이션에 의해 요청될 수 있는 가능한 타입들의 액세스 중 일부를 예시하도록 제공되며 배타적인 것으로 여겨지는 것은 아니다. 요청된 예들에 추가로 또는 그러한 예들 대신 다른 타입들의 액세스가 제2 애플리케이션으로부터 수신될 수 있으며, SAM(705)은 이러한 액세스가 허용되는지 여부의 결정을 수행할 수 있다. SAM(705)은, 정책이 제2 애플리케이션이 민감 데이터 엘리먼트의 제1 인스턴스에 액세스하도록 허용됨을 표시하는 것에 응답하여 스테이지(1030)로 또는 정책이 제2 애플리케이션이 민감 데이터 엘리먼트의 제1 인스턴스에 액세스하도록 허용되지 않음을 표시하는 것에 응답하여 스테이지(1035)로 진행할 수 있다.
[0088] 정책 정보가 제2 애플리케이션이 민감 데이터 엘리먼트에 액세스하도록 허용됨을 표시하는 것에 응답하여 제2 애플리케이션에 대해 민감 데이터 엘리먼트의 제1 인스턴스에 대한 액세스가 제공될 수 있다(스테이지(1030)). SAM(705)은, 정책 정보가 제2 애플리케이션이 민감 데이터 엘리먼트에 액세스하도록 허용됨을 표시한다는 결정에 응답하여 서로 다른 타입들의 동작들을 수행하도록 구성될 수 있다. 예컨대, SAM(705)은 제2 애플리케이션에 대한 제2 데이터 엘리먼트의 제2 인스턴스를 생성하도록 구성될 수 있는데, 제2 데이터 엘리먼트의 제 2 인스턴스는 제2 애플리케이션이 민감 데이터 엘리먼트에 대한 판독 전용 액세스를 요청했고 그에 대해 그랜트되었다면 판독 전용일 수 있고 또는 제2 애플리케이션이 민감 데이터 엘리먼트에 대한 수정 액세스를 요청했고 그에 대해 그랜트되었다면 수정 가능할 수 있다. SAM(705)은 제1 애플리케이션에 대한 정책 정보를 제2 데이터 엘리먼트의 제2 인스턴스들과 연관시키도록 구성될 수 있다. SAM(705)은 저장되는 데이터에 적절한 특정 타입의 데이터 객체의 새로운 인스턴스를 민감 데이터 엘리먼트의 제2 인스턴스로서 생성하도록 구성될 수 있다. SAM(705)은 민감 데이터 엘리먼트의 제1 인스턴스로부터 이 정보를 획득하도록 구성될 수 있다. SAM(705)은 또한 데이터 엘리먼트의 제2 인스턴스에 제1 애플리케이션과 연관된 정책 정보에 대한 레퍼런스를 저장하도록 구성될 수 있다. SAM(705)은 제1 애플리케이션과 연관된 정책 정보에 대한 이 레퍼런스를 사용하여, 민감 데이터 엘리먼트의 제2 인스턴스 및/또는 민감 데이터 엘리먼트의 제2 인스턴스에 액세스할 수 있는 임의의 다른 애플리케이션들에 저장된 데이터에 대해 제2 애플리케이션이 어떤 동작들을 수행할 수 있는지를 결정할 수 있다. SAM(705)의 로거 모듈(710)은 제2 애플리케이션이 민감 데이터 엘리먼트에 액세스하는 것이 그랜트되었음을 그리고 SAM(705)에 의해 영구적 작업 메모리(720)에서 데이터 엘리먼트의 새로운 인스턴스가 인스턴스화되었음을 표시하는 정보를 SAM(705)에 의해 유지되는 감사 로그들에 추가하도록 구성될 수 있다.
[0089] 정책 정보가 제2 애플리케이션이 민감 데이터 엘리먼트에 액세스하도록 허용되지 않음을 표시하는 것에 응답하여 제2 애플리케이션에 대해 민감 데이터 엘리먼트의 제1 인스턴스에 대한 액세스가 거부될 수 있다(스테이지(1035)). SAM(705)의 로거 모듈(710)은 민감 데이터 엘리먼트의 제1 인스턴스와 연관되었던 제1 애플리케이션과 연관된 정책 정보를 기초로, 제2 애플리케이션이 민감 데이터 엘리먼트에 액세스하는 것이 거부되었음을 표시하는 정보를 SAM(705)에 의해 유지되는 감사 로그들에 추가하도록 구성될 수 있다.
[0090] 도 11은 본 명세서에서 논의되는 기술들에 따라 보안 자산 관리자를 구현하는 애플리케이션을 운용하기 위한 예시적인 프로세스의 흐름도이다. 도 11에 예시된 프로세스는 달리 명시되지 않는 한, 도 1, 도 4 및 도 5에 예시된 타깃 디바이스(175)를 사용하여 구현될 수 있다. 타깃 디바이스(175)의 보안 자산 관리자 모듈(562)은 달리 명시되지 않는 한, 도 11에 예시된 프로세스의 다양한 스테이지들을 수행하기 위한 수단을 제공할 수 있다. 도 11에 예시된 프로세스는 보안 자산 관리자(705)가 타깃 디바이스(175) 상의 민감 데이터를 어떻게 관리할 수 있는지를 입증한다. 도 11에 예시된 프로세스는 기존의 민감 데이터 엘리먼트로부터 새로운 데이터 엘리먼트를 생성하는 일례를 제공한다. SAM(705)은 타깃 디바이스(175)의 보안 자산 관리자 모듈(562)에 의해 구현될 수 있다. 도 11에 예시된 프로세스는 도 9에 예시된 프로세스의 스테이지(910)를 적어도 부분적으로 구현하는 데 사용될 수 있다.
[0091] 민감 데이터 엘리먼트로부터 도출될 수 있는 데이터 엘리먼트들의 체인이 생성될 수 있다(스테이지(1105)). SAM(705)은 본래의 민감 데이터 엘리먼트로부터 도출되는 데이터 엘리먼트들 각각의 매핑을 유지하도록 구성될 수 있다. SAM(705)은 SAM(705)에 의해 유지되는 영구적 작업 메모리(720)에 매핑 정보를 저장하도록 구성될 수 있다. 민감 데이터 엘리먼트의 특정 인스턴스는 이것으로부터 도출된 데이터 엘리먼트들의 체인을 하나보다 많이 가질 수 있다. SAM(705)은 이 매핑 정보를 사용하여, 민감 데이터 엘리먼트와 연관된 정책 정보에 의해 부과된 연산에 대한 임의의 한계들을 따르면서 특정 연산이 수행될 수 있는지 여부를 결정할 수 있다. SAM(705)은 또한 이 매핑 정보를 사용하여, 특정 민감 데이터 엘리먼트와 연관된 정책과 연관된 정책 변화들을 그 민감 데이터 엘리먼트로부터 도출된 민감 데이터 엘리먼트들의 인스턴스들의 체인 또는 체인들에 적용할 수 있다.
[0092] 민감 데이터 엘리먼트와 연관된 정책 정보가 액세스될 수 있다(스테이지(1110)). SAM(705)은 민감 데이터 엘리먼트의 본래 애플리케이션에 의해 그 민감 데이터 엘리먼트와 연관되었던, 민감 데이터 엘리먼트에 대한 정책 정보에 액세스할 수 있다. SAM(705)은 민감 데이터 엘리먼트 또는 그 민감 데이터 엘리먼트로부터 도출된 데이터 엘리먼트들의 인스턴스가 다른 애플리케이션에 의해 사용되고 있다 하더라도, 민감 데이터 엘리먼트 및 그 민감 데이터 엘리먼트로부터 도출된 임의의 데이터 엘리먼트들에 이 정책 정보를 적용할 것이다. 정책 정보는 SAM(705)에 의해 유지되는 영구적 작업 메모리(720)에 저장될 수 있다. SAM(705)은 영구적 작업 메모리(720)에서 정책 정보가 이용 가능하지 않은 경우에 신뢰할 수 있는 엔티티(190)로부터의 정책 정보(620)를 요청하도록 구성될 수 있다. 앞서 논의한 바와 같이, 특정 데이터 엘리먼트와 연관된 정책 정보가 SAM(705)에 의해 유지되는 민감 데이터 객체 엘리먼트에서 식별될 수 있다. SAM(705)은 민감 데이터 엘리먼트 객체로부터 얻어진 정보를 사용하여 어떤 정책 정보가 얻어져야 하는지를 결정할 수 있다.
[0093] 민감 데이터 엘리먼트로부터의 정책 정보가 민감 데이터 엘리먼트들의 체인의 각각의 새로운 민감 데이터 엘리먼트와 연관될 수 있다(스테이지(1115)). SAM(705)은 민감 데이터 엘리먼트로부터의 정책 정보를 데이터 엘리먼트들의 체인의 각각의 민감 데이터 엘리먼트에 적용한다. SAM(705)은 본래의 민감 데이터 엘리먼트와 연관된 데이터 엘리먼트들의 체인에 포함된 민감 데이터 엘리먼트들 각각에 대한 맵을 유지할 수 있다. SAM(705)은 이러한 매핑을 영구적 작업 메모리(720)에 유지할 수 있고, 이 매핑을 사용하여 정책의 이행 규칙들과 연관되어 수행되는 연산들의 임의의 한계들이 시행될 수 있음을 보장할 수 있고, 필요하다면 SAM(705)이 민감 데이터 엘리먼트의 각각의 인스턴스를 통해 정책 정보에 대한 변경들을 전파하는 것을 가능하게 할 수 있다.
[0094] 새로운 민감 데이터 엘리먼트가 도출되는 민감 데이터 엘리먼트와 연관된 정책 정보에 따라 새로운 민감 데이터 엘리먼트들이 관리될 수 있다(스테이지(1120)). SAM(705)은 민감 데이터 엘리먼트들로부터 도출된 데이터 엘리먼트들의 체인의 각각의 데이터 엘리먼트를 본래의 민감 데이터 엘리먼트와 연관된 정책 정보에 따라 관리하도록 구성될 수 있다. SAM(705)은 민감 데이터 엘리먼트들 각각을 도 9에 예시된 프로세스에 따라 관리할 수 있다.
도 9는 본 명세서에서 개시되는 기술들에 따라 민감 데이터를 보호하기 위한 예시적인 프로세스의 흐름도이다. 도 9에 예시된 프로세스는 달리 명시되지 않는 한, 도 1, 도 4 및 도 5에 예시된 타깃 디바이스(175)를 사용하여 구현될 수 있다. 타깃 디바이스(175)의 보안 자산 관리자 모듈(562)은 달리 명시되지 않는 한, 도 9에 예시된 프로세스의 다양한 스테이지들을 수행하기 위한 수단을 제공할 수 있다. 도 9에 예시된 프로세스는 보안 자산 관리자(705)가 타깃 디바이스(175) 상의 민감 데이터에 대한 액세스를 어떻게 관리할 수 있는지를 입증한다.
[0095] 감사 로그들은 민감 데이터 엘리먼트들과 관련하여 수행되는 동작들을 포함하도록 업데이트될 수 있다(스테이지(1125)). SAM(705)의 로거 모듈(710)은 민감 데이터 엘리먼트 또는 그 민감 데이터 엘리먼트로부터 도출되는 데이터 엘리먼트들의 체인의 임의의 데이터 엘리먼트에 대해 수행되는 임의의 동작들을 포함하도록 감사 로그들을 업데이트한다. 감사 로그 정보는 SAM(705)에 의해 유지되는 영구적 작업 메모리(720)에 저장되어 감사 로그들에 대한 무단 액세스 또는 수정들을 막을 수 있다. 로거 모듈(710)은 감사 로그들의 크기가 미리 결정된 임계치를 초과한다면 감사 로그들을 압축하도록 구성될 수 있고, 그리고/또는 감사 로그들의 전부 또는 일부를 신뢰할 수 있는 엔티티(190)와 같은 외부 서버에 오프로드하여 타깃 디바이스(175) 상의 메모리를 풀어주도록 구성될 수 있다. 로거 모듈(710)은 타깃 디바이스(175)로부터 감사 로그들을 오프로드하기 전에 감사 로그들의 콘텐츠를 암호화하도록 구성될 수 있다. 로거 모듈(710)은 또한 새로운 엔트리들을 위한 공간을 만들기 위해 미리 결정된 시간 기간보다 더 오래된 엔트리들을 감사 로그들에서 삭제하도록 구성될 수 있다. 로거 모듈(710)은 또한 감사 로그들이 타깃 디바이스(175) 상에서 너무 많은 메모리를 소비하는 것을 막기 위해 로그들의 크기가 미리 결정된 임계치를 초과한다면 감사 로그들로부터의 엔트리들을 오프로드 및/또는 삭제하도록 구성될 수 있다.
[0096] 본 명세서에서 설명한 방법들은 애플리케이션에 따라 다양한 수단들로 구현될 수 있다. 예를 들어, 이러한 방법들은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 임의의 결합으로 구현될 수 있다. 하드웨어 구현의 경우, 처리 유닛들은 하나 또는 그보다 많은 주문형 집적 회로(ASIC)들, 디지털 신호 프로세서(DSP)들, 디지털 신호 처리 디바이스(DSPD: digital signal processing device)들, 프로그래밍 가능 로직 디바이스(PLD: programmable logic device)들, 필드 프로그래밍 가능 게이트 어레이(FPGA: field programmable gate array)들, 프로세서들, 제어기들, 마이크로컨트롤러들, 마이크로프로세서들, 전자 디바이스들, 본 명세서에서 설명한 기능들을 수행하도록 설계된 다른 전자 유닛들, 또는 이들의 결합 내에 구현될 수 있다.
[0097] 펌웨어 및/또는 소프트웨어 구현의 경우, 방법들은 본 명세서에서 설명한 기능들을 수행하는 모듈들(예를 들어, 프로시저들, 함수들 등)로 구현될 수 있다. 명령들을 유형적으로 구현하는 임의의 기계 판독 가능 매체가 본 명세서에서 설명한 방법들을 구현하는 데 사용될 수 있다. 예를 들어, 소프트웨어 코드들은 메모리에 저장되어 프로세서 유닛에 의해 실행될 수 있다. 메모리는 프로세서 유닛 내에 또는 프로세서 유닛 외부에 구현될 수 있다. 본 명세서에서 사용된 바와 같이, "메모리"라는 용어는 임의의 타입의 장기, 단기, 휘발성, 비휘발성 또는 다른 메모리를 의미하며, 메모리의 임의의 특정 타입이나 메모리들의 개수, 또는 매체들의 타입으로 한정되는 것은 아니다. 유형 매체들은 랜덤 액세스 메모리, 자기 저장소, 광 저장 매체들 등과 같은 기계 판독 가능 매체들의 하나 또는 그보다 많은 물리적 물건들을 포함한다.
[0098] 펌웨어 및/또는 소프트웨어로 구현된다면, 이 기능들은 컴퓨터 판독 가능 매체 상에 하나 또는 그 초과의 명령들 또는 코드로서 저장될 수 있다. 예들은 데이터 구조로 인코딩된 컴퓨터 판독 가능 매체 및 컴퓨터 프로그램으로 인코딩된 컴퓨터 판독 가능 매체를 포함한다. 컴퓨터 판독 가능 매체는 물리적 컴퓨터 저장 매체를 포함한다. 저장 매체는 컴퓨터에 의해 액세스 가능한 임의의 이용 가능한 매체일 수 있다. 한정이 아닌 예시로, 이러한 컴퓨터 판독 가능 매체는 RAM, ROM, EEPROM, CD-ROM이나 다른 광 디스크 저장소, 자기 디스크 저장소 또는 다른 자기 저장 디바이스들, 또는 명령들이나 데이터 구조들의 형태로 원하는 프로그램 코드를 저장하는데 사용될 수 있으며 컴퓨터에 의해 액세스 가능한 임의의 다른 매체를 포함할 수 있고, 본 명세서에서 사용된 것과 같은 디스크(disk 및 disc)는 콤팩트 디스크(CD: compact disc), 레이저 디스크(laser disc), 광 디스크(optical disc), 디지털 다기능 디스크(DVD: digital versatile disc) 및 블루레이 디스크(Blu-ray disc)를 포함하며, 여기서 디스크(disk)들은 보통 데이터를 자기적으로 재생하는 한편, 디스크(disc)들은 데이터를 레이저들에 의해 광학적으로 재생한다. 상기의 것들의 결합들이 또한 컴퓨터 판독 가능 매체의 범위 내에 포함되어야 한다. 이러한 매체들은 또한 기계 판독 가능할 수 있는 비-일시적 매체들의 예들을 제공하며, 여기서 컴퓨터들은 이러한 비-일시적 매체들로부터 판독할 수 있는 기계의 일례이다.
[0099] 본 명세서에서 개시되는 기술들의 추가 구현은 다음을 포함한다:
1A. 민감 데이터를 보호하기 위한 장치로서, 이 장치는:
보안 자산 관리자에 의해 관리되는 보안 메모리 영역에 민감 데이터 엘리먼트를 저장하기 위한 수단; 및
민감 데이터 엘리먼트가 발생하는 애플리케이션에 의해 민감 데이터 엘리먼트와 연관된 정책에 따라 민감 데이터 엘리먼트를 관리하기 위한 수단을 포함하며, 정책은 민감 데이터 엘리먼트와 연관된 이행 규칙들을 정의한다.
2A. 1A의 장치에서, 이행 규칙들은 민감 데이터 엘리먼트가 어떤 다른 애플리케이션들과 공유될 수 있는지를 정의하는 규칙들을 포함한다.
3A. 1A의 장치에서, 민감 데이터 엘리먼트를 관리하기 위한 수단은, 민감 데이터 엘리먼트가 발생하는 애플리케이션으로부터의 정책을 민감 데이터 엘리먼트로부터 도출된 데이터 엘리먼트들에 적용하기 위한 수단을 더 포함한다.
4A. 1A의 장치에서, 민감 데이터 엘리먼트를 관리하기 위한 수단은, 민감 데이터 엘리먼트 및 그 민감 데이터 엘리먼트로부터 도출된 임의의 데이터 엘리먼트들에 대해 수행되는 각각의 동작을 감사하기 위한 수단을 더 포함한다.
5A. 4A의 장치에서, 민감 데이터 엘리먼트 및 그 민감 데이터 엘리먼트로부터 도출된 임의의 데이터 엘리먼트들에 대해 수행되는 각각의 동작을 감사하기 위한 수단은, 보안 자산 관리자에 의해 관리되는 보안 메모리 영역에 감사 정보를 저장하기 위한 수단을 포함한다.
6A. 1A의 장치에서, 민감 데이터 엘리먼트를 관리하기 위한 수단은, 민감 데이터 엘리먼트에 대한 연산들을 수행하기 위한 하나 또는 그보다 많은 함수들을 제공하기 위한 수단을 더 포함한다.
7A. 1A의 장치에서, 민감 데이터 엘리먼트를 관리하기 위한 수단은, 하나 또는 그보다 많은 함수들에 의해 생성된 중간 데이터 값들을 보안 메모리 영역에 저장하기 위한 수단을 더 포함한다.
8A. 민감 데이터를 보호하기 위한 컴퓨터 판독 가능 명령들이 저장된 비-일시적 컴퓨터 판독 가능 매체는, 컴퓨터로 하여금,
보안 자산 관리자에 의해 관리되는 보안 메모리 영역에 민감 데이터 엘리먼트를 저장하게 하고; 그리고
민감 데이터 엘리먼트가 발생하는 애플리케이션에 의해 민감 데이터 엘리먼트와 연관된 정책에 따라 민감 데이터 엘리먼트를 관리하게 하도록 구성된 명령들을 포함하며, 정책은 민감 데이터 엘리먼트와 연관된 이행 규칙들을 정의한다.
9A. 8A의 비-일시적 컴퓨터 판독 가능 매체에서, 이행 규칙들은 민감 데이터 엘리먼트가 어떤 다른 애플리케이션들과 공유될 수 있는지를 정의하는 규칙들을 포함한다.
10A. 8A의 비-일시적 컴퓨터 판독 가능 매체에서, 컴퓨터로 하여금 민감 데이터 엘리먼트를 관리하게 하도록 구성된 명령들은 컴퓨터로 하여금, 민감 데이터 엘리먼트가 발생하는 애플리케이션으로부터의 정책을 민감 데이터 엘리먼트로부터 도출된 데이터 엘리먼트들에 적용하게 하도록 구성된 명령들을 더 포함한다.
11A. 8A의 비-일시적 컴퓨터 판독 가능 매체에서, 컴퓨터로 하여금 민감 데이터 엘리먼트를 관리하게 하도록 구성된 명령들은 컴퓨터로 하여금, 민감 데이터 엘리먼트 및 그 민감 데이터 엘리먼트로부터 도출된 임의의 데이터 엘리먼트들에 대해 수행되는 각각의 동작을 감사하게 하도록 구성된 명령들을 더 포함한다.
12A. 11A의 비-일시적 컴퓨터 판독 가능 매체에서, 컴퓨터로 하여금, 민감 데이터 엘리먼트 및 그 민감 데이터 엘리먼트로부터 도출된 임의의 데이터 엘리먼트들에 대해 수행되는 각각의 동작을 감사하게 하도록 구성된 명령들은 컴퓨터로 하여금, 보안 자산 관리자에 의해 관리되는 보안 메모리 영역에 감사 정보를 저장하게 하도록 구성된 명령들을 포함한다.
13A. 8A의 비-일시적 컴퓨터 판독 가능 매체에서, 컴퓨터로 하여금 민감 데이터 엘리먼트를 관리하게 하도록 구성된 명령들은 컴퓨터로 하여금, 민감 데이터 엘리먼트에 대한 연산들을 수행하기 위한 하나 또는 그보다 많은 함수들을 제공하게 하도록 구성된 명령들을 더 포함한다.
14A. 8A의 비-일시적 컴퓨터 판독 가능 매체에서, 컴퓨터로 하여금 민감 데이터 엘리먼트를 관리하게 하도록 구성된 명령들은 컴퓨터로 하여금, 하나 또는 그보다 많은 함수들에 의해 생성된 중간 데이터 값들을 보안 메모리 영역에 저장하게 하도록 구성된 명령들을 더 포함한다.
15B. 보안 자산 관리자 호환 애플리케이션을 생성하기 위한 장치로서, 이 장치는:
애플리케이션에 대한 소스 코드와 연관된 데이터 엘리먼트가 민감 데이터 엘리먼트임을 표시하기 위한 데이터 태그로 소스 코드를 태깅하기 위한 수단;
민감 데이터 엘리먼트와 연관된 이행 규칙들을 포함하는 정책 파일에 액세스하기 위한 수단; 및
소스 코드로부터 애플리케이션에 대한 하나 또는 그보다 많은 객체 파일들을 생성하기 위한 수단을 포함한다.
16B. 15B의 장치는, 객체 파일이 신뢰할 수 있는 제공자에 의해 생성되었음을 표시하는 보안 인증서로 하나 또는 그보다 많은 객체 파일들을 서명하기 위한 수단을 더 포함한다.
17B. 15B의 장치에서, 데이터 태그는 애플리케이션의 런타임시 보안 자산 관리자에 의해 데이터 태그와 연관된 민감 데이터 엘리먼트에 어떤 정책이 적용되어야 하는지를 식별하는 고유 식별자를 포함한다.
18B. 15B의 장치에서, 애플리케이션에 대한 하나 또는 그보다 많은 객체 파일들을 생성하기 위한 수단은, 데이터 태그를 인식하도록 그리고 민감 데이터 엘리먼트의 인스턴스들을 관리하기 위한 민감 데이터 객체 타입을 생성하도록 구성되는 보안 자산 관리자 호환 컴파일러로 소스 코드를 컴파일하기 위한 수단을 포함한다.
19B. 15B의 장치는, 보안 자산 관리자를 구현하는 타깃 디바이스에 대한 실행 가능 파일을 생성하기 위해 객체 파일을 적어도 하나의 다른 객체 파일 또는 라이브러리와 링크하기 위한 수단을 더 포함한다.
20B. 15B의 장치에서, 민감 데이터 엘리먼트와 연관된 이행 규칙들은 민감 데이터 엘리먼트에 액세스하여 민감 데이터 엘리먼트에 대한 하나 또는 그보다 많은 연산들을 수행하도록 허용되는 한 세트의 신뢰할 수 있는 애플리케이션들을 식별한다.
21B. 15B의 장치에서, 민감 데이터 엘리먼트와 연관된 이행 규칙들은 어떤 애플리케이션들이 민감 데이터 엘리먼트로부터 데이터를 도출할 수 있는지를 식별한다.
22B. 보안 자산 관리자 호환 애플리케이션을 생성하기 위한 컴퓨터 판독 가능 명령들이 저장된 비-일시적 컴퓨터 판독 가능 매체는, 컴퓨터로 하여금,
애플리케이션에 대한 소스 코드와 연관된 데이터 엘리먼트가 민감 데이터 엘리먼트임을 표시하기 위한 데이터 태그로 소스 코드를 태깅하게 하고;
민감 데이터 엘리먼트와 연관된 이행 규칙들을 포함하는 정책 파일에 액세스하게 하고; 그리고
소스 코드로부터 애플리케이션에 대한 하나 또는 그보다 많은 객체 파일들을 생성하게 하도록 구성된 명령들을 포함한다.
23B. 22B의 비-일시적 컴퓨터 판독 가능 매체는 컴퓨터로 하여금, 객체 파일이 신뢰할 수 있는 제공자에 의해 생성되었음을 표시하는 보안 인증서로 하나 또는 그보다 많은 객체 파일들을 서명하게 하기 위한 명령들을 더 포함한다.
24B. 22B의 비-일시적 컴퓨터 판독 가능 매체에서, 데이터 태그는 애플리케이션의 런타임시 보안 자산 관리자에 의해 데이터 태그와 연관된 민감 데이터 엘리먼트에 어떤 정책이 적용되어야 하는지를 식별하는 고유 식별자를 포함한다.
25B. 22B의 비-일시적 컴퓨터 판독 가능 매체에서, 컴퓨터로 하여금 애플리케이션에 대한 하나 또는 그보다 많은 객체 파일들을 생성하게 하기 위한 명령들은 컴퓨터로 하여금, 데이터 태그를 인식하도록 그리고 민감 데이터 엘리먼트의 인스턴스들을 관리하기 위한 민감 데이터 객체 타입을 생성하도록 구성되는 보안 자산 관리자 호환 컴파일러로 소스 코드를 컴파일하게 하기 위한 명령들을 포함한다.
26B. 22B의 비-일시적 컴퓨터 판독 가능 매체는 컴퓨터로 하여금, 보안 자산 관리자를 구현하는 타깃 디바이스에 대한 실행 가능 파일을 생성하기 위해 객체 파일을 적어도 하나의 다른 객체 파일 또는 라이브러리와 링크하게 하기 위한 명령들을 더 포함한다.
27B. 22B의 비-일시적 컴퓨터 판독 가능 매체에서, 민감 데이터 엘리먼트와 연관된 이행 규칙들은 민감 데이터 엘리먼트에 액세스하여 민감 데이터 엘리먼트에 대한 하나 또는 그보다 많은 연산들을 수행하도록 허용되는 한 세트의 신뢰할 수 있는 애플리케이션들을 식별한다.
28B. 27B의 비-일시적 컴퓨터 판독 가능 매체에서, 민감 데이터 엘리먼트와 연관된 이행 규칙들은 어떤 애플리케이션들이 민감 데이터 엘리먼트로부터 데이터를 도출할 수 있는지를 식별한다.
[0100] 본 명세서에서 논의한 일반 원리들은 본 개시내용 또는 청구항들의 기술적 사상 또는 범위를 벗어나지 않으면서 다른 구현들에 적용될 수 있다.

Claims (28)

  1. 민감(sensitive) 데이터를 보호하기 위한 방법으로서,
    보안 자산 관리자에 의해 관리되는 보안 메모리 영역에 민감 데이터 엘리먼트를 저장하는 단계; 및
    상기 민감 데이터 엘리먼트가 발생하는 애플리케이션에 의해 상기 민감 데이터 엘리먼트와 연관된 정책에 따라 상기 민감 데이터 엘리먼트를 관리하는 단계를 포함하며,
    상기 정책은 상기 민감 데이터 엘리먼트와 연관된 이행(transitive) 규칙들을 정의하고,
    상기 민감 데이터 엘리먼트를 관리하는 단계는, 프로세서가 상기 민감 데이터 엘리먼트와 연관된 데이터를 처리하고 있는 동안 상기 프로세서와 연관된 데이터 레지스터들에 대한 액세스를 막는 단계를 포함하는,
    민감 데이터를 보호하기 위한 방법.
  2. 제1 항에 있어서,
    상기 이행 규칙들은 상기 민감 데이터 엘리먼트가 어떤 다른 애플리케이션들과 공유될 수 있는지를 정의하는 규칙들을 포함하는,
    민감 데이터를 보호하기 위한 방법.
  3. 제1 항에 있어서,
    상기 민감 데이터 엘리먼트를 관리하는 단계는, 상기 민감 데이터 엘리먼트가 발생하는 애플리케이션으로부터의 정책을 상기 민감 데이터 엘리먼트로부터 도출된 데이터 엘리먼트들에 적용하는 단계를 더 포함하는,
    민감 데이터를 보호하기 위한 방법.
  4. 제1 항에 있어서,
    상기 민감 데이터 엘리먼트를 관리하는 단계는, 상기 민감 데이터 엘리먼트 및 상기 민감 데이터 엘리먼트로부터 도출된 임의의 데이터 엘리먼트들에 대해 수행되는 각각의 동작을 감사(audit)하는 단계를 더 포함하는,
    민감 데이터를 보호하기 위한 방법.
  5. 제4 항에 있어서,
    상기 민감 데이터 엘리먼트 및 상기 민감 데이터 엘리먼트로부터 도출된 임의의 데이터 엘리먼트들에 대해 수행되는 각각의 동작을 감사하는 단계는, 상기 보안 자산 관리자에 의해 관리되는 보안 메모리 영역에 감사 정보를 저장하는 단계를 포함하는,
    민감 데이터를 보호하기 위한 방법.
  6. 제1 항에 있어서,
    상기 민감 데이터 엘리먼트를 관리하는 단계는, 상기 민감 데이터 엘리먼트에 대한 연산들을 수행하기 위한 하나 또는 그보다 많은 함수들을 제공하는 단계를 더 포함하는,
    민감 데이터를 보호하기 위한 방법.
  7. 제6 항에 있어서,
    상기 민감 데이터 엘리먼트를 관리하는 단계는, 상기 하나 또는 그보다 많은 함수들에 의해 생성된 중간 데이터 값들을 상기 보안 메모리 영역에 저장하는 단계를 더 포함하는,
    민감 데이터를 보호하기 위한 방법.
  8. 장치로서,
    메모리; 및
    상기 메모리에 통신 가능하게 연결된 프로세서를 포함하며,
    상기 프로세서는,
    보안 자산 관리자에 의해 관리되는 상기 메모리의 보안 메모리 영역에 민감 데이터 엘리먼트를 저장하고; 그리고
    상기 민감 데이터 엘리먼트가 발생하는 애플리케이션에 의해 상기 민감 데이터 엘리먼트와 연관된 정책에 따라 상기 민감 데이터 엘리먼트를 관리하도록 구성되며,
    상기 정책은 상기 민감 데이터 엘리먼트와 연관된 이행 규칙들을 정의하고,
    상기 프로세서는, 상기 프로세서가 상기 민감 데이터 엘리먼트와 연관된 데이터를 처리하고 있는 동안 상기 프로세서와 연관된 데이터 레지스터들에 대한 액세스를 막도록 구성되는,
    장치.
  9. 제8 항에 있어서,
    상기 이행 규칙들은 상기 민감 데이터 엘리먼트가 어떤 다른 애플리케이션들과 공유될 수 있는지를 정의하는 규칙들을 포함하는,
    장치.
  10. 제8 항에 있어서,
    상기 민감 데이터 엘리먼트를 관리하도록 구성된 프로세서는, 상기 민감 데이터 엘리먼트가 발생하는 애플리케이션으로부터의 정책을 상기 민감 데이터 엘리먼트로부터 도출된 데이터 엘리먼트들에 적용하도록 추가로 구성되는,
    장치.
  11. 제8 항에 있어서,
    상기 민감 데이터 엘리먼트를 관리하도록 구성된 프로세서는, 상기 민감 데이터 엘리먼트 및 상기 민감 데이터 엘리먼트로부터 도출된 임의의 데이터 엘리먼트들에 대해 수행되는 각각의 동작을 감사하도록 추가로 구성되는,
    장치.
  12. 제11 항에 있어서,
    상기 민감 데이터 엘리먼트 및 상기 민감 데이터 엘리먼트로부터 도출된 임의의 데이터 엘리먼트들에 대해 수행되는 각각의 동작을 감사하도록 구성된 프로세서는, 상기 보안 자산 관리자에 의해 관리되는 보안 메모리 영역에 감사 정보를 저장하도록 추가로 구성되는,
    장치.
  13. 제8 항에 있어서,
    상기 민감 데이터 엘리먼트를 관리하도록 구성된 프로세서는, 상기 민감 데이터 엘리먼트에 대한 연산들을 수행하기 위한 하나 또는 그보다 많은 함수들을 제공하도록 추가로 구성되는,
    장치.
  14. 제13 항에 있어서,
    상기 민감 데이터 엘리먼트를 관리하도록 구성된 프로세서는, 상기 하나 또는 그보다 많은 함수들에 의해 생성된 중간 데이터 값들을 상기 보안 메모리 영역에 저장하도록 추가로 구성되는,
    장치.
  15. 보안 자산 관리자 호환(compliant) 애플리케이션을 생성하기 위한 방법으로서,
    상기 애플리케이션에 대한 소스 코드와 연관된 데이터 엘리먼트가 민감 데이터 엘리먼트임을 표시하기 위한 데이터 태그로 상기 소스 코드를 태깅하는 단계;
    상기 민감 데이터 엘리먼트와 연관된 이행 규칙들을 포함하는 정책 파일을 리트리브하는 단계; 및
    메모리 내의 상기 소스 코드로부터 상기 애플리케이션에 대한 하나 또는 그보다 많은 객체 파일들을 생성하는 단계를 포함하며,
    상기 하나 또는 그보다 많은 객체 파일들을 생성하는 단계는, 상기 민감 데이터 엘리먼트와 연관된 정책 정보에 따라, 상기 데이터 태그로 태깅된 상기 민감 데이터 엘리먼트를 관리하기 위한 객체 코드를 생성하는 단계를 포함하고,
    상기 민감 데이터 엘리먼트와 연관된 정책 정보는 상기 하나 또는 그보다 많은 객체 파일들 중 적어도 하나에 포함되는,
    보안 자산 관리자 호환 애플리케이션을 생성하기 위한 방법.
  16. 제15 항에 있어서,
    상기 하나 또는 그보다 많은 객체 파일들이 신뢰할 수 있는 제공자에 의해 생성되었음을 표시하는 보안 인증서로 상기 하나 또는 그보다 많은 객체 파일들을 서명하는 단계를 더 포함하는,
    보안 자산 관리자 호환 애플리케이션을 생성하기 위한 방법.
  17. 제15 항에 있어서,
    상기 데이터 태그는 상기 애플리케이션의 런타임시 보안 자산 관리자에 의해 상기 민감 데이터 엘리먼트 및 상기 민감 데이터 엘리먼트로부터 도출된 임의의 데이터 엘리먼트들에 어떤 정책이 적용되어야 하는지를 식별하는 고유 식별자를 포함하는,
    보안 자산 관리자 호환 애플리케이션을 생성하기 위한 방법.
  18. 제15 항에 있어서,
    상기 애플리케이션에 대한 하나 또는 그보다 많은 객체 파일들을 생성하는 단계는, 상기 데이터 태그를 인식하도록 그리고 상기 민감 데이터 엘리먼트의 인스턴스들을 관리하기 위한 민감 데이터 객체 타입을 생성하도록 구성되는 보안 자산 관리자 호환 컴파일러로 상기 소스 코드를 컴파일하는 단계를 포함하는,
    보안 자산 관리자 호환 애플리케이션을 생성하기 위한 방법.
  19. 제15 항에 있어서,
    보안 자산 관리자를 구현하는 타깃 디바이스에 대한 실행 가능 파일을 생성하기 위해 상기 하나 또는 그보다 많은 객체 파일들을 적어도 하나의 다른 객체 파일 또는 라이브러리와 링크하는 단계를 더 포함하는,
    보안 자산 관리자 호환 애플리케이션을 생성하기 위한 방법.
  20. 제15 항에 있어서,
    상기 민감 데이터 엘리먼트와 연관된 이행 규칙들은 상기 민감 데이터 엘리먼트에 액세스하여 상기 민감 데이터 엘리먼트에 대한 하나 또는 그보다 많은 연산들을 수행하도록 허용되는 한 세트의 신뢰할 수 있는 애플리케이션들을 식별하는,
    보안 자산 관리자 호환 애플리케이션을 생성하기 위한 방법.
  21. 제20 항에 있어서,
    상기 민감 데이터 엘리먼트와 연관된 이행 규칙들은 어떤 애플리케이션들이 상기 민감 데이터 엘리먼트로부터 데이터를 도출할 수 있는지를 식별하는,
    보안 자산 관리자 호환 애플리케이션을 생성하기 위한 방법.
  22. 장치로서,
    메모리; 및
    상기 메모리에 통신 가능하게 연결된 프로세서를 포함하며,
    상기 프로세서는,
    상기 메모리에 저장된 애플리케이션에 대해 저장된 소스 코드와 연관된 데이터 엘리먼트가 민감 데이터 엘리먼트임을 표시하기 위한 데이터 태그로 상기 소스 코드를 태깅하고;
    상기 민감 데이터 엘리먼트와 연관된 이행 규칙들을 포함하는 정책 파일을 리트리브하고; 그리고
    상기 메모리 내의 상기 소스 코드로부터 상기 애플리케이션에 대한 하나 또는 그보다 많은 객체 파일들을 생성하도록 구성되며,
    상기 프로세서는 상기 민감 데이터 엘리먼트와 연관된 정책 정보에 따라, 상기 데이터 태그로 태깅된 상기 민감 데이터 엘리먼트를 관리하기 위한 객체 코드를 생성하도록 구성되고,
    상기 민감 데이터 엘리먼트와 연관된 정책 정보는 상기 하나 또는 그보다 많은 객체 파일들 중 적어도 하나에 포함되는,
    장치.
  23. 제22 항에 있어서,
    상기 프로세서는 상기 하나 또는 그보다 많은 객체 파일들이 신뢰할 수 있는 제공자에 의해 생성되었음을 표시하는 보안 인증서로 상기 하나 또는 그보다 많은 객체 파일들을 서명하도록 구성되는,
    장치.
  24. 제22 항에 있어서,
    상기 데이터 태그는 상기 애플리케이션의 런타임시 보안 자산 관리자에 의해 상기 데이터 태그와 연관된 민감 데이터 엘리먼트에 어떤 정책이 적용되어야 하는지를 식별하는 고유 식별자를 포함하는,
    장치.
  25. 제22 항에 있어서,
    상기 애플리케이션에 대한 하나 또는 그보다 많은 객체 파일들을 생성하도록 구성된 프로세서는, 상기 데이터 태그를 인식하도록 그리고 상기 민감 데이터 엘리먼트의 인스턴스들을 관리하기 위한 민감 데이터 객체 타입을 생성하도록 구성되는 보안 자산 관리자 호환 컴파일러로 상기 소스 코드를 컴파일하도록 추가로 구성되는,
    장치.
  26. 제22 항에 있어서,
    상기 프로세서는 보안 자산 관리자를 구현하는 타깃 디바이스에 대한 실행 가능 파일을 생성하기 위해 상기 하나 또는 그보다 많은 객체 파일들을 적어도 하나의 다른 객체 파일 또는 라이브러리와 링크하도록 추가로 구성되는,
    장치.
  27. 제22 항에 있어서,
    상기 민감 데이터 엘리먼트와 연관된 이행 규칙들은 상기 민감 데이터 엘리먼트에 액세스하여 상기 민감 데이터 엘리먼트에 대한 하나 또는 그보다 많은 연산들을 수행하도록 허용되는 한 세트의 신뢰할 수 있는 애플리케이션들을 식별하는,
    장치.
  28. 제27 항에 있어서,
    상기 민감 데이터 엘리먼트와 연관된 이행 규칙들은 어떤 애플리케이션들이 상기 민감 데이터 엘리먼트로부터 데이터를 도출할 수 있는지를 식별하는,
    장치.
KR1020177035387A 2015-06-11 2016-04-13 객체 지향 콘텍스트들에서의 이행 문제를 완화하기 위한 데이터 모니터링을 위한 기술들 KR20180017028A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/736,888 2015-06-11
US14/736,888 US9892269B2 (en) 2015-06-11 2015-06-11 Techniques for data monitoring to mitigate transitive problem in object-oriented contexts
PCT/US2016/027237 WO2016200481A1 (en) 2015-06-11 2016-04-13 Techniques for data monitoring to mitigate transitive problem in object-oriented contexts

Publications (1)

Publication Number Publication Date
KR20180017028A true KR20180017028A (ko) 2018-02-20

Family

ID=55809234

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177035387A KR20180017028A (ko) 2015-06-11 2016-04-13 객체 지향 콘텍스트들에서의 이행 문제를 완화하기 위한 데이터 모니터링을 위한 기술들

Country Status (7)

Country Link
US (2) US9892269B2 (ko)
EP (1) EP3308318A1 (ko)
JP (1) JP2018523208A (ko)
KR (1) KR20180017028A (ko)
CN (1) CN107667376A (ko)
BR (1) BR112017026590A2 (ko)
WO (1) WO2016200481A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9892269B2 (en) 2015-06-11 2018-02-13 Qualcomm Incorporated Techniques for data monitoring to mitigate transitive problem in object-oriented contexts
US20170351855A1 (en) * 2016-06-03 2017-12-07 International Business Machines Corporation Identifying sensitive information in a communication based on network communications history
US11062041B2 (en) * 2017-07-27 2021-07-13 Citrix Systems, Inc. Scrubbing log files using scrubbing engines
US11199955B2 (en) * 2019-10-02 2021-12-14 Palantir Technologies Inc. Enhanced techniques for building user interfaces
CN114064350A (zh) * 2020-08-07 2022-02-18 伊姆西Ip控股有限责任公司 数据保护方法、电子设备和计算机程序产品
US11775639B2 (en) * 2020-10-23 2023-10-03 Sophos Limited File integrity monitoring
CN114637560A (zh) * 2020-12-16 2022-06-17 伊姆西Ip控股有限责任公司 设备管理方法、电子设备和计算机程序产品
US11960625B2 (en) * 2021-05-06 2024-04-16 Jpmorgan Chase Bank, N.A. Systems and methods for protecting sensitive data in user online activities
US20230015123A1 (en) * 2021-07-15 2023-01-19 Jpmorgan Chase Bank, N.A. Systems and methods for personally identifiable information metadata governance

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7942328B2 (en) * 2000-01-03 2011-05-17 Roelesis Wireless Llc Method for data interchange
US7660902B2 (en) * 2000-11-20 2010-02-09 Rsa Security, Inc. Dynamic file access control and management
US7523316B2 (en) * 2003-12-08 2009-04-21 International Business Machines Corporation Method and system for managing the display of sensitive content in non-trusted environments
US7752215B2 (en) * 2005-10-07 2010-07-06 International Business Machines Corporation System and method for protecting sensitive data
US7716240B2 (en) * 2005-12-29 2010-05-11 Nextlabs, Inc. Techniques and system to deploy policies intelligently
US8181260B2 (en) 2007-08-15 2012-05-15 International Business Machines Corporation Tracking the origins of data and controlling data transmission
GB2458568B (en) 2008-03-27 2012-09-19 Covertix Ltd System and method for dynamically enforcing security policies on electronic files
US8286255B2 (en) 2008-08-07 2012-10-09 Sophos Plc Computer file control through file tagging
CA2838763C (en) * 2011-06-10 2019-03-05 Securekey Technologies Inc. Credential authentication methods and systems
CN102968600B (zh) 2012-10-30 2017-02-15 国网电力科学研究院 一种基于指纹信息植入的敏感数据文件的全生命周期管理方法
US9246893B2 (en) 2013-03-15 2016-01-26 Oracle International Corporation Intra-computer protected communications between applications
US9800582B2 (en) 2013-06-04 2017-10-24 Edmond Scientific Company Method and apparatus generating and applying security labels to sensitive data
US10185584B2 (en) 2013-08-20 2019-01-22 Teleputers, Llc System and method for self-protecting data
US9177174B1 (en) * 2014-02-06 2015-11-03 Google Inc. Systems and methods for protecting sensitive data in communications
US9892269B2 (en) 2015-06-11 2018-02-13 Qualcomm Incorporated Techniques for data monitoring to mitigate transitive problem in object-oriented contexts

Also Published As

Publication number Publication date
EP3308318A1 (en) 2018-04-18
CN107667376A (zh) 2018-02-06
US20160364573A1 (en) 2016-12-15
US20170134390A1 (en) 2017-05-11
WO2016200481A1 (en) 2016-12-15
JP2018523208A (ja) 2018-08-16
US9892269B2 (en) 2018-02-13
BR112017026590A2 (pt) 2018-08-14

Similar Documents

Publication Publication Date Title
US9892269B2 (en) Techniques for data monitoring to mitigate transitive problem in object-oriented contexts
US10657277B2 (en) Behavioral-based control of access to encrypted content by a process
CN109416720B (zh) 跨重置维护操作系统秘密
US11811907B2 (en) Data processing permits system with keys
WO2006075889A1 (en) Method and portable storage device for allocating secure area in insecure area
CN103763313A (zh) 一种文档保护方法和系统
KR20220116136A (ko) 하드웨어 보안 모듈을 이용한 IoT(Internet of Thing) 보안 서비스 제공 시스템 및 방법
CA3083722C (en) Re-encrypting data on a hash chain
US9594605B2 (en) Client-server version control system for software applications
WO2016206393A1 (zh) 管理应用的方法和装置、实现读写操作的方法和装置
US20190356691A1 (en) Historic data breach detection
US20150006580A1 (en) Controlling access to one or more datasets of an operating system in use
US20100088770A1 (en) Device and method for disjointed computing
CN110352411B (zh) 用于控制对安全计算资源的访问的方法和装置
KR20180040178A (ko) 하드디스크나 ssd 기반의 worm 저장장치에서 실시간으로 위변조를 방지하는 데이터 기록 방법
KR102338774B1 (ko) 스토리지 운영체제의 커널 수준에서 파일 내용 읽기 및 쓰기를 방지하여 데이터 유출 및 훼손을 방지하는 데이터 보호 방법
US11611570B2 (en) Attack signature generation
US11354441B2 (en) Securing data across execution contexts
CN117436079B (zh) 一种Linux系统的完整性保护方法及系统
KR20140119422A (ko) 데이터 보안장치, 이를 구비하는 단말기 및 데이터 보안 방법과 컴퓨터로 읽을 수 있는 기록매체
US20220092193A1 (en) Encrypted file control
Kim et al. Self‐Controllable Mobile App Protection Scheme Based on Binary Code Splitting
KR101583212B1 (ko) 스마트 카드 애플리케이션 간 보안 통신 방법
Cho et al. Potential privacy vulnerabilities in android data sharing between applications