ca md too weak: cấp lại chứng chỉ hay hạ mức bảo mật?
Lỗi nêu tên một digest chữ ký mà máy khách giờ từ chối, không phải mật khẩu yếu. Chọn giữa cấp lại chuỗi, hỏi nhà phát hành, hoặc hạ chính sách.
OpenVPN máy khách từng chạy được tháng trước nay thất bại khi khởi động với ca md too weak, và tệp cấu hình trên đĩa giống hệt từng byte bản đã chạy. Thông báo nói về chữ ký trên chứng chỉ của một tổ chức phát hành chứng chỉ, không phải mật mã dữ liệu, digest auth hay mật khẩu tài khoản. Ba điều kiện quyết định cách sửa là vật liệu nhận dạng mới, chuỗi mới, hay thay đổi chính sách có chủ đích. Làm theo thứ tự, và bạn tránh được kết cục quen thuộc là đường hầm trở lại nhờ làm yếu mọi kết nối TLS trên máy chủ.
Lỗi thực sự nêu tên điều gì
OpenSSL ném lỗi xác minh này trong khi dựng chuỗi, khi chứng chỉ đóng vai trò CA mang digest chữ ký mà mức bảo mật của thư viện không còn chấp nhận. MD5 bị từ chối ở mức mặc định, và SHA-1 bị từ chối khi mức được nâng lên. Digest trên chứng chỉ lá ở đây ít quan trọng hơn digest trên nhà phát hành đã ký nó. Cùng chính sách đó có thể từ chối một gốc hoàn toàn bình thường vào ngày nó được phát hành.
Đó là lý do việc sửa auth hay data-ciphers không giúp gì cho lỗi này. Những thiết lập đó điều khiển cách gói tin được bảo vệ sau bắt tay, còn đối tượng bị từ chối là một tài liệu nhận dạng được xem xét trước khi đường hầm tồn tại. Một chứng chỉ có thể nằm gọn trong cửa sổ hiệu lực của nó mà vẫn mang chữ ký mà thư viện sẽ không chấp nhận.
Giữ các phép kiểm tra tách biệt trong đầu và lỗi sẽ thôi có vẻ bí ẩn. Ngày hiệu lực, mục đích khóa và digest chữ ký là những phép thử độc lập, và đúng một trong số đó vừa thất bại.
Điều kiện một: đối tượng bị từ chối có phải là gốc?
In từng chứng chỉ trong tệp cấu hình và đọc các trường subject và issuer. Một gốc tự ký cho thấy cùng một giá trị ở cả hai, và thuật toán chữ ký của nó là thứ cả chuỗi dựa vào. Khi digest yếu nằm ở đó, mọi lá bên dưới đều thừa hưởng vấn đề. Ghi thuật toán bên cạnh subject để lần so sánh sau mang tính máy móc chứ không từ trí nhớ.
Các tệp CA gộp thường chứa nhiều khối, nên hãy xác định khối thực sự được nạp thay vì cho rằng khối đầu tiên là thủ phạm. Lệnh openssl x509 -in ca.pem -noout -subject -issuer -text mô tả một chứng chỉ mỗi lần, nghĩa là phải tách gói trước nếu nó chứa nhiều hơn một. So sánh thuật toán chữ ký được in với digest mà bạn kỳ vọng từ thời kỳ gốc được tạo.
Lá được ký bằng SHA-256 dưới một gốc yếu vẫn thất bại, vì phép kiểm tra chuỗi đi ngược lên tận cùng. Chính thứ tự đó khiến điều kiện tiếp theo trở nên quan trọng.
Điều kiện hai: bạn có kiểm soát nhà phát hành không?
Nếu gốc thuộc tổ chức của bạn, cách sửa bền vững là một gốc mới với digest hiện đại cùng các lá được cấp lại, giao như một lần cập nhật tệp cấu hình. Việc đó tốn một cửa sổ bảo trì và một kế hoạch cho các thiết bị không thể nhận bản cập nhật trong cùng ngày.
Nếu bên thứ ba phát hành chuỗi, cách sửa là một yêu cầu gửi tới nhà vận hành đó, và hành động cục bộ hữu ích duy nhất là ngừng dựa vào vật liệu cũ. Sửa văn bản PEM hay lưu lại tệp không thay đổi bất cứ điều gì mà chữ ký bao phủ.
Một trường hợp trung gian đáng được nêu tên: một gốc nội bộ cũ hơn các mặc định hiện tại nhưng vẫn ký vật liệu mà các hệ thống khác tin cậy. Thay nó nghĩa là kiểm toán mọi đối tượng tiêu thụ, kể cả thiết bị ghim chứng chỉ cũ bằng dấu vân tay. Hãy đếm những đối tượng đó trước khi lên lịch thay đổi, vì một lần đổi gốc bỏ sót một cái sẽ đổi lỗi khởi động thành sự cố ngừng dịch vụ.
Điều kiện ba: hạ mức còn chấp nhận những gì
Hạ mức bảo mật, hoặc chọn hồ sơ chứng chỉ cũ của OpenVPN, khiến máy khách lại chấp nhận digest cũ. Nó cũng nới lỏng các phép kiểm tra khác trong cùng thư viện, cho mọi kết nối mà tiến trình đó thực hiện.
Điều đó có thể biện hộ được trong phòng thí nghiệm, hoặc như một cây cầu ngắn trong lúc chuẩn bị vật liệu thay thế, miễn là ngoại lệ chỉ giới hạn ở một hồ sơ và có ngày kết thúc. Như một thiết lập vĩnh viễn trên máy chủ dùng chung, nó âm thầm mở rộng thứ mà mọi máy khách TLS ở đó sẽ tin cậy.
Hãy ghi ngoại lệ kèm người chịu trách nhiệm và bước gỡ bỏ. Một thay đổi mức không được ghi lại sẽ không thể phân biệt với sai sót sau sáu tháng, và kỹ sư tiếp theo sẽ không biết rằng nó từng là một quyết định.
Quyết định, viết thành quy tắc
Thay chuỗi khi bạn kiểm soát nhà phát hành và có thể liệt kê các đối tượng tiêu thụ. Chuyển lên nhà phát hành khi bạn không kiểm soát. Chỉ hạ mức như một ngoại lệ có ngày tháng và giới hạn, với phương án thay thế đã được lên lịch. Bất cứ điều gì khác đều để nguyên chứng chỉ đó và chuyển rủi ro tới nơi khó thấy hơn.
Sau đó kiểm thử lại tệp cấu hình từ một máy khách sạch, xác nhận bắt tay hoàn tất, và giữ nguyên văn bản từ chối chính xác nếu nó vẫn thất bại. Một thông báo lỗi chính xác là thứ rẻ nhất bạn có thể trao cho người sở hữu lớp tiếp theo.