Python Forensics-네트워크 시간 프로토콜
시간 동기화를 위해 가장 널리 사용되는 프로토콜은 NTP (Network Time Protocol)를 통해 수행됩니다.
NTP는 사용자 데이터 그램 프로토콜 (UDP)을 사용하여 최소 시간을 사용하여 주어진 시간 원본과 동기화하려는 서버와 클라이언트간에 패킷을 통신합니다.
Network Time Protocol의 특징은 다음과 같습니다.
기본 서버 포트는 123입니다.
이 프로토콜은 국립 연구소에 동기화 된 액세스 가능한 많은 시간 서버로 구성됩니다.
NTP 프로토콜 표준은 IETF에 의해 관리되며 제안 된 표준은 "네트워크 시간 프로토콜 버전 4 : 프로토콜 및 알고리즘 사양"[NTP RFC]이라는 제목의 RFC 5905입니다.
운영 체제, 프로그램 및 응용 프로그램은 NTP를 사용하여 적절한 방식으로 시간을 동기화합니다.
이 장에서는 타사 Python 라이브러리 ntplib에서 실행 가능한 Python과 함께 NTP를 사용하는 방법에 중점을 둡니다. 이 라이브러리는 결과를 내 로컬 시스템 시계와 비교하는 무거운 작업을 효율적으로 처리합니다.
NTP 라이브러리 설치
그만큼 ntplib 에서 다운로드 할 수 있습니다. https://pypi.python.org/pypi/ntplib/ 다음 그림과 같이.
라이브러리는 NTP 프로토콜 필드를 변환 할 수있는 방법을 사용하여 NTP 서버에 대한 간단한 인터페이스를 제공합니다. 이는 윤초와 같은 다른 키 값에 액세스하는 데 도움이됩니다.
다음 Python 프로그램은 NTP 사용법을 이해하는 데 도움이됩니다.
import ntplib
import time
NIST = 'nist1-macon.macon.ga.us'
ntp = ntplib.NTPClient()
ntpResponse = ntp.request(NIST)
if (ntpResponse):
now = time.time()
diff = now-ntpResponse.tx_time
print diff;
위의 프로그램은 다음과 같은 출력을 생성합니다.
시간의 차이는 위의 프로그램에서 계산됩니다. 이러한 계산은 법의학 조사에 도움이됩니다. 얻은 네트워크 데이터는 하드 드라이브에서 찾은 데이터 분석과 근본적으로 다릅니다.
시간대의 차이 또는 정확한 시간대를 확보하면이 프로토콜을 통해 메시지를 캡처하기위한 증거를 수집하는 데 도움이 될 수 있습니다.