ìê° ê¸°ë° í¤ ìì± ë°©ìì ì´ì©í ìí° ëë²ê¹ ê¸°ë² - SERSC
ìê° ê¸°ë° í¤ ìì± ë°©ìì ì´ì©í ìí° ëë²ê¹ ê¸°ë² - SERSC
ìê° ê¸°ë° í¤ ìì± ë°©ìì ì´ì©í ìí° ëë²ê¹ ê¸°ë² - SERSC
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
시간 기반 키 생성 방식을 이용한 안티 디버깅 기법<br />
∙시프트 연산한 값들의 차분 값과 프로세스의 특정 영역 IB에 해시 함수를 취하여 키를 생성한<br />
다. <br />
′<br />
′ <br />
∙생성한 키를 이용해서 보호 하고자 하는 영역(PA)을 암호화 하여 저장한다. <br />
<br />
[그림 5] 암호화 과정<br />
[Fig. 5] Key generation mechanism<br />
3.2.1.2 실행과정<br />
′ ′<br />
∙실행 프로세스의 실행시간을 시프트 연산한 후 차분 값을 계산한다. <br />
<br />
′<br />
∙차분 값과 코드의 특정 영역 IB를 해시 함수를 이용하여 키를 생성한다. <br />
′ <br />
<br />
∙생성된 키를 이용하여 암호화 된 영역 <br />
을 복호화 한다. <br />
<br />
<br />
∙복호화 된 보호된 영역 를 실행 한 후 다시 암호화 한 후에 저장한다. <br />
<br />
프로세스가 실행되면 실행 시간을 측정하여 시프트 연산을 통한 동적으로 키 값을 계산한다. 계<br />
산된 키 값으로 보호 되어 있는 영역을 복호화한 후 실행 후에 다시 암호화해서 저장한다.<br />
′ ′<br />
프로세스 실행 시간차가 임계점 범위 안에 있으면 시간 차분 값은 <br />
<br />
이 되어서 정당한<br />
키 값 이 형성 되지만, 만약 동적 분석을 하기 위해서 디버거를 첨부하는 행위 등으<br />
′ ′<br />
로 인해 프로세스 시간 차분 값이 임계점을 넘어서면 <br />
≠ 이 되므로 다른 키 값이 형성된<br />
다. 잘못된 키 값으로 복호화를 하면 복호화가 제대로 되지 않아 잘못된 데이터 값 및 오류가 발<br />
생하여 디버깅을 탐지한다. 즉 자가 변조가 일어난다. 또한 공격자는 임의로 정한 특정 영역 IB를<br />
알 수 없으므로 정당한 키 값을 생성할 수 없다. 코드 영역에 변조가 일어날 경우 올바르지 못한<br />
298