SSL(보안 소켓 계층)은 데이터 암호화, 인증, 메시지 무결성 검증 메커니즘을 사용하여 TCP와 같은 신뢰할 수 있는 연결을 기반으로 한 애플리케이션 계층 프로토콜에 보안 보증을 제공합니다. 사용자의 전송이 SSL을 통해 이루어지지 않는다면, 데이터는 네트워크를 통해 평문으로 전송되어, 숨은 의도를 가진 사람들에게 기회를 열어줍니다. 따라서 많은 대형 웹사이트들이 이제 SSL 기능을 활성화하고 있습니다. 마찬가지로 우리 데이터베이스에서는 클라이언트가 SSL 연결 대신 서버에 접속해 데이터를 얻으면, 전송 중에 데이터가 도난당할 수 있습니다.
SSL 프로토콜이 제공하는 주요 기능은 다음과 같습니다:
1. 데이터 전송의 기밀성: 전송된 데이터는 대칭 키 알고리즘을 사용하여 암호화됩니다. 2. 인증 메커니즘: 인증서를 기반으로 서버와 클라이언트는 디지털 서명 방식으로 인증되며, 클라이언트의 인증은 선택 사항입니다. 3. 메시지 무결성 검증: MAC 알고리즘은 메시지 전송 중 메시지의 무결성을 검증하는 데 사용됩니다.
.NET/C#을 사용해 MySQL 데이터베이스를 운영할 때,SslMode의 기본 값은 선호(Preferred)입니다서버가 지원한다면 SSL을 사용하세요.
하이퍼링크 로그인이 보입니다.
기본 방법을 사용할 때, 많은 동시성이 발생할 경우 오류는 다음과 같을 수 있습니다:
영어 메시지: 연결 열려 있음 오류. 호스트 '192.168.1.100'에 대해 사용자 'mysql_native_password' 메서드를 사용해 인증에 실패했습니다. 메시지: 스트림 읽기에 실패함.
연결 열림 오류. 연결 오류: 타임아웃 만료. 타임아웃 기간은 풀에서 연결을 얻기 전에 경과되었습니다. 이는 모든 풀 연결이 사용 중이고 최대 풀 크기에 도달했기 때문에 발생했을 수 있습니다.
SSL 사용은 데이터 전송의 보안을 보장하지만, 쿼리 및 실행 효율성을 떨어뜨려 데이터베이스와 프로그램에 대한 부담을 증가시킵니다. 우리 데이터베이스는 사설 네트워크 환경에 있기 때문에 비교적 매우 안전하며, 전송 암호화가 필요 없으므로 SSL 암호화 없이도 효율성과 성능을 향상시킬 수 있습니다.
SSL 성능 비교 전후 (QPS):하이퍼링크 로그인이 보입니다.
테스트 데이터를 보면, SSL을 활성화한 후 데이터베이스 QPS가 평균적으로 약 23% 감소하여 상대적으로 성능에 영향을 미칩니다. SSL 구현 관점에서 보면, 연결을 구축할 때 악수, 암호화, 복호화 등 다양한 작업이 필요합니다. 따라서 소요 시간은 주로 연결 단계에 집중되며, PHP 개발과 같이 짧은 링크를 사용하는 애플리케이션에서는 성능 저하가 더 클 수 있습니다. 하지만 연결 풀이나 긴 연결을 사용하는 것이 훨씬 나을 수 있습니다.
성능을 향상시키기 위해 연결 문자열을 다음과 같이 수정하세요:
(끝)
|