작성이유
회사 업무중 한가지로 SSL 인증서 교체 작업을 하게 되었었다. 그러다가 "SSL이 보안적으로 안전하다" 정도는 알지만 해당 인증서가 어떤 내용이며, 어떻게 작동하는지 알고 싶어서 찾아본 내용을 기록한다.
SSL/TLS 인증서란?
- SSL : Secure Socket Layer
- TLS : Transfer Layer Scurity
인터넷 상에서 웹 브라우저와 서버간에 주고받는 데이터를 암호화하여 안전하게 통신을 해야하는데,
이때 암호화 통신을 가능하게 하는 제 3의 신뢰기관이 인증한 인증서
SSL/TLS 인증서 작동 방법
[SSL/TLS 핸드셰이크]
핸드셰이크는 클라이언트와 서버간의 메세지 교환이며, HTTPS 웹에 처음 커넥션할 때 진행된다.
핸드셰이크의 단계는 클라이언트와 서버에서 지원하는 암호화 알고리즘, 키 교환 알고리즘에 따라 달라진다.
일반적으로는 RSA 키 교환 알고리즘이 사용된다.
RSA 키 교환 알고리즘 순서
1. 클라이언트 -> 서버 메세지 전송 - 이때 핸드셰이크가 시작된다. 이 메세지에는 TLS 버전, 암호화 알고리즘, 무작위 바이트 문자열이 포함된다.
2. 서버 -> 클라이언트 메세지 전송 - 클라이언트의 메세지에 응답으로 서버의 SSL인증서, 선택한 암호화 알고리즘, 서버에서 생성한 무작위 바이트 문자열을 포함한 메세지를 전송한다.
3. 인증 - 클라이언트가 서버의 SSL인증서를 인증 발행 기관에 검증한다.
4. 예비 마스터 암호 - 클라이언트는 무작위 바이트 문자열을 공개 키로 암호화된 premater secret 키를 서버로 전송한다.
5. 개인 키 사용 - 서버가 premaster secret 키를 개인 키를 통해 복호화한다. (개인 키로만 복호화 가능)
6. 세션 키 생성 - 클라이언트와 서버는 클라이언트가 생성한 무작위 키, 서버가 생성한 무작위 키, premaster secret 키를 통해 세션 키를 생성한다. 양쪽은 같은 키가 생성되어야 한다.
7. 클라이언트 완료 전송 - 클라이언트는 세션 키로 암호화된 완료 메세지를 전송한다.
8. 서버 완료 전송 - 서버도 세션 키로 암호화된 완료 메세지를 전송한다.
9. 핸드셰이크 완료 - 핸드셰이크가 완료되고, 세션 키를 이용해 통신을 진행한다.
인증서 종류 및 유형
인증서는 적용되는 도메인의 개수 및 유효성 검사 수준에 따라 유형이 나뉜다.
적용되는 도메인 개수에 따른 유형
- 단일 도메인 (single domain) - 단 하나의 도메인에만 적용이 가능한 인증서
- 와일드카드(wildcard) - 단일 도메인의 인증서처럼 하나의 도메인에만 적용되지만, 해당 도메인의 하위 도메인도 포함 (A name 영역까지 적용이 된다)
- ex) www.slowtuttle.co.kr, notion.slowtuttle.co.kr, tistory.slowtuttle.co.kr
- 멀티 도메인 (multi domain) - 관련되지 않는 여러 도메인에 적용할 수 있는 인증서
유효성 검사 수준에 따른 유형
- 도메인 유효성 검사 (Domain Validation) - 가장 느슨한 수준의 유효성 검사, 기업이 도메인을 관리하고 있다는 단순 증명
- 조직 유효성 검사 (Organization Validation) - 인증서 발급 시 CA가 기업을 확인하여 증명(사업자 등록증, 신청자 등)
- 확장 유효성 검사 (Extended Validation) - CA는 조직이 존재하고 법적으로 사업자로 등록되어 있는지, 유효한 주소인지 등을 확인한다. 그만큼 시간이 오래걸리고 비용도 많이 들지만, 가장 큰 신뢰를 제공한다.
SSL/TLS 차이?

SSL/TLS 어떤게 맞나?
SSL은 1996년 SSL 3.0 이후 업데이트되지 않았으며, 앞으로 사라지게 될 것으로 여기지고 있다.
또한 알려진 취약성이 여러가지 있으며 보안 전문가들은 SSL 사용 중단을 권장한다고 한다.
TLS는 최신 암호화 프로토콜로, SSL 암호화로 혼용해서 부르는 경우도 많다.
실제로 현재 SSL을 인증한 업체 및 제공하는 업체는 사실상 TLS 암호화를 제공하고 있는것이다.
refs
ssl이란? : https://kanoos-stu.tistory.com/46
SSL이란?, SSL과 TLS 정의 및 차이
스프링 부트를 사용한 예제 애플리케이션을 AWS를 통해 모노리식에서 MSA로 MSA에서 다시 컨테이너 오케스트레이션으로 개선해나가는 과정을 모두 담은 강의를 출시하게 되었습니다.강의 과정에
kanoos-stu.tistory.com
SSL/TLS 차이 : https://powerdmarc.com/ko/difference-between-ssl-and-tls/
SSL과 TLS: 차이점, 비교 등!
두 프로토콜 모두 인터넷을 통해 전송되는 데이터를 암호화하지만, SSL과 TLS에는 뚜렷한 차이가 있습니다.
powerdmarc.com
'infra > 기타' 카테고리의 다른 글
| Rocky Linux 커널 업데이트 방지 (0) | 2024.08.20 |
|---|---|
| letsencrypt SSL 인증서 발급받기 (1) | 2024.07.12 |
| Apache + Tomcat 환경 분리(window) (0) | 2024.07.05 |
| 리눅스 날짜 및 언어 설정 (1) | 2024.07.04 |
| VScode + EC2 SSH, SFTP 연결 (0) | 2024.06.27 |