KR20090085585A - 공유 암호화 키를 변경하는 시스템 및 방법 - Google Patents

공유 암호화 키를 변경하는 시스템 및 방법 Download PDF

Info

Publication number
KR20090085585A
KR20090085585A KR1020097008599A KR20097008599A KR20090085585A KR 20090085585 A KR20090085585 A KR 20090085585A KR 1020097008599 A KR1020097008599 A KR 1020097008599A KR 20097008599 A KR20097008599 A KR 20097008599A KR 20090085585 A KR20090085585 A KR 20090085585A
Authority
KR
South Korea
Prior art keywords
operating environment
encryption key
bios
hmac
key
Prior art date
Application number
KR1020097008599A
Other languages
English (en)
Other versions
KR101464389B1 (ko
Inventor
웨얼 모하마드 이브라힘
란 왕
제니퍼 리오스
발리우딘 와이 알리
마누엘 노보아
Original Assignee
휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. filed Critical 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피.
Publication of KR20090085585A publication Critical patent/KR20090085585A/ko
Application granted granted Critical
Publication of KR101464389B1 publication Critical patent/KR101464389B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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/72Protecting 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

시스템(50)은 제 1 운영 환경(56) 및 제 2 운영 환경(62)을 포함한다. 제 1 및 제 2 운영 환경은 공유된 암호화 키(K3)를 이용해서 암호화된 형태의 정보를 교환한다. 제 1 및 제 2 운영 환경은 다른 공유 암호화 키(K4)를 이용해서 상기 암호화 키(K3)를 변경하도록 함께 동작한다. 암호화 키(K4)는, 암호화 키(K3)가 변경될 때 변경된다.

Description

공유 암호화 키를 변경하는 시스템 및 방법{SYSTEM AND METHOD FOR CHANGING A SHARED ENCRYPTION KEY}
많은 컴퓨팅 시스템은 운영 체제(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)

  1. 제 1 운영 환경(56)과,
    제 2 운영 환경(62)
    을 포함하고,
    상기 제 1 및 제 2 운영 환경은 공유된 암호화 키(K3)를 이용해서 암호화된 형태로 정보를 교환하고,
    상기 제 1 및 제 2 운영 환경은 다른 공유된 암호화 키(K4)를 이용해서 상기 암호화 키(K3)를 변경하도록 함께 동작하며, 상기 암호화 키(K4)는 상기 암호화 키(K3)가 변경될 때 변경되는
    시스템(50).
  2. 제 1 항에 있어서,
    상기 암호화 키(K4)는 상기 암호화 키(K3)를 변경하는 동안에만 사용되는 시스템.
  3. 제 1 항에 있어서,
    상기 암호화 키(K4)는, 상기 제 1 및 제 2 운영 환경 중 하나가 상기 제 1 및 제 2 운영 환경 중 다른 하나에 의한 통신이 상기 암호화 키(K3)의 새로운 값을 생성하는 것과 관련되었다는 것을 확인하는데 사용되는 시스템.
  4. 제 1 항에 있어서,
    상기 제 1 및 제 2 운영 환경 중 하나는 상기 제 1 및 제 2 운영 환경 중 다른 하나에 HMAC 값을 제공하고,
    상기 HMAC 값은 상기 암호화 키(K4)에 기초하는
    시스템.
  5. 제 1 항에 있어서,
    상기 제 1 운영 환경은 상기 제 2 운영 환경으로부터 랜덤수를 수신하고, 상기 랜덤수 및 상기 공유된 암호화 키(K4)를 이용해서 HMAC(Hash function-based Message Authentication Code) 동작을 수행하는 시스템.
  6. 제 1 운영 환경이, 자신과 제 2 운영 환경 사이에 공유되는 암호화 키(K3)의 새로운 값을 생성할 것을, 상기 제 2 운영 환경에게 요청하는 단계(82)와,
    상기 제 2 운영 환경이, 다른 공유된 암호화 키(K4)를 이용해서 상기 제 1 운영 환경의 요청을 확인하는 단계와,
    상기 제 2 운영 환경이, 상기 K3의 새로운 값 및 상기 K4의 새로운 값을 생성하는 단계와,
    상기 제 2 운영 환경이, 상기 새로운 K3 및 K4 값을 상기 제 1 운영 환경에 제공하는 단계와,
    상기 제 1 운영 환경이, 상기 K3 및 K4의 새로운 값을 이용해서 K3 및 K4의 기존의 값을 대체하는 단계
    를 포함하는 방법.
  7. 제 6 항에 있어서,
    상기 제 2 운영 환경이, 상기 K3 및 K4의 새로운 값을 이용해서 K3 및 K4의 원래의 값을 대체하는 단계를 더 포함하는 방법.
  8. 제 6 항에 있어서,
    상기 제 1 운영 환경이, 상기 K4를 이용해서 상기 제 2 운영 환경이 제공한 상기 새로운 K3 값을 확인하는 단계(130)를 더 포함하는 방법.
  9. 제 6 항에 있어서,
    상기 제 2 운영 환경이, 상기 K4를 이용해서 상기 제 1 운영 환경의 요청을 확인하는 상기 단계는, 상기 제 2 운영 환경이 HMAC를 계산하는 단계를 포함하는 방법.
  10. 제 6 항에 있어서,
    상기 제 2 운영 환경이 HMAC를 계산하는 상기 단계는, 상기 제 2 운영 환경이 상기 K4에 기초해서 상기 HMAC를 계산하는 단계(120)를 포함하는 방법.
KR1020097008599A 2006-09-28 2007-09-27 공유 암호화 키를 변경하는 시스템 및 방법 KR101464389B1 (ko)

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 true KR20090085585A (ko) 2009-08-07
KR101464389B1 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)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
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
US8341428B2 (en) * 2007-06-25 2012-12-25 International Business Machines Corporation System and method to protect computing systems
US20080320423A1 (en) * 2007-06-25 2008-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 惠普发展公司,有限责任合伙企业 在运行时间期间向安全数据存储设备安全地写入数据
US11520599B2 (en) * 2018-01-23 2022-12-06 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和操作系统复用密码的方法、装置及设备
KR20210036732A (ko) * 2019-09-26 2021-04-05 삼성전자주식회사 터치 패드를 제어하기 위한 방법 및 전자 장치
US20220103354A1 (en) * 2020-09-25 2022-03-31 Renesas Electronics Corporation Secure encryption key generation and management in open and secure processor environments

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0231290A (ja) * 1988-07-21 1990-02-01 Matsushita Electric Ind Co Ltd Icカード装置
JPH0244389A (ja) * 1988-08-04 1990-02-14 Matsushita Electric Ind Co Ltd Icカード機器
JPH03214834A (ja) 1990-01-19 1991-09-20 Canon Inc マルチメデイアネツトワークシステム
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
DE69834431T3 (de) * 1998-01-02 2009-09-10 Cryptography Research Inc., San Francisco Leckresistentes kryptographisches verfahren und vorrichtung
WO2001035194A2 (en) * 1999-11-10 2001-05-17 Unisys Corporation Method and apparatus for providing redundant and resilient cryptographic services
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
EP1557025B1 (fr) 2002-10-30 2006-05-03 Thomson Licensing Procede simplifie de renouvellement de cles symetriques dans un reseau numerique
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
JP2005157930A (ja) 2003-11-28 2005-06-16 Matsushita Electric Ind Co Ltd 機密情報処理システムおよびlsi
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
CA2564909C (en) 2004-04-30 2011-06-28 Research In Motion Limited Systems and methods to securely generate shared keys
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
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

