Python-forensics-network-time-protocol
提供:Dev Guides
Pythonフォレンジック-ネットワークタイムプロトコル
時刻を同期するために最も広く使用されているプロトコルであり、実践として広く受け入れられているのは、Network Time Protocol(NTP)によって行われます。
NTPは、ユーザーデータグラムプロトコル(UDP)を使用します。UDPは、最小時間を使用して、指定されたタイムソースと同期したいサーバーとクライアント間でパケットを通信します。
ネットワークタイムプロトコルの機能は次のとおりです-
- デフォルトのサーバーポートは123です。
- このプロトコルは、国立研究所に同期された多くのアクセス可能なタイムサーバーで構成されています。
- NTPプロトコル標準はIETFによって管理され、提案された標準は「Network Time Protocol Version 4:Protocol and Algorithms Specification」というタイトルのRFC 5905です[NTP RFC]
- オペレーティングシステム、プログラム、およびアプリケーションは、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;
上記のプログラムは、次の出力を生成します。
時間の差は、上記のプログラムで計算されます。 これらの計算は、法医学調査に役立ちます。 取得したネットワークデータは、ハードドライブで検出されたデータの分析とは根本的に異なります。
タイムゾーンの違いや正確なタイムゾーンの取得は、このプロトコルでメッセージをキャプチャするための証拠を収集するのに役立ちます。