Cài hồ sơ VPN đã ký trên iPhone? Hãy đọc các payload
Hồ sơ đã ký chứng minh ai đóng gói nó, không phải nó cài những gì. Hãy đi qua phong bì, từng payload và từng chứng chỉ trước khi tin một VPN hay CA gốc.
Hồ sơ xuất hiện trong Cài đặt với một tên, một người ký và một nút Cài, và dòng người ký là phần mà hầu hết mọi người đọc. Dòng đó trả lời đúng một câu hỏi: ai đã đóng gói các thiết lập này theo các quy tắc xác minh chữ ký. Nó không nói rằng payload VPN trỏ tới cổng của nhà tuyển dụng bạn, hay rằng một chứng chỉ gốc nhúng sẵn thuộc kho tin cậy TLS của bạn. Phần trình bày dưới đây mở gói theo đúng thứ tự thiết bị sẽ áp dụng.
Bắt đầu với phong bì: ai đã ký hồ sơ này
Trên iOS, hồ sơ hiện trong Cài đặt, Cài đặt chung, VPN và Quản lý thiết bị, với người ký hiển thị phía trên nút Cài. Hãy đọc tên đó trước khi chạm vào bất cứ thứ gì, và tự hỏi liệu đây có phải tổ chức mà bạn mong nhận thiết lập từ họ. Một chữ ký hợp lệ từ bên bạn không nhận ra vẫn là chữ ký hợp lệ, và nó cấp quyền cho cấu hình của họ chứ không phải của bạn. Cùng màn hình đó cũng cho biết hồ sơ có được ký hay không.
Nếu bạn có tệp trên máy Mac, hãy kiểm tra trước khi nó tới điện thoại. Công cụ bảo mật giải mã phong bì CMS và in ra plist mà thiết bị sẽ đọc, tức cùng nội dung đó mà không có nút Cài chen giữa. Tài liệu của Apple về việc thực thi cấu hình mô tả chữ ký như việc xác thực nguồn gốc, và đó chính xác là phạm vi được nói tới ở đây.
security cms -D -i corp-vpn.mobileconfig -o corp-vpn.plist
plutil -p corp-vpn.plist
Hãy dừng lại nếu người ký không phải người bạn mong đợi, hoặc nếu tệp không có chữ ký và đến qua một kênh không thể bảo chứng cho nó. Không bước nào sau đây trong phần trình bày có thể biến một phong bì không đáng tin thành đáng tin.
Mở từng payload và gọi tên thứ nó cài đặt
Hồ sơ là một vật chứa, và phần thú vị là mảng PayloadContent bên trong nó. Mỗi mục mang một PayloadType cho biết thiết bị sẽ cài gì: một cấu hình VPN được quản lý, một danh tính PKCS#12, một chứng chỉ gốc, hoặc một đăng ký quản lý. Hãy in các loại ra trước khi đọc bất kỳ thiết lập nào.
plutil -extract PayloadContent xml1 -o - corp-vpn.plist |
grep -E 'PayloadType|PayloadDisplayName'
Payload VPN đặt tên cho một kết nối: địa chỉ máy chủ, phương thức xác thực, và có thể là một quy tắc theo từng ứng dụng hoặc theo yêu cầu. Payload danh tính cung cấp thông tin đăng nhập máy khách mà kết nối đó sẽ trình ra. Payload chứng chỉ gốc thêm một neo tin cậy, còn payload quản lý trao quyền kiểm soát lâu dài cho một máy chủ. Đó là bốn cam kết khác nhau, và chữ ký bao trùm cả gói chứ không bảo chứng cho từng cái riêng lẻ. Hãy đọc chúng theo thứ tự đó, vì VPN vô dụng nếu thiếu danh tính và danh tính chẳng nói lên nhiều nếu bạn không biết ai đã cấp nó.
Bảo vệ tệp bằng mật khẩu lại là một thuộc tính riêng. Một gói được mã hóa giấu nội dung khỏi người không có mật khẩu; nó không quyết định liệu bạn có nên cho phép thứ bên trong hay không. Hãy coi mật khẩu là cơ chế giao hàng, không phải một lần rà soát.
Truy các chứng chỉ tới kết nối sử dụng chúng
Liệt kê các chứng chỉ trong gói và gán mỗi cái cho một nhiệm vụ. Chứng chỉ máy khách nhận diện thiết bị này với cổng, CA đã cấp nó thuộc chuỗi tin cậy của kết nối đó, và một chứng chỉ gốc được cài cho proxy hay dịch vụ nội bộ không tự động là neo cho mọi trang HTTPS. Trên iOS, chứng chỉ gốc cài thủ công vẫn không được tin cho TLS cho tới khi bạn bật nó trong Cài đặt, Giới thiệu, Cài đặt tin cậy chứng chỉ, trong khi chứng chỉ gốc do quản lý đẩy xuống được tin mà không cần bước đó. Chính khác biệt này là lý do mục đích của payload quan trọng.
openssl pkcs7 -inform DER -in corp-vpn.mobileconfig -print_certs -noout
security find-certificate -a -c "Corp Root" -p | openssl x509 -noout -subject -dates
Một nhà cung cấp chuyển lưu lượng của bạn không vì thế mà là điểm cuối TLS của mọi trang web bạn ghé. Việc chặn giữa cần đường đi lưu lượng và một neo tin cậy mà ứng dụng chấp nhận, và một hồ sơ mang một chứng chỉ không chứng minh được cả hai. Hãy hỏi kết nối nào dùng chứng chỉ đó và ứng dụng nào sẽ chấp nhận nó, thay vì cho rằng cài hồ sơ là giải mã mọi thứ.
Sau khi cài: xác minh, và biết việc gỡ bỏ làm gì
Khi hồ sơ đã được cài, hãy xác nhận từ thiết bị chứ không phải từ tệp bạn đã tải. Màn hình cài đặt liệt kê hồ sơ đã cài, người ký và các payload của nó, còn màn hình VPN cho thấy kết nối có được cấu hình như mong muốn hay không. Xóa tệp đã tải không gỡ bỏ gì cả; cấu hình đã cài là một đối tượng riêng.
profiles show -type configuration
scutil --nc list
Nếu hồ sơ có kèm một đăng ký quản lý, hãy đọc hậu quả của việc gỡ bỏ trước khi cài, không phải sau khi cài. Gỡ đăng ký đó sẽ mang theo các cấu hình đi kèm và có thể gỡ cả ứng dụng được quản lý, tùy vào cách thiết bị được đăng ký. Đây không phải bước sửa chữa để thử khi một chứng chỉ trông sai. Hãy hỏi quản trị viên payload nào đang gây ra vấn đề trước khi gỡ bất cứ thứ gì.
Phần trình bày kết thúc bằng bốn câu trả lời riêng: ai đã ký gói, nó cài những payload nào, mỗi kết nối dùng danh tính và sự tin cậy nào, và việc gỡ bỏ sẽ mang theo gì. Hãy giữ chúng tách biệt và một hồ sơ đã ký trở thành một quyết định đã được rà soát thay vì một dấu tích xanh.