개발 공부
(보안) RSA - 전자서명 - PKI 본문
비밀 통신 시작
A와 B가 비밀통신한다고 가정
1. A는 RSA 공개키를 B에게 줌
2. B는 AES키를 생성해 A의 공개키로 암호화 시켜 A에게 보냄
3. A는 받은 암호화된 메시지를 A의 개인키로 풀어 AES키를 획득
4. 그 이후 통신은 AES키로 암호화 시켜 전달한다.
이 과정속에서 해커가 메시지를 가로채서 해독하기는 어렵겠지만,
B가 해커라면, 비밀통신하는 의미가 없어진다.
B가 그 B가 맞는지 입증할 수 있어야 한다.
일반적인 B입증 방법
1. 제 3의 인증기관(CA)이 필요하다.
인증서 비용이 매년 발생하게 된다.(물론 무료도 있다.)
B는 사전에 B의 공개키+서버 주소등을 CA에 주고,
CA는 B가 준 정보를 CA의 개인키로 암호화시킨 인증서로 만들어 B에게 준다.
2. A는 CA의 공개키를 갖고 있어야 하며,
B에게서 받은 인증서를 CA 공개키로 복호화하여 서버 주소와 B의 공개키를 얻어낼 수 있다면,
B가 입증되는 것이다.
3. A는 AES키를 생성해 B의 공개키로 암호화하여 전송
4. B는 B의 개인키로 A의 메시지를 복호화하여 AES키 획득
5. 이후 통신부터는 AES로 암호/복호화 한다.
비대칭키 암호화 vs. 비대칭키 전자서명
1. 비대칭키 암호화
- 내가 뿌린 공개키로 암호화한 메시지를 내가 받아 나만 가지고 있는 비밀키로 열어볼 수 있음
2. 비대칭키 전자사면
- 나만 가지고 있는 비밀키로 암호화한 내용을 내가 뿌린 공개키로 열어볼 수 있음(누구나 내용을 볼 수는 있지만 암호화에 쓰인 비밀키는 한 곳에만 있으므로 이 내용을 열어보는 사람은 이 내용이 내가 작성한 거라는 걸 신뢰하게 됨)
기타
RSA : Ron Rivest, Adi Shamir and Leonard Adleman
사진출처 : https://ko.wikipedia.org/wiki/%EA%B3%B5%EA%B0%9C_%ED%82%A4_%EA%B8%B0%EB%B0%98_%EA%B5%AC%EC%A1%B0
내용출처 : http://yakolla.tistory.com/117
'IT 상식' 카테고리의 다른 글
(용어, 이론) 무어의 법칙 (0) | 2018.09.30 |
---|---|
(보안) RSA 암호화 (0) | 2018.09.27 |
(개발) python 강의 모음 (0) | 2018.08.22 |
(기타) lorem ipsum (0) | 2018.08.22 |
(개발) 장고 소개 (0) | 2018.08.22 |
Comments