Linux
(4.9.171
)マシンをARM Cortex-A
プロセッサで実行しています。システムにはinternet
接続があり、SSL
を介してサーバーと通信します。初回起動時に、date and time
を設定できます。ただし、システムが再起動した場合、適切なタイミングがなく、SSL
接続がCertification Path Validation Algo
で失敗する可能性があります。システムの時刻を最新に保つ方法が必要です(数秒の精度で十分です)。
私のシステムにはRTC
がなく、NTP
は安全ではなく、誰もがMITM
になり、システムを攻撃するための危険な証明書を入手できるため、使用したくありません。 。
NTPSec and NTS
についても調査しましたが、現在は成熟していません。
この問題ステートメントの標準的な方法はありますか?
これに対処する2つの合理的な方法を考えることができます。
ntpd
の実装をmanページから見てください( https://man.openbsd.org/ntpd.conf ):[〜#〜]制約[〜#〜]
ntpd(8)は、TLSを介して信頼できるHTTPSサーバーから「日付」をクエリするように設定できます。この時間情報は正確さのために使用されませんが、認証された制約として機能するため、認証されていないNTP中間者攻撃の影響を低減します。受信NTP =時間情報が制約に近い範囲外のパケットは破棄され、そのようなNTP=サーバーは無効としてマークされます。
からの制約url
制約を設けるには、HTTPSサーバーのURL、IPアドレス、またはホスト名を指定します。 fromの制約が複数回使用される場合、ntpd(8)は指定されたすべてのサーバーから中央値の制約を計算します。
マニュアルページの説明は、まさにあなたが求めているもののようです。
LinuxバージョンのOpenBSD ntpd
が、Brent Cookによって維持されるポータブルOpenNTPDの形式で存在します。 http://www.openntpd.org/portable.html