1 |
1
컴퓨터에 의해 실행되고, 운영체제의 소프트웨어 보안 설정에 따라 생성된 보호 영역을 포함하는 가상화 기반의 소프트웨어 보안 장치에 있어서,상기 컴퓨터에서 실행되는 응용프로그램의 명령을 수신하고 상기 명령에 대응하는 결과 데이터를 전송하는 보안 모듈 인터페이스 및 수신된 상기 명령을 암호화하고 사전에 정의된 보안 프로토콜에 따라 상기 명령을 수행하여 상기 결과 데이터를 추출하는 보안 모듈 엔진을 포함하는 소프트웨어 보안 모듈; 및상기 소프트웨어 보안 모듈에서 사용하는 암호화된 적어도 하나의 비휘발성 보안 모듈 엔진 정보를 저장하는 보안 모듈 저장소를 포함하되,상기 소프트웨어 보안 모듈은 상기 보호 영역에 위치하는, 가상화 기반 소프트웨어 보안 장치
|
2 |
2
청구항 1에 있어서,상기 소프트웨어 보안 모듈은, 상기 운영체제 및 상기 응용프로그램으로부터 독립성을 보장받거나 또는 허용되지 않은 상기 운영체제의 접근 및 허용되지 않은 상기 응용프로그램의 접근이 제한되는, 가상화 기반 소프트웨어 보안 장치
|
3 |
3
청구항 2에 있어서,상기 보호 영역은, 상기 운영체제의 소프트웨어 보안 설정에 따라 가상화 기술을 이용하여 생성되는, 가상화 기반 소프트웨어 보안 장치
|
4 |
4
청구항 2에 있어서,상기 보안 모듈 인터페이스는, 상기 응용프로그램이 발생시킨 명령 이벤트를 감지하는, 가상화 기반 소프트웨어 보안 장치
|
5 |
5
청구항 2에 있어서,상기 보안 모듈 인터페이스는, 상기 보호 영역에 위치한 상기 소프트웨어 보안 모듈에 미리 정의된 프로토콜에 따라서 외부의 운영체제와 응용프로그램의 명령을 상기 보안 모듈 엔진에 전송하고 상기 명령에 대한 결과를 상기 보안 모듈 엔진으로부터 전달받는, 가상화 기반 소프트웨어 보안 장치
|
6 |
6
청구항 5에 있어서,상기 보안 모듈 엔진은 상기 보안 모듈 인터페이스를 통하여 전달된 외부의 데이터를 프로토콜에 따라 처리하는 실행 엔진을 포함하는, 가상화 기반 소프트웨어 보안 장치
|
7 |
7
청구항 6에 있어서,상기 보안 모듈 엔진은 보안 기능 엔진을 더 포함하고, 상기 보안 기능 엔진은 상기 실행 엔진이 상기 명령을 수행하는 과정에서 필요로 하는 암호화 엔진, 해시 (Hash) 엔진, 인증기, 변수 생성기, 대칭키/비대칭키 생성기를 포함하는, 가상화 기반 소프트웨어 보안 장치
|
8 |
8
청구항 7에 있어서,상기 보안 모듈 엔진은 상기 보안 모듈 인터페이스로부터 명령을 전달받고 상기 보안 모듈 엔진의 상태를 표시할 수 있는 엔진 인터페이스를 더 포함하는, 가상화 기반 소프트웨어 보안 장치
|
9 |
9
청구항 8에 있어서,상기 보안 모듈 엔진은 상기 실행 엔진과 상기 엔진 인터페이스를 연동 제어하여 하드웨어 보안 칩 수준의 보안을 수행하는, 가상화 기반 소프트웨어 보안 장치
|
10 |
10
청구항 9에 있어서,상기 보안 모듈 엔진은 소프트웨어 보안 수행 과정에서 사용된 키 및 소프트웨어 보안 장치에 설정된 사용정책에 대한 정보를 저장하는 휘발성 정보 저장 공간을 더 포함하는, 가상화 기반 소프트웨어 보안 장치
|
11 |
11
청구항 10에 있어서,상기 보안 모듈 엔진은, 상기 소프트웨어 보안 모듈이 관리하는 상기 비휘발성 보안 모듈 엔진 정보를 임시 저장하는 비휘발성 보안 모듈 엔진 정보 공간을 더 포함하는, 가상화 기반 소프트웨어 보안 장치
|
12 |
12
청구항 11에 있어서,상기 비휘발성 보안 모듈 엔진 정보는 상기 소프트웨어 보안 모듈이 키 체계(key hierarchy)의 구성에 필요로 하는 루트 키와, 상기 소프트웨어 보안 모듈이 사용하는 인증서 또는 비밀키 정보를 포함하는, 가상화 기반 소프트웨어 보안 장치
|
13 |
13
청구항 11에 있어서,상기 보안 모듈 엔진은, 상기 비휘발성 보안 모듈 엔진 정보 공간에 저장되는 상기 비휘발성 보안 모듈 엔진 정보가 변경될 경우, 변경된 상기 비휘발성 보안 모듈 엔진 정보를 상기 보안 모듈 저장소에 저장하는, 가상화 기반 소프트웨어 보안 장치
|
14 |
14
청구항 13에 있어서,상기 보안 모듈 엔진은 기밀성 보장을 위해 상기 비휘발성 보안 모듈 엔진 정보를 암호화하여 상기 보안 모듈 저장소에 저장하는, 가상화 기반 소프트웨어 보안 장치
|
15 |
15
청구항 11 내지 14 중 어느 한 항에 있어서,상기 보안 모듈 엔진은, 상기 비휘발성 보안 모듈 엔진 정보가 상기 보안 모듈 저장소에 저장될 때, 혹은 상기 보안 모듈 저장소에서 상기 보안 모듈 엔진으로 상기 비휘발성 보안 모듈 엔진 정보가 등록될 때, 상기 소프트웨어 보안 모듈의 무결성 정보를 획득하는, 가상화 기반 소프트웨어 보안 장치
|
16 |
16
청구항 15에 있어서,상기 보안 모듈 엔진은, 상기 무결성 정보를 기반으로 하여 상기 비휘발성 보안 모듈 엔진 정보를 암호화하거나 복호화하는데 사용하는 엔진 정보 암호화 대칭키를 생성하는, 가상화 기반 소프트웨어 보안 장치
|
17 |
17
청구항 16에 있어서,상기 보안 모듈 엔진은, 상기 엔진 정보 암호화 대칭키를 이용하여 안전한 기기에서만 상기 비휘발성 보안 모듈 엔진 정보를 암호화하거나 복호화하는, 가상화 기반 소프트웨어 보안 장치
|
18 |
18
청구항 1에 있어서,상기 보안 모듈 저장소는 상기 보안 모듈 인터페이스에 연결되는 일반 프로그램의 접근을 제한하는, 가상화 기반 소프트웨어 보안 장치
|
19 |
19
컴퓨터에서 수행되는 가상화 기반 소프트웨어 보안 방법에 있어서, 상기 컴퓨터 내 운영체제의 소프트웨어 보안 설정에 의해 일반 프로그램과 독립적으로 동작하는 보호 영역을 생성하는 단계;보안 모듈 엔진 및 상기 보안 모듈 엔진과 상기 일반 프로그램을 연결하는 보안 모듈 인터페이스를 포함하고, 상기 보호 영역에 위치하는 소프트웨어 보안 모듈을 로드(load)하는 단계;상기 보안 모듈 엔진을 구동하고 상기 보안 모듈 인터페이스를 등록하는 단계;상기 소프트웨어 보안 모듈의 무결정 정보를 수집하는 단계;상기 무결정 정보를 기반으로 엔진 정보 암호화 대칭키를 생성하는 단계;상기 소프트웨어 보안 모듈에 연결되는 보안 모듈 저장소로부터 암호화된 적어도 하나의 비휘발성 보안 모듈 엔진 정보를 획득하는 단계; 상기 암호화된 보안 모듈 엔진의 적어도 하나의 정보를 상기 엔진 정보 암호화 대칭키를 이용하여 복호화하는 단계; 및상기 복호화된 보안 모듈 엔진 정보를 상기 보안 모듈 엔진에 등록하는 단계를 포함하는, 가상화 기반 소프트웨어 보안 방법
|
20 |
20
청구항 19에 있어서,상기 보안 모듈 엔진 정보를 상기 보안 모듈 엔진에 등록하는 단계 이후에,상기 보안 모듈 인터페이스에서 명령 이벤트를 감지하는 단계;상기 보안 모듈 엔진의 상태를 확인하는 단계;상기 보안 모듈 엔진의 엔진 인터페이스에 명령을 전달하는 단계;상기 보안 모듈 엔진의 상태를 업데이트하는 단계;상기 보안 모듈 엔진의 실행 엔진에 명령을 전달하는 단계;상기 실행 엔진에 의한 명령 수행이 성공인지를 판단하는 단계;상기 명령 수행이 성공이면, 상기 보안 모듈 엔진의 상태를 업데이트하는 단계; 및상기 보안 모듈 엔진에서 상기 보안 모듈 인터페이스를 통해 상기 일반 프로그램으로 상기 명령 수행의 결과를 전달하는 단계를 포함하는, 가상화 기반 소프트웨어 보안 방법
|