Security/보안

[보안 8] 디지털 서명(Digital Signature)

snowkit 2024. 12. 1. 10:41

설명

  • 메세지 인증 코드(MAC)에 부인 방지를 추가한 보안 기술
  • 클라이언트가 공개키 개인키 쌍을 생성 후 개인키로 암호화, 서버에 공개키 전송
    • 비대칭키 암호에선 클라이언트가 서버의 공개키로 암호화, 서버가 개인키로 복호화했지만 디지털 서명은 반대
    • 공개키로 복호화 되기에 암호로서는 의미가 없지만, 이 개인키로 암호문을 생성할 수 있는 건 1명 밖에 존재하지 않음이 보장됨

실제 사용 예시

디지털 서명 생성

  1. A가 B에게 암호문을 전송하려고 함
  2. A가 공개키와 개인키 쌍 생성
  3. A가 B에게 공개키 전송
  4. A가 암호문 해싱
    • 암호문 전체를 비대칭키로 암호화하면 시간이 오래 걸리기 때문
  5. A가 해시값을 개인키로 암호화
  6. A가 B에게 암호문과 암호화된 해시값 전송

디지털 서명 검증

  1. B가 암호문 해싱
  2. B가 디지털 서명을 공개키로 복호화
  3. 암호문 해시값과 복호화한 해시값 동일한지 검증

단점

  • A가 아닌 공격자와 데이터를 주고 받았을 가능성 존재
    • 공개키가 누구 것인지 알 수 없기 때문
    • 디지털 인증서(공개키 작성자 보증)를 사용하여 해결