KR101464389B1 - 공유 암호화 키를 변경하는 시스템 및 방법 - Google Patents
공유 암호화 키를 변경하는 시스템 및 방법 Download PDFInfo
- Publication number
- KR101464389B1 KR101464389B1 KR1020097008599A KR20097008599A KR101464389B1 KR 101464389 B1 KR101464389 B1 KR 101464389B1 KR 1020097008599 A KR1020097008599 A KR 1020097008599A KR 20097008599 A KR20097008599 A KR 20097008599A KR 101464389 B1 KR101464389 B1 KR 101464389B1
- Authority
- KR
- South Korea
- Prior art keywords
- operating environment
- encryption key
- shared encryption
- bios
- shared
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- 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/60—Protecting data
- G06F21/606—Protecting data by securing the transmission between two devices or processes
-
- 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
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
Abstract
시스템(50)은 제 1 운영 환경(56) 및 제 2 운영 환경(62)을 포함한다. 제 1 및 제 2 운영 환경은 공유된 암호화 키(K3)를 이용해서 암호화된 형태의 정보를 교환한다. 제 1 및 제 2 운영 환경은 다른 공유 암호화 키(K4)를 이용해서 상기 암호화 키(K3)를 변경하도록 함께 동작한다. 암호화 키(K4)는, 암호화 키(K3)가 변경될 때 변경된다.
Description
많은 컴퓨팅 시스템은 운영 체제(OS) 및 기본 입출력 시스템(BIOS)과 같은 전체적으로 독립된 운영 환경을 다수 포함하고 있다. 이러한 운영 환경은 서로 통신하고 있다. 적어도 일부 경우에, 불행하게도 운영 환경간의 통신 메커니즘이 '바이러스'와 같은 인증받지 않은 엔티티에 의해 쉽게 스누핑(snoop)되고 있다.
이하 도면을 참조하면서 본 발명의 실시예가 더 상세하게 설명될 것이다.
도 1은 본 발명의 실시예에 따른 시스템을 도시하는 도면,
도 2는 본 발명의 실시예에 따른, 적어도 2개의 운영 환경 사이에 공유된 키를 변경하는 방법을 도시하는 도면,
도 3a 및 3b는 공유키를 변경하는 다른 예시적인 방법을 도시하는 도면,
도 4는 본 발명의 실시예에 따른, 적어도 2개의 운영 환경 사이에 공유된 키를 리셋하는 방법을 도시하는 도면이다.
이하의 상세한 설명 및 청구의 범위에서 각각의 시스템 구성 요소를 가리키는데 특정한 용어가 사용된다. 당업자라면, 컴퓨터 회사마다 하나의 구성 요소를 서로 다른 명칭으로 가리킬 수 있다는 점을 이해할 것이다. 본 명세서에서는 명칭은 다르지만 기능은 다르지 않은 구성 요소를 구분하고 있지 않다. 이하의 상세한 설명 및 청구의 범위에서, '포함하다'라는 용어는 특별한 제한 없이 사용되는 것으로, 따라서 '포함하고는 있지만, 이에 한정되는 것은 아닌'이라는 의미로 해석되어야 한다. 또한, 용어 '연결되다'는 간접적인, 직접적인, 광학적인 혹은 무선의 전기 접속을 의미하고 있다. 따라서, 만약 제 1 디바이스가 제 2 디바이스에 연결되어 있다고 하면, 이 접속은 직접적인 전기 접속, 다른 디바이스 및 접속을 통한 간접적인 전기 접속, 광학적인 전기 접속 혹은 무선의 전기 접속이 될 수 있다.
도 1은 프로세서(52), 시스템 ROM(read only memory)(54) 및 저장 장치(59)를 포함하는 시스템(50)의 실시예를 도시하고 있다. 시스템 ROM(54)은 프로세서(52)에 의해 실행될 수 있는 코드인 BIOS(56)를 저장하고 있다. BIOS(56)는, 부팅되는 동안 시스템(50)을 테스트하고 초기화하는 POST(power on-self test)를 포함한다. BIOS(56)는 또한 시스템(50)의 다양한 주변 기기(예컨대, 플로피 디스크 드라이브, 하드 드라이브, 키보드 등)로의 하위 레벨 인터페이스를 제공한다.
저장 장치(59)는 RAM과 같은 휘발성 메모리, ROM과 같은 비휘발성 저장 장치, 하드 디스크 드라이브 등 혹은 이들의 조합을 포함한다. 저장 장치(59)는 운영 체제(OS)(62)를 저장하고 있으며, 이 운영 체제(62)는 프로세서(52)에 의해 실행되 는 코드도 포함하고 있다. OS(62)하에서 동작하면서 프로세서(52)에 의해 실행되는 하나 이상의 애플리케이선/드라이버(64)가 제공될 수 있다.
BIOS(56) 및 OS(62)는 보안 통신 메커니즘을 통해서 서로 통신하고 있는 2개의 소프트웨어 운영 환경을 포함한다. BIOS(56) 및 OS(62)와 관련해서 이하 설명되겠지만 일반적으로 다른 운영 환경에도 적용될 수 있다. 이하의 단계 중 일부가 OS(62)에 속하는 경우까지 확대해 보면, 이러한 단계는 OS 자체에 의해 수행될 수도 있고 혹은 OS 하에서 동작되는 애플리케이션/드라이버(64) 중 하나 이상에 의해 수행될 수도 있다.
BIOS(56) 및 OS(62)는 이들 사이에 전송되는 커맨트 및 데이터를 암호화해서 서로 통신한다. 본 발명의 실시예에 따라서, 암호화 프로토콜은 대칭형 암호화 프로토콜을 포함하며, 대칭형 암호화 프로토콜이란 BIOS(56) 및 OS(62) 각각이 동일한 암호화 키의 카피를 사용한다는 뜻이다. 예컨대, OS(62)는 BIOS(56)에 전송할 요청을 암호화 키를 사용해서 암호화하고, BIOS(56)는 동일한 암호화키의 카피를 사용해서 암호화된 요청을 복호한다. '공유' 암호화키가 양쪽 방향으로의 - OS(62)로부터 BIOS(56)로의 혹은 그 반대의 - 정보를 암호화하는데 사용된다.
이론적으로, 엔티티(예컨대, 바이러스)가 BIOS(56)와 OS(62) 사이의 암호화된 통신을 스누핑해서 사용되는 암호화키를 알아내는 것이 가능하다. 이러한 인증되지 않은 엔티티가 BIOS(56)와 OS(62)간의 통신을 스누핑해서 암호화 키를 유추해내는 확률을 줄이기 위해서, 보안 메커니즘이 사용되어서 공유키를 갱신한다. 보안 메커니즘을 통해서 BIOS(56) 및 OS(62)는 자신이 공유하고 있는 키를 보안 방식으 로 변경한다. 즉, 공유키가 갱신되는 방식은 자체의 보안이다. 공유키 갱신 과정은 사전에 결정된 기간이나 프로그래밍 가능한 기간(예컨대, 한시간에 한번, 혹은 하루에 한번 등)에, 혹은 BIOS(56)와 OS(62) 사이의 통신이 n회 이루어졌을 때 마다(예컨대, 각각의 통신 패킷마다 혹은 5번의 통신 패킷마다), 수행되도록 스케쥴링될 수 있다.
도 1을 다시 참조하면, 시스템 ROM(54)은 K1, K2, K3 및 K4라고 표시된 다양한 암호화 키(58)를 저장할 저장 장치를 포함한다. 키(K1, K2)의 카피는 시스템(54)에 로딩되고, 본 발명의 일부 실시예에 따라, 소거되지 않을 수도, 덮어쓰기될 수도, 그렇지 않으면 삭제(eradicate)될 수도 있다. 키(K3, K4)는 이하 설명되는 바와 같이 삭제되고 덮어쓰기될 수 있다. 시스템 ROM의 K1-K4 키(58)는 BIOS(56)의 일부가 될 수도 혹은 BIOS(56)와는 별개로 될 수도 있다. OS(62)는 키 K1-K4의 세트(60)로의 액세스 권한도 갖고 있다. 예시적인 실시예에 따라서, OS의 키 K1-K4(60)는 BIOS(56)의 키 K1-K4(58)과 동일하다. BIOS(56) 키(58)에서와 같이, 일 실시예에서, OS(62)의 키(K1, K2)의 카피는 덮어쓰기되거나 삭제되지 않도록 보호되고 있다. OS의 키(K3, K4)는 소거될 수도 있고 덮어쓰기될 수도 있다.
여기서 사용되는 용어 '키'(예컨대, K3)는 키의 값이라고 간주된다. 따라서, K3의 값은 새로운 값으로 변경될 수 있고, 이 값도 역시 K3라고 간주될 것이다.
도 1에 도시된 바와 같이, BIOS(56) 및 OS(62) 각각은 이들 사이에서 교환되는 정보를 암호화하기 위해서 공유 암호화 키로의 엑세스 권한을 갖고 있다. 본 발명의 실시예에 따라서, 암호화 처리는 대칭형 암호화이고, 이는 정보를 암호화하는 데 사용되는 것과 동일한 키 값이 복호화 처리 중에도 사용된다는 것을 의미한다. 예컨대, OS(62)는 공유키(K1)의 카피를 사용해서 BIOS(56)로 전송될 정보(예컨대, 커맨드, 데이터)를 암호화한다. BIOS(56)는 공유키(K1)의 카피를 사용해서 수신된 통신을 복호해서 그 안에 있는 정보를 복원한다. BIOS(56)는 암호화된 정보를 OS(62)에도 전송할 수 있고, 이 때문에, BIOS(56)는 키(K1)를 사용해서 이러한 정보를 암호화하고, OS(62)는 키(K1)를 사용해서 복호한다. 이로써, OS(62) 및 BIOS(56)는 공유 암호화 키(예컨대, K1)를 사용해서 암호화된 형태로 정보를 교환한다. 공유키(K2)는 도 2의 예에 도시된 키 갱신 과정 동안 사용된다.
위에 설명된 바와 같이, 전송되는 암호화된 패킷을 모니터함으로써 대칭형 암호화 키의 값을 유추할 수 있다. 따라서, BIOS(56)와 OS(62) 사이에 교환되는 암호화 키를 모니터함으로써 암호화 키(K1)가 유추될 수 있다. 본 발명의 실시예에 따라서, 2개의 운영 환경(예컨대, BIOS(56) 및 OS(62)) 사이의 정보를 암호화하는데 사용되는 암호화 키가 변경되는 메커니즘이 제공된다. 또한, 암호화 키를 변경하는 것은, 암호화 키의 새로운 값이 위험에 노출되지 않도록 자체가 보안되는 방식으로 수행된다. 인증된 엔티티만이 K1을 변경하는 시도를 한다는 것을 확인하는 것을 돕는 방식으로 암호화 키(K1)를 변경하기 위해서, 공유된 대칭형 암호화 키(K2)가 사용된다. 키(K1)를 변경할 때, K2도 변경된다. 또한, 본 발명의 다양한 실시예에 따라서, K2의 현재의 값은 키(K1)를 변경하는 처리 동안만 사용되고, 그 동안 K2도 변경된다. 즉, 키(K1)를 변경하는 처리 동안, 키(K2)도 새로운 값으로 설정되고, 이 새로운 값은 다음 번에 키(K1)가 변경될 때 사용된다. K2의 현재의 값은, K1을 변경하는 것을 지원하는데 한번 사용되기 때문에(비록 K2가 K1이 변경될 때마다 한번 이상 사용될 수 있더라도), 이 값은 분명히 인증되지 않은 엔티티가 BIOS(56)와 OS(62) 사이의 트래픽을 모니터해서는 유추될 수 없다. 일부 실시예에서, K1 및 K2가 변경된다. 다른 실시예에서, BIOS(56) 및 OS(62)가 몇 종류의 에러가 발생한 경우에도 확실히 서로 통신할 수 있도록 하기 위해서, 키(K1, K2)는 변경되지 않고, 그 대신에 키(K1, K2)의 카피(각각 키(K3, K4)로 설명된다)가 사용되어서 메시지를 암호화/복호하고 키 갱신 처리를 수행한다. 에러가 발생한 경우에, 시스템은 K1 및 K2로 돌아갈 수 있다.
본 발명의 실시예에 따라서, BIOS(56) 및 OS(62) 중 하나는 이들 중 다른 하나로 K1 및 K2의 새로운 암호화 키 값을 계산할 것을 요청한다. 일 실시예에서, OS(62)는 BIOS(56)에 새로운 K1 및 K2의 값을 계산할 것을 요청한다. 이러한 처리 동안, 키(K2)는, BIOS(56)가 OS의 요청을 확인해서 암호화 키(K1)를 변경하는 데 사용된다. 또한, 키(K2)는, OS(62)가, BIOS로부터 OS로 돌아오는 통신에 K1 및 K2의 새로운 값이 이용되고 있다는 것을 확인하는데도 사용된다. K2를 사용해서 OS(62)와 BIOS(56) 사이의 통신을 확인함으로써, 인증되지 않은 엔티티가 OS와 BIOS 중 하나 혹은 모두와 새로운 키를 교환하는 것을 방지할 수 있다. 여기 설명된 실시예에서, 공유키(K2)로의 액세스 권한을 가진 이들 컴퓨팅 환경(예컨대, BIOS(56) 및 OS(62))만이 키(K1, K2)를 변경할 수 있다.
본 발명의 적어도 일부 실시예에 따라서, 시스템(50)은 시스템의 사용자에게 K1 및 K2의 값을 제공하고, 이 K1 및 K2는 BIOS(56) 및 OS(62) 모두에서 K3 및 K4 의 값으로 설정된다. 즉, 처음에 BIOS(56) 및 OS(62) 모두에서 K3는 K1과 같고, K4는 K2와 같다. 이하에서 설명되는 방법에 따라, 시스템(50)의 인스톨 처리 동안, BIOS(56) 및 OS(62) 모두에서 키(K3, K4)가 변경된다. 이런 관점에서, BIOS(56)와 OS(62) 사이의 암호화에는 키(K3)가 사용되고, 키(K3)를 변경하는 데 키(K4)가 사용되며, 그 결과 K4로 변경된다.
일부 실시예에서, BIOS(56) 및 OS(62) 모두에 대해서 키(K1, K2)는 소거가 불가능하고, 이로써 시스템(50)은 필요에 따라서, 혹은 요구에 따라, 기존의 기능적인 키의 세트(K1, K2)로 돌아갈 수 있다. 예컨대, 만약 저장 장치(59)가 고장나서 대체되는 경우에, 대체 하드 드라이브는 키(K1, K2)의 원래의 값과 함께 키(K1, K2)를 미러링한 키(K3, K4)를 가질 것이다. 시스템 ROM(54)의 키(K3, K4)는 키(K1, K2)의 초기 값으로 다시 설정될 수 있다.
도 2를 참조하면, 단계(82-90)를 포함하는 키 변경 처리(80)의 예가 도시되어 있다. 도 2의 처리(80)는 BIOS(56)가 OS(62)의 요청으로 K1 및 K2의 새로운 값을 계산하는 것을 도시하고 있다. 다른 실시예에서, BIOS(56)가 키 갱신을 요청하고, OS(62)가 새로운 키 값을 계산함으로써 BIOS(56)와 OS(62)의 역할이 바뀐다.
단계 82에서, OS(62)는 공유키(K3, K4)의 키 값의 대체 세트를 생성할 것을 BIOS(56)에 요청한다. 단계 84에서, BIOS(56)는 K4를 사용해서 OS의 요청을 확인한다. BIOS(56)가 OS의 요청을 확인하는데 성공하면, 단계 86에서, BIOS는 새로운 암호화 키 값의 세트(K5, K6)를 계산하고, 새로운 키 값(K5, K6)을 OS(62)에 제공한다. 키 값(K5, K6)은 사실상 일시적인 것으로, 이는 적어도 일부 실시예에서 이들 키 값이 K3, K4의 값을 변경하기 위해서 한번만 사용된다는 것을 의미한다. 만약 BIOS(56)가 OS의 요청을 확인하는데 실패하면 처리는 정지되거나 다른 적절한 액션(예컨대, 경보를 발하는 액션)을 수행한다.
도 2를 다시 참조하면, 단계 88에서, K4를 다시 사용해서, OS(62)는 BIOS(56)로부터의 통신에 새로운 암호화 키 세트(K5, K6)가 포함되어 있는지 확인한다. OS(62)가 BIOS의 통신을 확인하는데 성공하면, 단계 90에서 OS는 OS의 K3 및 K4의 카피를 새로운 키(K5, K6)로 대체한다. 즉, K5는 K3을 덮어쓰기하는데 사용되고, K6은 K4를 덮어쓰기하는데 사용된다. OS가 새로운 키를 받아들였다는 메시지가 OS에 의해 BIOS로 전송되면, BIOS도 K3 및 K4의 카피를 새로운 키의 값(K5, K6)으로 대체한다.
도 3a 및 도 3b의 키 변경 처리(100)는 도 2의 단계 중 일부를 더 상세하게 설명하는 것이다. 단계 102에서, OS(62)는 랜덤수를 OS에 제공할 것을 BIOS(56)에게 요청한다. 용어 "랜덤수"(RN)는 여기서 설명되는 실시예와 관련하여 사용될 수 있을 정도로 충분히 랜덤인 수를 포함한다. 따라서, 랜덤수는 수학적으로 정말 랜덤인 수일 필요는 없다. 단계 104에서, BIOS(56)는 랜덤수를 생성하고, K3를 사용해서 랜덤수를 수정해서 수정된 랜덤수를 OS(62)에 제공한다. 랜덤수는 아날로그 파라미터(예컨대, 온도, 노이즈 등)를 샘플링하고 이 샘플을 이용해서 랜덤수를 생성하는 것과 같은 적절한 기술을 통해서 생성된다. 적어도 하나의 실시예에서, 랜덤수를 수정하는 것은 랜덤수가 K3와 배타적 OR되는 배타적 OR연산을 수행하는 것을 포함한다. 단계 106에서 OS(62)는 수정된 랜덤수를 수신해서 원래의 랜덤수를 복원한다. BIOS(56)에 의하여 랜덤수가 K3와 배타적 OR되는 예에서, OS(62)는 수정된 랜덤수와 OS의 K3의 카피를 배타적 OR함으로써 랜덤수를 복원한다.
단계 108에서, OS(62)는 K4, 및 단계 106에서 복원된 랜덤수를 이용해서 HMAC(Hash function-based Message Authentication Code)를 계산함으로써 출력값, HMAC_OS1을 생성한다. HMAC는 목적지 엔티티로 통신을 전송하는 소스 엔티티의 인증 여부를 확인하는데 사용될 수 있다. HMAC 이외의 다른 메커니즘도 가능하고, 이는 본 명세서의 범주 내에 포함된다. 단계 110에서, OS(62)는 HMAC_OS1 값을 BIOS(56)에 제공하고, 공유키(K3, K4)를 대체할 새로운 키의 세트를 생성할 것을 BIOS(56)에 요청한다. BIOS(56)가 새로운 키 값을 생성하기 전에, BIOS는 이 요청이 인증받은 소스(즉, OS(62))로부터 온 것인지 확인한다. 단계 112에서, BIOS는, 단계 104에서 BIOS가 생성한 랜덤수 및 BIOS의 K4의 카피를 사용해서, 자신이 갖고 있는 HMAC(HMAC_BIOS1이라 함)를 계산해서 이 확인 과정을 수행하고, BIOS의 K4의 카피는 OS(62)가 HMAC_OS1 값을 생성하는 데 사용된 것과 같은 값일 것이다. 따라서, OS(62)와 BIOS(56)에 의해 계산된 HMAC 값은 일치할 것이다. 그러나, 만약 인증되지 않은 엔티티가 HMAC 값을 BIOS에 제공했다면, 이러한 인증되지 않은 엔티티는 정확한 K4 및/또는 랜덤수로의 액세스 권한을 갖지 않을 것이고, 따라서 일치하지 않는 HMAC 값을 계산했을 것이므로, HMAC 값은 일치하지 않을 것이다.
단계 114에서, BIOS(56)는 HMAC_OS1와 HMAC_BIOS1 값을 비교해서 이 값이 일치하는지 판정한다. 이 값이 일치하지 않으면, 처리는 실패하고, 단계 116에서 정지한다. 이러한 상황에서, 필요에 따라서는 경보 혹은 다른 적절한 응답이 수행될 수 있다. 그러나, HMAC_OS1와 HMAC_BIOS1 값이 일치하면, 방법은 단계 118로 넘어가서 BIOS는 새로운 키의 쌍, K5 및 K6을 생성한다. 이러한 키는 임의의 적절한 기술에 따라서 계산될 수 있다.
단계 120에서, BIOS는 다른 HMAC 값을 계산하고, 이 때 K5, K6과 단계 104에서 생성된 랜덤수의 조합인 다른 값 및 BIOS의 K4의 카피를 이용한다. 단계 120에서 나온 HMAC 값은 HMAC_BIOS2라고 하며, 이는 이하 설명에서 OS(62)가 자신에게 전송되어 온 새로운 키 값(K5, K6)이 인증받은 소스(즉, BIOS(56))에 의한 것인지 확인하는데 사용될 것이다. 적어도 하나의 실시예에서 K5, K6의 값과 랜덤수는 이들을 연결시킴으로써(concatenate) 조합된다. K5, K6의 값과 랜덤수를 조합시키는 다른 기술도 가능하며, 이는 본 명세서의 범주내에 포함된다.
도 3a를 다시 참조하면, 122 단계에서, BIOS는 K4와 단계 104에서 생성된 랜덤수의 해시를 계산해서 Hash_BIOS라 불리는 값을 생성한다. 이에 대해서, 임의의 적절한 해시 함수가 사용될 수 있다. 단계 124에서, BIOS(56)는 새롭게 계산된 키(K5, K6)를 Hash_BIOS 값을 이용해서 수정함으로써 K5, K6의 수정된 버전을 생성한다. 이와 같이, K5는 Hash_BIOS를 이용해서 수정되고, K6도 Hash_BIOS를 이용해서 수정된다. 적어도 일부 실시예에서, K5 및 K6를 수정하는 것은 K5 및 K6 값 각각을 Hash_BIOS 값과 배타적 OR하는 것을 포함한다. 단계 126에서, BIOS(56)는 수정된 K5, 수정된 K6 및 HMAC_BIOS2 값을 OS(62)에 제공한다.
단계 128(도 3b)에서, OS(62)는 수정된 K5, K6 값 및 HMAC_BIOS2 값을 수신한다. 단계 130에서, OS(62)는 OS의 K4의 카피와 단계 104에서 BIOS가 OS에 제공한 랜덤수의 해시(단계 122에서 BIOS가 사용한 것과 같은 해시 기능을 이용해서)를 계산한다. 단계 130에서 계산된 해시 값은 Hash_OS라고 한다. 단계 132에서, OS(62)는 단계 130에서 계산된 해시를 사용해서, K5 및 K6의 수정된 버전으로부터 K5 및 K6의 원래 버전을 복원한다. K5 및 K6을 Hash_BIOS 값과 배타적 OR함으로써 K5 및 K6이 수정되는 실시예에서, 복원 동작은 K5 및 K6의 수정된 버전과 Hash_OS을 배타적 OR함으로써 수행된다.
단계 134에서, OS는 K5, K6(단계 132에서 복원된)와 단계 104로부터의 랜덤수의 조합 및 K4를 이용해서 HMAC 값을 계산한다. 적어도 일부 실시예에서, 단계 134에서는, K5, K6의 값과 랜덤수는 단계 120에서 이러한 값이 서로 조합된 것과 같은 방식(예컨대, 연결)으로 서로 조합된다. 단계 134의 결과로 나온 HMAC 값은 HMAC_OS2라고 한다. 단계 136에서 OS(62)는, HMAC_OS2와 HMAC_BIOS2를 비교해서, 새로운 키(K5, K6)의 소스가 인증받은 엔티티(예컨대, BIOS(56))인지 확인한다. 만약 단계 136에서 HMAC 값들이 일치하지 않으면, 단계 138에서 키 갱신 처리는 실패로 종료된다. 만약 일치하면, 단계 140에서, OS는 K5 및 K6을 이용해서 K3 및 K4를 각각 덮어쓰기 함으로써, BIOS(56)로부터의 새로운 키(K5, K6)를 받아들인다. 단계 142에서, OS(62)는 자신이 새로운 키 값(K5, K6)을 수신해서 받아들였다는 것을 BIOS(56)에 통지한다. 이렇게 통지함으로써 BIOS(56)는 K5 및 K6의 카피를 이용해서 K3 및 K4의 카피를 덮어쓰기하고, 이로써 K3 및 K4의 이전의 값을 K5 및 K6의 값으로 대체한다.
개시된 실시예의 보안 메커니즘은 BIOS(56)와 OS(62) 사이에서 사용되는 공 유키(K3, K4)를 갱신할 수 있는 것에 더해서, 리셋을 허용할 수 있고, 이로써 BIOS(56)와 OS(62)는 그들의 공유키를 이전에 알고 있던 키의 세트 K1, K2로 리셋할 수 있고, 그 결과 키(K1, K2)는 암호화/복호 및 키 갱신의 목적으로 사용될 수 있다. 도 4는 이러한 처리를 나타내는 예시적인 방법 150을 제공한다. 단계 152에서, OS(62)는 사용자에세 관리 패스워드를 입력하게 하고, 단계 154에서 사용자는 관리 패스워드를 입력한다. 단계 156에서, 관리 패스워드가 확인되고, 키(K1)로 암호화된다. 단계 158에서, OS는 암호화된 관리 패스워드를 BIOS(56)에게 전송하고, BIOS(56)는 암호화된 패스워드를 복호해서 유효화한다(단계 160). BIOS(56)는 키(K1, K2)로 리셋한다. 이 리셋 동작은 일부 실시예에서 K1 및 K2의 값을 이용해서 저장 장치(66)의 K3 및 K4의 값을 덮어쓰기함으로써 수행된다. 유사하게, OS는 예컨대, OS의 K1 및 K2의 값을 이용해서 저장 장치(58)에 저장된 OS의 K3 및 K4의 값을 덮어쓰기 하는 방식으로 키(K1, K2)로 리셋한다.
본 발명의 적어도 일부 실시예에 따라서, 어떤 2개의 시스템도 동일한 K홀수 및 K짝수는 갖지 않을 것이다. 따라서, 만약 침입자가 한 시스템의 키 쌍으로의 액세스 권한을 획득했다해도, 여기서 획득한 것은 다른 시스템을 침입하는데 사용할 수 없을 것이며, 이로써 전체 공격에 대해서 보호될 수 있다.
위의 설명은 본 발명의 원리 및 다양한 실시예의 예시로 의도되었다. 위의 개시에 대한 다양한 변형예 및 수정예가 있을 수 있다는 것이 당업자에게는 자명할 것이다. 이하의 청구항은 이러한 모든 변형예 및 수정예를 포함하는 것으로 해석되도록 의도되었다.
Claims (10)
- 공유 암호화 키를 변경하는 시스템(50)에 있어서,제 1 운영 환경(56)과,제 2 운영 환경(62)을 포함하고,상기 제 1 운영 환경 및 상기 제 2 운영 환경은 공유된 암호화 키(K3)를 이용해서 암호화된 형태로 정보를 교환하고,상기 제 1 운영 환경 및 상기 제 2 운영 환경은 상기 제 1 운영 환경과 상기 제 2 운영 환경 사이의 사전결정된 수의 통신의 발생에 기초하여 상기 공유된 암호화 키(K3)를 변경하기 위해 메시지를 교환하고, 상기 메시지는 다른 공유된 암호화 키(K4)를 이용하여 암호화되고,상기 다른 공유된 암호화 키(K4)는 상기 공유된 암호화 키(K3)가 변경될 때 변경되고,상기 제 1 운영 환경 및 상기 제 2 운영 환경의 각각은 상기 공유된 암호화 키(K3) 및 상기 다른 공유된 암호화 키(K4)를 변경하기 위해 상기 제 1 운영 환경 및 상기 제 2 운영 환경 중 다른 하나와의 통신을 개시하도록 구성되고,상기 제 1 운영 환경은 운영 시스템(OS) 및 기본 입력/출력 시스템(BIOS) 중 하나를 포함하고, 상기 제 2 운영 환경은 상기 OS 및 상기 BIOS 중 다른 하나를 포함하는공유 암호화 키 변경 시스템.
- 제 1 항에 있어서,상기 암호화 키(K4)는 상기 암호화 키(K3)를 변경하는 동안에만 이용되는공유 암호화 키 변경 시스템.
- 제 1 항에 있어서,상기 암호화 키(K4)는, 상기 제 1 운영 환경 및 상기 제 2 운영 환경 중 하나가 상기 제 1 운영 환경 및 상기 제 2 운영 환경 중 다른 하나에 의한 통신이 상기 암호화 키(K3)의 새로운 값을 생성하는 것과 관련되었다는 것을 확인하는데 이용되는공유 암호화 키 변경 시스템.
- 제 1 항에 있어서,상기 제 1 운영 환경 및 상기 제 2 운영 환경 중 하나는 상기 제 1 운영 환경 및 상기 제 2 운영 환경 중 다른 하나에 HMAC(Hash function-based Message Authentication Code) 값을 제공하고,상기 HMAC 값은 상기 암호화 키(K4)에 기초하는공유 암호화 키 변경 시스템.
- 제 1 항에 있어서,상기 제 1 운영 환경은 상기 제 2 운영 환경으로부터 랜덤수를 수신하고, 상기 랜덤수 및 상기 공유된 암호화 키(K4)를 이용해서 HMAC(Hash function-based Message Authentication Code) 동작을 수행하는공유 암호화 키 변경 시스템.
- 공유 암호화 키를 변경하는 방법에 있어서,제 1 프로세서 상에서 실행되는 제 1 운영 환경이, 자신과 제 2 운영 환경 사이에 공유되는 암호화 키(K3)의 새로운 값을 생성하라는 요청을, 사전결정된 간격으로, 상기 제 1 프로세서 또는 다른 프로세서 상에서 실행되는 상기 제 2 운영 환경에게 송신하는 단계―상기 요청은 다른 공유된 암호화 키(K4)를 이용하여 암호화됨―와,상기 제 2 운영 환경이, 상기 다른 공유된 암호화 키(K4)를 이용해서 상기 제 1 운영 환경의 요청을 확인하는 단계와,상기 제 2 운영 환경이, 상기 K3의 새로운 값 및 상기 K4의 새로운 값을 생성하는 단계와,상기 제 2 운영 환경이, 상기 새로운 K3 값 및 상기 새로운 K4 값을 상기 제 1 운영 환경에 제공하는 단계와,상기 제 1 운영 환경이, 상기 K3 및 K4의 새로운 값들을 이용해서 K3 및 K4의 기존의 값들을 대체하는 단계를 포함하되,상기 제 1 운영 환경은 운영 시스템(OS) 및 기본 입력/출력 시스템(BIOS) 중 하나를 포함하고, 상기 제 2 운영 환경은 상기 OS 및 상기 BIOS 중 다른 하나를 포함하는공유 암호화 키 변경 방법.
- 제 6 항에 있어서,상기 제 2 운영 환경이, 상기 K3 및 K4의 새로운 값들을 이용해서 K3 및 K4의 기존의 값들을 대체하는 단계를 더 포함하는공유 암호화 키 변경 방법.
- 제 6 항에 있어서,상기 제 1 운영 환경이, 상기 K4를 이용해서 상기 제 2 운영 환경이 제공한 상기 새로운 K3 값을 확인하는 단계(136)를 더 포함하는공유 암호화 키 변경 방법.
- 제 6 항에 있어서,상기 제 2 운영 환경이, 상기 K4를 이용해서 상기 제 1 운영 환경의 요청을 확인하는 상기 단계는, 상기 제 2 운영 환경이 HMAC를 계산하는 단계(120)를 포함하는공유 암호화 키 변경 방법.
- 제 9 항에 있어서,상기 제 2 운영 환경이 HMAC를 계산하는 단계는, 상기 제 2 운영 환경이 상기 K4에 기초해서 상기 HMAC를 계산하는 단계(120)를 포함하는공유 암호화 키 변경 방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/536,443 US8127135B2 (en) | 2006-09-28 | 2006-09-28 | Changing of shared encryption key |
US11/536,443 | 2006-09-28 | ||
PCT/US2007/021075 WO2008108819A2 (en) | 2006-09-28 | 2007-09-27 | System and method for changing a shared encryption key |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20090085585A KR20090085585A (ko) | 2009-08-07 |
KR101464389B1 true KR101464389B1 (ko) | 2014-11-21 |
Family
ID=39262406
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020097008599A KR101464389B1 (ko) | 2006-09-28 | 2007-09-27 | 공유 암호화 키를 변경하는 시스템 및 방법 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8127135B2 (ko) |
EP (1) | EP2080148B1 (ko) |
JP (1) | JP5000720B2 (ko) |
KR (1) | KR101464389B1 (ko) |
CN (1) | CN101563696B (ko) |
BR (1) | BRPI0715277B1 (ko) |
WO (1) | WO2008108819A2 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021060756A1 (ko) * | 2019-09-26 | 2021-04-01 | 삼성전자 주식회사 | 터치 패드를 제어하기 위한 방법 및 전자 장치 |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8213602B2 (en) * | 2006-11-27 | 2012-07-03 | Broadcom Corporation | Method and system for encrypting and decrypting a transport stream using multiple algorithms |
US20080320423A1 (en) * | 2007-06-25 | 2008-12-25 | International Business Machines Corporation | System and method to protect computing systems |
US8341428B2 (en) * | 2007-06-25 | 2012-12-25 | International Business Machines Corporation | System and method to protect computing systems |
US20100064125A1 (en) * | 2008-09-11 | 2010-03-11 | Mediatek Inc. | Programmable device and booting method |
US8347096B2 (en) * | 2009-07-10 | 2013-01-01 | Vasco Data Security, Inc. | Authentication token with incremental key establishment capacity |
US8296579B2 (en) * | 2009-11-06 | 2012-10-23 | Hewlett-Packard Development Company, L.P. | System and method for updating a basic input/output system (BIOS) |
EP2363977B1 (en) * | 2010-02-26 | 2012-10-24 | Research In Motion Limited | Methods and devices for computing a shared encryption key |
JP2011254440A (ja) * | 2010-06-04 | 2011-12-15 | Toshiba Corp | 情報処理装置 |
US8924733B2 (en) * | 2010-06-14 | 2014-12-30 | International Business Machines Corporation | Enabling access to removable hard disk drives |
US20120069995A1 (en) * | 2010-09-22 | 2012-03-22 | Seagate Technology Llc | Controller chip with zeroizable root key |
JP5981761B2 (ja) * | 2012-05-01 | 2016-08-31 | キヤノン株式会社 | 通信装置、制御方法、プログラム |
US9563773B2 (en) * | 2014-02-26 | 2017-02-07 | Dell Products L.P. | Systems and methods for securing BIOS variables |
CN108292340A (zh) | 2016-02-19 | 2018-07-17 | 惠普发展公司,有限责任合伙企业 | 在运行时间期间向安全数据存储设备安全地写入数据 |
WO2019147360A1 (en) * | 2018-01-23 | 2019-08-01 | Diebold Nixdorf, Incorporated | Application interface and database structures to remotely manage bios settings of automated teller machines |
CN108959912A (zh) | 2018-06-29 | 2018-12-07 | 郑州云海信息技术有限公司 | 一种bios和操作系统复用密码的方法、装置及设备 |
US20220103354A1 (en) * | 2020-09-25 | 2022-03-31 | Renesas Electronics Corporation | Secure encryption key generation and management in open and secure processor environments |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03214834A (ja) * | 1990-01-19 | 1991-09-20 | Canon Inc | マルチメデイアネツトワークシステム |
US20050120245A1 (en) * | 2003-11-28 | 2005-06-02 | Matsushita Electric Industrial Co., Ltd. | Confidential information processing system and LSI |
US20060269066A1 (en) * | 2005-05-06 | 2006-11-30 | Schweitzer Engineering Laboratories, Inc. | System and method for converting serial data into secure data packets configured for wireless transmission in a power system |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0244389A (ja) * | 1988-08-04 | 1990-02-14 | Matsushita Electric Ind Co Ltd | Icカード機器 |
JPH0231290A (ja) * | 1988-07-21 | 1990-02-01 | Matsushita Electric Ind Co Ltd | Icカード装置 |
EP0656708A1 (en) * | 1993-12-03 | 1995-06-07 | International Business Machines Corporation | System and method for the transmission and validation of an updated encryption key between two users |
US5491749A (en) * | 1993-12-30 | 1996-02-13 | International Business Machines Corporation | Method and apparatus for entity authentication and key distribution secure against off-line adversarial attacks |
US5841864A (en) * | 1996-08-05 | 1998-11-24 | Motorola Inc. | Apparatus and method for authentication and session key exchange in a communication system |
ATE429748T1 (de) * | 1998-01-02 | 2009-05-15 | Cryptography Res Inc | Leckresistentes kryptographisches verfahren und vorrichtung |
DE60040612D1 (de) * | 1999-11-10 | 2008-12-04 | Unisys Corp | Dundanten und flexibelen diensten |
US6986046B1 (en) * | 2000-05-12 | 2006-01-10 | Groove Networks, Incorporated | Method and apparatus for managing secure collaborative transactions |
US7278164B2 (en) * | 2001-01-05 | 2007-10-02 | Revit Technology Corporation | Software usage/procurement management |
US6931128B2 (en) * | 2001-01-16 | 2005-08-16 | Microsoft Corporation | Methods and systems for generating encryption keys using random bit generators |
WO2002065967A1 (en) * | 2001-02-20 | 2002-08-29 | Sca Hygiene Products Ab | Diaper cover and method for manufacturing a diaper cover |
US20030037237A1 (en) * | 2001-04-09 | 2003-02-20 | Jean-Paul Abgrall | Systems and methods for computer device authentication |
US7565537B2 (en) * | 2002-06-10 | 2009-07-21 | Microsoft Corporation | Secure key exchange with mutual authentication |
US7773754B2 (en) * | 2002-07-08 | 2010-08-10 | Broadcom Corporation | Key management system and method |
US8369525B2 (en) * | 2002-10-24 | 2013-02-05 | At&T Mobility Ii Llc | Dynamic password update for wireless encryption system |
AU2003292299A1 (en) | 2002-10-30 | 2004-06-03 | Thomson Licensing S.A. | Method for renewing symmetrical keys in a digital network |
US7475241B2 (en) * | 2002-11-22 | 2009-01-06 | Cisco Technology, Inc. | Methods and apparatus for dynamic session key generation and rekeying in mobile IP |
FR2847756B1 (fr) * | 2002-11-22 | 2005-09-23 | Cegetel Groupe | Procede d'etablissement et de gestion d'un modele de confiance entre une carte a puce et un terminal radio |
JP2004186814A (ja) | 2002-11-29 | 2004-07-02 | Fujitsu Ltd | 共通鍵暗号化通信システム |
US20040117318A1 (en) * | 2002-12-16 | 2004-06-17 | Grawrock David W. | Portable token controlling trusted environment launch |
US8103004B2 (en) * | 2003-10-03 | 2012-01-24 | Sony Corporation | Method, apparatus and system for use in distributed and parallel decryption |
US7376968B2 (en) * | 2003-11-20 | 2008-05-20 | Microsoft Corporation | BIOS integrated encryption |
US7353388B1 (en) * | 2004-02-09 | 2008-04-01 | Avaya Technology Corp. | Key server for securing IP telephony registration, control, and maintenance |
JP2005227995A (ja) * | 2004-02-12 | 2005-08-25 | Sony Corp | 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム |
US7356846B2 (en) * | 2004-04-14 | 2008-04-08 | Microsoft Corporation | Unilateral session key shifting |
CN1969501B (zh) | 2004-04-30 | 2010-08-04 | 捷讯研究有限公司 | 安全地产生共享密钥的系统和方法 |
JP4403221B2 (ja) * | 2004-06-29 | 2010-01-27 | レノボ シンガポール プライヴェート リミテッド | デバイス制御装置、コンピュータ、及び、デバイス制御方法 |
US7565553B2 (en) * | 2005-01-14 | 2009-07-21 | Microsoft Corporation | Systems and methods for controlling access to data on a computer with a secure boot process |
-
2006
- 2006-09-28 US US11/536,443 patent/US8127135B2/en not_active Expired - Fee Related
-
2007
- 2007-09-27 KR KR1020097008599A patent/KR101464389B1/ko active IP Right Grant
- 2007-09-27 WO PCT/US2007/021075 patent/WO2008108819A2/en active Application Filing
- 2007-09-27 EP EP07873932.3A patent/EP2080148B1/en not_active Not-in-force
- 2007-09-27 JP JP2009530460A patent/JP5000720B2/ja not_active Expired - Fee Related
- 2007-09-27 CN CN2007800433881A patent/CN101563696B/zh not_active Expired - Fee Related
- 2007-09-27 BR BRPI0715277-9A patent/BRPI0715277B1/pt not_active IP Right Cessation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03214834A (ja) * | 1990-01-19 | 1991-09-20 | Canon Inc | マルチメデイアネツトワークシステム |
US20050120245A1 (en) * | 2003-11-28 | 2005-06-02 | Matsushita Electric Industrial Co., Ltd. | Confidential information processing system and LSI |
JP2005157930A (ja) * | 2003-11-28 | 2005-06-16 | Matsushita Electric Ind Co Ltd | 機密情報処理システムおよびlsi |
US20060269066A1 (en) * | 2005-05-06 | 2006-11-30 | Schweitzer Engineering Laboratories, Inc. | System and method for converting serial data into secure data packets configured for wireless transmission in a power system |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021060756A1 (ko) * | 2019-09-26 | 2021-04-01 | 삼성전자 주식회사 | 터치 패드를 제어하기 위한 방법 및 전자 장치 |
Also Published As
Publication number | Publication date |
---|---|
US20080082824A1 (en) | 2008-04-03 |
KR20090085585A (ko) | 2009-08-07 |
WO2008108819A2 (en) | 2008-09-12 |
WO2008108819A3 (en) | 2008-12-04 |
CN101563696A (zh) | 2009-10-21 |
CN101563696B (zh) | 2013-03-27 |
EP2080148A2 (en) | 2009-07-22 |
BRPI0715277B1 (pt) | 2018-11-13 |
JP2010505356A (ja) | 2010-02-18 |
EP2080148B1 (en) | 2017-08-23 |
BRPI0715277A2 (pt) | 2013-06-11 |
US8127135B2 (en) | 2012-02-28 |
JP5000720B2 (ja) | 2012-08-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101464389B1 (ko) | 공유 암호화 키를 변경하는 시스템 및 방법 | |
US8352740B2 (en) | Secure execution environment on external device | |
US6993648B2 (en) | Proving BIOS trust in a TCPA compliant system | |
US20170222815A1 (en) | Control mechanisms for data processing devices | |
JP4603167B2 (ja) | コンピューティング装置のモジュール間通信 | |
US7743413B2 (en) | Client apparatus, server apparatus and authority control method | |
JP5543949B2 (ja) | 制御装置およびモニタプログラム | |
Galvin et al. | Security protocols for version 2 of the simple network management protocol (SNMPv2) | |
JP2013516676A (ja) | データ保護装置 | |
JP2008527565A (ja) | 十分に正当な/最新のコードであることを確実にして行使する最後の防衛線 | |
US20180139205A1 (en) | System and method for transparent multi-factor authentication and security posture checking | |
CN106790045B (zh) | 一种基于云环境分布式虚拟机代理装置及数据完整性保障方法 | |
JP2008072613A (ja) | 管理システム,管理装置および管理方法 | |
KR20150135032A (ko) | Puf를 이용한 비밀키 업데이트 시스템 및 방법 | |
KR20190048587A (ko) | 사물인터넷 장치의 원격 보안 방법 및 이를 위한 장치 | |
CN116484379A (zh) | 系统启动方法、包含可信计算基软件的系统、设备及介质 | |
CN110830507A (zh) | 资源访问方法、装置、电子设备及系统 | |
US20210111870A1 (en) | Authorizing and validating removable storage for use with critical infrastrcture computing systems | |
Herbold et al. | Secure software updates: Challenges and solutions for embedded iot systems | |
Ferreira et al. | Software-based security approach for networked embedded devices | |
CN116668196B (zh) | 登录认证方法、装置、设备及存储介质 | |
Curmi et al. | Runtime verification for trustworthy secure shell deployment | |
Shanmugam | Securing inter-processor communication in automotive ECUs | |
CN115951843A (zh) | 面向电商平台的信息数据迁移与安全保护系统及方法 | |
CN112631735A (zh) | 一种虚拟机授权管理方法、装置,电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20181112 Year of fee payment: 5 |