다음을 통해 공유


서명된 메시지 확인

이러한 단계는 서명된 데이터의 서명을 확인합니다. 다음 그림에서는 다음 목록에 표시된 대로 수행해야 하는 개별 작업을 보여 줍니다.

서명된 메시지 확인

서명된 메시지의 서명을 확인하려면

  1. 서명된 메시지에 대한 포인터를 가져옵니다.

  2. 인증서 저장소를 엽니다.

  3. 메시지에 포함된 서명자 ID를 사용하여 보낸 사람의 인증서를 가져오고 공개 키에 대한 핸들을 가져옵니다.

    2단계와 3단계 대신 메시지에 포함된 인증서를 사용하여 서명자의 공개 키를 검색할 수 있습니다.

  4. 서명자의 공개 키를 사용하여 디지털 서명의 암호를 해독하여 메시지에서 데이터의 원래 다이제스트를 생성합니다.

  5. 메시지에 포함된 해시 알고리즘을 사용하여 메시지에 포함된 데이터를 해시 하여 새 다이제스트를 생성합니다.

  6. 메시지에서 검색된 다이제스트를 방금 만든 새 다이제스트와 비교합니다.

  7. 두 다이제스트가 일치하면 서명이 확인됩니다. 즉, 데이터에 서명하는 데 사용된 프라이빗 키가 서명 암호를 해독하는 데 사용된 공개 키와 일치하며 데이터가 서명된 이후로 데이터가 변경되지 않았다는 것을 의미합니다.

    두 다이제스트가 일치하지 않으면 서명이 확인되지 않고 프라이빗/퍼블릭 키가 일치하지 않거나 데이터가 서명된 후 데이터가 변경되었거나 둘 다 변경되었습니다.

다음 절차와 같이 단일 함수인 CryptVerifyMessageSignature를 사용하여 서명을 확인할 수 있습니다.

서명된 메시지를 확인하려면

  1. 서명된 메시지에 대한 포인터를 가져옵니다.
  2. 서명된 메시지의 크기를 가져옵니다.
  3. 암호화 공급자에 대한 핸들을 가져옵니다.
  4. CRYPT_VERIFY_MESSAGE_PARA 구조를 초기화합니다.
  5. CryptVerifyMessageSignature를 호출하여 서명을 확인합니다.

이 절차를 구현하는 코드는 예제 C 프로그램: 메시지 서명 및 메시지 서명 확인에 포함되어 있습니다.