Điểm:2

Ký phần mềm với openSSL

lá cờ sg

Công ty tôi làm việc muốn tôi triển khai một số chức năng C để tự động ký phần mềm của họ. Sau khi thực hiện một số nghiên cứu, tôi thấy rằng openSSL rất phù hợp để làm như vậy.

Trước khi bắt đầu triển khai trong C, tôi muốn cảm nhận về quy trình công việc bằng cách thực hiện nó trong CLI trước. Nhưng điều đó khiến tôi hơi bối rối, vì tôi không chắc nên sử dụng chứng chỉ ở đâu ở đây.

Đây là các bước mà tôi đã thực hiện:

  1. Tạo khóa riêng
$ openssl genrsa -ra privat.pem 2048
  1. Trích xuất khóa công khai từ khóa riêng
$ openssl rsa -in privat.pem -outform PEM -pubout -out public.pem
  1. Ký tên vào tệp ví dụ bằng khóa riêng
$ openssl dgst -sha256 -sign privat.pem -out sign.sha256 file.txt
  1. Xác minh chữ ký bằng khóa công khai
$ openssl dgst -sha256 -xác minh public.pem -signature sign.sha256 file.txt

Đã xác minh là được

Bây giờ tôi sẽ sử dụng chứng chỉ ở đâu để chứng minh rằng phần mềm là của công ty?

Ngoài ra, phần mềm đang vận chuyển dưới dạng bộ chứa ứng dụng cho debian, nơi chúng tôi tạo tiêu đề ứng dụng của riêng mình với siêu dữ liệu như tổng kiểm tra chẳng hạn. Tôi sẽ phải bao gồm cả chữ ký trong tiêu đề này, liệu có nên lưu trữ đầu ra của sign.sha256 ở đó không? Có lẽ trong Base64?

DannyNiu avatar
lá cờ vu
Lệnh phụ `dgst` dùng để tính toán thông báo băm của dữ liệu thông báo đầu vào. Bạn nên sử dụng lệnh con `cms` để hoạt động ở định dạng dữ liệu CMS cho phép ký, mã hóa, ngoài việc phân loại.
DannyNiu avatar
lá cờ vu
Việc sử dụng phần mềm thuần túy có thể không có chủ đề trên trang web này, nhưng câu hỏi của bạn yêu cầu kiến ​​​​thức về mật mã thực tế không tầm thường để trả lời, vì vậy tôi cho rằng câu hỏi này vẫn ở đây, nhưng những người khác có thể có ý kiến ​​​​khác về tính thời sự trong trường hợp này.
fgrieu avatar
lá cờ ng
Nếu mục tiêu là "ký phần mềm của họ" theo nghĩa dành cho Windows, thì tôi không biết rằng OpenSSL có thể làm được điều đó. AFAIK, vai trò của nó trong quy trình bị hạn chế ở việc tạo cặp khóa công khai/riêng tư và khớp Yêu cầu ký chứng chỉ với Cơ quan cấp chứng chỉ. Việc ký được thực hiện bằng các công cụ khác, điển hình là signtool.exe

Đă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.