mysql caching_sha2_password
카테고리 없음 / 2023. 3. 13. 19:55
- 서버에서 caching_sha2_password 가 설정되면 connection string에 SslMode=none;ServerRsaPublicKeyFile=file.pem 옵션이 적용 가능함
- 해당 file.pem 을 얻기 위해 아래 명령은 mysql 서버에서 실행
SHOW STATUS LIKE 'Caching_sha2_password_rsa_public_key';
- 결과중 아래 형식만 file.pem으로 저장 후 메일로 전달 (아래는 일부러 비정상 파일을 만들었음 키 정합성이 맞지 않음)
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnbV9QkygOGEzBsUBU2Ac
Bnm/jBPs21lE7BxJRLudQx22s/0uXQAkG8e+O/sjGHLQlntUCYPMNQ4W3DNXLhXP
v/W4KHmbYsVcWbMn3kZeCiuy7QTR4BUmDq2+QUYB1bk9twzToD7lNUny5cP+88Lf
MjLF7bSYQCL3w+D53FKbnsT9uQSmS/+VhpNPWzrOZTJsiaSG/dDoCdx9fYhdUxWY
bYo1UEA+nGAtEF7eYJrTPeAFlWlgDmzj5cyWO1CpEfLnazWl/RhuHRxb8gI/T+nL
9qr0wLVZXt/ssEt74nolV5sKesX+QPQ8cJS3aWw4JDphqSMQaR2ZyAwX2nhYJlg8
jwIDAQAB
-----END PUBLIC KEY----- - 위 옵션은 .net 의 경우, Oracle의 MySQL.Data에서는 지원하지 않고 MySqlConnector 에서만 지원 가능함(23년 3월 13일 까지는 지원 안함)
- MySQL.Data와 MySqlConnector에서 SslMode=none;AllowPublicKeyRetrieval=true 옵션을 사용해 접근할 수 있고, 이 옵션은 MITM 공격에 취약함 (중간자 공격)
- 클라이언트에서 위 두 가지 방법중 아무것도 적용을 하지 않으면, 최초 접근이 실패하고 서버가 시작되고 한번이라도 성공한 커넥션이 있으면 접속 가능
https://mysqlconnector.net/connection-options/
https://mysqlconnector.net/troubleshooting/retrieval-public-key/
sha256_password_auto_generate_rsa_keys
caching_sha2_password_auto_generate_rsa_keys
default_authentication_plugin = caching_sha2_password