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 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0

32.19. Hỗ trợ kèo chấp bóng đá hôm nay#

PostgreSQLCó hỗ trợ bản địa để sử dụngPostgresql: Tài liệu:Kết nối để mã hóa giao tiếp kèo chấp bóng đá hôm nay khách/kèo chấp bóng đá hôm nay chủ bằng cách sử dụngTLSGiao thức tăng bảo mật. Nhìn thấyPhần 18.9Để biết chi tiết về phía kèo chấp bóng đá hôm nay chủkèo chấp bóng đá hôm naychức năng.

libpqĐọc toàn hệ thốngOpenSSLTệp cấu hình. Theo mặc định, tệp này được đặt tênopenSSL.cnfvà nằm trong thư mục được báo cáo bởiPhiên bản OpenSSL -D. Mặc định này có thể được ghi đè bằng cách đặt biến môi trườngopenSSL_confvới tên của tệp cấu hình mong muốn.

32.19.1. Xác minh kèo chấp bóng đá hôm nay khách của chứng chỉ kèo chấp bóng đá hôm nay chủ#

Theo mặc định,PostgreSQLsẽ không thực hiện bất kỳ xác minh nào của chứng chỉ kèo chấp bóng đá hôm nay chủ. Điều này có nghĩa là có thể giả mạo danh tính kèo chấp bóng đá hôm nay chủ (ví dụ bằng cách sửa đổi bản ghi DNS hoặc bằng cách tiếp quản địa chỉ IP của kèo chấp bóng đá hôm nay chủ) mà không cần khách hàng biết.CA) Chứng chỉ trên một kèo chấp bóng đá hôm nay tính và chứng chỉ láĐã kýbằng chứng chỉ gốc trên kèo chấp bóng đá hôm nay tính khác. Nó cũng có thể sử dụng mộtHồiTrung cấpHồikèo chấp bóng đá hôm nay chỉ được ký bởi kèo chấp bóng đá hôm nay chỉ gốc và kèo chấp bóng đá hôm nay chỉ Lá có dấu.

Để cho phép khách hàng xác minh danh tính của kèo chấp bóng đá hôm nay chủ, đặt chứng chỉ gốc lên kèo chấp bóng đá hôm nay khách và chứng chỉ lá được ký bởi chứng chỉ gốc trên kèo chấp bóng đá hôm nay chủ. Để cho phép kèo chấp bóng đá hôm nay chủ xác minh danh tính của kèo chấp bóng đá hôm nay khách, hãy đặt chứng chỉ gốc trên kèo chấp bóng đá hôm nay chủ và chứng chỉ lá được ký bởi chứng chỉ gốc trên kèo chấp bóng đá hôm nay khách.

Một khi một chuỗi niềm tin đã được thiết lập, có hai cách để khách hàng xác nhận chứng chỉ lá được gửi bởi kèo chấp bóng đá hôm nay chủ. Nếu tham sốSSLModeđược đặt thànhXác minh-CA, LibPQ sẽ xác minh rằng kèo chấp bóng đá hôm nay chủ đáng tin cậy bằng cách kiểm tra chuỗi chứng chỉ cho đến chứng chỉ gốc được lưu trữ trên kèo chấp bóng đá hôm nay khách. Nếu nhưSSLModeđược đặt thànhxác minh-đầy đủ, libpq sẽcũngXác minh rằng tên máy chủ máy chủ phù hợp với tên được lưu trữ trong chứng chỉ máy chủ. Kết nối kèo chấp bóng đá hôm nay sẽ không thành công nếu chứng chỉ máy chủ không thể được xác minh.xác minh-đầy đủđược khuyến nghị trong hầu hết các môi trường nhạy cảm với bảo mật.

inxác minh-đầy đủMODE, tên kèo chấp bóng đá hôm nay chủ được khớp với thuộc tính tên thay thế chủ đề của chứng chỉ (s)dnsnamecó mặt. Nếu thuộc tính tên của kèo chấp bóng đá hôm nay chỉ bắt đầu bằng dấu hoa thị (*), Asterisk sẽ được coi là ký tự đại diện, sẽ phù hợp với tất cả các ký tựngoại trừA DOT (.). Điều này có nghĩa là kèo chấp bóng đá hôm nay chỉ sẽ không phù hợp với tên miền phụ.iPaddresshoặcdnsname. Nếu khôngiPaddressSAN có mặt và không phù hợpDNSNAMESAN có mặt, địa chỉ IP kèo chấp bóng đá hôm nay chủ được khớp với thuộc tính tên chung.

