KR102281028B1 - 애플리케이션에 의한 특정 정보의 전송 검증 기법 - Google Patents

애플리케이션에 의한 특정 정보의 전송 검증 기법 Download PDF

Info

Publication number
KR102281028B1
KR102281028B1 KR1020167005923A KR20167005923A KR102281028B1 KR 102281028 B1 KR102281028 B1 KR 102281028B1 KR 1020167005923 A KR1020167005923 A KR 1020167005923A KR 20167005923 A KR20167005923 A KR 20167005923A KR 102281028 B1 KR102281028 B1 KR 102281028B1
Authority
KR
South Korea
Prior art keywords
application
information
computing device
request
user
Prior art date
Application number
KR1020167005923A
Other languages
English (en)
Other versions
KR20160048811A (ko
Inventor
데이브 크리스티안센
베단 테트라울트 캔트렐
미셸 알 브루노
Original Assignee
마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 filed Critical 마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Publication of KR20160048811A publication Critical patent/KR20160048811A/ko
Application granted granted Critical
Publication of KR102281028B1 publication Critical patent/KR102281028B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • 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/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/031Protect user input by software means

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Quality & Reliability (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 기술은 애플리케이션이 외부 컴퓨팅 장치에 전송하는 어떤 정보를 테스트하는 방법을 포함한다. 애플리케이션이 민감 정보와 같은 특정 유형의 정보를 전송하기 전에 사용자의 동의가 명시적으로 얻어진다. 애플리케이션이 민감 정보를 전송하고 있다는 판정이 이루어지는 경우에는, 정확하고 상세한, 사용자로부터의 동의 요청이 제공될 수 있다. 사전 제작 환경에 있어서, 본 기술은 이 민감 정보가 전송되고 있는지의 여부를 검출하고, 동의에 대한 요청이 필요한지 또는 불필요한지의 여부를 입증하는데 이용될 수 있다. 이것을 판정하기 위해, 민감 정보를 반환하는 API에 대한 애플리케이션 호출을 인터셉트하기 위해 시밍(shimming)이 이용된다. 요청된 민감 정보는 기록 또는 위조된 API들로부터의 정보로 대체되어서 센티넬(sentinel) 또는 커네리(canary)를 생성할 수 있다. 유사하게, 대체 정보가 존재하는 시기를 판정하기 위해 다른 심(shim)에 의해 애플리케이션의 네트워크 트래픽이 분석될 수 있다.

Description

애플리케이션에 의한 특정 정보의 전송 검증 기법{VERIFICATION THAT PARTICULAR INFORMATION IS TRANSFERRED BY AN APPLICATION}
컴퓨팅 장치는 사용자가 다른 사용자들에게 유포되는 것을 의도하지 않을 수 있는 정보를 사용자에게서 취득할 수 있다. 사용자는 이러한 정보가 다른 사용자들에게 유포되는 것을 허용할지에 대하여 선택할 수 있다. 컴퓨팅 장치는 사용자의 선택에 기초하여 그 정보를 차후에 유포할 수 있다. 그러나, 이와 같은 선택에 대한 문의(query)는 종종 사용자의 경험을 중단 및/또는 방해할 뿐만 아니라 필요치 않을 수도 있다.
대안으로서, 사용자의 경험 전에 또는 그 동안에, 어떻게 이 정보가 유포되거나 또는 유포되지 않을 수 있는지를 나타내는 법적 공지가 포스팅될 수 있다. 그러나, 이러한 법적 공지 포스팅은 사용자의 경험을 중단 및 방해할 수 있을 뿐만 아니라 사용자가 정보에 근거한 결정을 내림에 있어서 중요하거나 또는 이해할 수 있는 정보를 법적 공지 내에 제공하지 못할 수도 있다.
컴퓨팅 장치의 애플리케이션은 컴퓨팅 장치 제조자에 의해 기입 또는 코딩되지 않는 것이 일반적이다. 결국, 컴퓨팅 장치 제조자는 애플리케이션이 요청된 정보로 무엇을 행하는지에 대해서는 알지 못한다. 애플리케이션이 네트워크를 통해 통신하고 있음을 컴퓨팅 장치 제조자가 알고 있는 경우에도, 컴퓨터 제조자는 네트워크를 통해 어떤 정보가 전송되고 있는지를 알지 못한다.
본 기술은 애플리케이션이 특정 정보를 외부 컴퓨팅 장치에 전송하는지의 여부를 테스트하는 방법을 포함한다. 애플리케이션이 특정 정보를 외부 컴퓨팅 장치에 전송하고 있지 않음을 검증(또는 증명)하는 것은 이러한 정보를 전송하기 위해 사용자에게 동의를 요구하기 위한 인터럽션(interruption)을 줄이는데, 이는 이 검증이 아무런 전송도 발생하지 않음을 나타내기 때문이다. 사용자에 대한 동의 요청이 적을수록 사용자의 경험이 향상될 수 있다. 애플리케이션이 특정 정보를 전송하고 있다는 판정이 이루어지면, 어떤 특정 정보가 전송될 수 있는지 및 어디로 전송되는지에 대하여 정확하고 상세한, 사용자로부터의 동의 요청(prompt for consent)이 제공될 수 있다. 일 실시예에서, 사용자는, 임의의 전송이 발생하기 전에, 컴퓨팅 장치에서 비디오 신호와 같은 민감 정보의 전송에 대해 동의할 것이다. 일 실시예에서, 민감 정보는 사용자의 비디오 클립일 수도 있고, 또는 어드레스 정보 또는 전화 번호와 같은 개인 식별 정보, 또는 유포되는 것을 사용자가 의도하지 않는 다른 정보를 내포하는 메타데이터일 수도 있다.
게임과 같은 애플리케이션이 컴퓨팅 장치에 로딩되면, 애플리케이션이 외부 컴퓨팅 장치와 통신 또는 접속할 것인지의 여부를 판정하기 위해 네트워크 보안 인증 리스트(Network Security Authorization list(NSAL))가 애플리케이션으로부터 판독된다. NSAL은 컴퓨팅 장치 상에서의 실행시에 애플리케이션이 통신할 수 있는 허가된 네트워크 어드레스를 포함할 수 있다. NSAL이 임의의 네트워크 어드레스를 포함하지 않을 경우에는, 애플리케이션이 민감 정보를 외부로 전송할 능력을 갖고 있지 않기 때문에, 이에 관한 허가를 사용자로부터 취득할 필요가 없다. NSAL에 의하더라도, 애플리케이션은 민감 정보가 외부 컴퓨터에 전송되지 않음이 테스트 또는 검증될 수 있다. 또한, 컴퓨팅 장치가 접속성(connectivity)을 갖고 있다고 NSAL이 나타내는 경우에는, 어떤 특정 민감 정보가 전송되는지 및 어떤 네트워크 어드레스로 전송되는지에 대한 검증이 이루어질 수 있다.
애플리케이션이 테스트되는 경우 및/또는 검증(또는 증명) 프로세스 중에 있는 경우에는, 비디오 신호와 같은 정보를 반환하는 애플리케이션 프로그래밍 인터페이스(APIs)에 대한 애플리케이션 호출을 인터셉트하기 위해 시밍(shimming)이 이용된다. 실시예들에 있어서, 심(shim) 또는 시밍이란, API를 투명하게(transparently) 인터셉트해서, 전달된 파라미터들을 바꾸거나, 동작 자체를 취급하거나, 또는 컴퓨팅 동작을 다른 위치로 재지향시키는 소규모 라이브러리를 의미한다. 일 실시예에 있어서, 애플리케이션 검증기가 사용될 수도 있다. 요청된 민감 정보는 기록 또는 위조된 API들로부터의 정보로 치환 또는 대체되어서 센티넬(sentinel) 또는 커네리(canary)를 생성할 수 있다. 예컨대, 애플리케이션이 "GetUserID" API를 호출하는 경우, 애플리케이션은 통상적으로 "DavidChr"과 같은 사용자 ID를 수신할 것이다. 시밍을 이용하면, "XYZZY"와 같은 대체 정보가 애플리케이션에 대신 반환될 수 있다. 대안으로서, 애플리케이션은 컴퓨팅 장치에 있는 카메라로부터 사용자의 모습을 요청할 수 있다. 사용자의 모습을 대신하여, 요청하는 애플리케이션에 커피 사진이 제공될 수 있다.
테스트 및/또는 검증 동안, 일 실시예에 있어서 커네리/센티넬이 존재하는 시기를 판정하기 위해 다른 심에 의해 애플리케이션의 네트워크 트래픽이 분석될 수 있다. 커네리/센티넬이 존재하는 경우, API(및 API에 전달된 소켓/핸들)는 커네리가 전송된 네트워크 어드레스를 식별한다.
허위 기록된 정보(센티넬 캡처) 또는 위조된 정보(커네리 위조)가 대체 민감 정보에 이용되는지의 여부는 API 및 애플리케이션에 의존한다. 일부 애플리케이션은 민감 정보를 파싱(parse)할 수 있다. 예컨대, 전자 인터랙티브 게임과 같은 애플리케이션(게임)은 카메라로부터 반환된 비디오 신호에 대한 화상 처리를 수행해서 자신의 스켈레털 트랙킹(skeletal tracking)을 행할 수 있다. 일 실시예에 있어서, 비디오 신호를 제공하게 되면 게임의 정상 구동이 허용될 것이기 때문에, 비디오 신호와 같은 허위 기록된 정보는 트래픽에서 기록 및 검색되어야 할 수도 있다.
실시예들에 있어서, 허위 기록된 정보(예컨대, 트래픽에서 용이하게 검색될 수 있는 움직이지 않는 객체의 비디오)가 제공될 수 있다. 일 실시예에 있어서, 심은 애플리케이션이 누출되고 있는지의 여부 및 장소를 실시간으로 검출할 수 있다. 이로 인해, 애플리케이션에 대한 진단이 수행된다. 예컨대, 분석을 위해 애플리케이션 개발자에게 크래시 덤프(crash dump)가 생성되어 송신될 수 있다.
애플리케이션을 테스트하는 방법은 애플리케이션으로부터 정보에 대한 요청을 수신하는 단계를 포함한다. 대체 정보가 애플리케이션에 정보로서 제공된다. 애플리케이션 정보를 외부 컴퓨팅 장치에 출력하라는 애플리케이션으로부터의 요청이 수신된다. 애플리케이션 정보는 대체 정보가 애플리케이션 정보에 포함되어 있는지의 여부를 판정하기 위해 검사된다. 애플리케이션 정보는 외부 컴퓨팅 장치에 출력된다.
장치 실시예는 프로세서 판독가능 명령어 및 네트워크 어드레스를 갖는 애플리케이션을 컴퓨팅 장치에 저장하기 위해 비디오 신호를 취득하기 위한 적어도 하나의 카메라, 적어도 하나의 프로세서 및 적어도 하나의 프로세서 판독가능 메모리를 포함한다. 또한, 적어도 하나의 프로세서 판독가능 메모리는 애플리케이션이 비디오 신호의 적어도 일부를 네트워크 어드레스에 있는 외부 컴퓨팅 장치에 전송하는 것을 허용할 수 있는 운영 체제를 저장할 수도 있다. 프로세서는 애플리케이션으로부터의 비디오 신호에 대한 요청을 운영 체제에 의해 수신하기 위해 애플리케이션 및 운영 체제의 프로세서 판독가능 명령어를 실행한다. 운영 체제는 대체 비디오 신호를 애플리케이션에 제공한다. 또한, 애플리케이션 정보를 외부 컴퓨팅 장치에 출력하기 위한 애플리케이션으로부터의 요청도 운영 체제에 의해 수신된다. 운영 체제는 대체 비디오 신호가 애플리케이션 정보에 포함되는지의 여부를 판정하기 위해 애플리케이션 정보를 검사한다. 운영 체제는 애플리케이션 정보를 외부 컴퓨팅 장치에 출력한다.
다른 실시예에 있어서, 하나 이상의 프로세서 판독가능 메모리는 실행시에 하나 이상의 프로세서로 하여금 방법을 수행하게 하는 명령어를 포함한다. 방법은 애플리케이션으로부터 정보 및 정보의 요청을 수신하는 단계를 포함한다. 정보는 대체 정보로 치환된다. 대체 정보는 애플리케이션에 정보로서 제공된다. 애플리케이션 정보를 네트워크 어드레스에 있는 컴퓨팅 장치에 출력하기 위한 애플리케이션으로부터의 요청이 수신된다. 애플리케이션 정보는 대체 정보가 애플리케이션 정보에 포함되는지의 여부를 판정하기 위해 검색된다. 애플리케이션 정보는 네트워크 어드레스에 있는 외부 컴퓨팅 장치에 출력된다.
본 개요는 후속하여 발명의 상세한 설명 부분에서 설명되는 개념들 중 선택된 것들을 단순화된 형태로 소개하고자 제공되는 것이다. 본 개요는 청구항의 청구대상의 핵심적인 특징이나 필수적인 특징들을 밝히고자 함이 아니며, 청구항의 청구대상의 범위를 결정하는 데 도움이 되고자 함도 아니다.
도 1은 예시적인 시스템 아키텍처의 고수준 블록도이다.
도 2는 예시적인 소프트웨어 아키텍처의 고수준 블록도이다.
도 3은 예시적인 운영 체제에 있어서의 예시적인 네트워크 관리 및 사용자 인터페이스 소프트웨어와 애플리케이션의 고수준 블록도이다.
도 4는 애플리케이션을 테스트하기 위한 예시적인 방법의 흐름도이다.
도 5a는 애플리케이션이 비디오 신호와 같은 정보를 외부 컴퓨팅 장치에 출력하는지의 여부를 판정하기 위한 예시적인 방법의 흐름도이다.
도 5b는 애플리케이션이 정보를 외부 컴퓨팅 장치에 출력할 때 동의의 표시를 취득하기 위한 예시적인 방법의 흐름도이다.
도 6은 예시적인 게이밍 및 매체 시스템의 등각도이다.
도 7은 도 6에 도시된 게이밍 및 매체 시스템의 컴포넌트들의 예시적인 기능 블록도이다.
도 8은 예시적인 컴퓨팅 장치이다.
본 기술은 애플리케이션이 특정 정보를 외부 컴퓨팅 장치에 전송하는지의 여부를 테스트하는 방법을 포함한다. 애플리케이션이 특정 정보를 외부 컴퓨팅 장치에 전송하고 있지 않음을 검증(또는 증명)하는 것은 이러한 정보를 전송하기 위해 사용자에게 동의를 요구하기 위한 인터럽션(interruption)을 줄이는데, 이는 이 검증이 아무런 전송도 발생하지 않음을 나타내기 때문이다. 사용자에 대한 동의 요청이 적을수록 사용자의 경험이 향상될 수 있다. 애플리케이션이 특정 정보를 전송하고 있다는 판정이 이루어지면, 어떤 특정 정보가 전송될 수 있는지 및 어디로 전송되는지에 대하여 정확하고 상세한, 사용자로부터의 동의 요청이 제공될 수 있다.
시밍은 민감 정보를 반환하는 API에 대한 애플리케이션 호출을 인터셉트하는데 사용된다. 요청된 민감 정보는, 허위 기록된 정보 또는 위조된 정보와 같은, API들로부터의 대체 정보로 치환되어서 센티넬 또는 커네리를 생성할 수 있다. 유사하게, 애플리케이션의 네트워크 트래픽은 애플리케이션의 아웃고잉 트래픽에서 대체 정보가 존재하는 시기를 판정하기 위해 다른 심에 의해 분석될 수 있다. 대체 정보가 존재하면, API는 대체 정보를 포함하는 애플리케이션 정보를 보내려고 하는 위치를 식별한다.
시밍을 이용함으로써, 네트워크 트래픽은 민감 정보를 찾기 어렵게 만드는 가능한 암호화 전에 분석될 수 있다. 예컨대, 애플리케이션은 외부 컴퓨팅 장치와의 통신을 위해 HTTPS(Hypertext Transfer Protocol Secure)를 이용할 수 있다. 실시예들은 정보를 암호화하기 위해 SSL/TLS(Secure Sockets Layer Transport Layer Security)를 요청하는 API들을 인터셉트함으로써 이를 회피한다.
컴퓨팅 장치는 애플리케이션이 요청할 수 있는 가용 민감 정보를 저장 또는 구비할 수 있다. 예컨대, 콘솔 내의 카메라로부터의 라이브 비디오 신호가 애플리케이션에 의해 요청된 민감 정보일 수 있다. 게임과 같은 애플리케이션은 비디오 신호에서의 사용자의 얼굴을 게임 내의 캐릭터에게 겹치는 것과 같은 처리를 위해 비디오 신호를 외부 컴퓨팅 장치에 전송하기를 바랄 수 있다.
게임이 민감 정보를 사용자의 의도와 달리 외부 컴퓨팅 장치에 전송할 수 있기 때문에, 콘솔은 민감 정보를 게임에 이용 가능하게 만들기 전에 사용자의 동의를 요청할 수 있다. 그러나, 사용자는 그것이 게임플레이의 "재미(fun)"의 측면을 방해하기 때문에 민감 정보를 전송하는 것에 대한 동의를 선택해야 하는 것을 원치 않을 수 있다.
본 기술은 (민감 정보를 외부 컴퓨팅 장치에 전송하는) 애플리케이션 "콜링 홈(calling home)"에 대한 위험을 피하면서 사용자의 동의 없이 민감 정보를 애플리케이션에 제공한다. NSAL을 이용하면, 컴퓨팅 장치는 민감 정보를 외부 컴퓨팅 장치에 전송하는 능력을 갖고 있지 않은 애플리케이션들의 부류를 식별할 수 있다. NSAL은 운영 체제에 의해 액세스될 수 있는 애플리케이션에 저장된 외부 컴퓨팅 장치에 대한 하나 이상의 네트워크 어드레스를 포함할 수 있다. NSAL은 일 실시예에 있어서 컴퓨팅 장치 개발자와 애플리케이션 개발자 사이의 약정된 리스트 또는 복수의 네트워크 어드레스이다. 네트워크 어드레스를 전혀 포함하지 않을 수 있는 NSAL을 갖는 애플리케이션들이 신뢰받을 수 있으며, 이는 민감 정보를 애플리케이션에 노출시키기를 바라는 컴퓨팅 장치에 이용 편의성을 제공할 수 있다. 많은 애플리케이션이 멀티플레이어 게이밍 또는 광고를 포함하지 않을 수 있으며, 이들 애플리케이션은 외부 컴퓨팅 장치에의 액세스를 필요로 하지 않는다.
일반적으로, 애플리케이션이 로딩되면, 컴퓨팅 장치는 애플리케이션이 외부 세계와의 어떤 접속성을 갖고 있는지를 판정하기 위해 NSAL을 판독한다. NSAL이 비어 있으면(즉, 접속성이 없으면), 애플리케이션이 사용자의 민감 정보를 나머지 세계에 통신할 수 없을 것이고, 또한 동의를 얻느라 사용자를 방해할 필요가 없기 때문에, 애플리케이션은 안전하다고 여겨질 수 있다. NSAL이 비어 있는 경우 또는 네트워크 어드레스를 포함하는 경우에도, 컴퓨팅 장치 제조자는 특정 민감 정보가 특정 애플리케이션에 의해 외부 컴퓨팅 장치에 전송되고 있는 상태인지 아닌지를 검증 또는 증명하기 위해 애플리케이션을 테스트하는 것이 필요할 수 있다.
도 1은 컴퓨팅 장치(107)에서 저장 및 실행되는 애플리케이션(107a)이 민감 정보(103)를 컴퓨팅 장치(101)와 같은 외부 컴퓨팅 장치에 전송하는지의 여부를 테스트하는 시스템 또는 장치(100)의 고주순 블록도이다. 일 실시예에 있어서, 테스트는 애플리케이션(107a)의 증명 또는 검증 프로세스 동안 수행될 수 있다. 일 실시예에 있어서, 컴퓨팅 장치(107)는 애플리케이션(107)을 테스트하는데 사용된 테스트 장비에 포함된다. 이 실시예에 있어서, 네트워크(105), 컴퓨팅 장치(101) 및/또는 컴퓨팅 장치(110)는 포함되지 않을 수도 있다.
대안으로서, 민감 정보(103)가 컴퓨팅 장치(101)에 전송되기 전에, 콘솔과 같은 컴퓨팅 장치(107)에서 애플리케이션(107a)의 실행 동안 테스트가 수행될 수 있다. 이 실시예에 있어서, 테스트가 애플리케이션(107a)이 민감 정보(103)를 전송하려고 한다고 지시한 후에 정보를 전송하기 위한 사용자로부터의 동의의 표시가 취득되지 않는 한 민감 정보(103)는 전송되지 않는다. 일 실시예에 있어서, 컴퓨팅 장치(107)는 본 명세서에 기술되는 바와 같이, 컴퓨팅 장치(107)의 메모리에 저장되는 애플리케이션(107a)(NSAL(112)을 포함), 동의(107b), 대체(107c) 및 네트워크 검사기(107d)와 같은 소프트웨어 컴포넌트를 포함한다.
또한, 컴퓨팅 장치(107)의 메모리에는 민감 정보(103)도 디지털 정보로서 저장된다. 대안적인 실시예에 있어서, 컴퓨팅 장치(107)의 전원이 켜질 때 카메라(111)로부터의 비디오 신호와 같은 민감 정보(103)가 컴퓨팅 장치(107)의 동작 중에 이용 가능할 수 있다. 일 실시예에 있어서, 민감 정보(103)는 하나 이상의 사용자의 모습 또는 비디오일 수 있다. 다른 실시예에 있어서, 민감 정보는 사용자의 비디오 클립일 수 있거나, 또는 어드레스 정보 또는 전화 번호와 같은 개인 식별 정보, 또는 컴퓨팅 장치(107)로부터 유포되는 것을 사용자가 의도하지 않는 다른 정보를, 단독으로 또는 조합하여 내포하는 메타데이터일 수 있다. 예컨대, 민감 정보(103)는 컴퓨팅 장치(107) 내의 카메라(111)로부터의 비디오 신호일 수 있다. 비디오 신호는 컴퓨팅 장치(107)에서 게임(애플리케이션(107a))을 플레이하고 있는 사용자의 비디오와 같은 하나 이상의 사용자의 장면 또는 모습을 포함할 수 있다.
일 실시예에 있어서, 민감 정보(103)는 사용자로부터의 명확한 동의 없이는 사용자로부터 취득되지 않는다. 민감 정보(103)는 사용자가 볼 수 있으며, 사용자에 의해 편집될 수도 있다. 일 실시예에 있어서, 민감 정보(103)는 메모리에 암호화된 버전의 민감 정보(103)를 저장하고 또한 패스워드에 의한 민감 정보에의 액세스를 허용함으로써 보호될 수도 있다.
일 실시예에 있어서, 컴퓨팅 장치(107)는 본 명세서에 기재된 바와 같이, 원격지에 놓인 컴퓨팅 장치(101)와 네트워크를 통해 통신한다. 컴퓨팅 장치(101)는 일 실시예에 있어서, 컴퓨팅 장치(107)의 외부 장치로 고려된다. 일 실시예에 있어서, 애플리케이션(107a)은 서비스를 제공할 수 있는 컴퓨팅 장치(101)에 민감 정보(103)를 전송하기를 바랄 수 있다. 애플리케이션(107a)은 애플리케이션 서버(101a)로부터의 서비스를 위해 비디오 신호(또는 비디오의 프레임)를 컴퓨팅 장치(101)에 전송하기를 바라는 게임일 수 있다. 예컨대, 애플리케이션 서버(101a)는 비디오 신호에 있어서의 사용자의 얼굴을 게임 내의 캐릭터에게 겹치는 등의 그래픽 중첩 서비스 또는 기능을 제공할 수 있다.
일 실시예에 있어서, 컴퓨팅 장치(107)는, 또한 애플리케이션(107a)이 컴퓨팅 장치(101)와 같은 외부 컴퓨팅 장치에 민감 정보(103)를 전송하는 것을 허용하는 사용자에 의한 동의의 표시에 응답하여 민감 정보(103)를 컴퓨팅 장치(101)에 제공한다. 사용자가 쿼리에 응답하여 동의를 컴퓨팅 장치(107)에 명확하게 통신하는 경우에는, 그 동의의 표시는 컴퓨팅 장치(108) 내의 메모리의 어드레스에 디지털 값으로서 저장될 수 있다.
일 실시예에 있어서, 컴퓨팅 장치(101)는 서버 소프트웨어 컴포넌트를 갖는 서버일 수 있으며, 컴퓨팅 장치(107)는 컴퓨팅 장치(101)의 클라이언트일 수 있다. 다른 실시예에 있어서, 컴퓨팅 장치(110) 및 컴퓨팅 장치(107)는 피어(peer)이다. 컴퓨팅 장치들(101, 107 및 110)의 피어-투-피어(P2P) 실시예에 있어서, 각각의 컴퓨팅 장치는 클라이언트로서 기능하거나, 또는 다른 장치의 서버로서 기능할 수 있다.
컴퓨팅 장치들(101 및 107)은 본 명세서에 기재된 바와 같이 네트워크(105)를 통해 통신할 수 있다. 다른 실시예에 있어서, 컴퓨팅 장치(110)는 네트워크(105)를 통해 컴퓨팅 장치들(101 및 107)과 통신한다. 일 실시예에 있어서, 네트워크(105)는 인터넷(Internet), WAN(Wide Area Network) 또는 LAN(Local Area Network)의, 단독 또는 조합일 수 있다. 실시예들에 있어서, 컴퓨팅 장치들(101, 107 및/또는 110)은 정보를 전송하기 위해 TCP/IP(Transmission Control Protocol/Internet Protocol)와 같은 하나 이상의 프로토콜을 이용한다. 실시예들에 있어서, 컴퓨팅 장치(107)는 다른 네트워크에 포함된다. 정보는 네트워크(105)에서 유선에 의해 및/또는 무선으로 전송될 수 있다.
대안적인 실시예들에 있어서, 장치(100)는 정보를 제공 및 수신하기 위해 보다 많거나 적은 다수의 컴퓨팅 장치 및/또는 서버를 포함한다. 실시예들에 있어서, 컴퓨팅 장치(101), 컴퓨팅 장치(110) 및/또는 컴퓨팅 장치(107)는 도 8에 도시되고 본 명세서에 기재된 바와 같은 예시적인 하드웨어 컴포넌트를 갖는 컴퓨팅 장치(1800)에 대응한다.
일 실시예에 있어서, 컴퓨팅 장치(107)는 본 명세서에 기재되고 또한 도 6 및 도 7에 도시된 바와 같은 콘솔에 포함된다. 대안적인 실시예에 있어서, 컴퓨팅 장치(101) 및/또는 컴퓨팅 장치(107)는 도 8에 나타내지며, 또한 본 명세서에 기재된 바와 같은 컴퓨팅 장치이다. 대안적인 실시예들에 있어서, 컴퓨팅 장치(107)는 적어도 셀 폰, 모바일 장치, 내장형 시스템, 랩톱 컴퓨터, 데스크톱 컴퓨터, 서버 및/또는 데이터센터에 포함될 수 있다. 일 실시예에 있어서, 컴퓨팅 장치(101)는 서버 및/또는 데이터센터이다.
실시예들에 있어서, 컴퓨팅 장치들(101, 107 및 110)은 본 명세서에 기재된 바와 같이 디지털 정보를 저장하기 위한 하나 이상의 프로세서 판독가능 메모리 및/또는 프로세서 판독가능 명령어를 갖는 소프트웨어 컴포넌트를 포함한다. 실시예들에 있어서, 컴퓨팅 장치들(101, 107 및 110)은 프로세서 판독가능 명령어를 실행 또는 판독하고 디지털 정보를 판독하는 하나 이상의 프로세서를 포함한다.
도 2는 애플리케이션들(211-213)과 같은 애플리케이션이 민감 정보(103)를 전송하는지의 여부를 테스트하는 예시적인 소프트웨어 아키텍처(200)의 고수준 블록도이다. 실시예들에 있어서, 운영 체제(OS)(205)는 애플리케이션을 검증 또는 증명하는데 사용된 컴퓨팅 장치(107)에 포함될 수 있다. 대안적인 실시예에 있어서, OS(205)는 민감 정보가 전송되고 있는지의 여부를 판정하고 나서 민감 정보의 전송 전에 사용자의 동의를 취득하기 위해, 본 명세서에 기재된 콘솔과 같은 컴퓨팅 장치에서 사용될 수 있다. OS(205)는 애플리케이션이 민감 정보(103)를 외부 컴퓨팅 장치에 전송하고 있는지의 여부를 테스트하기 위해 동의(107b), 대체(107c) 및 네트워크 검사기(107d)를 포함한다.
일 실시예에 있어서, 네트워크 관리(208)는 애플리케이션(212)이 민감 정보(103)를 수신할 수 있는지의 여부를 판정하기 위해 애플리케이션(212)의 NSAL(112)을 판독한다.
대체(107c)는 도 2 및 도 3에 도시된 바와 같이 애플리케이션(212)으로부터의 요청된 민감 정보를 대체 정보(310)로 치환한다.
이후, 네트워크 검사기(107d)는 대체 정보(310)를 위해 외부 컴퓨팅 장치로 전송될 애플리케이션 정보를 검사 또는 검색한다. 대체 정보(310)가 발견되면, 전송이 발생할 수 있기 전에 민감 정보(103) 전송에 대한 사용자의 동의가 얻어진다.
일 실시예에 있어서, UI(206)에서의 동의(107b)는 애플리케이션(212)으로부터 외부 컴퓨팅 장치로의 민감 정보(103)의 전송에 대한 사용자의 동의의 표시(디지털 값)를 취득 및 저장한다. 실시예들에 있어서, 동의의 표시는 애플리케이션(212)으로부터의 민감 정보(103) 전송에 대한 동의 또는 애플리케이션(212)으로부터의 민감 정보(103) 전송에 대한 동의의 거부를 포함할 수 있다. 일 실시예에 있어서, 애플리케이션들(211-213)은 하나 이상의 전자 인터랙티브 게임을 포함할 수 있다.
일 실시예에 있어서, OS(205) 및 애플리케이션들(211-213)은 하나 이상의 소프트웨어 컴포넌트를 포함한다. 일 실시예에 있어서, 소프트웨어 컴포넌트는 소프트웨어 프로그램, 소프트웨어 객체, 소프트웨어 기능, 소프트웨어 서브루틴, 소프트웨어 방법, 소프트웨어 인스턴스, 스트립트 및/또는 코드 조각을, 단독으로 또는 조합하여 포함할 수 있다. 예컨대, OS(205)는 사용자 인터페이스(UI)(206), 프로세스 관리(201), 메모리 관리(202), 입력/출력(I/O) 장치 관리(203), 파일 관리(204), 네트워크 관리(208) 및 보호(207)를 하나 이상 포함한다. 다양한 OS 소프트웨어 컴포넌트에 의해 수행될 수 있는 하나 이상의 예시적인 기능을 아래에 기재한다. 대안적인 실시예에 있어서, 아래에 기재되는 하나 이상의 소프트웨어 컴포넌트 및/또는 소프트웨어 컴포넌트의 기능이 이용될 수 있다. 대안적인 실시예에 있어서, 동의(107b), 대체(107c) 및 네트워크 검사기(107d)는 다른 소프트웨어 컴포넌트에 포함될 수 있다.
실시예들에 있어서, OS(205)의 적어도 일부는 하나 이상의 프로세서 판독가능 메모리에 저장된다. 일 실시예에 있어서, OS(205)의 적어도 일부는 도 1에 도시된 컴퓨팅 장치(107)의 프로세서 판독가능 메모리에 저장된다.
프로세스 관리(201)는 사용자 및 시스템 프로세스의 생성 및 삭제를 담당한다. 프로세스 관리(201)는 프로세스의 정지 및 재개를 담당할 수도 있다. 프로세스 관리(201)는 프로세스의 동기화 및 통신을 담당할 수도 있다. 프로세스 관리(201)는 교착상태 취급을 담당할 수도 있다. 일 실시예에 있어서, 대체(107c)는 프로세스 관리(201)에 포함된다. 본 명세서에 기재된 바와 같이, 대체(107c)는 다른 소프트웨어 컴포넌트에 포함될 수도 있다.
메모리 관리(202)는 상이한 유형들의 메모리의 메모리 부분을 현재 특정 소프트웨어 컴포넌트 또는 애플리케이션에 의해 사용하고 있는 트랙을 유지하는 것을 담당한다. 메모리 관리(202)는, 또한 메모리 공간이 이용 가능해질 때 어떤 프로세스들이 메모리에 로딩되는지를 결정한다. 메모리 관리는, 또한 필요에 따라 메모리 공간을 할당 및 할당 해제한다.
입력/출력(I/O) 장치 관리(203)는 I/O 장치의 관리를 담당한다. 예컨대, I/O 장치 관리(203)는 비디오 신호를 제공하는 카메라(111)를 관리한다. 일 실시예에 있어서, 특정 하드웨어의 특이성은 사용자들로부터 숨겨진다. 일 실시예에 있어서, 장치 드라이버는 특정 장치의 특이성을 알고 있다. 예컨대, I/O 장치 관리(203)는 자유 공간 관리, 메모리 할당, 단편화, 제거 및 헤드 스케줄링과 같은 디스크 관리 기능을 담당할 수 있다.
파일 관리(204)는 파일 및 디렉토리의 생성 및 삭제를 담당한다. 파일 관리(204)는 계층적 파일 시스템을 지원할 수 있다. 파일 관리(204)는 파일을 보조 기억 장치에 백업할 수도 있다.
네트워크 관리(208)는 접속/경로지정 방법을 제공하는 것을 포함하는 네트워크와의 통신을 담당한다. 네트워크 관리(208)는 다른 컴퓨팅 장치에의 데이터/프로세스 이동을 담당할 수도 있다. 일 실시예에 있어서, 네트워크 관리(208)는 본 명세서에 기재된 바와 같이, 하나 이상의 외부 컴퓨팅 장치에 송신될 애플리케이션 정보를 일시적으로 저장하는 트래픽 버퍼를 검사 또는 검색하는 네트워크 검사기(107d)를 포함한다.
보호(207)는 컴퓨팅 장치의 리소스에 대한 소프트웨어 컴포넌트, 프로세스, 및/또는 사용자의 액세스를 제어하는 것을 담당한다. 예컨대, 보호(207)는 중앙 처리 유닛(CPU), 사이클, 메모리, 파일, 및/또는 I/O 장치와 같은 리소스에 대한 액세스의 제어를 담당한다. 보호(207)는 사용자 인증 및 통신도 담당한다.
사용자 인터페이스(UI)(206)는 스피치, 자연 언어, 문자 및/또는 그래픽 사용자 인터페이스를 사용자에게 제공하고, 입력을 수신해서 사용자에게 출력을 제공하는 것을 담당한다. 일 실시예에 있어서, UI(206)는 사용자로부터의 동의의 표시를 취득하고 컴퓨팅 장치(107)에 있는 메모리의 어드레스에 디지털 값으로서 저장하는 것을 담당하는 동의(107b)를 포함한다.
도 6 및 도 7에 도시된 바와 같은 콘솔 실시예에 있어서, 사용자는 제스처, 터치 또는 음성으로 콘솔(1002)에 입력을 입력할 수 있다. 일 실시예에 있어서, 광학 I/O 인터페이스(1135)는 사용자의 제스처를 수신 및 해석한다. 일 실시예에 있어서, 콘솔(1002)은 사용자로부터 음성 및/또는 제스처 입력을 수신해서 해석하기 위해 사용자 인터페이스(206)로서 NUI(natural user interface)를 포함한다. 일 실시예에 있어서, 프런트 패널 서브어셈블리(1142)는 본 명세서에 상세히 기재된 바와 같이, 사용자의 동의와 같은 사용자의 터치 또는 음성을 수신해서 해석하기 위한 터치면 및 마이크로폰을 포함한다. 일 실시예에 있어서, 사용자 인터페이스(206)는 하나 이상의 사용자로부터 콘솔(1002)의 마이크로폰에 제공된 사용자로부터의 음성 동의를 해석한다. 일 실시예에 있어서, UI(206)는 사용자로부터 동의를 구하는 음성을 출력하고, 동의 또는 거부와 같은 사용자로부터의 음성 대답을 해석하는 NUI를 포함한다. 이후, 동의와 같은 음성 대답은 동의의 표시로서 메모리에 저장될 수 있다.
도 3은 예시적인 운영 체제(205)에서의 예시적인 네트워크 관리(208) 및 사용자 인터페이스(206)와 애플리케이션(212)의 고수준 블록도이다. 일 실시예에 있어서, OS(205)는 카메라 드라이버(300)로부터 사용자의 비디오 신호(301)와 같은 민감 정보에 대하여 액세스한다. 대안적인 실시예에 있어서, OS(205)는 메모리에 디지털 정보로서 저장된 민감 정보에 액세스한다. OS(205)는 요청(302)에 응답하여 비디오 신호(301)와 같은 민감 정보를 애플리케이션(212)에 제공할 수 있다. 일 실시예에 있어서, 애플리케이션(212)은 제 1 API를 호출하는 것에 의해 요청하는 게임이다.
유사하게, 애플리케이션(212)은 요청 및 애플리케이션 정보(304)를 OS(205)에 제공함으로써 애플리케이션 정보를 외부 컴퓨팅 장치에 전송할 수 있다. 이후, OS(205)는 출력된 애플리케이션 정보(305)로서의 애플리케이션 정보를 애플리케이션(212)에 의해 제공된 네트워크 어드레스에 있는 외부 컴퓨팅 장치에 전송할 수 있다. 일 실시예에 있어서, 요청 및 애플리케이션 정보(304)는 외부 컴퓨팅 장치의 네트워크 어드레스와 비디오 신호(301)(민감 정보) 또는 대체 정보(310)를 포함할 수 있다. 일 실시예에 있어서, 요청 및 애플리케이션 정보(304)는 애플리케이션(212)에 의해 전송 API와 같은 제 2 API를 호출하는 것을 포함할 수 있다.
대체(107c)는, 일 실시예에 있어서 애플리케이션(212)이 테스트되고 있을 때, 비디오 신호(301)와 같은 민감 정보를 치환하는 대체 정보(310)를 포함한다. 대체 정보(310)는 본 명세서에 기재된 바와 같이, 나중에 네트워크 관리(208)에 의해 특정 네트워크 검사기(107d)에서 검색 또는 검사될 수 있는 정보를 포함할 수 있다. 일 실시예에 있어서, 대체 정보(310)는 움직이지 않는 객체의 비디오를 포함한다. 일 실시예에 있어서, 대체(107c)는 애플리케이션(212)에 의해 민감 정보를 제공하기 위해 API의 호출을 위한 심으로서 기능한다. 일 실시예에 있어서, 대체(107c)는 프로세스 관리(201)에 포함된다. 대안적인 실시예에 있어서, 대체(107c)는 I/O 장치 관리(203)에 허위 장치 드라이버로서 포함된다. 다른 실시예들에 있어서, 대체(107c)는 OS(205)에 의해 애플리케이션(212)에 제공된 시밍 가능한 DLLs(Dynamic Link Libraries)을 이용해서 애플리케이션(212)에 포함된다.
네트워크 관리(208) 내의 네트워크 검사기(107d)는, 애플리케이션(212)이 민감 정보를 외부 컴퓨팅 장치에 전송하려고 시도하고 있는지의 여부를 판정하기 위해, 대체 정보(310)에 대하여 요청 및 애플리케이션 정보(304) 내의 애플리케이션 정보를 검색 또는 검사한다. 일 실시예에 있어서, 네트워크 검사기(107d)는 대체 정보(310)에 대하여 애플리케이션 정보를 저장하는 트래픽 버퍼를 검색한다. 일 실시예에 있어서, 네트워크 검사기(107d)는 애플리케이션(212)에 의해 애플리케이션 정보를 외부 컴퓨팅 장치에 전송하기 위해 API의 호출을 위한 심으로서 기능한다.
일 실시예에 있어서, 네트워크 검사기(107d)는 애플리케이션(212)에 의해 특정 포맷으로 부호화되어 있는 비디오 데이터와 같은 민감 정보를 검색한다. 일 실시예에 있어서, 애플리케이션(212)은 대역폭 제약으로 인해 외부 컴퓨팅 장치에의 전송 전에 로(raw) 비디오 데이터와 같은 민감 정보를 부호화할 수 있다. 일 실시예에 있어서, OS(205)는 정보의 부호화를 수행하기 위해 시밍 또는 API를 애플리케이션(212)에 제공하고, 네트워크 검사기(107d)는 부호화된 정보 내의 임의의 대체 정보(310)를 관찰할 수 있다.
일 실시예에 있어서, 네트워크 검사기(107d)는 애플리케이션(212)이 대체 정보(310)를 숨기거나 또는 부호화하려 할 때 대체 정보(310)를 관찰할 수 있다.
도 4 내지 도 5b는 사용자로부터 동의를 얻지 않고도 애플리케이션이 정보를 수신할 수 있는지의 여부를 판정하는 예시적인 방법을 나타내는 흐름도이다. 실시예들에 있어서, 도 4 내지 도 5b에 도시된 스텝들은 하드웨어(예컨대, 프로세서, 메모리, 회로), 소프트웨어(예컨대, OS, 애플리케이션, 드라이버, 머신/프로세서 실행가능 명령어), 또는 사용자의 동작을, 단독으로 또는 조합하여 나타낸다. 당업자라면 이해할 수 있듯이, 실시예들은 도시된 것보다 적거나 많은 스텝들로 이루어질 수 있다.
도 4는 애플리케이션을 테스트하기 위한 예시적인 방법(400)의 흐름도이다. 일 실시예에 있어서, 방법(400)은 특정 애플리케이션의 검증 또는 증명 동안에 수행된다. 대안적인 실시예에 있어서, 방법(400)은 애플리케이션의 실행 동안 동의 요청을 제공하기 전에 수행된다. 일 실시예에 있어서, 방법(400)은 컴퓨팅 장치(107)에 의해 수행되며, 특히 도 1 내지 도 3에 도시된 바와 같이, 적어도 대체(107c) 및 네트워크 검사기(107d)가 사용된다.
스텝(401)은 애플리케이션으로부터 민감 정보와 같은 정보에 대한 요청을 수신하는 것을 나타낸다. 일 실시예에 있어서, OS(205)는 도 1 및 도 2에 도시된 바와 같이 민감 정보(103)에 대한 요청을 애플리케이션(212)으로부터 API를 통해 수신한다.
스텝(402)은 정보로서의 대체 정보를 애플리케이션에 제공하는 것을 나타낸다. 일 실시예에 있어서, 대체(107c)는 정보를 취득해서 대체 정보로 치환하고 나서, 본 명세서에 기재된 바와 같이 대체 정보를 민감 정보(103)로서 애플리케이션(212)에 반환한다.
스텝(403)은 애플리케이션 정보를 외부 컴퓨팅 장치에 출력하기 위해 애플리케이션으로부터의 요청을 수신하는 것을 나타낸다. 일 실시예에 있어서, OS(205), 및 특히 네트워크 매니저(208)는 애플리케이션(212)으로부터 요청을 수신한다.
스텝(404)은 대체 정보가 애플리케이션 정보에 포함되는지의 여부를 판정하기 위해 애플리케이션 정보를 검사하는 것을 나타낸다. 일 실시예에 있어서, 네트워크 검사기(107d)는 대체 정보에 대하여 트래픽 버퍼와 같은 버퍼를 검색함으로써 스텝(404)을 수행한다.
스텝(405)은 애플리케이션 정보를 외부 컴퓨팅 장치에 출력하는 것을 나타낸다. 일 실시예에 있어서, 네트워크 매니저(208)는 적어도 부분적으로 스텝(405)을 수행한다.
다른 실시예들에 있어서, 스텝들(401-405)은 적어도 도 1 내지 도 3 및 도 6 내지 도 8에 도시된 예시적인 소프트웨어 컴포넌트 및 하드웨어에 의해 수행된다. 예컨대, 방법(400)은 도 6 내지 도 7에 도시된 콘솔(1002)에 의해, 또는 도 8에 도시된 컴퓨팅 장치(1800)에 의해 수행될 수 있다.
도 5a는 애플리케이션이 비디오 신호와 같은 정보를 외부 컴퓨팅 장치에 출력하는지의 여부를 판정하기 위한 예시적인 방법(500)의 흐름도이다. 일 실시예에 있어서, 방법(500)은 특정 애플리케이션의 검증 또는 증명 동안 수행된다. 대안적인 실시예에 있어서, 방법(500)은 애플리케이션의 실행 동안 사용자의 동의를 얻기 전에 수행된다. 일 실시예에 있어서, 방법(500)은 컴퓨팅 장치(107)에 의해 수행되며, 특히 도 1 내지 도 3에 도시된 바와 같이, 적어도 대체(107c) 및 네트워크 검사기(107d)가 사용된다.
스텝(501)은, 운영 체제에 의해, 비디오 신호에 대한 애플리케이션으로부터의 요청을 수신하는 것을 나타낸다. 일 실시예에 있어서, 애플리케이션(212)은 도 2에 도시된 운영 체제(205)로부터 비디오 신호를 요청하기 위해 제 1 API를 이용한다.
스텝(502)은, 운영 체제에 의해, 대체 비디오 신호를 애플리케이션에 제공하는 것을 나타낸다. 일 실시예에 있어서, 대체(107c)는 요청된 비디오 신호를 움직이지 않는 객체의 비디오 신호와 같은 대체 비디오 신호로 치환하기 위해 스텝(502)을 수행한다.
스텝(503)은, 운영 체제에 의해, 애플리케이션 정보를 외부 컴퓨팅 장치에 출력하기 위해 애플리케이션으로부터의 요청을 수신하는 것을 나타낸다. 일 실시예에 있어서, 애플리케이션(212)은 도 2에 도시된 운영 체제(205)에 의해 출력 애플리케이션 정보를 요청하기 위해 제 2 API를 이용한다.
스텝(504)은, 운영 체제에 의해, 대체 비디오 신호가 애플리케이션 정보에 포함되는지의 여부를 판정하기 위해 애플리케이션 정보를 검사하는 것을 포함한다. 일 실시예에 있어서, 네트워크 검사기(107d)는 대체 비디오 신호에 대하여 트래픽 버퍼와 같은 버퍼를 검색함으로써 스텝(504)을 수행한다.
스텝(505)은, 운영 체제에 의해, 애플리케이션 정보를 외부 컴퓨팅 장치에 출력하는 것을 나타낸다. 일 실시예에 있어서, 네트워크 매니저(208)는 적어도 부분적으로 스텝(405)을 수행한다.
다른 실시예들에 있어서, 스텝들(501-505)은 적어도 도 1 내지 도 3 및 도 6 내지 도 8에 도시된 예시적인 소프트웨어 컴포넌트 및 하드웨어에 의해 수행된다. 예컨대, 방법(500)은 도 6 내지 도 7에 도시된 콘솔(1002)에 의해, 또는 도 8에 도시된 컴퓨팅 장치(1800)에 의해 수행될 수 있다.
도 5b는 애플리케이션이 정보를 외부 컴퓨팅 장치에 전송할 때 사용자의 동의를 얻기 위한 예시적인 방법(510)의 흐름도이다. 대안적인 실시예에 있어서, 방법(500)은 애플리케이션의 실행 동안 사용자의 동의를 얻기 전에 수행된다. 일 실시예에 있어서, 방법(500)은 컴퓨팅 장치(107)에 의해 수행되며, 특히 도 1 내지 도 3에 도시된 바와 같이, 적어도 대체(107c) 및 네트워크 검사기(107d)가 사용된다.
스텝(511)은 도 1에 도시되고 본 명세서에 기재된 민감 정보(103)와 같은 정보를 수신하는 것을 나타낸다. 일 실시예에 있어서, OS(205)와 같은 운영 체제는, 민감 정보를 애플리케이션(212)과 같은 요청 애플리케이션에 방출 또는 전송하기까지 민감 정보를 액세스, 수신 또는 제어한다. 일 실시예에 있어서, 카메라(111)는 도 1에 도시된 바와 같이 컴퓨팅 장치(107)에 의해 수신되는 비디오 신호를 제공한다.
스텝(512)은 애플리케이션으로부터 민감 정보에 대한 요청을 수신하는 것을 나타낸다. 일 실시예에 있어서, 애플리케이션(212)은 도 2에 도시된 운영 체제(205)로부터 민감 정보(103)를 요청하기 위해 제 1 API를 이용한다.
스텝(513)은 민감 정보를 대체 정보로 치환하는 것을 나타낸다. 일 실시예에 있어서, 대체(107c)는 본 명세서에 기재된 바와 같이 요청된 민감 정보를 대체 정보로 치환하기 위해 스텝(513)을 수행한다.
스텝(514)은 대체 정보를 민감 정보로서 애플리케이션에 제공하는 것을 나타낸다. 일 실시예에 있어서, 애플리케이션(212)은 도 2에 도시된 운영 체제(205)에 의해 출력 애플리케이션 정보를 요청하기 위해 제 2 API를 이용한다.
스텝(515)은 애플리케이션 정보를 네트워크 어드레스에 출력하기 위해 애플리케이션으로부터의 요청을 수신하는 것을 나타낸다. 일 실시예에 있어서, 애플리케이션(212)은 도 2에 도시된 운영 체제(205)에 의해 출력 애플리케이션 정보를 요청하기 위해 제 2 API를 이용한다.
스텝(516)은 대체 정보가 애플리케이션 정보에 포함되는지의 여부를 판정하기 위해 애플리케이션 정보를 검색하는 것을 나타낸다. 일 실시예에 있어서, 네트워크 검사기(107d)는 대체 정보에 대하여 트래픽 버퍼와 같은 버퍼를 검색함으로써 스텝(516)을 수행한다.
스텝(517)은 애플리케이션 정보를 출력하기 전에 동의의 표시를 취득하는 것을 나타낸다. 일 실시예에 있어서, 동의(107b)는 사용자로부터 동의의 표시를 취득한다. 일 실시예에 있어서, 애플리케이션은, 대체 정보가 사용자의 동의를 수신한 후에 이용되지 않도록 민감 정보를 다시 요청하는 한편 애플리케이션 정보의 출력을 다시 요청해서 하기 운영 체제에 의해 통지될 수 있다.
스텝(518)은 애플리케이션 정보(대체 정보 없이)를 외부 어드레스에 출력하는 것이다. 일 실시예에 있어서, 네트워크 매니저(208)는 적어도 부분적으로 스텝(518)을 수행한다.
다른 실시예들에 있어서, 스텝들(511-518)은 적어도 도 1 내지 도 3 및 도 6 내지 도 8에 도시된 예시적인 소프트웨어 컴포넌트 및 하드웨어에 의해 수행된다. 예컨대, 방법(510)은 도 6 내지 도 7에 도시된 콘솔(1002)에 의해, 또는 도 8에 도시된 컴퓨팅 장치(1800)에 의해 수행될 수 있다.
일 실시예에 있어서, 컴퓨팅 장치(107)는 비디오 게임 및/또는 매체 콘솔일 수 있지만, 이들에 한정되는 것은 아니다. 일 실시예에 있어서, 컴퓨팅 장치(107)는 민감 정보가 외부 컴퓨팅 장치에 전송되기 전에 게임과 같은 애플리케이션을 테스트한다. 민감 정보가 전송되어야 할 경우에는, 비디오 게임 및/또는 매체 콘솔로서의 컴퓨팅 장치(107)는 민감 정보가 전송되기 전에 사용자로부터 동의의 표시를 취득한다.
일 실시예에 있어서, 도 6은 예시적인 비디오 게임 및 매체 콘솔을 기술하는데 이용되거나, 또는 보다 일반적으로는, 게임 및 매체 콘솔을 포함하는 예시적인 게이밍 및 매체 시스템(1000)을 기술하는데 이용될 것이다. 도 6의 하기의 논의는 본 명세서에 제시된 개념을 구현할 수 있는 적절한 컴퓨팅 장치의 간략하고 일반적인 기재를 제공하려는 것이다. 도 6의 시스템은 단지 예시일 뿐임을 이해해야 한다. 추가적인 예시에 있어서, 본 명세서에 기재된 실시예들은, 클라이언트 컴퓨팅 장치 상에 상주하여 실행되는 브라우저 애플리케이션 또는 소프트웨어 애플리케이션을 통해, 다양한 클라이언트 컴퓨팅 장치를 이용해서 구현될 수 있다. 도 6에 도시된 바와 같이, 게이밍 및 매체 시스템(1000)은 게임 및 매체 콘솔(이하, "콘솔"이라 함)(1002)을 포함한다. 일반적으로, 콘솔(1002)은 클라이언트 컴퓨팅 장치의 한 가지 유형이다. 콘솔(1002)은 컨트롤러(10041 및 10042)로 도시된 바와 같은 하나 이상의 무선 컨트롤러를 수용하도록 구성된다. 콘솔(1002)은, 내부 하드 디스크 드라이브와, 광학 저장 디스크(1008)로 도시된 바와 같이, 다양한 형태의 휴대용 저장 매체를 지원하는 휴대용 매체 드라이브(1006)를 갖추고 있다. 적절한 휴대용 저장 매체로서는, DVD, CD-ROM, 게임 디스크 등을 예시할 수 있다. 콘솔(1002)은 또한, 착탈식 플래시-타입 메모리 유닛(1040)을 수용하기 위한 2개의 메모리 유닛 카드 리셉터클(10251, 10252)을 포함한다. 콘솔(1002) 상의 커맨드 버튼(1035)은 무선 주변장치 지원을 활성화 및 비활성화한다.
도 6에 도시된 바와 같이, 콘솔(1002)은 또한, 하나 이상의 장치와 무선으로 통신하기 위한 광학 포트(1030)와, 추가의 컨틀롤러 또는 다른 주변장치에 대한 유선 접속을 지원하기 위한 2개의 USB 포트(10101 및 10102)를 포함한다. 일부 구현예에 있어서, 추가 포트의 수 및 배치구조는 수정될 수 있다. 콘솔(1002)의 전면에는 전원 버튼(1012) 및 배출 버튼(1014)도 배치된다. 전원 버튼(1012)은 게임 콘솔에 전력을 공급하기 위해 선택되며 다른 특징부 및 제어부에의 액세스를 제공할 수도 있고, 배출 버튼(1014)은 광학 저장 디스크(1008)의 삽입 및 취출이 가능하도록 휴대용 매체 드라이브(1006)의 트레이를 개폐한다.
콘솔(1002)은 A/V 인터페이스 케이블(1020)을 통해 텔레비전 또는 다른 디스플레이(예컨대, 디스플레이(1050))에 접속한다. 일 구현예에 있어서, 콘솔(1002)은 A/V 케이블(1020)(예컨대, 고화질 디스플레이(1050) 또는 다른 디스플레이 장치 상의 "HDMI(High Definition Multimedia Interface)"에 결합하기에 적합한 A/V 케이블)을 이용해서 콘텐츠 보안된 디지털 통신을 행하도록 구성된 전용 A/V 포트를 갖추고 있다. 전원 케이블(1022)은 콘솔(1002)에 전력을 제공한다. 콘솔(1002)은 케이블 또는 모뎀 커넥터(1024)로 나타내지는 바와 같이, 인터넷과 같은 네트워크에의 액세스를 가능하게 하는 광대역 통신 능력을 더 갖출 수도 있다. 광대역 통신 능력은 Wi-Fi(wireless fidelity) 네트워크와 같은 광대역 네트워크를 통해 무선으로 제공될 수도 있다.
각각의 컨트롤러(1004)는 유선 또는 무선 인터페이스를 통해 콘솔(1002)에 연결된다. 도시된 구현예에 있어서, 컨트롤러(1004)는 USB-호환성이며, 무선 또는 USB 포트(1010)를 통해 콘솔(1002)에 연결된다. 콘솔(1002)은 임의의 다양한 사용자 인터랙션 메커니즘을 갖출 수 있다. 도 6에 도시된 예시에 있어서, 각각의 컨트롤러(1004)는 2개의 엄지손가락 스틱(10321 및 10322), D-패드(1034), 버튼(1036), 및 2개의 트리거(1038)를 갖추고 있다. 이들 컨트롤러는 단지 전형적인 예일 뿐이며, 다른 공지된 게이밍 컨트롤러가 도 6에 도시된 것들을 대체하거나 또는 더해질 수 있다.
일 실시예에 있어서, 사용자는 제스처, 터치 또는 음성으로 입력을 콘솔(1002)에 입력할 수 있다. 일 실시예에 있어서, 광학 I/O 인터페이스(1135)는 사용자의 제스처를 수신 및 해석한다. 일 실시예에 있어서, 광학 I/O 인터페이스는, 예컨대 사용자의 비디오 신호를 취득하기 위한 카메라를 포함한다. 다른 실시예에 있어서, 콘솔(1002)은 사용자로부터 음성 및 제스처 입력을 수신해서 해석하기 위한 NUI를 포함한다. 대안적인 실시예에 있어서, 프런트 패널 서브어셈블리(1142)는 사용자의 동의와 같은 터치 또는 음성을 수신해서 해석하기 위한 터치면 및 마이크로폰을 포함한다. 일 실시예에 있어서, 프런트 패널 서브어셈블리(1142)는 민감 정보가 외부 컴퓨팅 장치와 통신되는 것을 허용하기 위한 동의(또는 거부)의 표시를 사용자에게 요구하기 위한 스피커를 포함한다.
일 실시예에 있어서, 다수의 마이크로폰(1011)은 사용자의 스피치를 나타내는 4채널 신호를 제공하기 위해 USB 포트(1010)에 연결될 수 있다. 대안적인 실시예들에 있어서는, 단일의 마이크로폰이 사용될 수 있다. 일 실시예에 있어서, 4개의 16 ㎑ 24 비트 오디오 신호가 다수의 마이크로폰(1011)으로부터 USB 포트(1010) 및 적어도 하나의 오디오 파이프라인에 제공된다. 일 실시예에 있어서, 적어도 하나의 오디오 파이프라인은 전자 인터랙티브 게임 애플리케이션으로부터 다른 사용자의 말 또는 오디오와 같은 적어도 하나의 오디오 신호와 연관된 노이즈를 줄인다.
일 구현예에 있어서, 메모리 유닛(MU)(1040)은 또한, 추가적인 휴대용 저장부를 제공하기 위해 컨트롤러(1004)에 삽입될 수도 있다. 휴대용 MU는 사용자가 다른 콘솔에서 플레이할 때 이용하기 위해 게임 파라미터를 저장하는 것을 가능하게 한다. 2개 이상 또는 이하의 MU가 채용될 수도 있기는 하지만, 이 구현예에 있어서는, 각각의 컨트롤러가 2개의 MU(1040)를 수용하도록 구성된다.
게이밍 및 매체 시스템(1000)은 일반적으로, 메모리 매체에 저장된 게임을 플레이하도록 구성될 뿐만 아니라, 전자 및 하드 매체 소스로부터 게임을 다운로드해서 플레이하고, 또한 사전 기록된 음악 및 비디오를 재생하도록 구성된다. 상이한 저장부의 제공에 의하면, 타이틀(또는 애플리케이션)이 하드 디스크 드라이브로부터, 광학 저장 디스크 매체(예컨대, 1008)로부터, 온라인 소스로부터, 또는 MU(1040)로부터 플레이될 수 있다. 게이밍 및 매체 시스템(1000)이 플레이할 수 있는 매체의 유형들의 샘플은 다음을 포함한다:
CD, DVD 또는 고용량 디스크로부터, 하드 디스크 드라이브로부터, 또는 온라인 소스로부터 플레이되는 게임 타이틀 또는 애플리케이션.
휴대용 매체 드라이브(1006) 내의 CD로부터, 하드 디스크 드라이브 또는 솔리드 스테이트 디스크 상의 파일(예컨대, 매체 포맷의 음악)로부터, 또는 온라인 스트리밍 소스로부터 플레이되는 디지털 음악.
휴대용 매체 드라이브(1006) 내의 DVD 디스크로부터, 하드 디스크 드라이브 상의 파일(예컨대, 능동 스트리밍 포맷)로부터, 또는 온라인 스트리밍 소스로부터 플레이되는 디지털 오디오/비디오.
동작 동안, 콘솔(1002)은 컨트롤러(1004)로부터 입력을 수신하고 정보를 디스플레이(1050) 상에 디스플레이하도록 구성된다. 예컨대, 콘솔(1002)은 사용자가 컨트롤러(1004) 및 디스플레이 상태 해결 정보를 이용해서 전자 인터랙티브 게임을 선택하는 것을 허용하기 위해 디스플레이(1050) 상에 사용자 인터페이스를 디스플레이할 수 있다. 일 실시예에 있어서, 콘솔(1002)은 민감 정보가 외부 컴퓨팅 장치에 통신되는 것을 허용하기 위해 컨트롤러(1004)에 의한 동의(또는 거부)의 선택을 가능하게 하는 메뉴를 디스플레이(1050)에 제공한다. 실시예들에 있어서, 메뉴는 임의의 애플리케이션으로부터 임의의 민감 정보를 전송하는 것을 허가하지 않는 것 또는 허가하는 것 등과 같이 매우 광범위할 수 있다. 대안으로서, 메뉴는 특정 애플리케이션에 의해 전송될 수 있는 특정 정보를 사용자가 선택 또는 동의하는 것을 허용할 수 있다. 예컨대, 메뉴는 게임으로부터 비디오 신호가 전송되는 것을 사용자가 동의하는 것을 허용할 수 있지만, 게임은 신용 카드 정보를 전송하지 않을 것이다.
일 실시예에 있어서, 사용자의 동의를 취득하기 위한 메뉴는 애플리케이션에 대한 테스트, 증명 또는 검증 프로세스 이후에 제공된다. 대안적인 실시예에 있어서, 사용자의 동의를 취득하기 위한 메뉴는 애플리케이션의 실행 동안 민감 정보가 외부 컴퓨팅 장치에 전송되기 전에 제공된다.
도 7은 게이밍 및 매체 시스템(1000)의 기능 블록도이며, 게이밍 및 매체 시스템(1000)의 기능 컴포넌트들을 보다 상세하게 도시한다. 콘솔(1002)은, CPU(1100)와, 플래시 ROM(1104), RAM(1106), 하드 디스크 드라이브 또는 솔리드 스테이트 드라이브(1108), 및 휴대용 매체 드라이브(1006)를 포함하는 다양한 유형의 메모리에 프로세서 액세스를 가능하게 하는 메모리 컨트롤러(1102)를 구비한다. 대안적인 실시예들에 있어서, 다른 유형의 휘발성 및 비휘발성 메모리 기술이 이용될 수 있다. 일 구현예에 있어서, CPU(1100)는, 데이터를 임시 저장하고, 이 때문에 하드 드라이브(1108)에 대하여 이루어진 메모리 액세스 사이클의 수를 줄여서 처리 속도 및 처리량을 개선하는 레벨 1 캐시(1110) 및 레벨 2 캐시(1112)를 포함한다.
CPU(1100), 메모리 컨트롤러(1102), 및 다양한 메모리는 하나 이상의 버스를 통해 상호접속된다. 이 구현예에서 사용되는 버스의 상세는 본 명세서에서 논의되는 관심 대상을 이해하는 것과는 특별한 관련이 없다. 그러나, 상기와 같은 버스가 임의의 다양한 버스 아키텍처를 이용하는 하나 이상의 직렬 및 병렬 버스, 메모리 버스, 주변장치 버스, 및 프로세서 또는 로컬 버스를 포함할 수도 있음이 이해될 것이다. 예시로서, 상기와 같은 아키텍처는 ISA(Industry Standard Architecture) 버스, MCA(Micro Channel Architecture) 버스, EISA(Enhanced ISA) 버스, VESA(Video Electronics Standards Association) 로컬 버스, 및 메자닌(Mezzanine) 버스로도 알려져 있는 PCI(Peripheral Component Interconnects) 버스를 포함할 수 있다.
일 구현예에 있어서, CPU(1100), 메모리 컨트롤러(1102), ROM(1104), 및 RAM(1106)은 공통 모듈(1114)에 집적된다. 이 구현예에 있어서, ROM(1104)은 PCI 버스 및 ROM 버스(둘 다 도시되지 않음)를 통해 메모리 컨트롤러(1102)에 접속되는 플래시 ROM으로서 구성된다. RAM(1106)은 별도의 버스들을 통해 메모리 컨트롤러(1102)에 의해 독립적으로 제어되는 다수의 DDR SDRAM(Double Data Rate Synchronous Dynamic RAM) 또는 빠른 데이터 속도 DRAM 모듈들로서 구성된다. 하드 디스크 드라이브(1108) 및 휴대용 매체 드라이브(1006)는 PCI 버스 및 AT 어태치먼트(ATA) 버스(1116)를 통해 메모리 컨트롤러(1102)에 접속되는 것으로 도시된다. 그러나, 다른 구현예들에 있어서는, 상이한 유형들의 전용 데이터 버스 구조가 대안으로서 적용될 수도 있다.
다른 실시예에 있어서, 적어도 CPU(1100), 레벨 1 캐시(1110), 레벨 2 캐시(1112), 메모리 컨트롤러(1102) 및 RAM 메모리(1106)는 SoC(System on Chip)에 포함된다. 일 실시예에 있어서, CPU(1100)는 프로세서 코어들로 치환된다. 일 실시예에 있어서, RAM 메모리(1106)는 와이드 I/O DRAM과 같은 고성능 메모리로 치환되고, 메모리 컨트롤러(1102)의 기능은 프로세서 코어들에 의해 수행된다. 일 실시예에 있어서는, 고성능 메모리가 아닌, LPDDR3 DRAM과 같은 다른 유형의 메모리가 SoC에 연결될 수 있다.
SoC(SOC라고도 알려져 있음)는 컴퓨팅 장치의 전자 컴포넌트 및/또는 서브시스템 또는 다른 전자 시스템을 단일 패키지 내에 수용된 단일 반도체 기판 및/또는 단일 칩에 집적하는 집적 회로(IC)이다. 예컨대, 사전에 퍼스널 컴퓨터(PC) 내의 메모리 모듈 서브시스템에 있던 메모리는 이제 SoC에 포함될 수 있다. 유사하게, 메모리 컨트롤 로직은 별도로 패키징된 메모리 컨트롤러보다는 오히려 SoC의 프로세서에 포함될 수 있다.
당업자라면, 다른 전자 컴포넌트들이 SoC에 포함될 수 있음을 이해할 것이다. SoC는 단일의 반도체 기판에 디지털, 아날로그, 혼합-신호, 및/또는 무선 주파수 회로를 하나 이상 포함할 수 있다. SoC는 오실레이터, 위상 동기 루프, 계수 타이머, 실시간 타이머, 전원 리셋 발생기, 외부 인터페이스(예컨대, USB(Universal Serial Bus), IEEE 1394 인터페이스(FireWire), 이더넷(Ethernet), USART(Universal Asynchronous Receiver/Transmitter) 및 SPI(Serial Peripheral Bus)), 아날로그 인터페이스, 전압 조정기 및/또는 전원 관리 회로를 포함할 수 있다.
대안적인 실시예들에 있어서, SoC는 시스템 인 패키지(SiP) 또는 패키지 온 패키지(PoP)로 치환될 수 있다. SiP에 있어서는, 다수의 칩 또는 반도체 기판이 단일의 패키지에 수용된다. SiP 실시예에 있어서, 프로세서 코어들은 제 1 반도체 기판 상에 위치되고 고성능 메모리는 제 2 반도체 기판 상에 위치되며, 두 반도체 기판은 모두 단일의 패키지에 수용된다. 일 실시예에 있어서, 제 1 반도체 기판은 와이어 본딩에 의해 제 2 반도체 기판에 연결되게 된다.
PoP 실시예에 있어서, 프로세서 코어들은 제 1 패키지에 수용된 제 1 반도체 다이 상에 위치되고 고성능 메모리는 상이한 제 2 패키지에 수용된 제 2 반도체 다이 상에 위치되게 된다. 이후, 제 1 및 제 2 패키지는 패키지들 사이, 특히 반도체 다이들 사이에 신호를 전송하기 위한 표준 인터페이스와 함께 적층될 수 있다. 이후, 적층된 패키지들은 일 실시예에 있어서는 컴포넌트로서 추가 메모리를 갖는 인쇄 회로 기판에 연결될 수 있다.
실시예들에 있어서, 프로세서 코어들은 프로세서 판독가능 메모리에 저장된 프로세서(또는 머신) 판독가능 명령어를 실행(또는 판독)하는 다수의 프로세서를 포함한다. 프로세서 판독가능 명령어의 일례는 컴퓨팅 장치(107)의 OS 및/또는 애플리케이션(예컨대, 도 2에 도시된 OS(205) 및 애플리케이션들(211-213))을 포함할 수 있다. 프로세서 코어들은 OS 및 애플리케이션의 프로세서 판독가능 명령어의 실행에 응답하여 고성능 메모리 및 추가 메모리를 이용할 수 있다. 일 실시예에 있어서, 프로세서 코어들은 프로세서와 메모리 컨트롤러를 포함할 수 있거나, 또는 대안으로서 메모리 컨트롤러에 의해 수행되는 메모리 관리 기능들을 또한 유사하게 수행하는 프로세서를 포함할 수 있다. 프로세서 코어들은 또한, 컨트롤러, GPU(graphics-processing unit), DSP(digital signal processor) 및/또는 FPGA(field programmable gate array)를 포함할 수 있다. 일 실시예에 있어서는, 고성능 메모리가 최상부의 프로세서 코어에 위치된다.
실시예들에 있어서, 고성능 메모리 및 추가 메모리는 별도의 반도체 기판 상에 배치된 IC 내의 하나 이상의 메모리 셀 어레이에 포함된다. 일 실시예에 있어서, 고성능 메모리 및 추가 메모리는 별도로 패키징된 장치에 수용된 각각의 모놀리식 집적 회로에 포함된다. 실시예들에 있어서, 고성능 메모리 및 추가 메모리는 휘발성 및/또는 비휘발성 메모리를 포함할 수 있다.
휘발성 메모리의 유형들은 다이나믹 랜덤 액세스 메모리(DRAM), 분자 충전 기반 (제타코어) DRAM(molecular charge-based (ZettaCore) DRAM), 플로팅-바디 DRAM(floating-body DRAM) 및 스테이틱 랜덤 액세스 메모리("SRAM")을 포함하지만, 이들에 한정되는 것은 아니다. 특정 유형의 DRAM은 2배속 SDRAM("DDR") 또는 차세대 SDRAM(예컨대, "DDRn")을 포함한다.
비휘발성 메모리의 유형들은 전기적 소거 가능한 프로그램 리드-온리 메모리("EEPROM"), FLASH(NAND 및 NOR FLASH를 포함), ONO FLASH, 자기 저항 또는 자기 RAM("MRAM"), 강유전성 RAM("FRAM"), 홀로그래픽 매체, 오보닉(Ovonic)/상변화, 나노 크리스탈, 나노튜브 RAM(NRAM-Nantero), MEMS 스캐닝 프로브 시스템, MEMS 캔틸레버 스위치, 폴리머, 몰리큘러, 나노-플로팅 게이트 및 단전자의 유형들을 포함하지만, 이들에 한정되는 것은 아니다.
3차원 그래픽 처리 유닛(1120) 및 비디오 인코더(1122)는 고속 및 고해상도(예컨대, 고화질) 그래픽 처리를 위한 비디오 처리 파이프라인을 형성한다. 데이터는 그래픽 처리 유닛(1120)으로부터 디지털 비디오 버스를 통해 비디오 인코더(1122)로 반송된다. 오디오 처리 유닛(1124) 및 오디오 코덱(코더/디코더)(1126)은 다양한 디지털 오디오 포맷의 다중-채널 오디오 처리를 위한 상응하는 오디오 처리 파이프라인을 형성한다. 오디오 데이터는 오디오 처리 유닛(1124)과 오디오 코덱(1126) 사이에서 통신 링크를 통해 반송된다. 비디오 및 오디오 처리 파이프라인은 데이터를 텔레비전 또는 다른 디스플레이에 전송하기 위해 A/V(오디오/비디오) 포트(1128)에 출력한다.
도 7은 USB 호스트 컨트롤러(1130) 및 네트워크 인터페이스(1132)를 포함하는 모듈(1114)을 도시한다. USB 호스트 컨트롤러(1130)는 버스(예컨대, PCI 버스)를 통해 CPU(1100) 및 메모리 컨트롤러(1102)와 통신하고, 주변장치 컨트롤러(10041-10044)의 호스트로서 기능하는 것으로 도시된다. 네트워크 인터페이스(1132)는 네트워크(예컨대, 인터넷, 홈 네트워크 등)에의 액세스를 제공하고, 이더넷 카드, 모뎀, 무선 액세스 카드, 블루투스 모듈, 케이블 모뎀 등을 포함하는 임의의 다양한 유선 또는 무선 인터페이스 컴포넌트일 수 있다.
도 7에 묘사된 구현예에 있어서, 콘솔(1002)은 4개의 컨트롤러(10041-10044)를 지원하는 컨트롤러 지원 서브어셈블리(1140)를 포함한다. 컨트롤러 지원 서브어셈블리(1140)는 예컨대, 매체 및 게임 컨트롤러와 같은 외부 제어 장치와의 유선 및 무선 동작을 지원하기 위한 임의의 하드웨어 및 소프트웨어 컴포넌트를 포함한다. 프런트 패널 I/O 서브어셈블리(1142)는 전원 버튼(1012), 배출 버튼(1014)뿐만 아니라 콘솔(1002)의 외면에 노출된 LED(발광 다이오드) 또는 다른 표시기의 다양한 기능을 지원한다. 서브어셈블리들(1140 및 1142)은 하나 이상의 케이블 어셈블리(1144)를 통해 모듈(1114)과 통신하고 있다. 다른 구현예들에 있어서, 콘솔(1002)은 추가적인 컨트롤러 서브어셈블리를 포함할 수 있다. 또한, 도시된 구현예는 모듈(1114)과 통신할 수 있는 신호를 송수신하도록 구성되는 광학 I/O 인터페이스(1135)를 도시한다.
MU들(10401 및 10402)은 제각기 MU 포트 "A"(10301) 및 "B"(10302)에 접속 가능한 것으로 나타나 있다. 추가의 MU들(예컨대, MU(10403-10406))은 컨트롤러들(10041 및 10043)에 접속 가능한 것으로, 즉 컨트롤러마다 2개의 MU가 접속되는 것으로 나타나 있다. 컨트롤러들(10042 및 10044)은 MU들을 수용하도록 구성될 수도 있다. 각각의 MU(1040)는 전자 인터랙티브 게임, 게임 파라미터, 및 그 밖의 데이터가 저장될 수 있는 추가 저장부를 제공한다. 일부 구현예에 있어서, 그 밖의 데이터는 디지털 게임 컴포넌트, 실행 가능한 게이밍 애플리케이션, 게이밍 애플리케이션을 확장하기 위한 명령어 세트, 및 매체 파일 중 어느 것을 포함할 수 있다. 콘솔(1002) 또는 컨트롤러에의 삽입시에, MU(1040)는 메모리 컨트롤러(1102)에 의해 액세스될 수 있다.
시스템 전원 모듈(1150)은 게이밍 시스템(1000)의 컴포넌트들에 전력을 공급한다. 팬(1152)은 콘솔(1002) 내의 회로를 냉각시킨다.
프로세서 판독가능 명령어를 포함하는 애플리케이션(1160)은 하드 디스크 드라이브(1108)에 저장된다. 콘솔(1002)의 전원이 켜지면, CPU(1100)에서의 실행을 위해 애플리케이션(1160)의 다양한 부분들이 RAM(1106) 및/또는 캐시(1110 및 1112)에 로딩되고, 여기서의 애플리케이션(1160)은 하나의 상기 예시이다. 다양한 애플리케이션들이 CPU(1100)에서의 실행을 위해 하드 디스크 드라이브(1108)에 저장될 수 있다. 일 실시예에 있어서, 애플리케이션(1160)은, 본 명세서에 기재된 바와 같이, 도 2에 도시된 애플리케이션들(211-213) 중 하나에 대응한다.
콘솔(1002)은, 콘솔(1002)을 하나 이상의 다른 컴퓨팅 장치(예컨대, 다른 콘솔들)와 통신 가능하게 연결하도록 구성된, 통신 서브시스템(1170)을 포함하는 것으로도 도시된다. 통신 서브시스템(1170)은 하나 이상의 상이한 통신 프로토콜과 호환 가능한 유선 및/또는 무선 통신 장치를 포함할 수 있다. 비제한적인 예시로서, 통신 서브시스템(1170)은 무선 전화 네트워크를 통해, 또는 유선 또는 무선 로컬-에이리어 또는 와이드-에이리어 네트워크를 통해 통신하도록 구성될 수 있다. 일부 실시예에 있어서, 통신 서브시스템(1170)은 콘솔(1002)이 인터넷과 같은 네트워크를 통해 메시지를 다른 장치에 대하여 송신 및/또는 수신할 수 있게 한다. 특정 실시예들에 있어서, 통신 서브시스템(1170)은 다운로드 요청을 송신하기 위해, 또한 디지털 콘텐츠의 다운로드 및 업로드를 수행하기 위해 코디네이터 및/또는 다른 컴퓨팅 장치와 통신하는데 이용될 수 있다. 일반적으로, 통신 서브시스템(1170)은 콘솔(1002)이 피어-투-피어 통신에 참여하게 할 수 있다.
게이밍 및 매체 시스템(1000)은, 시스템을 디스플레이(1050)(도 6 참조), 텔레비전, 비디오 프로젝터, 또는 다른 디스플레이 장치에 단순히 접속함으로써, 독립형 시스템으로서 동작될 수 있다. 이 독립형 모드에 있어서, 게이밍 및 매체 시스템(1000)은 하나 이상의 플레이어가 전자 인터랙티브 게임을 플레이할 수 있게 하거나, 또는 예컨대 영화를 보거나, 또는 음악을 듣는 등에 의해 디지털 매체를 즐길 수 있게 한다. 그러나, 네트워크 인터페이스(1132)를 통해, 또는 더 일반적으로는 통신 서브시스템(1170)을 통해 가능해진 광대역 접속성의 통합으로, 게이밍 및 매체 시스템(1000)은 또한, 피어-투-피어 네트워크와 같은 대형 네트워크 게임 커뮤니티의 일원으로서 동작될 수 있다.
상술한 콘솔(1002)은 단지 도 1 및 다양한 다른 도면들을 참조하여 상술한 컴퓨팅 장치(107)의 일례일 뿐이다. 위에서 설명했듯이, 본 명세서에 기재된 실시예들을 이용할 수 있는 다양한 다른 유형의 컴퓨팅 장치가 존재한다.
도 8은 도 1 내지 도 3에 나타낸 소프트웨어 컴포넌트들 중 적어도 일부를 호스팅할 수 있는 컴퓨팅 장치(1800)(도 1에 도시된 컴퓨팅 장치(107)에 대응할 수 있음)의 일 실시예의 블록도이다. 그 가장 기본적인 구성에 있어서, 컴퓨팅 장치(1800)는 하나 이상의 CPU 및 하나 이상의 GPU를 포함하는 하나 이상의 처리 유닛(들)/코어(들)(1802)를 포함하는 것이 보통이다. 컴퓨팅 장치(1800)는 또한, 시스템 메모리(1804)를 포함한다. 컴퓨팅 장치의 정확한 구성 및 유형에 따라, 시스템 메모리(1804)는 휘발성 메모리(1805)(예컨대, RAM), 비휘발성 메모리(1807)(예컨대, ROM, 플래시 메모리 등), 또는 이들 두 메모리의 일부 조합을 포함할 수 있다. 이 가장 기본적인 구성은 도 8에서 점선(1806)으로 나타내진다. 추가적으로, 컴퓨팅 장치(1800)는 추가적인 특징/기능을 또한 가질 수 있다. 예컨대, 컴퓨팅 장치(1800)는, 한정하려는 것이 아닌, 자기 또는 광학 디스크 또는 테이프를 포함하는 추가 저장부(착탈식 및/또는 비착탈식)를 또한 포함할 수 있다. 상기와 같은 추가 저장부는 도 8에서 착탈식 저장부(1808) 및 비착탈식 저장부(1810)로 나타내진다.
일 실시예에 있어서, 컴퓨팅 장치(1800)는 애플리케이션이 민감 정보를 외부 컴퓨팅 장치에 전송하는지의 여부를 테스트하는데 사용된다. 일 실시예에 있어서, 컴퓨팅 장치(1800)는 애플리케이션의 증명 또는 검증 프로세스 동안 사용된다. 일 실시예에 있어서, 본 명세서에 기재된 바와 같은 소프트웨어 컴포넌트는 시스템 메모리에 저장되고 처리 유닛(들)/코어(들)(1802)에 의해 실행된다.
컴퓨팅 장치(1800)는 하나 이상의 네트워크 인터페이스와 같은 통신 접속부(들)(1812) 및 장치가 다른 장치와 통신하는 것을 허용하는 트랜스시버를 또한 포함할 수 있다. 컴퓨팅 장치(1800)는 키보드, 마우스, 펜, 음성 입력 장치, 터치 입력 장치, 제스처 입력 장치 등과 같은 입력 장치(들)(1814)를 또한 구비할 수 있다. 디스플레이, 스피커, 프린터 등과 같은 출력 장치(들)(1816)도 포함될 수 있다. 이들 장치는 본 기술분야에 잘 알려져 있으므로, 여기서는 길게 설명하지 않는다.
실시예들에 있어서, 도시 및 기술된 신호 경로는, 상호접속부, 전도 소자, 접점, 핀, 반도체 기판내 구역, 와이어, 금속 트레이스/신호선, 또는 광전도체 등을 단독 또는 조합한, 신호를 전송하는 매체이다. 일 실시예에 있어서, 다수의 신호 경로는 도면들에 나타낸 단일의 신호 경로를 대신할 수 있고, 단일의 신호 경로는 도면들에 나타낸 다수의 신호 경로를 대신할 수 있다. 실시예들에 있어서, 신호 경로는 버스 및/또는 포인트-투-포인트 접속부를 포함할 수 있다. 일 실시예에 있어서, 신호 경로는 제어 및 데이터 신호선을 포함한다. 또 다른 실시예에 있어서, 신호 경로는 단방향 신호선(한 방향으로 이행하는 신호) 또는 양방향 신호선(두 방향으로 이행하는 신호) 또는 단방향 신호선과 양방향 신호선의 조합이다.
본 발명의 시스템의 앞서의 상세한 설명은 예시 및 설명의 목적으로 제시된 것이다. 본 발명의 시스템을 개시된 정확한 형태에 완전한 것으로 하거나 제한하려는 것은 아니다. 상술한 교시를 고려하여 다양한 수정 및 변경이 가능하다. 본 명세서에 기재된 실시예들은 본 발명의 시스템의 원리 및 그 실질적인 적용을 가장 잘 설명하기 위해 선택되었고, 그 때문에 당업자라면 본 발명의 시스템을 예상 특정 용도에 적합한 다양한 실시예 및 다양한 수정으로 가장 잘 활용할 수 있을 것이다. 본 발명의 시스템의 범위는 본 명세서에 첨부된 청구항들에 의해 규정되는 것이다.

Claims (20)

  1. 애플리케이션을 테스트하는 방법으로서,
    애플리케이션으로부터 정보에 대한 요청을 수신하는 단계와,
    상기 정보를 반환하는 애플리케이션 프로그래밍 인터페이스(API)에 대한 애플리케이션 호출을 인터셉트하는 데 심(shim)을 사용하여 상기 정보를 일시적으로 치환하는 대체 정보를 상기 정보로서 상기 애플리케이션에 제공하는 단계와,
    상기 애플리케이션으로부터 애플리케이션 정보를 외부 컴퓨팅 장치에 출력하라는 요청을 수신하는 단계와,
    상기 대체 정보가 상기 애플리케이션 정보에 포함되어 있는지 여부를 판정하기 위해 상기 애플리케이션의 실행 동안 다른 심을 사용하여 상기 애플리케이션의 네트워크 트래픽을 인터셉트함으로써 암호화 전에 상기 애플리케이션 정보를 검사하는 단계와,
    상기 대체 정보로 치환한 후의 상기 애플리케이션 정보를, 테스트가 상기 애플리케이션이 상기 애플리케이션 정보를 전송하려고 한다는 것을 나타낸 후에 상기 외부 컴퓨팅 장치에 출력하는 단계를 포함하는
    애플리케이션 테스트 방법.
  2. 제1항에 있어서,
    상기 방법은 컴퓨팅 장치 내의 메모리에 저장된 상기 애플리케이션 및 운영 체제를 실행하는 적어도 하나의 프로세서에 의해 적어도 부분적으로 수행되는
    애플리케이션 테스트 방법.
  3. 제2항에 있어서,
    상기 정보는 민감 정보이며, 상기 민감 정보는 외부에 전송 시 사용자의 동의가 필요한 정보를 포함하는
    애플리케이션 테스트 방법.
  4. 제3항에 있어서,
    상기 방법은 상기 애플리케이션의 증명(certification) 또는 검증(verification) 프로세스 동안 수행되는
    애플리케이션 테스트 방법.
  5. 제1항에 있어서,
    상기 외부 컴퓨팅 장치에 대한 사용자 정보의 동의의 표시를 취득하는 단계를 더 포함하는
    애플리케이션 테스트 방법.
  6. 제1항에 있어서,
    상기 애플리케이션으로부터 정보에 대한 요청을 수신하는 단계는 상기 애플리케이션이 제 1 애플리케이션 프로그래밍 인터페이스를 호출하는 단계를 포함하고, 상기 애플리케이션으로부터 출력하라는 요청을 수신하는 단계는 상기 애플리케이션이 제 2 애플리케이션 프로그래밍 인터페이스를 호출하는 단계를 포함하는
    애플리케이션 테스트 방법.
  7. 제6항에 있어서,
    상기 검사하는 단계는 상기 애플리케이션 정보 내의 상기 대체 정보에 대해 상기 외부 컴퓨팅 장치로 출력될 상기 애플리케이션 정보를 저장하는 버퍼를 검색하는 단계를 포함하는
    애플리케이션 테스트 방법.
  8. 제7항에 있어서,
    상기 대체 정보는 위조된 정보 및 기록된 정보 중 하나에서 선택되는
    애플리케이션 테스트 방법.
  9. 제8항에 있어서,
    상기 수신 및 판정은 운영 체제에 의해 적어도 부분적으로 수행되고,
    상기 애플리케이션은 전자 인터랙티브 게임을 포함하고,
    상기 정보는 비디오 신호를 포함하는
    애플리케이션 테스트 방법.
  10. 제9항에 있어서,
    상기 컴퓨팅 장치는 상기 비디오 신호를 취득하기 위한 카메라를 포함하는
    애플리케이션 테스트 방법.
  11. 애플리케이션의 테스트가 가능한 장치로서,
    비디오 신호를 취득하기 위한 적어도 하나의 카메라와,
    적어도 하나의 프로세서와,
    프로세서 판독가능 명령어 및 컴퓨팅 장치에 대한 네트워크 어드레스를 갖는 애플리케이션을 저장하기 위한 적어도 하나의 프로세서 판독가능 메모리를 포함하되,
    상기 적어도 하나의 프로세서 판독가능 메모리는, 상기 애플리케이션이 상기 비디오 신호의 적어도 일부를 상기 네트워크 어드레스에 있는 상기 컴퓨팅 장치에 전송하게 할 수 있는 운영 체제를 저장하기 위한 것이고,
    상기 적어도 하나의 프로세서는, 상기 운영 체제 및 상기 애플리케이션의 프로세서 판독가능 명령어를 실행하여,
    상기 운영 체제에 의해, 상기 애플리케이션으로부터 상기 비디오 신호에 대한 요청을 수신하고,
    상기 운영 체제에 의해, 허위 기록된 정보 및 위조된 정보 중 적어도 하나를 포함하는 대체 비디오 신호를 상기 애플리케이션에 제공하고,
    상기 운영 체제에 의해, 상기 애플리케이션으로부터 애플리케이션 정보를 외부 컴퓨팅 장치에 출력하라는 요청을 수신하고,
    실행될 때 상기 애플리케이션이 통신할 수 있는 인증된 네트워크 어드레스를 포함하는 네트워크 보안 인증 리스트(NSAL)에 기초하여 상기 애플리케이션을 신뢰 또는 비신뢰 애플리케이션으로 식별함으로써 상기 애플리케이션의 실행 동안 사용자 동의를 취득하기 전에 상기 애플리케이션이 상기 애플리케이션 정보를 출력하는지 여부를 판정하고,
    상기 애플리케이션을 비신뢰 애플리케이션으로 식별하는 것에 응답하여,
    상기 운영 체제에 의해, 상기 대체 비디오 신호가 상기 애플리케이션 정보에 포함되는지 여부를 판정하기 위해 상기 애플리케이션 정보를 검사하고,
    사용자에 의해 동의의 표시가 획득되는 경우, 상기 운영 체제에 의해, 상기 애플리케이션 정보를 상기 외부 컴퓨팅 장치에 출력하는
    애플리케이션의 테스트가 가능한 장치.
  12. 제11항에 있어서,
    상기 애플리케이션의 테스트가 가능한 장치는 상기 애플리케이션 정보를 저장하기 위한 트래픽 버퍼를 더 포함하고,
    상기 운영 체제는 상기 대체 비디오 신호가 상기 애플리케이션 정보에 저장되는지 여부를 판정하기 위해 상기 트래픽 버퍼에 저장된 상기 애플리케이션 정보를 검사하는
    애플리케이션의 테스트가 가능한 장치.
  13. 제12항에 있어서,
    상기 애플리케이션의 테스트가 가능한 장치는 게임 콘솔에 포함되고, 상기 애플리케이션은 전자 인터랙티브 게임인
    애플리케이션의 테스트가 가능한 장치.
  14. 제11항에 있어서,
    상기 애플리케이션으로부터의 상기 비디오 신호에 대한 요청은 상기 비디오 신호를 불러오기 위한 애플리케이션 프로그래밍 인터페이스에 대한 호출을 포함하고, 상기 애플리케이션으로부터 애플리케이션 정보를 상기 외부 컴퓨팅 장치로 출력하라는 요청은 상기 애플리케이션 정보를 상기 컴퓨팅 장치의 네트워크 어드레스로 출력하기 위한 애플리케이션 프로그래밍 인터페이스에 대한 호출을 포함하는
    애플리케이션의 테스트가 가능한 장치.
  15. 제11항에 있어서,
    상기 적어도 하나의 프로세서는 상기 운영 체제 및 상기 애플리케이션의 프로세서 판독가능 명령어를 실행하여 상기 애플리케이션이 상기 외부 컴퓨팅 장치로 출력되기 전에 동의의 표시가 발생하는
    애플리케이션의 테스트가 가능한 장치.
  16. 실행될 때, 하나 이상의 프로세서로 하여금 애플리케이션을 테스트하는 방법을 수행하게 하는, 인코딩된 명령어를 갖는 하나 이상의 프로세서 판독 가능 메모리로서,
    상기 애플리케이션을 테스트하는 방법은,
    상기 하나 이상의 프로세서에 의하여, 민감 정보를 수신하는 단계 - 상기 민감 정보는 외부에 전송 시 사용자의 동의가 필요한 정보를 포함함 - 와,
    상기 하나 이상의 프로세서에 의하여, 상기 민감 정보를 반환하는 제 1 애플리케이션 프로그래밍 인터페이스를 호출함으로써 애플리케이션으로부터 상기 민감 정보에 대한 요청을 수신하는 단계와,
    상기 하나 이상의 프로세서에 의하여, 심을 사용하여 상기 제 1 애플리케이션 프로그래밍 인터페이스에 대한 상기 호출을 인터셉트함으로써 상기 민감 정보를 대체 정보로 치환하는 단계와,
    상기 하나 이상의 프로세서에 의하여, 상기 대체 정보를 상기 민감 정보로서 상기 애플리케이션에 제공하는 단계와,
    상기 하나 이상의 프로세서에 의하여, 제 2 애플리케이션 프로그래밍 인터페이스를 호출함으로써 네트워크 어드레스에 있는 외부 컴퓨팅 장치에 애플리케이션 정보를 출력하라는 요청을 상기 애플리케이션으로부터 수신하는 단계와,
    상기 하나 이상의 프로세서에 의하여, 암호화 전에 상기 애플리케이션 정보를 검색하여, 상기 제 2 애플리케이션 프로그래밍 인터페이스에 대한 상기 호출을 인터셉트하는 데 다른 심을 사용하여 상기 대체 정보가 상기 애플리케이션 정보에 포함되는지 여부를 판정하는 단계와,
    상기 하나 이상의 프로세서에 의하여, 상기 네트워크 어드레스에 있는 상기 외부 컴퓨팅 장치에 상기 애플리케이션 정보를 암호화된 포맷으로 출력하는 단계를 포함하는
    하나 이상의 프로세서 판독 가능 메모리.
  17. 제16항에 있어서,
    상기 민감 정보는 적어도 하나의 비디오 신호의 프레임을 포함하고, 상기 대체 정보는 다른 비디오 신호의 프레임인
    하나 이상의 프로세서 판독 가능 메모리.
  18. 제17항에 있어서,
    상기 민감 정보에 대한 요청을 애플리케이션으로부터 수신하는 단계는 상기 제 1 애플리케이션 프로그래밍 인터페이스가 상기 민감 정보를 불러오는 것을 포함하고, 상기 네트워크 어드레스에 있는 상기 외부 컴퓨팅 장치에 애플리케이션 정보를 출력하라는 요청을 상기 애플리케이션으로부터 수신하는 단계는 상기 제 2 애플리케이션 프로그래밍 인터페이스가 상기 네트워크 어드레스에 있는 상기 외부 컴퓨팅 장치에 상기 애플리케이션 정보를 출력하는 것을 포함하는
    하나 이상의 프로세서 판독 가능 메모리.
  19. 제18항에 있어서,
    상기 애플리케이션을 테스트하는 방법은 상기 애플리케이션 정보를 전송하기 전에 사용자의 동의를 수신하는 단계를 더 포함하는
    하나 이상의 프로세서 판독 가능 메모리.
  20. 제19항에 있어서,
    상기 검색은 네트워크 검사기에 의해 수행되는
    하나 이상의 프로세서 판독 가능 메모리.
KR1020167005923A 2013-09-06 2014-09-03 애플리케이션에 의한 특정 정보의 전송 검증 기법 KR102281028B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/019,978 2013-09-06
US14/019,978 US9645860B2 (en) 2013-09-06 2013-09-06 Verification that particular information is transferred by an application
PCT/US2014/053767 WO2015034851A1 (en) 2013-09-06 2014-09-03 Verification that particular information is transferred by an application

Publications (2)

Publication Number Publication Date
KR20160048811A KR20160048811A (ko) 2016-05-04
KR102281028B1 true KR102281028B1 (ko) 2021-07-22

Family

ID=51585182

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167005923A KR102281028B1 (ko) 2013-09-06 2014-09-03 애플리케이션에 의한 특정 정보의 전송 검증 기법

Country Status (11)

Country Link
US (2) US9645860B2 (ko)
EP (1) EP3042336B1 (ko)
JP (1) JP6356248B2 (ko)
KR (1) KR102281028B1 (ko)
CN (1) CN105580025B (ko)
AU (1) AU2014315395B2 (ko)
BR (1) BR112016004399B1 (ko)
CA (1) CA2922363C (ko)
MX (1) MX356480B (ko)
RU (1) RU2679222C2 (ko)
WO (1) WO2015034851A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9645860B2 (en) 2013-09-06 2017-05-09 Microsoft Technology Licensing, Llc Verification that particular information is transferred by an application
US9747415B2 (en) * 2013-11-27 2017-08-29 General Electric Company Single schema-based RIS/PACS integration
US9276938B2 (en) 2013-11-27 2016-03-01 General Electric Company Cross-enterprise workflow
US10735262B1 (en) * 2018-04-26 2020-08-04 Intuit Inc. System and method for self-orchestrated canary release deployment within an API gateway architecture
JP2021018745A (ja) * 2019-07-23 2021-02-15 日立オムロンターミナルソリューションズ株式会社 カードリーダ、カードリーダの制御方法および現金自動機
US12047780B2 (en) 2021-01-07 2024-07-23 Nokia Technologies Oy Authorization in cellular communication systems

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008508805A (ja) * 2004-07-29 2008-03-21 インテリ7・インコーポレーテッド 電子トラフィックを特徴づけ、管理するシステムおよび方法

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2435624C (en) * 2000-09-22 2013-05-07 Richard B. Levine Systems and methods for preventing unauthorized use of digital content
US7237123B2 (en) * 2000-09-22 2007-06-26 Ecd Systems, Inc. Systems and methods for preventing unauthorized use of digital content
US8677505B2 (en) * 2000-11-13 2014-03-18 Digital Doors, Inc. Security system with extraction, reconstruction and secure recovery and storage of data
US8150922B2 (en) * 2002-07-17 2012-04-03 Research In Motion Limited Voice and text group chat display management techniques for wireless mobile terminals
AU2003266962A1 (en) * 2002-08-06 2004-02-25 Brainshield Technologies Inc. Device for carrying out the copy-protected distribution of electronic documents
JP2005045587A (ja) * 2003-07-23 2005-02-17 Nec Saitama Ltd 携帯情報端末装置、及び、この装置における表示制御方法
WO2005112586A2 (en) * 2004-05-12 2005-12-01 Fusionone, Inc. Advanced contact identification system
US8041190B2 (en) * 2004-12-15 2011-10-18 Sony Corporation System and method for the creation, synchronization and delivery of alternate content
US20070263865A1 (en) * 2005-07-01 2007-11-15 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Authorization rights for substitute media content
US7788328B2 (en) 2005-11-10 2010-08-31 Microsoft Corporation Cross-forest sharing
CN101064604B (zh) * 2006-04-29 2012-04-18 西门子公司 远程访问方法、系统及设备
US7890612B2 (en) * 2006-05-08 2011-02-15 Electro Guard Corp. Method and apparatus for regulating data flow between a communications device and a network
US20080227548A1 (en) * 2007-03-13 2008-09-18 Microsoft Corporation Secured cross platform networked multiplayer communication and game play
US10356366B2 (en) * 2007-05-31 2019-07-16 Sony Interactive Entertainment America Llc System and method for taking control of a system during a commercial break
US20100229214A1 (en) 2009-03-04 2010-09-09 Telefonaktiebolaget Lm Ericsson (Publ) Method and node for communications enhanced with temporary sharing of personal information in a communication network
CN101668157B (zh) * 2009-09-24 2011-09-21 中兴通讯股份有限公司 用于视频通话中隐私保护的方法、应用服务器及系统
CN102104766A (zh) * 2009-12-18 2011-06-22 深圳富泰宏精密工业有限公司 视频通话中的隐私保护系统及方法
KR20120017218A (ko) 2010-08-18 2012-02-28 주식회사 팬택 Sns 기반의 이동 단말기 및 이를 이용한 통신 방법
US9930295B2 (en) * 2010-11-18 2018-03-27 Verint Systems Inc.. Software, systems, and methods for video recording of a transaction involving protected data
KR101714534B1 (ko) * 2010-12-06 2017-03-09 삼성전자주식회사 휴대 단말기의 사생활 보호 기능 제공 방법 및 장치
US8763080B2 (en) 2011-06-07 2014-06-24 Blackberry Limited Method and devices for managing permission requests to allow access to a computing resource
US8650550B2 (en) 2011-06-07 2014-02-11 Blackberry Limited Methods and devices for controlling access to computing resources
JP5828457B2 (ja) * 2012-01-16 2015-12-09 Kddi株式会社 Api実行制御装置およびプログラム
CN102609660B (zh) * 2012-02-03 2015-09-16 北京奇虎科技有限公司 一种计算机视频设备隐私保护方法和系统
US8275358B1 (en) 2012-03-01 2012-09-25 MacroPoint LLC Providing notice and receiving consent to obtain location information of a mobile device
US9317721B2 (en) 2012-10-31 2016-04-19 Google Inc. Privacy aware camera and device status indicator system
US9223941B2 (en) 2013-03-15 2015-12-29 Google Inc. Using a URI whitelist
US9645860B2 (en) 2013-09-06 2017-05-09 Microsoft Technology Licensing, Llc Verification that particular information is transferred by an application
US9432627B2 (en) 2013-09-06 2016-08-30 Microsoft Technology Licensing, Llc Restricting information requested by an application

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008508805A (ja) * 2004-07-29 2008-03-21 インテリ7・インコーポレーテッド 電子トラフィックを特徴づけ、管理するシステムおよび方法

Also Published As

Publication number Publication date
EP3042336B1 (en) 2020-04-15
CA2922363A1 (en) 2015-03-12
RU2679222C2 (ru) 2019-02-06
US20170206156A1 (en) 2017-07-20
RU2016107749A (ru) 2017-09-07
US9645860B2 (en) 2017-05-09
US10437715B2 (en) 2019-10-08
JP6356248B2 (ja) 2018-07-11
AU2014315395B2 (en) 2019-05-30
BR112016004399A8 (pt) 2020-02-11
BR112016004399B1 (pt) 2022-09-13
MX2016002839A (es) 2016-06-17
EP3042336A1 (en) 2016-07-13
CN105580025B (zh) 2019-05-17
US20150074689A1 (en) 2015-03-12
KR20160048811A (ko) 2016-05-04
CA2922363C (en) 2021-10-26
RU2016107749A3 (ko) 2018-07-04
WO2015034851A1 (en) 2015-03-12
CN105580025A (zh) 2016-05-11
MX356480B (es) 2018-05-30
AU2014315395A1 (en) 2016-02-25
JP2016534469A (ja) 2016-11-04

Similar Documents

Publication Publication Date Title
US10437715B2 (en) Verification that particular information is transferred by an application
KR102207598B1 (ko) 이기종 메모리의 동적 관리 기법
US20070005504A1 (en) Dynamic digital content licensing
US20150039317A1 (en) System with multiple simultaneous speech recognizers
US9205335B2 (en) Achievement replay and fraud detection
US20060259431A1 (en) Apparatus and method for content protection using one-way buffers
CN115277143B (zh) 一种数据安全传输方法、装置、设备及存储介质
US11736741B2 (en) Ultra high-speed low-latency network storage
CN114073057A (zh) 使用客户端音频参数的服务器侧绘制的音频
EP3042489B1 (en) Restricting information requested by an application
US10846123B2 (en) Audio rendering from virtual machine
US8181039B2 (en) Disc drive counterfeiting countermeasure

Legal Events

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