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]"입니다.

관련 정보