luksDumpを実行すると表示されるLUKSのエポックは何ですか?

luksDumpを実行すると表示されるLUKSのエポックは何ですか?

luksDumpLUKS デバイスで実行すると、次の結果が表示されます。

$ sudo cryptsetup luksDump /dev/sda1 
LUKS header information
Version:        2
Epoch:          3
Metadata area:  16384 [bytes]
Keyslots area:  16744448 [bytes]
UUID:           4640c6e4-[…]
Label:          (no label)
Subsystem:      (no subsystem)
Flags:          (no flags)
[…]

Epoch私は「バージョン」が何を意味するのかを正確に知っています(現在最良のものはv2なのでこれを目指す必要があります)、3から5までの値を見ました。

しかしEpoch実際には何を指すか。私はどんな価値を目指すべきですか?そこに書かれた数字(セキュリティの観点から)は重要ですか?たとえば、まだEpoch 3だったら悪いですか?その時代はアップグレードできますか?

オンラインで検索しましたよくある質問ちなみに、epochそこにはその言葉は言及されていません。

答え1

LUKSヘッダーの内容を変更するたびに(キーの追加や削除など)、エポックが増えます。

これLUKS2コネクタ仕様状態:

uint64_t seqid; // sequence ID, increased on update

seqid新しいヘッダー更新が記録されたときに常にインクリメントされるカウンター(シーケンス番号)。ヘッダーが高いサジェド 最新の回復に使用されます(異なる配列IDを持つプライマリヘッダーとセカンダリヘッダーがある場合は、最新のヘッダーが自動的に使用されます)。

コードと技術文書ではこれを「シーケンスID」と呼びますが、エンドユーザーに表示されるときに「エポック」という用語を使用する理由は依然として謎です。

実際にも同じです。美しいソースを読む、seqidをEpochとして印刷します。

log_std(cd, "Epoch:         \t%" PRIu64 "\n", hdr->seqid);

長すぎます。Epochは無視しても構いません。特別な意味のない無害なカウンターです。

答え2

同意しません。 - 答え:長すぎます。Epochは無視しても構いません。特別な意味のない無害なカウンターです。

これには特別な意味があります。

コンピューティングにおいて、エポックはコンピュータがシステム時間を測定する日時である。ほとんどのコンピュータシステムは、特定のランダムな日付と時刻から削除された秒数を示す数値で時間を決定します。たとえば、Unix と POSIX は、1970 年 1 月 1 日 00:00:00 UT (Unix epoch と呼ばれる) から経過した時間 (秒) で時間を測定します。 Windows NT 以上の NT 時間エポックは、1601 年 1 月 1 日 0h から始まる (10^-7) 秒間隔の Windows NT システム時間を表します。

LUKSのソースコード(lib/bitlk/bitlk.c)によると、次の定数が含まれています。

#define EPOCH_AS_FILETIME 116444736000000000

日付コンバーターを使用してください。たとえば、次のようになります。EpochおよびUnixタイムスタンプ変換ツール、次の日時に対してこの定数を生成します。

コンバータ出力

タイムスタンプがナノ秒(10億分の1秒)単位であるとします。 グリニッジ標準時:1973年9月9日日曜日午後5時45分36 あなたのタイムゾーン:1973年9月9日日曜日12:45:36 GMT-05:00 DST 比較的:48年前


この定数は、上記の日付をナノ秒単位で数値で表したものです。 Epoch は、ほとんどの場合、比較テスト、日付付きデータセット、ファイル、列、その他のさまざまな項目を Epoch と比較するために使用されます。例:

// Pseudo-code
long (DataSet 1.Date - Epoch) = X, 
long (DataSet 2.Date - Epoch) = Y
// Comparison
If X = Y then
   // Perform items for valid data sets
Else If X != Y then
   // Attempt to repair data sets
Else
  // Perform Error Trapping
End

LUKSの場合、変更または更新後に暗号化セットの2つのビット単位のコピーが一致するたびに、Epochカウンタが1ずつ増えます。バラよりLUKSヘッダ情報に関する質問。なぜ私がこの特定の時代を選んだのかはわかりません。ただ楽しみのためです。1973年9月9日に何が起こりましたか?

関連情報