VPN kết nối, máy khách mở một phiên và mọi người cho rằng kết nối cơ sở dữ liệu đã được bảo vệ. Ba thứ khác nhau vừa bị gộp lại. Việc trình lắng nghe có thể tiếp cận được hay không, việc máy chủ có chấp nhận người dùng hay không, và việc Firebird có thương lượng mã hóa đường truyền hay không là những cơ chế riêng với bằng chứng riêng. Đường hầm chỉ trả lời câu đầu tiên, và chỉ cho những nguồn bạn đã cho phép.

Hai ranh giới và chúng không chồng lên nhau

Ranh giới VPN bảo vệ các gói tin giữa máy khách và cổng. Mã hóa đường truyền của Firebird bảo vệ giao thức cơ sở dữ liệu giữa thư viện máy khách và tiến trình máy chủ. Cả hai có thể cùng tồn tại và không cái nào thay thế cái kia.

Nếu đường hầm kết thúc trước máy chủ cơ sở dữ liệu, lưu lượng phía sau nó chỉ được bảo vệ bởi những gì phiên cơ sở dữ liệu đã thương lượng. Chính trong khoảng trống đó, một cuộc rà soát thường tìm thấy điều bất ngờ. Sơ đồ đường hầm kết thúc tại một cổng, và kết nối mang truy vấn của bạn tiếp tục vượt qua đó. Bất kỳ ai đọc sơ đồ đó sau này đều thừa hưởng giả định ấy.

Ranh giới thứ nhất: ai được mở trình lắng nghe

Xác định địa chỉ máy chủ thật và cổng đã cấu hình, là 3050 nếu chưa bị thay đổi, rồi chỉ cho phép các nguồn VPN đã được phê duyệt tại tường lửa của máy chủ và mạng. Tính đến mọi việc dịch địa chỉ tại cổng VPN, và cho máy chủ cơ sở dữ liệu một tuyến quay lại nhóm máy khách nếu cổng tách riêng.

Sau đó chứng minh điều phủ định. Một đường đi bên ngoài lẽ ra phải bị từ chối thì vẫn phải bị từ chối, vì việc mở đường hầm tự nó không hạn chế trình lắng nghe của Firebird.

Ranh giới thứ hai: Firebird thương lượng điều gì

Firebird 3 đã giới thiệu một khuôn khổ mã hóa đường truyền với chính sách máy chủ có thể bị tắt, bật hoặc bắt buộc. Chính sách đặt ra mức tối thiểu. Phiên thực tế vẫn phụ thuộc vào thư viện máy khách mà ứng dụng tải và các plugin mà cả hai bên hỗ trợ.

Trong ghi chú phát hành của Firebird 3, Arc4 được liệt kê là plugin mã hóa đường truyền mặc định cho bản phát hành đó. Arc4 là một mặc định lịch sử, không phải khuyến nghị cho mật mã hiện đại, và nó không phải là cùng một thứ với lớp bảo vệ VPN bên ngoài.

Xác thực là biến thứ ba trong cùng cuộc thương lượng. Máy chủ chấp nhận một tập hợp plugin xác thực, thư viện máy khách cung cấp một tập con, và hai bên phải chồng lên nhau.

Cái bẫy Legacy_Auth

Hỗ trợ Legacy_Auth đòi hỏi phải nới lỏng chính sách mã hóa bắt buộc mặc định của máy chủ. Đó là chi phí tương thích đã được ghi nhận, và đó là lý do việc hạ chính sách để dập lỗi kết nối là một thay đổi bảo mật chứ không phải bản sửa lỗi.

Nếu một máy khách đột nhiên thất bại sau khi nâng cấp máy chủ, hãy so sánh danh sách plugin trước khi làm suy yếu bất cứ điều gì. Lỗi thường là sự không khớp trong thương lượng, và câu trả lời là một plugin được cả hai bên hỗ trợ.

Kiểm tra kết nối quan trọng

Trên một bản dựng cung cấp biến ngữ cảnh, truy vấn này báo cáo trạng thái mã hóa của kết nối hiện tại:

SELECT RDB$GET_CONTEXT('SYSTEM', 'WIRE_ENCRYPTED')
FROM RDB$DATABASE;

Chạy nó qua kết nối của chính ứng dụng, không qua phiên quản trị trên cùng máy chủ. Một kết nối quản trị đã mã hóa không nói gì về phiên của một thư viện máy khách khác, và một bản dựng cũ không hỗ trợ biến đó không phải là bằng chứng rằng mã hóa đang tắt.

Ghi lại cùng nhau phiên bản thư viện máy khách, bản dựng máy chủ và kết quả, vì không cái nào trong số đó đọc được một mình.

Quyền và con đường nâng cấp

Hạn chế nguồn và mã hóa truyền tải không thay thế xác thực hay quyền tối thiểu. Kiểm tra quyền của người dùng cơ sở dữ liệu thông thường trên những đối tượng mà họ thực sự chạm tới.

Cuối cùng, hãy coi một lần triển khai dài hạn là câu hỏi bảo trì. Đường hầm không làm cho một thư viện máy khách lỗi thời trở nên an toàn mãi mãi, và một con đường nâng cấp được hỗ trợ rẻ hơn việc phát hiện ra rằng plugin mà nó cần đã bị gỡ bỏ.

Bài viết liên quan