Computer >> Máy Tính >  >> Lập trình >> MySQL

Bật TLS cho Máy khách MySQL


TLS còn được gọi là SSL (Lớp cổng bảo mật). Nó đề cập đến Bảo mật tầng truyền tải.

Khi có một kết nối không được mã hóa giữa máy khách MySQL và máy chủ, một người có quyền truy cập vào mạng có thể xem tất cả lưu lượng và kiểm tra dữ liệu đang được gửi hoặc nhận giữa máy khách và máy chủ. Khi người dùng muốn di chuyển thông tin qua mạng theo một phương thức an toàn, kết nối không được mã hóa sẽ không được chấp nhận.

Để làm cho bất kỳ loại dữ liệu nào không thể đọc được, phải sử dụng mã hóa. Các thuật toán mã hóa thường bao gồm các yếu tố bảo mật giúp chống lại nhiều loại tấn công đã biết, một số trong số đó bao gồm việc thay đổi thứ tự của các thông điệp được mã hóa hoặc phát lại dữ liệu hai lần. MySQL hỗ trợ kết nối được mã hóa xảy ra giữa các máy khách và máy chủ, nơi cả hai đều sử dụng giao thức TLS. Nhưng MySQL không sử dụng giao thức SSL cho các kết nối được mã hóa vì mã hóa yếu.

TLS sử dụng các thuật toán mã hóa để đảm bảo rằng dữ liệu được nhận qua mạng công cộng là dữ liệu đáng tin cậy. Nó có nhiều cách để phát hiện sự thay đổi, mất mát hoặc phát lại dữ liệu. LS cũng sử dụng các thuật toán đi kèm với xác minh danh tính với sự trợ giúp của tiêu chuẩn X.509.

Các bước để bật TLS

MySQL thực hiện mã hóa trên cơ sở mỗi kết nối. Mã hóa cho một người dùng nhất định có thể là tùy chọn hoặc bắt buộc. Điều này cho phép người dùng chọn kết nối được mã hóa hoặc không được mã hóa tùy thuộc vào yêu cầu của ứng dụng.

Hãy cho chúng tôi hiểu cách TLS có thể được kích hoạt cho các máy khách MySQL:

  • Các tham số ssl-cert và ssl-key trong tệp cấu hình phải được chỉ định khi máy chủ được khởi động.
  • Chứng chỉ hoặc khóa được ký và tạo với sự trợ giúp của OpenSSL.
  • Khóa này cũng có thể được tạo bằng công cụ mysql_ssl_rsa_setup trong MySQL:
    mysql_ssl_rsa_setup --datadir=./certs
  • Nếu các thông số chính xác, một kết nối an toàn sẽ được chuyển làm đầu ra được kích hoạt khi nó khởi động.
  • Chứng chỉ, khoá và CA được tải lại- Câu lệnh ALTER INSTANCE RELOAD TLS được thực thi trên phiên bản máy chủ. Điều này đảm bảo rằng phiên bản máy chủ sẽ không phải tải lại.
  • Chứng chỉ, khóa và CA mới được tải sẽ có hiệu lực sau khi kết nối được thiết lập được thực thi thành công.
  • Máy khách MySQL được định cấu hình để sử dụng các kết nối được mã hóa- Một kết nối được mã hóa được cố gắng thiết lập theo mặc định. Nếu máy chủ không hỗ trợ kết nối được mã hóa, kết nối không được mã hóa sẽ tự động được trả về.
  • Có thể thay đổi hành vi kết nối của ứng dụng khách bằng cách sử dụng các tham số --ssl-mode:
    --ssl-mode=REQUIRED- Tells that en encrypted connection is needed.

Xác thực cần được bật:Nếu tham số ssl-ca không được chỉ định, máy khách hoặc máy chủ không xác thực theo mặc định.

  • Các tham số ssl-cert và ssl-key phải được chỉ định trong máy chủ.
  • Tham số --ssl-ca được chỉ định trong máy khách MySQL.
  • Chế độ --ssl được chỉ định cho VERIFY_CA trong máy khách MySQL.
  • Chứng chỉ (ssl-cert) được định cấu hình trong máy chủ được ký bởi CA do tham số client --ssl-ca chỉ định.
  • Nếu không, xác thực không thành công.

Để xác thực máy khách MySQL từ máy chủ:

  • Các thông số ssl-cert, ssl-key và ssl-ca là máy chủ được chỉ định.
  • Các tham số --ssl-cert và --ssl-key được chỉ định trong ứng dụng khách.
  • Chứng chỉ do máy chủ định cấu hình và chứng chỉ do máy khách định cấu hình được ký bởi ssl-ca do máy chủ chỉ định.
  • Xác thực giữa máy chủ với máy khách là tùy chọn. Nếu khách hàng không hiển thị chứng chỉ nhận dạng của họ trong quá trình bắt tay TLS thì kết nối TLS vẫn được thiết lập.
  • Kiểm tra xem kết nối hiện tại có sử dụng bất kỳ mã hóa nào không.