MySQL 8.0 마이너 버전 별 변경된 SSL/TLS 지원 내역

Share

Last Updated on 11월 11, 2023 by Jade(정현호)

안녕하세요 
이번 포스팅에서는 SSL 통신에서 사용되는 프로토콜 관련하여 MySQL 8.0 마이너 버전 별로 지원 현황 및 최근에 변경된 내용에 대해서 확인하려고 합니다. 

SSL(Secure Sockets Layer)

보통 Client 와 Server의 통신은 기본적으로 일반적인 통신, 즉 평문으로 서로 간의 통신을 하게 됩니다.

요즘의 IT 환경은 보안적으로 여러 위험이 대두되고 있고 보안을 중요하게 생각을 하고 그에 따라 웹 사이트의 경우 SSL 을 사용한 HTTPS 로 구성/운영 하는 사이트를 이전보다는 이제 손쉽게 많이 볼 수 있습니다.

SSL(Secure Sockets Layer) 에 대해서 간단하게 언급을 한다면 1994년 Netscape 사에 의해 개발된 보안 기술로써 Secure Sockets Layer 의 약자이고 현재는 표준적인 보안 기술로 사용되고 있으며 SSL 사용시 Sniffing 과 phishing 를 방지할 수 있습니다.

manageengine.com/what-is-ssl [L]


우리나라의 몇 가지 정보통신망 또는 개인정보 보호 관련 법적 내용에서 개인정보 및 인증정보의 송수신할 때는 보안서버(SSL/HTTPS) 를 구축해서 사용 해야함이 명시도 되어있기도 합니다

그 만큼 우리가 알게 모르게 웹 사이트를 이용하면서 SSL 을 지금도 이용중이며 SSL 미사용 사이트라도 로그인 할 때나 결제 페이지에서는 HTTPS 로 전환되는 모습도 종종 볼 수 가 있기도 합니다.

MySQL 과 같은 DB는 외부에서 직접 접속을 하는 형태보다는 내부에서 Backend 형태로 다른 API 나 WAS 와 같은 Backend 시스템과의 통신하는 것이 보통이지만, 접속하는 클라이언트(웹, WAS, PC 등) 간의 통신에서 오고 가는 데이터가 평문으로 전송시에 스니핑 공격에 의해서 전송 패킷 내용이 확인될 수도 있는 부분이 있기 때문에 가능한 환경이라고 한다면 지금같이 SSL 사용이 보편적인 부분에 맞춰서 MySQL 에서 SSL을 사용하는 것도 좋은 선택이 될 수도 있을 것 같습니다.
      

MySQL 8.0 에서의 TLS 지원 변경 사항

MySQL 8.0 에서는 TLS 지원에 대한 변경 내역은 아래와 같습니다.

• MySQL 8.0.15 : TLSv1.0 , 1.1 , 1.2 지원
• MySQL 8.0.16 : 해당 버전 부터 TLSv 1.3 을 지원
MySQL 8.0.26 : TLSv1.0 과 1.1 버전에 대해서 Deprecated 되었음
MySQL 8.0.28 : TLSv1.0 과 1.1 버전이 Remove 됨

참고로 MySQL 5.6과 5.7 버전의 SSL/TLS 에 대한 정보는 이전의 포스팅을 참조하시면 됩니다.

       

TLS 지원 변경에 따른 고려 사항

MySQL 8.0.26 버전부터 Deprecated 및 8.0.28 버전에서 Removed 된 TLSv1.0 과 TLS v1.1 에 관련해서 MySQL 8 버전을 해당 마이너 버전으로 업그레이드 및 신규 설치 사용시에 고려해야 할 부분이 될 수도 있습니다.

애플리케이션에서 사용하는 Driver 버전이나 언어의 버전에 따라서 사용 가능한 TLS 버전이 정해져 있습니다.

그렇기 때문에 조금 오래된 드라이버나 버전을 사용할 경우, 해당 환경이 TLSv1.0 이나 1.1 까지만 지원하는 경우 MySQL 8.0.28  버전 부터 접속 시 SSL SSL Handshake 관련 에러가 발생되면서 접속이 안될 수도 있습니다.

현재 접속한 세션들이 SSL/TLS 를 사용하는지, 사용하면 몇 버전으로 접속하는 지에 대한 정보는 아래 쿼리로 조회하여 확인하시면 됩니다.

SELECT id, user, host, connection_type
      FROM performance_schema.threads pst
      INNER JOIN performance_schema.processlist isp
      ON pst.processlist_id = isp.id
order by 4;


SELECT
    session_ssl_status.thread_id, 
    session_ssl_status.ssl_version,
    session_ssl_status.ssl_cipher, 
    session_ssl_status.ssl_sessions_reused
FROM sys.session_ssl_status;


[참고] information_schema.processlist가 향후 Removed 될 수 있는 부분이 있어서 performance_schema.processlist 로 변경하였습니다. 관련된 내용은 다음 포스팅을 참조하시면 됩니다.

      

Reference

Reference Link
 • dev.mysql.com/deprecated-protocols
 • dev.mysql.com/news-8-0-26
 • dev.mysql.com/faq-mysql-tls-versions
 • dev.mysql.com/protocols-ciphers


관련된 다른 글

 

 

                 

0
글에 대한 당신의 생각을 기다립니다. 댓글 의견 주세요!x