2017-03-27 11 views
3

jarsigner를 함께 jar 파일에 서명 절차는 다음입니다 :jar 파일에 서명 할 때 서명 파일 (* .SF)의 용도는 무엇입니까? 내가 <a href="https://docs.oracle.com/javase/tutorial/deployment/jar/intro.html" rel="nofollow noreferrer">https://docs.oracle.com/javase/tutorial/deployment/jar/intro.html</a>에서 배운 것처럼

  1. 매니페스트 파일은 각 파일의 해시의 목록이 업데이트됩니다

    이름 : COM/칵스/UTIL /files/diff/ui/main/DiffMergeFrame.class SHA-256 다이제스트 GZgPXG9YnmVGXb hFwnJF4im4hb +/+ qixX2Gs ZNpdGFU =

    명 : COM/칵스/UTIL/UI/진동/PrintManager.class SHA-256 - 다이제스트 : cO6XolXrk5NlHBocDF0fzojlwSAKlDoGsY/jdJ0fzdY =

  2. 서명 파일 (* .SF)이 생성됩니다. 그것은 포함 주요 속성의 매니페스트 파일의

    • 해시
    • 해시를 매니페스트 파일에 매니페스트 파일에서 각 파일에 대한 해시
    • 해시.
  3. 서명 블록 파일 (* .RSA, * .DSA)이 생성됩니다. * .SF 서명 파일의 디지털 서명을 저장합니다.

그래서 왜 * .SF가 필요한지 알고 싶습니다. * .SF 파일 대신 매니페스트 파일에 서명 할 수없는 이유는 무엇입니까?

또한 * .SF 파일에서 해시 해시를 수행하는 목적은 무엇입니까 (추가 확인 - 어떤 경우에?)?

답변

2

서명 파일 (.SF)은 .jar 파일의 서명자를 나타내며 기술적으로 두 개 이상있을 수 있습니다.

두 번째 질문에 대답하려면 .jar 파일이 이미 서명 된 후 수정되는 경우를 생각해보십시오. manifest 파일이 변경되어 .SF (*-Digest-Manifest)의 해시가 현재 파일의 해시와 더 이상 일치하지 않습니다.

그러나, 새로운 파일이 .jar에 추가 된 경우 .SF의 각 항목에 외모와 manifest (새의 각 항목에 대한 해시의 유효성을 검사합니다 (무엇보다도) 검증 알고리즘으로는 여전히 유효성 검사를 통과 할 것 manifest의 항목은 무시됩니다.)

요약하면 .SF은 서명 당시 .jar에 있던 파일이 변경되지 않았는지 확인하는 데 사용됩니다.

서명 유효성 확인 here에 대해 자세히 읽을 수 있습니다.