보안/디지털 포렌식

[9장]디지털 증거의 무결성 유지 기술

haerim9.9 2025. 2. 2. 22:47

이 글은 아래의 책 5장을 읽고 공부 목적으로 작성됨.

이상진, 「디지털 포렌식 개론」, 이룬, 2015


목차

더보기

1. 해쉬 함수

2. 전자 서명
3. 시점확인 서비스

4. 디지털 증거의 인증


디지털 데이터는 훼손되기 쉬우며, 따라서 데이터를 수집한 이후부터는 위/변조되지 않았음을 입증할 수단이 필요하다. 대표적인 입증 기술로는 메시지 인증 코드(Message Authentication Code)와 전자 서명이 있다.

 

메시지 인증 코드는 사전에 키 공유 후, 데이터 전송 도중 위/변조되었는지 확인하는 방법이다. 제 삼자에게 데이터가 위/변조되지 않았음을 입증하는 것이 어렵다. 이를 극복한 것이 전자 서명이다.

전자 서명은 개인키를 갖고 있는 자만이 해당 데이터에 서명 값을 생성할 수 있고 그 외의 사람은 공개키를 이용하여 서명 값이 맞다는 것을 확인할 수 있다.


 

1. 해쉬 함수

1) 개요

해쉬 함수 : 임의의 비트 열을 고정된 길이의 비트 열로 변환시켜주는 함수

암호학적 해쉬 함수(Cryptographic Hash Function) : 해쉬 함수에 충돌 저항성과 일방향성 등의 암호학적 성질들을 만족하는 함수, 이러한 해쉬 함수는 디지털 무결성 검증을 위해 사용된다.

 

 

2) 해쉬 함수의 정의

디지털 포렌식에서는 키가 없는 해쉬 함수만을 다룬다.

 

기본 정의. 어떤 함수 h가 다음 두 성질을 만족할 때 해쉬 함수라 부른다. 

  • 압축성(Compression) : 함수 h는 임의의 길이 입력 x를 길이가 n(비트)인 출력 h(x)에 대응시킨다.
  • 계산 용이성(Ease of computation) : 함수 h와 입력 x가 주어졌을 때, h(x)를 계산하는 것이 용이하다.

