Di chuyển backend xác thực VPN mà không dùng lại các hàm băm cũ
Chuyển danh tính VPN là một lần cắt chuyển, không phải sao chép: lập bản đồ chuỗi xác thực, chuyển nhóm thí điểm, thử thay đổi thông tin đăng nhập và lên kế hoạch khôi phục mà việc đặt lại không thể hoàn tác.
Tên người dùng xuất hiện trong thư mục mới, việc di chuyển được tuyên bố hoàn tất, và đăng nhập vẫn thất bại. Cổng vẫn cần một đường xác thực được hỗ trợ và một kết quả phân quyền đúng, và cả hai đều không suy ra từ một thư mục nay đã chứa các tài khoản. Di chuyển backend là một lần cắt chuyển có vòng đời, không phải việc sao chép. Triệu chứng dưới đây là thứ thường phơi bày khác biệt.
Triệu chứng: tài khoản có, phiên không
Thư mục mới chứa mọi tên người dùng, một liên kết thử nghiệm thành công, và máy khách VPN vẫn trả về lỗi xác thực. Tổ hợp đó nghĩa là danh tính tồn tại, nhưng đường kiểm tra mà cổng dùng không đến được nó, hoặc đến bằng một phương thức mà nó không thể đáp ứng. Cả hai đều là cấu hình, và là hai vấn đề khác nhau.
Vấn đề thứ nhất là đường dây: cổng trỏ tới backend không trả lời, dùng một bí mật chung mà phía kia không chờ đợi, hoặc yêu cầu một thuộc tính mà dịch vụ mới không trả về. Vấn đề thứ hai là mật mã: phương thức đòi bí mật gốc, còn kho mới chỉ giữ hàm băm của nó. Văn bản lỗi trông giống nhau ở cả hai trường hợp, nên hai vấn đề bị coi là một.
Tách hai vấn đề ấy trước khi chạm vào tài khoản tiết kiệm một tuần. Một là câu hỏi định tuyến và tin cậy, kia là quyết định về đặt lại thông tin đăng nhập, và trộn chúng tạo ra những thay đổi không ai quy được nguồn gốc.
Lập bản đồ chuỗi trước khi chuyển ai
Ghi sáu điều cho mỗi hồ sơ máy khách: phương thức xác thực ngoài, phương thức trong nếu có, danh tính máy chủ mà máy khách chờ đợi, giao diện giữa cổng và backend, thuộc tính mà cổng ánh xạ sang tư cách thành viên nhóm, và chính sách tài nguyên phát sinh. Đọc theo thứ tự cho thấy mắt xích nào không có chủ. Mỗi mục có một người chịu trách nhiệm, và việc cắt chuyển hỏng ở mục mà không ai kiểm tra.
| Link | Question it answers |
|---|---|
| Client profile | Which method and server name does the client use? |
| Inner method | Is there a second authentication step? |
| Server identity | Which certificate or name must the client accept? |
| Gateway to backend | Which protocol, port and shared secret? |
| Attribute mapping | Which returned value becomes group membership? |
| Resource policy | What the resulting session may reach |
Một lần đăng nhập thư mục thông thường gần như không đi qua gì trong chuỗi đó. Nó chứng minh tài khoản tồn tại và mật khẩu hoạt động, tức đúng phần chưa bao giờ bị nghi ngờ.
Hàm băm không đi lại giữa các phương thức
Tính tương thích của thông tin đăng nhập phải được kiểm tra một lần, trước khi bất kỳ nhóm nào chuyển. FreeRADIUS ghi rõ sự phân tách: phép kiểm CHAP do máy chủ tự thực hiện cần mật khẩu thật, và MS-CHAP chấp nhận mật khẩu đó hoặc vật liệu NT phù hợp. Một hàm băm tạo cho mục đích khác không khớp với trường hợp nào, dù mạnh đến đâu.
Khác biệt nằm ở việc ai tính bằng chứng. Phương thức kiểm tra bằng cách gắn vào thư mục để thư mục kiểm những gì nó kiểm được. Phương thức kiểm tra bằng cách tính lại phản hồi thử thách cần chính bí mật, vì máy chủ phải thực hiện cùng phép tính.
Ở đâu thiếu vật liệu, lựa chọn trung thực là đặt lại được hỗ trợ, đăng ký lại, dịch vụ kiểm tra bên ngoài hoặc đổi phương thức. Việc xuất tạm mật khẩu có thể khôi phục không nằm trong danh sách đó. Nó tạo ra một kho thông tin đăng nhập dạng văn bản thuần trong tuần hỗn loạn nhất của dự án, và thường sống lâu hơn cuộc di chuyển.
Nhóm thí điểm, rồi thay đổi vòng đời
Chuyển một nhóm nhỏ danh tính đã được phê duyệt bằng máy khách thật, và thử bốn điều: đăng nhập mới, thông tin đăng nhập cố ý sai, tài nguyên mà phiên được phép chạm tới, và tài nguyên mà phiên không được chạm tới. Kiểm tra cả danh tính máy chủ mà máy khách đã chấp nhận, vì tên chứng chỉ lệch nhau thì vô hình cho đến khi ai đó đọc nhật ký máy khách.
Rồi thực hành những thay đổi mà việc triển khai thực sự phụ thuộc. Đổi mật khẩu, gia hạn hoặc đăng ký lại chứng chỉ, và thu hồi quyền truy cập của một tài khoản thí điểm. Sau mỗi việc, xác nhận bộ kiểm nào đã xử lý lần thử, vì một phiên tạo trước khi cắt chuyển có thể tiếp tục hoạt động và không chứng minh gì về lần đăng nhập kế tiếp.
Tách việc phân phối hồ sơ khỏi việc chuyển danh tính. Mỗi nhóm cần hồ sơ dự kiến, trạng thái thông tin đăng nhập hoặc đăng ký, dịch vụ xác thực nên dùng và một đầu mối hỗ trợ, và không bản ghi nào trong đó được chứa bí mật.
Nếu đường cũ và mới cùng tồn tại, hãy giới hạn chúng bằng một ngày kết thúc. Việc lùi tự động có thể cho một tài khoản vào bằng thông tin đăng nhập cũ sau khi chủ mới đã thu hồi quyền truy cập, và đó là thoái bộ an ninh trá hình thành tính sẵn sàng.
Việc hoàn tác không thể phục hồi thông tin đăng nhập
Đảo ngược cắt chuyển để thư mục y nguyên như hiện tại. Mật khẩu đã đặt lại vẫn đặt lại, chứng chỉ đã thu hồi vẫn thu hồi, và định dạng thông tin đăng nhập đã đổi vẫn đổi. Đó là những sự kiện trong thư mục, và cổng chưa bao giờ là nguồn của chúng. Việc khôi phục phải được định nghĩa theo từng sự kiện, và không phần nào được phụ thuộc vào việc dựng lại bí mật từ một hàm băm không tương thích.
Giữ một đường quản trị không dùng kết nối đang được di chuyển. Khi xác thực mới thất bại, hãy tạm dừng nhóm và dùng đường khôi phục đã ghi tài liệu của nó, thay vì làm yếu xác thực cho mọi người để kịp hạn.
Sau khi các nhóm được phủ, cho nghỉ hưu thông tin đăng nhập, hồ sơ và quan hệ tin cậy cũ của backend qua chủ sở hữu của chúng. Xác nhận đường cũ không còn cho người dùng vào, và giữ ánh xạ danh tính sang chính sách không bí mật mà bộ phận hỗ trợ vẫn cần. Một cuộc di chuyển kết thúc khi vòng đời mới hoạt động và không ai còn vào bằng đường cũ, không phải khi danh sách tài khoản trông đầy đủ.