Đọc phương thức EAP trước: VPN dùng được loại băm mật khẩu nào
VPN xác minh chính bí mật, không phải băm web. Hãy đọc phương thức, rồi kiểm tra kho lưu giữ gì trước khi hứa rằng những mật khẩu cũ sẽ tiếp tục hoạt động.
Nhiều nhóm có một đăng nhập web hoạt động được và một VPN từ chối mọi mật khẩu từ cùng bảng đó. Ứng dụng web so sánh một băm do chính nó tính, trong khi đường hầm yêu cầu ứng dụng khách chứng minh quyền sở hữu một bí mật theo cách máy chủ phải kiểm tra được. Đó là những yêu cầu khác nhau đối với vật liệu được lưu. Khoảng trống giữa hai điều này là nơi phần lớn các dự án như vậy dừng lại.
Đọc phương thức trước, rồi đến lược đồ
Ghi ra bằng chứng mà phương thức đã chọn yêu cầu trước khi xem bất kỳ lược đồ nào. Phương thức thách thức-phản hồi cần vật liệu mà từ đó máy chủ có thể tính phản hồi mong đợi, trên thực tế nghĩa là mật khẩu hoặc một dạng dẫn xuất tương thích. Phương thức mang mật khẩu bên trong đường hầm được bảo vệ cần chính mật khẩu ở nơi xác minh. Hãy đọc tài liệu của phương thức vì yêu cầu của nơi xác minh chứ không phải vì cấu hình của ứng dụng khách, bởi yêu cầu phía khách thường là phần dễ.
Một băm có muối do khung web hiện đại tạo ra không cung cấp được cả hai. Nó xác minh một phép so sánh cụ thể và không thể chuyển ngược về bí mật đã sinh ra nó.
Thách thức-phản hồi không thể dùng băm có muối
MSCHAPv2 là một trao đổi thách thức-phản hồi, nên máy chủ không bao giờ nhận mật khẩu và không thể so sánh một chuỗi đã lưu. Nó phải suy ra phản hồi mong đợi từ vật liệu mình đã có, và đó là lý do các dạng lưu tương thích lại hẹp đến vậy. Một giá trị bcrypt hoặc Argon2 có muối riêng cho từng người dùng là một chiều theo cách loại bỏ hoàn toàn trao đổi đó. Bảng dưới đây bắt đầu từ dạng lưu chứ không phải tên phương thức, vì dạng lưu là thứ quyết định câu trả lời.
| What the store holds | What that material can verify | What has to change |
|---|---|---|
| A bcrypt or Argon2 value with a per-user salt | nothing challenge-response can use, and not the password either | re-enrol the users, or place a verifying service in front |
| An unsalted NT-hash | MSCHAPv2, and inner PAP through a TLS tunnel | nothing, as long as that store is the verifier |
| A client certificate with a revocation list | EAP-TLS only | move enrolment and revocation to the PKI owner |
Tài liệu của tiện ích SQL cho strongSwan định nghĩa một lược đồ riêng cho cấu hình và thông tin đăng nhập, và dự án vẫn đánh dấu tiện ích đó là thử nghiệm. Không có gì trong đó thích ứng với bảng người dùng của một ứng dụng hay đoán xem lược đồ băm nào đã tạo ra một giá trị đã lưu. Vì vậy các lựa chọn thực tế là chuyển sang một kho mà cổng có thể dùng, hoặc một dịch vụ xác thực đứng trước kho hiện có và có thể thực hiện trao đổi. Mọi thứ khác chỉ là một trình kết nối mang sẵn một giả định ẩn bên trong.
RADIUS dời công việc, không dời yêu cầu
Giao EAP cho một máy chủ RADIUS thay đổi nơi diễn ra xác minh và thường cải thiện dấu vết kiểm toán. Nó không khôi phục mật khẩu từ một băm một chiều, nên dịch vụ xác thực vẫn cần vật liệu tương thích với phương thức mà nó kết thúc. Các nhóm phát hiện điều này sau khi dựng đường RADIUS và gặp đúng bức tường đó ở đầu bên kia.
Ở nơi máy chủ RADIUS đọc được một thư mục chứa thông tin đăng nhập tương thích, thiết kế hoạt động và cổng VPN vẫn đơn giản. Ở nơi không đọc được, câu trả lời trung thực là thay đổi đăng ký chứ không phải thêm một trình kết nối. Việc cấp phát và thu hồi thuộc về người sở hữu danh tính, nên một bảng sao chép không có quy trình đồng bộ được hỗ trợ là vòng đời thông tin đăng nhập thứ hai chứ không phải đăng nhập một lần. Nó lệch ngay lần đầu ai đó đặt lại mật khẩu chỉ ở một nơi, và sự lệch đó im lặng cho đến khi một tài khoản tồn tại ở cả hai hệ thống hành xử khác nhau ở mỗi bên.
Giới hạn tài khoản đọc thư mục chỉ ở thao tác đọc đó, và giữ nó tách khỏi tài khoản mà cổng dùng cho cấu hình của chính nó. Một tài khoản quản trị dùng chung biến thiết kế chỉ đọc thành bán kính ảnh hưởng rộng hơn nhiều.
Tài khoản nên sống ở đâu
Khi câu hỏi về vật liệu đã được giải quyết, còn lại hai kiến trúc. Cổng có thể sở hữu một kho thông tin đăng nhập nhỏ mà chỉ nó đọc, hoặc giao cho một dịch vụ xác thực đứng trước thư mục của công ty.
Cách thứ nhất dễ lý giải hơn và tệ hơn cho người dùng, người cuối cùng phải duy trì thêm một mật khẩu thứ hai. Cách thứ hai giữ một danh tính duy nhất và thêm phụ thuộc vào một dịch vụ mà giờ phải chạy trước khi ai đó kết nối được. Không cách nào sai, nhưng lựa chọn nên được ghi lại bên cạnh cấu hình cổng, nếu không kỹ sư tiếp theo sẽ mặc định rằng cách kia đã được chọn. Dù bạn chọn gì, hai lệnh dưới đây là những lệnh cho thấy trạng thái hiện tại trước khi bạn thay đổi nó.
mysql -N -e "SELECT id, username FROM vpn_users WHERE active = 1 LIMIT 5" vpn
swanctl --list-connsXác thực tài khoản cũng không giải quyết việc phân quyền. Tư cách thành viên nhóm, trạng thái thiết bị và quyền mạng vẫn cần một ánh xạ rõ ràng sau khi người dùng đã chứng minh danh tính theo yêu cầu. Một kết nối xác thực hoàn hảo mà không phân quyền gì là kết quả của chính sách, không phải lỗi của phương thức.