KR101390077B1 - 보안 메모리 도메인에 이미지를 직접 렌더링하고 대응하는 사용자 입력을 상관시키는 방법 및 시스템 - Google Patents
보안 메모리 도메인에 이미지를 직접 렌더링하고 대응하는 사용자 입력을 상관시키는 방법 및 시스템 Download PDFInfo
- Publication number
- KR101390077B1 KR101390077B1 KR1020120121514A KR20120121514A KR101390077B1 KR 101390077 B1 KR101390077 B1 KR 101390077B1 KR 1020120121514 A KR1020120121514 A KR 1020120121514A KR 20120121514 A KR20120121514 A KR 20120121514A KR 101390077 B1 KR101390077 B1 KR 101390077B1
- Authority
- KR
- South Korea
- Prior art keywords
- image
- protected memory
- video frame
- user
- memory domain
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/36—User authentication by graphic or iconic representation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
Abstract
애플리케이션 및 비디오 프레임 버퍼를 보호된 메모리 도메인에 할당하여, 보호된 메모리 도메인으로부터의 키보드의 이미지를 비디오 프레임 버퍼의 랜덤 위치에 렌더링하고 포인팅 디바이스로부터의 사용자 입력을 렌더링된 키보드 이미지와 상관시키는 방법 및 시스템이 개시된다. 키보드 이미지는 사용자 입력에 후속하여 랜덤하게 재배치될 수 있다. 키보드 이미지는 보안 사용자 이미지 위에 렌더링될 수 있다. 확인 이미지는 보호된 메모리 도메인으로부터 비디오 프레임 버퍼의 랜덤 위치로 렌더링될 수 있고, 확인 이미지와 상관되지 않는 사용자 입력에 응답하여 랜덤하게 재배치될 수 있다. 랜덤하게 배치된 이미지와 상관되지 않은 사용자 입력들은 카운트될 수 있고, 상관되지 않은 사용자 입력의 수가 임계치를 넘는 경우 하나 이상의 프로세스들은 중단될 수 있다.
Description
본 발명은 전자적 트랜잭션을 보호(protect)하는 분야에 대한 것이다.
전자적 지불 트랜잭션(electronic payment transaction) 정보와 같은 기밀 사용자 정보가 기계적 키보드 또는 포인팅 디바이스를 통해서 컴퓨터 시스템에 입력될 때, 이 정보는 스파이웨어와 같은 악성 소프트웨어(malware)에 취약할 수 있는데, 이런 악성 소프트웨어는 키 스트로크들 또는 입력 좌표들이 컴퓨터 시스템으로 또는 컴퓨터 시스템 내에 전송됨에 따라 이들을 레코딩할 수 있다.
기밀 사용자 정보의 수신과 연관된 애플리케이션 프로그램이 또한 스파이웨어와 같은 악성 소프트웨어에 취약할 수 있다.
보안 메모리 도메인에 이미지를 직접 렌더링하고 대응하는 사용자 입력을 상관시키는 방법 및 시스템을 제공한다.
애플리케이션 및 비디오 프레임 버퍼를 보호된 메모리 도메인에 할당하여, 보호된 메모리 도메인으로부터의 키보드의 이미지를 비디오 프레임 버퍼의 랜덤 위치에 렌더링하고 포인팅 디바이스로부터의 사용자 입력을 렌더링된 키보드 이미지와 상관시키는 방법 및 시스템이 개시된다. 키보드 이미지는 사용자 입력에 후속하여 랜덤하게 재배치될 수 있다. 키보드 이미지는 보안 사용자 이미지 위에 렌더링될 수 있다. 확인 이미지는 보호된 메모리 도메인으로부터 비디오 프레임 버퍼의 랜덤 위치로 렌더링될 수 있고, 확인 이미지와 상관되지 않는 사용자 입력에 응답하여 랜덤하게 재배치될 수 있다. 랜덤하게 배치된 이미지와 상관되지 않은 사용자 입력들은 카운트될 수 있고, 상관되지 않은 사용자 입력의 수가 임계치를 넘는 경우 하나 이상의 프로세스들은 중단될 수 있다.
보안 메모리 도메인에 이미지를 직접 렌더링하고 대응하는 사용자 입력을 상관시키는 방법 및 시스템을 제공할 수 있다.
도 1은 보호된 메모리 도메인에서 데이터 엔트리 이미지를 렌더링하고 렌더링된 이미지와 사용자 입력을 상관시키는 예시적 방법의 처리 흐름도.
도 2는 네트워크 접속을 통해 지불 트랜잭션을 수행하도록 도 1의 방법을 인보크하는 예시적 방법의 처리 흐름도.
도 3은 이미지를 디스플레이의 랜덤 위치에 렌더링하고 이 이미지를 사용자 입력에 뒤이어 디스플레이의 다른 랜덤 위치에 리-렌더링하는 예시적 방법의 처리 흐름도.
도 4는 보안 메모리 도메인에서, 사용자 이미지 위에 입력 디스플레이 이미지를 렌더링하는 예시적 방법의 처리 흐름도.
도 5는 확인 이미지를 디스플레이의 랜덤 위치에 렌더링하는 예시적 방법의 처리 흐름도.
도 6은 렌더링된 이미지와 상관되지 않는 사용자 입력의 수가 임계치를 초과할 때 트랜잭션을 중단시키는 예시적 방법의 처리 흐름도.
도 7은 보호된 메모리 도메인에서 데이터 엔트리 이미지를 렌더링하고 렌더링된 이미지와 사용자 입력을 상관시키는 또 다른 예시적 방법의 처리 흐름도.
도 8은 예시적 컴퓨터 환경의 그래픽 도해.
도 9는 도 8의 예시적 컴퓨터 환경에 대응하는 예시적 로직 및 데이터의 블록도.
도 2는 네트워크 접속을 통해 지불 트랜잭션을 수행하도록 도 1의 방법을 인보크하는 예시적 방법의 처리 흐름도.
도 3은 이미지를 디스플레이의 랜덤 위치에 렌더링하고 이 이미지를 사용자 입력에 뒤이어 디스플레이의 다른 랜덤 위치에 리-렌더링하는 예시적 방법의 처리 흐름도.
도 4는 보안 메모리 도메인에서, 사용자 이미지 위에 입력 디스플레이 이미지를 렌더링하는 예시적 방법의 처리 흐름도.
도 5는 확인 이미지를 디스플레이의 랜덤 위치에 렌더링하는 예시적 방법의 처리 흐름도.
도 6은 렌더링된 이미지와 상관되지 않는 사용자 입력의 수가 임계치를 초과할 때 트랜잭션을 중단시키는 예시적 방법의 처리 흐름도.
도 7은 보호된 메모리 도메인에서 데이터 엔트리 이미지를 렌더링하고 렌더링된 이미지와 사용자 입력을 상관시키는 또 다른 예시적 방법의 처리 흐름도.
도 8은 예시적 컴퓨터 환경의 그래픽 도해.
도 9는 도 8의 예시적 컴퓨터 환경에 대응하는 예시적 로직 및 데이터의 블록도.
도면들에서, 도면 부호의 가장 좌측의 숫자(들)는 이 도면 부호가 처음 나타나는 도면을 식별하는 것이다.
도 1은 보호된 메모리 도메인(protected memory domain)에서 데이터 엔트리 이미지(data entry image)를 렌더링하고 렌더링된 이미지와 사용자 입력을 상관시키는 예시적 방법(100)의 처리 흐름도이다.
단계 102에서, 액세스 보호된 메모리 도메인이 컴퓨터 시스템 내에서 구성된다. 보호된 메모리 도메인에 대한 액세스는, 보호된 메모리 도메인 내에서의 데이터 및 명령어들을 보호된 메모리 도메인 외부의 프로세스들이 액세스할 수 없는 것을 실질적으로 보장하기 위한 하나 또는 그 이상의 규칙에 따라서 제한된다. 보호된 메모리 도메인은 시스템 메모리, 그래픽 메모리 및 이것들의 조합 중의 하나 또는 그 이상의 부분들을 포함할 수 있다. 보호된 메모리 도메인은 가상 머신(virtual machine) 관리 기술을 포함하여 소프트웨어, 하드웨어 및 이들의 결합의 제어 하에서 구성되고 구현(enforce)될 수 있다.
단계 104에서, 애플리케이션은 보호된 메모리 도메인에서 개시된다. 애플리케이션은 컴퓨터 시스템의 프로세서로 하여금, 보호된 메모리 도메인에서, 키보드 이미지와 같은 데이터 엔트리 이미지를 렌더링하고, 후속하는 사용자 입력을 그 이미지와 상관시키도록 야기하는 명령어들을 포함할 수 있다.
애플리케이션은 개시 전에 소프트웨어, 하드웨어 및 이들의 조합을 이용하여 인증(authenticate)될 수 있고, 코드 서명 해싱 기술(code signature hashing techniques)을 포함하는 하나 또는 그 이상의 해싱 기술에 따라서 인증될 수 있는데, 이 해싱 기술은 신뢰 실행 기술(a trusted execution technology)을 포함할 수 있다.
애플리케이션은 보안 메모리 도메인(secure memory domain) 내로 로딩될 수 있고, 보안 메모리 도메인 내에서 인증될 수 있다. 대안적으로 또는 추가적으로, 애플리케이션 또는 이것의 부분은 신뢰 실행 기술 모듈과 연관된 액세스 보호된 펌웨어와 같은, 또 다른 보안 메모리 도메인 내로 로드될 수 있다.
애플리케이션이 론칭(launch)되는 대응하는 오퍼레이팅 시스템이 루트키트(rootkit), 바이러스, 웜(worm), 또는 스파이웨어와 같은 것으로 위태롭게 되더라도(is compromised), 보호된 메모리 도메인과 애플리케이션의 인증은, 독자적으로 또는 서로 결합하여, 애플리케이션을, 애플리케이션과 연관된 코드, 제어 흐름, 및 데이터 구조들을 포함하여, 스파이웨어를 포함하는 악성 코드(malicious code)로부터 보호할 수 있다.
단계 102에서 보호된 메모리 도메인의 구성, 및/또는 단계 104에서의 애플리케이션의 로딩, 인증 및 개시는 메모리 내 컴포넌트들을 악성 코드에 의한 스누핑(snooping) 및 변경으로부터 보호하는 하이퍼바이저 기반 보안 바이저(a hypervisor-based security visor)의 제어 하에서 수행될 수 있다.
하이퍼바이저 기반 보안 바이저는 코드 및/또는 데이터를 식별하고, 인증을 위해 코드 및/또는 데이터와 연관된 하나 또는 그 이상의 피쳐(feature)를 측정(measure)하고, 인증된 코드 및/또는 데이터를 보호하도록 구성될 수 있다.
하이퍼바이저 기반 보안 바이저는 오퍼레이팅 시스템에 대한 변경 없이 동작하도록 구성될 수 있다.
하이퍼바이저 기반 보안 바이저는 오퍼레이팅 시스템의 경계 밖의, 따라서 동작 환경에서의 잠재적인 악성 소프트웨어의 경계 밖의 보호된 공간에서 실행되는 무결성 측정 모듈(integrity measurement module; IMM)을 포함할 수 있다. IMM 보호된 공간은 VMM(virtual machine manager) 상에서 실행되는 보호된 가상 머신(virtual machine; VM) 및/또는 보호된 하드웨어를 포함할 수 있다. IMM은 SHA-1 해시와 같은 코드 섹션들의 해시를 포함하는 서명 파일에 대하여 애플리케이션의 코드의 아이덴티티와 무결성을 검증하고, 코드 섹션들 및 대응하는 재배치 테이블(relocation table) 내로의 엔트리 포인트들을 검증하도록 구성될 수 있다.
하이퍼바이저 기반 보안 바이저는 메모리 액세스 보호를 구현하는 메모리 보호 모듈(memory protection module; MPM)을 포함할 수 있고, IMM이 성공적으로 애플리케이션을 식별하고 측정한 후에 IMM이 MPM에 신호를 보내어 메모리 액세스 보호를 구현하도록 구성될 수 있다.
MPM은 하나 또는 그 이상의 보호된 페이지 테이블들(protected page tables; PPTs)을 생성하고, 애플리케이션의 보호된 코드 및 대응하는 데이터 페이지들을 PPT들로 매핑하고, 액티브 페이지 테이블들(active page tables; APTs)로부터의 대응하는 매핑을 끊도록(sever) 구성될 수 있다. VMM과 같은 메모리 관리자는 보호된 메모리의 가상 어드레스 범위 및 보호된 페이지들의 대응하는 물리적 어드레스들의 리스트를 관리하도록 구성될 수 있다. 페이지 결함 시에, VMM은 목적지 페이지의 가상 어드레스와 보호된 페이지 어드레스들의 리스트를 비교하고, 매칭이 발견될 때 가상 머신 제어 구조(virtual machine control structure; VMCS) 내의 페이지 테이블 베이스 레지스터(page table base register; PTBR)를 PPT 베이스 어드레스의 어드레스로 전환하도록 구성될 수 있다. 리턴시에, VMM은 PPT 어드레스로부터 APT 베이스로 PTBR을 전환하도록 구성될 수 있다. VMM은 VMM이 APT들에 페이지를 부가하고자 시도할 때마다 물리적 페이지 어드레스들의 리스트를 검사할 수 있다. VMM이 보호된 페이지를 발견할 때, VMM은 보호된 페이지를 APT에 부가하는 것을 거절할 수 있고 에러 표시를 발생시킬 수 있다. 메모리 보호들이 구성되면, 애플리케이션과 연관된 초기화 벡터가 보호된 애플리케이션 도메인 내에서 실행하기 위한 제1 코드 섹션일 수 있다.
하이퍼바이저 기반 보안 바이저는 Intel Corporation이 개발한 VISN(VT Integrity Services for Networking) 시스템을 포함할 수 있다.
단계 106에서, 비디오 프레임 버퍼가 보호된 메모리 도메인에 할당된다.
애플리케이션은 그래픽 어댑터에 대응하는 비디오 프레임 버퍼를 보호된 메모리 도메인으로 풀링(pull)하고, 비디오 프레임 버퍼에 직접 렌더링되도록 구성될 수 있다. 하나 또는 그 이상의 비디오 프레임 백(back) 버퍼들 및/또는 다른 면들(surfaces)이 또한 보호된 메모리 도메인에 할당될 수 있다. 보호된 메모리 도메인 내에 있는 동안, 임의의 백 버퍼들 및 다른 면들을 포함하는 비디오 프레임 버퍼는 보호된 메모리 도메인 외부의 오퍼레이팅 시스템 및 다른 프로세스들에 의해 개시되는 기록 및/또는 판독 프로세스들로부터 실질적으로 보호될 수 있다. 그에 대응하여, 임의의 백 버퍼들 및 다른 면들을 포함하는 비디오 프레임 버퍼는 악성 소프트웨어의 특권 레벨에 관계없이 컴퓨터 시스템상에서 실행되는 악성 소프트웨어에 대해 실질적으로 안전할 수 있다.
애플리케이션은 프라이머리(primary) 또는 비디오 프레임 프런트 버퍼 및 하나 또는 그 이상의 비디오 프레임 백 버퍼들에 대응하는 메모리 어드레스를 식별 E또는 결정하고, 오퍼레이팅 시스템(OS)과 연관된 APT들로부터 대응하는 페이지들을 제거하고, 그 페이지들을 애플리케이션의 보호된 부분들 및 다른 보호된 코드 및 데이터 페이지들과 함께 PPT들에 위치시키도록 구성될 수 있다. 결과적으로, 스크린 스크래핑(screen scraping) 애플리케이션들/악성 소프트웨어는 보호된 페이지들로부터 판독하고 보호된 페이지들에 기록하는 것이 방지될 수 있다.
애플리케이션은 마이크로소프트 윈도우즈의 DirectX 및 OpenGL과 리눅스 OS의 OpenGL에 의해 제공되는 것과 같은 직접 그래픽 렌더링을 수행하도록 구성될 수 있다. 대응하는 라이브러리들이 비디오 프레임 버퍼에 대응하는 어드레스를 찾고 OS 하에서 실행되는 애플리케이션들과 관련하여 존재할 수 있는 판독 및 기록 제한들을 제거하기 위해 액세스될 수 있다.
단계 102에서 보호된 메모리 도메인에서의 애플리케이션의 개시는 적어도 코드, 및 비디오 프레임 버퍼에 기록하고 및/또는 비디오 프레임 버퍼로부터 판독하는 것을 담당하는 그 코드에 대한 데이터 섹션들을 보호하는 것을 포함할 수 있다.
단계 106에서 비디오 프레임 버퍼를 보호된 메모리 도메인에 할당하는 것은 비디오 프레임 버퍼에 대한 포인터의 위치 또는 그 포인터에 대응하는 APT 변환(translation)을 식별하는 것을 포함할 수 있다.
비디오 프레임 버퍼에 대한 포인터를 위치시키는(locating) 것은 오퍼레이팅 시스템과 연관된 API(application programming interface)를 사용하여 포인터의 가상 어드레스를 결정하는 것을 포함할 수 있다. 대응하는 물리적 어드레스는 오퍼레이팅 시스템 또는 VMM에 의해 유지되는 페이지 테이블로부터 식별될 수 있다.
비디오 프레임 버퍼에 대한 포인터를 위치시키는 것은 포인터의 물리적 어드레스를 얻고, 물리적 어드레스 및 대응하는 가상 어드레스를 찾기 위해 페이지 테이블과 같은 대응하는 프로세스 어드레스 공간을 워크 스루(walk through)하는 것을 포함할 수 있다. 포인터의 물리적 어드레스는 어드레스 0XA000과 같은 알려진 물리적 어드레스에 매핑될 수 있다. 이것은 각 단계를 위한 하이퍼콜(hypercall)을 포함할 수 있다.
가상 어드레스 및 대응하는 물리적 어드레스는 하나 또는 그 이상의 PPT들에 풀링될 수 있다. PPT들로의 비디오 프레임 버퍼의 풀링은 대응하는 메모리 페이지들을 APT들에 존재하지 않는 것으로 마킹(marking)하고, 메모리 페이지들을 PPT들에의 판독/기록으로서 마킹하는 것을 포함할 수 있다.
단계 108에서, 사용자 입력 디바이스의 이미지는 비디오 프레임 버퍼에 렌더링된다. 이미지는 키보드의 이미지를 포함할 수 있고, 이 이미지는 숫자 키보드, 영자 키보드 및 영숫자 키보드의 이미지 중 하나 또는 그 이상을 포함할 수 있다.
사용자 입력 디바이스의 이미지는, 단계 102에서 애플리케이션의 로딩의 부분으로서, 보호된 메모리 도메인에 로딩되고 인증될 수 있다.
그래픽 어댑터는 그래픽 어댑터 내의 메모리, 이산 그래픽 어댑터인 경우 비디오 RAM(VRAM), 공유 시스템 메모리(시스템 RAM) 중 하나 또는 그 이상으로부터 렌더링하도록 구성될 수 있고, 임베디드(embedded) 그래픽 어댑터인 경우, AGP(advance graphics aperture)를 활용하여 범용 프로세서 또는 그들의 조합과 시스템 RAM을 공유하도록 구성될 수 있다.
그래픽 카드는 로컬 VRAM을 일반적으로 사용하도록 구성될 수 있고, 로컬 VRAM이 시스템 상에서 실행되는 프로세스들에 대해 불충분한 경우 시스템 RAM을 사용하도록 구성될 수 있다. 그래픽 카드는 하나 또는 그 이상의 프라이머리 비디오 프레임 버퍼들로부터 렌더링될 수 있다. 비디오 프레임 백 버퍼들의 콘텐츠는 프라이머리 버퍼로 블릿(blit)될 수 있거나 또는 애플리케이션은 백 버퍼들의 체인을 선언(declare)하고 백 버퍼들을 프라이머리 버퍼에 체인으로 플립할 수 있다.
보안 입력 및 출력을 위해, 링(ring)-3 애플리케이션은 키보드를 렌더링할 때 텍스처(texture)를 포함할 수 있는 다수의 면들을 선언할 수 있다.
그래픽 카드 및/또는 대응하는 디스플레이는 보안 보호들(security protections)을 포함할 수 있다.
단계 110에서, 사용자 입력은 입력 디스플레이 이미지의 렌더링에 후속하여 보호된 메모리 도메인에서 수신된다. 사용자 입력은 포인팅 디바이스, 마우스 디바이스 같은 커서 디바이스, 터치 패드 및 터치 스크린 디스플레이 중 하나 또는 그 이상에 의해 생성될 수 있는 위치 표시를 포함할 수 있다.
단계 112에서, 사용자 입력은 입력 디스플레이 이미지의 피쳐와 상관된다. 이 상관(correlating)은 키보드의 사용자 선택 키를 식별하기 위해 사용자 입력의 좌표들을 렌더링되는 키보드 이미지의 키(key)와 상관시키는 것을 포함할 수 있다.
단계 114에서, 사용자 입력에 상관시키는 이미지 피쳐의 표시는 보호된 메모리 도메인에 저장된다. 이미지가 키보드 이미지를 포함하는 경우, 저장하는 것은 사용자 선택 키의 표시를 저장하는 것을 포함할 수 있다.
단계 116에서, 사용자 입력의 저장된 표시는 보호된 메모리 도메인으로부터 출력될 수 있고, 비디오 프레임 버퍼는 보호된 메모리로부터 릴리스(release)될 수 있다.
방법(100)은 전자 지불 정보와 같은 기밀 사용자-입력을 수신하도록 인보크(invoke)될 수 있다. 도 2는 방법(100)을 인보크하여 네트워크 접속을 통해 지불 트랜잭션을 수행하는 예시적 방법(200)의 처리 흐름도이다.
단계 202에서, 사용자 컴퓨터 시스템과, 사용자 컴퓨터 시스템에 대해 원격지에 있을 수 있는 다른 컴퓨터 시스템 사이에 네트워크를 통해 통신 세션이 실행된다. 통신 세션은, 예를 들면, 인터넷을 통해 머천트(merchant) 웹 사이트 또는 금융 카드 프로세서 웹 사이트를 활용하여 사용자 컴퓨터 시스템상에서 실행되는 웹 브라우저를 통해 실행될 수 있다.
단계 204에서, 사용자 정보에 대한 프롬프트(prompt)는 원격 컴퓨터 시스템으로부터 수신되고 사용자 컴퓨터 시스템에서 검출된다.
단계 204에서 프롬프트의 검출은 신용 카드 정보, 직불 카드 정보 또는 다른 지불 인증 정보와 같은 전자 지불 정보에 대한 프롬프트를 검출하는 것을 포함할 수 있다.
단계 204에서 프롬프트의 검출은 산업-표준 HTML(hypertext mark-up language) 신용 카드 형태와 같은 하나 또는 그 이상의 표준화된 지불 프롬프트들을 검출하는 것을 포함할 수 있다.
단계 204에서 프롬프트의 검출은 신용 카드 번호 필드들, 데이터 필드들, 및 화폐 디노미네이션(monetary denomination) 필드들과 같은 신용 카드 지불 트랜잭션들에 공통인 데이터 엔트리 필드들에 대해 입력되는 웹 페이지들을 검색하는 것을 포함한다.
프롬프트는 사용자 컴퓨터 시스템 상에서 실행되는 웹 브라우저 같은 애플리케이션에 의해 검출될 수 있다. 프롬프트를 검출하기 위한 컴퓨터 판독가능 명령어들은 브라우저 애플리케이션으로 작동하기 위해 브라우저 플러그-인으로서 구현될 수 있고, 머천트 웹 사이트 또는 금융 카드 프로세서 웹 사이트에 거의 수정을 하지 않거나 전혀 수정하지 않고 비교적 심리스하게(seamlessly) 구현될 수 있다.
프롬프트의 검출은 사용자 컴퓨터 시스템상에서 작동되는 브라우저와 머천트 웹 사이트 또는 금융 카드 프로세서 웹 사이트 간의 SSL(secure sockets layer) 채널 또는 TLS(transport layer security) 채널을 인터셉트하는(intercepting) 것을 포함할 수 있다.
프롬프트는 사용자 컴퓨터 시스템상에서 실행되는 VMM에 의해 검출될 수 있다.
단계 206에서, 사용자 정보를 위한 검출된 프롬프트에 응답하여 애플리케이션이 인보크된다. 단계 206에서의 애플리케이션의 인보크는 방법(100) 또는 그 일부를 수행하는 것을 포함할 수 있고, 보호된 메모리 도메인에서 사용자로부터 신용 카드 정보 및 지불 인증을 획득하는 것을 포함할 수 있다.
단계 208에서, 프롬프트는 보호된 메모리 도메인으로부터의 사용자 입력 데이터로 파퓰레이팅되고(populated), 요청자에게 리턴된다.
도 1을 참조하면, 단계 108에서의 렌더링은 입력 디스플레이 이미지를 상대적(relatively) 랜덤 또는 의사 랜덤 위치로 렌더링하는 것을 포함할 수 있고, 사용자 입력에 후속하여 그 이미지를 다른 랜덤 위치로 리-렌더링하는 것을 포함할 수 있다. 랜덤 포지셔닝(random positioning)은 진정한 랜덤 포지셔닝, 의사-랜덤 포지셔닝 및 복수의 사전 설정된 위치들 중 하나로의 포지셔닝 중 하나 또는 그 이상을 포함할 수 있다. 랜덤 포지셔닝은 사용자 입력을 렌더링된 이미지와 상관시키기 위해 스파이웨어 또는 다른 악성 코드의 능력을 줄이는데 도움이 될 수 있다.
도 3은 사용자 입력에 후속하여 이미지를 랜덤 위치로 렌더링하고 그 이미지를 다른 랜덤 위치로 리-렌더링하는 예시적인 방법(300)의 처리 흐름도이다. 본 방법(300)은 도 1에서의 단계 102 내지 106보다 우선될 수 있다.
단계 302에서, 비디오 프레임 버퍼의 랜덤 위치로 키보드 이미지가 렌더링된다. 키보드 이미지는 비디오 프레임 버퍼의 사이즈보다 작은 사이즈를 가져서, 비디오 프레임 버퍼 내의 복수의 랜덤 위치들로의 렌더링을 가능하게 한다.
단계 304에서, 도 1에서의 단계 110에 관하여 전술한 바와 같이 사용자 입력이 수신된다.
단계 306에서, 사용자 입력의 좌표들은 렌더링된 키보드 이미지와 상관되고, 사용자 선택 키들의 대응하는 표시들은 도 1에서의 단계 112 및 114에 관하여 전술한 바와 같이 보호된 메모리에 저장된다.
단계 308에서, 사용자가 추가 입력을 제공하고자 할 때, 키보드 이미지는 단계 310에서 비디오 프레임 버퍼 내의 다른 랜덤 위치로 리-렌더링된다. 단계 304에서의 사용자 입력의 수신 및 단계 306에서의 상관과 저장은 사용자 데이터 입력이 완료될 때까지 반복될 수 있다. 키보드 이미지는 각각의 사용자 입력에 후속하여 다른 랜덤 위치로 리-렌더링될 수 있다. 예컨대, 사용자가 멀티-디지트 시퀀스(multi-digit sequence)를 입력하고자 하는 경우, 키보드 이미지는 각각의 디지트 엔트리에 후속하여 다른 랜덤 위치로 리-렌더링될 수 있다.
키보드 이미지는 사용자 데이터 엔트리 완료 키의 이미지를 포함하여, 데이터 엔트리가 완료되는 것을 사용자가 표시하게 할 수 있다.
사용자 데이터 입력이 단계 308에서 완료될 때, 사용자 선택 키들의 저장된 표시들은 보호된 메모리 도메인으로부터 출력될 수 있고, 비디오 프레임 버퍼는 단계 312에서 보호된 메모리 도메인으로부터 릴리스될 수 있다.
도 1을 다시 참조하면, 단계 108에서의 입력 디스플레이 이미지의 렌더링은 사용자 이미지 위에 입력 디스플레이 이미지를 렌더링하는 것을 포함할 수 있다. 사용자 이미지는 보안 수단으로서 사용자에 의해 선택되어 미리 애플리케이션과 연관될 수 있다. 도 4는 사용자 이미지 위에 입력 디스플레이 이미지를 렌더링하는 예시적인 방법(400)의 처리 흐름도이다.
단계 402에서, 도 1에서의 단계 102에 관하여 전술한 바와 같이 보호된 메모리 도메인이 구성된다.
단계 404에서, 도 1에서의 단계 104에 관하여 전술한 바와 같이 보호된 메모리 도메인에서 애플리케이션이 개시된다.
단계 406에서, 사용자 이미지 또는 비트맵이 보호된 메모리 도메인으로 로딩된다. 사용자 이미지는 하드 드라이브와 같은 저장 장치로부터 암호화된 사용자 이미지로서 검색될 수 있다. 암호화된 사용자 이미지는 보호된 메모리 도메인에 로딩되고 암호해독될 수 있다.
암호해독은 단계 404에서 개시된 애플리케이션의 제어하에 수행될 수 있고, 암호해독 키는 애플리케이션의 정적 데이터 섹션들 및/또는 코드의 인증 또는 확인(validation) 시 보안 바이저 모듈에 의해 애플리케이션에 제공될 수 있다.
단계 408에서, 비디오 프레임 프런트 버퍼와, 제1 및 제2 비디오 프레임 백 버퍼들이 보호된 메모리 도메인에 할당된다.
단계 410에서, 도 3에서의 단계 302에 관하여 전술한 바와 같이 제1 비디오 프레임 백 버퍼의 랜덤 위치로 키보드 이미지가 렌더링된다.
단계 412에서, 사용자 이미지는 제1 비디오 프레임 백 버퍼에서 키보드 이미지의 랜덤 위치에 대응하는 위치에서 제2 비디오 프레임 백 버퍼로 렌더링된다. 사용자 이미지는 키보드 이미지의 사이즈보다 크고 비디오 프레임 프런트 버퍼의 사이즈보다 작은 사이즈를 가질 수 있다.
단계 414에서, 제1 및 제2 비디오 프레임 백 버퍼들은 비디오 프레임 프런트 버퍼에 병합된다(merged). 이 병합은 사용자 이미지의 일부를 키보드 이미지와 중첩하는(overlaying) 것을 포함할 수 있다. 이 병합은 BitBlt(bit block transfer) 또는 Blit(block image transfer)로서 수행될 수 있는데, 여기서 복수의 비트 맵들이 래스터링(rastering) 동작을 이용하여 결합된다.
단계 416에서, 도 1에서의 단계 110에 관하여 전술한 바와 같이 사용자 입력이 수신된다.
단계 418에서, 사용자 입력의 좌표들은 도 1에서의 단계 112 및 114에 관하여 전술한 바와 같이 렌더링된 키보드 이미지와 상관되고 보호된 메모리에 저장된다.
단계 420에서, 사용자가 추가 입력을 제공하고자 할 때, 키보드 이미지 및 사용자 이미지는 단계 422에서 대응하는 제1 및 제2 비디오 프레임 백 버퍼들 내의 다른 랜덤 위치로 리-렌더링된다.
단계 414에서의 병합, 단계 416에서의 사용자 입력의 수신, 및 단계 418에서의 상관과 저장은 사용자 데이터 입력이 완료될 때까지 반복될 수 있다. 키보드 이미지 및 사용자 이미지는 각각의 사용자 입력에 후속하여 다른 랜덤 위치로 리-렌더링될 수 있다.
사용자 데이터 입력이 단계 420에서 완료될 때, 사용자 선택 키들의 저장된 표시들은 보호된 메모리 도메인으로부터 출력될 수 있고, 비디오 프레임 버퍼는 단계 424에서 보호된 메모리 도메인으로부터 릴리스될 수 있다.
사용자 데이터 입력이 완료될 때, 확인 이미지(acknowledgement image)가 랜덤 위치로 렌더링되어 사용자가 대응하는 트랜잭션을 완료하게 할 수 있다.
도 5는 확인 이미지를 비디오 프레임 버퍼의 랜덤 위치로 렌더링하는 예시적인 방법(500)의 처리 흐름도이다. 본 방법(500)은, 도 1에서의 단계 114, 도 3에서의 단계 308 및 도 4에서의 단계 420 이후와 같이, 사용자 데이터 입력의 완료에 후속하여 구현될 수 있다.
단계 502에서, 확인 이미지가 보호된 메모리 도메인에서 비디오 프레임 버퍼로 렌더링된다. 확인 이미지는 도 4에 관하여 전술한 바와 같이 사용자 이미지 위에 렌더링될 수 있다.
단계 504에서, 도 1에서의 단계 110에 관하여 전술한 바와 같이 사용자 입력이 수신된다.
단계 506에서, 사용자 입력의 좌표들은 렌더링된 확인 이미지와 상관된다.
단계 506에서, 사용자 입력의 좌표들이 확인 이미지에 상관되는 경우, 사용자 선택 키들의 표시들과 같은 대응하는 사용자 입력 데이터는 보호된 메모리 도메인으로부터 출력될 수 있고, 비디오 프레임 버퍼는 단계 510에서 보호된 메모리 도메인으로부터 릴리스될 수 있다.
단계 506에서, 사용자 입력의 좌표들이 확인 이미지와 상관되지 않는 경우, 하나 이상의 액션이 발생할 수도 있다. 예를 들어, 확인 이미지가 취소 트랜잭션 이미지와 편집 데이터 이미지 중 하나 이상을 포함하여, 사용자가 트랜잭션을 취소하거나 트랜잭션을 편집하는 것을 택하도록 허용할 수도 있다.
전술한 하나 이상의 방법은 렌더링된 이미지에 상관되지 않는 사용자 입력을 카운트하는(counting) 단계 및 상관되지 않은(non-correlated) 입력의 수가 임계치를 초과할 때 트랜잭션을 중단하는 단계를 포함할 수도 있다. 이는 도처에서 클릭하는 공격(click-everywhere attacks)을 방해하는데 도움이 될 수도 있다.
도 6은 상관되지 않은 사용자 입력들을 검출하는 예시적인 방법(600)에 대한 처리 흐름도이다. 방법(600)은 여기 개시된 하나 이상의 다른 방법들과 관련하여 구현될 수도 있다.
단계 602에서, 이미지는 비디오 프레임 버퍼의 랜덤 위치에 렌더링된다. 이미지는 입력 디스플레이 이미지, 확인 이미지, 및 사용자 이미지 중 하나 이상을 포함할 수도 있다.
단계 604에서, 사용자 입력이 수신된다.
단계 606에서, 사용자 입력이 렌더링된 이미지와 상관되는지 여부에 대한 판정이 실시된다.
단계 606에서, 사용자 입력이 렌더링된 이미지와 상관되는 경우, 처리는 단계 608로 진행하고, 여기서, 사용자 입력은 상관(correlation)에 따라 처리된다. 이는 도 1의 단계 112에서의 상관, 도 3의 단계 306에서의 상관, 도 4의 단계 418에서의 상관, 및 도 5의 단계 506에서의 상관 중 하나 이상을 포함할 수도 있다.
사용자 입력이 렌더링된 이미지와 상관되지 않는 경우, 처리는 단계 610으로 진행하고, 여기서 에러 카운트(error count)가 증가된다.
단계 612에서, 에러 카운트가 임계치 아래일 때, 단계 614에서 이미지는 다른 랜덤 위치로 리-렌더링될 수도 있고, 처리는 단계 604로 돌아가 또 다른 사용자 입력을 수신할 수도 있다.
단계 612에서, 에러 카운트가 임계치 위일 때, 단계 616에서 하나 이상의 프로세스가 정지되거나 종결된다. 이는, 대응하는 네트워크 접속을 종결하는 단계, 비디오 프레임 버퍼의 콘텐츠 및/또는 이전에 입력된 사용자 데이터를 삭제하는 단계, 관리자에게 경보(alert) 또는 보고(report)를 보내는 단계, 및 애플리케이션을 종결하는 단계 중 하나 이상을 포함할 수도 있다.
도 7은 데이터 엔트리 이미지를 렌더링하고 보호된 메모리 도메인 내의 이미지에 대응하는 사용자 입력 선택을 수신하는 예시적인 방법(700)의 처리 흐름도이다. 방법(700)의 하나 이상의 특징들은 본원에서 하나 이상의 다른 방법들에 대하여 개시된 하나 이상의 특징들과 조합하여 구현될 수도 있다.
단계 702에서, 암호화되거나 그렇지 않으면 보호된 사용자 이미지가 보안 메모리 도메인에 로딩되어 암호해독된다. 보안 메모리 도메인은 하나 이상의 보호된 페이지 테이블들을 사용하여 구성될 수도 있다. 사용자 이미지는 사이트 키(site key)와 유사할 수도 있다.
단계 704에서, 키보드 이미지는 보안 디스플레이 스크린상에서 사용자 이미지의 맨 위에 랜덤 위치로 렌더링된다. 키보드 이미지는 사용자 이미지의 맨 위에서 블릿(blit)될 수 있다. 키보드 이미지와 하부의(underlying) 사용자 이미지의 조합을 여기에서는 보안 입력 스크린이라 부른다.
단계 706에서, 사용자가 키보드 이미지 위를 클릭할 때, 대응하는 키스트로크(keystroke)가 보안 디스플레이 스크린 상의 출력 영역에 기록되고 디스플레이되며, 보안 입력 이미지는 다른 위치에 랜덤하게 재배치된다. 이에 의해 공격자로부터의 추측 공격(guessing attacks)에 대비해 보호할 수도 있다.
사용자는 보안 입력 스크린을 통해 신용 카드/은행 카드 번호를 입력할 수도 있다. 대안적으로, 또는 부가적으로, 사용자는 신용 카드 번호와 같은 보안 정보 값에 액세스하기 위해 PIN(personal identification number)를 입력할 수도 있다. 비밀 값(secret value)은, 암호화된 사용자 이미지에 대해 전술한 바와 같이, 액세스 키로 보안될 수도 있다. 액세스 키는 인증된 애플리케이션에 보여질, 보안 바이저 비밀 플랫폼 키(security visor secret platform key)로서 보안될 수도 있다. 애플리케이션은 비밀 값을 언로크(unlock)하기 위해 PIN을 사용하도록 구성될 수도 있다. 이는 사용자에 의해 입력될 데이터량을 줄일 수도 있고 트랜잭션의 보안성을 증가시킬 수도 있다.
단계 708에서, 사용자 데이터 입력의 완료시, 보안 디스플레이 스크린에 확인 이미지가 렌더링되어 사용자가 트랜잭션 파라미터들을 확인할 것을 촉구한다. 전술한 바와 같이, 확인 이미지는 사용자 이미지 위에 렌더링될 수도 있다. 확인 이미지와 하부의 사용자 이미지의 조합은 여기에서 보안 확인 스크린(secure acknowledgment screen)으로 불린다.
보안 확인 스크린은, 사용자가 크리덴셜(credential) 및 트랜잭션 정보의 입력을 완료하였을 때 렌더링되는, 보호된 메모리 도메인에서의 또 다른 면으로서 보여질 수도 있다. 보안 확인 스크린은, 머천트 또는 카드 프로세서 사이트에 보내 질 머천트 네임(merchant name), 트랜잭션의 금전적 가치(monetary value), 날짜, 및 크리덴셜과 같은, 트랜잭션 정보를 포함할 수도 있다. 보안 확인 스크린은 정보를 디스플레이할 하나 이상의 라인들을 포함할 수도 있다.
단계 710에서, 사용자가 확인 이미지 위를 클릭하면, 이전에 입력된 키스트로크들 또는 그 외의 대응하는 사용자 정보가 보안 메모리 도메인으로부터 출력될 수도 있다. 키스트로크들 또는 그 외의 사용자 정보는 머천트 네트워크 사이트 또는 신용 카드 프로세서 네트워크 사이트로 출력될 수도 있다.
키스트로크들 또는 그 외의 사용자 정보는 출력 전에 암호화 및 서명될 수도 있다. 트랜잭션 정보는 머천트 또는 카드 프로세서의 공개 키로 암호화될 수도 있고, 사용자의 개인 키로 서명될 수도 있다. 트랜잭션의 금전적 가치, 사용자에 의해 입력된 신용 카드 번호, 트랜잭션 카운트, 및 머천트 정보 중 하나 이상에 해싱 함수(hashing function)가 적용되어 보안 트랜잭션 값을 생성할 수도 있다. 보안 트랜잭션 값은 머천트 또는 카드 프로세서에 보내질 수도 있다.
머천트 또는 카드 프로세싱 네트워크 사이트는, 증명서(certificate)에 의한 것과 같이, 사용자 컴퓨터에서 인증될 수도 있다. 이는 피싱 공격(phishing attacks)을 방해하는데 도움이 될 수도 있다.
확인 이미지는 랜덤하게 배치될 수도 있고, 확인 이미지에 상관되지 않은 사용자 클릭에 후속하여 랜덤하게 재배치될 수도 있다. 이는, 공격자가 이전 클릭들의 분석으로부터 확인 이미지의 위치를 판정하는 것을 막을 수도 있다. 상관되지 않은 사용자 클릭의 수가 임계 수를 초과할 때 트랜잭션은 중단될 수도 있다. 이는 무차별적인(brute force), 도처에서 클릭하는 공격을 방해하는데 도움이 될 수도 있다.
여기 개시된 하나 이상의 특징들은 개별 및 집적 회로 로직, ASIC(application specific integrated circuit) 로직, 및 마이크로컨트롤러를 포함하는, 하드웨어, 소프트웨어, 펌웨어 및 그들의 조합으로 구현될 수도 있고, 도메인-특정 집적 회로 패키지의 일부 또는 집적 회로 패키지들의 조합으로서 구현될 수도 있다. 여기서 사용된 소프트웨어라는 용어는, 컴퓨터 시스템으로 하여금, 여기 개시된 하나 이상의 특징들 및/또는 특징들의 조합들을 수행하게 하는 컴퓨터 프로그램 로직이 저장된 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품을 칭한다.
도 8은, 컴퓨터 프로그램 로직을 실행하기 위해, 여기서 프로세서(802) 및 그래픽 프로세서 GPU(804)로 예시된, 하나 이상의 컴퓨터 명령어 프로세싱 유닛을 포함하는 예시적인 컴퓨터 환경(800)에 대한 그래픽 도면이다. 프로세서(802)는 하나 이상의 범용 프로세서들 및/또는 프로세서 코어들을 포함할 수도 있다.
컴퓨터 시스템(800)은 메모리(806)를 포함하며, 메모리(806)는 AGP 어퍼쳐 메모리(advanced graphics processing aperture memory; 810)를 포함할 수도 있는, 비디오 메모리 또는 VRAM(812) 및 물리적 시스템 메모리 또는 RAM(random access memory)(808) 중 하나 이상을 포함할 수 있다. AGP 어퍼쳐 메모리(810)는 VRAM(812)에 추가하여 GPU(804)에 의해 사용될 수도 있다.
메모리(806)는, 프로세서(802) 및 GPU(804) 중 하나 이상이 응답으로서 하나 이상의 기능들을 수행하게 하는, 컴퓨터 프로그램 제품 로직 또는 명령어들이 저장된 컴퓨터 판독가능 매체를 포함할 수 있다.
메모리(806) 또는 그 일부의 물리적 어드레스들은 하나 이상의 동작 환경(814) 및 애플리케이션들에 대해 가상화될 수 있다(virtualized). 가상-물리 메모리 어드레스들(vitual-to-physical addresses) 간의 메모리 매핑들은 하나 이상의 액티브 페이지 테이블들(Active Page Tables: APTs)(818) 내에 유지될 수 있다.
하나 이상의 액세스 보호된 메모리 도메인들(access-protected memory domains)은 메모리(806) 내에 구성되고, 대응하는 메모리 어드레스 매핑들은 하나 이상의 보호된 페이지 테이블들(Protected Page Tables: PPT)(820) 내에 유지될 수 있다.
APT들(818) 및 PPT들(820)은 액세스 제어 관리자(824)의 제어 하에서 보안 바이저 환경(security visor environment)(822) 내에서 구성 및 구현될 수 있다.
도 9는, 도 8의 메모리(806)에 대응하는 예시적인 로직 및 데이터의 블록도이다.
도 9에서, 메모리(806)는 PPT들(820)로 구성될 수 있는 보호된 메모리 도메인(902)을 포함한다.
보호된 메모리 도메인(902)은, 도 1의 단계 104에 대해서 전술한 바와 같이, 인증될 수 있는 애플리케이션 로직(904)을 포함한다.
애플리케이션 로직(904)은, 도 1의 단계 106에 대하여 전술한 바와 같이, 프로세서(802)가 비디오 프레임 버퍼에 대응하는 위치 또는 어드레스 매핑, 또는 비디오 프레임 버퍼에 대한 포인터를 식별하게 하고, 비디오 프레임 버퍼를 액세스-보호(access-protect)하게 하는 비디오 프레임 버퍼 식별 및 보호 로직(906)을 포함할 수 있다. 도 9의 예에서, 비디오 프레임 버퍼(908)는 보호된 메모리 도메인(902) 내에 도시되어 있다. 비디오 프레임 버퍼(908)는 하나 이상의 백 버퍼들(910 내지 912)과, 프라이머리(primary) 또는 프런트 버퍼(914)를 포함할 수 있다.
애플리케이션 로직(904)은, 도 4의 단계 406에 대하여 전술한 바와 같이, 프로세서(802)가 암호화된 사용자 이미지를 보호된 메모리 도메인(902) 내에서 검색하게 하고, 사용자 이미지를 암호해독하게 하는 사용자 이미지 암호해독 로직(916)을 포함할 수 있다. 도 9의 예에서, 암호해독된 사용자 이미지(918)는 보호된 메모리 도메인(902) 내에 도시되어 있다.
애플리케이션 로직(904)은, 도 3에 대하여 전술한 바와 같이, 프로세서(802)가 입력 디스플레이 이미지(922)를 비디오 프레임 버퍼(908)의 랜덤 위치에 렌더링하게 하는 랜덤 렌더 로직(random render logic)(920)을 포함한다. 랜덤 렌더 로직(920)은, 도 4에 대하여 전술한 바와 같이, 프로세서(802)가 입력 디스플레이 이미지(922) 및 암호해독된 사용자 이미지(918)를 백 버퍼들(910 및 912) 내의 랜덤 위치에 각각 렌더링하게 하고, 이 이미지들을 백 버퍼들(910 및 912)로부터 프런트 버퍼(914)에 병합(merge) 또는 블릿(blit)하게 하는 로직을 포함할 수 있다.
랜덤 렌더 로직(920)은, 도 5의 단계 502에 대하여 전술한 바와 같이, 프로세서(802)가 확인 이미지(924)를 비디오 프레임 버퍼(908)의 랜덤 위치에 렌더링하게 하는 로직을 포함할 수 있다. 랜덤 렌더 로직(920)은, 도 4 및 5에 대하여 전술한 바와 같이, 프로세서(802)가 확인 이미지(924) 및 암호해독된 사용자 이미지(918)를 백 버퍼들(910 및 912) 내의 랜덤 위치에 각각 렌더링하게 하고, 이 이미지들을 백 버퍼들(910 및 912)로부터 프런트 버퍼(914)로 병합 또는 블릿하게 하는 로직을 포함할 수 있다.
애플리케이션 로직(904)은, 도 1의 단계 112 및 114에 대하여 각각 전술한 바와 같이, 프로세서(802)가 사용자 입력을 렌더링된 이미지들과 상관시키게 하고, 대응하는 사용자 입력을 보호된 메모리 도메인(902) 내에 사용자 입력 데이터(928)로서 저장하게 하는 상관 로직(926)을 포함할 수 있다.
애플리케이션 로직(904)은, 도 6에 대하여 전술한 바와 같이, 프로세서(802)가 렌더링된 이미지와 상관되지 않은 사용자 입력을 카운팅하게 하고, 상관되지 않은 사용자 입력의 수가 임계치를 초과할 때에 애플리케이션 로직(904)의 하나 이상의 부분들을 중단하게 하는 중단 로직(abort logic)(930)을 포함할 수 있다.
애플리케이션 로직(904)은 도 7에 대하여 전술한 바와 같이, 프로세서(802)가 신용 카드 정보와 같은 암호화된 사용자 값을 보호된 메모리 도메인(902) 내에서 검색하고, 이 사용자 값을 암호해독하게 하는 로직을 포함할 수 있다. 도 9의 예에서, 암호해독된 사용자 값(932)은 보호된 메모리 도메인(902) 내에 도시되어 있다.
메모리(806)는 프로세서(802)가 네트워크를 통해 하나 이상의 원격 컴퓨터 시스템들과 인터페이싱하게 하는 브라우저 로직(934)을 포함할 수 있다. 브라우저 로직(934)은, 도 2의 단계 204에 대하여 전술한 바와 같이, 프로세서(802)가 전자 지불 정보를 위한 프롬프트(prompt)와 같은, 원격 컴퓨터 시스템으로부터의 프롬프트를 검출하게 하는 프롬프트 검출 로직(936)을 포함할 수 있다. 브라우저 로직(934)은, 도 2의 단계 206에 대하여 전술한 바와 같이, 프로세서(802)가 보호된 메모리 도메인(902) 내의 애플리케이션 로직(904)을 개시하게 하고, 사용자 입력 데이터(928)로 프롬프트를 파퓰레이팅(populating)하게 하는 애플리케이션 개시 로직(938)을 포함할 수 있다. 프롬프트 검출 로직(936) 및 애플리케이션 개시 로직(938), 또는 그 일부들 중 하나 이상은, VMM 내에서 구현될 수 있다.
본 명세서에 개시된 방법들 및 시스템들은, 생물측정학적 스캐너들(biometric scanners)(이에 한정되는 것은 아님)을 포함하는 컴퓨터 시스템으로 정보를 전달하도록 구성 가능한 다른 장치들과 관련하여 구현될 수 있다.
본 명세서에 개시된 방법들 및 시스템들은, 기능들, 특징들, 및 그 관계들을 나타내는 기능 구축 블록의 도움으로 개시되어 있다. 이 기능 구축 블록들의 경계(boundary)들 중 적어도 일부는 설명의 편의를 위해 본 명세서에서 임의로 정의되었다. 특정 기능들 및 그 관계들이 적절하게 수행되는 한, 대안적인 경계들이 정의될 수 있다.
이 기술분야의 통상의 기술자는, 이 기능 구축 블록들이 개별 컴포넌트들, 애플리케이션 특정 집적 회로들, 적절한 소프트웨어를 실행하는 프로세서들, 및 그 조합들에 의해 구현될 수 있다는 것을 이해할 것이다.
다양한 실시예들이, 본 명세서에 개시되었지만, 이들은 단지 예로서만 제공되는 것일 뿐, 한정되는 것은 아님이 이해되어야 한다. 형태 및 상세의 다양한 변경들이 본 명세서에 개시된 방법들 및 시스템들의 사상 및 범위를 벗어남이 없이 이루어질 수 있음이 관련 기술분야의 통상의 기술자에게는 명백할 것이다. 따라서, 특허청구범위의 폭 및 범위는 본 명세서에 개시된 예시적 실시예들 중 어느 것에 의해서도 한정되어서는 안 된다.
802: 프로세서
806: 메모리
808: RAM
812: VRAM
824: 액세스 제어 관리자
806: 메모리
808: RAM
812: VRAM
824: 액세스 제어 관리자
Claims (26)
- 액세스 보호된(access-protected) 메모리 도메인 내로부터의 키보드 이미지(keyboard image)를 렌더링하고, 사용자 선택(user-selected) 키(key)들의 표시(indication)들을 수신하여 상기 액세스 보호된 메모리 도메인 내에 저장하는 방법으로서,
통신 네트워크를 통하여 원격 컴퓨터 시스템과 인터페이싱하는(interfacing) 단계;
상기 원격 컴퓨터 시스템으로부터 사용자 정보에 대한 프롬프트(prompt)를 검출하는 단계;
상기 프롬프트에 응답하여 액세스 보호된 메모리 도메인(access-protected memory domain) 내에서 애플리케이션 프로그램의 하나 이상의 프로세스를 개시하는(initiating) 단계;
비디오 프레임 버퍼를 상기 액세스 보호된 메모리 도메인에 할당하는 단계;
상기 액세스 보호된 메모리 도메인 내에 사용자 이미지를 로딩하여 암호해독하는(decrypting) 단계;
상기 비디오 프레임 버퍼 내의 랜덤 위치(random position)로 상기 암호해독된 사용자 이미지의 적어도 일부 위에 키보드 이미지를 렌더링하는 단계;
사용자 입력의 좌표들을 상기 렌더링된 키보드 이미지의 키와 상관시키는(corrlating) 단계;
상기 키의 표시를 상기 액세스 보호된 메모리 도메인에 저장하는 단계;
상기 사용자 입력이 상기 키보드 이미지와 상관되지 않을 때 에러 카운트(error count)를 증가시키는 단계;
상기 에러 카운트가 임계치를 초과할 때 상기 애플리케이션 프로그램의 하나 이상의 프로세스를 중단시키는 단계;
상기 사용자 입력이 상기 키보드 이미지와 상관되지 않고 상기 에러 카운트가 상기 임계치 미만일 때, 상기 비디오 프레임 버퍼 내의 다른 랜덤 위치로 상기 사용자 이미지의 적어도 일부 위에 상기 키보드 이미지를 리-렌더링하는 단계;
사용자 데이터 입력이 완료되지 않은 경우, 상기 비디오 프레임 버퍼 내의 다른 랜덤 위치로 상기 암호해독된 사용자 이미지의 적어도 일부 위에 상기 키보드 이미지를 리-렌더링(re-rendering)하고 다른 사용자 입력의 좌표들을 상기 리-렌더링된 키보드 이미지의 키와 상관시키고 그 키의 표시를 상기 액세스 보호된 메모리 도메인에 저장하는 단계; 및
사용자 데이터 입력이 완료된 경우, 상기 액세스 보호된 메모리 도메인으로부터 상기 키들의 표시들을 출력하는 단계
를 포함하고,
상기 출력하는 단계는, 상기 키들의 표시들로 상기 프롬프트를 파퓰레이팅하는(populating) 단계와, 상기 파퓰레이팅된 프롬프트를 상기 통신 네트워크를 통하여 상기 원격 컴퓨터 시스템으로 리턴(return)하는 단계를 포함하고,
상기 할당하는 단계, 상기 렌더링하는 단계, 상기 상관시키는 단계, 상기 저장하는 단계, 상기 리-렌더링하고 상관시키고 저장하는 단계, 및 상기 출력하는 단계는, 상기 액세스 보호된 메모리 도메인 내의 상기 애플리케이션 프로그램의 하나 이상의 프로세스의 제어하에서 수행되는 방법. - 제1항에 있어서,
상기 비디오 프레임 버퍼, 상기 키보드 이미지, 및 상기 애플리케이션 프로그램 및 대응하는 데이터와 연관된 물리적 어드레스들과 가상 어드레스들 간의 변환(translation)들을 하나 이상의 보호된 페이지 테이블에 유지하는 단계;
상기 액세스 보호된 메모리 도메인의 외부에서 실행되는 프로세스들에 의한 상기 보호된 페이지 테이블들에 대한 액세스를 방지(precluding)하는 단계; 및
상기 비디오 프레임 버퍼에 대한 포인터와 연관된 물리적 어드레스 및 가상 어드레스 간의 변환을, 액티브 페이지 테이블 내에서 이용가능하지 않은 것으로서 식별하는 단계
를 더 포함하는 방법. - 제1항에 있어서, 상기 애플리케이션 프로그램의 하나 이상의 프로세스를 개시하는 단계는, 신뢰 실행 모듈(trusted execution module)의 제어하에서 상기 보호된 메모리 도메인 내에 상기 애플리케이션 프로그램의 하나 이상의 프로세스를 로딩하고, 인증하고, 개시하는 단계를 포함하는 방법.
- 삭제
- 삭제
- 삭제
- 제1항에 있어서,
사용자 데이터 입력이 완료될 때, 상기 비디오 프레임 버퍼 내의 랜덤 위치로 상기 사용자 이미지의 적어도 일부 위에 확인 이미지(acknowledgement image)를 렌더링하는 단계;
후속하는 사용자 입력의 좌표들을 상기 렌더링된 확인 이미지와 상관시키는 단계;
상기 후속하는 사용자 입력의 좌표들과 상기 확인 이미지 간의 상관에 응답하여 상기 키들의 표시를 출력하는 단계;
상기 후속하는 사용자 입력이 상기 확인 이미지와 상관되지 않을 때 상기 에러 카운트를 증가시키는 단계;
상기 후속하는 사용자 입력이 상기 확인 이미지와 상관되지 않으며 상기 에러 카운트가 상기 임계치 미만일 때, 상기 비디오 프레임 버퍼 내의 다른 랜덤 위치로 상기 사용자 이미지의 적어도 일부 위에 상기 확인 이미지를 리-렌더링하는 단계; 및
상기 에러 카운트가 임계치를 초과하는 경우 상기 애플리케이션 프로그램의 하나 이상의 프로세스를 중단시키는 단계
를 더 포함하는 방법. - 제1항에 있어서,
상기 비디오 프레임 버퍼를 상기 액세스 보호된 메모리 도메인에 할당하는 단계는, 상기 비디오 프레임 버퍼의 일부를 상기 액세스 보호된 메모리 도메인에 할당하는 단계와, 상기 비디오 프레임 버퍼의 나머지 부분이, 상기 액세스 보호된 메모리 도메인 외부의 하나 이상의 프로세스에 의해 액세스되는 것을 허용하는 단계를 포함하며,
상기 렌더링하는 단계 및 상기 리-렌더링하는 단계는, 상기 액세스 보호된 메모리 도메인에 할당되는 상기 비디오 프레임 버퍼의 일부에 대해 수행되는 방법. - 액세스 보호된 메모리 도메인 내로부터의 키보드 이미지를 렌더링하고, 사용자 선택된 키들의 표시들을 수신하고, 상기 액세스 보호된 메모리 도메인 내에 저장하는 컴퓨터 시스템으로서,
액세스 보호된 메모리 도메인을 구성(configure)하고,
통신 네트워크를 통하여 원격 컴퓨터 시스템과 인터페이싱하고,
상기 원격 컴퓨터 시스템으로부터 사용자 정보에 대한 프롬프트를 검출하고,
상기 액세스 보호된 메모리 도메인 내에 애플리케이션 프로그램의 하나 이상의 프로세스를 로드하고,
상기 액세스 보호된 메모리 도메인 내에 로드된 상기 애플리케이션 프로그램의 하나 이상의 프로세스를 개시하고,
비디오 프레임 버퍼를 상기 액세스 보호된 메모리 도메인에 할당하고,
상기 액세스 보호된 메모리 도메인 내에 사용자 이미지를 로딩하여 암호해독하고,
상기 액세스 보호된 메모리 도메인으로부터의 키보드 이미지를 상기 비디오 프레임 버퍼 내의 랜덤 위치로 상기 암호해독된 사용자 이미지의 적어도 일부 위에 렌더링하고,
사용자 입력들의 좌표들을 상기 키보드 이미지의 키들과 상관시키고,
상기 액세스 보호된 메모리 도메인 내에 대응하는 키들의 표시들을 저장하고,
렌더링된 이미지와 상관되지 않는 사용자 입력들을 카운트하고, 상관되지 않은 사용자 입력들의 수가 임계치를 초과하는 경우 애플리케이션 프로그램 또는 애플리케이션 프로그램의 하나 이상의 프로세스를 중단하고,
상기 사용자 입력이 상기 키보드 이미지와 상관되지 않고 에러 카운트가 상기 임계치 미만일 때, 상기 비디오 프레임 버퍼 내의 다른 랜덤 위치로 상기 사용자 이미지의 적어도 일부 위에 상기 키보드 이미지를 리-렌더링하고,
사용자 데이터 입력이 완료되지 않은 경우, 사용자 입력에 응답하여 상기 비디오 프레임 버퍼의 다른 랜덤 위치로 상기 암호해독된 사용자 이미지의 적어도 일부 위에 상기 액세스 보호된 메모리 도메인으로부터의 상기 키보드 이미지를 리-렌더링(re-render)하고,
사용자 데이터 입력이 완료된 경우, 상기 액세스 보호된 메모리 도메인으로부터 상기 키들의 표시들을 출력하고 - 상기 출력은, 상기 키들의 표시들로 상기 프롬프트를 파퓰레이팅하는 것과, 상기 파퓰레이팅된 프롬프트를 상기 통신 네트워크를 통하여 상기 원격 컴퓨터 시스템으로 리턴하는 것을 포함함 -
상기 액세스 보호된 메모리 도메인 내에 로드되고 개시된 상기 애플리케이션 프로그램의 하나 이상의 프로세스의 제어 하에, 상기 비디오 프레임 버퍼를 할당하고, 상기 키보드 이미지를 렌더링 및 리-렌더링하고, 상기 좌표들을 상관시키고, 상기 표시들을 저장하고, 상기 표시들을 출력하도록 구성되는 컴퓨터 시스템. - 삭제
- 제9항에 있어서,
사용자 데이터의 입력에 응답하여, 상기 암호해독된 사용자 이미지 위에 상기 비디오 프레임 버퍼의 랜덤 위치로 상기 액세스 보호된 메모리 도메인으로부터의 확인(acknowledgement) 이미지를 렌더링하도록 더 구성되는 컴퓨터 시스템. - 삭제
- 삭제
- 제9항에 있어서, 상기 컴퓨터 시스템은 브라우저 및 상기 브라우저 내로부터의 상기 프롬프트를 검출하는 브라우저 플러그-인을 포함하는 컴퓨터 시스템.
- 제14항에 있어서, 상기 브라우저 플러그-인은 상기 원격 컴퓨터 시스템의 대응 웹 사이트를 변경하지 않고 상기 프롬프트를 검출하도록 구성되는 컴퓨터 시스템.
- 제14항에 있어서, 상기 브라우저 플러그-인은, 상기 컴퓨터 시스템과 상기 원격 컴퓨터 시스템 간의 보안 소켓 계층(secure sockets layer) 채널 및 트랜스포트 계층 보안(transport layer security) 채널 중 하나 이상을 인터셉트(intercept)하도록 구성되는 컴퓨터 시스템.
- 제9항에 있어서,
상기 비디오 프레임 버퍼, 상기 키보드 이미지, 및 애플리케이션 프로그램 및 대응하는 데이터와 연관된 물리적 어드레스들과 가상 어드레스들 간의 변환들을 하나 이상의 보호된 페이지 테이블 내에 유지하고,
상기 액세스 보호된 메모리 도메인의 외부에서 실행되는 프로세스들에 의한 상기 보호된 페이지 테이블들에 대한 액세스를 방지하고,
상기 비디오 프레임 버퍼에 대한 포인터와 연관된 물리적 어드레스와 가상 어드레스 간의 변환을, 액티브 페이지 테이블에서 이용가능하지 않은 것으로서 식별하도록 더 구성되는 컴퓨터 시스템. - 제9항에 있어서,
프로세서;
그래픽 프로세서; 및
상기 프로세서에 결합되고, 상기 그래픽 프로세서에 대해 액세스가능한 메모리
를 포함하고,
상기 액세스 보호된 메모리 도메인은 상기 그래픽 프로세서에 대해 액세스가능한 상기 메모리 내에 구성되고, 상기 비디오 프레임 버퍼는 상기 그래픽 프로세서에 대해 액세스가능한 컴퓨터 시스템. - 제18항에 있어서,
상기 액세스 보호된 메모리 도메인 내에 로드되는 애플리케이션 프로그램의 하나 이상의 프로세스를 인증하도록 구성되는 컴퓨터 시스템. - 통신 네트워크를 통하여 제1 컴퓨터 시스템과 제2 컴퓨터 시스템 사이를 인터페이싱하는 단계;
상기 제1 컴퓨터 시스템에서, 상기 제2 컴퓨터 시스템으로부터의 사용자 정보에 대한 프롬프트를 검출하는 단계;
검출된 상기 프롬프트에 응답하여, 프로세서에 의해 상기 프로세서를 포함하는 상기 제1 컴퓨터 시스템의 액세스 보호된 메모리 도메인 내에서 애플리케이션 프로그램을 실행하는 단계;
상기 애플리케이션 프로그램에 의해, 상기 제1 컴퓨터 시스템의 비디오 프레임 버퍼를 상기 액세스 보호된 메모리 도메인에 할당하는 단계;
상기 애플리케이션 프로그램에 의해, 상기 액세스 보호된 메모리 도메인 내에 사용자 이미지를 로딩하여 암호해독하는 단계;
상기 비디오 프레임 버퍼 내의 랜덤 위치로 상기 암호해독된 사용자 이미지의 적어도 일부 위에 키보드 이미지를 렌더링하는 단계;
상기 애플리케이션 프로그램에 의해서, 사용자 입력의 좌표들을 상기 렌더링된 키보드 이미지의 키와 상관시키는 단계;
상기 애플리케이션 프로그램에 의해서, 상기 키의 표시를 상기 액세스 보호된 메모리 도메인에 저장하는 단계;
상기 사용자 입력이 상기 렌더링된 키보드 이미지와 상관되지 않을 때 에러 카운트를 증가시키는 단계;
에러 카운트가 임계치를 초과할 때 상기 애플리케이션 프로그램의 하나 이상의 프로세스를 중단시키는 단계;
상기 사용자 입력이 상기 렌더링된 키보드 이미지와 상관되지 않고 상기 에러 카운트가 상기 임계치 미만일 때, 상기 비디오 프레임 버퍼 내의 다른 랜덤 위치로 상기 암호해독된 사용자 이미지 위에 상기 키보드 이미지를 리-렌더링하는 단계;
사용자 데이터 입력이 완료되지 않은 경우, 상기 비디오 프레임 버퍼 내의 다른 랜덤 위치로 상기 암호 해독된 사용자 이미지의 적어도 일부 위에 상기 키보드 이미지를 리-렌더링하고 다른 사용자 입력의 좌표들을 상기 리-렌더링된 키보드 이미지의 키와 상관시키고 그 키의 표시를 상기 액세스 보호된 메모리 도메인에 저장하는 단계; 및
사용자 데이터 입력이 완료된 경우, 상기 애플리케이션 프로그램에 의해서, 상기 액세스 보호된 메모리 도메인으로부터 키들의 표시들을 출력하는 단계
를 포함하고,
상기 출력하는 단계는, 상기 키들의 표시들로 상기 프롬프트를 파퓰레이팅하는 단계와, 상기 파퓰레이팅된 프롬프트를 상기 통신 네트워크를 통하여 상기 제2 컴퓨터 시스템으로 리턴하는 단계를 포함하는 방법. - 제20항에 있어서,
상기 비디오 프레임 버퍼, 상기 키보드 이미지, 및 상기 애플리케이션 프로그램 및 대응하는 데이터와 연관된 물리적 어드레스들과 가상 어드레스들 간의 변환(translation)들을 하나 이상의 보호된 페이지 테이블에 유지하는 단계;
상기 애플리케이션 프로그램에 대해 상기 보호된 페이지 테이블들에 대한 액세스를 제한하는 단계; 및
상기 비디오 프레임 버퍼에 대한 포인터와 연관된 물리적 어드레스 및 가상 어드레스 간의 변환을, 액티브 페이지 테이블 내에서 이용가능하지 않은 것으로서 식별하는 단계
를 더 포함하는 방법. - 제20항에 있어서,
신뢰 실행 모듈의 제어하에서 상기 액세스 보호된 메모리 도메인 내에 상기 애플리케이션 프로그램의 하나 이상의 프로세스를 로딩하고 인증하는 단계를 더 포함하는 방법. - 삭제
- 삭제
- 제20항에 있어서,
상기 애플리케이션 프로그램과 상기 프로세서의 제어 하에,
사용자 데이터 입력이 완료될 때, 상기 비디오 프레임 버퍼 내의 랜덤 위치로 상기 암호해독된 사용자 이미지의 적어도 일부 위에 확인 이미지를 렌더링하는 단계;
후속하는 사용자 입력의 좌표들과 상기 확인 이미지가 상관되는 경우 상기 키들의 표시를 출력하는 단계;
상기 후속하는 사용자 입력이 상기 확인 이미지와 상관되지 않을 때 에러 카운트를 증가시키는 단계;
상기 후속하는 사용자 입력이 상기 확인 이미지와 상관되지 않으며 상기 에러 카운트가 임계치 미만일 때, 상기 비디오 프레임 버퍼 내의 다른 랜덤 위치로 상기 암호해독된 사용자 이미지의 적어도 일부 위에 상기 확인 이미지를 리-렌더링하는 단계; 및
상기 에러 카운트가 임계치를 초과하는 경우 상기 애플리케이션 프로그램의 하나 이상의 프로세스를 중단시키는 단계
를 더 포함하는 방법. - 제20항에 있어서,
상기 비디오 프레임 버퍼를 상기 액세스 보호된 메모리 도메인에 할당하는 단계는, 상기 비디오 프레임 버퍼의 일부를 상기 액세스 보호된 메모리 도메인에 할당하는 단계와, 상기 비디오 프레임 버퍼의 나머지 부분이, 상기 액세스 보호된 메모리 도메인 외부의 하나 이상의 프로세스에 의해 액세스되는 것을 허용하는 단계를 포함하며,
상기 렌더링하는 단계 및 상기 리-렌더링하는 단계는, 상기 액세스 보호된 메모리 도메인에 할당되는 상기 비디오 프레임 버퍼의 일부에 대해 수행되는 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/347,576 US8364601B2 (en) | 2008-12-31 | 2008-12-31 | Methods and systems to directly render an image and correlate corresponding user input in a secure memory domain |
US12/347,576 | 2008-12-31 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090131006A Division KR20100080401A (ko) | 2008-12-31 | 2009-12-24 | 보안 메모리 도메인에 이미지를 직접 렌더링하고 대응하는 사용자 입력을 상관시키는 방법 및 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20120135165A KR20120135165A (ko) | 2012-12-12 |
KR101390077B1 true KR101390077B1 (ko) | 2014-04-29 |
Family
ID=42034503
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090131006A KR20100080401A (ko) | 2008-12-31 | 2009-12-24 | 보안 메모리 도메인에 이미지를 직접 렌더링하고 대응하는 사용자 입력을 상관시키는 방법 및 시스템 |
KR1020120121514A KR101390077B1 (ko) | 2008-12-31 | 2012-10-30 | 보안 메모리 도메인에 이미지를 직접 렌더링하고 대응하는 사용자 입력을 상관시키는 방법 및 시스템 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090131006A KR20100080401A (ko) | 2008-12-31 | 2009-12-24 | 보안 메모리 도메인에 이미지를 직접 렌더링하고 대응하는 사용자 입력을 상관시키는 방법 및 시스템 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8364601B2 (ko) |
EP (1) | EP2204758A3 (ko) |
JP (1) | JP4937339B2 (ko) |
KR (2) | KR20100080401A (ko) |
CN (1) | CN101840469B (ko) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8207983B2 (en) * | 2009-02-18 | 2012-06-26 | Stmicroelectronics International N.V. | Overlaying videos on a display device |
US8780122B2 (en) | 2009-09-16 | 2014-07-15 | Nvidia Corporation | Techniques for transferring graphics data from system memory to a discrete GPU |
US9111325B2 (en) * | 2009-12-31 | 2015-08-18 | Nvidia Corporation | Shared buffer techniques for heterogeneous hybrid graphics |
US8856319B1 (en) | 2010-02-03 | 2014-10-07 | Citrix Systems, Inc. | Event and state management in a scalable cloud computing environment |
US8775590B2 (en) * | 2010-09-02 | 2014-07-08 | International Business Machines Corporation | Reactive monitoring of guests in a hypervisor environment |
TWI607376B (zh) * | 2011-04-08 | 2017-12-01 | 系微股份有限公司 | 用於處理改變依照統一可延伸韌體介面計算裝置中之系統安全資料庫及韌體儲存區請求的系統及方法 |
KR101689204B1 (ko) * | 2011-09-07 | 2016-12-23 | 인텔 코포레이션 | 디바이스의 펌웨어 무결성 검증 |
WO2013081589A1 (en) * | 2011-11-30 | 2013-06-06 | Intel Corporation | Securing inputs from malware |
WO2013081406A1 (en) * | 2011-12-02 | 2013-06-06 | Samsung Electronics Co., Ltd. | Method and apparatus for securing touch input |
CN104137026B (zh) * | 2011-12-30 | 2017-05-10 | 英特尔公司 | 用于制图识别的方法、装置和系统 |
US8973095B2 (en) * | 2012-06-25 | 2015-03-03 | Intel Corporation | Authenticating a user of a system via an authentication image mechanism |
GB201212878D0 (en) | 2012-07-20 | 2012-09-05 | Pike Justin | Authentication method and system |
US9769123B2 (en) * | 2012-09-06 | 2017-09-19 | Intel Corporation | Mitigating unauthorized access to data traffic |
EP2747071A1 (de) * | 2012-12-21 | 2014-06-25 | Deutsche Telekom AG | Anzeige eines fälschungssicheren Identitätsindikators |
KR20140099135A (ko) * | 2013-02-01 | 2014-08-11 | 삼성전자주식회사 | 이미지의 부분 프레임을 업데이트 하는 시스템 온 칩 및 그 동작방법 |
KR20140111790A (ko) * | 2013-03-12 | 2014-09-22 | 삼성전자주식회사 | 가상 키보드에서 난수를 이용한 키 입력 방법 및 장치 |
WO2015094261A1 (en) * | 2013-12-19 | 2015-06-25 | Intel Corporation | Policy-based trusted inspection of rights managed content |
US20150212658A1 (en) * | 2014-01-24 | 2015-07-30 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Indicating altered user interface elements |
US9009468B1 (en) * | 2014-08-26 | 2015-04-14 | MagicCube, Inc. | System for transaction authentication |
US9507951B2 (en) * | 2014-10-20 | 2016-11-29 | Intel Corporation | Technologies for secure input and display of virtual touch user interfaces |
EP3021249A1 (en) * | 2014-11-13 | 2016-05-18 | Gemalto Sa | System for securely entering a private code |
US9940455B2 (en) * | 2015-02-25 | 2018-04-10 | International Business Machines Corporation | Programming code execution management |
GB201520741D0 (en) | 2015-05-27 | 2016-01-06 | Mypinpad Ltd And Licentia Group Ltd | Authentication methods and systems |
US10025550B2 (en) * | 2016-03-15 | 2018-07-17 | Intel Corporation | Fast keyboard for screen mirroring |
GB2549118B (en) * | 2016-04-05 | 2020-12-16 | Samsung Electronics Co Ltd | Electronic payment system using identity-based public key cryptography |
US11233658B2 (en) * | 2019-08-14 | 2022-01-25 | OX Labs Inc. | Digital transaction signing for multiple client devices using secured encrypted private keys |
US11392721B2 (en) * | 2019-12-13 | 2022-07-19 | At&T Intellectual Property I, L.P. | Virtual machine formjacking protection |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080115078A1 (en) | 2006-11-13 | 2008-05-15 | Sandeep Suresh Girgaonkar | Method for secure data entry in an application |
Family Cites Families (101)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5557798A (en) | 1989-07-27 | 1996-09-17 | Tibco, Inc. | Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes |
EP0447145B1 (en) | 1990-03-12 | 2000-07-12 | Hewlett-Packard Company | User scheduled direct memory access using virtual addresses |
US5483641A (en) | 1991-12-17 | 1996-01-09 | Dell Usa, L.P. | System for scheduling readahead operations if new request is within a proximity of N last read requests wherein N is dependent on independent activities |
US6208805B1 (en) * | 1992-02-07 | 2001-03-27 | Max Abecassis | Inhibiting a control function from interfering with a playing of a video |
US7054547B1 (en) * | 1992-02-07 | 2006-05-30 | Max Abecassis | Disc having a segment code for prohibiting a play control function during a playing of a video segment |
US5312673A (en) | 1992-07-28 | 1994-05-17 | Bradford Industries, Inc. | Adhesive system for athletic lettering and the like |
US5379400A (en) | 1992-08-07 | 1995-01-03 | International Business Machines Corp. | Method and system for determining memory refresh rate |
DE69429777T2 (de) | 1993-09-30 | 2002-10-17 | Apple Computer | System zur dezentralen massenspeichersteuerung eines rechners mit virtuellem speicher |
US5634043A (en) | 1994-08-25 | 1997-05-27 | Intel Corporation | Microprocessor point-to-point communication |
US5687370A (en) | 1995-01-31 | 1997-11-11 | Next Software, Inc. | Transparent local and distributed memory management system |
FR2744818B1 (fr) | 1996-02-12 | 1998-03-27 | Bull Sa | Procede de verification de la conservation de l'integrite d'une requete emise sans protection par un client vers un serveur au moyen de l'integrite de la reponse |
US6542919B1 (en) | 1996-03-22 | 2003-04-01 | Koninklijke Philips Electronics N.V. | Operating system for use with protection domains in a single address space |
US5944821A (en) | 1996-07-11 | 1999-08-31 | Compaq Computer Corporation | Secure software registration and integrity assessment in a computer system |
US5991881A (en) | 1996-11-08 | 1999-11-23 | Harris Corporation | Network surveillance system |
JPH10228421A (ja) | 1997-02-14 | 1998-08-25 | Nec Ic Microcomput Syst Ltd | メモリアクセス制御回路 |
US6360244B1 (en) | 1997-04-11 | 2002-03-19 | Fujitsu Limited | System and method for multi-level memory domain protection |
US5987557A (en) | 1997-06-19 | 1999-11-16 | Sun Microsystems, Inc. | Method and apparatus for implementing hardware protection domains in a system with no memory management unit (MMU) |
US6061449A (en) * | 1997-10-10 | 2000-05-09 | General Instrument Corporation | Secure processor with external memory using block chaining and block re-ordering |
US6163834A (en) | 1998-01-07 | 2000-12-19 | Tandem Computers Incorporated | Two level address translation and memory registration system and method |
US6496847B1 (en) | 1998-05-15 | 2002-12-17 | Vmware, Inc. | System and method for virtualizing computer systems |
US6105137A (en) | 1998-07-02 | 2000-08-15 | Intel Corporation | Method and apparatus for integrity verification, authentication, and secure linkage of software modules |
US6321276B1 (en) | 1998-08-04 | 2001-11-20 | Microsoft Corporation | Recoverable methods and systems for processing input/output requests including virtual memory addresses |
JP4763866B2 (ja) | 1998-10-15 | 2011-08-31 | インターシア ソフトウェア エルエルシー | 2重再暗号化によりデジタルデータを保護する方法及び装置 |
US6832257B1 (en) | 1998-12-07 | 2004-12-14 | Sony Corporation | Computer, recorded medium on which address validity checking program is recorded, and address validity checking method |
US6732220B2 (en) | 1999-02-17 | 2004-05-04 | Elbrus International | Method for emulating hardware features of a foreign architecture in a host operating system environment |
WO2001001262A1 (fr) | 1999-06-24 | 2001-01-04 | Fujitsu Limited | Controleur de peripherique et systeme d'entree/sortie |
US7650504B2 (en) | 1999-07-22 | 2010-01-19 | Macrovision Corporation | System and method of verifying the authenticity of dynamically connectable executable images |
US6779117B1 (en) * | 1999-07-23 | 2004-08-17 | Cybersoft, Inc. | Authentication program for a computer operating system |
US6751737B1 (en) | 1999-10-07 | 2004-06-15 | Advanced Micro Devices | Multiple protected mode execution environments using multiple register sets and meta-protected instructions |
GB2371658B (en) | 1999-10-25 | 2004-01-28 | Phoenix Tech Ltd | Secure software SMI dispatching using caller address |
US6571333B1 (en) | 1999-11-05 | 2003-05-27 | Intel Corporation | Initializing a memory controller by executing software in second memory to wakeup a system |
US6738882B1 (en) | 1999-11-30 | 2004-05-18 | Hewlett-Packard Development Company, L.P. | Concurrent multi-processor memory testing beyond 32-bit addresses |
US6658515B1 (en) | 2000-01-25 | 2003-12-02 | Dell Usa, L.P. | Background execution of universal serial bus transactions |
US6983374B2 (en) | 2000-02-14 | 2006-01-03 | Kabushiki Kaisha Toshiba | Tamper resistant microprocessor |
US6553438B1 (en) | 2000-04-24 | 2003-04-22 | Intel Corporation | Methods and system for message resource pool with asynchronous and synchronous modes of operation |
US6931540B1 (en) | 2000-05-31 | 2005-08-16 | Networks Associates Technology, Inc. | System, method and computer program product for selecting virus detection actions based on a process by which files are being accessed |
US6751720B2 (en) | 2000-06-10 | 2004-06-15 | Hewlett-Packard Development Company, L.P. | Method and system for detecting and resolving virtual address synonyms in a two-level cache hierarchy |
US6954861B2 (en) | 2000-07-14 | 2005-10-11 | America Online, Inc. | Identifying unauthorized communication systems based on their memory contents |
US6487643B1 (en) | 2000-09-29 | 2002-11-26 | Intel Corporation | Method and apparatus for preventing starvation in a multi-node architecture |
US6996551B2 (en) | 2000-12-18 | 2006-02-07 | International Business Machines Corporation | Apparata, articles and methods for discovering partially periodic event patterns |
US6907600B2 (en) | 2000-12-27 | 2005-06-14 | Intel Corporation | Virtual translation lookaside buffer |
US6567897B2 (en) | 2001-03-01 | 2003-05-20 | International Business Machines Corporation | Virtualized NVRAM access methods to provide NVRAM CHRP regions for logical partitions through hypervisor system calls |
US20030037237A1 (en) | 2001-04-09 | 2003-02-20 | Jean-Paul Abgrall | Systems and methods for computer device authentication |
US6684305B1 (en) | 2001-04-24 | 2004-01-27 | Advanced Micro Devices, Inc. | Multiprocessor system implementing virtual memory using a shared memory, and a page replacement method for maintaining paged memory coherence |
WO2002091146A2 (en) | 2001-05-09 | 2002-11-14 | Ecd Systems, Inc. | Systems and methods for the prevention of unauthorized use and manipulation of digital content |
US7478394B1 (en) | 2001-06-04 | 2009-01-13 | Hewlett-Packard Development Company, L.P. | Context-corrupting context switching |
US6671791B1 (en) | 2001-06-15 | 2003-12-30 | Advanced Micro Devices, Inc. | Processor including a translation unit for selectively translating virtual addresses of different sizes using a plurality of paging tables and mapping mechanisms |
US7093118B2 (en) | 2001-06-27 | 2006-08-15 | Intel Corporation | System and method for external bus device support |
US6920534B2 (en) | 2001-06-29 | 2005-07-19 | Intel Corporation | Virtual-port memory and virtual-porting |
US8001594B2 (en) | 2001-07-30 | 2011-08-16 | Ipass, Inc. | Monitoring computer network security enforcement |
US6685567B2 (en) | 2001-08-08 | 2004-02-03 | Igt | Process verification |
US6883116B2 (en) | 2001-09-27 | 2005-04-19 | International Business Machines Corporation | Method and apparatus for verifying hardware implementation of a processor architecture in a logically partitioned data processing system |
US7062650B2 (en) | 2001-09-28 | 2006-06-13 | Intel Corporation | System and method for verifying integrity of system with multiple components |
US6823433B1 (en) | 2001-11-13 | 2004-11-23 | Advanced Micro Devices, Inc. | Memory management system and method for providing physical address based memory access security |
US6850994B2 (en) | 2001-11-16 | 2005-02-01 | Microsoft Corporation | Method for determining status of a computer device and detecting device behavior in response to a status request |
US6804741B2 (en) | 2002-01-16 | 2004-10-12 | Hewlett-Packard Development Company, L.P. | Coherent memory mapping tables for host I/O bridge |
JP2003281071A (ja) | 2002-03-20 | 2003-10-03 | Seiko Epson Corp | データ転送制御装置、電子機器及びデータ転送制御方法 |
US7127548B2 (en) | 2002-04-16 | 2006-10-24 | Intel Corporation | Control register access virtualization performance improvement in the virtual-machine architecture |
JP2003330365A (ja) | 2002-05-09 | 2003-11-19 | Toshiba Corp | コンテンツ配布/受信方法 |
US20030229794A1 (en) | 2002-06-07 | 2003-12-11 | Sutton James A. | System and method for protection against untrusted system management code by redirecting a system management interrupt and creating a virtual machine container |
US6922766B2 (en) | 2002-09-04 | 2005-07-26 | Cray Inc. | Remote translation mechanism for a multi-node system |
US7107497B2 (en) | 2002-09-30 | 2006-09-12 | Sun Microsystems, Inc. | Method and system for event publication and subscription with an event channel from user level and kernel level |
US7028229B2 (en) | 2002-09-30 | 2006-04-11 | Sun Microsystems, Inc. | Kernel event subscription and publication system and method |
US20040073809A1 (en) * | 2002-10-10 | 2004-04-15 | Wing Keong Bernard Ignatius Ng | System and method for securing a user verification on a network using cursor control |
CN1220128C (zh) * | 2003-01-22 | 2005-09-21 | 王洋 | 键值可随机变化的智能保密键盘 |
US7111200B2 (en) | 2003-04-17 | 2006-09-19 | International Business Machines Corporation | Apparatus and method for debugging a logical partition |
US20040226009A1 (en) | 2003-05-09 | 2004-11-11 | International Business Machines Corporation | System and method for software application task abstraction |
US6961852B2 (en) | 2003-06-19 | 2005-11-01 | International Business Machines Corporation | System and method for authenticating software using hidden intermediate keys |
US7010630B2 (en) | 2003-06-30 | 2006-03-07 | International Business Machines Corporation | Communicating to system management in a data processing system |
US7103779B2 (en) | 2003-09-18 | 2006-09-05 | Apple Computer, Inc. | Method and apparatus for incremental code signing |
US7542026B2 (en) | 2003-11-03 | 2009-06-02 | International Business Machines Corporation | Apparatus method and system for improved feedback of pointing device event processing |
US20050132122A1 (en) | 2003-12-16 | 2005-06-16 | Rozas Carlos V. | Method, apparatus and system for monitoring system integrity in a trusted computing environment |
US20050138417A1 (en) | 2003-12-19 | 2005-06-23 | Mcnerney Shaun C. | Trusted network access control system and method |
US7225325B2 (en) | 2003-12-30 | 2007-05-29 | International Business Machines Corporation | Customizing a computer system by using stored configuration parameters in a configuration mechanism |
US7831838B2 (en) | 2004-03-05 | 2010-11-09 | Microsoft Corporation | Portion-level in-memory module authentication |
US20050213768A1 (en) | 2004-03-24 | 2005-09-29 | Durham David M | Shared cryptographic key in networks with an embedded agent |
US7653727B2 (en) | 2004-03-24 | 2010-01-26 | Intel Corporation | Cooperative embedded agents |
US7401230B2 (en) | 2004-03-31 | 2008-07-15 | Intel Corporation | Secure virtual machine monitor to tear down a secure execution environment |
US7594124B2 (en) | 2004-06-09 | 2009-09-22 | Intel Corporation | Cross validation of data using multiple subsystems |
US7558966B2 (en) | 2004-06-09 | 2009-07-07 | Intel Corporation | Notifying remote administrator of platform integrity determination |
US7802250B2 (en) | 2004-06-28 | 2010-09-21 | Intel Corporation | Support for transitioning to a virtual machine monitor based upon the privilege level of guest software |
US20050289311A1 (en) | 2004-06-29 | 2005-12-29 | David Durham | System and method for secure inter-platform and intra-platform communications |
US7644287B2 (en) | 2004-07-29 | 2010-01-05 | Microsoft Corporation | Portion-level in-memory module authentication |
US7281102B1 (en) | 2004-08-12 | 2007-10-09 | Vmware, Inc. | Restricting memory access to protect data when sharing a common address space |
US7571474B2 (en) | 2004-12-30 | 2009-08-04 | Intel Corporation | System security event notification aggregation and non-repudiation |
US7577848B2 (en) | 2005-01-18 | 2009-08-18 | Microsoft Corporation | Systems and methods for validating executable file integrity using partial image hashes |
US7739517B2 (en) | 2005-03-31 | 2010-06-15 | Intel Corporation | Hardware-based authentication of a software program |
US7603484B2 (en) | 2005-04-21 | 2009-10-13 | Microsoft Corporation | Protocol for communication with a user-mode device driver |
US20060294596A1 (en) | 2005-06-27 | 2006-12-28 | Priya Govindarajan | Methods, systems, and apparatus to detect unauthorized resource accesses |
US20070006175A1 (en) | 2005-06-30 | 2007-01-04 | David Durham | Intra-partitioning of software components within an execution environment |
US7587612B2 (en) | 2005-06-30 | 2009-09-08 | Intel Corporation | Generating and communicating information on locations of program sections in memory |
US20070006307A1 (en) | 2005-06-30 | 2007-01-04 | Hahn Scott D | Systems, apparatuses and methods for a host software presence check from an isolated partition |
US20070005935A1 (en) | 2005-06-30 | 2007-01-04 | Khosravi Hormuzd M | Method and apparatus for securing and validating paged memory system |
US7669242B2 (en) | 2005-06-30 | 2010-02-23 | Intel Corporation | Agent presence monitor configured to execute in a secure environment |
US7953980B2 (en) | 2005-06-30 | 2011-05-31 | Intel Corporation | Signed manifest for run-time verification of software program identity and integrity |
US7761674B2 (en) | 2005-12-30 | 2010-07-20 | Intel Corporation | Identifier associated with memory locations for managing memory accesses |
CN1825796A (zh) * | 2006-03-29 | 2006-08-30 | 刘大扬 | 基于图片键盘的网络加密系统及其操作方法 |
JP2008033747A (ja) * | 2006-07-31 | 2008-02-14 | Fuji Xerox Co Ltd | 入力情報保護システム及びプログラム |
US20080077767A1 (en) | 2006-09-27 | 2008-03-27 | Khosravi Hormuzd M | Method and apparatus for secure page swapping in virtual memory systems |
CN201035502Y (zh) * | 2006-12-28 | 2008-03-12 | 上海麦柯信息技术有限公司 | 安全随机动态软键盘 |
US8364973B2 (en) | 2007-12-31 | 2013-01-29 | Intel Corporation | Dynamic generation of integrity manifest for run-time verification of software program |
-
2008
- 2008-12-31 US US12/347,576 patent/US8364601B2/en not_active Expired - Fee Related
-
2009
- 2009-12-23 EP EP09252894A patent/EP2204758A3/en not_active Withdrawn
- 2009-12-24 KR KR1020090131006A patent/KR20100080401A/ko active Application Filing
- 2009-12-24 JP JP2009293555A patent/JP4937339B2/ja not_active Expired - Fee Related
- 2009-12-25 CN CN200911000268.0A patent/CN101840469B/zh not_active Expired - Fee Related
-
2012
- 2012-10-30 KR KR1020120121514A patent/KR101390077B1/ko not_active IP Right Cessation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080115078A1 (en) | 2006-11-13 | 2008-05-15 | Sandeep Suresh Girgaonkar | Method for secure data entry in an application |
Also Published As
Publication number | Publication date |
---|---|
KR20100080401A (ko) | 2010-07-08 |
US20100169666A1 (en) | 2010-07-01 |
CN101840469B (zh) | 2017-10-13 |
JP2010170543A (ja) | 2010-08-05 |
CN101840469A (zh) | 2010-09-22 |
EP2204758A2 (en) | 2010-07-07 |
US8364601B2 (en) | 2013-01-29 |
JP4937339B2 (ja) | 2012-05-23 |
EP2204758A3 (en) | 2010-12-15 |
KR20120135165A (ko) | 2012-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101390077B1 (ko) | 보안 메모리 도메인에 이미지를 직접 렌더링하고 대응하는 사용자 입력을 상관시키는 방법 및 시스템 | |
EP2183695B1 (en) | Device with a secure virtual machine | |
US9471511B2 (en) | System and methods for CPU copy protection of a computing device | |
KR101504857B1 (ko) | 보안 시스템에서 랜덤하게 할당된 메모리 범위로 jit를 지원하는 시스템 및 방법 | |
Amiri Sani | Schrodintext: Strong protection of sensitive textual content of mobile applications | |
US8996883B2 (en) | Securing inputs from malware | |
CN105320895B (zh) | 用于联机加密处理的高性能自主硬件引擎 | |
US20160094555A1 (en) | System and methods for executing encrypted managed programs | |
CN113302613B (zh) | 旁路保护 | |
Oh et al. | Trustore: Side-channel resistant storage for sgx using intel hybrid cpu-fpga | |
US9195821B2 (en) | System and methods for remote software authentication of a computing device | |
US20190103074A1 (en) | Technologies for secure z-order enforcement with trusted display | |
Mittal et al. | A survey of techniques for improving security of gpus | |
Zhang et al. | Memory forensic challenges under misused architectural features | |
US10303885B2 (en) | Methods and systems for securely executing untrusted software | |
Van Bulck et al. | Breaking virtual memory protection and the SGX ecosystem with foreshadow | |
Chu et al. | Ocram-assisted sensitive data protection on arm-based platform | |
Zheng et al. | Secure mobile payment employing trusted computing on trustzone enabled platforms | |
Toll et al. | The Caernarvon secure embedded operating system | |
Kim et al. | iLeakage: Browser-based Timerless Speculative Execution Attacks on Apple Devices | |
Parker | Protecting Cryptographic Keys and Functions from Malware Attacks | |
JP6117402B2 (ja) | 入力を保護するシステム及び方法 | |
Zhang | Comparison of prominent trusted execution environments | |
Markin et al. | Security threat level estimation for untrusted software based on TrustZone technology | |
Tsantekidis et al. | Securing Runtime Memory via MMU Manipulation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent | ||
A201 | Request for examination | ||
AMND | Amendment | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
X091 | Application refused [patent] | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20170330 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20180328 Year of fee payment: 5 |
|
LAPS | Lapse due to unpaid annual fee |