암호학에서 사용하기 위해 필요한 추가적인 세 가지 성질, 기본 정의를 만족하는 것은 물론이고 아래의 성질 또한 모두 만족해야 암호학적 해쉬 함수이다.

  • 역상 저항성(Preimage Resistance) : h에 대한 임의의 출력 y가 주어지고 출력 y를 생성하게 된 입력 x는 알려지지 않은 상황에서 h(x) = y를 만족시키는 임의의 역상 x를 찾는 것이 계산적으로 불가능하다.
  • 제 2 역상 저항성(2nd-Preimage Resistance) : 입력 x가 주어졌을 때 h(x) = h(x')을 만족하는 x와는 다른 입력 x'을 찾는 것이 계산적으로 불가능하다. x'을 제 2 역상이라 말한다.
  • 충돌 저항성(Collision Resistance) : h(x) = h(x')을 만족시키는 임의의 서로 다른 두 입력 x, x'을 찾아내는 것이 계산적으로 불가능하다. 이 조건은 '제 2 역상 저항성'과는 달리 서로 다른 두 개의 입력 값 x, x'에 대한 어떠한 제한도 없다. 여기서 x, x'을 충돌쌍이라 말한다. (제 2 역상 저항성의 경우 입력 x가 주어진다는 차이가 있다.)

해쉬 함수 예시 : MD5(Message Digest 5), SHA-1, RIPEMD-160, HAVAL 등

국내에서 개발되어 표준으로 쓰이는 함수로는 HAS-160가 있고, SHA-1의 취약점이 발견되어 SHA-3가 미국 표준 해쉬함수로 선정되었다.

 

해쉬 함수를 이용한 디지털 증거 무결성 검증 과정

  1. 데이터 m을 해쉬 함수 h에 입력하여 해쉬 값 y = h(m)을 계산한다.
  2. 데이터 m과 해쉬 값 y를 별도로 보관한다.
  3. 보관되어 있는 데이터 m'이 보관 당시의 m인지 확인하기 위해 y' = h(m')를 계산한 후 y = y'인지 확인한다.

주의할 사항 : 해쉬 값과 데이터가 별도로 보관되어야 한다. 둘 중 하나만 변조될 가능성이 있어야 한다. -> 데이터를 수집하고 해쉬 값 계산한 후, 그것을 인쇄한 문서에 조사자와 피조사자가 서명하는 방식을 사용

 

 

3) 해쉬 함수의 안전성

무결성 유지를 위해 사용하는 방법에 문제가 있으려면 제 2 역상을 발견할 수 있어야 한다.

 

 

2. 전자 서명

전자 문서가 문서로서 효력을 발휘하기 위해서, 작성자의 신원을 확인하거나 문서의 원본을 증명할 수 있는 방안이 필요하게 됐다. 전자 서명 기술은 전자 문서나 메시지를 보낸 사람의 신원을 확인하고 증명하기 위해 등장했다.

 

전자 서명의 정의 및 원리

전자 서명은 '서명자만이 서명을 생성할 수 있다.' '서명자가 서명했음을 쉽게 확인할 수 있어야 한다.'는 성질을 만족해야 한다.

디지털 데이터는 쉽게 위/변조가 가능하다. 따라서 전자 서명은 디지털 데이터가 작성된 후, 한 비트의 변화도 없음을 보여야 한다. 이러한 특징을 만족시키는 방법으로 공개키 암호 시스템을 이용한 전자 서명 시스템이 암호학에서 연구되었다.

 

  • 공개키 암호 시스템 : 데이터를 암호화할 때와 복호화할 때의 키가 다르고, 암호용 키로부터 복호용 키를 알아내는 것이 계산적으로 불가능한 수학적인 체계를 이용한 것
  • 전자 서명 시스템 : 공개키 암호 시스템의 복호화 과정 = 서명 생성 과정(개인키 이용) / 암호화 과정 = 서명 확인 과정으로 변형한 것(공개키 이용)

공인인증기관(CA: Certificate Authority) : 공개키를 등록받고 인증해주는 기관

해당 기관은 사용자의 요청에 의해 신분을 확인하고, 사용자가 제출한 공개키에 대응되는 개인키를 소유했는지 여부를 확인한 다음, 공개키에 대한 인증서를 발급한다.

 

전자 서명이 갖추어야 할 기본적인 성질

  • 무결성(Integrity) : 서명한 데이터가 수신자에게 전송되는 과정에서 변형되지 않았음을 보장해주는 성질
  • 위조 불가능성(Unforgeability) : 특정인이 타인의 서명을 임의로 생성할 수 없는 성질
  • 부인방지(Non-requdiation) : 서명자가 자신이 서명한 사실을 부인할 수 없는 성질

 

3. 시점확인 서비스

시점 확인 서비스(Time Stamping Service) : 임의의 디지털 데이터가 특정한 시점에 존재했으며, 특정 시점 이후에는 데이터의 내용이 변경되지 않았음을 증명해주는 서비스

 

시점 확인 서비스는 디지털 데이터와 객관적인 시각정보를 결합한 뒤, 제 3자의 전자 서명을 거쳐 시점확인 토큰(Time Stamping Token)을 생성하는 형태로 동작한다.

*시점확인 토큰 : 일종의 전자 도장, 이를 이용하면 디지털 데이터의 보증이 필요한 분야(전자 입찰, 내용 증명 등)에서 디지털 데이터의 존재성과 무결성을 입증할 수 있다.

 

시점확인 서비스 : 언제 서명을 하였는가 / 전자 서명 : 누가 서명을 하였는가 에 초점을 맞춘다.

 

시점확인 서비스의 3가지 주체

  • 시점확인 인가자(Time Stamping Authority, TSA) : 시점확인 토큰을 발행
  • 시점확인 이용자 : 시점확인을 요청
  • 시점확인 검증자 : 시점확인 토큰의 유효성을 검증

 

시점확인 토큰의 무결성을 검증하기 위해 시점확인 인가자가 신뢰할 수 있는 제 3의 기관(Third Trusted Party, TTP)이어야 한다.

국내 : 한국정보인증, 코스콤 공인인증센터, 금융결제원 전자인증센터

 

 

4. 디지털 증거의 인증

원본 데이터와 해쉬 값을 동시에 조작한다면 무결성을 손상시킬 수 있다. 따라서 해쉬 값은 변조가 불가능한 곳에 별도로 보관해야 한다. 그리고 해쉬 값과 함께 원본 데이터의 획득 시점을 명시해야 한다. 즉, 디지털 증거의 무결성 입증을 위해서는 해쉬 값과 시점 정보 2가지의 변조 불가능성으로 요약할 수 있다.

 

해쉬 값을 생성하여 보관한다고 해서 객관적으로 무결성을 유지했다고 말할 수 없다. 이를 위해 시점확인 서비스를 이용할 수 있다. 시점확인 서비스는 디지털 해쉬 값, 시각 정보, 시점확인 인가자의 전자 서명을 모두 포함한다.수사관이 생성한 디지털 데이터의 해쉬 값을 제 3의 기관에 전송하여, 해당 시점에 그 파일이 존재했음을 입증하고, 대응되는 디지털 데이터는 안전하게 보관함으로써 수사의 밀행성과 디지털 데이터의 존재성, 무결성을 동시에 입증할 수 있다.