Lưu ý

Để tương thích ngược với các phiên bản trước của PostgreSQL, địa chỉ IP kèo chấp bóng đá hôm nay chủ được xác minh theo cách khác vớiRFC 6125. Địa chỉ IP kèo chấp bóng đá hôm nay chủ luôn phù hợp vớidnsnameSans cũng nhưiPaddressSans và có thể được khớp với thuộc tính tên chung nếu không có sans có liên quan.

15435_15536~/.Postgresql/root.crtTrong thư mục nhà của người dùng. (Trên Microsoft Windows, tệp được đặt tên%appdata%\ postgresql \ root.crt.) Chứng chỉ trung gian cũng nên được thêm vào tệp nếu cần liên kết chuỗi chứng chỉ được gửi bởi kèo chấp bóng đá hôm nay chủ với chứng chỉ gốc được lưu trữ trên kèo chấp bóng đá hôm nay khách.

Các mục nhập Revocation (CRL) kèo chấp bóng đá hôm nay chỉ cũng được kiểm tra nếu tệp~/.Postgresql/root.crltồn tại (%appdata%\ postgresql \ root.crlTrên Microsoft Windows).

Vị trí của tệp kèo chấp bóng đá hôm nay chỉ gốc và có thể thay đổi CRL bằng cách đặt các tham số kết nốiSSLROOTCERTSSLCRLhoặc các biến môi trườngPGSSLROOTCERTPGSSLCRL. sslcrldirhoặc biến môi trườngPGSSLcrldircũng có thể được sử dụng để chỉ định một thư mục chứa các tệp CRL.

Lưu ý

Để tương thích ngược với các phiên bản trước của PostgreSQL, nếu một tệp Ca gốc tồn tại, hành vi củaSSLMode=Yêu cầusẽ giống như củaXác minh-CA, có nghĩa là chứng chỉ kèo chấp bóng đá hôm nay chủ được xác nhận đối với ca. Dựa vào hành vi này không được khuyến khích và các ứng dụng cần xác thực chứng chỉ phải luôn luôn sử dụngXác minh-CAhoặcxác minh-đầy đủ.

32.19.2. Chứng chỉ kèo chấp bóng đá hôm nay khách#

Nếu kèo chấp bóng đá hôm nay chủ cố gắng xác minh danh tính của kèo chấp bóng đá hôm nay khách bằng cách yêu cầu chứng chỉ lá của kèo chấp bóng đá hôm nay khách,libpqSẽ gửi (các) kèo chấp bóng đá hôm nay chỉ được lưu trữ trong tệp~/.Postgresql/postgresql.crtTrong thư mục nhà của người dùng. Các chứng chỉ phải chuỗi chứng nhận gốc do kèo chấp bóng đá hôm nay chủ tin tưởng.~/.Postgresql/postgresql.keycũng phải có mặt. Trên Microsoft Windows, các tệp này được đặt tên%appdata%\ postgresql \ postgresql.crt%appdata%\ postgresql \ postgresql.key. Vị trí của kèo chấp bóng đá hôm nay chỉ và tệp khóa có thể được ghi đè bởi các tham số kết nốiSSLCERTsslkeyhoặc theo các biến môi trườngPGSSLCERTPGSSLKey.

Trên các hệ thống Unix, các quyền trên tệp khóa riêng phải không cho phép bất kỳ quyền truy cập nào vào thế giới hoặc nhóm; đạt được điều này bằng một lệnh nhưChmod 0600 ~/.. Ngoài ra, tệp có thể được sở hữu bởi root và có quyền truy cập đọc nhóm (nghĩa là0640quyền). Thiết lập đó được dành cho các cài đặt trong đó kèo chấp bóng đá hôm nay chỉ và các tệp khóa được quản lý bởi hệ điều hành.libpqSau đó, nên được tạo thành một thành viên của nhóm có quyền truy cập vào các giấy kèo chấp bóng đá hôm nay chỉ và tệp chính đó. (Trên Microsoft Windows, không có kiểm tra quyền tệp, vì%appdata%\ postgresqlThư mục được cho là an toàn.)

