kèo bóng đá pháplà một khung để xác kèo bóng đá pháp trong các giao thức định hướng kết nối. Ngay bây giờ,kèo bóng đá phápThực hiện hai cơ chế kèo bóng đá pháp, 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 kèo bóng đá pháp đượ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 kèo bóng đá pháp
Để bắt đầu trao đổi kèo bóng đá pháp, 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ế kèo bóng đá pháp mà máy chủ có thể chấp nhận, theo thứ tự ưa thích của máy chủ.
Khách hàng chọn một trong các cơ chế được hỗ trợ từ danh sách và gửi tin nhắn Saslinitialresponse đến máy chủ. Thông báo bao gồm tên của cơ chế đã chọn và phản hồi máy khách ban đầu tùy chọn, nếu cơ chế được chọn sử dụng đó.
Một hoặc nhiều tin nhắn-Challenge 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 kèo bóng đá pháp 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ế.
Cuối cùng, khi trao đổi xác kèo bóng đá pháp được hoàn thành thành công, máy chủ sẽ gửi một thông báo xác kèo bóng đá pháp, theo sau là một thông báo xác kèo bóng đá pháp. 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 kèo bóng đá pháp được chọn. Nếu cơ chế xác kèo bóng đá pháp không sử dụng dữ liệu bổ sung được gửi khi hoàn thành, thông báo xác kèo bóng đá pháp không được gửi.
Khi lỗi, máy chủ có thể hủy bỏ xác kèo bóng đá pháp ở bất kỳ giai đoạn nào và gửi errormessage.
Các cơ chế kèo bóng đá pháp đã triển khai tại thời điểm này làScram-Sha-256
và 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 trong RFC 7677 và RFC 5802.
Khi Scram-Sha-256 được sử dụng trong kèo bóng đá pháp, máy chủ sẽ bỏ qua tên người dùng mà máy khách gửi trongmáy 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ế.kèo bóng đá pháp11402_11574
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.kèo bóng đá phápTuy 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 kèo bóng đá pháp 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ế kèo bóng đá pháp 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 kèo bóng đá pháp làTLS-server-end-point
.
inScramKhông 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 để 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ủ kèo bóng đá pháp và máy khách đi qua giá trị ngẫu nhiên của máy chủ và xác kèo bóng đá pháp 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 như vậy bằng cách trộn chữ ký của chứng chỉ của máy chủ vào hàm băm mật khẩu truyền. Mặc dù máy chủ giả có thể truyền lại chứng chỉ của máy 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ụ
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ế kèo bóng đá pháp mà máy chủ có thể chấp nhận. Đây sẽ làScram-sha-256-plus
vàScram-Sha-256
Nếu máy chủ được xây dựng với hỗ trợ SSL, hoặc nếu không thì chỉ sau này.
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-256
hoặcSCRAM-SHA-256-PLUS
. .máy khách-đầu-Message
. Thekhách hàng-đầu-Message
Cũng chứa loại liên kết kênh được khách hàng chọn.
Máy chủ gửi tin nhắn kèo bóng đá pháp thựcaSlContinue, với scramMáy chủ-First-Message
làm nội dung.
Máy khách gửi tin nhắn SASLresponse, với Scram-Kết hợp khách hàng
làm nội dung.
Máy chủ gửi một thông báo kèo bóng đá pháp thựcaSlfinal, với scram-Final-Message
, theo dõi ngay là một thông báo xác kèo bóng đá pháp.