Digital Forensic 이론

디지털 데이터의 표현(2)

ggaul 2023. 3. 18. 08:54
반응형

■ Time Information Expressions(시간 정보 표현)

  - 디지털 포렌식에서 시간정보는 매우 중요한 정보이다. 따라서 HEX값이 어떤 구조를 가지는지 어떤 종류의 시간 정보 표현이 존재하는지 알아보도록 하자.

 

* GMT(Greenwich Mean Time, 그리니치 표준시):

   - 영국 런던 외각 쪽에 위치한 그리니치 천문대를 기준으로 한 기준이 되는 태양 시

   - 그리니치 천문대를 기준으로 한 이유는 경도 0도에 위치해 있고, 남중 자오선을 태양이 정확히 지나는 시점을 정오라고 지정할 수 있기 때문이다.

   - 각각의 나라마다 존재하는 경도에 맞춰서 GMT라는 태양시를 변동하여 사용하고 있다.

   - 우리나라 경우 동경 127도 표준 자오선을 가지고 있지만 시간은 동경 135도인 일본 표준시인 JST를 사용하고 있다.

   - 세계 시간을 확인할 수 있는 사이트: https://greenwichmeantime.com/time-gadgets/time-zone-converter/ 

 

* UTC(Universal Time Coordinated, 협정 세계시)

   - 1972년 1월 1일 세계 표준시로 규정

   - GMT 시간은 그리니치 천문대를 지나는 태양을 기준으로 하기 때문에 지구의 자전 주기와 밀접한 관련 있음

   - 하지만 시간은 계속 흐르고 있고, 자전의 흐름이 늦어짐에 따라 새로운 표준시를 재정해야 한다는 의견 

   - 이에 따라 GMT 시간 대체로 국제 원자시 TAI(Temps Atomic International)를 기준으로 시간을 제정

   - 국제 원자시는 세슘 원자의 진동수를 기반으로 하여 측정한 시간

   - UTC는 원자시를 사용하기 때문에 자전의 흐름의 속도에 영향을 주지 않기 때문에 시간이 흘러도 변할 가능성 거의 없음

   - 우리나라 경우 서울 기준 UTC+9 시간을 사용

* Digital Data Time(디지털 데이터 시간)

   -  디지털 및 인터넷 환경에서의 나라, 지역 등 국경의 의미가 없기 때문에 사건이 일어난 지역의 표준시에 디지털 데이터 시간 적용

   - 대부분의 파일시스템에서는 시간정보를 기준이 되어 있는 UTC+0을 기반으로 시간 정보 생성

   - UTC+0 기준으로 지역의 표준시에 맞춰서 조정해 모든 시간정보에 적용하면 효율적이고 평준화가 될 것으로 생각됨

   - 파일시스템 시간 기준 FAT 4byte, NTFS 8byte

<시간 정보 표현 방식>

   - DOS/Time

   - Unix Date/Time

   - Windows TimeStamp

   - MAC OS TimeStamp

   - Mobile Date/Time

 

 * DOS Date/time

   - 시간 저장 방식으로 현재 날짜와 시간을 각각 2byte 형식으로 나타냄

   - 표현 방식

     1980년 01월 01일 00:00:00 (00:21:00:00) ~ 2107년 12월 31일 23:59:58 (FF:9F:BF:7D)

Y : 1980년을 기점으로 한 연도

M : 월(month) 1~12월

D : 일(day) 1~31일

h : 시(hour) 0~23시

m : 분(minute) 0~59분

s : 초(second) 2초 단위로 0~29의 값이 저장

시간 형식 구조

 * Unix Date/Time

  - 유닉스 운영체제는 1970년 1월 1일 자정(UTC) 이후에 경과된 초를 저장

  - time_t는 유닉스 운영체제에서 시간을 저장하는 표준 형식

  - 유닉스 타임 1234567890의 시간이 2009년 2월 13일 금요일 23시 31분 30초

  - UTC+9인 국내 시간으로는 2009년 2월 14일 08시31분 30초

  - timt_t 는 부호 있는 4byte 정수형을 사용했었으나, 2038년 이후 시간을 제대로 표현하지 못하는 단점 발생

  - 이후 부호없는 4byte를 사용했지만 현재는 부호 없는 8byte인 time64_t를 사용

     <time_t 부호 있는 4byte 사용>

        시작 : 1970년 01월 01 00:00:00 (0)

        종료 : 2038년 01월 19일 03:14:07 (2,147,483,647)

     <time_t 부호없는 4byte 사용>

         시작 : 1970년 01월 01일 00:00:00 (0)

         종료 : 2106년 02월 05일 21:28:15 (4,294,976,295)

      <time_t 부호없는 8byte 사용>

         시작 : 1970년 01월 01일 00:00:00 (0)

          종료 : 292277026596년 12월 4일 (18,446,744,073,709,551,615)

 

* Windows TimeStamp

  - 시간 표현에 있어서 제약을 두지 않기 위해서 8byte 시간 표현 방식 사용

  - 2^64는 18,446,744,073,709,500,000으로 매우 큰 숫자 이기 때문에 제약이 거의 없음

  - 160년 01월 01 일 0시 (UTC)를 시작으로 100 나노초 간격의 숫자 저장

      시작 : 1601년 01월 01일 00:00:00.0000000 (00000000 : 00000000)

      종료 : 30828년 09월 14일 02:48:05.4885807 (7FFFFFFF : FFFFFFFF)

  - 윈도우 프로그래밍을 할 때 filetime 구조체를 사용하는데 time_t로 변환하는 공식

     time_t = (filetime - 0x19DB1DED53E8000) / 1000000

 

* MAC OS Time Stamp

  - 1904년 01월 01일 자정부터 현재 까지의 시간을 초로 계산하는 HFS/HFS+ Date를 사용

  - 부호없는 4byte 저장

  - HFS/HFS+ Date는 최대 2040년 2월 6일 06시 28분 15초까지만 표현이 가능

      시작 : 1904년 01월 01일 00시 00분 00초

      종료 : 2040년 02월 06일 06시 28분 15초

 

* Mobile Date/Time

  - 모바일 시간은 각 장치나 통신사 별로 서로 다른 형식을 사용

  - 통신사가 같더라도 모델에 따라 다른 방식을 사용하기도 함

 

출처: forensic-proof

 

반응형

'Digital Forensic 이론' 카테고리의 다른 글

HPA & DCO  (0) 2023.03.29
디지털 데이터의 표현(3)  (0) 2023.03.20
디지털 데이터의 표현(1)  (0) 2023.03.17