kèo chấp bóng đá hôm nay chỉ đầu tiên trongPostgreSQL.CRTphải là kèo chấp bóng đá hôm nay chỉ của khách hàng vì nó phải khớp với khóa riêng của khách hàng.HồiTrung cấpHồiChứng chỉ có thể được sử dụng tùy chọn vào tệp - Làm như vậy tránh yêu cầu lưu trữ chứng chỉ trung gian trên kèo chấp bóng đá hôm nay chủ (SSL_CA_FILE).

kèo chấp bóng đá hôm nay chỉ và khóa có thể ở định dạng PEM hoặc ASN.1 DER.

Khóa có thể được lưu trữ trong Cleartext hoặc được mã hóa bằng cụm mật khẩu bằng cách sử dụng bất kỳ thuật toán nào được hỗ trợ bởiOpenSSL, giống như AES-128. Nếu khóa được lưu trữ được lưu trữ, thì cụm mật khẩu có thể được cung cấp trongSSLPasswordTùy chọn kết nối. Nếu một khóa được mã hóa được cung cấp vàSSLPasswordTùy chọn vắng mặt hoặc trống, mật khẩu sẽ được nhắc để tương tác bởiOpenSSLvớiNhập cụm từ PEM PASS:Lời nhắc nếu có sẵn TTY. Các ứng dụng có thể ghi đè lời nhắc chứng chỉ kèo chấp bóng đá hôm nay khách và việc xử lýSSLPasswordTham số bằng cách cung cấp gọi lại mật khẩu khóa của riêng họ; nhìn thấy.

Để biết hướng dẫn tạo kèo chấp bóng đá hôm nay chỉ, xemPhần 18.9.5.

32.19.3. Bảo vệ được cung cấp ở các chế độ khác nhau#

Các giá trị khác nhau choSSLModeTham số cung cấp các mức bảo vệ khác nhau. kèo chấp bóng đá hôm nay có thể cung cấp bảo vệ chống lại ba loại tấn công:

nghe lén

Nếu bên thứ ba có thể kiểm tra lưu lượng mạng giữa kèo chấp bóng đá hôm nay khách và kèo chấp bóng đá hôm nay chủ, nó có thể đọc cả thông tin kết nối (bao gồm tên người dùng và mật khẩu) và dữ liệu được truyền.kèo chấp bóng đá hôm naySử dụng mã hóa để ngăn chặn điều này.

Man-in-the-Middle (MITM)

Nếu bên thứ ba có thể sửa đổi dữ liệu trong khi truyền giữa kèo chấp bóng đá hôm nay khách và kèo chấp bóng đá hôm nay chủ, nó có thể giả vờ là kèo chấp bóng đá hôm nay chủ và do đó xem và sửa đổi dữ liệuNgay cả khi nó được mã hóa. Bên thứ ba sau đó có thể chuyển tiếp thông tin và dữ liệu kết nối đến kèo chấp bóng đá hôm nay chủ ban đầu, khiến không thể phát hiện cuộc tấn công này.kèo chấp bóng đá hôm naySử dụng xác minh chứng chỉ để ngăn chặn điều này, bằng cách xác thực kèo chấp bóng đá hôm nay chủ cho kèo chấp bóng đá hôm nay khách.

mạo danh

Nếu bên thứ ba có thể giả vờ là một khách hàng được ủy quyền, nó chỉ có thể truy cập dữ liệu mà nó không nên có quyền truy cập. Thông thường, điều này có thể xảy ra thông qua quản lý mật khẩu không an toàn.kèo chấp bóng đá hôm naySử dụng chứng chỉ kèo chấp bóng đá hôm nay khách để ngăn chặn điều này, bằng cách đảm bảo rằng chỉ có chủ chứng chỉ hợp lệ có thể truy cập kèo chấp bóng đá hôm nay chủ.

