KR20150108865A - 원타임 패스워드의 사용을 보안하기 위한 기술 - Google Patents
원타임 패스워드의 사용을 보안하기 위한 기술 Download PDFInfo
- Publication number
- KR20150108865A KR20150108865A KR1020157021879A KR20157021879A KR20150108865A KR 20150108865 A KR20150108865 A KR 20150108865A KR 1020157021879 A KR1020157021879 A KR 1020157021879A KR 20157021879 A KR20157021879 A KR 20157021879A KR 20150108865 A KR20150108865 A KR 20150108865A
- Authority
- KR
- South Korea
- Prior art keywords
- otp
- processor element
- secure
- seed
- zone
- Prior art date
Links
Images
Classifications
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- 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
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
Abstract
다양한 실시예는 일반적으로 다른 컴퓨팅 디바이스에 의해 제공되는 서비스로의 액세스를 가능하게 하는 원타임 패스워드(OTP)를 생성 및 사용하도록 로직을 구현하는 OTP 컴포넌트의 실행가능한 명령어를 저장한 컴퓨팅 디바이스의 프로세서 요소에 의한 컴퓨팅 디바이스의 저장부 내에 정의된 보안 구역의 제공 및 사용에 관한 것이다. 장치는 저장부와, 제 1 프로세서 요소와, 원타임 패스워드(OTP) 루틴을 수신하고, 저장부 내부에서 제 1 프로세서 요소에 의해 정의된 제 1 보안 구역 내부에 OTP 루틴을 저장하고, 내부에 저장된 OTP 루틴으로 제 1 보안 구역의 콘텐츠의 측정치를 획득하고, 제 1 측정치를 컴퓨팅 디바이스로 전송하고, OTP 시드를 수신하는 제 1 로직을 포함한다. 다른 실시예가 설명되고 청구된다.
Description
본원에 개시된 실시예는 일반적으로 원타임 패스워드(one-time password)를 안전하게 복호화하고 사용하기 위한 컴퓨팅 디바이스의 저장부 내에 정의된 보안 구역(secure enclave)의 사용에 관한 것이다.
컴퓨팅 디바이스에 대한 액세스 및 원격으로 위치된 컴퓨팅 디바이스에 의해 제공되는 데이터/기능을 제어하는 것에 있어서 안전성을 제공하기 위한 도구로서 패스워드가 오래전부터 사용되어졌지만, 오랜 시간 기간 동안 변경되지 않고 반복적으로 사용되는 "정적" 패스워드의 사용에 관한 우려가 오래전부터 존재했다. 원타임 패스워드(OTP)는 이들의 일회용 특성에 의해 더 안전하다는 것이 오래전부터 알려졌다. 그러나, 이들을 생성하고 제공하는 방법에 관한 도전과제가 오래전부터 존재했다.
오래된 솔루션은 소형 OTP 생성기 디바이스를 제공하여 승인된 사용자가 이들을 소지할 수 있다. 이러한 디바이스는 종종 신용 카드 또는 전자 열쇠의 형태 및 크기가 되고 빈번하게 변하는 OTP를 보여주는 작은 영숫자 디스플레이를 특징으로한다. OTP는 임의의 다양한 알고리즘을 사용하는 이러한 디바이스에 의해 생성되고 초기 "시드" 값 및 시각 또는 단조로운 카운터의 현재 출력과 같은 일정하게 변하는 "가변" 값을 종종 필요로 한다. 생성된 OTP가 액세스 가능한 것으로 여겨지는 컴퓨팅 디바이스는 또한 동일한 시드 및 가변 값을 갖는 동일한 알고리즘을 실행한다. 그 결과로서, 액세스가 탐색되는 소형 OTP 생성기 디바이스 및 컴퓨팅 디바이스는 시간이 지나면서 동일한 OTP를 생성할 것이고, 비록 몇달 내지 몇년의 기간 동안 이들의 상대적인 타이밍에서 약간의 이동이 존재할 수 있다.
이러한 소형 OTP 생성기 디바이스의 제공은 효과적이고, 민감한 정보를 사용하여 작업하는 사람들 사이에서 폭넓게 사용 중이지만, 필요할 때 OTP를 사용하도록 한 사람이 물리적 디바이스를 소유해야할 필요가 있다는 것은 불편하다. 또한, 이러한 디바이스의 사용자는 그들 자신이 소형 OTP 생성기 디바이스가 손상되고, 분실되거나 단순히 필요할 때 이들이 소유하지 않는다면, 컴퓨팅 디바이스의 서비스를 사용할 수 없다는 것을 발견할 수 있다. 이에 대한 하나의 제안된 솔루션은, 핸드헬드의 휴대가능한 컴퓨팅 디바이스를 포함한, 개인의 개인 소유 컴퓨팅 디바이스로 OTP 생성 기능을 포함시키는 것이고, 이는 무수한 사용을 위해 수시로 사용할 가능성이 매우 높기 때문이다. 불행히도, 개인 소유 컴퓨팅 디바이스의 종종 약한 보안 레벨에 대한 시드 및/또는 가변 값이 훼손될 수 있는 우려가 존재한다. 여러 고려사항과 관련하여 본원에서 설명된 실시예가 필요하다.
도 1은 컴퓨팅 디바이스들 사이의 상호작용의 제 1 실시예를 도시한다.
도 2 및 도 3은 각각 도 1의 실시예의 일부를 도시한다.
도 4는 도 2 및 도 3의 부분의 변형을 도시한다.
도 5는 제 1 논리 흐름의 실시예를 도시한다.
도 6은 제 2 논리 흐름의 실시예를 도시한다.
도 7은 제 3 논리 흐름의 실시예를 도시한다.
도 8은 제 4 논리 흐름의 실시예를 도시한다.
도 9는 프로세싱 아키텍쳐의 실시예를 도시한다.
도 2 및 도 3은 각각 도 1의 실시예의 일부를 도시한다.
도 4는 도 2 및 도 3의 부분의 변형을 도시한다.
도 5는 제 1 논리 흐름의 실시예를 도시한다.
도 6은 제 2 논리 흐름의 실시예를 도시한다.
도 7은 제 3 논리 흐름의 실시예를 도시한다.
도 8은 제 4 논리 흐름의 실시예를 도시한다.
도 9는 프로세싱 아키텍쳐의 실시예를 도시한다.
다양한 실시예는 일반적으로 다른 컴퓨팅 디바이스에 의해 제공되는 서비스로의 액세스를 가능하게 하는 원타임 패스워드(OTP)를 생성 및 사용하도록 로직을 구현하는 OTP 컴포넌트의 실행가능한 명령어를 저장한 컴퓨팅 디바이스의 프로세서 요소에 의한 컴퓨팅 디바이스의 저장부 내에 정의된 보안 구역의 제공 및 사용에 관한 것이다. 보안 구역은 이의 명령어 세트의 특정 명령어의 사용을 통해 프로세서 요소에 의해 생성된 저장부 내에서 어드레싱가능한 위치들 중 적어도 하나의 범위를 점유한다. 다양한 구현예에서, 보안 구역 내에 저장되지 않은 소프트웨어에 의한 액세스는 허용불가능하고, 사실상 매우 제한되고/거나 복호화를 필요로 할 수 있다.
컴퓨팅 디바이스는 초기에 OTP 컴포넌트가 제공되어 프로비져닝 서버와의 통신을 통해 OTP를 생성 및 사용하고 컴퓨팅 디바이스의 무결성 및/또는 보안 특징이 신뢰도를 보장하도록 테스팅된다. 또한, 완전히 상이한 메커니즘에 의해(예를 들어, 포털 서비스를 통한 편지에 의해, 전화 통화에 의해, 직접 등) 컴퓨팅 디바이스의 운영자에게 제공되는 초기 패스코드는 프로비져닝 서버로의 초기 액세스에서 사용된다. 테스팅의 성공적인 완료를 가정하면, 시드 값은 프로비져닝 서버에 의해 컴퓨팅 디바이스로 제공된다. 컴퓨팅 디바이스는 또한 시드 값이 OTP 컴포넌트에 의한 추후의 사용을 위해 컴퓨팅 디바이스 내에 생성되는 실링 키로 재암호화되는 추가적인 단계를 수행하도록 야기된다.
이러한 프로비져닝에 후속하여, 컴퓨팅 디바이스는 컴퓨팅 디바이스의 운영자가 액세스를 구하는 임의의 다양한 서비스를 제공하는 계정 서버로의 액세스를 위해 OTP가 필요할 때마다 매번 보안 구역을 재생성화(re-instantiate)하도록 야기된다. 보안 구역의 재생성화에 후속하여, OTP 컴포넌트 및 재암호화된 시드 값이 내부에 저장되고 OTP 컴포넌트는 내부의 컴퓨팅 디바이스의 프로세서 요소에 의해 실행된다. 또한, 재암호화된 시드 값을 복호화하기 위한 키의 생성을 포함하는 방식으로 보안 클레이브 내에 저장되어 있는 것에 대한 무결성의 체크가 행해진다. 적어도 OTP 컴포넌트의 무결성을 상실하지 않았다면, 생성된 키는 시드 값을 복호화하도록 작동가능하게 될 것이다.
이들 다양한 테스트를 지원하고 컴퓨팅 디바이스와 프로비져닝 서버 및 계정 서버의 각각 사이에서의 통신의 무결성을 유지하는데 있어서, 컴퓨팅 디바이스는 운영자의 로그인 관련 입력의 캡쳐 및/또는 운영자에게 제시된 로그인 관련 시각 정보(visual information)의 스크린 캡쳐를 방지하도록 다양한 추가적인 특징을 포함시킬 수 있다. 더 구체적으로, 로그인 관련 정보에 대한 보안 경로는 손상을 방지하도록 하드웨어 및/또는 소프트웨어 컴포넌트로 정의될 수 있다.
본원에서 사용되는 기호 및 명명법을 일반적으로 참조하면, 후속하는 상세한 설명의 부분은 컴퓨터 상에서 또는 컴퓨터의 네트워크 상에서 실행되는 프로그램 프로시져의 관점에서 제시될 수 있다. 이들 프로시져의 설명 및 표현이 당업자에 의해 사용되어 다른 당업자에게 이들 연구의 핵심을 가장 효과적으로 전달한다. 프로시져는 여기에서, 그리고 일반적으로, 원하는 결과로 이어지는 동작의 자기 일관적 시퀀스(a self-consistent sequence)가 되는 것으로 간주된다. 이들 동작은 물리적 수량의 물리적 조작을 필요로 하는 것이다. 일반적으로, 반드시 그러한 것을 아니지만, 이들 수량은 저장, 전달, 통합, 비교, 또는 조작되는 것이 가능한 전기적, 자기적 또는 광학적 신호의 형태를 취한다. 이들 신호를 비트, 값, 요소, 심볼, 문자, 용어, 숫자, 또는 유사한 것으로서 지칭하는 것이 주로 일반적인 사용의 이유로 가끔 편리하다고 입증되었다. 그러나, 이들 및 유사한 용어의 모두는 적합한 물리적 수량과 연관되고 이들 수량에 적용되는 단지 편리한 라벨인 것에 유의해야한다.
또한, 이들 조작은 종종 사람 운영자에 의해 수행되는 정신적 동작과 일반적으로 연관되는, 추가 또는 비교와 같은, 용어로 지칭된다. 그러나, 사람 운영자의 이러한 능력은, 하나 이상의 실시예의 부분을 형성하는 본원에 설명된 임의의 동작에서, 대부분의 경우에, 필요하거나 바람직한 것은 아니다. 오히려, 이들 동작은 머신 동작이다. 다양한 실시예의 동작을 수행하기 위해 유용한 머신은 본원의 개시에 따라 기록된 내부에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화 또는 구성되는 것으로서 범용 디지털 컴퓨터를 포함하고/거나 필요한 목적에 대해 특별하게 구성되는 장치를 포함한다. 다양한 실시예는 또한 이들 동작을 수행하기 위한 장치 또는 시스템에 관한 것이다. 이들 장치는 필요한 목적에 대해 특별하게 구성될 수 있거나 범용 컴퓨터를 포함시킬 수 있다. 다양한 이들 머신에 대해 필요한 구조는 주어진 설명으로부터 명백해질 것이다.
이제 도면에 대한 참조가 이루어지고, 동일한 참조부호는 전반적으로 동일한 요소를 지칭하도록 사용된다. 다음의 설명에서, 설명의 목적을 위해, 이들의 완전한 이해를 제공하도록 다양한 특정 상세가 제시된다. 그러나, 진보적인 실시예가 이들 특정 상세 없이 실시될 수 있다는 것이 명백할 수 있다. 다른 경우에, 잘 알려진 구조 및 디바이스는 이들의 설명을 용이하게 하도록 블록도로 도시된다. 청구항의 범위 내에서 모든 수정, 등가, 및 대안을 커버하도록 의도된다.
도 1은 OTP 컴포넌트를 제공하는 하나 이상의 프로비져닝 서버(100)를 포함하는 컴퓨팅 서비스 시스템(1000)의 컴퓨팅 디바이스들, OTP 컴포넌트가 제공 및 사용되는 컴퓨팅 디바이스(300)와, OTP 컴포넌트를 갖는 컴퓨팅 디바이스(300)를 사용하여 액세스가 탐색되는 서비스를 제공하는 계정 서버(600) 사이에서의 상호작용의 블록도를 도시한다. 이들 컴퓨팅 디바이스(100, 300 및 600)의 각각은 제한 없이, 데스크탑 컴퓨터 시스템, 데이터 입력 단말, 랩탑 컴퓨터, 넷북 컴퓨터, 울트라북 컴퓨터, 태블릿 컴퓨터, 핸드헬드 개인용 데이터 보조장치, 스마트폰, 디지털 카메라, 모바일 디바이스, 의류에 통합되는 신체 착용 컴퓨팅 디바이스, 차량에 통합되는 컴퓨팅 디바이스, 서버, 서버 클러스터, 서버 팜 등을 포함하는, 임의의 다양한 타입의 컴퓨팅 디바이스가 될 수 있다.
도시된 바와 같이, 이들 컴퓨팅 디바이스(100, 300 및 600)는 시스템(1000)의 네트워크(999)를 통해 서비스로의 액세스를 획득하도록 OTP의 사용과 연관된 실행가능한 명령어 및 데이터를 전달하는 신호를 교환한다. 그러나, 이들 컴퓨팅 디바이스 중 하나 이상은 OTP 또는 이들의 사용과 전체적으로 관련없는 다른 데이터를 교환할 수 있다. 다양한 실시예에서, 네트워크(999)는 단일 빌딩 또는 다른 상대적으로 제한된 영역 내에서 연장하는 것에 가능하면 제한되는 단일 네트워크, 상당한 거리를 가능하면 연장하는 접속된 네트워크의 조합이 될 수 있고/거나 인터넷을 포함할 수 있다. 따라서, 네트워크(999)는 제한 없이, 전기적으로 및/또는 광학적으로 전도성인 케이블링을 이용하는 유선 기술, 및 적외선, 무선 주파수 또는 다른 형태의 무선 전송을 이용하는 무선 기술을 포함하여, 신호가 교환될 수 있는 임의의 다양한(또는 조합)의 통신 기술에 기초할 수 있다.
프로비져닝 서버(100), 컴퓨팅 디바이스(300) 및 계정 서버(600)의 각각의 오직 하나의 특정 도시에도 불구하고, 이들 컴퓨팅 디바이스의 각각의 다양한 것을 포함하는 실시예가 가능하다는 것이 이해될 수 있음에 유의해야한다. 예시의 방식으로, 프로비져닝 서버(100) 또는 계정 서버(600) 중 하나는 컴퓨팅 디바이스(300) 중 가장 많은 것을 지원할 수 있다는 것이 구상된다. 또한 예시의 방식으로, 컴퓨팅 디바이스(300) 중 하나는 계정 서버(300) 중 다수에 의해 제공되는 다수의 다양한 서비스로의 액세스를 가능하게 하는 프로비져닝 서버(100) 중 다수에 의해 가능하면 제공되는 OTP 컴포넌트의 다수의 버전이 제공될 수 있음이 구상된다. 또한, OTP 컴포넌트의 제공 및 사용을 지원하는 개별 서버의 도시에도 불구하고, 실시예는 단일 서버가 포함될 수 있고/거나 양쪽 기능을 지원하는 실시예가 가능하다. 따라서, 이들 컴퓨팅 디바이스의 각각 중 어느 하나 및 두 서버들 사이의 기능의 특정 분리의 특정 도시, 이러한 특정 도시는 단지 논의를 용이하게 하는 예시이고 제한하는 것으로서 이해되어서는 안된다.
다양한 실시예에서, 프로비져닝 서버(100)는 프로세서 요소(150), 저장부(160), 및 프로비져닝 서버(100)를 네트워크(999)에 연결하는 인터페이스(190) 중 하나 이상을 포함한다. 저장부(160)는 제어 루틴(140), OTP 시드(331) 및 제어 루틴(370)을 저장한다. 제어 루틴(140)은 다양한 기능을 수행하도록 로직을 구현하는 프로세서 요소(150) 상에서 동작가능한 명령어의 시퀀스를 포함한다. 제어 루틴(140)의 명령어의 시퀀스를 실행하는 것에 있어서, 프로세서 요소(150)는 제어 루틴(370)을 먼저 컴퓨팅 디바이스(300)에 전송하도록 인터페이스(190)를 동작시키도록 야기된다. 이렇게 제어 루틴(370)이 제공된 컴퓨팅 디바이스(300)를 사용하여, 프로세서 요소(150)는 또한 더 자세하게 설명되어지는 바와 같이, 제어 루틴(370)이 저장되는 보안 구역의 측정 파라미터로부터 컴퓨팅 디바이스(300)의 내부에서 유도되는 측정 데이터(437)의 수신을 대기하도록 야기된다. 프로세서 요소(150)는 또한 컴퓨팅 디바이스(300)가 적합한 보안 구역에 대한 지원을 포함하는 보안 특징의 선택된 최소 조합을 포함하는지 여부를 판정하고 제어 루틴(370)이 컴퓨팅 디바이스(300)를 갖는 이러한 보안 구역 내에서 성공적으로 수신되고 수정되지 않은 채로 저장되는지 여부를 판정하기 위해 측정 데이터(437)를 분석하도록 야기된다. 프로세서 요소(150)는 컴퓨팅 디바이스(300)가 이러한 특징을 통합하고 제어 루틴(370)이 따라서 저장되었음을 판정한 것으로 추정되면, 프로세서 요소(150)가 또한 제어 루틴(370)과 함께 사용하기 위해 컴퓨팅 디바이스(300)로 OTP 시드(331)를 전송하도록 야기된다.
다양한 실시예에서, 컴퓨팅 디바이스(300)는 (컴퓨팅 디바이스(300)의 주 프로세서로서 동작하는) 프로세서 요소(350), 저장부(360), 디스플레이(380) 및 이에 연결되는 디스플레이 인터페이스(385), 제어부(320) 및 이에 연결되는 인터페이스 제어기(395a), 제어기(400), 및 컴퓨팅 디바이스(300)를 네트워크(999)에 연결하는 인터페이스 제어기(395b) 중 하나 이상을 포함한다. 프로세서 요소(350)는 ID 코드(351)를 포함하고 저장부(360) 내에 보안 구역(367)를 정의한다. 저장부(360)는 제어 루틴(370), 로그인 블록(339) 및 보안 구역(367) 내에 OTP 시드(331)를 저장한다. 그러나, 제어 루틴(340)은 보안 구역(367) 외부의 저장부(360) 내에 저장된다. 제어기(400)는 프로세서 요소(450)(컴퓨팅 디바이스(300)의 제어기(400)의 제어기 프로세서로서 동작함), 저장부(460) 및 카운터 요소(415) 중 하나 이상을 포함한다. 저장부(460)는 제어 루틴(440), 실링 키(431) 및 측정 데이터(437)를 저장한다.
제어부(320) 및 디스플레이(380)는 컴퓨팅 디바이스(300)의 운영자에게 사용자 인터페이스를 제공한다. 제어부(320)는 키보드, 마우스, 키패드, 터치패드, 스타일러스, 지문 판독기 등 중 하나 이상을 포함하지만 이에 제한되지 않는, 임의의 다양한 타입의 수동으로 동작가능한 제어부가 될 수 있다. 디스플레이(380)는 액정 디스플레이(LCD) 전자발광(EL) 디스플레이, 플라즈마 디스플레이 등을 포함하지만 이에 제한되지 않는 임의의 다양한 타입의 디스플레이 디바이스가 될 수 있다. 또한, 제어부(320) 및 디스플레이(380)는 터치스크린 디스플레이와 같은 단일 컴포넌트에 통합될 수 있음에 유의해야한다. 제어부(320)는 인터페이스 제어기(395a)를 통해 순환하여 모니터링될 수 있는 것이다. 디스플레이(380)는 디스플레이 인터페이스(385)의 동작을 통해 다양한 형식의 콘텐츠를 시각적으로 제시하도록 야기되는 것이 가능한 것이다. 더 자세하게 설명되는 바와 같이, 컴퓨팅 디바이스(300)와 이의 운영자 사이에서 전달되는 정보는, 제어기(400)를 통해 이러한 정보의 이동에 대한 교체 경로 중 하나 또는 둘다를 사용하는 것 및 보안 구역(예를 들어, 보안 구역(367)) 내에 저장된 실행가능한 코드에 의해 이러한 정보의 교환에서의 암호화를 사용하는 것을 통해, 승인되지않은 액세스(예를 들어, 스누핑, 키 스트로크 모니터링, 이미지 버퍼 캡쳐링 등)로부터 보호될 수 있다.
유사한 보안 측정이 인터페이스 제어기(395b)를 통해 네트워크(999)를 거쳐 다른 컴퓨팅 디바이스(예를 들어, 프로비져닝 서버(100) 및/또는 계정 서버(600))와의 데이터의 교환을 위해 이용될 수 있다. 특히, 인터페이스 제어기(395a) 및 디스플레이 인터페이스(385)의 각각에 있어서, 제어기(400)를 통한 이러한 데이터의 이동 및/또는 보안 구역(예를 들어, 보안 구역(367)) 내에 저장된 실행가능한 코드를 사용하여 이러한 데이터의 교환에서의 암호화에 대한 교체 경로가 이용될 수 있다.
보안 구역(367)는 상대적으로 엄격한 액세스 제한에 대한 대상으로서 프로세서 요소(350)에 의해 정의되는 하나 이상의 범위의 어드레스로 구성될 수 있다. 이러한 제한은 저장부(360) 전반의 다른 어드레스에서 상대적으로 자유롭게 데이터 및/또는 실행가능한 명령어로의 액세스하는 기능이 부여되는 보안 구역(367) 내에 저장된 실행가능한 명령어(예를 들어, 제어 루틴(370))의 기능을 포함할 수 있고, 반면 보안 구역(367)의 외부로부터의 다른 실행가능한 명령어(예를 들어, 제어 루틴(340))에 의한 액세스는 상당히 제한될 수 있거나, 전혀 허용되지 않을 수 있다. 실제로, 보안 구역(367) 내에 저장된 실행가능한 명령어 및/또는 데이터는 보안 구역(367)의 외부로부터 실행가능한 명령어에 의해 시도된 액세스로부터 이들을 더 보호하도록 암호화될 수 있다. 대안적으로 또는 추가적으로, 보안 구역(367) 내에 저장된 실행가능한 명령어는 다양한 어드레스 위치에서 컴퓨팅 디바이스(300)의 컴포넌트의 상대적으로 다양한 선택에 액세스하는 기능이 부여될 수 있고, 반면 보안 구역(367) 외부의 다른 실행가능한 명령어에 의한 액세스가 컴포넌트의 상대적으로 제한된 선택이 될 수 있다. 더 자세하게 설명되는 바와 같이, 프로세서 요소(350)의 명령어 세트는 데이터가 저장될 수 있고 실행가능한 명령어가 안전하게 실행될 수 있는 저장부(360)의 일부를 정의하도록 요구하는 실행가능한 명령어에 의한 하나 이상의 보안 구역의 생성화를 지원하는 명령어를 포함한다.
프로세서 요소(450) 및 저장부(460)는 적어도 프로세서 요소(350) 및 저장부(360)에 의해 정의되는 작동 환경으로부터 실질적으로 분리된 제어기(400) 내의 동작 환경의 부분을 정의한다. 이 분리된 작동 환경은 제어 루틴(440)이 프로세서 요소(350)에 의해 실행될 수 있는 다른 덜 신뢰하는 소프트웨어 의해 손상되는 것으로부터 상당히 감소된 리스크로 실행되는 것을 가능하게 한다. 저장부(460) 내의 데이터의 저장은 제어 루틴(440)의 실행의 무결성을 보장하는 것을 더 보조한다. 따라서, 제어기 환경은 보안 구역(367)의 생성화가 완료된 개별 하드웨어로 실행하도록 하여, 즉, 특정 명령어가 실행될 수 있는 보안 환경을 제공한다.
카운터 요소(415)는 보안 카운팅 디바이스에 의한 가변 값 출력의 신뢰하는 소스로서 의존하도록 의도되는 제어기(400) 내부로부터의 하드웨어 기반 카운팅 기능을 제공한다. 일부 실시예에서, 카운터 요소(415)는 GMT(Greenwich Mean Time) 또는 UTC(coordinated universal time)과 같은, 하나 이상의 시간대 또는 가능하면 시간축에서 시간을 유지하는 하드웨어 기반 시계를 포함한다. 다른 실시예에서, 카운터 요소(415)는 단조로운 카운터(monotonic counter)를 포함하고, 미래를 향해 오랜 세월 또는 수십년 동안 이의 카운트의 제한에 도달하지 않도록 거꾸로 작동하는 적이 없이 일정한 속도로 진행(감분 또는 증분)하고, 충분히 큰 비트 폭을 갖는다.
제어 루틴(340)은 다양한 기능을 수행하는 로직을 구현하는 컴퓨팅 디바이스(300)의 주 프로세서 요소로서의 역할을 하는 프로세서 요소(350) 상에서 동작가능한 명령어의 시퀀스를 포함한다. 제어 루틴(340)의 명령어의 시퀀스를 실행할 때, 프로세서 요소(350)는 컴퓨팅 디바이스(300)의 운영자가 제어부(320)와 인터랙팅하는 것을 가능하게 하고 디스플레이(380)는 컴퓨팅 디바이스(300)가 프로비져닝 서버(100)로 액세스하게 하여 하나 이상의 OTP 컴포넌트를 이용한 컴퓨팅 디바이스(300)의 프로비져닝을 수행하도록 한다. 이는 서비스에 대한 액세스가 계정으로 로그인하는 것을 필요로 하는 계정 서버(600)에 의해 제공되는 서비스에 의한 컴퓨팅 디바이스(300)의 바람직한 사용을 포함하는 임의의 다양한 사용 시나리오의 일부분으로서 발생할 수 있다. 이러한 가능한 사용 시나리오는 운영자가 온라인 뱅킹에 참여하기를 희망하는 계정 서버(600)를 관리하는 금융 기관의 고객인 운영자, 계정 서버(600) 등을 관리하는 병원에서 이들의 환자들 중 한명에 대한 진료 기록에 액세스를 필요로 하는 의료 전문가인 운영자를 포함하지만 이에 제한되지 않는다.
프로비져닝 서버(100)에 액세스할 시에, 프로비져닝 서버(100)는 디스플레이(380)를 통해 프로비져닝 서버(100)로부터 제어 루틴(370)을 다운로드하기 위한 다양한 프롬프트를 운영자에게 시각적으로 제시할 수 있다. 이들 프롬프트에 대해 동작할 시에, 프로비져닝 서버(100)는 제어 루틴(370)을 컴퓨팅 디바이스(300)로 전송한다. 제어 루틴(370)을 수신할 시에, 이는 보안 구역(367)로 반드시 직접은 아니지만, 저장부(360) 내부에 저장된다. 프로비져닝 서버(100)는 운영자가 제어 루틴(370)의 실행을 승인하기 위해 프롬프팅하도록 제어 루틴(340)과 인터랙팅할 수 있어서 이를 설치할 수 있다. 일부 실시예에서, 제어 루틴(340)은 다른 컴퓨팅 디바이스와의 통신을 지원하는 웹 브라우저 또는 다른 형태의 소프트웨어가 될 수 있고, 제어 루틴(370)은 제어 루틴(340)의 기능을 증강시키는 "플러그인(plug-in)" 또는 다른 형태의 "애드온(add-on)" 소프트웨어가 될 수 있다.
제어 루틴(370)은 또한 다양한 기능을 수행하도록 로직을 구현하는 프로세서 요소(350) 상에서 동작가능한 명령어의 시퀀스를 포함한다. 제어 루틴들(340과 370) 사이에서의 상호작용의 정확한 특성과 관계없이, 프로세서 요소(350)에 의한 제어 루틴(370)의 실행은 프로세서 요소(350)가 보안 구역(367)를 생성화하고 내부의 제어 루틴(370)의 적어도 복사본을 저장하게 한다. 그 이후로 계속, 프로세서 요소(350)는 보안 구역(367) 내에서 제어 루틴(370)의 명령어를 실행하고, 여기서 이러한 실행은 이제 제어 루틴(370)이 실행되는 중에 손상되는 것의 최소 리스크로 보안 환경에서 발생한다. 이러한 실행 시에, 적어도 제어 루틴(370)은 프로세서 요소(350)가 프로비져닝 서버(100)와 보안 구역(367) 사이의 보안 통신을 수립하도록 프로비져닝 서버(100)와 협업하게 하여서 제어 루틴(370)이 보안 구역(367) 내부로부터 프로비져닝 서버(100)와 안전하게 데이터를 교환하는 것이 가능하다. 수립된 이러한 보안 통신을 사용하여, 프로세서 요소(350)는 예를 들어, 우편 서비스에 의해, 전화기에 의해, 직접 등, 네트워크(999)와 상이한 통신 루트를 통해 운영자에 의해 수신되는 초기 패스코드를 제공하도록 컴퓨팅 디바이스(300)의 운영자에게 프롬프트를 제시하기 위해 프로비져닝 서버(100)와 협업하도록 더 야기된다.
일부 실시예에서, 패스코드의 입력에 대한 프롬프트의 제시에서, 디스플레이 인터페이스(385)는 보안 구역(367)와의 암호화된 통신에 참여하는 것이 가능하다. 그 결과로서, 보안 구역(367) 내부의 제어 루틴(370)에 의해 프로비져닝 서버(100)로부터 수신되는 패스코드를 입력하기 위한 시각적 프롬프트의 텍스트 및/또는 그래픽 이미지는, 암호화된 형식으로 디스플레이(380) 상에서의 제시를 위해 제어 루틴(370)에 의해 디스플레이 인터페이스(385)로 중계되는 것이 가능하여서 이는 보안 구역(367)의 외부 위치의 컴퓨팅 디바이스(300) 내에 존재하는 악성 소프트웨어가 될 수 있는 것에 의해 모니터링되거나, 복사되거나 또는 조작될 수 없다. 또한, 디스플레이 인터페이스(385)의 이미지 버퍼가 보안 구역(367)의 외부에서 저장되고 실행되고/거나 암호화된 형식으로만 액세스가능하도록 구성되는 소프트웨어에 의해 적어도 액세스불가능하게 되도록 구성될 수 있다. 다른 실시예에서, 프로세서 요소(450)가 보안 구역(367)로부터 그리고 디스플레이 제어기(385)로 이러한 시각적 프롬프트의 텍스트 및/또는 그래픽적인 이미지를 중계하는 것을 가능하게 하는 방식으로 디스플레이 제어기(385)가 제어기(400)에 연결될 수 있다.
유사하게, 일부 실시예에서, 인터페이스 제어기(395a)는 보안 구역(367)와의 암호화된 통신에 참여하는 것이 가능하여서 제어부(320)(예를 들어, 실제 패스코드)를 통해 운영자에 의해 입력된 데이터는 보안 구역(367)의 외부의 위치에서 컴퓨팅 디바이스(300) 내에 존재하는 악성 소프트웨어(예를 들어, 키 스트로크 로거)가 될 수 있는 것에 의해 모니터링되거나, 복사되거나 또는 조작될 수 없다. 다른 실시예에서, 프로세서 요소(450)가 운영자에 의해 입력된 데이터를 보안 구역(367)로 중계하는 것을 가능하게 하는 방식으로 인터페이스 제어기(395a)가 제어기(400)에 연결될 수 있어서 프로세서 요소(350)의 작동 환경에서 오직 제어 루틴(370)만이 이에 액세스한다.
디스플레이 제어기(385)로의 텍스트 및/또는 그래픽적인 이미지의 전달에서의 이러한 보안 및/또는 인터페이스 제어기(395a)로부터 운영자에 의해 입력된 데이터의 전달에서의 이러한 보안은 일부 실시예에서 운영자에 의해(아마도 키보드 키의 특정 조합을 통해) 또는 다른 실시예에서 제어 루틴(370)의 실행가능한 명령어에 의해 적용가능할 수 있다. 그러나 이러한 보안이 적용되면, 패스코드의 운영자의 입력이 보안 구역(367) 내부에 제어 루틴(370)으로 안전하게 제공되는 정확한 방식과는 상관 없이, 제어 루틴(370)은 패스코드를 프로비져닝 서버(100)로 전송한다. 프로비져닝 서버(100)로의 패스코드의 전송은 컴퓨팅 디바이스(300)의 운영자를 계정 서버(600)의 서비스를 사용하도록 승인된 사람으로서 검증한다.
제어 루틴(440)은 다양한 기능을 수행하도록 로직을 구현하는 제어기(400)의 제어기 프로세서로서의 역할을 하는 프로세서 요소(450) 상에서 동작가능한 명령어의 시퀀스를 포함한다. 프로비져닝 서버(100)가 다른 채널에 의해 운영자에게 주어지는 패스코드가 제공되도록 하는 것 이외에, 제어 루틴(370)은 또한 프로비져닝 서버(100)로의 전송을 위해 보안 구역(367)의 콘텐츠로부터 측정 데이터(437)를 도출하도록 제어 루틴(440)을 실행하는 프로세서 요소(450)와 프로세서 요소(350)가 협업하게 한다. 더 구체적으로, 프로세서 요소(450)는 측정 데이터(437)(예를 들어, 해쉬 또는 순환 리던던시 체크 값)를 산술적으로 도출하도록 보안 구역(367)의 콘텐츠에 액세스하는 것이 가능하고, 프로세서 요소(350)에 의해 이렇게 수행하도록 시그널링된다. 측정 데이터(437)를 생성할 시에, 프로세서 요소(450)는 이를 프로세서 요소(350)에 제공하고, 프로세서 요소(350)는 이를 프로비져닝 서버(100)로 전송하도록 제어 루틴(370)에 의해 야기된다.
측정 데이터(437)를 수신할 시에, 프로비져닝 서버(100)는 이것이 예상되었던 것인지를 판정하도록 이를 검사한다. 보안 구역 내에 존재하는 제어 루틴(370)을 사용한 보안 구역의 콘텐츠로부터의 측정 데이터(437)의 형성은, 컴퓨팅 디바이스(300)가 보안 구역을 형성하는 능력을 보유하며, 컴퓨팅 디바이스(300)는 사실상 이를 수행하였고 이의 내부에 손상되지 않은 형태로 제어 루틴(370)을 위치시켰다는 증거를 프로비져닝 서버(100)에 제공하는 것을 의미한다. 따라서, 측정 데이터(437)는 프로비져닝 서버(100)로 컴퓨팅 디바이스(300)가 적어도 보안 특징의 베이스라인 세트를 갖는다는 증거를 제공하여 컴퓨팅 디바이스(300)가 OTP를 생성하기 위한 완전한 프로비져닝에 대해 충분하게 신뢰하는 플랫폼으로 여겨지는 것을 가능하게 한다.
측정 데이터(437)가 프로비져닝 서버(100)가 수행하는 어떠한 테스트도 통과한다고 추정하면, 프로비저닝 서버(100)는 OTP 시드(331)를 컴퓨팅 디바이스(300)로 전송한다. 계정 서버(600)로의 액세스를 위해 사용되는 특정 OTP 생성 알고리즘 스킴에 따라, OTP 시드(331)는 다수의 컴퓨팅 디바이스가 단일 운영자와 연관될 수 있는 곳에서도, 프로비져닝 서버(100)가 OTP 시드를 제공하는 각각의 컴퓨팅 디바이스에 대해 고유할 것이다. 프로비져닝 서버(100)와 보안 구역(367) 사이에서 이전에 수립된 보안 통신을 통해 OTP 시드(331)를 수신할 시에, OTP 시드(331)는 이의 전송된 암호화로부터 복호화되고 보안 구역(367) 내에서 저장된다. 프로세서 요소(350)는 또한 프로세서 요소(450)가 적어도 측정 데이터(437)로부터 실링 키(431)를 도출하도록 시그널링하게 야기된다.
임의의 다양한 산술적 알고리즘은 측정 데이터(437)로부터 실링 키(431)를 도출하도록 이용될 수 있다. 또한, 하나 이상의 ID 코드(예를 들어, 프로세서 요소(350)의 ID 코드(351)) 및/또는 프로비져닝 서버(100)에 대해 운영자를 검증하는데 사용되는 초기 패스코드는 실링 키(431)의 생성으로 포함될 수 있어서, 더 자세하게 설명되는 바와 같이 컴퓨팅 디바이스(300)에 대해 특정한 실링 키(431)를 이용한다. 실링 키가 이렇게 도출되면, 프로세서 요소(450)는 이를 프로세서 요소(350)에 제공하고, 이는 실링 키(431)를 사용하여 OTP 시드(331)를 재암호화하도록 제어 루틴(370)에 의해 야기된다. 이 OTP 시드(331)의 재암호화에 후속하여, 계정 서버(600)에 액세스하는데 사용하기 위한 OTP를 생성하기 위한 컴퓨팅 디바이스(300)의 프로비져닝이 완료된다. 제어 루틴(370)과 프로비져닝 서버(100) 사이의 보안 통신은 중지된다. 제어 루틴(370) 및 OTP 시드(331)는 저장부(360) 내부의 다른 곳(또는 컴퓨팅 디바이스(300) 내부의 다른 곳)에 저장되고, 보안 구역(367)가 비생성화(uninstantiated)된다. 실링 키(431)는 폐기되고 컴퓨팅 디바이스(300) 내부의 어느 곳 또는 다른 곳에 저장되지 않는다는 것에 유의해야한다는 것이 중요하다.
위의 컴퓨팅 디바이스(300)의 프로비져닝에 후속하여 나중에, 프로세서 요소(350)에 의한 제어 루틴(340)의 실행은 컴퓨팅 디바이스(300)의 운영자가 제어부(320)와 인터랙팅하는 것을 가능하게 하고 디스플레이(380)가 계정 서버(600)에 액세스하기 위해 컴퓨팅 디바이스(300)를 사용하는 것을 가능하게 한다. 계정 서버(600)에 액세스 할 시에, 계정 서버(600)는 계정 서버(600)에 적어도 OTP, 가능하면 제 2 보안 인자(예를 들어, 개별로 타이핑된 패스워드, 지문 스캔 등)로서 보안 "챌린지"의 일부 다른 형태를 제공하기 위한 다양한 프롬프트를 운영자에게 시각적으로 제시하도록 제어 루틴(340)과 협업할 수 있다. 제어 루틴(370)의 실행은 또한 요청된 OTP를 생성하기 위해, 제어 루틴(340)을 통해 계정 서버(600)에 의해 또는 운영자에 의해, 트리거된다.
프로세서 요소(350)에 의해 제어 루틴(370)의 실행 시에, 프로세서 요소(350)는 보안 구역(367)를 다시 생성화하고 내부에 적어도 제어 루틴(370)의 복사본을 저장하도록 야기된다. 그 이후로 계속, 프로세서 요소(350)는 다시 보안 구역(367) 내부의 제어 루틴(370)의 명령어를 실행하고 여기서 이러한 실행은 이제 제어 루틴(370)이 실행되는 중에 손상되는 것의 최소 리스크로 보안 환경에서 발생한다. 다시, 보안 구역(367)로부터 디스플레이 제어기(385)로 텍스트 및/또는 그래픽 이미지를 전달하는 것 및/또는 인터페이스 제어기(395a)로부터 보안 엔클레이스(367)로 운영자에 의해 입력된 데이터를 전달하는 것으로 설명된 이러한 보안은 운영자에 의해 또는 제어 루틴(370)의 실행가능한 명령어를 통해 적용될 수 있다. 이러한 보안의 적용으로, 운영자에 대한 보안 챌린지를 제시하는 프롬프트 및 이에 대한 운영자의 응답(예를 들어, 패스워드의 타이핑된 입력, 지문의 스캔의 제공 등)은 보안 구역(367)의 외부의 위치에서 저장부(360) 내에 존재할 수 있는 악성 소프트웨어에 의해 모니터링되거나 복사되는 것에 대해 안전하다.
보안 구역(367) 내부에서 제어 루틴(370)의 실행 시에, 프로세서 요소(350)는 프로세서 요소(450)가 다시 보안 구역(367)의 콘텐츠의 측정 데이터(437)를 도출하고 이의 측정치로부터 실링 키(431)를 다시 추가적으로 도출하도록 시그널링한다. 본질적으로, 프로세서 요소(450)는 실링 키(431)를 새로 재생성하도록 시그널링된다. 이렇게 할 시에, 프로세서 요소(450)는 재생성된 실링 키(431)를 프로세서 요소(350)에 제공한다. 제어 루틴(370)으로 보안 구역의 측정된 측정치로(측정치가 프로비져닝 동안 측정되었을 때 보안 구역(367) 내에 저장된 것과 동일한 구성임), 프로세서 요소(350)는 보안 구역(367) 내부에 암호화된 시드 데이터(331)의 복사본을 먼저 저장하고 그 다음 OTP를 생성하는데 사용하기 위한 시드 데이터(331)를 복호화하도록 재생성된 실링 키(431)를 사용하도록 야기된다. 제어 루틴(370) 또는 보안 구역(367)의 구조 중 어느 것도 변경되거나 손상되지 않고, 재생성된 실링 키(431)는 이전에 설명된 바와 같은 프로비져닝 동안 시드 데이터(331)를 암호화도록 사용되는 원래 생성된 실링 키(431)와 동일할 것이다. 따라서, 제어 루틴(370)은 OTP 시드(331)를 복호화하도록 재생성된 실링 키를 사용하는 것이 가능할 것이고, 따라서 제어 루틴(370)에 OTP를 생성하는데 사용하기 위한 시드 값을 제공한다.
프로세서 요소(350)는 또한 제어기(400)로부터 가변 값을 요청하도록 제어 루틴(370)에 의해 야기된다. 이전에 논의된 바와 같이, 시드 값(OTP 시드(331) 내에서 전달됨) 및 가변 값(시간의 통과에 따라 변화하는 값) 모두가 OTP를 생성하는데 필요하다. 가변 값을 위해 프로세서 요소(350)로부터 요청을 수신할 시에, 프로세서 요소(450)는 카운터 요소(415)로부터 현재 가변 값을 검색하고 이를 프로세서 요소(350)에 제공하도록 제어 루틴(440)에 의해 야기된다. 프로세서 요소(450)로부터 가변 값을 수신할 시에, 프로세서 요소(350)는 제어 루틴(370)에 의해 OTP를 생성하기 위해 단지 복호화된 OTP 시드(331)의 가변 값 및 시드 값을 사용하도록 야기된다.
일부 실시예에서, 제어 루틴(370)은 단순히 프로세서 요소(350)가 계정 서버(600)로 생성된 OTP를 전송하게 하여 계정 서버의 서비스로의 액세스를 가능하게 한다. 그러나, 다른 실시예에서, 프로세서 요소(350)는 OTP 및 챌린지 프롬프트에 응답하여 운영자가 제공하는 어떠한 입력이 계정 서버(600)로의 전송을 위해 결합된 로그인 블록(339)을 생성하도록 야기될 수 있다. 프로세서 요소(350)의 ID 코드(351) 또는 프로비져닝 서버(100)와 사용하기 위해 운영자에게 원래 제공되는 패스코드와 같이, 또 다른 데이터의 조각이 로그인 블록(339)에 포함될 수 있다. 실링 키(431)가 성공적으로 재생성되어서 생성된 OTP가 정확하다고 추정하면, OTP의 단독으로 또는 다른 정보의 조각과 통합되어, 계정 서버(600)로 제공되는 것은, 계정 서버(600)가 제공하는 서비스로의 액세스를 컴퓨팅 디바이스(300)의 운영자에게 부여하게 한다.
다양한 실시예에서, 계정 서버(600)는 프로세서 요소(650), 저장부(660), 및 계정 서버(600)를 네트워크(999)에 연결하는 인터페이스(690) 중 하나 이상을 포함한다. 제어부(660)는 제어 루틴(640) 및 OTP 시드(331)의 복사본을 저장한다. 제어 루틴(640)은 다양한 기능을 수행하도록 로직을 구현하는 프로세서 요소(650) 상에서 동작가능한 명령어의 시퀀스를 포함한다. 제어 루틴(640)의 명령어의 시퀀스를 실행하는 것에 있어서, 방금 설명된 바와 같이, 프로세서 요소(650)가 컴퓨팅 디바이스(300)에 의해 생성되고 전송된 적어도 OTP를 수신하고 검증하도록 컴퓨팅 디바이스(300)와 인터랙팅하기 위해 인터페이스(690)를 동작시키도록 야기된다. 이전에, 계정 서버(600)는 프로비져닝 서버(100)로부터 OTP 시드(331)의 복사본을 수신한다. 컴퓨팅 디바이스(300)에 의해 생성된 OTP를 수신하는 것에 응답하여, 프로세서 요소(650)는 OTP를 생성하도록 OTP 시드(331) 및 컴퓨팅 디바이스(300)의 카운터 요소(415)에 대한 이의 대응부를 독립적으로 사용하고, 그 다음 이의 생성된 OTP 및 컴퓨팅 디바이스(300)로부터 수신된 OTP가 매치하는지 여부를 판정하도록 야기된다. 이들이 매치한다고 추정하면, 프로세서 요소(650)는 계정 서버(650)의 서비스에 대한 액세스를 컴퓨팅 디바이스(300)에게 부여하도록 야기된다.
다양한 실시예에서, 프로세서 요소(150, 350, 450, 및 650)의 각각은 AMD®Athlon®, Duron® 또는 OTPeron® 프로세서, ARM® 애플리케이션, 내장된 또는 보안 프로세서, IBM® 및/또는 Motorola® DragonBall® 또는 PowerPC® 프로세서, IBM 및/또는 Sony® 셀 프로세서, 또는 Intel® Celeron®, Core(2) Duo®, Core(2) Quad®, Core i3®, Core i5®, Core i7®, Atom®, Itanium®, Pentium®, Xeon® 또는 Xscale® 프로세서를 제한없이 포함하는, 임의의 광범위한 상업적으로 사용가능한 프로세서를 포함할 수 있다. 또한, 이들 프로세서 요소들 중 하나 이상은 다중 코어 프로세서(다수의 코어가 동일한 또는 분리된 다이 상에 함께 존재하는지에 관계없이), 및/또는 다수의 물리적으로 분리된 프로세서가 동일한 방식으로 연결되는 것에 의한 일부 다른 다양한 다중 프로세서 아키텍쳐를 포함할 수 있다.
다양한 실시예에서, 저장부(160, 360, 460 및 660)의 각각은, 가능하면, 전력의 무정전 제공을 필요로 하는 휘발성 기술을 포함하고, 가능하면 제거가능할 수 있거나 제거불가능할 수 있는 머신 판독가능 저장 매체의 사용을 포함하는 기술을 포함하는, 임의의 광범위한 정보 저장 기술에 기초할 수 있다. 따라서, 이들 저장부의 각각은, 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 동적 RAM(DRAM), 2배속 DRAM(DDR-DRAM), 동기화 DRAM(SDRAM), 정적 RAM(SRAM), 프로그래밍가능 ROM(PROM), 삭제가능한 프로그래밍가능한 ROM(EPROM), 전기적으로 삭제가능한 프로그래밍가능한 ROM(EERPOM), 플래쉬 메모리, 폴리머 메모리(예를 들어, 강유전성 폴리머 메모리), 오보닉 메모리, 상변화 또는 강유전성 메모리, SONOS(silicon-oxide-nitride-oxide-silicon) 메모리, 자기 또는 광학 카드, 하나 이상의 개별적인 강유전성 디스크 드라이브, 또는 하나 이상의 어레이로 조직화되는 복수의 저장 디바이스(예를 들어, 독립 디스크 리던던트 어레이 또는 RAID 어레이)를 제한 없이 포함하는, 임의의 광범위한 타입(또는 타입의 조합)의 저장 디바이스를 포함할 수 있다. 비록 이들 저장부의 각각은 단일 블록으로서 도시되었지만, 이들 중 하나 이상은 상이한 저장 기술에 기초할 수 있는 다수의 저장 디바이스를 포함할 수 있다. 따라서, 예를 들어, 이들 도시된 저장부의 각각 중 하나 이상은 프로그램 및/또는 데이터가 일부 형태의 머신 판독가능 저장 매체 상에서 저장되고 전달될 수 있는 것에 의한 광학 드라이브 또는 플래쉬 메모리 카드 판독기의 조합, 상대적으로 연장된 기간에 대해 로컬적으로 프로그램 및/또는 데이터를 저장하는 강유전성 디스크 드라이브, 및 프로그램 및/또는 데이터에 대한 상대적으로 신속한 액세스를 가능하게 하는 하나 이상의 휘발성 솔리드 스테이트 메모리 디바이스(예를 들어, SRAM 또는 DRAM)를 나타낼 수 있다. 이들 저장부의 각각은 동일한 저장 기술에 기초한 다수의 저장 컴포넌트로 구성될 수 있지만, 이는 사용 중에 특화(예를 들어, 일부 DRAM 디바이스가 주요 저장부로서 이용되고 반면 다른 DRAM 디바이스는 그래픽 제어기의 구별 프레임 버퍼로서 이용됨)의 결과로서 개별적으로 유지될 수 있음에 또한 유의해야할 것이다.
다양한 실시예에서, 설명된 바와 같이 인터페이스(190, 395b 및 690)의 각각은 네트워크(999)를 통해 연결될 컴퓨팅 디바이스(300 및 600)의 각각을 가능하게 하는 임의의 광범위한 시그널링 기술을 이용할 수 있다. 이들 인터페이스의 각각은 이러한 연결을 가능하게 하는 필수 기능 중 적어도 일부를 제공하는 회로를 포함한다. 그러나, 이들 인터페이스의 각각은 프로세서 요소(150, 350, 450 및 650) 중 대응하는 것에 의해 실행되는 명령어의 시퀀스로 적어도 부분적으로 또한 구현될 수 있다(예를 들어, 프로토콜 스택 또는 다른 특징을 구현하기 위해). 네트워크(999)의 하나 이상의 부분이 전기적으로 및/또는 광학적으로 전도성인 케이블링을 이용하는 곳에서, 이들 인터페이스들 중 대응하는 것은 RS-232C, RS-433, USB, 이더넷(IEEE-802.3) 또는 IEEE-1394를 제한 없이 포함하는, 임의의 다양한 산업 표준을 준수하는 시그널링 및/또는 프로토콜을 이용할 수 있다. 대안적으로 또는 추가적으로, 네트워크(999)의 하나 이상이 무선 신호 전송의 사용을 포함하는 곳에서, 이들 인터페이스 중 대응하는 것은, IEEE 802.11a, 802.11b, 802.11g, 802.16, 802,20(일반적으로 "모바일 브로드밴드 무선 액세스"로서 지칭됨), 블루투스, 지그비, 또는 일반 패킷 무선 서비스(GSM/GPRS)를 갖는 GSM과 같은 셀룰러 무선전화 서비스, CDMA/1xRTT, EDGE(Enhanced Data Rates for Global Evolution), EV-DO(Evolution Data Only/Optimized), EV-DV(Evolution For Data and Voice), HSDPA(High Speed Downlink Packet Access), HSUPA(High Speed Uplink Packet Access), 4G LTE 등을 제한 없이 포함하는, 임의의 다양한 산업 표준을 준수하는 시그널링 및/또는 프로토콜을 이용할 수 있다. 이들 인터페이스의 각각은 단일 블록으로서 도시되었지만, 이들 중 하나 이상은 상이한 시그널링 기술에 기초할 수 있는 다수의 인터페이스를 포함할 수 있다는 것에 유의해야한다. 이는 하나 이상의 이들 인터페이스가 이들 컴퓨팅 디바이스 중 대응하는 것을 하나 초과의 네트워크에 연결하는 특별한 경우가 될 수 있고, 각각은 상이한 통신 기술을 이용한다.
도 2 및 도 3은 함께 취해져서, 더 자세하게 도 1의 블록도의 일부의 블록도를 도시한다. 더 구체적으로, 컴퓨팅 디바이스(300) 및 제어기(400)의 동작 환경의 양상은 도 2에서 OTP를 생성하는 것을 가능하게 하는 프로비져닝 동안, 및 도 3의 OTP의 생성 동안 도시되고, 여기서 프로세서 요소(350 및 450)는 전술된 기능을 수행하도록 제어 루틴(340, 370 및 440) 중 대응하는 것의 실행에 의해 야기된다. 당업자에 의해 인지되는 바와 같이, 이들 각각의 컴포넌트가 구성되는 것을 포함하는, 이들 제어 루틴의 각각은, 이들 프로세서 요소의 각각 중 대응하는 것을 구현하도록 선택되는 프로세서 또는 어떠한 타입의 프로세서 상에서 동작가능하도록 선택된다.
다양한 실시예에서, 제어 루틴(340, 370 및 440)의 각각은 운영 시스템, 디바이스 드라이버 및/또는 애플리케이션 레벨 루틴(예를 들어, 소위 디스크 미디어 상에 제공되는 "소프트웨어 스위트(software suites)", 원격 서버로부터 획득되는 "애플릿(applets)" 등)을 포함할 수 있다. 운영 시스템이 포함되는 곳에서, 운영 시스템은, Windows™, OS X™, Linux® 또는 Android OS™을 제한 없이 포함하는 임의의 다양한 사용가능한 운영 시스템이 될 수 있다. 하나 이상의 디바이스 드라이버가 포함되는 곳에서, 이들 디바이스 드라이버는 컴퓨팅 디바이스(300) 및 제어기(400)의 하드웨어 또는 소프트웨어 컴포넌트인지와는 상관 없이, 임의의 다양한 다른 컴포넌트에 대한 지원을 제공할 수 있다.
도시된 바와 같이, 제어 루틴(370)은 적어도 OTP 컴포넌트(375) 및 통신 컴포넌트(379)를 포함한다. OTP 컴포넌트(375)는 측정 데이터(437) 및 실링 키(431)를 생성하는 것 뿐만 아니라 OTP를 생성하는 카운터 요소(415)에 의해 제공되는 OTP 시드(331)의 시드 값 및 가변 값을 사용하는 것에서 프로세서 요소들(350와 450) 사이에서의 액션을 조정하도록 프로세서 요소(350)에 의해 실행가능하다. 통신 컴포넌트(379)는 보안 구역(367) 내의 제어 루틴(370)과 하나 이상의 프로비져닝 서버(100), 계정 서버(600), 인터페이스 제어기(395a) 및 디스플레이 인터페이스(385) 사이의 보안 통신을 생성하는 것을 보조하도록 프로세서 요소(350)에 의해 실행가능하다.
도시된 바와 같이, 제어 루틴(440)은 적어도 보안 전달 컴포넌트(4450, 키 생성기(441) 및 측정 컴포넌트(447)를 포함한다. 보안 전달 컴포넌트(445)는 하나 이상의 보안 구역들(예를 들어, 보안 구역(367))과 인터페이스 제어기(395a)와 디스플레이 인터페이스(385) 사이에서 데이터를 안전하게 전달하도록 프로세서 요소(440)에 의해 실행가능하다. 측정 컴포넌트(447)는 보안 구역 내에서 코드 및/또는 실행가능한 명령어의 무결성을 검증하는 것의 부분으로서 임의의 다양한 산술 알고리즘에 의해 보안 구역(예를 들어, 보안 구역(367))의 콘텐츠의 측정을 도출하도록 프로세서 요소(440)에 의해 실행가능하다. 키 생성기 컴포넌트(441)는 보안 구역의 콘텐츠의 측정 컴포넌트에 의해 도출되는 측정치로부터 키를 생성하도록 프로세서 요소(440)에 의해 실행가능하다(예를 들어, 보안 구역(367)의 콘텐츠의 측정치를 저장한 측정 데이터(437)로부터의 실링 키(431)).
프로비져닝과 관련하여 도 2를 참조하면, 통신 컴포넌트(379)는 프로비져닝 서버(100)와 협업하여 네트워크(999) 및 인터페이스 제어기(395b)를 통해 이들 사이에서 보안 통신을 수립한다. 통신 컴포넌트(379)는 또한 프로비져닝 서버(100)로부터 디스플레이(380) 상에 제시될 다양한 시각적 프롬프트를 수신하고, 이러한 프롬프팅에 응답하여 프로비져닝 서버(100)로 운영자에 의해 입력된 패스코드를 전송한다. 통신 컴포넌트(379)는 또한 프로비져닝 서버(100)로부터 원래 암호화된 형식으로 OTP 시드(331)를 수신한다. 일부 실시예에서, 통신 컴포넌트(379)는 또한 디스플레이(380) 상에 제시될 프롬프트 및/또는 제어부(32)를 통해 운영자에 의해 제공되는 패스코드의 암호화된 교환에 참여하도록 인터페이스 제어기(395a) 및 디스플레이 인터페이스(385) 중 하나 또는 양자와의 보안 통신을 수립할 수 있다.
OTP 컴포넌트(375)는 보안 구역의 콘텐츠의 측정치로부터 도출된 측정 데이터(437) 및 적어도 측정 데이터(437)로부터 도출된 실링 키(431)를 제공하도록 제어기(400)의 프로세서 요소(450)를 시그널링한다. OTP 시드(331)의 수신에 후속하여, 설명된 바와 같이 OTP 컴포넌트(375)는 또한 OTP를 생성하는데 나중 사용을 위해 OTP 시드(331)를 암호화하도록 실링 키(431)를 사용한다.
보안 전달 컴포넌트(445)는 보안 통신이 제어 루틴(379)과 디스플레이 인터페이스(385) 및 인터페이스 제어기(395a) 중 하나 또는 양자 사이에서 발생할 수 있는 것에 의해 다른 메커니즘을 제공한다. 다양한 실시예에서, 디스플레이 인터페이스(385) 및 인터페이스 제어기(395a) 중 하나 또는 양자와의 보안 통신을 수립하는 통신 컴포넌트(379)에 추가적으로 또는 대신에 전달 컴포넌트(445)가 이를 수행할 수 있다. 본질적으로, 디스플레이(380) 상의 운영자에게 제시될 시각 프롬프트의 보안 교환 및 제어부(320)를 통해 운영자에 의해 제공되는 패스코드가 보안 구역(367)의 외부에 저장부(360) 내에 존재할 수 있는 악성 소프트웨어에 의한 차단 또는 수정을 방지하는 방식으로 교환될 수 있는 것에 의해 전달 컴포넌트(445)가 교체 경로를 제공한다.
측정 컴포넌트(447)는 내부의 OTP 시드(331)의 포함 이전에 보안 구역(367)의 콘텐츠의 측정치로 구성될 수 있는 측정 데이터(437)를 도출한다. 키 생성기(441)는 적어도 측정 데이터(437)로부터 실링 키(431)를 생성한다. 키 생성기(441)는 또한 실링 키(431)의 생성에서, 프로세서 요소(350)의 ID 코드(351)와 같은 컴퓨팅 디바이스의 데이터 조각을 하나 이상 식별하는 것을 포함할 수 있다. 이러한 컴퓨팅 디바이스(300)에 고유한 데이터 조각을 식별하는 것을 포함함으로써, OTP 시드(331)의 후속 암호화에 대해 실링 키(431)의 나중 생성이 컴퓨팅 디바이스(300)로 효과적으로 "바운딩"하여서 이는 데이터 조각을 식별하는 것이 생성될 정확한 실링 키에 대해 사용가능한 컴퓨팅 디바이스(300) 상에서 발생해야만 한다.
OTP 생성에 관하여 도 3을 참조하면, 통신 컴포넌트(379)는 계정 서버(600)와 협업하여 네트워크(999) 및 인터페이스 제어기(395b)를 통해 이들 사이의 보안 통신을 수립한다. 통신 컴포넌트(379)는 또한 계정 서버(600)로부터 디스플레이(380) 상에 제시될 다양한 시각적인 프롬프트를 수신하고 계정 서버(600)로 적어도 생성된 OTP를 전송한다. 프로비져닝 동안의 경우에서와 같이(도 2를 참조하여 방금 논의된 바와 같이), 통신 컴포넌트(379) 및 보안 전달 컴포넌트(445) 중 하나 또는 양자는 보안 구역(367)와 디스플레이 인터페이스(385) 및 인터페이스 제어기(395a)의 각각 사이에서의 데이터의 보안 교환을 가능하게 한다. 상이한 실시예에서, 이들 중 하나 또는 양자가 사용될 수 있다.
OTP 컴포넌트(375)는 계정 서버(600)에 제공하기 위해 OTP를 생성하는 것의 목적을 위해 다시 생성화되는 것으로서 보안 구역(367)의 콘텐츠의 측정치에 기초하여 새로 실링 키(431)를 제공하도록 제어기(400)의 프로세서 요소(450)에 시그널링한다. OTP 컴포넌트(375)는 또한 카운터 요소(415)로부터 현재 가변 값을 제공하도록 프로세서 요소(450)에 시그널링한다. OTP 컴포넌트는 그 다음 재생성된 실링 키(431)를 사용하여 OTP 시드(331)를 복호화해서 이의 시드 값을 획득하고, 그 다음 OTP를 생성하도록 카운터 요소(415)에 의해 생성된 시드 값 및 가변 값 모두를 사용한다. OTP 컴포넌트는 또한 계정 서버(600)로의 전송을 위해 통신 컴포넌트(379)에 생성된 OTP를 제공하거나, 계정 서버(600)로의 전송을 위해 하나 이상의 다른 아이템(예를 들어, 제어부(320)를 통해 운영자의 타이핑된 패스워드 또는 지문 스캔)과 통합되는 로그인 블록(339)을 생성할 수 있다.
측정 컴포넌트(447)는 보안 구역(367) 내에 포함되는 OTP 컴포넌트(375)로 보안 구역(367)의 콘텐츠의 측정치를 다시 도출하지만 OTP 시드(331)는 도출하지 않는다. 이는 프로비져닝 동안 보안 구역(367)의 콘텐츠와 매칭하도록 수행되고, 여기서 보안 구역(367)는 OTP 컴포넌트(375)를 포함하지만, OTP 시드(331)는 프로비져닝 동안 이 포인트에서 아직 수신되지 않았기 때문에 OTP 시드(331)는 포함하지 않는다. 보안 구역(367) 내의 콘텐츠의 측정이 행해질 때마다 보안 구역 내에 동일한 콘텐츠를 가질 필요가 있으며, 그 결과 이러한 측정으로부터 발생하는 도출된 측정 데이터(437)는 매번 동일할 것이다. 키 생성기(441)는 보안 구역(367)의 콘텐츠로부터 측정 컴포넌트(447)에 의해 도출되는 측정 데이터(437)와 실링 키(431)가 프로비져닝 동안 최초 생성되었을 때 포함되었던 다른 임의의 아이템(예를 들어, ID 코드(351)과 같은 식별 데이터)의 동일한 조합으로부터 다시 실링 키(431)를 생성한다. 측정 데이터(437)의 도출에 후속하여, OTP 시드(331)의 복사본이 또한 보안 구역(367)에 저장되어 보안 조건 하에서 이의 복호화를 가능하게 한다. OTP를 생성하기 위해 이제 재생성화되는 것과 같이 보안 구역(367)의 구조에서 변경되는 것은 없다고 추정하고, 실링 키(431)를 생성하는 것에 포함될 수 있는 것으로서 다른 아이템 중에 그 후로 변경되는 것은 없다고 추정하면, OTP의 생성을 가능하게 하는 OTP 시드(331)를 복호화하는데 사용하기 위해 이제 재생성된 실링 키(431)는 OTP시드(331)를 암호화하도록 프로비져닝 동안 원래대로 생성된 것으로서 실링 키(431)와 동일할 것이다.
도 4는 보안이 컴포넌트들 사이의 상호작용에 제공될 수 있는 방식의 변형을 도시한다. 특히, 보안 전달 컴포넌트(445), 통신 컴포넌트(379), 디스플레이 인터페이스(385) 및 인터페이스 제어기(395a) 사이에서의 데이터의 보안 교환의 양상이 도시된다.
도시된 바와 같이, 다른 보안 구역(366)는 일부 실시예에서 프로세서 요소(350)에 의해 저장부(360) 내에 정의될 수 있다. 이 추가적인 보안 구역(366)는 보안 구역을 생성화 및 비생성화하는 것 및 하드웨어 추상 계층으로서 제어기(400)와의(또는 통과하는) 통신을 위한 인터페이스를 제공하는 것을 포함하는, 보안 서비스를 제공하는 제어 루틴(34)의 일부를 저장할 수 있다. 또한, 제어 루틴(440)이 제어기(400)의 전체적으로 분리된 동작 환경 내에서 저장되고 실행되는 것으로서 논의되었지만, 대안적인 실시예에서, 제어 루틴에 의해 수행되는 기능들 중 하나 이상은 추가적인 보안 구역(366)에 존재하는 제어 루틴(340)의 부분에 의해 수행될 수 있다. 또한, 프로세서 요소(350)에 의해 실행가능한 명령어로서 구현되는 카운터 요소(415)의 변형은 또한 추가적인 보안 구역(366) 내부에서 저장되고 실행될 수 있다. 달리 말하면, 추가적인 보안 구역(366)는 다른 보안 구역(예를 들어, 보안 구역(367))를 지원하는 것을 제공하도록 다양한 실시예에 포함될 수 있고/거나 제어기(400)의 분리된 환경에 대신하여 포함될 수 있다.
논의된 바와 같이, 제어기(320)(도 1 내지 도 3)의 운영자 동작을 통해 수신되는 패스코드, 패스워드, 지문 스캔/또는 다른 입력은 차단 또는 탬퍼링을 방지하도록 암호화를 사용하여 인터페이스 제어기(395a)로부터 통신 컴포넌트(379)로 안전하게 전달될 수 있거나, 보안 전달 컴포넌트(445)의 지원으로 제어기(400)를 통해 보안 구역(366)로 안전하게 전달될 수 있다. 또한 논의된 바와 같이, 로그인과 관련된 텍스트 및/또는 이미지는, 차단 또는 탬퍼링을 방지하도록 암호화를 사용하여 통신 컴포넌트(379)에 의해 또는 보안 전달 컴포넌트(445)의 지원으로 제어기(400)를 통해, 디스플레이 인터페이스(385)로 안전하게 전달될 수 있다. 대안적인 실시예에서, 제어기(400)를 통한 이러한 데이터의 라우팅은 추가적인 보안 구역(366)를 통해 이들을 라우팅하는 것을 포함하고, 여기서 보안 구역(366)는 이러한 보안 라우팅을 위해 제어기(400)로 다른 보안 구역에 대한 인터페이스를 제공한다.
도 4는 프로비져닝 서버(100) 및 계정 서버(600) 중 어느 하나로 로깅하는 것과 관련된 이미지(881)의 시각적 표현의 예시를 추가적으로 도시한다. 당업자에게 익숙한 바와 같이, 액세스가 탐색되는 서버는 운영자에게 시각적 표시를 제공하기 위해 특정 운영자의 특정 계정과 연관되도록 선택되는 이미지를 전송할 수 있어서 이들은 이들이 액세스(또는 이들의 프록시)를 탐색하는 이 서버와 통신 중이지만, 이 서버로 가장하는 컴퓨팅 디바이스와는 통신하지 않는다. 이러한 이미지는 다양한 심볼, 컬러풀한 패턴, 객체의 그림 등이 되는 경향이 있다. 이러한 이미지(예를 들어, 이미지(881))가 보안 구역(367) 내부에서부터 디스플레이 인터페이스(385)로 전달될 수 있는 것에 의한 메커니즘의 제공은 보안 구역(366 및 367)의 외부의 저장부(360) 내에 존재할 수 있는 악성 소프트웨어에 의해 캡쳐 또는 탬퍼링될 수 없다는 것을 보장한다. 이러한 악성 소프트웨어가 이미지(881)의 복사본을 캡쳐하는 것이 가능하다면, 이러한 악성 소프트웨어는 또한 운영자를 유도하여 패스워드, 지문 스캔 등을 제공하기 위해 디스플레이(380) 상에서 액세스가 탐색되는 서버에 대한 로그인 스크린의 자체 거짓 버전(its own false version)을 제시하도록 시도할 수 있다.
도 5는 로직 흐름(2100)의 일 실시예를 도시하고, 로직 흐름(2100)은 본원에서 설명된 하나 이상의 실시예에 의해 실행되는 동작의 일부 또는 전부를 표현할 수 있다. 더 구체적으로, 로직 흐름(2100)은 적어도 제어 루틴(340 및/또는 370)를 실행하는 것에 있어서 프로세서 요소(350)에 의해 수행되고/거나 컴퓨팅 디바이스(300)의 다른 컴포넌트에 의해 수행되는 동작을 도시할 수 있다.
(2110)에서, 컴퓨팅 디바이스(예를 들어, 컴퓨팅 디바이스(300))는 프로비져닝 서버(예를 들어, 프로비져닝 서버(100))로부터 OTP 루틴(예를 들어, 제어 루틴(370), 또는 이들의 적어도 OTP 컴포넌트(375))를 수신한다. 논의된 바와 같이, 프로비져닝 서버는 우편 서비스를 통해, 전화로, 또는 인편으로와 같이, 완전히 상이한 통신 메커니즘에 의해 운영자 "대역 외(out-out band)"에 의해 수신되는 패스코드를 입력하도록 컴퓨팅 디바이스의 운영자에게 프롬프팅할 수 있다.
(2120)에서, 컴퓨팅 디바이스(예를 들어, 컴퓨팅 디바이스(300)의 프로세서 요소(350))의 주 프로세서 요소는 OTP 루틴을 실행하고, 이 실행은 보안 구역의 생성화를 위한 OTP 루틴 호출 내에서 명령어의 실행을 포함한다. 주 프로세서 요소는 이들 명령어에 응답하여 보안 구역을 생성하고, OTP 루틴은 내부에 저장되며, OTP 루틴의 추가 실행이 내부에서 발생하고 여기서 컴퓨팅 디바이스에서의 다른 곳에 존재할 수 있는 악성 소프트웨어로부터 더 큰 보안성이 제공되는 것이 가능하다.
(2130)에서, 보안 구역의 콘텐츠의 측정치가 획득된다. 논의된 바와 같이, 이는 컴퓨팅 디바이스(예를 들어, 제어기(400)의 프로세서 요소(450)) 내부의 제어기의 제어기 프로세서 요소는 구역의 콘텐츠의 측정치를 도출하라는 요청에 의해 수행될 수 있다. 그러나, 또한 논의된 바와 같이, 이는 OTP 루틴이 저장되는 보안 구역의 측정치를 도출하도록 다른 보안 구역 내부의 명령어를 실행하는 주 프로세서 요소에 의해 대안적으로 수행될 수 있다.
(2140)에서, 측정치는 프로비져닝 서버로 전송된다. (2150)에서, OTP 시드는 프로비져닝 서버로부터 수신되고 OTP 루틴이 존재하는 보안 구역 내부에 저장된다.
(2160)에서, 보안 구역의 콘텐츠의 이전에 측정된 측정치(보안 구역 내부에 OTP 시드를 저장하기 이전에) 기초하여 실링 키가 획득된다. 측정치의 도출과 유사하게, 실링 키는 제어기 내부에서 제어기 프로세서에 의해 또는 다른 보안 구역 내부에 저장된 명령어를 실행하는 주 프로세서 요소에 의해 생성될 수 있다. 논의된 바와 같이, 실링 키를 생성하는 것에 있어서, 컴퓨팅 디바이스의 ID 코드(예를 들어, 주 프로세서 요소의 ID 코드)는 OTP 루틴 및 시드가 저장되는 보안 구역의 신규 측정치와 함께 사용될 수 있다.
(2170)에서, 실링 키는 OTP 시드를 암호화는데 이용된다. (2180)에서, OTP 루틴 및 새롭게 암호화된 OTP 시드는 OTP를 생성하는데 나중 사용을 위해 컴퓨팅 디바이스의 저장부 내부에서 유지되지만, 실링 키는 유지되지 않는다. 실링 키는 폐기된다. 논의된 바와 같이, 프로비져닝이 완료되면 보안 구역이 비생성화될 것이 예상됨에 따라 OTP 루틴 및 OTP 시드가 보안 구역 내부에 저장되는 것을 중단한다.
도 6은 로직 흐름(2200)의 일 실시예를 도시한다. 로직 흐름(2200)은 본원에서 설명된 하나 이상의 실시예에 의해 실행되는 동작의 일부 또는 전부를 표현할 수 있다. 더 구체적으로, 로직 흐름(2200)은 적어도 제어 루틴(440)을 실행하는 것에 있어서 프로세서 요소(450)에 의해 수행되고/거나 제어기(400)의 다른 컴포넌트에 의해 수행되는 동작을 도시할 수 있다.
(2210)에서, 컴퓨팅 디바이스의 제어기 프로세서 요소(예를 들어, 컴퓨팅 디바이스(300)의 제어기(400)의 프로세서 요소(450))는 주 프로세서 요소(예를 들어, 보안 구역(367))에 의해 내부에 저장된 명령어의 보안 실행을 가능하게 하는 컴퓨팅 디바이스의 저장부 내부에서 생성화되는 보안 구역의 콘텐츠의 측정치에 대해 컴퓨팅 디바이스(예를 들어, 프로세서 요소(350))의 주 프로세서 요소로부터 요청을 수신한다. (2220)에서, 제어기 프로세서 요소는 이 보안 구역의 콘텐츠의 측정치를 도출하고, 이를 주 프로세서 요소에 제공한다.
(2230)에서, 제어기 프로세서 요소는 보안 구역의 콘텐츠의 이전에 측정된 측정치에 적어도 기초하여 실링 키를 제공하도록 주 프로세서 요소로부터 요청을 수신한다. (2240)에서, 제어기 프로세서 요소는 적어도 이전에 측정된 측정치로부터, 또한 가능하면 컴퓨팅 디바이스의 컴포넌트 또는 다른 양상과 연관된 ID 코드로부터 실링 키를 생성한다.
도 7은 로직 흐름(2300)의 일 실시예를 도시한다. 로직 흐름(2300)은 본원에 설명된 하나 이상의 실시예에 의해 실행되는 동작의 일부 또는 모두를 표현할 수 있다. 더 구체적으로, 로직 흐름(2300)은 적어도 제어 루틴(340 및/또는 370)을 실행하는 것에 있어서 프로세서 요소(350)에 의해 수행되고/거나 컴퓨팅 디바이스(300)의 다른 컴포넌트에 의해 수행되는 동작을 도시할 수 있다.
(2310)에서, 컴퓨팅 디바이스의 주 프로세서 요소(예를 들어, 컴퓨팅 디바이스(300)의 프로세서 요소(350))는 OTP 루틴을 실행하고, 이 실행은 보안 구역의 생성화에 대한 OTP 루틴(예를 들어, 제어 루틴(370), 또는 이들의 적어도 OTP 컴포넌트(375)) 호출 내에서 명령어의 실행을 포함한다. 주 프로세서 요소는 이들 명령어에 응답하여 보안 구역을 생성하고, OTP 루틴은 내부에 저장되며, OTP 루틴의 추가 실행이 내부에서 발생하고 여기서 컴퓨팅 디바이스에서의 다른 곳에 존재할 수 있는 악성 소프트웨어로부터 더 큰 보안성이 제공되는 것이 가능하다. 논의된 바와 같이, 컴퓨팅 디바이스의 운영자는 컴퓨팅 디바이스가 계정 서버에 액세스하도록 동작시키는 것일 수 있고, 계정 서버는 운영자가 다양한 서비스의 제공을 위해 계정을 갖고(예를 들어, 계정 서버(600)), 이러한 계정 서버로의 액세스는 OTP 루틴의 이 실행을 트리거하는 것이다. 또한 논의된 바와 같이, OTP 루틴을 실행하는 이러한 원격 트리거링은 컴퓨팅 디바이스 내부에 저장되고 계정 서버에 액세스하는 운영자에 의해 동작되는 웹 브라우저의 "플러그인(plug-in)" 또는 "확장형(extension)"이 되는 OTP 루틴의 결과가 될 수 있다.
(2320)에서, (OTP 루틴을 포함하지만 OTP 시드는 아직 포함하지 않는) 보안 구역의 콘텐츠의 신규 측정치에 기초하여 실링 키가 새롭게 생성된다. 이 경우에, 실링 키는 또한 새롭게 측정된 보안 구역의 콘텐츠의 측정치에 기초하여 실제로 재생성되는 것이다. 이는 암호화를 위해 사용되는 프로비져닝의 시간에서 OTP 시드의 후속 암호화에서 실링 키가 폐기된다는 사실로부터 기인한다. 이제 OTP 시드가 사용되기 때문에, 실링 키는 다시 한번 재생성되어야만 한다. 논의된 바와 같이, 실링 키는 컴퓨팅 디바이스 내부의 제어기의 제어기 프로세서 요소(예를 들어, 제어기(400)의 프로세서 요소(450))에 의해 재생성될 수 있거나 이를 수행하도록 다른 구역 내부에 저장된 명령어를 실행하는 주 프로세서 요소에 의해 재생성될 수 있다. 논의된 바와 같이, 실링 키를 재생성하는 것에 있어서, 컴퓨팅 디바이스의 컴포넌트의 ID 코드(예를 들어, 주 프로세서 요소의 ID 코드)는 OTP 루틴 및 시드가 저장되는 보안 구역의 신규 측정치와 함께 사용될 수 있다.
(2330)에서, OTP 시드는 이로부터 시드 값을 획득하도록 재생성된 실링 키를 생성하여 복호화된다. 이를 수행하기 위해, OTP 시드는 보안 구역 내에 저장되고, 신규 측정치를 측정하는 것에 후속하여, 보안 구역에 의해 제공되는 보안 환경 내부에서 이의 복호화를 가능하게 한다. OTP 시드의 성공적인 복호화는 방금 획득된 재생성된 실링 키가 프로비져닝의 시간에서 생성되는 원래의 실링 키와 동일하다는 것을 가정한다.
(2340)에서, 가변 값은 카운터 요소로부터 획득된다. 논의된 바와 같이, 이는 제어기 내부의 제어기 프로세서 요소가 제어기 내부의 하드웨어 기반 카운터 요소로부터의 가변 값을 제공하라는 요청에 의해 수행될 수 있다. 그러나, 또한 논의된 바와 같이, 이는 가변 값 생성을 도출하기 위해 다른 보안 구역 내부의 명령어를 실행하는 주 프로세서 요소에 의해 대안적으로 수행될 수 있다.
(2350)에서, OTP 루틴을 실행하는 주 프로세서 요소는 OTP를 생성하도록 시드 값 및 가변 값을 사용한다. (2360)에서, 컴퓨팅 디바이스의 컴퓨팅 디바이스 동작 제어부의 운영자로부터의 입력은 계정 서버로부터 수신된 입력에 대한 챌린지 프롬프트에 응답하여 수신되고 컴퓨팅 디바이스의 디스플레이 상에 제시된다.
(2370)에서, 운영자로부터의 적어도 입력 및 생성된 OTP는 로그인 블록을 형성하도록 조합된다. 논의된 바와 같이, 컴퓨팅 디바이스의 적어도 컴포넌트와 연관된 ID 코드와 같은 정보의 또 다른 조각이 또한 포함될 수 있다. (2380)에서, 로그인 블록이 계정 서버로 전송된다.
도 8은 로직 흐름(2400)의 일 실시예를 도시한다. 로직 흐름(2400)은 본원에서 설명된 하나 이상의 실시예에 의해 실행되는 동작의 일부 또는 전부를 표현할 수 있다. 더 구체적으로, 로직 흐름(2400)은 적어도 제어 루틴(440)을 실행하는 것에 있어서 프로세서 요소(450)에 의해 수행되고/거나 제어기(400)의 다른 컴포넌트에 의해 수행되는 동작을 도시할 수 있다.
(2410)에서, 컴퓨팅 디바이스의 제어기 프로세서 요소(예를 들어, 컴퓨팅 디바이스(300)의 제어기(400)의 프로세서 요소(450))는 컴퓨팅 디바이스의 주 프로세서 요소(예를 들어, 프로세서 요소(350))로부터 요청을 수신하여 보안 구역의 콘텐츠의 신규 측정치에 적어도 기초하여 실링 키를 제공한다. 논의된 바와 같이, 이러한 신규 측정치는 계정 서버에 대한 액세스를 탐색하는 컴퓨팅 디바이스의 운영자의 결과로서 요청되어 OTP가 생성되어야만 한다.
(2420)에서, 제어기 프로세서 드라이브는 주 프로세서 요소(예를 들어, 보안 구역(367))에 의해 내부에 저장된 명령어의 보안 실행을 가능하게 하도록 컴퓨팅 디바이스의 저장부 내부에서 생성화되는 보안 구역의 콘텐츠의 신규 측정치를 도출한다. (2430)에서, 제어기 프로세서 요소는 적어도 신규 측정치로부터, 또한 가능하면 컴퓨팅 디바이스의 컴포넌트 또는 다른 양상과 연관된 ID 코드로부터 실링 키를 생성한다.
도 9는 이전에 설명된 바와 같이 다양한 실시예를 구현하기에 적합한 예시의 프로세싱 아키텍쳐(3000)의 실시예를 도시한다. 더 구체적으로, 프로세싱 아키텍쳐(3000)(또는 이들의 변형)는 컴퓨팅 디바이스(100, 300 및 600) 중 하나 이상의 부분으로서 구현될 수 있다. 프로세싱 아키텍쳐(3000)의 컴포넌트는 주어진 참조 부호이고 여기서 마지막 두 디지트는 이들 컴퓨팅 디바이스의 각각의 부분으로서 이전에 도시되고 설명되는 컴포넌트의 참조 부호의 마지막 두 디지트에 대응한다는 것에 유의해야 한다. 이는 다양한 실시예에서 이 예시적인 프로세싱 아키텍쳐를 이용할 수 있는 이들 컴퓨팅 디바이스들 중 어느 것이든지 이러한 컴포넌트를 상관시키기 위한 보조 수단으로서 행해진다.
프로세싱 아키텍쳐(3000)는 하나 이상의 프로세서, 다중 코어 프로세서, 코프로세서, 메모리 유닛, 칩셋, 제어기, 주변장치, 인터페이스, 오실레이터, 타이밍 디바이스, 비디오 카드, 오디오 카드, 멀티미디어 입력/출력(I/O) 컴포넌트, 전원 공급기 등을 제한 없이 포함하는 디지털 프로세싱에서 일반적으로 이용되는 다양한 요소를 포함한다. 본 명세서에서 사용되는 바와 같이, 용어 "시스템" 및 "컴포넌트"는 디지털 프로세싱이 수행되는 컴퓨팅 디바이스의 엔티티를 지칭하도록 의도되고, 엔티티는 하드웨어, 하드웨어 및 소프트웨어의 조합, 소프트웨어, 또는 실행 중인 소프트웨어이고, 이들의 예시는 이 도시된 예시적인 프로세싱 아키텍쳐에 의해 제공된다. 예를 들어, 컴포넌트는, 프로세서 요소 상에서 구동하는 프로세스, 프로세서 요소 자체, 저장 디바이스(예를 들어, 하드 디스크 드라이브, 어레이의 다수의 저장 드라이브 등)가 될 수 있지만, 이에 제한되지 않고, 이는 광학 및/자기 저장 장치, 소프트웨어 객체, 실행가능한 명령어의 시퀀스, 실행의 쓰레드, 프로그램, 및/또는 전체 컴퓨팅 디바이스(예를 들어, 전체 컴퓨터)를 이용할 수 있다. 예시의 방식으로, 서버 상에서 구동하는 애플리케이션 및 서버 모두는 컴포넌트가 될 수 있다. 하나 이상의 컴포넌트는 프로세스 및/또는 실행의 쓰레드 내에 존재할 수 있고, 컴포넌트는 하나의 컴퓨팅 디바이스 상에 위치되고/거나 둘 이상의 컴퓨팅 디바이스들 사이에 분포될 수 있다. 또한, 컴포넌트는 동작을 조정하도록 다양한 타입의 통신 매체에 의해 서로 통신가능하게 연결될 수 있다. 조정은 정보의 단방향 또는 양방향 교환을 포함할 수 있다. 예를 들어, 컴포넌트는 통신 매체를 통해 전달되는 신호의 형태로 정보를 전달할 수 있다. 정보는 하나 이상의 신호 라인에 할당되는 신호로서 구현될 수 있다. 각 메시지는 직렬 또는 실질적으로는 병렬로 전송되는 신호 또는 복수의 신호가 될 수 있다.
도시된 바와 같이, 프로세싱 아키텍쳐(3000)를 구현하는 것에 있어서, 컴퓨팅 디바이스는 적어도 프로세서 요소(950), 저장부(960), 다른 디바이스에 대한 인터페이스(990) 및 커플링(955)를 포함한다. 프로세싱 아키텍쳐(3000)를 구현하는 컴퓨팅 디바이스의 다양한 양상에 따라 - 이의 의도된 사용 및/또는 사용 조건을 포함함 -, 이러한 컴퓨팅 디바이스는 제한 없이 카운터 요소(915)와 같은 추가적인 컴포넌트를 더 포함할 수 있다.
커플링(955)은 적어도 프로세서 요소(950)를 저장부(960)에 통신가능하게 연결하는 하나 이상의 버스, 포인트 투 포인트 상호접속부, 송수신기, 버퍼, 크로스포인트 스위치, 및/또는 다른 컨덕터 및/또는 로직을 포함한다. 커플링(955)은 프로세서 요소(950)를 하나 이상의 인터페이스(990) 및 디스플레이 인터페이스(985)에 더 연결시킬 수 있다(이들 및/또는 다른 컴포넌트가 또한 제시되는 것에 따라). 프로세서 요소(950)가 커플링(955)에 의해 이렇게 연결되면, 컴퓨팅 디바이스(100, 300 및 600) 중 어느 하나가 프로세싱 아키텍쳐(3000)을 구현하는 것에 대해, 프로세서 요소(950)는 위에서 상세히 설명된 태스크들의 다양한 것을 수행하는 것이 가능하다. 커플링(955)은 신호가 광학적으로 및/또는 전기적으로 전달되는 것에 의해 임의의 다양한 기술 또는 기술의 조합으로 구현될 수 있다. 또한, 커플링(955)의 적어도 부분은 AGP(Accelerated Graphics Port), CardBus, E-ISA(E-Industry Standard Architecture), MCA(Micro Channel Architecture), NuBus, PCI-X(Peripheral Component Interconnect(Extended)), PCI-E(PCI Express), PCMCIA(Personal Computer Memory Card International Association) 버스, HyperTransPort™, QuickPath, 및 유사한 것을 제한 없이 포함하는, 임의의 광범위한 산업 표준을 준수하는 타이밍 및/또는 프로토콜을 이용할 수 있다.
이전에 논의된 바와 같이, 프로세서 요소(950)(하나 이상의 프로세서 요소(150, 350, 450 및 650))는, 임의의 광범위한 기술을 이용하고 임의의 다수의 방식으로 물리적으로 통합되는 하나 이상의 코어로 구현되는, 임의의 광범위한 상업적으로 사용가능한 프로세서를 포함할 수 있다.
이전에 논의된 바와 같이, 저장부(960)(하나 이상의 저장부(160, 360, 460 및 660에 대응함)는 임의의 광범위한 기술 또는 기술의 조합에 기초하는 하나 이상의 분리 저장 디바이스를 포함할 수 있다. 더 구체적으로, 도시된 바와 같이, 저장부(960)는 휘발성 저장부(961)(예를 들어, RAM 기술의 하나 이상의 형태에 기초한 솔리드 스테이트 저장부), 비휘발성 저장부(962)(예를 들어, 콘텐츠를 보존하기 위해 전원의 무정전 공급을 필요로 하지 않는 솔리드 스테이트, 강자성 또는 다른 저장부), 및 제거가능한 매체 저장부(963)(예를 들어, 정보가 컴퓨팅 디바이스들 사이에서 전달될 수 있는 것에 의한 제거가능한 디스크 또는 솔리드 스테이트 메모리 카드 저장부) 중 하나 이상을 포함할 수 있다. 가능하면 다수의 분리된 타입의 저장부를 포함하는 것으로서 저장부(960)의 이 도시는 컴퓨팅 디바이스에서 저장 디바이스의 하나 초과의 타입의 일반적인 사용을 인지하고, 여기서 하나의 타입은 프로세서 요소(950)에 의한 데이터의 더 신속한 조작을 가능하게 하는 상대적으로 신속한 판독 및 기록 기능을 제공하고(그러나 가능하면 전원을 일정하게 필요로 하는 "휘발성" 기술을 사용) 반면 다른 타입은 상대적으로 고밀도의 비휘발성 저장부를 제공한다(그러나 상대적으로 느린 판독 및 기록 기능을 제공할 것이다).
상이한 기술을 이용하는 상이한 저장 디바이스의 종종 상이한 특성을 고려하면, 이러한 상이한 저장 디바이스가 상이한 인터페이스를 통해 상이한 저장 디바이스에 연결되는 상이한 저장 제어기를 통해 컴퓨팅 디바이스의 다른 부분에 연결되는 것이 또한 일반적이다. 예시의 방식으로, 휘발성 저장부(961)가 RAM 기술에 기초하여 제공되는 곳에서, 휘발성 저장부(961)는 아마도 로우 및 컬럼 어드레싱을 이용하는 휘발성 저장부(961)에 적합한 인터페이스를 제공하는 저장부 제어기(965a)를 통해 커플링(955)에 통신가능하게 연결될 수 있고, 여기서 저장부 제어기(965a)가 로우 리프레싱 및/또는 휘발성 저장부(961) 내부에 저장된 정보를 보존하는 것을 보조하는 다른 유지보수 태스크를 수행할 수 있다. 다른 예시의 방식으로, 비휘발성 저장부(962)가 제공되고 하나 이상의 강자성 및/또는 솔리드 스테이트 디스크 드라이브를 포함하는 곳에서, 비휘발성 저장부(962)는 아마도 정보의 블록 및/또는 실린더 및 섹터의 어드레싱을 이용하는 비휘발성 저장부(962)에 적합한 인터페이스를 제공하는 저장부 제어기(965b)를 통해 커플링(955)에 통신가능하게 연결될 수 있다. 또 다른 예시의 방식으로, 제거가능한 매체 저장부(963)가 제공되고 하나 이상의 제거가능한 머신 판독가능 저장 매체(969)를 이용하는 하나 이상의 광학 및/또는 솔리드 스테이트 디스크 드라이브를 포함하는 곳에서, 제거가능한 매체 저장부(963)는 아마도 정보 블록의 어드레싱을 이용하는 제거가능한 매체 저장부(963)에 적합한 인터페이스를 제공하는 저장 제어부(965c)를 통해 커플링(955)에 통신가능하게 연결될 수 있고, 여기서 저장부 제어기(965c)는 머신 판독가능 저장 매체(969)의 수명을 연장하는데 특정한 방식으로 판독, 삭제 및 기록 동작을 조정할 수 있다.
휘발성 저장부(961) 또는 비휘발성 저장부(962) 중 어느 하나는, 각각이 기초하는 기술에 따라, 프로세서 요소(950)에 의해 실행가능한 명령어의 시퀀스를 포함하는 루틴이 저장될 수 있는 머신 판독가능 저장 매체 형태의 제조 물품을 포함할 수 있다. 예시의 방식으로, 비휘발성 저장부(962)가 강자성 기반 디스크 드라이브(예를 들어, 소위 "하드 드라이브")를 포함하는 곳에서, 각각의 이러한 디스크 드라이브는 자기적으로 응답하는 입자의 코딩이 정보를 저장하는 다양한 패턴으로 증착되고 자기적으로 지향되는 하나 이상의 회전 플래터를 통상적으로 이용한다. 다른 예시로서, 비휘발성 저장부(962)는 컴팩트 플래쉬 카드와 유사한 방식으로, 명령어의 시퀀스와 같은 정보를 저장하는 솔리드 스테이트 저장 디바이스의 뱅크로 구성될 수 있다. 다시, 실행가능한 루틴 및/또는 데이터를 저장하도록 상이한 시간에 컴퓨팅 디바이스에서의 저장 디바이스의 상이한 타입을 이용하는 것이 일반적이다. 따라서, 프로세서 요소(950)에 의해 실행될 명령어의 시퀀스를 포함하는 루틴은 머신 판독가능한 저장 매체(969) 상에서 초기에 저장될 수 있고, 머신 판독가능 저장 매체(969) 및/또는 루틴이 실행됨에 따라 프로세서 요소(950)에 의한 더 신속한 액세스를 가능하게 하는 휘발성 저장부(961)의 계속적인 프레젠스를 필요로하지 않는 더 장기적인 저장부에 대한 비휘발성 저장부(962)에 대한 루틴을 복사하는 것에 있어서 제거가능한 매체 저장부(963)가 후속하여 이용될 수 있다.
이전에 논의된 바와 같이, 인터페이스(990)(인터페이스 제어기(395a 및 395b)를 포함하는 인터페이스 뿐만 아니라 하나 이상의 인터페이스(190 및 690)에 대응함)는 컴퓨팅 디바이스를 하나 이상의 다른 디바이스에 통신가능하게 연결시키도록 이용될 수 있는 임의의 다양한 통신 기술에 대응하는 임의의 다양한 시그널링 기술을 이용할 수 있다. 다시, 다양한 형태의 유선 또는 무선 시그널링 중 하나 또는 양자는 프로세서 요소(950)가 입력/출력 디바이스(예를 들어, 도시된 예시의 키보드(920) 또는 프린터(925)) 및/또는 다른 컴퓨팅 디바이스, 가능하면 네트워크(예를 들어, 네트워크(999))를 통해 또는 상호접속된 네트워크 세트와 인터랙팅하는 것을 가능하게 하도록 이용될 수 있다. 임의의 하나의 컴퓨팅 디바이스에 의해 종종 지원되어야만 하는 상이한 타입의 시그널링 및/또는 프로토콜의 종종 매우 상이한 특성을 인지하면, 인터페이스(990)는 다수의 상이한 인터페이스 제어기(995a, 995 및 995c)를 포함하는 것으로서 도시된다. 인터페이스 제어기(995a)는 도시된 키보드(920)와 같은, 사용자 입력 디바이스로부터 순차적으로 전송된 메시지를 수신하도록 임의의 다양한 타입의 유선 디지털 직렬 인터페이스 또는 무선 주파수 무선 인터페이스를 이용할 수 있다. 인터페이스 제어기(995b)는 도시된 네트워크(999)(아마도 하나 이상의 링크, 더 소형 네트워크, 또는 아마도 인터넷)를 통해 다른 컴퓨팅 디바이스에 액세스하는 임의의 다양한 케이블링 기반 또는 무선 시그널링, 타이밍 및/또는 프로토콜을 이용할 수 있다. 인터페이스(995c)는 도시된 프린터(925)에 데이터를 전달하는 직렬 또는 병렬 신호 전송 중 하나의 사용을 가능하게 하는 임의의 다양한 전기적으로 전도성 케이블링을 이용할 수 있다. 인터페이스(990)의 하나 이상의 인터페이스 제어기를 통해 통신가능하게 연결될 수 있는 다른 예시의 디바이스는, 마이크로폰, 원격 제어, 스타일러스 펜, 카드 판독기, 지문 판독기, 가상 현실 상호작용 장갑, 그래픽 입력 태블릿, 조이스틱, 다른 키보드, 망막 스캐너, 터치 스크린의 터치 입력 컴포넌트, 트랙볼, 다양한 센서, 레이저 프린터, 잉크젯 프린터, 기계 로봇, 밀링 머신(milling machine) 등을 제한 없이 포함한다.
컴퓨팅 디바이스가 디스플레이(예를 들어, 도시된 예시의 디스플레이(980))에 통신가능하게 연결되는(또는 아마도 실제로 포함하는) 곳에서, 프로세싱 아키텍쳐(3000)를 구현하는 이러한 컴퓨팅 디바이스는 디스플레이 인터페이스(985)를 또한 포함할 수 있다. 더 일반화된 타입의 인터페이스가 디스플레이에 통신가능하게 연결하는데 이용될 수 있지만, 디스플레이 상에서 다양한 형식의 콘텐츠를 시각적으로 디스플레이하는데 종종 필요한 다소 특수화된 추가적인 프로세싱, 뿐만 아니라 사용되는 케이블링 기반 인터페이스의 다소 특수화된 특성은, 종종 분리된 디스플레이 인터페이스의 제공을 바람직하게 만든다. 디스플레이(980)의 통신가능한 연결에서 디스플레이 인터페이스(985)에 의해 이용될 수 있는 유선 및/또는 무선 시그널링 기술은 임의의 다양한 아날로그 비디오 인터페이스, 디지털 비디오 인터페이스(DVI), 디스플레이포트 등을 제한 없이 포함하는 임의의 다양한 산업 표준을 준수하는 시그널링 및/또는 프로토콜을 이용할 수 있다.
더 일반적으로, 컴퓨팅 디바이스(100, 300 및 600)의 다양한 요소는 다양한 하드웨어 요소, 소프트웨어 요소, 또는 양자의 조합을 포함할 수 있다. 하드웨어 요소의 예시는 디바이스, 로직 디바이스, 컴포넌트, 프로세서, 마이크로프로세서, 회로, 프로세서 요소, 회로 요소(예를 들어, 트랜지스터, 레지스터, 캐패시터, 인덕터 등), 집적 회로, 애플리케이션 특정 집적 회로(ASIC), 프로그래밍가능한 로직 디바이스(PLD), 디지털 신호 프로세서(DSP), 필드 프로그래밍가능한 게이트 어레이(FPGA), 메모리 유닛, 로직 게이트, 레지스터, 반도체 디바이스, 칩, 마이크로핍, 칩셋 등을 포함할 수 있다. 소프트웨어 요소의 예시는 소프트웨어 컴포넌트, 프로그램, 애플리케이션, 컴퓨터 프로그램, 애플리케이션 프로그램, 시스템 프로그램, 소프트웨어 개발 프로그램, 머신 프로그램, 운영 시스템 소프트웨어, 미들웨어, 펌웨어, 소프트웨어 모듈, 루틴, 서브루틴, 함수, 방법, 프로시져, 소프트웨어 인터페이스, 애플리케이션 프로그램 인터페이스(API), 명령어 세트, 컴퓨팅 코드, 컴퓨터 코드, 코드 세그먼트, 컴퓨터 코드 세그먼트, 워드, 값, 심볼, 또는 이들의 임의의 조합을 포함할 수 있다. 그러나, 실시예가 하드웨어 요소 및/또는 소프트웨어 요소를 사용하여 구현되는지 여부를 판정하는 것은 주어진 구현예에 대해 바람직한 것으로서, 바람직한 계산 레이트, 전력 레벨, 열 허용치, 프로세싱 사이클 예산, 입력 데이터 레이트, 출력 데이터 레이트, 메모리 리소스, 데이터 버스 속도 및 다른 설계 또는 성능 제약과 같은, 임의의 수의 인자에 따라 변할 수 있다.
일부 실시예는 "일 실시예" 또는 "실시예"와 같은 표현을 이들의 파생어와 함께 사용하여 설명될 수 있다. 이들 용어는 실시예와 연관되어 설명되는 특정 특징, 스트럭쳐 또는 특성이 적어도 하나의 실시예에 포함된다는 것을 의미한다. 명세서에서 다양한 위치에서 "일 실시예"라는 구절의 출현은 반드시 모두가 동일한 실시예를 지칭하는 것이 아니다. 또한, 일부 실시예는 "연결된" 및 "접속된"이라는 표현을 이들의 파생어와 함께 사용하여 설명될 수 있다. 이들 용어는 반드시 서로에 대한 동의어로서 의도되는 것은 아니다. 예를 들어, 일부 실시예는 둘 이상의 요소가 서로 직접 물리적 또는 전기적 접촉 중인 것을 나타내도록 "접속된" 및/또는 "연결된"이라는 용어를 사용하여 설명될 수 있다. 그러나, 용어 "연결된"은 또한 둘 이상의 요소가 서로 직접 접촉 중은 아니지만, 여전히 서로 협업 또는 인터랙팅하는 것을 의미할 수 있다.
요약서는 독자가 기술적인 개시의 특성을 신속하게 확인하는 것을 가능하게 하도록 제공됨이 강조된다. 이것이 청구항의 범위 또는 의미를 해석 또는 제한하도록 사용되지 않을 것이라는 이해가 함께 제출된다. 또한, 이전의 상세한 설명에서, 다양한 특징이 개시를 간소화하는 목적으로 단일 실시예에서 함께 그룹화된다는 것을 알 수 있다. 이 방법의 개시는 청구된 실시예가 각각의 청구항에서 명시적으로 언급되는 것 외에 더 많은 특징을 필요로 한다는 의도를 반영하는 것으로서 해석되지 않는다. 오히려, 다음의 청구항이 반영하는 바와 같이, 발명의 청구대상은 단일의 개시된 실시예의 모든 특징 보다 적게 존재한다. 따라서 다음의 청구항은 여기에서 상세한 설명에 통합되고, 각각의 청구항은 분리된 실시예로서 자체에 기초한다. 첨부된 청구항에서, 용어 "포함하는(including)" 및 "여기서(in which)"는 개별적인 용어 "포함하는(comprising)" 및 "여기서(wherein)", 각각의 평이한 영어 동의어로서 사용된다. 또한, 용어 "제 1", "제 2", "제 3" 등은 단지 레이블로서 사용되고, 이들의 객체에 대한 숫자 필요조건을 부가하는 것으로 의도되지 않는다.
위에서 설명되어진 것은 개시된 아키텍쳐의 예시들을 포함한다. 물론, 컴포넌트 및/또는 방법의 모든 구상가능한 조합을 설명하는 것이 불가능하지만, 당업자는 많은 추가 조합 및 순열이 가능하다는 것을 인식할 수 있다. 새로운 아키텍쳐는 첨부된 청구항의 사상 및 범위 내에 속하는 모든 이러한 변경, 수정 및 변형을 포함하도록 의도된다. 상세한 개시는 이제 추가 실시예를 포함하는 예시들을 제공하는 것이 된다. 이하에서 제공되는 예시들은 제한하는 것으로 의도되지 않는다.
보안 액세스를 제공하는 장치의 일례는 컴퓨터 판독가능 저장부와, 컴퓨터 판독가능 저장부에 연결된 제 1 프로세서 요소와, 원타임 패스워드(OTP) 루틴을 수신하고, 저장부 내부에 제 1 프로세서 요소에 의해 정의된 제 1 보안 구역 내부에 OTP 루틴을 저장하고, 내부에 저장된 OTP 루틴으로 제 1 보안 구역의 콘텐츠의 측정치를 획득하고, 측정치를 컴퓨팅 디바이스로 전송하고, OTP 시드를 수신하는 제 1 로직을 포함한다.
장치의 위의 예시에서 제 1 로직은 OTP 루틴의 명령어를 실행하고, 명령어는 제 1 프로세서 요소로 하여금 제 1 보안 구역을 정의하게 한다.
장치의 위의 예시들 중 하나에서 제 1 로직은 저장부 내부에서 제 1 프로세서 요소에 의해 정의된 제 2 보안 구역 내부에 저장된 측정 컴포넌트의 명령어를 실행하고, 명령어는 제 1 프로세서 요소로 하여금 측정치를 도출하게 한다.
장치의 위의 예시들 중 어느 하나에서 장치는 제어기를 포함하되, 제 1 로직은 측정치를 제공하도록 제어기로 시그널링한다.
장치의 위의 예시들 중 어느 하나에서 제 1 로직은 제 1 보안 구역 내부에 OTP 시드를 저장한다.
장치의 위의 예시들 중 어느 하나에서 제 1 로직은 보안 구역 내부에 OTP 시드의 저장에 후속하여 OTP 시드를 암호화하도록 적어도 측정치로부터 생성된 실링 키를 사용한다.
장치의 위의 예시들 중 어느 하나에서 실링 키는 적어도 측정치 및 제 1 프로세서 요소의 식별 코드로부터 생성된다.
장치의 위의 예시들 중 어느 하나에서 제 1 로직은, 저장부 내부에서 제 1 프로세서 요소에 의해 정의된 제 2 보안 구역 내부에 저장된 측정 컴포넌트의 제 1 명령어를 실행하고, 제 1 명령어는 제 1 프로세서 요소로 하여금 제 1 보안 구역에서 OTP 시드의 저장 이전에 측정치를 도출하고, 제 2 보안 구역 내부에 저장된 키 생성기의 제 2 명령어를 실행하고, 제 2 명령어는 제 1 프로세서 요소로 하여금 실링 키를 생성하게 한다.
장치의 위의 예시들 중 어느 하나에서 장치는 제어기를 포함하되, 제 1 로직은 실링 키를 제공하도록 제어기로 시그널링한다.
장치의 위의 예시들 중 어느 하나에서 제어기는 실링 키를 생성하는 제 2 프로세서 요소 및 제 2 로직을 포함한다.
장치의 위의 예시들 중 어느 하나에서 장치는 디스플레이와 수동으로 작동가능한 제어부와 패스코드를 제공하도록 프롬프트를 시각적으로 제시하고, 패스코드를 제공하도록 수동으로 작동가능한 제어부의 동작을 나타내는 신호를 수신하고, 컴퓨팅 디바이스로 패스코드를 전송하는 제 1 로직을 포함한다.
보안 액세스를 제공하는 다른 장치의 일례는 컴퓨터 판독가능 저장부와, 컴퓨터 판독가능 저장부에 연결된 제 1 프로세서 요소와, 저장부 내부에서 제 1 프로세서 요소에 의해 정의된 제 1 보안 구역 내부에 OTP 시드 및 OTP 루틴을 저장하고, 내부에 저장된 OTP 시드 및 OTP 루틴으로 제 1 보안 구역의 콘텐츠의 적어도 측정치로부터 실링 키를 획득하고, 시드 값을 획득하도록 OTP 시드를 복호화하도록 실링 키를 사용하고, 카운터 요소로부터 가변 값을 획득하고, OTP를 생성하고, OTP를 컴퓨팅 디바이스로 전송하는 제 1 로직을 포함한다.
다른 장치의 위의 예시에서 제 1 로직은 OTP 루틴의 명령어를 실행하고, 명령어는 제 1 프로세서 요소로 하여금 제 1 보안 구역을 정의하게 한다.
다른 장치의 위의 예시들 중 하나에서 장치는 수동으로 동작가능한 제어부를 포함하고, 제 1 로직은 입력을 제공하는 수동으로 동작가능한 제어부의 동작을 나타내는 신호를 수신하고, 컴퓨팅 디바이스로 입력을 전송한다.
다른 장치의 위의 예시들 중 어느 하나에서 수동으로 동작가능한 제어부는 키보드 및 지문 판독기 중 하나를 포함하고, 입력은 패스워드 및 지문 중 하나를 포함한다.
다른 장치의 위의 예시들 중 어느 하나에서 로직은, 저장부 내부에서 제 1 프로세서 요소에 의해 정의된 제 2 보안 구역 내부에 저장된 측정 컴포넌트의 제 1 명령어를 실행하고, 제 1 명령어는 제 1 프로세서 요소로 하여금 측정치를 도출하게 하며, 제 2 보안 구역 내부에 저장된 키 생성기의 제 2 명령어를 실행하고, 제 2 명령어는 제 1 프로세서 요소로 하여금 적어도 측정치로부터 실링 키를 생성하게 한다.
다른 장치의 위의 예시들 중 어느 하나에서 장치는 제어기를 포함하고, 제 1 로직은 실링 키를 제공하도록 제어기로 시그널링한다.
다른 장치의 위의 예시들 중 어느 하나에서 제어기는 실링 키를 생성하는 제 2 프로세서 요소 및 제 2 로직을 포함한다.
다른 장치의 위의 예시들 중 어느 하나에서 실링 키는 적어도 측정치 및 제 1 프로세서 요소의 식별 코드로부터 생성된다.
보안 액세스를 제공하는 컴퓨터로 구현된 방법의 일례는 원타임 패스워드(OTP) 루틴을 수신하는 단계와, 저장부 내부에 제 1 프로세서 요소에 의해 정의된 제 1 보안 구역 내부에 OTP 루틴을 저장하는 단계와, 내부에 저장된 OTP 루틴으로 제 1 보안 구역의 콘텐츠의 제 1 측정치를 획득하는 단계와, 제 1 측정치를 컴퓨팅 디바이스로 전송하는 단계와, OTP 시드를 수신하는 단계를 포함한다.
컴퓨터로 구현된 방법의 위의 예시에서 방법은 제 1 프로세서 요소로 하여금 제 1 보안 구역을 정의하게 하는 OTP 루틴의 명령어를 실행하는 단계를 포함한다.
컴퓨터로 구현된 방법의 위의 예시들 중 하나에서 방법은 제 1 프로세서 요소로 하여금 제 1 측정치를 도출하게 하도록 저장부 내부에서 제 1 프로세서 요소에 의해 정의된 제 2 보안 구역 내에 저장된 측정 컴포넌트의 명령어를 실행하는 단계를 포함한다.
컴퓨터로 구현된 방법의 위의 예시들 중 어느 하나에서 방법은 제 1 측정치를 제공하도록 제 2 프로세서 요소로 시그널링하는 단계를 포함한다.
컴퓨터로 구현된 방법의 위의 예시들 중 어느 하나에서 방법은 OTP 시드를 내부에 저장하는 단계 이전에 내부에 저장된 OTP 루틴으로 제 1 보안 구역의 콘텐츠의 적어도 제 1 측정치로부터 제 1 실링 키를 획득하는 단계와, 제 1 보안 구역 내부에 OTP 시드를 저장하는 단계와, 제 1 보안 구역에 OTP 시드를 저장하는 단계에 후속하여 OTP 시드를 암호화하도록 제 1 실링 키를 사용하는 단계와, 제 1 실링 키를 폐기하는 단계와, 제 1 보안 구역을 비생성화(uninstantiating)하는 단계를 포함한다.
컴퓨터로 구현된 방법의 위의 예시들 중 어느 하나에서 방법은 저장부 내부에서 제 1 프로세서 요소에 의해 정의된 제 2 보안 구역 내부에 저장된 측정 컴포넌트의 제 1 명령어를 실행하는 단계를 포함하고, 여기서 제 1 명령어는 제 1 프로세서 요소로 하여금 제 1 보안 구역에서 OTP 시드의 저장 이전에 측정치를 도출하게 하며, 제 2 보안 구역 내부에 저장된 키 생성기의 제 2 명령어를 실행하는 단계를 포함하고, 여기서 제 2 명령어는 제 1 프로세서 요소로 하여금 적어도 제 1 측정치로부터 제 1 실링 키를 생성하게 한다.
컴퓨터로 구현된 방법의 위의 예시들 중 어느 하나에서 방법은 제 1 실링 키를 제공하도록 제 2 프로세서 요소로 시그널링하는 단계를 포함한다.
컴퓨터로 구현된 방법의 위의 예시들 중 어느 하나에서 방법은 저장부 내부에서 제 1 프로세서 요소에 의해 정의된 제 2 보안 구역 내부에 OTP 루틴을 저장하는 단계와, 내부에 저장된 OTP 루틴 및 내부에 저장되지 않은 OTP 시드로 제 2 보안 구역의 콘텐츠의 획득된 적어도 제 2 측정치로부터 제 2 실링 키를 획득하는 단계와, 제 2 보안 구역 내부에 OTP 시드를 저장하는 단계와, 제 2 보안 구역에 OTP 시드를 저장하는 단계에 후속하여 시드 값을 획득하기 위해 OTP 시드를 복호화하도록 제 2 실링 키를 사용하는 단계와, OTP 시드를 제 2 보안 구역에 저장하는 단계와, 카운터 요소로부터 가변 값을 획득하는 단계와, OTP를 생성하는 단계와, OTP를 전송하는 단계를 포함한다.
컴퓨터로 구현된 방법의 위의 예시들 중 어느 하나에서 방법은 적어도 제 2 측정치 및 제 1 프로세서 요소의 식별 코드로부터 제 2 실링 키를 생성하는 단계를 포함한다.
보안 액세스를 제공하는 장치의 일례는 컴퓨터로 구현된 방법의 위의 예시들 중 어느 하나를 수행하는 수단을 포함한다.
적어도 하나의 머신 판독가능 저장 매체의 일례는 컴퓨팅 디바이스에 의해 실행될 때 컴퓨팅 디바이스로 하여금 원타임 패스워드(OTP) 루틴을 수신하고, 컴퓨팅 디바이스의 저장부 내부에 제 1 프로세서 요소에 의해 정의된 제 1 보안 구역 내부에 OTP 루틴을 저장하고, 내부에 저장된 OTP 루틴으로 제 1 보안 구역의 콘텐츠의 측정치를 획득하고, 측정치를 프로비져닝 서버로 전송하고, OTP 시드를 수신하는 명령어를 포함한다.
적어도 하나의 머신 판독가능 저장 매체의 위의 예시에서 컴퓨팅 디바이스는 OTP 루틴의 명령어를 실행하여 제 1 프로세서 요소로 하여금 제 1 보안 구역을 정의하게 하도록 야기된다.
적어도 하나의 머신 판독가능 저장 매체의 위의 예시들 중 하나에서 컴퓨팅 디바이스는 저장부 내부에서 제 1 프로세서 요소에 의해 정의된 제 2 보안 구역 내부에 저장된 측정 컴포넌트의 명령어를 실행하여 제 1 프로세서 요소로 하여금 측정치를 도출하게 하도록 야기된다.
적어도 하나의 머신 판독가능 저장 매체의 위의 예시들 중 어느 하나에서 컴퓨팅 디바이스는 제 1 측정치를 제공하도록 컴퓨팅 디바이스의 제 2 프로세서 요소로 시그널링한다.
적어도 하나의 머신 판독가능 저장 매체의 위의 예시들 중 어느 하나에서 컴퓨팅 디바이스는 OTP 시드를 내부에 저장하기 이전에 내부에 저장된 OTP 루틴으로 제 1 보안 구역의 콘텐츠의 적어도 제 1 측정치로부터 제 1 실링 키를 획득하고, 제 1 보안 구역 내부에 OTP 시드를 저장하고, 제 1 보안 구역에 OTP 시드를 저장하는 단계에 후속하여 OTP 시드를 암호화하도록 제 1 실링 키를 사용하고, 제 1 실링 키를 폐기하고, 제 1 보안 구역을 비생성화하도록 야기된다.
적어도 하나의 머신 판독가능 저장 매체의 위의 예시들 중 어느 하나에서 컴퓨팅 디바이스는 저장부 내부에서 제 1 프로세서 요소에 의해 정의된 제 2 보안 구역 내부에 저장된 측정 컴포넌트의 제 1 명령어를 실행하도록 야기되고, 여기서 제 1 명령어는 제 1 프로세서 요소로 하여금 제 1 보안 구역에서 OTP 시드의 저장 이전에 측정치를 도출하게 하며, 제 2 보안 구역 내부에 저장된 키 생성기의 제 2 명령어를 실행하도록 야기되고, 여기서 제 2 명령어는 제 1 프로세서 요소로 하여금 적어도 제 1 측정치로부터 제 1 실링 키를 생성하게 한다.
적어도 하나의 머신 판독가능 저장 매체의 위의 예시들 중 어느 하나에서 컴퓨팅 디바이스는 제 1 실링 키를 제공하도록 제 2 프로세서 요소로 시그널링하도록 야기된다.
적어도 하나의 머신 판독가능 저장 매체의 위의 예시들 중 어느 하나에서 컴퓨팅 디바이스는 저장부 내부에서 제 1 프로세서 요소에 의해 정의된 제 2 보안 구역 내부에 OTP 루틴을 저장하고, 내부에 저장된 OTP 루틴 및 내부에 저장되지 않은 OTP 시드로 제 2 보안 구역의 콘텐츠의 획득된 적어도 제 2 측정치로부터 제 2 실링 키를 획득하고, 제 2 보안 구역 내부에 OTP 시드를 저장하고, 제 2 보안 구역에 OTP 시드를 저장하는 것에 후속하여 시드 값을 획득하기 위해 OTP 시드를 복호화하도록 제 2 실링 키를 사용하고, OTP 시드를 제 2 보안 구역에 저장하고, 카운터 요소로부터 가변 값을 획득하고, OTP를 생성하고, OTP를 전송하도록 야기된다.
적어도 하나의 머신 판독가능 저장 매체의 위의 예시들 중 어느 하나에서 컴퓨팅 디바이스는 적어도 제 2 측정치 및 제 1 프로세서 요소의 식별 코드로부터 제 2 실링 키를 생성하도록 야기된다.
보안 액세스를 제공하는 또 다른 장치의 일례는 원타임 패스워드(OTP) 루틴을 수신하고, 컴퓨팅 디바이스의 저장부 내부에 제 1 프로세서 요소에 의해 정의된 제 1 보안 구역 내부에 OTP 루틴을 저장하고, 내부에 저장된 OTP 루틴으로 제 1 보안 구역의 콘텐츠의 측정치를 획득하고, 측정치를 프로비져닝 서버로 전송하고, OTP 시드를 수신하는 수단을 포함한다.
또 다른 장치의 위의 예시에서 장치는 OTP 루틴의 명령어를 실행하여 제 1 프로세서 요소로 하여금 제 1 보안 구역을 정의하게 하는 수단을 포함한다.
또 다른 장치의 위의 예시들 중 하나에서 장치는 저장부 내부에서 제 1 프로세서 요소에 의해 정의된 제 2 보안 구역 내부에 저장된 측정 컴포넌트의 명령어를 실행하여 제 1 프로세서 요소로 하여금 측정치를 도출하게 하는 수단을 포함한다.
또 다른 장치의 위의 예시들 중 어느 하나에서 장치는 제 1 측정치를 제공하도록 컴퓨팅 디바이스의 제 2 프로세서 요소로 시그널링하는 수단을 포함한다.
또 다른 장치의 위의 예시들 중 어느 하나에서 장치는 OTP 시드를 내부에 저장하기 이전에 내부에 저장된 OTP 루틴으로 제 1 보안 구역의 콘텐츠의 적어도 제 1 측정치로부터 제 1 실링 키를 획득하고, 제 1 보안 구역 내부에 OTP 시드를 저장하고, 제 1 보안 구역에 OTP 시드를 저장하는 단계에 후속하여 OTP 시드를 암호화하도록 제 1 실링 키를 사용하고, 제 1 실링 키를 폐기하고, 제 1 보안 구역을 비생성화하는 수단을 포함한다.
또 다른 장치의 위의 예시들 중 어느 하나에서 장치는 저장부 내부에서 제 1 프로세서 요소에 의해 정의된 제 2 보안 구역 내부에 저장된 측정 컴포넌트의 제 1 명령어를 실행하는 수단을 포함하고, 여기서 제 1 명령어는 제 1 프로세서 요소로 하여금 제 1 보안 구역에서 OTP 시드의 저장 이전에 측정치를 도출하게 하며, 제 2 보안 구역 내부에 저장된 키 생성기의 제 2 명령어를 실행하는 수단을 포함하고, 여기서 제 2 명령어는 제 1 프로세서 요소로 하여금 적어도 제 1 측정치로부터 제 1 실링 키를 생성하게 한다.
또 다른 장치의 위의 예시들 중 어느 하나에서 장치는 제 1 실링 키를 제공하도록 제 2 프로세서 요소로 시그널링하는 수단을 포함한다.
또 다른 장치의 위의 예시들 중 어느 하나에서 장치는 저장부 내부에서 제 1 프로세서 요소에 의해 정의된 제 2 보안 구역 내부에 OTP 루틴을 저장하고, 내부에 저장된 OTP 루틴 및 내부에 저장되지 않은 OTP 시드로 제 2 보안 구역의 콘텐츠의 획득된 적어도 제 2 측정치로부터 제 2 실링 키를 획득하고, 제 2 보안 구역 내부에 OTP 시드를 저장하고, 제 2 보안 구역에 OTP 시드를 저장하는 것에 후속하여 시드 값을 획득하기 위해 OTP 시드를 복호화하도록 제 2 실링 키를 사용하고, OTP 시드를 제 2 보안 구역에 저장하고, 카운터 요소로부터 가변 값을 획득하고, OTP를 생성하고, OTP를 전송하는 수단을 포함한다.
또 다른 장치의 위의 예시들 중 어느 하나에서 장치는 적어도 제 2 측정치 및 제 1 프로세서 요소의 식별 코드로부터 제 2 실링 키를 생성하는 장치를 포함한다.
Claims (25)
- 보안 액세스를 제공하는 장치로서,
컴퓨터 판독가능 저장부와,
상기 컴퓨터 판독가능 저장부에 연결된 제 1 프로세서 요소와,
제 1 로직을 포함하고,
상기 제 1 로직은,
원타임 패스워드(OTP) 루틴을 수신하고,
상기 저장부 내부에 상기 제 1 프로세서 요소에 의해 정의된 제 1 보안 구역(a first secure enclave) 내부에 상기 OTP 루틴을 저장하고,
상기 제 1 보안 구역 내부에 저장된 상기 OTP 루틴으로 상기 제 1 보안 구역의 콘텐츠의 측정치를 획득하고,
상기 측정치를 컴퓨팅 디바이스로 전송하고,
OTP 시드(seed)를 수신하는
보안 액세스 제공 장치.
- 제 1 항에 있어서,
상기 제 1 로직은 상기 OTP 루틴의 명령어를 실행하고, 상기 명령어는 상기 제 1 프로세서 요소로 하여금 상기 제 1 보안 구역을 정의하게 하는
보안 액세스 제공 장치.
- 제 1 항에 있어서,
상기 제 1 로직은 상기 제 1 보안 구역 내부에 상기 OTP 시드를 저장하는
보안 액세스 제공 장치.
- 제 3 항에 있어서,
상기 제 1 로직은 상기 보안 구역 내부에 상기 OTP 시드의 저장에 후속하여 상기 OTP 시드를 암호화하도록 적어도 상기 측정치로부터 생성된 실링 키(a sealing key)를 사용하는
보안 액세스 제공 장치.
- 제 4 항에 있어서,
상기 실링 키는 적어도 상기 측정치 및 상기 제 1 프로세서 요소의 식별 코드로부터 생성되는
보안 액세스 제공 장치. - 제 4 항에 있어서,
상기 제 1 로직은,
상기 저장부 내부에서 상기 제 1 프로세서 요소에 의해 정의된 제 2 보안 구역 내부에 저장된 측정 컴포넌트의 제 1 명령어를 실행―상기 제 1 명령어는 상기 제 1 프로세서 요소로 하여금 상기 제 1 보안 구역 내의 상기 OTP 시드의 저장 이전에 상기 측정치를 도출하게 함―하고,
상기 제 2 보안 구역 내부에 저장된 키 생성기의 제 2 명령어를 실행―상기 제 2 명령어는 상기 제 1 프로세서 요소로 하여금 상기 실링 키를 생성하게 함―하는
보안 액세스 제공 장치.
- 제 4 항에 있어서,
제어기를 포함하고, 상기 제 1 로직은 상기 실링 키를 제공하도록 상기 제어기로 시그널링하는
보안 액세스 제공 장치.
- 제 7 항에 있어서,
상기 제어기는 상기 실링 키를 생성하는 제 2 프로세서 요소 및 제 2 로직을 포함하는
보안 액세스 제공 장치.
- 보안 액세스를 제공하는 장치에 있어서,
컴퓨터 판독가능 저장부와,
상기 컴퓨터 판독가능 저장부에 연결된 제 1 프로세서 요소와,
제 1 로직을 포함하고,
상기 제 1 로직은,
상기 저장부 내부에서 상기 제 1 프로세서 요소에 의해 정의된 제 1 보안 구역 내부에 OTP 시드 및 OTP 루틴을 저장하고,
상기 제 1 보안 구역 내부에 저장된 상기 OTP 시드 및 상기 OTP 루틴으로 상기 제 1 보안 구역의 콘텐츠의 적어도 하나의 측정치로부터 실링 키를 획득하고,
상기 OTP 시드를 복호화하도록 상기 실링 키를 사용하여 시드 값을 획득하고,
카운터 요소로부터 가변 값을 획득하고,
OTP를 생성하고,
상기 OTP를 컴퓨팅 디바이스로 전송하는
보안 액세스 제공 장치.
- 제 9 항에 있어서,
수동으로 동작가능한 제어부를 포함하고,
상기 제 1 로직은,
입력을 제공하기 위해 상기 수동으로 동작가능한 제어부의 동작을 나타내는 신호를 수신하고,
상기 컴퓨팅 디바이스로 상기 입력을 전송하는
보안 액세스 제공 장치.
- 제 10 항에 있어서,
상기 수동으로 동작가능한 제어부는 키보드와 지문 판독기 중 하나를 포함하고, 상기 입력은 패스워드와 지문 중 하나를 포함하는
보안 액세스 제공 장치.
- 제 9 항에 있어서,
상기 제 1 로직은,
상기 저장부 내부에서 상기 제 1 프로세서 요소에 의해 정의된 제 2 보안 구역 내부에 저장된 측정 컴포넌트의 제 1 명령어를 실행―상기 제 1 명령어는 상기 제 1 프로세서 요소로 하여금 상기 측정치를 도출하게 함―하고,
상기 제 2 보안 구역 내부에 저장된 키 생성기의 제 2 명령어를 실행―상기 제 2 명령어는 상기 제 1 프로세서 요소로 하여금 적어도 상기 측정치로부터 상기 실링 키를 생성하게 함―하는
보안 액세스 제공 장치.
- 제 9 항에 있어서,
제어기를 포함하고, 상기 제 1 로직은 상기 실링 키를 제공하도록 상기 제어기로 시그널링하는
보안 액세스 제공 장치.
- 제 13 항에 있어서,
상기 제어기는 상기 실링 키를 생성하는 제 2 프로세서 요소 및 제 2 로직을 포함하는
보안 액세스 제공 장치.
- 제 9 항에 있어서,
상기 실링 키는 적어도 상기 측정치 및 상기 제 1 프로세서 요소의 식별 코드로부터 생성되는
보안 액세스 제공 장치.
- 보안 액세스를 제공하는 컴퓨터로 구현된 방법에 있어서,
원타임 패스워드(OTP) 루틴을 수신하는 단계와,
저장부 내부에서 제 1 프로세서 요소에 의해 정의된 제 1 보안 구역 내부에 상기 OTP 루틴을 저장하는 단계와,
상기 제 1 보안 엔클레입 내부에 저장된 상기 OTP 루틴으로 상기 제 1 보안 구역의 콘텐츠의 제 1 측정치를 획득하는 단계와,
상기 제 1 측정치를 컴퓨팅 디바이스로 전송하는 단계와,
OTP 시드를 수신하는 단계를 포함하는
컴퓨터로 구현된 보안 액세스 제공 방법.
- 제 16 항에 있어서,
상기 제 1 프로세서 요소로 하여금 상기 제 1 보안 구역을 정의하게 하는 상기 OTP 루틴의 명령어를 실행하는 단계를 포함하는
컴퓨터로 구현된 보안 액세스 제공 방법.
- 제 16 항에 있어서,
상기 제 1 프로세서 요소로 하여금 상기 제 1 측정치를 도출하게 하도록 상기 저장부 내부에서 상기 제 1 프로세서 요소에 의해 정의된 제 2 보안 구역 내에 저장된 측정 컴포넌트의 명령어를 실행하는 단계를 포함하는
컴퓨터로 구현된 보안 액세스 제공 방법.
- 제 16 항에 있어서,
상기 제 1 측정치를 제공하도록 제 2 프로세서 요소로 시그널링하는 단계를 포함하는
컴퓨터로 구현된 보안 액세스 제공 방법.
- 제 16 항에 있어서,
상기 OTP 시드를 상기 제 1 보안 구역 내부에 저장하는 단계 이전에 상기 제 1 보안 구역 내부에 저장된 상기 OTP 루틴으로 상기 제 1 보안 구역의 콘텐츠의 적어도 제 1 측정치로부터 제 1 실링 키를 획득하는 단계와,
상기 제 1 보안 구역 내부에 상기 OTP 시드를 저장하는 단계와,
상기 제 1 보안 구역에 상기 OTP 시드를 저장하는 단계에 후속하여 상기 OTP 시드를 암호화하도록 상기 제 1 실링 키를 사용하는 단계와,
상기 제 1 실링 키를 폐기하는 단계와,
상기 제 1 보안 구역을 비생성화(uninstantiating)하는 단계를 포함하는
컴퓨터로 구현된 보안 액세스 제공 방법.
- 제 20 항에 있어서,
상기 저장부 내부에서 상기 제 1 프로세서 요소에 의해 정의된 제 2 보안 구역 내부에 저장된 측정 컴포넌트의 제 1 명령어를 실행―상기 제 1 명령어는 상기 제 1 프로세서 요소로 하여금 상기 제 1 보안 구역에서 상기 OTP 시드의 저장 이전에 상기 측정치를 도출하게 함―하고,
상기 제 2 보안 구역 내부에 저장된 키 생성기의 제 2 명령어를 실행―상기 제 2 명령어는 상기 제 1 프로세서 요소로 하여금 적어도 상기 제 1 측정치로부터 상기 제 1 실링 키를 생성하게 함―하는
컴퓨터로 구현된 보안 액세스 제공 방법. - 제 20 항에 있어서,
상기 제 1 실링 키를 제공하도록 제 2 프로세서 요소로 시그널링하는 단계를 포함하는
컴퓨터로 구현된 보안 액세스 제공 방법.
- 제 20 항에 있어서,
상기 저장부 내부에서 상기 제 1 프로세서 요소에 의해 정의된 제 2 보안 구역 내부에 OTP 루틴을 저장하는 단계와,
상기 제 2 보안 구역 내부에 저장된 상기 OTP 루틴 및 상기 제 2 보안 구역 내부에 저장되지 않은 상기 OTP 시드로 상기 제 2 보안 구역의 콘텐츠의 획득된 적어도 제 2 측정치로부터 제 2 실링 키를 획득하는 단계와,
상기 제 2 보안 구역 내부에 상기 OTP 시드를 저장하는 단계와,
상기 제 2 보안 구역에 상기 OTP 시드를 저장하는 단계에 후속하여 시드 값을 획득하기 위해 상기 OTP 시드를 복호화하도록 상기 제 2 실링 키를 사용하는 단계와,
상기 OTP 시드를 상기 제 2 보안 구역에 저장하는 단계와,
카운터 요소로부터 가변 값을 획득하는 단계와,
OTP를 생성하는 단계와,
상기 OTP를 전송하는 단계를 포함하는
컴퓨터로 구현된 보안 액세스 제공 방법.
- 제 23 항에 있어서,
적어도 상기 제 2 측정치 및 상기 제 1 프로세서 요소의 식별 코드로부터 상기 제 2 실링 키를 생성하는 단계를 포함하는
컴퓨터로 구현된 보안 액세스 제공 방법.
- 컴퓨팅 디바이스에 의해 실행될 때 상기 컴퓨팅 디바이스로 하여금 청구항 제 16 항 내지 제 24 항 중 어느 한 항의 방법을 수행하게 하는 명령어를 포함하는 적어도 하나의 머신 판독가능 매체.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/797,915 US9208354B2 (en) | 2013-03-12 | 2013-03-12 | Techniques for securing use of one-time passwords |
US13/797,915 | 2013-03-12 | ||
PCT/US2014/018842 WO2014163912A1 (en) | 2013-03-12 | 2014-02-27 | Techniques for securing use of one-time passwords |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20150108865A true KR20150108865A (ko) | 2015-09-30 |
KR101698776B1 KR101698776B1 (ko) | 2017-01-23 |
Family
ID=51535023
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020157021879A KR101698776B1 (ko) | 2013-03-12 | 2014-02-27 | 원타임 패스워드의 사용을 보안하기 위한 기술 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9208354B2 (ko) |
EP (1) | EP2973167B1 (ko) |
KR (1) | KR101698776B1 (ko) |
CN (1) | CN105074716B (ko) |
WO (1) | WO2014163912A1 (ko) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9218473B2 (en) * | 2013-07-18 | 2015-12-22 | Suprema Inc. | Creation and authentication of biometric information |
US9348997B2 (en) | 2014-03-13 | 2016-05-24 | Intel Corporation | Symmetric keying and chain of trust |
US9509502B2 (en) | 2014-03-13 | 2016-11-29 | Intel Corporation | Symmetric keying and chain of trust |
US9521125B2 (en) | 2014-03-13 | 2016-12-13 | Intel Corporation | Pseudonymous remote attestation utilizing a chain-of-trust |
US10044695B1 (en) | 2014-09-02 | 2018-08-07 | Amazon Technologies, Inc. | Application instances authenticated by secure measurements |
US10061915B1 (en) | 2014-09-03 | 2018-08-28 | Amazon Technologies, Inc. | Posture assessment in a secure execution environment |
US9491111B1 (en) * | 2014-09-03 | 2016-11-08 | Amazon Technologies, Inc. | Securing service control on third party hardware |
US9246690B1 (en) | 2014-09-03 | 2016-01-26 | Amazon Technologies, Inc. | Secure execution environment services |
US9584517B1 (en) * | 2014-09-03 | 2017-02-28 | Amazon Technologies, Inc. | Transforms within secure execution environments |
US10079681B1 (en) | 2014-09-03 | 2018-09-18 | Amazon Technologies, Inc. | Securing service layer on third party hardware |
US9577829B1 (en) | 2014-09-03 | 2017-02-21 | Amazon Technologies, Inc. | Multi-party computation services |
US9754116B1 (en) | 2014-09-03 | 2017-09-05 | Amazon Technologies, Inc. | Web services in secure execution environments |
US9660983B2 (en) * | 2014-10-24 | 2017-05-23 | Ca, Inc. | Counter sets for copies of one time password tokens |
WO2016081404A1 (en) * | 2014-11-17 | 2016-05-26 | Intel Corporation | Symmetric keying and chain of trust |
KR102485830B1 (ko) | 2015-02-13 | 2023-01-09 | 삼성전자주식회사 | 보안 정보의 처리 |
US9870467B2 (en) * | 2015-03-27 | 2018-01-16 | Intel Corporation | Apparatus and method for implementing a forked system call in a system with a protected region |
US10642972B2 (en) * | 2016-10-20 | 2020-05-05 | Intel Corporation | Extending packet processing to trusted programmable and fixed-function accelerators |
KR102645817B1 (ko) * | 2016-12-06 | 2024-03-08 | 한화로보틱스 주식회사 | 로봇의 비헤이비어 관리 방법 및 장치 |
US10382413B1 (en) * | 2016-12-23 | 2019-08-13 | Cisco Technology, Inc. | Secure bootstrapping of client device with trusted server provided by untrusted cloud service |
US11036875B2 (en) * | 2017-01-24 | 2021-06-15 | Microsoft Technology Licensing, Llc | Dependent enclave binaries |
US11443033B2 (en) * | 2017-01-24 | 2022-09-13 | Microsoft Technology Licensing, Llc | Abstract enclave identity |
US10691837B1 (en) | 2017-06-02 | 2020-06-23 | Apple Inc. | Multi-user storage volume encryption via secure enclave |
TWI635413B (zh) * | 2017-07-18 | 2018-09-11 | 義隆電子股份有限公司 | 指紋感測積體電路 |
CN109945911A (zh) * | 2017-12-15 | 2019-06-28 | 富泰华工业(深圳)有限公司 | 电子装置、拆机监测装置及方法 |
CN111954879B (zh) * | 2018-04-11 | 2024-04-30 | 谷歌有限责任公司 | 互不信任的飞地 |
US11088838B2 (en) * | 2018-05-11 | 2021-08-10 | Palo Alto Networks, Inc. | Automated authentication of a new network element |
US10846432B2 (en) | 2018-09-11 | 2020-11-24 | OneLogin, Inc. | Secure data leak detection |
WO2021005044A1 (fr) * | 2019-07-08 | 2021-01-14 | Safran Electronics & Defense | Systeme et procede de mise a jour de donnees pour des dispositifs informatiques compris dans un aeronef |
US11706211B2 (en) | 2021-09-28 | 2023-07-18 | Capital One Services, Llc | Computer-based systems configured for one-time passcode (OTP) protection and methods of use thereof |
WO2023121671A1 (en) * | 2021-12-23 | 2023-06-29 | Eque Corporation | Systems configured for validation with a dynamic cryptographic code and methods thereof |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060190994A1 (en) * | 2005-02-24 | 2006-08-24 | Samsung Electronics Co., Ltd. | Method and system for authenticating pay-per-use service using EAP |
US20070130472A1 (en) * | 2005-09-21 | 2007-06-07 | Broadcom Corporation | System and method for securely provisioning and generating one-time-passwords in a remote device |
US20090328168A1 (en) * | 2006-09-15 | 2009-12-31 | Initech Co., Ltd. | Method for registering and certificating user of one time password by a plurality of mode and computer-readable recording medium where program executing the same method is recorded |
US20120159184A1 (en) * | 2010-12-17 | 2012-06-21 | Johnson Simon P | Technique for Supporting Multiple Secure Enclaves |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050177749A1 (en) * | 2004-02-09 | 2005-08-11 | Shlomo Ovadia | Method and architecture for security key generation and distribution within optical switched networks |
US9258124B2 (en) * | 2006-04-21 | 2016-02-09 | Symantec Corporation | Time and event based one time password |
US8438618B2 (en) | 2007-12-21 | 2013-05-07 | Intel Corporation | Provisioning active management technology (AMT) in computer systems |
US8898749B2 (en) | 2009-04-09 | 2014-11-25 | Intel Corporation | Method and system for generating one-time passwords |
US8296841B2 (en) | 2009-10-27 | 2012-10-23 | Microsoft Corporation | Trusted platform module supported one time passwords |
DE102010033232A1 (de) * | 2010-08-03 | 2012-02-09 | Siemens Aktiengesellschaft | Verfahren und Vorrichtung zum Bereitstellen eines Einmalpasswortes |
EP2482220A1 (en) * | 2011-01-27 | 2012-08-01 | SafeNet, Inc. | Multi-enclave token |
CN102647415A (zh) * | 2012-03-30 | 2012-08-22 | 时代亿宝(北京)科技有限公司 | 基于音频接口提供身份认证的方法及系统 |
-
2013
- 2013-03-12 US US13/797,915 patent/US9208354B2/en not_active Expired - Fee Related
-
2014
- 2014-02-27 WO PCT/US2014/018842 patent/WO2014163912A1/en active Application Filing
- 2014-02-27 EP EP14779610.6A patent/EP2973167B1/en active Active
- 2014-02-27 CN CN201480008538.5A patent/CN105074716B/zh active Active
- 2014-02-27 KR KR1020157021879A patent/KR101698776B1/ko active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060190994A1 (en) * | 2005-02-24 | 2006-08-24 | Samsung Electronics Co., Ltd. | Method and system for authenticating pay-per-use service using EAP |
US20070130472A1 (en) * | 2005-09-21 | 2007-06-07 | Broadcom Corporation | System and method for securely provisioning and generating one-time-passwords in a remote device |
US20090328168A1 (en) * | 2006-09-15 | 2009-12-31 | Initech Co., Ltd. | Method for registering and certificating user of one time password by a plurality of mode and computer-readable recording medium where program executing the same method is recorded |
US20120159184A1 (en) * | 2010-12-17 | 2012-06-21 | Johnson Simon P | Technique for Supporting Multiple Secure Enclaves |
Also Published As
Publication number | Publication date |
---|---|
EP2973167A1 (en) | 2016-01-20 |
WO2014163912A1 (en) | 2014-10-09 |
EP2973167A4 (en) | 2016-11-09 |
CN105074716A (zh) | 2015-11-18 |
KR101698776B1 (ko) | 2017-01-23 |
US9208354B2 (en) | 2015-12-08 |
EP2973167B1 (en) | 2019-05-01 |
US20140282935A1 (en) | 2014-09-18 |
CN105074716B (zh) | 2018-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101698776B1 (ko) | 원타임 패스워드의 사용을 보안하기 위한 기술 | |
US10911250B2 (en) | Challenge response authentication for self encrypting drives | |
CN104156642B (zh) | 一种基于安全触控屏控制芯片的安全密码输入系统和方法 | |
US9652610B1 (en) | Hierarchical data security measures for a mobile device | |
US20210192090A1 (en) | Secure data storage device with security function implemented in a data security bridge | |
US10701039B2 (en) | Mutual approval for privacy-preserving computing | |
US9646216B2 (en) | Multiple user biometric for authentication to secured resources | |
CN113615125A (zh) | 使用密钥的身份验证 | |
TWI536199B (zh) | 資料保護方法、記憶體控制電路單元及記憶體儲存裝置 | |
CN103649964A (zh) | 安全寄存执行体系架构 | |
CN107209844A (zh) | 便携式安全存储装置 | |
US20150074427A1 (en) | System and method to secure on-board bus transactions | |
JP2016515249A (ja) | 階層化された仮想マシンインテグリティモニタリング | |
US10235526B2 (en) | Secure resume from a low power state | |
JP2023521997A (ja) | 非接触カードアクティブ化のための特定の条件の決定 | |
CN105512560A (zh) | 一种一次性可编程存储器芯片和及其的控制方法 | |
US10331453B2 (en) | System management mode trust establishment for OS level drivers | |
US9158943B2 (en) | Encryption and decryption device for portable storage device and encryption and decryption method thereof | |
CN106528458B (zh) | 一种接口控制器、基板管理控制器及安全系统 | |
ES2798077T3 (es) | Sistema criptográfico y metodología para asegurar criptografía de software |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |