時刻の重要性
昨今のPC利用において、マシン時刻は非常に重要な要素を担っています。
PCを業務で利用すると様々な認証が行われます。
Windowsでよく利用されるKerberos認証ではサーバーとクライアント間での時刻同期が前提となっており、時刻が大きくずれることによって認証が失敗してしまいます。
インターネットの利用において現在、ほとんどのWebサイトはSSL/TLS通信にてアクセスされています。
サーバーから提供される証明書には期限が設定されており、時刻が大きくずれることで証明書の有効期限を誤って無効と判断し、アクセスできなくなることがあります。
また、PC利用時は様々なログが記録されます。
このログにはマシン時刻が記録されるため、時刻がずれることによってログの正確性が損なわれます。
時刻を正しく保つために
このように重要なマシン時刻は、時刻を正しく保つための仕組みが提供されています。
一般的にはNTPというプロトコルで精度の高い時刻を提供するサーバーとの通信で時刻を補正する機構です。
特にWindowsでドメインに参加している場合は、ドメインコントローラーと時刻を同期しています。
ドメイン参加していない場合、time.windows.comと時刻を同期するよう設定されています。
このサーバーはMicrosoft社が提供するNTPサーバーで、高精度な時刻を提供されています。
仮想環境などでは、仮想マシンをホストしているサーバーと同期する機構も提供されていることがあります。
時刻が同期されている環境で発生した時刻ずれ
このように重要なマシン時刻ですが、先日、不意にマシン時刻が数か月先にずれてしまうという事象が発生しました。
とある問題の調査でWindowsのイベントログを確認していたところ、ある時点でマシン時刻が9か月ほど未来の時刻に変更されていました。
ここから約10分後に正しい時刻に戻っていました。
時刻がずれた際に直接状況を確認できたわけではありませんので、イベントログ等の周辺のログからの推測です。
なお、発生したのは仮想環境であり、ホストとの同期が設定されていました。
当初、ホスト側での障害を疑ったのですが、調査した結果、Windowsの仕様による時刻のずれであることがわかりました。
Windows Secure Time Seeding
Windowsには、Secure Time Seedingという、時刻を補正する機能が提供されています。
Secure Time Seedingは、SSL/TLS通信に含まれるサーバーの時刻情報を使って、時刻を補正します。
この機能はバッテリー切れやハードウェアの不具合などでマシン時刻が大きくずれることによってSSL/TLS通信が失敗することを修正する目的で提供されています。
Windows Server 2016、Windows Server 2019、Windows Server 2022と、Windows 10 の 1511以降、Windows 11で提供されています。
なお、Windows Server 2025では、この機能が既定で無効化されています。
時刻がずれることによる影響
時刻が大きくずれることによって、様々な現象が発生します。
前述のように、認証に失敗したり、SSL/TLS通信で証明書が無効と判断され、インターネットアクセスに支障が出るケースです。
認証失敗はドメインログインができなくなるので、ログインして補正することもできません。
SSL/TLS通信の失敗は、ブラウザであればエラーが表示されることで認識できますが、バックグラウンドで動作しているインターネット通信(例えばWindows Updateなど)は、失敗していることに気付けないかもしれません。
また、弊社の環境では時刻が数か月ずれた結果、タスクスケジューラーに登録しているタスクの状態が不正になり、OSを再起動するまでタスクが実行されないという事象も確認しております。
ファイルシステムにおいては、ファイルの作成時刻・更新時刻などが記録されています。
これがずれることによってファイルを取り違えたり、ファイルの処理順序を間違うことがあるかもしれません。
Sky株式会社の製品に対する影響
また、弊社が提供している製品においても影響が考えられます。
例えばSKYSEA Client Viewであれば、ログが発生したクライアントPCのマシン時刻を各種ログの時刻として記録しています。
マシン時刻がずれてしまうことで、ログに異なる時間が記録されます。
ログを検索してもヒットしないため、時刻がずれたことに気付くことも困難です。
全てのクラウド製品においては、SSL/TLS通信がおこなわれておりますので、アクセスが失敗するケースが考えられます。
また、この事象はサーバーでも発生することがあります。
サーバーではタスクスケジューラーで様々な定期処理が行われています。
たとえば、古くなったデータを削除する処理は、マシン時刻が未来になっていると本来削除してはいけないデータが削除されることになります。
このように、時刻同期が当たり前の状況において、マシン時刻がずれるということはあらゆるソフトウェアの誤動作を招きます。
Windows Secure Time Seedingを無効化するには
先に記載しましたように、Windows Server 2025においては、Secure Time Seedingは既定で無効化されています。
無効化するにはレジストリ、またはグループポリシーを変更する必要があります。
変更後、再起動が必要です。
レジストリ
| レジストリキー | HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config |
| エントリー名 | UtilizeSslTimeData |
| タイプ | REG_DWORD |
| 値 | 0: 無効、1:有効 |
グループポリシー
| ポリシー パス | [コンピューターの構成] > [管理用テンプレート] > [システム] > [Windows タイム サービス] |
| ポリシー | グローバル構成設定 |
| 設定値 | 有効 |
| オプション | UtilizeSslTimeData = 0 |
設定値を有効にすると、Secure Time Seeding 以外の設定値も値を明示することになるため、その他の設定値については現在の運用状況を十分にご確認のうえ、同一の値を設定してください。
参考:Microsoft Japan Windows Technology Support Blog
効果確認
Secure Time Seedingの動作はイベントログに記録されます。
| パス | アプリケーションとサービスログ > Microsoft > Windows > Time-Service > Operational |
| イベントID | 260もしくは263 |
| ログの例 | W32time サービスの定期的な構成と状態メッセージ構成:~~~UtilizeSslTimeData: 0 (ローカル) ←無効またはUtilizeSslTimeData: 1 (ローカル) ←有効 |
最後に
冒頭に記載しました通り、昨今のPC利用においては時刻同期は必須となっています。
正しい時刻を保って、安全にシステムを利用していきましょう。