Để kết nối được kèo chấp bóng đá hôm nay được biết, việc sử dụng kèo chấp bóng đá hôm nay phải được cấu hình trênCả kèo chấp bóng đá hôm nay khách và kèo chấp bóng đá hôm nay chủTrước khi kết nối được thực hiện. Nếu nó chỉ được cấu hình trên kèo chấp bóng đá hôm nay chủ, kèo chấp bóng đá hôm nay khách có thể sẽ gửi thông tin nhạy cảm (ví dụ: mật khẩu) trước khi biết rằng kèo chấp bóng đá hôm nay chủ yêu cầu bảo mật cao.SSLModetham số đếnxác minh-đầy đủhoặcXác minh-CA, và cung cấp cho hệ thống một kèo chấp bóng đá hôm nay chỉ gốc để xác minh chống lại. Điều này tương tự như sử dụnghttps urlcho duyệt web được mã hóa.

Một khi kèo chấp bóng đá hôm nay chủ đã được xác thực, kèo chấp bóng đá hôm nay khách có thể truyền dữ liệu nhạy cảm. Điều này có nghĩa là cho đến thời điểm này, kèo chấp bóng đá hôm nay khách không cần biết liệu chứng chỉ sẽ được sử dụng để xác thực, giúp việc chỉ định rằng chỉ trong cấu hình kèo chấp bóng đá hôm nay chủ.

tất cảkèo chấp bóng đá hôm nayTùy chọn thực hiện trên đầu dưới dạng mã hóa và trao đổi khóa, do đó, có một sự đánh đổi phải được thực hiện giữa hiệu suất và bảo mật.Bảng 32.1Minh họa các rủi ro khác nhauSSLModeGiá trị bảo vệ chống lại và câu nói nào họ đưa ra về bảo mật và chi phí.

Bảng 32.1. Mô tả chế độ kèo chấp bóng đá hôm nay

SSLMode Bảo vệ không có lỗi MITMBảo vệ câu lệnh
vô hiệu hóa không Không Tôi không quan tâm đến bảo mật và tôi không muốn trả chi phí mã hóa.
cho phép có thể Không Tôi không quan tâm đến bảo mật, nhưng tôi sẽ trả chi phí mã hóa nếu kèo chấp bóng đá hôm nay chủ nhấn mạnh vào nó.
ưa thích có thể không Tôi không quan tâm đến mã hóa, nhưng tôi muốn trả chi phí mã hóa nếu kèo chấp bóng đá hôm nay chủ hỗ trợ nó.
Yêu cầu Không Tôi muốn dữ liệu của mình được mã hóa và tôi chấp nhận chi phí. Tôi tin rằng mạng sẽ đảm bảo tôi luôn kết nối với kèo chấp bóng đá hôm nay chủ tôi muốn.
Xác minh-CA phụ thuộc vào chính sách CA Tôi muốn dữ liệu của mình được mã hóa và tôi chấp nhận chi phí. Tôi muốn chắc chắn rằng tôi kết nối với một kèo chấp bóng đá hôm nay chủ mà tôi tin tưởng.
xác minh-đầy đủ Tôi muốn dữ liệu của mình được mã hóa và tôi chấp nhận chi phí. Tôi muốn chắc chắn rằng tôi kết nối với một kèo chấp bóng đá hôm nay chủ mà tôi tin tưởng và đó là cái tôi chỉ định.

Sự khác biệt giữaXác minh-CAxác minh-đầy đủPhụ thuộc vào chính sách của gốcCA. Nếu một công khaiCAđược sử dụng,Xác minh-CACho phép kết nối với kèo chấp bóng đá hôm nay chủAi đó kháccó thể đã đăng ký vớiCA. Trong trường hợp này,xác minh-đầy đủnên luôn luôn được sử dụng. Nếu một địa phươngCAđược sử dụng hoặc thậm chí là kèo chấp bóng đá hôm nay chỉ tự ký, sử dụngXác minh-CAthường cung cấp đủ bảo vệ.

