SSL / TLS (Secure Socket Layer / Transport Layer Security)
- SSL을 참고하여 표준화되고 보안 강화된 것이 TLS
- HTTPS 통신 시, SSL/TLS 인증서를 활용
1. 클라이언트가 서버에 요청 : 랜덤 데이터, 암호화 방식 리스트, Session ID 등의 정보를 전송
2. 서버의 응답 : 랜덤 데이터, 선택된 암호화 방식 정보, 인증서(인증서 안에 서버의 공개키가 있음) 전송
3. 클라이언트에 내장된 CA 리스트 중, 해당 서버 CA의 공개키를 이용하여 인증서 복호화 : 복호화가 성공하는 경우 인증서를 전송한 서버가 공인된 CA임을 보장함
4. 서버와 클라이언트의 랜덤 데이터를 조합하여 pre master secret 생성 후 서버의 공개키로 이 값을 암호화해서 전송
5. 서버와 클라이언트는 pre master secret를 기반으로 master secret -> session key 값을 차례로 만들어 대칭키를 만듬
6. Handshake 종료
전자서명(인증)
- 비공개키를 가진 사람이 자신의 정보를 암호화하여 공개키를 갖고 있는 사람에게 전송
- 공개키와 개인키의 관계를 역이용
- 데이터를 받은 사람이 공개키로 복호화가 가능할 경우, 비공개키(비밀키)를 가진 사람이 해당 데이터를 보냈다는 것을 보증할 수 있음
인증서
1. 클라이언트가 접속한 서버가 신뢰할 수 있는 서버임을 보장
2. SSL 통신에 사용할 서버 측의 공개키를 클라이언트에게 제공
3. 인증서를 발급한 CA, 서비스의 도메인 등 서비스 정보가 포함됨
https의 암복호화 방식
1. 서버에서 비밀 키로 response 메시지를 전부 암호화해서 클라이언트에게 전달
2. 클라이언트는 해당 사이트의 인증서를 확인하여 인증기관으로부터 공개키를 발급받음
3. 발급 받은 공개키로 해당 사이트의 암호화된 response 메시지를 복호화
CA (Certificate Authority) 또는 Root Certificate
- 인증서를 구입하는 기관
- CA는 서비스의 신뢰성을 다양한 방법으로 평가
- 브라우저가 공인된 CA 리스트를 보유하고 있음
사설 인증기관
- 개발이나 사적인 목적을 위해서 SSL 암호화 기능을 이용하려면 사용자가 직접 CA의 역할을 할 수도 있음
- 사설 CA 인증서를 활용할 경우 https를 통해 SSL 통신은 가능하지만 경고를 발생시킴
PKI
- 공개키 기반의 인증서를 통해 서로 간의 신뢰할 수 있는 구조
- 인증서의 관리에 필요한 역할, 정책 등 일련의 절차들의 집합
- CA는 최상위 기관이라 개인에게 인증서를 바로 발급해주는 건 무리고, 인증서 체인 형태로 관리함
- CA로부터 인증 받은 상위 인증기관 또한 인증서를 만들어주므로, 인증서 체인형태로 상호 보증 가능
출처
https://saysecurity.tistory.com/16
https://waspro.tistory.com/161
https://opentutorials.org/course/228/4894
https://vitalholic.tistory.com/368
'IT > Security' 카테고리의 다른 글
대칭키, 비대칭키 암호화 (0) | 2022.02.12 |
---|
댓글