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:
- Generați o cheie privată
$ openssl genrsa -out privat.pem 2048
- Extrageți cheia publică din cheia privată
$ openssl rsa -in privat.pem -outform PEM -pubout -out public.pem
- Semnați fișierul exemplu cu cheia privată
$ openssl dgst -sha256 -sign privat.pem -out sign.sha256 file.txt
- 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?