Phiên bản được hỗ trợ:hiện tại(17) /16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11 / 10

55.3. tỷ lệ kèo bóng đá

tỷ lệ kèo bóng đálà một khung để xác tỷ lệ kèo bóng đá trong các giao thức định hướng kết nối. Ngay bây giờ,PostgreSQLThực hiện hai cơ chế tỷ lệ kèo bóng đá, Scram-sha-256 và scram-sha-256-plus. Nhiều hơn có thể được thêm vào trong tương lai. Các bước dưới đây minh họa cách tỷ lệ kèo bóng đá được thực hiện nói chung, trong khi tiểu mục tiếp theo cung cấp thêm chi tiết về Scram-Sha-256 và Scram-Sha-256-Plus.

Lưu lượng thông báo tỷ lệ kèo bóng đá

  1. Để bắt đầu trao đổi tỷ lệ kèo bóng đá, máy chủ sẽ gửi một thông báo xác thực. Nó bao gồm một danh sách các cơ chế tỷ lệ kèo bóng đá mà máy chủ có thể chấp nhận, theo thứ tự ưa thích của máy chủ.

  2. Khách hàng chọn một trong các cơ chế được hỗ trợ từ danh sách và gửi thông báo SaslinitialResponse đến tỷ lệ kèo bóng đá chủ. Thông báo bao gồm tên của cơ chế đã chọn và phản hồi tỷ lệ kèo bóng đá khách ban đầu tùy chọn, nếu cơ chế được chọn sử dụng đó.

  3. Một hoặc nhiều tin nhắn phản ứng máy chủ và phản hồi của máy khách sẽ theo sau. Mỗi thử thách máy chủ được gửi trong một thông báo tỷ lệ kèo bóng đá thựcaSlContinue, sau đó là phản hồi từ máy khách trong một thông báo SASLResponse. Các chi tiết của các thông điệp là cụ thể về cơ chế.

  4. Cuối cùng, khi trao đổi xác tỷ lệ kèo bóng đá được hoàn thành thành công, máy chủ sẽ gửi một thông báo xác tỷ lệ kèo bóng đá, theo sau là một thông báo xác tỷ lệ kèo bóng đá. Xác thựcSlfinal chứa dữ liệu máy chủ từ khách hàng bổ sung, có nội dung đặc biệt với cơ chế xác tỷ lệ kèo bóng đá được chọn. Nếu cơ chế xác tỷ lệ kèo bóng đá không sử dụng dữ liệu bổ sung được gửi khi hoàn thành, thông báo xác tỷ lệ kèo bóng đá không được gửi.

Khi lỗi, máy chủ có thể hủy bỏ xác tỷ lệ kèo bóng đá ở bất kỳ giai đoạn nào và gửi errormessage.

55.3.1. Xác tỷ lệ kèo bóng đá scram-sha-256

Các cơ chế tỷ lệ kèo bóng đá đã triển khai tại thời điểm này làScram-sha-256và biến thể của nó với liên kết kênhScram-sha-256-plus. Chúng được mô tả chi tiết trongRFC 7677RFC 5802.

Khi Scram-Sha-256 được sử dụng trong PostgreSQL, tỷ lệ kèo bóng đá chủ sẽ bỏ qua tên người dùng mà tỷ lệ kèo bóng đá khách gửi trongtỷ lệ kèo bóng đá khách-đầu-Message. Tên người dùng đã được gửi trong thông báo khởi động được sử dụng thay thế.PostgreSQL11163_11335

Thông số kỹ thuật Scram chỉ ra rằng mật khẩu cũng có trong UTF-8 và được xử lý vớiSASLPREPThuật toán.PostgreSQLTuy nhiên, không yêu cầu UTF-8 được sử dụng cho mật khẩu. Khi mật khẩu của người dùng được đặt, nó được xử lý với SASLPREP như thể nó ở UTF-8, bất kể mã hóa tỷ lệ kèo bóng đá tế được sử dụng. Tuy nhiên, nếu đó không phải là chuỗi byte UTF-8 hợp pháp hoặc nó chứa các chuỗi byte UTF-8 bị cấm bởi thuật toán SASLPrep, mật khẩu thô sẽ được sử dụng mà không cần xử lý SASLPREP, thay vì ném lỗi. Điều này cho phép mật khẩu được chuẩn hóa khi nó ở UTF-8, nhưng vẫn cho phép sử dụng mật khẩu không UTF-8 và không yêu cầu hệ thống biết mã hóa mật khẩu nào.

Liên kết kênhđược hỗ trợ trong các bản dựng PostgreSQL với hỗ trợ SSL. Tên cơ chế tỷ lệ kèo bóng đá cho scram với liên kết kênh làScram-sha-256-plus. Loại liên kết kênh được sử dụng bởi PostgreSQL làTLS-server-end-point.

inScramKhông có liên kết kênh, máy chủ chọn một số ngẫu nhiên được truyền đến máy khách được trộn với mật khẩu do người dùng cung cấp trong băm mật khẩu truyền. Mặc dù điều này ngăn không cho băm mật khẩu được truyền lại thành công trong một phiên sau đó, nhưng nó không ngăn được máy chủ giả giữa máy chủ tỷ lệ kèo bóng đá và máy khách đi qua giá trị ngẫu nhiên của máy chủ và xác tỷ lệ kèo bóng đá thành công.

ScramVới ràng buộc kênh ngăn chặn các cuộc tấn công giữa các trung bình bằng cách trộn chữ ký của chứng chỉ tỷ lệ kèo bóng đá chủ vào băm mật khẩu truyền. Mặc dù tỷ lệ kèo bóng đá chủ giả có thể truyền lại chứng chỉ của tỷ lệ kèo bóng đá chủ thật, nhưng nó không có quyền truy cập vào khóa riêng phù hợp với chứng chỉ đó và do đó không thể chứng minh đó là chủ sở hữu, gây ra lỗi kết nối SSL.

Ví dụ

  1. Máy chủ gửi tin nhắn xác thực. Nó bao gồm một danh sách các cơ chế tỷ lệ kèo bóng đá mà máy chủ có thể chấp nhận. Đây sẽ làScram-Sha-256-PlusScram-Sha-256Nếu tỷ lệ kèo bóng đá chủ được xây dựng với hỗ trợ SSL, hoặc nếu không thì chỉ sau này.

  2. Khách hàng trả lời bằng cách gửi tin nhắn Saslinitialresponse, cho biết cơ chế đã chọn,Scram-Sha-256hoặcScram-Sha-256-Plus. .tỷ lệ kèo bóng đá khách-đầu-Message. Thetỷ lệ kèo bóng đá khách-đầu-MessageCũng chứa loại liên kết kênh được chọn bởi tỷ lệ kèo bóng đá khách.

  3. Máy chủ gửi tin nhắn tỷ lệ kèo bóng đá thựcaSlContinue, với scramtỷ lệ kèo bóng đá chủ-First-Messagelàm nội dung.

  4. tỷ lệ kèo bóng đá khách gửi tin nhắn SASLresponse, với Scram14848_14870làm nội dung.

  5. Máy chủ gửi tin nhắn tỷ lệ kèo bóng đá thựcaSlfinal, với scram-Final-Message, theo sau là một thông báo xác tỷ lệ kèo bóng đá.

Gửi hiệu chỉnh

Nếu bạn thấy bất cứ điều gì trong tài liệu không chính tỷ lệ kèo bóng đá, không khớp Kinh nghiệm của bạn với tính năng cụ thể hoặc yêu cầu làm rõ thêm, Vui lòng sử dụngMẫu nàyĐể báo cáo vấn đề tài liệu.