Điểm:1

Thuật toán mã hóa thông báo PKCS#7 - sự khác biệt giữa rsaEncryption và sha256WithRsaEncryption

lá cờ cn

Là một phần của quá trình triển khai khởi động an toàn linux của chúng tôi bằng cách sử dụng dm-verity và kiểm tra chữ ký băm gốc, tôi cần ký một tệp bằng lệnh openssl sau (ví dụ):

openssl smime -sign -nocerts -noattr -binary -in unsigned.txt -inkey private.key -signer cert.pem -outform der -out sign.txt

Điều này tạo ra tệp PKCS#7 mà sau đó nhân linux có thể xử lý thành công.

Nhưng để sản xuất, chúng tôi không sử dụng openssl nhưng PrimeKey Signserver (dựa trên bouncycastle) với người ký CMS. Ở đây, tôi không thể định cấu hình trình ký CMS để tạo PKCS#7 đang hoạt động cho đến nay. Vấn đề là sự khác biệt trong digest_enc_algorithm như trong hình bên dưới (Trái: signserver, phải: openssl).

nhập mô tả hình ảnh ở đây

Vấn đề là, rằng các kernel sẽ không hỗ trợ OID đó. Chỉ cần thêm sha256WithRsaEncryption vào công tắc sẽ khắc phục sự cố, nhưng tôi không chắc liệu đây có phải là giải pháp hợp lệ hay không. sửa chữa hạt nhân

Một "cách khắc phục" khác mà tôi tìm thấy chỉ đơn giản là thay thế OID của tệp PKCS#7 đã ký, điều này cũng đặt ra một số câu hỏi cho tôi?!

Bây giờ câu hỏi của tôi:

  • Có sự khác biệt thực sự giữa rsaEncryption và sha256WithRsaEncryption trong bối cảnh đó không?
  • Tại sao có thể thay đổi tệp PKCS#7 và mọi thứ đều hoạt động tốt?
  • Nó có phải là một sửa chữa hợp lệ để thêm OID trong trường hợp chuyển đổi trong kernel không? (ít nhất là từ góc độ tiền điện tử)

Cảm ơn sự hỗ trợ của bạn!

CẬP NHẬT: Tìm thấy vấn đề này trên hồ sơ tồn đọng của PrimeKey signserver.

dave_thompson_085 avatar
lá cờ cn
rsaEncryption là OID được xác định duy nhất trong PKCS7 (có sẵn dưới dạng RFC2315, xem 9.4) có thể vì nó được viết trong thời kỳ PKCS1v1 khi chữ ký bị hiểu nhầm là 'mã hóa ngược' và (luôn) có thể tách rời khỏi hàm băm; CMS đã đổi tên digestEncryptionAlgorithm thành signatureAlgorithm và sau đó mở rộng giá trị (2630 12.2.2 chỉ có rsaEncryption nhưng 3370 3.2 cũng có {sha1,md5}withRSA, với nhiều giá trị được bổ sung kể từ đó). Mặc dù PKCS7 và CMS _hầu hết_ giống nhau, nhưng đây là một điểm khác biệt và Bouncy là CMS chứ không phải PKCS7.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.