NTP(ネットワークタイムプロトコル)とは?基礎知識を整理

「時刻を自動的に設定」というオプションの裏側で、静かに働き続けているプロトコルです。

NTP(ネットワークタイムプロトコル)とは

NTPは、コンピューターやサーバー、ネットワーク機器が持つ内部時計を、インターネット上の正確な時刻サーバーと定期的に照合できるようにする標準プロトコルで、UDPの123番ポートを使用します。人がラジオの時報で腕時計を合わせるのと同じように、機器同士が自動的に時刻を問い合わせて自分の時計を補正します。

時刻の正確さが重要な理由

ブラウザはHTTPS証明書の有効期限を自分の機器の時計と比較して判定するため、時計が大きくずれていると正常なサイトでも証明書エラーが表示されることがあります。ワンタイムパスワード(OTP)認証アプリは現在時刻を基準にコードを生成するため、サーバーと機器の時刻差が大きいと認証に失敗し続けます。複数サーバーのログを時系列で正しく比較する作業も、各サーバーの時計が合っていて初めて意味を持ちます。

ストラータム(階層)構造

ストラータム0は、それ自体はネットワークに接続されていない原子時計やGPS受信機のような最上位の基準時刻源を指します。この基準に直接接続されたサーバーがストラータム1となって他のサーバーに時刻を提供し、ストラータム1を参照するサーバーはストラータム2、というように階層が下がっていきます。数字が小さいほど、基準時刻源に近いことを意味します。

NTPが誤差を補正する仕組み

NTPクライアントは複数の時刻サーバーに問い合わせを送り、リクエスト送信から応答受信までの時間から往復の通信遅延を推定した上で、自分の時計とサーバーの時刻とのずれ(オフセット)を計算します。極端に外れた値は除外し、時計を一気に前後させるのではなく、時計の進む速度を少しずつ調整して徐々に合わせていく方式を取ります。この方法により、通常は数ミリ秒から数十ミリ秒程度の精度で同期を維持できます。

身近な機器で使われているNTP

Windows、macOS、Android、iOSはいずれもインターネット経由で時刻を自動的に合わせる機能を標準搭載しており、これはNTPを利用したものです。この設定をオフにしていたり、ファイアウォールがNTP通信(UDPの123番ポート)を遮断していたりすると、内部時計が少しずつずれていき、後になってサインインの失敗や証明書エラーといった予期しない問題につながることがあります。

NTPに関連するセキュリティリスク

設定が甘い公開NTPサーバーは、攻撃者がわずかなリクエストではるかに大きな応答を誘発させる増幅攻撃(NTP増幅DDoS攻撃)に悪用されることがあります。自前でNTPサーバーを運用する場合は、不特定多数からの問い合わせに応答しないようアクセスを制限し、既知の脆弱性が修正された最新版のソフトウェアを維持することが推奨されます。

GPSが普及した今でもNTPが必要な理由

GPS受信機は非常に正確な時刻を提供しますが、ノートパソコンや屋内のスマートフォン、IoTセンサー、データセンター内のサーバーなど、身の回りの機器の多くはGPS受信機を内蔵しておらず、そもそも衛星が見える環境にもありません。そこでストラータム階層の出番です。GPSや原子時計に接続されたごく少数のストラータム1サーバーが、公開・組織内の膨大な数のNTPサーバー群を通じて時刻を配信することで、自前の基準時計を持たないほぼすべてのインターネット接続機器にまで正確な時刻が行き渡ります。

補足:NTPの精度にも限界がある

一般的なNTPの同期精度は数ミリ秒から数十ミリ秒程度で、ウェブ閲覧や認証、通常のログ記録には十分すぎるほどです。一方、金融取引システムや通信network、マイクロ秒・ナノ秒単位の精度が必要な科学機器では、オープンなインターネットではなく制御された低遅延ネットワーク向けに設計された、より厳密な規格であるPTP(Precision Time Protocol)が使われます。要件にミリ秒未満のタイミング精度が含まれる場合、NTP単体では通常不十分です。

よくある質問

コンピューターの時計がずれると、実際にどんな問題が起きますか?

代表的な例としては、正常なHTTPSサイトにアクセスしているのに証明書エラーが表示される、2段階認証(OTP)のコードが何度入力しても無効と判定される、複数サーバーのログを正しい時系列順に比較しづらくなる、といった問題が挙げられます。

スマートフォンもNTPで時刻を合わせていますか?

はい。ほとんどのスマートフォンは、設定で「ネットワーク提供の時刻を使用」のようなオプションを有効にしておくと、通信キャリアのネットワークやインターネットを通じて自動的に時刻を同期します。このオプションをオフにすると端末自身の時計だけに頼ることになり、時間とともに少しずつずれていく可能性があります。