서명 변조 테스트
마지막 단계에서는 디지털 서명의 가장 중요한 기능인 무결성 보호 기능을 시연할 것입니다. 의도적으로 document.txt 파일에 서명한 후 내용을 변조하고, 원래의 서명으로 검증을 시도해 보겠습니다. 이를 통해 디지털 서명이 무단 수정을 어떻게 방지하는지 확인할 수 있습니다.
먼저, document.txt 파일에 텍스트를 추가해 보겠습니다. 이는 공격자가 문서를 변경하는 상황을 시뮬레이션합니다.
echo "This is an unauthorized change." >> document.txt
이제 document.txt의 내용이 변경되었습니다. 원래 서명인 document.sig는 파일의 이전 내용을 기반으로 생성되었습니다.
이제 수정된 document.txt 파일을 원래 서명인 document.sig와 공개 키를 사용하여 검증해 보겠습니다.
openssl dgst -sha256 -verify public.pem -signature document.sig document.txt
이번에는 검증이 성공하지 못할 것입니다. 대신 다음과 유사한 오류 메시지가 표시됩니다.
Verification failure
805BA484597F0000:error:02000068:rsa routines:ossl_rsa_verify:bad signature:../crypto/rsa/rsa_sign.c:430:
805BA484597F0000:error:1C880004:Provider routines:rsa_verify:RSA lib:../providers/implementations/signature/rsa_sig.c:774:
이 실패는 예상된 결과입니다. 이는 수정된 document.txt의 해시가 더 이상 document.sig 내부에 암호화된 해시와 일치하지 않기 때문에 발생합니다. 이는 파일이 서명된 이후로 변조되었음을 즉시 증명합니다. 이 메커니즘은 디지털 문서 및 통신을 신뢰하는 데 근본적입니다.