Kódaláírás az Azure Key Vault segítségével

A kódaláíró Code Signing tanúsítványt biztonságosan kell tárolni. Ehhez nagyon egyszerűen használhatja a felhő megoldású Cloud HSM-et az Azure Key Vault szolgáltatással. Útmutatónk segít az Azure Key Vault beállításában és konfigurálásában, de megtalálja benne az aláírási parancsokat, amelyeket az Azurehoz kell használnia.

Code Signing tanúsítványt biztonságosan kell tárolni

A kódaláíró tanúsítványokat csak biztonságos eszközökhöz állítják ki - ezeknek a HSM-en kell lenniük. Ennek két formája lehet - vagy hagyományos hardver, amelynek beszerzése drága, vagy felhőalapú, amely ugyanazt a feladatot látja el. Az Azure Key Vault, amelyről írunk, FIPS 140-2 Level 2 és 3 kompatibilis, így használható a Code Singing tanúsítványok tárolására. A szolgáltatással kapcsolatos további információkért látogasson el az Azure Key Vault oldalára.

Azura Key Vault üzembe helyezése és beállítása

A KeyLockernek természetesen van alternatívája is. Sok ügyfél használja az Azure felhőszolgáltatásokat, amelyek lehetővé teszik a biztonságos kulcstárolást (HSM). Az Azure Key Vault segítségével a kódaláíró tanúsítványt a felhőben tárolhatja, és nem kell semmi mással külön foglalkoznia.

A Code Signing tanúsítvány használatával történő aláíráshoz az Azureban következőket kell tennie:

  1. Szerezze be a tanúsítványt az Azure kulcstárba (hozza létre a CSR-t, majd importálja a választ).
  2. Hozzon létre egy alkalmazást, amelyet alá fog akarni írni
  3. Alkalmazás hozzáadása a Key Vault-ja Access policies-jához
  4. Telepíteni az eszközére a támogató software-t

Haladjunk végig a folyamaton lépésről lépésre. Az alábbiakban a haladó felhasználók számára leegyszerűsítettük őket, ha részletes utasításokra van szüksége, használja ezt az útmutatót a GitHubon.. A tanúsítvány megvásárlásáról és a hitelesítésről szóló részt figyelmen kívül hagyhatja, mivel azt rajtunk keresztül végzi.

Kódaláíró tanúsítvány beszerzése és beállítása az Azure-ban

A kód aláírásához szükséges tanúsítvány beszerzése egyszerű. Az SSLmarketen vásárolhat kódaláíró tanúsítványt a HSM-en való tárolással. Ezután létrehoz egy CSR-t az Azure-ban, amelyet elküld nekünk. A tanúsítvány kiadása után elküldjük Önnek az aláírt nyilvános kulcsot (=tanúsítványt), és Ön ezt a választ importálja az Azure-ba.

Az Azure Key Vaultban a bal oldali menünél kiválassza a Certificatesopciót majd rákattint a Create a certificate-re. Az általános űrlapon válassza ki a tanúsítvány elnevezését, majd a Common name-t (figyelem! Ez az aláíró neveként jelenik majd meg), és válassza a Certificate issued by non-integrated CA (nem integrált hitelesítésszolgáltató által kiadott tanúsítvány) lehetőséget a hitelesítő hatóság típusaként. Formátumként válassza a PEM formátumot.

CSR létrehozása az Azureban
CSR létrehozása az Azureban

Manuálisan szükséges konfigurálni az Advanced Policy Configuration-t, tehát kattintson a Not configured-ra és állítsa be a következőt:

  • Extended Key Usages (EKU) na 1.3.6.1.5.5.7.3.3
  • Key Size RSA-hoz, legalább 3072b, EC-hez legalább P-256
  • Privát kulcsot Not expordable-t válassza, amennyiben Code Signing EV tanúsítványról van szó
Advanced policy configuration
Advanced policy configuration