Also Published As

Publication number Publication date
JP2010505356A (ja) 2010-02-18
KR101464389B1 (ko) 2014-11-21
EP2080148A2 (en) 2009-07-22
BRPI0715277A2 (pt) 2013-06-11
BRPI0715277B1 (pt) 2018-11-13
CN101563696B (zh) 2013-03-27
US8127135B2 (en) 2012-02-28
US20080082824A1 (en) 2008-04-03
JP5000720B2 (ja) 2012-08-15
WO2008108819A3 (en) 2008-12-04
EP2080148B1 (en) 2017-08-23
WO2008108819A2 (en) 2008-09-12
CN101563696A (zh) 2009-10-21

Similar Documents

Publication Publication Date Title
KR20090085585A (ko) 공유 암호화 키를 변경하는 시스템 및 방법
CN110799941B (zh) 防盗和防篡改的数据保护
US6993648B2 (en) Proving BIOS trust in a TCPA compliant system
CN109313690B (zh) 自包含的加密引导策略验证
US20200153808A1 (en) Method and System for an Efficient Shared-Derived Secret Provisioning Mechanism
US8874922B2 (en) Systems and methods for multi-layered authentication/verification of trusted platform updates
JP7454564B2 (ja) 鍵管理のための方法、ユーザ・デバイス、管理デバイス、記憶媒体及びコンピュータ・プログラム製品
US20110040960A1 (en) Method and System for Securely Updating Field Upgradeable Units
CN103946858A (zh) 应用数据的解密和加密
CN101939754A (zh) 使用混合匹配的手指感测设备及相关方法
CN111367834A (zh) 自加密驱动器(sed)
US10970421B2 (en) Virus immune computer system and method
CN101971182A (zh) 颁发证书的手指感测设备及相关方法
US20210382985A1 (en) Virus immune computer system and method
Eichelberg et al. Cybersecurity protection for PACS and medical imaging: deployment considerations and practical problems
US20200242235A1 (en) Virus immune computer system and method
US10592697B1 (en) Virus immune computer system and method
KR101885146B1 (ko) 애플리케이션 보호 장치 및 방법
US20240080206A1 (en) Automatic Root Key and Certificate Update During Firmware Update Procedure
WO2023145240A1 (ja) 情報処理装置および情報処理システム
de Carvalho et al. How to improve monitoring and auditing security properties in cloud storage?
Parisien Security by Design
CN116319082A (zh) 基于区块链的配置数据的处理方法、系统、设备和介质
CN113094060A (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