Digital signature

서명은 원문과 공개키로 검증되는 증거값이다

디지털 서명은 해시를 복호화하는 동작이 아니라, 메시지와 개인키로 만든 값을 원본 데이터와 공개키로 검증하는 절차입니다.

서명과 검증 단계

ordered steps
1 Data fixed

문서, 인증서 필드, payload처럼 바뀌면 안 되는 데이터를 정한다.

2 Sign

개인키 소유자가 data에 대해 signature를 만든다.

3 Send

data와 signature, 공개키로 이어지는 인증 정보를 함께 전달한다.

4 Verify

공개키, data, signature를 넣어 유효 또는 무효를 판정한다.

검증이 확인하는 것

matrix
검사통과 의미실패 신호
무결성서명 대상 데이터가 바뀌지 않았다한 글자만 바뀌어도 검증 실패
출처짝이 되는 개인키로 만든 서명이다다른 키로 만든 서명은 무효
맥락인증서 체인과 용도가 맞다신뢰할 수 없는 키면 연결 차단

TLS에서의 위치

checkpoints
CertificateVerify

서버는 핸드셰이크 transcript에 서명해 개인키 소유를 보인다.

인증서

브라우저는 공개키가 접속한 이름의 인증서 체인에 속하는지 확인한다.

대칭키와 구분

서명은 인증과 무결성 증명이고, 실제 데이터 보호는 AEAD 대칭키가 맡는다.