Puncte:2

Semnarea software cu openSSL

drapel sg

Compania pentru care lucrez vrea să implementez unele funcții C pentru a-și semna automat software-ul. După ce am făcut câteva cercetări, am descoperit că openSSL este excelent pentru a face acest lucru.

Înainte de a începe implementarea în C, am vrut să am o impresie despre fluxul de lucru executându-l mai întâi în CLI. Dar asta m-a lăsat puțin confuz, pentru că nu sunt sigur unde trebuie folosite certificatele aici.

Aceștia sunt pașii pe care i-am făcut:

  1. Generați o cheie privată
$ openssl genrsa -out privat.pem 2048
  1. Extrageți cheia publică din cheia privată
$ openssl rsa -in privat.pem -outform PEM -pubout -out public.pem
  1. Semnați fișierul exemplu cu cheia privată
$ openssl dgst -sha256 -sign privat.pem -out sign.sha256 file.txt
  1. Verificați semnătura cu cheia publică
$ openssl dgst -sha256 -verify public.pem -signature sign.sha256 file.txt

Verificat OK

Unde aș folosi acum un certificat pentru a dovedi că software-ul este de la companie?

De asemenea, software-ul se livrează ca un container de aplicații pentru Debian, unde creăm propriul antet al aplicației cu metadate, cum ar fi suma de control, de exemplu. Ar trebui să includ și semnătura în acest antet, ar fi o idee bună să stocez rezultatul sign.sha256 acolo? Poate în Base64?

DannyNiu avatar
drapel vu
Subcomandă `dgst` este pentru calcularea hash digest a datelor mesajului de intrare. Ar trebui să utilizați subcomanda `cms` pentru a opera în format de date CMS, care permite semnarea, criptarea, pe lângă digerare.
DannyNiu avatar
drapel vu
Utilizarea pură a software-ului este probabil în afara subiectului de pe acest site, dar întrebarea dvs. necesită cunoștințe practice de criptografie non-triviale pentru a răspunde, așa că aș argumenta ca această întrebare să rămână aici, dar alții ar putea avea păreri diferite despre actualitatea în acest caz.
fgrieu avatar
drapel ng
Dacă obiectivul este „semnarea software-ului lor” în sensul care are pentru Windows, atunci nu știu că OpenSSL poate face asta. Rolul său AFAIK în procedură este limitat la generarea unei perechi de chei publice/private și la potrivirea cererii de semnare a certificatului cu o autoritate de certificare. Semnarea se face cu alte instrumente, de obicei signtool.exe

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.