쉘 출력이나 STDOUT에 즉시 서명하는 방법은 무엇입니까?

쉘 출력이나 STDOUT에 즉시 서명하는 방법은 무엇입니까?

규정 준수 보고 및 로깅을 위해 특정 명령의 출력에 타임스탬프를 찍고 서명하는 것을 좋아합니다.

예를 들어, "터미널에서 GUI가 설치되어 있는지 확인", 좀 더 안정적으로 부재를 기록하고 싶습니다(참고: ...일반적으로 요청한 것보다 더 많은 스크린샷) 시스템에 복사하여 붙여넣을 수 있을 뿐만 아니라 결과를 외부 문서에 저장하거나 인쇄할 수도 있습니다.

어떻게 하면 간단한 방법으로 이를 달성할 수 있나요?

답변1

다음과 같은"디지털 서명 사용openssl" 그리고"stdout두 번 사용됨"저는 다음과 같은 방법을 생각해냈습니다.

echo "$(type Xorg 2>&1; date)" | tee /dev/tty | openssl dgst -sha256 -sign operator.priv.key | xxd -p

"와 함께..."쉘에서 바이너리 데이터를 16진수로 변환"그리고 요청한 결과가

타임스탬프 및 서명된 출력

-bash: type: Xorg: not found
Tue Jul 18 10:00:00 CEST 2023
ba97f858f3c62b71b08d26558eeb761214e5ad88f3511debe3b7976e8589
5b630737dce1999d9edf9d96414d88d60f12f5fe934e11d7b75ef7dfc617
2aec44e4baa3ea2eef37e73ee5fdec806dd922b2bbc4b75ec321fb9ac112
5fcd955989ff50f8c17938e42cf3db996f5a9061420842bea360c21b23a7
6faa8c464c7dfb6db1a97d7a57fc539bad0f7116f47741d29d44c0f663fb
c356b46388632303fddf78478e504935a7d8dd2936c4776cb47b2685adc3
ab234f911ca5f9b7dcc449b1158df7aac5c9ba9bad019cd30ef1eb56a76d
bb56ba0127a69e7e1ea07f8a4e6b346e6129e052b10376de14d6192289ba
18fa748e271aa97e3399cb933f1cd5b2

을 위한"명령 출력을 변수에 저장할 때 줄바꿈을 유지합니다.", 따옴표가 필요합니다. 그리고"표준 출력 및 표준 오류 리디렉션 및 추가"일부 주문은 stderr보고만 할 수 있기 때문이죠.


참고로 저는 조사 중에 CLI에서 명령에 타임스탬프를 표시하는 두 가지 다른 방법을 발견했습니다."명령 출력의 각 줄 앞에 타임스탬프를 추가합니다." 그리고"Linux 쉘에서 명령을 실행할 때 현재 시간과 날짜를 인쇄합니다.”하지만 아직 테스트하지 않았습니다.

위의 출력은 문서에서 쓸모가 없으므로 이를 되돌리는 방법에 대한 방법이 제공되지 않으면 분명히 문제가 있을 것입니다.

출력을 확인하는 방법은 무엇입니까?

출력을 확인하려면 "16진수 정보를 다시 2진수로 변환" 통과하다

echo -n '${SIG}' | xxd -r -p > stdout.sig

나중에 확인하고

openssl dgst -sha256 -verify operator.pub.key -signature stdout.sig stdout

전체 테스트 예시

echo "$(type Xorg 2>&1; echo 'Tue Jul 18 10:00:00 CEST 2023')" | tee stdout | tee /dev/tty | openssl dgst -sha256 -sign operator.priv.key | tee stdout.sig | xxd -p
-bash: type: Xorg: not found
Tue Jul 18 10:00:00 CEST 2023
ba97f858f3c62b71b08d26558eeb761214e5ad88f3511debe3b7976e8589
...
18fa748e271aa97e3399cb933f1cd5b2
openssl dgst -sha256 -verify operator.pub.key -signature stdout.sig stdout
Verified OK

이는 stdout 출력과 서명된 파일을 확인하는 데 도움이 되기 때문에"Linux에서 바이너리 파일을 비교하는 방법은 무엇입니까?"

관련 정보