보안

SSL/TLS (Secure Sockets Layer/Transport Layer Security)

타우루스 2025. 9. 2. 21:16

SSL/TLS 프로토콜에 대해 설명해 드리겠습니다.


1. SSL/TLS란 무엇인가요?

SSL(Secure Sockets Layer)과 TLS(Transport Layer Security)는 인터넷을 통해 데이터를 안전하게 주고받기 위한 암호화 프로토콜입니다. 웹 브라우저와 웹 서버 간의 통신을 보호하는 데 주로 사용되며, 데이터의 기밀성, 무결성, 그리고 송신자 인증을 보장합니다. TLS는 SSL의 후속 버전으로, 현재는 TLS가 주로 사용되지만, "SSL"이라는 용어가 여전히 널리 통용되고 있습니다.

 

SSL/TLS의 필요성 (정보 유출 방지)

 

2. SSL/TLS의 주요 기능

SSL/TLS는 크게 세 가지 주요 기능을 제공합니다.

  1. 암호화 (Encryption): 통신하는 데이터가 제3자에게 노출되더라도 내용을 알아볼 수 없도록 암호화합니다.
  2. 데이터 무결성 (Data Integrity): 전송 중 데이터가 위변조되지 않았음을 보장합니다.
  3. 인증 (Authentication): 클라이언트가 접속하는 서버가 신뢰할 수 있는 서버임을 확인합니다.

SSL/TLS의 3대 기능

 

 

3. SSL/TLS 핸드셰이크 (Handshake) 과정

SSL/TLS 핸드셰이크는 클라이언트와 서버가 암호화된 통신을 시작하기 전에 서로를 인증하고 암호화 키를 교환하는 과정입니다. 이 과정은 여러 단계로 이루어집니다.

 

SSL/TLS 핸드셰이크 과정 개요

 

SSL/TLS 핸드셰이크 과정

 

 

설명:

  1. ClientHello: 클라이언트가 서버에 연결을 요청하면서 자신이 사용할 수 있는 TLS 버전, 암호화 방식(Cipher Suites), 압축 방식 등을 서버에 알립니다.
  2. ServerHello, Server Certificate, Server Key Exchange, ServerHelloDone: 서버는 클라이언트의 ClientHello를 받아들여, 클라이언트가 제안한 것 중 하나를 선택하여 자신의 TLS 버전, Cipher Suite, 압축 방식을 클라이언트에 알립니다. 또한 서버의 공개 키가 포함된 SSL/TLS 인증서를 클라이언트에 전송하고, 키 교환에 필요한 추가 정보(Server Key Exchange)를 보낸 후 ServerHelloDone 메시지로 응답을 마칩니다.
  3. 인증서 검증: 클라이언트는 서버로부터 받은 인증서의 유효성을 검증합니다. 이 과정에서 인증서를 발행한 CA(인증기관)의 신뢰성을 확인하고, 인증서가 위변조되지 않았는지, 유효 기간은 지났는지 등을 확인합니다.
  4. ClientKeyExchange, ChangeCipherSpec, Encrypted Handshake Message: 클라이언트는 서버 인증서의 공개 키를 이용하여 PreMasterSecret라는 대칭 키를 암호화하여 서버에 전송합니다. 이후 ChangeCipherSpec 메시지를 보내 앞으로의 통신은 암호화될 것임을 알리고, 암호화된 Finished 메시지를 보냅니다.
  5. ChangeCipherSpec, Encrypted Handshake Message: 서버는 클라이언트로부터 받은 PreMasterSecret를 자신의 개인 키로 복호화하여 세션 키를 생성합니다. 그리고 클라이언트와 마찬가지로 ChangeCipherSpec과 암호화된 Finished 메시지를 보냅니다.
  6. 암호화된 통신 시작: 핸드셰이크가 성공적으로 완료되면, 클라이언트와 서버는 서로 합의된 세션 키를 사용하여 데이터를 암호화하여 주고받기 시작합니다.

4. SSL/TLS 인증서

SSL/TLS 인증서는 서버의 신원을 증명하고 공개 키를 포함하는 디지털 문서입니다. 인증기관(CA)에 의해 발급되며, 클라이언트가 서버의 신뢰성을 확인할 수 있도록 합니다.

 

5. 암호화 방식: 대칭키 및 비대칭키 암호화

SSL/TLS는 대칭키(Symmetric Key)와 비대칭키(Asymmetric Key) 암호화 방식을 모두 사용합니다.

  • 비대칭키 암호화 (Public-Key Cryptography): 공개키와 개인키 한 쌍을 사용합니다. 공개키로 암호화한 데이터는 개인키로만 복호화할 수 있고, 개인키로 암호화(서명)한 데이터는 공개키로 복호화(서명 검증)할 수 있습니다. SSL/TLS 핸드셰이크 과정에서 서버 인증서의 공개키로 대칭키(PreMasterSecret)를 암호화하여 전달하는 데 사용됩니다.
  • 대칭키 암호화 (Symmetric-Key Cryptography): 하나의 비밀키로 암호화와 복호화를 모두 수행합니다. 비대칭키 암호화보다 훨씬 빠르기 때문에, 실제 데이터 통신(암호화된 Application Data)에는 대칭키 암호화가 사용됩니다.

대칭키 vs 비대칭키 암호화

 

6. SSL/TLS의 구성 요소

