gpg有効期間?

gpg有効期間?

署名中のライセンスがあります。

gpg --default-sig-expire "2024-02-14" --sign licence

その結果は次のとおりです。

$ gpg --verify licence.gpg
gpg: Signature made Tue 13 Feb 2024 08:18:39 AM CET
gpg:                using RSA key 1234567890ABCDEF1234567890ABCDEF
gpg:                issuer "[email protected]"
gpg: Good signature from "Stewart <[email protected]>" [ultimate]
gpg: Signature expires Wed 14 Feb 2024 12:00:00 PM CET

これが12:00:00 PM CET私の問題です。私は通常その時間にランチを食べに行きます。昼食時にシステムがオフラインであるという電話を受けたくありません。時間を指定できますか?むしろ期限切れになってほしいです13:00:00 PM CET


--ask-sig-expire日/週/年数だけを求めるメッセージが表示されます。

$ gpg --ask-sig-expire --sign licence
Please specify how long the signature should be valid.
         0 = signature does not expire
      <n>  = signature expires in n days
      <n>w = signature expires in n weeks
      <n>m = signature expires in n months
      <n>y = signature expires in n years
Signature is valid for? (0) 

ISO 8601はサポートされていないようです。

$ gpg --default-sig-expore "2024-02-14T13:00:00+02:00" --sign licence
gpg: '2024-02-14T13:00:00+02:00' is not a valid signature expiration

このman systemd.time仕様はサポートされていないようです。

$ gpg --default-sig-expire "2024-02-14 13:00:00" --sign licence
gpg: '2024-02-14 13:00:00' is not a valid signature expiration

マニュアルページには可能な時間も表示されません。

--default-sig-expire
       The default expiration time to use for signature expiration. Valid values 
       are "0" for no expiration, a number followed by the letter d (for days), 
       w (for weeks), m (for months), or  y (for years) (for example "2m" for two 
       months, or "5y" for five years), or an absolute date in the form 
       YYYY-MM-DD. Defaults to "0".

私が見つけた唯一の解決策は、システムのタイムゾーンを私の西の次のタイムゾーンに変更してから署名し、システムのタイムゾーンを元の時間に戻すことです。

$ sudo mv /etc/localtime{,.backup} 
$ sudo ln -s /usr/share/zoneinfo/Europe/London /etc/localtime
$ gpg --default-sig-expire "2024-02-14" --sign licence
$ sudo mv /etc/localtime{.backup,}
$ gpg --verify licence.gpg
gpg: Signature made Tue 13 Feb 2024 08:18:39 AM CET
gpg:                using RSA key 1234567890ABCDEF1234567890ABCDEF
gpg:                issuer "[email protected]"
gpg: Good signature from "Stewart <[email protected]>" [ultimate]
gpg: Signature expires Wed 14 Feb 2024 01:00:05 PM CET

答え1

--default-sig-expire時間仕様で許可される唯一の形式は次のとおりですYYYYMMddTHHmmss[Z]

gpg --default-sig-expire 20240214T130000 --sign license

夏時間と同様に、タイムゾーン指定子は無視されるため、現在ヨーロッパでは指定された時間より1時間遅い有効期限が生成されます。処理時間gpgは署名の最終的な有効性にも影響します。例えば既存の署名ファイルを上書きすることを確認するため)、結果として、遅延のために有効期限が遅れます。

これを確認するには:--default-sig-expire定義、それから確認解析オプションの値を使用します。parse_expire_stringさまざまな形式を知っています。絶対タイムスタンプ(時、分、秒を含む)を許可する唯一のものは次のとおりです。isotime2epoch(および64ビットtime_tバリアント)、コメントとして指定

サポートされる唯一の形式は、空白、nul、コロン、またはカンマ区切りの「yyyymmddThhmmss [Z]」です。

関連情報