중간에서 공격자가 다른 사람으로 가장한 체 공개 키를 가로채서 변조할 수 있다.
자신의 public key 그냥 뿌림
-> 위험
게시판 같은 곳에 public key 업로드함
-> 위험
중간에 진짜 public key들을 가진 Public-key Authority를 두고 이 곳에 물어봐서 다른 사람의 public key를 얻어옴.
ex) Alice가 Bob에게 메시지를 보내려고 한다.
Bob이 Public-key Authroity가 해준 서명(인증서)과 함께 자신의 public key를 Alice에게 보내줄 수도 있다.
즉, 서로를 인증할 때, 매번 동사무소 같은 authority에 상대방의 신원을 물어서 증명하는 것이 아니라, 본인이 스스로 authority에 증명받아 수령한 신분증을 보여줌으로써 스스로를 증명하는 것과 같다.
ex) Alice가 Bob에게 자신의 public key를 보낸다.
Alice는 {Certificate, 자신의 public key, 자신의 서명}을 함께 보낸다.
Bob은 Certificate를 통해 Alice public key가 확실함을 인증할 수 있다.
즉, 인증서(certificate)와 자기 서명 두 가지를 통해 자신의 public key를 인증할 수 있다.
하지만 CA(인증 기관)의 공개 키가 없으면 인증할 수 없다.
아래 보이는 그림처럼 계층적으로 CA를 둔다.
C와 A의 인증은 X가 해준다.
A와 B를 인증해줄 CA가 바로 보이지 않는데, 각각 위로 거슬러 올라가 V에게 인증을 받으면 된다.
출처
https://hororolol.tistory.com/479?category=897521
[Cryptography and Network Security: Principles and Practices]