KR20160096391A - 플랫폼 무결성 검증 기반 단말기 보안 장치 및 방법 - Google Patents

플랫폼 무결성 검증 기반 단말기 보안 장치 및 방법 Download PDF

Info

Publication number
KR20160096391A
KR20160096391A KR1020150017965A KR20150017965A KR20160096391A KR 20160096391 A KR20160096391 A KR 20160096391A KR 1020150017965 A KR1020150017965 A KR 1020150017965A KR 20150017965 A KR20150017965 A KR 20150017965A KR 20160096391 A KR20160096391 A KR 20160096391A
Authority
KR
South Korea
Prior art keywords
security
unit
terminal
booting
code
Prior art date
Application number
KR1020150017965A
Other languages
English (en)
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 한국전자통신연구원
Priority to KR1020150017965A priority Critical patent/KR20160096391A/ko
Publication of KR20160096391A publication Critical patent/KR20160096391A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying 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)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 플랫폼 무결성 검증 기반 단말기 보안 장치 및 방법에 관한 것으로서, 본 발명에 따른 플랫폼 무결성 검증 기반 단말기 보안 장치는 단말기의 부팅을 위한 동작을 수행하고 보안부를 실행시키는 부팅부; 및 상기 부팅부에 의해 실행되어 상기 부팅부의 현재 해시 값들을 측정하고, 현재 측정된 상기 부팅부의 해시 값들과 상기 단말기의 무결점 상태에서 기측정하여 메모리에 기저장한 상기 부팅부의 해시 값들을 비교하며, 비교결과에 따라 상기 단말기의 무결점 상태 훼손 여부를 판단하여 상기 단말기의 보안 서비스 제공을 위한 동작의 정지 여부를 결정하는 보안부를 포함한다.

Description

