Kiểm tra chứng chỉ VPN mà không xuất khóa riêng
Đọc các trường công khai, ngày tháng và dấu vân tay mà không in ra vật liệu khóa. Lệnh nào an toàn phụ thuộc vào thứ tệp chứa và ai sẽ nhận được kết quả.
Đọc các trường công khai của một chứng chỉ không bao giờ đòi hỏi phải hiển thị khóa riêng khớp với nó, và công cụ để làm việc đó có sẵn trên mọi hệ thống kết thúc VPN. Rủi ro nằm ở bước trước đó: tệp bạn nhận được có thể không phải là chứng chỉ. Một chứng chỉ PEM, một khối DER, một gói PKCS#12 và một hồ sơ OpenVPN có thể đến với cùng một tên và chứa vật liệu rất khác nhau, vì vậy hãy xác định loại vùng chứa trước khi chọn lệnh.
Ba sự thật quyết định lệnh nào an toàn: tệp chứa gì, bạn cần đọc ra điều gì từ nó, và ai sẽ thấy kết quả. Sai bất kỳ điều nào trong số đó và chính việc kiểm tra sẽ trở thành sự cố.
Bạn được giao loại tệp nào trong ba loại
Chứng chỉ PEM là văn bản có dấu BEGIN và END nhìn thấy được, tệp DER là nhị phân cần cờ định dạng đầu vào, còn một gói là vùng chứa có thể giữ khóa bên cạnh chứng chỉ. file server.crt phân biệt văn bản với nhị phân trong một giây, và liếc qua dòng đầu tiên sẽ phân biệt chứng chỉ trần với hồ sơ nhúng sẵn một chứng chỉ. Đoán mò ở đây chính là thứ biến việc kiểm tra thành sự cố.
Nếu tệp là hồ sơ chứ không phải chứng chỉ, hãy coi nó như thông tin đăng nhập cho đến khi chứng minh được điều ngược lại. Giả định đó không tốn gì, và nó ngăn được sai lầm phổ biến nhất trong toàn bộ công việc này.
Đọc các trường công khai của chứng chỉ PEM
Với chứng chỉ bạn được phép kiểm tra, lệnh con x509 với -noout in ra đúng những trường bạn chọn và không gì khác. Việc ức chế phần thân là thứ giữ kết quả ở mức siêu dữ liệu, và cũng chính điều đó khiến nó an toàn để dán vào phiếu hỗ trợ. Các bộ chọn bên dưới là những bộ công khai, và tài liệu openssl x509 liệt kê phần còn lại.
openssl x509 -in server.crt -noout -subject -issuer -dates -fingerprint -sha256
Trên một chứng chỉ thử nghiệm tạo tại chỗ, lệnh đó in ra dòng chủ thể và nhà phát hành, cặp notBefore và notAfter, cùng một dấu vân tay SHA-256. Những trường đó nhận dạng đối tượng; chúng không thiết lập một đường tin cậy hợp lệ, vốn là một tác vụ xác minh riêng với lệnh riêng và câu trả lời riêng. Một tệp chuỗi cũng có thể chỉ in chứng chỉ đầu tiên trừ khi bạn tự lặp qua tệp. So sánh hai tệp theo cách này tốn một lệnh và xác định được bên kia thực sự trình ra tệp nào.
Những gói chứa khóa bên cạnh chứng chỉ
Tệp .p12 hoặc .pfx có thể mang khóa riêng, và lệnh phân tích sẽ in nó ra trừ khi bạn ức chế phần đó của kết quả. Với -nokeys, cùng lệnh đó vẫn báo cấu trúc của vùng chứa, kể cả túi khóa bị che, mà không phát ra vật liệu khóa nào; bỏ cờ đó đi thì một khối khóa sẽ xuất hiện trên terminal và trong lịch sử shell của bạn.
openssl pkcs12 -in bundle.p12 -nokeys -info -passin env:P12PASS
Hồ sơ OpenVPN nhúng cùng vật liệu đó dưới dạng văn bản, nên ranh giới là hữu hình nếu bạn biết tìm ở đâu. Vật liệu công khai nằm giữa BEGIN CERTIFICATE và END CERTIFICATE, còn bất cứ thứ gì giữa BEGIN PRIVATE KEY và dòng END khớp với nó chính là khóa và không được rời khỏi máy chủ. Sao chép toàn bộ hồ sơ là công bố cả hai.
Lấy giá trị tham chiếu từ nơi khác
Một dấu vân tay đọc từ chính kết nối mà bạn đang cố xác minh không chứng minh được gì, vì bên bạn không tin cậy đã cung cấp nó. Đó không phải lập luận chống lại dấu vân tay; đó là lập luận về nguồn gốc. Hãy so sánh giá trị với một giá trị thu được qua kênh mà bên kia không thể ghi vào, chẳng hạn chứng chỉ được công bố trong kho nội bộ hoặc mã băm in trong một bản ghi thay đổi đã ký.
Ở nơi kho tin cậy thực hiện xác thực, hãy để nó làm, và đọc lỗi nó tạo ra thay vì thay bằng phép so sánh của riêng bạn. Điều phân biệt quan trọng là ai đã cung cấp tham chiếu, chứ không phải hàm băm nào đã được dùng.
Chia sẻ kết quả, và việc cần làm sau một sơ suất
Gửi đúng lỗi xác thực, các ngày liên quan và chỉ những chi tiết nhận dạng mà người nhận cần. Tên máy chủ nội bộ và định danh tài khoản vẫn nhạy cảm ngay cả khi không có khóa nào, và dịch vụ dán công khai là đích sai cho bất kỳ thứ nào trong đó. Hãy dán vào phiếu hỗ trợ, không dán vào bộ đệm tạm mà người khác cũng chia sẻ.
Nếu vật liệu khóa đã xuất hiện trên màn hình hoặc trong một tệp, hãy coi nó là đã bị xâm phạm và xoay vòng nó thay vì hy vọng không ai nhìn thấy. Sau đó ghi lại tệp đã kiểm tra, lệnh đã dùng và kết quả đã đi đâu, vì bản ghi đó là thứ biến một phen hoảng thành một quy trình. Xoay vòng là rẻ so với cái giá của việc cho rằng không ai giữ ảnh chụp màn hình, và cùng bản ghi đó cho kỹ sư tiếp theo biết những tệp nào đã bị chạm tới. Hãy làm cả hai trước khi phiếu bị đóng.