
HTTP를 이용한 Handshake 방식
1. 서버측에서는 OPENSSL을 이용하여 서버에 대한 정보와 인증등이 담긴 인증서와, 공개키(비대칭키)를 인증기관(CA)에 등록
※ 비대칭키(공개키) : 공개키(Public Key), 개인키(Private Key)로 나누어지며, 공개키로 암호화를 하고, 개인키로 복호화함. 개인키가 분실되지 않는 한 안전하지만, 부하를 유발하는 단점이 있음. 개인키는 서버측에서 관리하고, 공개키는 인증기관에 등록하며, 이런한 키관리 기능이 웹브라우저 보안기능 내에 내장되어 있음 ※ 대칭키(공통키) : 암호화 및 복호화 시 사용하는 키가 동일하기 때문에 암호문을 주고 받는 대상간에 동일한 키를 보유하여야 함 ※ RSA : 현재 SSL/TLS에 가장 많이 사용되는 비대칭형 공개키 암호화 알고리즘으로 전세계 대부분의 인터넷 뱅킹(대한민국 포함)이 이 RSA-2048 암호화를 사용 공개키와 개인키가 한 쌍을 이루며, 공개키로 암호화한 내용은 개인키로만, 개인키로 암호화한 내용은 공개키로만 해독. 1977년 이 체제를 개발한 Ron Rivest, Adi Shamir, Leonard Adleman 세 사람의 성을 따서 RSA 라고 이름이 붙였음 ※ 3DES : 미국 상무국 표준국(NIST)이 1997년에 IBM사의 제안을 바탕으로 제정한 대칭형 데이터 암호화 표준 규격인 DES(Data Encryption Standard.평문(Plain Text)을 64비트로 나누고 그 중 56비트를 이용해 64비트 암호문 생성)을 각 데이터 블록에 세번 적용한(암호화->복호화->암호화) 트리플 데이터 암호화 알고리즘. ※ AES(Advanced Encryption Standard Algorithm) : DES의 안정성 문제로 1998년에 차세대 대칭형 블록 암호 알고리즘으로 개발. 입력 평문 길이를 128비트로 고정하고 사용하는 암호화 키 길이를 128/192/256비트 중 선택 ※ Hash : 복호화가 불가능하도록 암호화 하는 것을 의미하며, 암호화된 값을 다이제스트(Digest)라고 함. 복호화가 되지는 않지만 동일한 입력에 대해서는 동일한 입력값이 나오기 때문에 동일한 평문에 Salt(임의값)을 추가하여 암호화를 진행. MD5(Message Digest), SHA(Secure Hash Algorithm)
2. 클라이언트가 등록되어져 있는 공개키(비대칭키)로 공통키(대칭키)를 암호화하여 서버측에 전송서버측에서는 클라이언트에서 전송된 암호(공통키로 암호화된)를 개인키(비대칭키)를 사용하여 복호화하여 공통키를 흭득
3. 서버 및 클라이언트는 공통키를 사용하여 보안 통신을 수행 
Authentification(인증) : 넌 누구냐?
Authorization(권한부여) : 누군지는 알았고 너의 접근 권한은 뭐냐?
OPENSSL 만들기