Giá trị mặc định choSSLModeưa thích. Như được hiển thị trong bảng, điều này không có ý nghĩa gì từ quan điểm bảo mật và nó chỉ hứa hẹn hiệu suất chi phí nếu có thể.

32.19.4. Sử dụng tệp máy khách kèo chấp bóng đá hôm nay#

Bảng 32.2Tóm tắt các tệp có liên quan đến thiết lập kèo chấp bóng đá hôm nay trên máy khách.

Bảng 32.2. LIBPQ/CLIENT kèo chấp bóng đá hôm nay sử dụng tệp

FILE Nội dung Hiệu ứng
~/.Postgresql/postgresql.crt Chứng chỉ kèo chấp bóng đá hôm nay khách Đã gửi đến kèo chấp bóng đá hôm nay chủ
~/.Postgresql/postgresql.key khóa riêng của kèo chấp bóng đá hôm nay khách kèo chấp bóng đá hôm nay minh kèo chấp bóng đá hôm nay chỉ khách hàng được gửi bởi chủ sở hữu; không cho biết chủ sở hữu kèo chấp bóng đá hôm nay chỉ là đáng tin cậy
~/.Postgresql/root.crt Cơ quan kèo chấp bóng đá hôm nay chỉ đáng tin cậy Kiểm tra xem chứng chỉ kèo chấp bóng đá hôm nay chủ có được ký bởi cơ quan chứng chỉ đáng tin cậy
~/.Postgresql/root.crl kèo chấp bóng đá hôm nay chỉ bị thu hồi bởi cơ quan kèo chấp bóng đá hôm nay chỉ Chứng chỉ kèo chấp bóng đá hôm nay chủ không được có trong danh sách này

32.19.5. Khởi tạo thư viện kèo chấp bóng đá hôm nay#

Nếu ứng dụng của bạn khởi tạoLIBSSSLvà/hoặclibcryptoThư viện vàlibpqđược xây dựng vớikèo chấp bóng đá hôm nayHỗ trợ, bạn nên gọipqinitopensslđể nóilibpqrằnglibsslvà/hoặclibcryptoThư viện đã được ứng dụng của bạn khởi tạo, đểlibpqcũng sẽ không khởi tạo các thư viện đó. Tuy nhiên, điều này là không cần thiết khi sử dụngOpenSSLPhiên bản 1.1.0 trở lên, vì khởi tạo trùng lặp không còn là vấn đề.

pqinitopenssl #

Cho phép các ứng dụng chọn thư viện bảo mật nào để khởi tạo.

void pqinitopenssl (int do_ssl, int do_crypto);

KhiDO_SSLlà không khác,libpqSẽ khởi tạoOpenSSLThư viện trước khi mở kết nối cơ sở dữ liệu. KhiDO_CRYPTOlà không khác,libcryptoThư viện sẽ được khởi tạo. Theo mặc định (nếupqinitopensslkhông được gọi), cả hai thư viện đều được khởi tạo. Khi hỗ trợ kèo chấp bóng đá hôm nay không được biên dịch, chức năng này có mặt nhưng không làm gì cả.

Nếu ứng dụng của bạn sử dụng và khởi tạoOpenSSLhoặc cơ bản của nólibcryptoThư viện, bạnphảiGọi chức năng này với số 0 cho (các) tham số thích hợp trước khi mở kết nối cơ sở dữ liệu. Ngoài ra, hãy chắc chắn rằng bạn đã thực hiện khởi tạo đó trước khi mở kết nối cơ sở dữ liệu.

pqinitssl #

Cho phép các ứng dụng chọn thư viện bảo mật nào để khởi tạo.

void pqinitssl (int do_ssl);

Hàm này tương đương vớipqinitopenssl (do_ssl, do_ssl). Nó đủ cho các ứng dụng khởi tạo cả hoặc khôngOpenSSL​​libcrypto.

PQINitsSLđã có mặt từPOSTGRESQL8.0, trong khipqinitopensslĐã được thêm vàoPostgreSQL8.4, vì vậypqinitsslCó thể thích hợp hơn cho các ứng dụng cần làm việc với các phiên bản cũ hơn củalibpq.

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 xác, không phù hợpMẫu nàyĐể báo cáo vấn đề tài liệu.