펌웨어가 들어있는 대형 바이너리 파일에 서명 한 다음이를받은 대상 장치에서이 서명의 유효성을 검사해야합니다. 몇몇 기사를 읽은 후에 나는 이것을하는 방법을 결론지었습니다, 그러나 나는 그것이 이런 방식으로 이루어져야하는지 확신 할 수 없습니다.OpenSSL을 사용하여 큰 파일에 서명하기
$ openssl pkey -in privkey-ID.pem -out pubkey-ID.pem -pubout
보낸 사람이 다이제스트와 기호를 생성
$ openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -pkeyopt rsa_keygen_pubexp:3 -out privkey-ID.pem
보낸 사람은 개인 키를 사용하여 공개 키를 생성
보낸 사람은 개인 키를 생성합니다 다음은 지금까지 한 일이다 을 사용하여 파일 :
$ openssl dgst -sha256 -sign privkey-ID.pem -out out.sha256 rootfs.jffs2
수신기는 서명을 확인 :
$ openssl dgst -sha256 -verify pubkey-ID.pem -signature out.sha256 rootfs.jffs2
네 번째 단계를 실행할 때 "확인 확인"응답이 표시되지만 올바르게 완료되었는지 확실하지 않습니다.
서명 할 때 대칭 키를 사용해야합니다. 내가 대칭 키를 사용하여 서명하는 것을 이해하는 한, 발신자와 수신자 모두에서 동일한 키를 사용해야한다는 것을 의미하지만 여기서 개인 키로 서명하고 공개 키로 확인합니다.
위의 사항에 대한 설명은 크게 인정됩니다.
이 질문은 프로그래밍이나 개발에 관련되지 않은 주제와 관련이없는 것 같습니다. 아마도 정보 보안 스택 교환이 더 좋은 곳이 될 것입니다. – jww