A In progress, failed or cancelled kategóriában megtalálja az új tanúsítványt, annak részleteinél kattintson a Certificate Operation-ra, amely további részleteket hív elő, ahonnan letölthető a CSR. Ugyanezen helyen tudja importálni a kiadott tanúsítványt a Merge Signed Request-ten keresztül.

Stažení CSR v Certificate Operation
CSR letöltése a Certificate Operation-ből

A letöltött CSR használja a tanúsítvány rendeléshez az SSLmarket-en, és azt a HSM-en tárolt Code Signing OV és EV kódaláíráshoz használhatja.

Alkalmazás létrehozása

Az önálló Key Vault létrehozása mellett a Resource Groupban, illetve a tanúsítvány mentése mellett, szükséges még létrehozni alkalmazást a Microsoft Entra ID-ban is (előtte Azure Active Directory). Mindkettő az autentizálásra szolgál és a Vaulthoz való hozzáféréshez.

Menjen a Microsoft Entra ID áttekintésére és a bal menünél válassza ki az App registrations-t- Ezután adjon meg egy új alkalmazás regisztrációját, nevezze el, és válassza ki a hozzáférési opciót: Accounts in this organizational directory only (Default Directory only - Single tenant). Az alkalmazás létrehozásánál meglátja az Application ID-t, amely szükséges az aláíráshoz, mint “client ID”.

Menjen az alkalmazás részleteire a kliens bal menüjében: Certificates & secrets. Itt hozza létre az új Client secret-et és nevezze azt el. Másolja ki és mentse el a Secret (Value) értéket, mert többé nem fogja látni azt.

Access policies beállítása

Most vissza kell mennünk a Key Vaultba.

Módosítsa a jogokat az Azure role-based access (RBAC)-ról erre: Vault access policy.

Azure Permission model
Azure Permission model

Bal oldalt előbb Access Policies, majd kattintson erre: Create. Hozza létre az Access policy-t, amelyek az ön által létrehozott alkalmazásokra lesznek aplikálva. Legalább a következő jogosultságok szükségesek:

  • Key permissions - Verify, Sign, Get, List
  • Secret permissions - Get, List
  • Certificate permissions - Get, List

Válassza ki az alkalmazást a második lépésben, és keresse meg a neve alapján..

Azure - Create Acess Policy
Azure - Create Acess Policy

Ennyit kell beállítania az Azure felületén.

Támogató szoftver telepítése

Telepítse a következőket a számítógépére:

  • .net SDK 6.0.200, Windows x64; download
  • .net ASP.NET Core Runtime 6.0.2, Windows x64; download
  • Azure SignTool-t telepítse a cmd-n segítségével: dotnet tool install --global AzureSignTool

Gratulálunk, most már használhatja az Azure SignToolt a kód aláírására a Key Vaultban tárolt tanúsítvány használatával.

Aláírás Azure Key Vault segítségével

Most, hogy minden készen áll az aláírásra, a legfontosabb, hogy az aláírási parancshoz szükséges adatokkal rendelkezzünk. Ez így néz ki: azuresigntool sign -kvt KEY-VAULT-DIRECTORY-ID -kvu KEY-VAULT-URI -kvi APPLICATION-CLIENT-ID -kvc CERTIFICATE-NAME -kvs CLIENT-SECRET -tr http://timestamp.digicert.com - v PATH-TO-EXECUTABLE

Mi micsoda?

  • Kvt : directory id az Azure Key Vault-jához
  • kvu : Azure Key Vault URL-ja. Megtalálja a főoldalon, mint DNS Name.
  • kvi : application id Azure app, amelyet regisztrált.
  • kvc : friendly name tanúsítvány, amelyet használni akar. Ez a megjelölést Ön választotta.
  • kvs : client secret, amelyet kigenerált az alkalmazáshoz.
  • tr : URL timestamp a szerverhez. Az időbélyeget mindenképp használja, hogy az aláírás megbízható legyen a tanúsítvány lejárta után is.
  • v určuje umiestnenie súboru, ktorý podpisujete.

A fentiek mindegyike megtalálható az Azure felületén..