문제점 : 공통키 전달 과정에서 해커 X가 키를 훔쳐볼수 있음(키 배송의 문제), 키관리문제(각각 요청마다 공통키를 만들어야함)
공개키(비대칭 암호)
A(요청), B(응답)
암호화와 복호화에 다른 키를 사용한느 방식
암호화(공개키)와 복호화(비밀키)로 구분
장점 : 공개키는 인터넷 상에 공개해도 되기 때문에 불특정 다수와 데이터를 교환하기 좋음
단점 1: 공개키의 신뢰도 문제(해커 X가 B가 A에게 공개키를 보낼 때 자신이 만든 X-공개키로 바꿔치기함 -> A가 X-공개키로 암호화한 데이터를 B에게 보낼때 다시 가로채 X-비밀키로 복호화 -> B의 공개키로 암호화 해서 B로 전송), man in the middle 공격
단점 2: 암호화와 복호화에 시간이 오래 걸림
해결 : 단점 1 -> 전자인증서, 단점 2-> 공통키와 공개키 결합
공통키 && 공개키
SSL/TLS에서 사용
키 분배 문제는 공개키로 해결하고 암호화와 복호화가 오래 걸리는 문제는 공통키로 해결
공개키로 A에서 B로 공통키를 암호화 하여 전송, B는 비밀키로 복호화하여 그 이후부터는 공통키로 암호화 및 복호화
전자 서명
인증, 변조 검출, 부인 방지 기능(메시지가 중간에 해커에 의해 변조되지 않았는지 확인)
A는 메시지, 비밀키, 공개키를 준비해 B에게 공개키를 전달함
A는 비밀키를 사용해서 메시지의 요약본을 암호화(이것이 전자 서명), 메시지와 서명을 B에게 전송
B는 공개키를 사용해서 서명 복호화
복화한 메시지와 받은 메시지가 일치하는지 확인
암호화 복호화 시간을 줄이기 위해 메시지의 해시값을 암호화 해서 비교함
문제점 : B는 데이터를 보내온 이가 A인지 A를 가장한 해커인지 알 수 없음, 즉 A의 신원 인증이 필요함 -> 전자 인증서로 해결