SSL/TLS 프로토콜은 여러 계층(Layer)으로 구성되어 있습니다.

  1. TLS 레코드 프로토콜 (TLS Record Protocol): 상위 계층으로부터 받은 데이터를 조각내고, 압축하며, MAC(Message Authentication Code)을 추가하고, 암호화하여 TCP/IP 계층으로 전달합니다.
  2. TLS 핸드셰이크 프로토콜 (TLS Handshake Protocol): 서버 인증, 키 교환, 암호화 알고리즘 협상을 담당합니다. (앞서 설명드린 핸드셰이크 과정)
  3. TLS 변경 암호 명세 프로토콜 (TLS Change Cipher Spec Protocol): 암호화 방식이 변경됨을 알리는 단순한 메시지입니다.
  4. TLS 경고 프로토콜 (TLS Alert Protocol): SSL/TLS 통신 중 발생할 수 있는 경고나 오류를 알리는 데 사용됩니다.

 

SSL/TLS의 실제 활용과 관련된 내용들을 설명해 드리겠습니다.


7. HTTPS (HTTP Secure)

HTTPS는 SSL/TLS 프로토콜 위에서 동작하는 HTTP입니다. 즉, 기존 HTTP 통신에 SSL/TLS를 적용하여 보안 기능을 강화한 것입니다. 웹 브라우저 주소창에 "https://"로 시작하는 주소와 자물쇠 아이콘이 표시되면 HTTPS가 적용되어 안전하게 통신하고 있음을 의미합니다.

8. SSL/TLS의 다양한 활용 분야

SSL/TLS는 웹 통신(HTTPS) 외에도 다양한 인터넷 서비스에서 보안을 강화하기 위해 사용됩니다.

  • 이메일 통신: SMTPS (SMTP Secure), POPS (POP3 Secure), IMAPS (IMAP Secure) 등
  • 파일 전송: FTPS (FTP Secure)
  • 원격 접속: SSH(Secure Shell)는 자체적인 보안 메커니즘을 사용하지만, 유사한 암호화 및 인증 기능을 제공하며, 터널링 시 SSL/TLS와 함께 사용되기도 합니다.
  • VPN (Virtual Private Network): OpenVPN과 같은 일부 VPN 솔루션은 SSL/TLS를 기반으로 안전한 터널을 구축합니다.

SSL/TLS의 다양한 적용 분야

 

마지막으로 SSL/TLS의 장점, 단점, 그리고 미래 전망에 대해 간략히 설명해 드리겠습니다.


9. SSL/TLS의 장점과 단점

모든 기술과 마찬가지로 SSL/TLS도 장점과 단점을 가지고 있습니다.

 

장점:

  • 강력한 보안: 데이터 암호화, 무결성 검증, 서버 인증을 통해 통신 보안을 강력하게 보호합니다.
  • 사용자 신뢰 증진: 사용자들은 HTTPS를 통해 웹사이트가 안전하다는 것을 시각적으로 인지하고 신뢰감을 갖게 됩니다.
  • 검색 엔진 최적화(SEO) 혜택: Google과 같은 검색 엔진은 HTTPS를 사용하는 웹사이트에 가산점을 부여하여 검색 순위에 긍정적인 영향을 미칩니다.
  • 법적/규제 준수: 많은 산업 표준 및 규제(예: GDPR, CCPA)는 민감한 데이터 보호를 위해 SSL/TLS 사용을 의무화하고 있습니다.

단점:

  • 성능 오버헤드: 암호화 및 복호화 과정, 핸드셰이크 과정 등으로 인해 약간의 성능 저하가 발생할 수 있습니다. (하지만 현대 하드웨어의 발전으로 그 영향은 미미합니다.)
  • 설정 및 관리 복잡성: SSL/TLS 인증서 발급, 설치, 갱신 등의 과정이 초보자에게는 다소 복잡하게 느껴질 수 있습니다.
  • 비용: 유료 인증서의 경우 비용이 발생할 수 있습니다. (하지만 Let's Encrypt와 같은 무료 인증서도 널리 사용되고 있습니다.)

 

10. SSL/TLS의 미래 및 최신 동향

SSL/TLS는 끊임없이 발전하고 있는 프로토콜입니다. 더 강력한 보안, 더 빠른 성능, 그리고 새로운 위협에 대응하기 위해 지속적으로 개선되고 있습니다.

  • TLS 1.3: 현재 가장 최신 버전으로, 이전 버전에 비해 핸드셰이크 과정을 간소화하여 성능을 향상시키고, 더 강력한 암호화 알고리즘을 강제하여 보안을 강화했습니다.
  • 양방향 인증 (Mutual TLS, mTLS): 클라이언트와 서버 모두 서로의 신원을 인증하는 방식으로, IoT 기기나 마이크로서비스 간 통신 등 더욱 엄격한 보안이 요구되는 환경에서 적용이 확대되고 있습니다.
  • Post-Quantum Cryptography (PQC): 양자 컴퓨팅 시대에 기존 암호화 방식이 취약해질 수 있다는 우려에 따라, 양자 컴퓨터에도 안전한 새로운 암호화 알고리즘을 SSL/TLS에 통합하려는 연구와 개발이 활발히 진행 중입니다.

'보안' 카테고리의 다른 글

IPSec  (0) 2025.09.20
크로스 사이트 요청 위조 (Cross-Site Request Forgery, CSRF)  (0) 2025.09.03
크로스사이트 스크립팅 - Cross Site Scripting(XSS)  (0) 2025.09.02
SQL 인젝션 (Injection)  (0) 2025.09.02
Pharming  (1) 2025.09.02