Khôi phục các đường hầm WireGuard từ một PC Windows đã chết
Hồ sơ là các khối DPAPI gắn với tài khoản và máy đã tạo ra chúng. Sao chép tệp sang máy mới chỉ để lại những byte mà không khóa cục bộ nào mở được.
Một chiếc laptop chết với ba đường hầm WireGuard đã được cấu hình, và các tệp cấu hình vẫn còn trên đĩa. Sao chép chúng sang máy thay thế tạo ra một dịch vụ khởi động rồi từ chối chạy lên. Các tệp được bảo vệ bằng khóa thuộc về tài khoản và máy đã tạo ra chúng, nên các byte di chuyển được còn khả năng đọc chúng thì không. Phần hướng dẫn dưới đây đi từ việc tìm tệp đến phương án thực sự khôi phục được dịch vụ.
Tệp đường hầm hiện nằm ở đâu
Vị trí lưu trữ đã thay đổi qua các bản phát hành. Các bản cài cũ giữ hồ sơ trong dữ liệu ứng dụng cục bộ của hồ sơ hệ thống, dưới thư mục WireGuard\Configurations, còn các bản dựng hiện tại dùng một thư mục dữ liệu bên trong cây tệp chương trình. Mỗi đường hầm là một tệp duy nhất có phần mở rộng kép nêu tên cơ chế bảo vệ:
Get-ChildItem "C:\Program Files\WireGuard\Data\Configurations"
Hậu tố .dpapi không phải để trang trí. Tệp là một khối được bảo vệ, và dịch vụ được thiết kế để dùng nó đúng ở dạng đó. Cách được hỗ trợ để cài một đường hầm từ tệp này là một lệnh gọi nâng quyền trỏ tới khối đó:
$blob = "C:\Program Files\WireGuard\Data\Configurations\hq.conf.dpapi"
wireguard.exe /installtunnelservice $blob
Lệnh đó chỉ thành công trong ngữ cảnh có thể mở khối. Nó cài một dịch vụ; nó không giải mã bất cứ thứ gì thay bạn.
Vì sao khối không mở được ở nơi khác
Cơ chế bảo vệ lấy khóa từ thông tin đăng nhập của người dùng và, tùy phạm vi được chọn, từ máy. Tài liệu của Microsoft về lệnh gọi bảo vệ này nói rằng mặc định thuộc về người dùng và máy đã mã hóa nó, còn tùy chọn toàn máy thay đổi ai được phép mở khối. Trong cả hai trường hợp, khóa nằm trong vật liệu thông tin xác thực của hệ điều hành, không nằm trong tệp. Bản mã có thể mang đi, khóa thì không.
Chiếm quyền sở hữu thư mục chỉ thay đổi một ACL và không thay đổi gì khác. Gắn đĩa cũ vào hộp ngoài và sao chép khối sang PC mới để lại cho bạn bản mã mà khóa của nó chưa bao giờ được sao chép. Đây là thất bại mật mã, và cài lại dịch vụ bao nhiêu lần cũng không thay đổi điều đó. Máy mới không có khóa chính cho tài khoản đó, và kho khóa cũ không đi theo tệp.
Các sản phẩm lưu cài đặt trong một tệp bị làm mờ cho thấy rõ sự đối lập. Một cấu hình chỉ được làm mờ sẽ đọc được khi bạn tìm ra cờ tắt cơ chế làm mờ; một khối được bảo vệ vẫn đóng nếu không có khóa. Nhầm lẫn hai thứ khiến người ta đi tìm một bộ giải mã không hề tồn tại.
Nên thử gì khi hệ thống cũ còn khởi động
Nếu bản cài còn chạy, hãy xuất các đường hầm từ ứng dụng khách khi đang đăng nhập bằng tài khoản đã tạo ra chúng. Bản xuất tạo ra các tệp cấu hình thông thường, và đó là thời điểm bản sao lưu trở nên mang đi được.
Nếu đĩa còn đọc được nhưng Windows không khởi động, các tệp được bảo vệ coi như đã mất. Những công cụ hứa khôi phục chúng hoặc đang chạy trong ngữ cảnh gốc mà bạn không còn nữa, hoặc đang yêu cầu bạn giao nộp khối cùng ảnh đĩa cũ, một quyết định đáng để dừng lại suy nghĩ.
Dù đi theo cách nào, hãy ghi lại những gì học được: tên đường hầm, các điểm cuối và khóa công khai. Tên và điểm cuối giúp bạn dựng lại nhanh, còn khóa công khai giúp bên đối tác xác định mục nào cần gỡ.
Thay vào đó, hãy dựng lại từ phía đối tác
Với một đối tác bạn kiểm soát, hãy tạo một cặp khóa mới và thêm khóa công khai mới vào danh sách đối tác. Với điểm cuối doanh nghiệp hoặc được lưu trữ, hãy đề nghị quản trị viên cấp khóa mới và gỡ khóa cũ. Yêu cầu đó giống với yêu cầu bạn sẽ đưa ra sau một vụ trộm, vì mất đĩa nghĩa là khóa riêng cũ phải được coi là đã lộ.
Sau đó dựng lại đường hầm từ các giá trị bạn đã ghi, và xác nhận bắt tay trước khi xóa bất cứ thứ gì khác. Mục cũ trên đối tác nên biến mất trong cùng thay đổi đó, để một chiếc đĩa bị đánh cắp không thể kết nối lại sau này.
Bài học thuộc về chính sách sao lưu hơn là công cụ khôi phục. Cấu hình WireGuard là một thông tin xác thực: ai giữ khóa riêng là giữ danh tính của đối tác, và không có mật khẩu thứ hai chắn giữa. Hoặc xuất cấu hình một cách có chủ đích và lưu cùng các bí mật khác, hoặc chấp nhận rằng khôi phục nghĩa là cấp lại khóa, và ghi rõ lựa chọn nào áp dụng cho từng đường hầm.