플랫폼 무결성 검증 기반 단말기 보안 장치 및 방법{Apparatus and Method for Security of Portable Terminal Based on Platform Integrity Verification}
본 발명은 플랫폼 무결성 검증 기반 단말기 보안 장치 및 방법에 관한 것으로서, 보다 구체적으로는 부팅단계에서 단말기 플랫폼의 무결성 훼손이 확인되면 부팅은 완료하되, 단말기 보안을 위해 모바일 신뢰 모듈은 비활성화시킬 수 있는 장치 및 방법에 관한 것이다.
모바일 신뢰 모듈(Mobile Trusted Module, MTM)은 하드웨어 보안 모듈(Hardware Security Module, HSM)의 일종으로서, 암복호화 키 관리 및, 뱅킹, 지불 등의 보안 서비스를 제공한다.
이러한 모바일 신뢰 모듈은 탑재된 보안 메커니즘을 통해 사용자의 중요 정보를 처리한다.
모바일 신뢰 모듈에 의해 단말기 사용자의 중요 정보가 처리되기에 앞서 플랫폼이 위변조되었는지 여부가 최우선적으로 확인되어야하며, 이를 플랫폼 무결성 검증이라 한다.
플랫폼 무결성 검증을 통해 플랫폼의 무결성 훼손이 발견되면, 모바일 신뢰 모듈에 의해 어떠한 보안 메커니즘이 적용되어 단말기 사용자의 중요 정보가 처리되더라도 중요 정보에 대한 보안성은 보장될 수가 없다.
따라서, 플랫폼 무결성 검증을 통해 플랫폼의 무결성 훼손이 발견되면, 모바일 신뢰 모듈은 비활성화되어야 한다.
그러나, 단말기의 부팅단계에서 플랫폼의 무결성 훼손이 발견된 경우 모바일 신뢰 모듈의 비활성화를 위해 부팅이 중단되면, 모바일 신뢰 모듈에 의해 암호화된 데이터를 백업하는 등의 보안 서비스를 사용자에게 제공할 수가 없고, 훼손된 플랫폼의 복구를 위한 작업 등의 보안 서비스도 제공할 수 없다는 문제점이 있다.
본 발명은 상기와 같은 문제점을 해결하기 위한 것으로서, 단말기의 부팅단계에서 플랫폼 무결성 검증을 통해 플랫폼의 무결성 훼손이 발견되면, 부팅을 완료시키면서 모바일 신뢰 모듈을 비활성화시킬 수 있는 플랫폼 무결성 검증 기반 단말기 보안 장치 및 방법을 제공하는 데 그 목적이 있다.
전술한 목적을 달성하기 위하여, 본 발명의 일면에 따른 플랫폼 무결성 검증 기반 단말기 보안 장치는 단말기의 부팅을 위한 동작을 수행하고 보안부를 실행시키는 부팅부; 및 상기 부팅부에 의해 실행되어 상기 부팅부의 현재 해시 값들을 측정하고, 현재 측정된 상기 부팅부의 해시 값들과 상기 단말기의 무결점 상태에서 기측정하여 메모리에 기저장한 상기 부팅부의 해시 값들을 비교하며, 비교결과에 따라 상기 단말기의 무결점 상태 훼손 여부를 판단하여 상기 단말기의 보안 서비스 제공을 위한 동작의 정지 여부를 결정하는 보안부를 포함한다.
본 발명에 따르면, 플랫폼 무결성 검증을 통해 플랫폼의 무결성 훼손이 발견되면 모바일 신뢰 모듈을 비활성화시킴으로써, 모바일 신뢰 모듈에 의해 암호화된 정보를 보호하고, 모바일 신뢰 모듈을 통한 중요 서비스들의 악용을 방지할 수 있는 효과가 있다.
특히 단말기의 부팅단계에서 플랫폼의 무결성 훼손이 발견되면 부팅은 완료시키면서 모바일 신뢰 모듈은 비활성화시킬 수 있어서, 모바일 신뢰 모듈에 의해 암호화된 정보를 백업할 수 있도록 하는 보안 서비스를 사용자에게 제공할 수 있고, 훼손된 플랫폼을 복구할 수 있도록 하는 보안 서비스도 제공할 수 있는 이점이 있다.
또한, 단말기의 부팅단계에서 플랫폼의 무결성 훼손이 발견되더라도 부팅을 완료시킴으로써, 모바일 신뢰 모듈의 사용을 원치 않는 커스텀 운영체제(Custom OS) 사용자들에게도 정상적인 단말기 사용 환경을 제공할 수 있는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 플랫폼 무결성 검증 기반 단말기 보안 장치를 나타낸 블럭도.
도 2는 도 1은 본 발명의 일 실시예에 따른 플랫폼 무결성 검증 기반 단말기 보안 방법을 나타낸 흐름도.
본 발명의 전술한 목적 및 그 이외의 목적과 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다.
그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 이하의 실시예들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 목적, 구성 및 효과를 용이하게
알려주기 위해 제공되는 것일 뿐으로서, 본 발명의 권리범위는 청구항의 기재에 의해 정의된다.
한편, 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성소자, 단계, 동작 및/또는 소자가 하나 이상의 다른 구성소자, 단계, 동작 및/또는 소자의 존재 또는 추가됨을 배제하지 않는다.
이하, 도 1을 참조하여 본 발명의 일 실시예에 따른 플랫폼 무결성 검증 기반 단말기 보안 장치를 설명한다. 도 1은 본 발명의 일 실시예에 따른 플랫폼 무결성 검증 기반 단말기 보안 장치를 나타낸 블럭도이다.
도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 플랫폼 무결성 검증 기반 단말기 보안 장치는 제어부(110), 부팅부(120), 보안부(130) 및 저장부(140)를 포함한다.
제어부(110)는 단말기(100)에 전원이 인가되면, 단말기(100)의 부팅을 위해 부팅부(120)를 제어한다.
부팅부(120)는 제어부(110)의 제어에 따라 실행되어 단말기(100)의 부팅을 위한 동작을 수행하면서 보안부(130)를 실행시킨다.
한편, 단말기(100)의 최초 부팅일 경우, 저장부(140)에 저장된 해시 검증 비트 값은 0x00, 보안 침투 비트 값은 0x00이다.
보안부(130)는 부팅부(120)에 의해 실행되어 부팅부(120)의 해시 값을 측정한다.
예컨대, 보안부(130)는 부팅부(120)에 의해 실행되면, 먼저 저장부(140)의 해시 검증 비트 값을 확인한다. 확인결과, 해시 검증 비트 값이 0x00이면, 보안부(130)는 부팅부(120)의 해시 값들을 측정한다. 보안부(130)는 측정된 해시 값들을 저장부(140)의 무결점 해시 테이블에 저장한다.
보안부(130)는 부팅부(120)의 해시 값들에 대한 저장이 완료되면, 저장부(140)의 해시 검증 비트 값을 0x01로 설정한다.
이때, 단말기(100)은 리셋되고, 부팅부(120)는 제어부(110)의 제어에 따라 단말기(100)의 재부팅을 위한 동작을 수행하면서 보안부(130)를 실행시킨다.
보안부(130)는 부팅부(120)에 의해 실행되어 저장부(140)의 해시 검증 비트 값을 확인한다. 확인결과, 저장부(140)의 해시 검증 비트 값이 0x01이면, 보안부(130)는 부팅부(120)의 해시 값들을 검증하기 위해 먼저 부팅부(120)의 현재 해시 값들을 측정하고, 현재 측정된 해시 값들과 저장부(140)의 해시 테이블에 저장된 해시 값들을 비교한다. 비교결과, 적어도 하나의 해시 값이 일치하지 않으면, 보안부(130)는 저장부(140)의 보안 침투 비트 값을 0x01로 설정한다.
보안부(130)는 저장부(140)의 보안 침투 비트 값이 0x01일 경우, 단말기(100)의 부팅이 완료되더라도 동작을 정지한다. 또한, 저장부(140)의 보안 침투 비트 값이 0x01로 설정되면, 단말기(100)은 자체적으로 저장부(1400의 보안 침투 비트 값을 0x00으로 설정할 수 없다.
따라서, 전술한 바와 같이, 본 발명에 따르면, 플랫폼 무결성 검증을 통해 플랫폼의 무결성 훼손이 발견되면 모바일 신뢰 모듈을 비활성화시킴으로써, 모바일 신뢰 모듈에 의해 암호화된 정보를 보호하고, 모바일 신뢰 모듈을 통한 중요 서비스들의 악용을 방지할 수 있는 효과가 있다. 특히 단말기의 부팅단계에서 플랫폼의 무결성 훼손이 발견되면 부팅은 완료시키면서 모바일 신뢰 모듈은 비활성화시킬 수 있어서, 모바일 신뢰 모듈에 의해 암호화된 정보를 백업할 수 있도록 하는 보안 서비스를 사용자에게 제공할 수 있고, 훼손된 플랫폼을 복구할 수 있도록 하는 보안 서비스도 제공할 수 있는 이점이 있다. 또한, 단말기의 부팅단계에서 플랫폼의 무결성 훼손이 발견되더라도 부팅을 완료시킴으로써, 모바일 신뢰 모듈의 사용을 원치 않는 커스텀 운영체제(Custom OS) 사용자들에게도 정상적인 단말기 사용 환경을 제공할 수 있는 효과가 있다.
이하, 본 발명의 일 실시예에 따른 플랫폼 무결성 검증 기반 단말기 보안 장치의 각 구성요소의 동작에 대해 좀 더 구체적으로 설명한다.
제어부(110)는 AP(Application Processor) 혹은 UEFI BIOS(Unified Extensible Firmware Interface Basic Input Output System) 등일 수 있다.
제어부(110)는 단말기(100)에 전원이 인가되면, 단말기(100)의 부팅을 위해 기제공된 공개키를 이용하여 비밀키로 기서명된 부팅부(120)를 복호화한다.
여기서 공개키 및 비밀키는 칩 벤더에 의해 RSA 알고리즘을 통해 기생성되며, 기생성된 공개키는 제어부(110)에 기제공되고, 기생성된 비밀키는 부팅부(120)의 제1 부팅코드(121)에 기서명된다.
부팅부(120)는 제1 부팅코드(121), 제2 부팅코드(122), 커스텀 부팅코드(123) 및 커널이미지(124)를 포함한다.
따라서, 제어부(110)는 단말기(100)의 부팅을 위해 기제공된 공개키를 이용하여 비밀키로 기서명된 제1 부팅코드(121)를 복호화한다.
제어부(110)는 기제공된 공개키를 이용하여 비밀키로 기서명된 제1 부팅코드(121)를 복호화하는데 실패하면, 제1 부팅코드(121)가 훼손된 것으로 판단하고 화면 등을 통해 제1 부팅코드(121)의 복호화 실패(훼손) 메시지를 출력한다.
그러나, 제어부(110)는 기제공된 공개키를 이용하여 비밀키로 기서명된 제1 부팅코드(121)를 복호화하는데 성공하면, 제1 부팅코드(121)가 훼손되지 않은 것으로 판단하고 단말기(100)의 부팅을 위해 부팅부(120)를 제어한다.
한편, 보안부(130)는 하드웨어 보안 모듈(Hardware Security Module, HSM)의 일종으로서 모바일 신뢰 모듈(Mobile Trusted Module, MTM) 등일 수 있고, 암복호화 키 관리 및, 뱅킹, 지불 등의 보안 서비스를 제공한다.
보안부(130)는 제1 보안코드(131) 및 제2 보안코드(132)를 포함한다.
제1 부팅코드(121)는 제어부(110)의 제어에 따라 실행되어 단말기(100)의 부팅을 위한 동작을 수행하면서, 자신에게 대응되는 제1 보안코드(131)를 실행시킨다.
또한 제2 부팅코드(122)는 제어부(110)의 제어에 따라 실행되어 단말기(100)의 부팅을 위한 제1 부팅코드(121)의 동작에 대한 다음 동작을 수행하고, 자신에게 대응되는 제1 보안코드(131)를 실행시킨다.
커스텀 부팅코드(123)는 제어부(110)의 제어에 따라 실행되어 단말기(100)의 부팅을 위한 제2 부팅코드(122)의 동작에 대한 다음 동작을 수행하고, 자신에게 대응되는 제1 보안코드(131)를 실행시킨다.
또한 커널이미지(124)는 제어부(110)의 제어에 따라 실행되어 단말기(100)의 부팅을 위한 커스텀 부팅코드(123)의 동작에 대한 다음 동작을 수행하고, 자신에게 대응되는 제2 보안코드(132)를 실행시킨다.
한편, 사용자에 의해 구입된 단말기(100)의 전원스위치 조작에 따른 최초 부팅인 경우, 저장부(140)에 저장된 해시 검증 비트(Take-off Bit, 이하 "TOB"라 함) 값 및 보안 침투 비트(Violation Bit, 이하 "VB"라 함) 값은 각각 0x00이다.
보안부(130)는 부팅부(120)에 의해 실행되어 저장부(140)의 TOB 값을 확인한다. 확인결과, 저장부(140)의 TOB 값이 0x00이면, 보안부(130)는 부팅부(120)의 해시 값들을 측정하여 저장부(1400에 저장한다.
예컨대, 제1 보안코드(131)는 제1 부팅코드(121)에 의해 실행되어 제1 부팅코드(121)의 해시 값을 측정한다. 또한, 제1 보안코드(131)는 제2 부팅코드(122)에 의해 실행되어 제2 부팅코드(122)의 해시 값을 측정한다. 제1 보안코드(131)는 커스텀 부팅코드(123)에 의해 실행되어 커스텀 부팅코드(123)의 해시 값을 측정한다.
또한, 제2 보안코드(132)는 커널이미지(124)에 의해 실행되어 단말기(100) 운영체제(Operating System)의 기설정된 중요 시스템 라이브러리 파일들에 대한 인덱스 정보 및 인덱스 정보에 대응되는 해시 값들을 측정한다.
제1 보안코드(131)는 측정된 제1 부팅코드(121)의 해시 값, 제2 부팅코드(122)의 해시 값 및 커스텀 부팅코드(123)의 해시 값을 저장부(140)의 제1 무결점 해시 테이블에 저장한다.
제1 보안코드(131)는 측정된 제1 부팅코드(121)의 해시 값, 제2 부팅코드(122)의 해시 값 및 커스텀 부팅코드(123)의 해시 값을 각각 순차적으로 하나씩 제1 무결점 해시 테이블에 저장할 때마다 저장부(140)의 IC(Integrity Counter) 값을 0에서부터 하나씩 증가시킨다.
제1 보안코드(131)는 제1 무결점 해시 테이블에 측정된 각 해시 값의 저장을 완료하면, 제1 무결점 해시 테이블에 각 해시 값을 순차적으로 하나씩 저장함에 따라 카운팅한 값인 IC 값을 저장부(140)의 IN1(Integrity Number 1)에 저장하고, IC 값을 초기화한다.
또한, 제2 보안코드(132)는 측정된 운영체제의 기설정된 중요 시스템 라이브러리 파일들에 대한 인덱스 정보 및 인덱스 정보에 대응되는 해시 값들을 저장부(140)의 제2 무결점 해시 테이블에 저장한다.
제2 보안코드(132)는 측정된 운영체제의 기설정된 중요 시스템 라이브러리 파일들에 대한 인덱스 정보 및 인덱스 정보에 대응되는 해시 값들을 각각 순차적으로 하나씩 제2 무결점 해시 테이블에 저장할 때마다 저장부(140)의 IC 값을 0에서부터 하나씩 증가시킨다.
제2 보안코드(132)는 제2 무결점 해시 테이블에 측정된 인덱스 정보 및 인덱스 정보에 대응되는 해시 값들의 저장을 완료하면, 저장부(140)의 TOB 값을 0x01로 설정하고, 제2 무결점 해시 테이블에 각 인덱스 정보 및 인덱스 정보에 대응되는 해시 값을 순차적으로 하나씩 저장함에 따라 카운팅한 값인 IC 값을 저장부(140)의 IN2(Integrity Number 2)에 저장하고, IC 값을 초기화한다.
보안부(130)에 의한 해시 값들의 저장이 완료되면, 단말기(100)은 리셋되고, 부팅부(120)는 제어부(110)의 제어에 따라 단말기(100)의 재부팅을 위한 동작을 수행하면서 보안부(130)를 실행시킨다.
보안부(130)는 부팅부(120)에 의해 실행되어 저장부(140)의 TOB 값을 확인한다. 확인결과, 저장부(140)의 TOB 값이 0x01이면, 보안부(130)는 부팅부(120)의 해시 값들을 검증한다.
예컨대, 제1 보안코드(131)는 제1 부팅코드(121)에 의해 실행되어 제1 부팅코드(121)의 현재 해시 값을 측정한다. 또한, 제1 보안코드(131)는 제2 부팅코드(122)에 의해 실행되어 제2 부팅코드(122)의 현재 해시 값을 측정한다. 제1 보안코드(131)는 커스텀 부팅코드(123)에 의해 실행되어 커스텀 부팅코드(123)의 현재 해시 값을 측정한다.
또한, 제2 보안코드(132)는 커널이미지(124)에 의해 실행되어 단말기(100) 운영체제의 기설정된 중요 시스템 라이브러리 파일들에 대한 인덱스 정보 및 인덱스 정보에 대응되는 현재 해시 값들을 측정한다.
제1 보안코드(131)는 현재 측정된 제1 부팅코드(121)의 해시 값, 제2 부팅코드(122)의 해시 값 및 커스텀 부팅코드(123)의 해시 값과, 저장부(140)의 제1 무결점 해시 테이블에 저장된 제1 부팅코드(121)의 해시 값, 제2 부팅코드(122)의 해시 값 및 커스텀 부팅코드(123)의 해시 값을 비교한다. 비교결과, 적어도 하나의 해시 값이 불일치하면, 제1 보안코드(131)는 저장부(140)의 VOB 값을 0x01로 설정한다.
또한, 제2 보안코드(132)는 현재 측정된 단말기(100) 운영체제의 기설정된 중요 시스템 라이브러리 파일들에 대한 인덱스 정보 및 인덱스 정보에 대응되는 해시 값들과, 저장부(140)의 제2 무결점 해시 테이블에 저장된 단말기(100) 운영체제의 기설정된 중요 시스템 라이브러리 파일들에 대한 인덱스 정보 및 인덱스 정보에 대응되는 해시 값들을 비교한다. 비교결과, 비교결과, 적어도 하나의 해시 값이 불일치하면, 제2 보안코드(132)는 저장부(140)의 VOB 값을 0x01로 설정한다.
저장부(140)의 VOB 값이 0x01이므로, 단말기(100)의 재부팅이 완료되더라도 보안부(130)는 동작하지 않는다. 저장부(140)의 VOB 값이 0x01로 설정되면, 단말기(100)은 저장부(140)의 VOB 값을 0x00으로의 설정을 자체적으로 할 수 없고, 외부적으로 별도의 조치를 통해서만 할 수 있다.
한편, 저장부(140)의 제2 무결점 해시 테이블의 인덱스 항목은 단말기(100)의 무결한 부팅이 완료되면, 정상적인 절차를 통해 기설정된 시스템 중요 라이브러리 파일의 변경될 경우 해시 값 업데이트를 위해 사용된다. 저장부(140)의 TOB는 단말기(100)가 초기화되는 등의 정상적인 절차를 통해서만 0x00으로 변경될 수 있다. 저장부(140)의 제1 무결점 해시 테이블에 저장된 제2 부팅코드(122), 커스텀 부팅코드(123) 및 커널이미지(124)의 해시 값은 단말기(100)의 무결한 부팅이 완료되면, 정상적인 절차를 통해서 업데이트될 수 있다.
이하, 도 2를 참조하여 본 발명의 일 실시예에 따른 플랫폼 무결성 검증 기반 단말기 보안 방법을 설명한다. 도 2는 본 발명의 일 실시예에 따른 플랫폼 무결성 검증 기반 단말기 보안 방법을 나타낸 흐름도이다.
도 2에 도시된 바와 같이, 본 발명의 일 실시예에 따른 플랫폼 무결성 검증 기반 단말기 보안 방법은 단말기에 전원이 인가되면, 부팅부에 의해 단말기가 부팅되도록 하고, 보안부가 실행되도록 한다(S200).
한편, 부팅부는 제1 부팅코드, 제2 부팅코드, 커스텀 부팅코드 및 커널이미지를 포함한다.
예컨대, 단말기의 부팅을 위해 기제공된 공개키를 이용하여 비밀키로 기서명된 제1 부팅코드를 복호화한다. 기제공된 공개키를 이용하여 비밀키로 기서명된 제1 부팅코드를 복호화하는데 실패하면, 제1 부팅코드가 훼손된 것으로 판단하고 화면 등을 통해 사용자에게 제1 부팅코드의 복호화 실패(훼손)를 알린다. 그러나, 기제공된 공개키를 이용하여 비밀키로 기서명된 제1 부팅코드를 복호화하는데 성공하면, 제1 부팅코드가 훼손되지 않은 것으로 판단하고 단말기의 부팅을 위해 부팅부를 제어한다.
한편, 보안부는 제1 보안코드 및 제2 보안코드를 포함한다.
제어에 따라 제1 부팅코드는 실행되어 단말기의 부팅을 위한 동작을 수행하면서, 자신에게 대응되는 제1 보안코드를 실행시킨다. 제2 부팅코드는 실행되어 단말기의 부팅을 위한 제1 부팅코드의 동작에 대한 다음 동작을 수행하고, 자신에게 대응되는 제1 보안코드를 실행시킨다. 커스텀 부팅코드는 실행되어 단말기의 부팅을 위한 제2 부팅코드의 동작에 대한 다음 동작을 수행하고, 자신에게 대응되는 제1 보안코드를 실행시킨다. 커널이미지는 실행되어 단말기의 부팅을 위한 커스텀 부팅코드의 동작에 대한 다음 동작을 수행하고, 자신에게 대응되는 제2 보안코드를 실행시킨다.
한편, 단말기의 최초 부팅인 경우, 저장부에 저장된 해시 검증 비트(Take-off Bit, 이하 "TOB"라 함) 값 및 보안 침투 비트(Violation Bit, 이하 "VB"라 함) 값은 각각 0x00이다.
부팅부에 의해 실행된 보안부는 저장부에 저장된 TOB 값을 확인한다(S201).
확인결과, 저장부에 저장된 TOB 값이 0x00이면, 부팅부의 해시 값을 측정하고 저장한다(S201).
예컨대, 제1 보안코드는 제1 부팅코드에 의해 실행되어 제1 부팅코드의 해시 값을 측정한다. 또한, 제1 보안코드 제2 부팅코드에 의해 실행되어 제2 부팅코드의 해시 값을 측정한다. 제1 보안코드는 커스텀 부팅코드에 의해 실행되어 커스텀 부팅코드의 해시 값을 측정한다. 또한, 제2 보안코드는 커널이미지에 의해 실행되어 단말기 운영체제(Operating System)의 기설정된 중요 시스템 라이브러리 파일들에 대한 인덱스 정보 및 인덱스 정보에 대응되는 해시 값들을 측정한다.
제1 보안코드는 측정된 제1 부팅코드의 해시 값, 제2 부팅코드의 해시 값 및 커스텀 부팅코드의 해시 값을 저장부의 제1 무결점 해시 테이블에 저장한다.
제1 보안코드는 측정된 제1 부팅코드의 해시 값, 제2 부팅코드의 해시 값 및 커스텀 부팅코드의 해시 값을 각각 순차적으로 하나씩 제1 무결점 해시 테이블에 저장할 때마다 저장부의 IC(Integrity Counter) 값을 0에서부터 하나씩 증가시킨다.
제1 보안코드는 제1 무결점 해시 테이블에 측정된 각 해시 값의 저장을 완료하면, 제1 무결점 해시 테이블에 각 해시 값을 순차적으로 하나씩 저장함에 따라 카운팅한 값인 IC 값을 저장부의 IN1(Integrity Number 1)에 저장하고, IC 값을 초기화한다.
또한, 제2 보안코드는 측정된 운영체제의 기설정된 중요 시스템 라이브러리 파일들에 대한 인덱스 정보 및 인덱스 정보에 대응되는 해시 값들을 저장부의 제2 무결점 해시 테이블에 저장한다.
제2 보안코드는 측정된 운영체제의 기설정된 중요 시스템 라이브러리 파일들에 대한 인덱스 정보 및 인덱스 정보에 대응되는 해시 값들을 각각 순차적으로 하나씩 제2 무결점 해시 테이블에 저장할 때마다 저장부의 IC 값을 0에서부터 하나씩 증가시킨다.
제2 보안코드는 제2 무결점 해시 테이블에 측정된 인덱스 정보 및 인덱스 정보에 대응되는 해시 값들의 저장을 완료하면, 저장부의 TOB 값을 0x01로 설정하고, 제2 무결점 해시 테이블에 각 인덱스 정보 및 인덱스 정보에 대응되는 해시 값을 순차적으로 하나씩 저장함에 따라 카운팅한 값인 IC 값을 저장부의 IN2(Integrity Number 2)에 저장하고, IC 값을 초기화한다.
보안부가 해시 값들의 저장을 완료하면 단말기는 리셋되고, 단계(S200)로 복귀하여 단계(S200) 및 단계(S201)를 수행한다.
예컨대, 부팅부가 단말기의 재부팅을 위한 동작을 수행하면서 보안부를 실행시키고(S200), 보안부는 부팅부에 의해 실행되어 저장부의 TOB 값을 확인한다(S201).
확인결과, 저장부의 TOB 값이 0x01이므로, 보안부는 부팅부의 현재 해시 값들을 검증한다(S203).
검증결과, 부팅부의 현재 해시 값들과 저장부에 저장된 부팅부의 해시 값들 중 불일치 하는 해시 값이 존재하면(S204), 보안부의 동작을 정지시킨다(S205).
그러나, 부팅부의 현재 해시 값들과 저장부에 저장된 부팅부의 해시 값들 중 불일치 하는 해시 값이 존재하지 않으면, 보안부의 동작을 유지시킨다.
예컨대, 제1 보안코드는 제1 부팅코드에 의해 실행되어 제1 부팅코드의 현재 해시 값을 측정한다. 또한, 제1 보안코드는 제2 부팅코드에 의해 실행되어 제2 부팅코드의 현재 해시 값을 측정한다. 제1 보안코드는 커스텀 부팅코드에 의해 실행되어 커스텀 부팅코드의 현재 해시 값을 측정한다. 또한, 제2 보안코드는 커널이미지에 의해 실행되어 단말기 운영체제의 기설정된 중요 시스템 라이브러리 파일들에 대한 인덱스 정보 및 인덱스 정보에 대응되는 현재 해시 값들을 측정한다.
제1 보안코드는 현재 측정된 제1 부팅코드의 해시 값, 제2 부팅코드의 해시 값 및 커스텀 부팅코드의 해시 값과, 저장부의 제1 무결점 해시 테이블에 저장된 제1 부팅코드의 해시 값, 제2 부팅코드의 해시 값 및 커스텀 부팅코드의 해시 값을 비교한다. 비교결과, 적어도 하나의 해시 값이 불일치하면, 제1 보안코드는 저장부의 VOB 값을 0x01로 설정한다. 또한, 제2 보안코드는 현재 측정된 단말기 운영체제의 기설정된 중요 시스템 라이브러리 파일들에 대한 인덱스 정보 및 인덱스 정보에 대응되는 해시 값들과, 저장부의 제2 무결점 해시 테이블에 저장된 단말기 운영체제의 기설정된 중요 시스템 라이브러리 파일들에 대한 인덱스 정보 및 인덱스 정보에 대응되는 해시 값들을 비교한다. 비교결과, 비교결과, 적어도 하나의 해시 값이 불일치하면, 제2 보안코드는 저장부의 VOB 값을 0x01로 설정한다.
저장부의 VOB 값이 0x01이므로, 단말기의 재부팅이 완료되더라도 보안부는 동작하지 않는다. 저장부의 VOB 값이 0x01로 설정되면, 단말기은 저장부의 VOB 값을 0x00으로의 설정을 자체적으로 할 수 없고, 외부적으로 별도의 조치를 통해서만 할 수 있다.
한편, 저장부의 제2 무결점 해시 테이블의 인덱스 항목은 단말기의 무결한 부팅이 완료되면, 정상적인 절차를 통해 기설정된 시스템 중요 라이브러리 파일의 변경될 경우 해시 값 업데이트를 위해 사용된다. 저장부의 TOB는 단말기가 초기화되는 등의 정상적인 절차를 통해서만 0x00으로 변경될 수 있다. 저장부의 제1 무결점 해시 테이블에 저장된 제2 부팅코드, 커스텀 부팅코드 및 커널이미지의 해시 값은 단말기의 무결한 부팅이 완료되면, 정상적인 절차를 통해서 업데이트될 수 있다.
이상 바람직한 실시예와 첨부도면을 참조하여 본 발명의 구성에 관해 구체적으로 설명하였으나, 이는 예시에 불과한 것으로 본 발명의 기술적 사상을 벗어나지 않는 범주내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 안되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
100 : 단말기 110 : 제어부
120 : 부팅부 121 : 제1 부팅코드
122 : 제2 부팅코드 123 : 커스텀 부팅코드
124 : 커널 이미지 130 : 보안부
131 : 제1 보안코드 132 : 제2 보안코드
140 : 저장부

Claims (1)

  1. 단말기의 부팅을 위한 동작을 수행하고 보안부를 실행시키는 부팅부; 및
    상기 부팅부에 의해 실행되어 상기 부팅부의 현재 해시 값들을 측정하고, 현재 측정된 상기 부팅부의 해시 값들과 상기 단말기의 무결점 상태에서 기측정하여 메모리에 기저장한 상기 부팅부의 해시 값들을 비교하며, 비교결과에 따라 상기 단말기의 무결점 상태 훼손 여부를 판단하여 상기 단말기의 보안 서비스 제공을 위한 동작의 정지 여부를 결정하는 보안부
    를 포함하는 플랫폼 무결성 검증 기반 단말기 보안 장치.
KR1020150017965A 2015-02-05 2015-02-05 플랫폼 무결성 검증 기반 단말기 보안 장치 및 방법 KR20160096391A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150017965A KR20160096391A (ko) 2015-02-05 2015-02-05 플랫폼 무결성 검증 기반 단말기 보안 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150017965A KR20160096391A (ko) 2015-02-05 2015-02-05 플랫폼 무결성 검증 기반 단말기 보안 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20160096391A true KR20160096391A (ko) 2016-08-16

Family

ID=56854395

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150017965A KR20160096391A (ko) 2015-02-05 2015-02-05 플랫폼 무결성 검증 기반 단말기 보안 장치 및 방법

Country Status (1)

Country Link
KR (1) KR20160096391A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230091660A (ko) * 2021-12-16 2023-06-23 주식회사 텔레칩스 소프트웨어의 무결성 검증 방법 및 그 장치
CN117193863A (zh) * 2023-09-08 2023-12-08 上海合芯数字科技有限公司 主机引导程序的启动方法、装置、系统和处理器

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230091660A (ko) * 2021-12-16 2023-06-23 주식회사 텔레칩스 소프트웨어의 무결성 검증 방법 및 그 장치
CN117193863A (zh) * 2023-09-08 2023-12-08 上海合芯数字科技有限公司 主机引导程序的启动方法、装置、系统和处理器
CN117193863B (zh) * 2023-09-08 2024-05-24 上海合芯数字科技有限公司 主机引导程序的启动方法、装置、系统和处理器

Similar Documents

Publication Publication Date Title
US8375437B2 (en) Hardware supported virtualized cryptographic service
US10142104B2 (en) Securely recovering a computing device
CN107077574B (zh) 用于客户端设备的信任服务
US9589139B2 (en) Method and device for altering a unified extensible firmware interface (UEFI) secure boot process in a computing device
EP2681689B1 (en) Protecting operating system configuration values
US10585676B2 (en) Authorizing a bios policy change for storage
KR101066727B1 (ko) 컴퓨팅 장치의 보안 부팅
US8732445B2 (en) Information processing device, information processing method, information processing program, and integrated circuit
US20180204012A1 (en) Global platform health management
WO2018090818A1 (zh) 一种版本校验方法、装置及终端设备
EP2693789B1 (en) Mobile terminal encryption method, hardware encryption device and mobile terminal
WO2017200854A1 (en) Self-contained cryptographic boot policy validation
US20130081124A1 (en) Trusting an unverified code image in a computing device
CN107003866A (zh) 来自加密模板的加密虚拟机的安全创建
EP3588354B1 (en) Automatic verification method and system
KR101968382B1 (ko) Tpm 기반의 사용자 장치 및 이를 이용한 부팅 방법
CN111095200A (zh) 嵌入式程序的安全升级方法、装置、设备及存储介质
CN110874467A (zh) 信息处理方法、装置、系统以及处理器、存储介质
CN110674525A (zh) 一种电子设备及其文件处理方法
KR20160096391A (ko) 플랫폼 무결성 검증 기반 단말기 보안 장치 및 방법
WO2015131607A1 (zh) 可信环境创建方法和装置及基站异常恢复方法和装置
CN110990840A (zh) 设备开机的方法及装置
CN117494232B (zh) 固件的执行方法和装置、系统、存储介质及电子设备

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination