Đổi mật khẩu VPN mà không khóa mọi thiết bị
Đổi mật khẩu không cập nhật các bản sao đã lưu. Kiểm kê từng máy khách, thay giá trị đã lưu tại chủ sở hữu và dừng vòng thử lại.
Ba điện thoại, một bộ định tuyến và một kiểm tra giám sát vẫn giữ mật khẩu cũ, và một trong số đó kết nối lại mỗi chín mươi giây. Mật khẩu tài khoản đã đổi mười phút trước, nên mỗi máy khách đó giờ đang gửi một giá trị mà máy chủ từ chối. Đó là khoảnh khắc huyền thoại bị phá vỡ: đổi mật khẩu tác động đến tài khoản, không phải các bản sao của giá trị cũ nằm trên từng thiết bị. Những gì tiếp theo là công việc mà thay đổi đã không làm.
Huyền thoại: một thay đổi, mọi nơi cùng lúc
Niềm tin là đổi mật khẩu sẽ đăng xuất mọi thứ và buộc đăng nhập lại sạch sẽ. Không phải vậy, vì máy chủ chỉ theo dõi thông tin xác thực cuối cùng mà nó chấp nhận, trong khi máy khách giữ những gì chúng đã lưu. Một thiết bị có mật khẩu đã lưu sẽ thử lại theo lịch riêng và thất bại âm thầm cho đến khi ai đó nhận ra tài khoản đã bị khóa. Khi chấp nhận rằng các bản sao sống ngoài tài khoản, việc luân chuyển không còn giống một hành động duy nhất.
Không điều nào trong số này phản đối việc luân chuyển. Nó ủng hộ việc coi các bản sao đã lưu là một phần của thay đổi chứ không phải suy nghĩ sau đó. Khóa thường đến từ các lần thử song song: mỗi thiết bị tiếp tục gửi giá trị cũ theo lịch riêng cho đến khi bộ đếm kích hoạt. Tài khoản khi đó trông như bị tấn công trong khi chỉ được cung cấp thông tin xác thực mà không ai thay thế. Sự khác biệt đó quan trọng, vì giải pháp là danh sách thiết bị chứ không phải chính sách khóa chặt hơn.
Kiểm kê các bản sao trước khi luân chuyển
Viết bản kiểm kê trước khi mở biểu mẫu mật khẩu. Liệt kê mọi máy khách, tập lệnh, tự động hóa và hồ sơ được quản lý xác thực dưới tài khoản này: điện thoại tự kết nối, bộ định tuyến được cấu hình hai năm trước, máy tính xách tay chỉ thức dậy vào thứ Hai, và kiểm tra giám sát thử mỗi phút. Với mỗi mục, ghi nơi lưu thông tin xác thực, thiết bị có thể tiếp cận trong lúc thay đổi hay không và có lộ trình khôi phục nào nếu nó không thể kết nối lại. Chính danh sách đó biến một thay đổi rủi ro thành thay đổi theo kế hoạch, và nó phải tồn tại trước khi mật khẩu cũ ngừng hoạt động.
Thiết bị ngoại tuyến là sự bỏ sót kinh điển. Một máy tính xách tay trong ngăn kéo quay lại ba tuần sau và trình bày giá trị cũ vào thời điểm tồi tệ nhất. Ghi cả vị trí và lịch của nó, vì bạn sẽ phải đuổi theo nó thay vì chờ đợi.
Trên một đội Linux, việc tìm kiếm mang tính máy móc chứ không thông minh. Tìm các hồ sơ tham chiếu tệp thông tin xác thực, rồi tìm chính các tệp thông tin xác thực, vì danh sách thứ hai là danh sách phải viết lại. Lặp lại bài tập cho máy khách máy tính để bàn và điện thoại, nơi kho lưu là hồ sơ hoặc mục trong chuỗi khóa chứ không phải đường dẫn. Mục tiêu là một danh sách bạn có thể làm việc, không phải một lần quét tự nhận tìm thấy mọi bản sao.
grep -rl auth-user-pass /etc/openvpn /etc/NetworkManager
grep -rl auth-user-pass ~/.config 2>/dev/null
Cân nhắc các bản sao so với những người sở hữu chúng. Một thiết bị không ai nhận là thiết bị không ai sẽ cập nhật, và cũng là thiết bị có khả năng tiếp tục thử lại cao nhất.
Bạn thực sự đang luân chuyển bí mật nào
Mật khẩu tài khoản chỉ là một thông tin xác thực trong một triển khai VPN. Cụm mật khẩu khóa, danh tính chứng chỉ và bí mật ngang hàng tùy chọn mỗi thứ có lộ trình thay thế và chủ sở hữu riêng. Đổi mật khẩu tài khoản không làm gì cho thiết bị xác thực bằng chứng chỉ, và phát hành lại chứng chỉ không làm gì cho máy khách giữ mật khẩu đã lưu. Đặt tên bí mật trước khi đặt tên giải pháp.
Nếu việc luân chuyển được thúc đẩy bởi nghi ngờ chứ không phải chính sách, quy trình sự cố quan trọng hơn kế hoạch tiện lợi. Thu hồi những gì bằng chứng yêu cầu và chấp nhận công việc thêm trong danh sách thiết bị. Quyết định đó thuộc về chủ sự cố, không phải người tình cờ cầm biểu mẫu đặt lại mật khẩu.
Thay giá trị đã lưu ngay tại nơi nó sống
Thay thông tin xác thực bằng cơ chế mà dịch vụ ghi nhận, sau đó cập nhật bản sao đã lưu hoặc chạy quy trình đăng nhập trên mọi thiết bị bạn định giữ lại. Không chỉnh sửa cấu hình được tạo phía sau một trình quản lý ghi lại nó, vì trình quản lý khôi phục giá trị cũ hơn trong lần chạy kế tiếp và chỉnh sửa trở thành sự cố chậm trễ. Cập nhật nguồn mà trình quản lý đọc, hoặc dùng kho thông tin xác thực của chính máy khách. Dù thế nào, thiết bị phải kết thúc với giá trị mới ở nơi máy khách thực sự đọc.
Máy khách lưu tệp mật khẩu cần tệp được viết lại, trong khi máy khách hỏi cần một lần đăng nhập hoàn tất. NetworkManager giữ bí mật bên trong hồ sơ kết nối, nên thay đổi đi qua nmcli chứ không qua trình soạn thảo văn bản:
nmcli connection modify work vpn.secrets "password=NEW"
nmcli connection up work
Hồ sơ đọc tệp thông tin xác thực là trường hợp thứ ba. Thay nội dung của tệp đó, giữ quyền của nó đóng và tải lại máy khách thay vì chỉnh sửa hồ sơ trỏ tới nó. Hồ sơ không thay đổi; chỉ bí mật mà nó đọc là thay đổi.
Kết nối lại từng thiết bị dự định một lần, có chủ ý, và xem thiết bị nào thất bại. Nếu một thiết bị tiếp tục thất bại, hãy xem tài khoản mà nó trỏ tới và kho lưu mà nó đọc trước khi đổi mật khẩu lần nữa, vì lần thay đổi thứ hai nhân lên các bản sao cần cập nhật. Một thiết bị thất bại hai lần thường trỏ tới tài khoản sai hoặc đọc một kho lưu bạn chưa tìm thấy. Sửa điều đó, rồi kết nối lại.
Phiên và mã thông báo sống lâu hơn mật khẩu
Đổi mật khẩu không chứng minh rằng các phiên hiện có hoặc chứng chỉ riêng đã bị thu hồi. Một số dịch vụ giữ phiên sống cho đến khi hết hạn hoặc bị chấm dứt rõ ràng, và mã thông báo được cấp có tuổi thọ riêng. Kiểm tra những gì dịch vụ thực sự làm thay vì giả định thay đổi là toàn cầu. Nếu thay đổi do nghi ngờ, hãy chấm dứt các phiên một cách rõ ràng và xác nhận kết quả.
Hướng dẫn về vòng đời thông tin xác thực trong NIST SP 800-63B giữ trình xác thực và phiên trong các danh mục riêng, đó là lý do đổi mật khẩu và đăng xuất toàn cầu là hai thao tác khác nhau. Hãy coi chúng là hai nhiệm vụ với hai tiêu chí hoàn thành. Việc thứ nhất hoàn tất khi giá trị mới hoạt động, và việc thứ hai hoàn tất khi các phiên cũ đã biến mất.
Ghi nhận hoàn thành mà không ghi mật khẩu mới vào bản ghi. Nhật ký luân chuyển chứa thông tin xác thực là một sự cố mới đang chờ trên ổ đĩa chia sẻ. Ghi ngày, các thiết bị đã cập nhật và các thiết bị còn tồn đọng.