■ 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
- 모바일 시간은 각 장치나 통신사 별로 서로 다른 형식을 사용
- 통신사가 같더라도 모델에 따라 다른 방식을 사용하기도 함
'Digital Forensic 이론' 카테고리의 다른 글
HPA & DCO (0) | 2023.03.29 |
---|---|
디지털 데이터의 표현(3) (0) | 2023.03.20 |
디지털 데이터의 표현(1) (0) | 2023.03.17 |