Azure DevOps is een krachtig cloudgebaseerd platform dat mensen, processen en tools integreert om softwareontwikkeling te stroomlijnen en naadloze samenwerking mogelijk te maken gedurende de gehele ontwikkelingscyclus. Van idee tot implementatie en verder. Azure DevOps biedt een volledig scala aan diensten die de volledige softwareontwikkelingscyclus bestrijken. Het combineert krachtige technologieën zoals Azure Boards, Azure Repos, Azure Pipelines, Azure Test Plans en Azure Artifacts om ontwikkelteams te ondersteunen en hen in staat te stellen een snellere time-to-market, hogere productiviteit en hogere klanttevredenheid te realiseren. Door Azure te integreren in hun CI/CD-workflows kunnen organisaties de softwarelevering versnellen, de samenwerking verbeteren en hoge kwaliteitsnormen handhaven gedurende de gehele ontwikkelingscyclus.
Codeondertekening
Code ondertekening is een procedure die de legitimiteit van de auteur en de originaliteit en authenticiteit van digitale informatie, met name softwarecode, verifieert. Het garandeert ook dat de informatie geen kwaadaardige code is. Bovendien garandeert het dat deze informatie niet is gewijzigd, vervalst of geannuleerd nadat deze is gepubliceerd. digitaal ondertekend. De digitale handtekening Wordt gemaakt met een persoonlijke sleutel die alleen beschikbaar is voor de software-uitgever. Wanneer de software wordt gedownload en geïnstalleerd, wordt de digitale handtekening gecontroleerd aan de hand van de openbare sleutel om te bevestigen dat deze overeenkomt en dat de software niet is gewijzigd. Codeondertekening is belangrijk voor de veiligheid en beveiliging van softwaretoepassingen, omdat het de verspreiding van malware en andere schadelijke software helpt voorkomen.
Encryption Consulting heeft een CodeSigning-oplossing, “CodeSign Secure, die u kan helpen met fraudebestendige opslag voor de sleutels en volledige zichtbaarheid en controle over Code ondertekening activiteiten. De persoonlijke sleutels van het code-ondertekeningscertificaat kunnen worden opgeslagen in een HSM om de risico's te elimineren die samenhangen met gestolen, beschadigde of misbruikte sleutels.
Integratie Azure DevOps voor codesigning
Om hiermee aan de slag te gaan, hebt u eerst een Azure-account nodig en een systeem waarop u signtool en ECSigningKSP hebt geïnstalleerd en geconfigureerd. Hieronder vindt u de vereisten.
- Een systeem waarop ECSigning KSP en Signtool geïnstalleerd en geconfigureerd zijn. Deze runner moet beheerdersrechten hebben.
- Azure-account.
Om ECSigningKSP en Signtool in te stellen, doorloopt u de volgende stappen:
Windows SDK downloaden: (developer.microsoft.com/en-us/windows/downloads/windows-10-sdk/)
U kunt ervoor kiezen om alleen de Windows SDK Signing Tools voor desktop-apps te installeren.
Open het bestand winsdksetup.exe. Onthoud het standaardpad dat wordt weergegeven in het installatiepad, omdat dit handig is bij het uitvoeren van deze opdrachten vanaf de opdrachtprompt.

Op de pagina Windows Kits Privacy is elke optie om Microsoft toestemming te geven om inzichten te verzamelen in orde. Klik op Volgende.

Accepteer de licentieovereenkomst

Deselecteer alle functies behalve Windows SDK-ondertekeningshulpmiddelen voor desktop-apps, Selecteer vervolgens Installeren.

Wanneer u wordt gevraagd of u wilt toestaan dat deze app wijzigingen aanbrengt, selecteert u Ja.


Klik op de Windows-zoekbalk op de taakbalk en typ 'Bewerk de systeemomgevingsvariabelen'. Selecteer vervolgens de gelijknamige optie in het Configuratiescherm.

Klik omgevingsvariabelen.

Voordat u de variabelenlijst bewerkt, navigeert u met behulp van de bestandsverkenner naar de locatie waar de Windows SDK is geïnstalleerd. U moet het pad kopiëren van de map waarin de SignTool-toepassing zich bevindt. Het standaardpad is C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64, Zie de onderstaande schermafbeelding. Klik met de rechtermuisknop en kopieer het pad zoals weergegeven. U kunt ook de SignTool-applicatie onderaan de bestandslijst zien; dit is de opdracht die u gaat uitvoeren.

Klik in de lijst Systeemvariabelen op Nieuw. Typ vervolgens Pad als variabelenaam en kopieer en plak het bovengenoemde pad. Klik vervolgens op OK aan de omgeving houden variabelen venster en system vastgoed venster.

Om de installatie te testen, opent u de opdrachtprompt en typt u signtool. De uitvoer zou er dan als volgt uit moeten zien.

De standaard installatielocatie voor signtool is bijvoorbeeld: C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64
Om KSP in te stellen, volgt u de onderstaande stappen:
Als u onze oplossing gebruikt, kunt u de KSP downloaden met behulp van de onderstaande stappen:
- Inloggen Code Sign Secure.
-
Navigeer naar: Signing tools repository.

- Download “Encryptie Consulting CNG-SigningKSP”
-
Installeer de clienttools met behulp van het .MSI-installatieprogramma. Het .MSI-installatieprogramma automatiseert een groot deel van de configuratie. Navigeer naar de locatie waar het gedownloade bestand is opgeslagen en start het installatieprogramma.

-
Klik op Volgende wanneer de installatiewizard verschijnt.

-
Klik volgende.

- In de Gebruikersnaam veld, typ admin.
-
In de Code veld, kopieer de code uit de Postman API-repository. Klik op de GetLoginToken api en kopieer de code van de Lichaam.
Download PostMan hier linkKlik na het downloaden op de knop 'Overslaan' onderaan het venster. Voeg in het dashboard een nieuwe collectie toe met het plusteken naast 'Collecties'.
GetLoginToken API (http://codesignsecureapi.encryptionconsulting.com/api/auth/GetLoginToken): Dit is de belangrijkste API, omdat deze u een Token aan toonder Om te gebruiken met de rest van de API's, wordt hieronder weergegeven wat er in de body moet staan. De code dient als wachtwoord om een Bearer Token te verkrijgen, het veld 'Gebruiker' is de gebruikersnaam en het veld 'Identiteitstype' specificeert het gebruikerstype. Klik Verstuur Om een uitvoer te genereren met de Bearer Token onderaan. Kopieer deze token voor gebruik.

- Verander de Identiteit Type om 1.
- Verlof API BaseURL hetzelfde.
-
Klik volgende.

-
Klik volgende.

-
U krijgt dan een melding dat dit programma wijzigingen zal aanbrengen op uw pc. Klik op Ja.

-
De installatie is nu voltooid.

Volg de onderstaande stappen voor de installatie met Azure Devops:
- Ga naar dev.azure.com en meld u aan met uw Microsoft-account of begin gratis met uw GitHub-account.
-
Geef de details zoals gevraagd

- U wordt gevraagd een organisatie aan te maken als u dat nog niet heeft gedaan. Maak een organisatie aan en ga aan de slag met het project.
-
Als je al een project hebt waar je de pijplijn wilt bouwen, ga dan naar 'Pijplijnen'. Zo niet, maak dan eerst een eenvoudig project aan. Geef de benodigde details op om verder te gaan.

-
Nadat u een project hebt aangemaakt, navigeert u naar de gebruikersinstellingen linksboven in uw scherm en klikt u op 'Persoonlijke toegangstoken'. Klik op de volgende pagina op 'Nieuwe token'. Geef in het dialoogvenster de benodigde gegevens op, zoals de naam van de token en de organisatienaam (de organisatie die u eerder hebt aangemaakt/geraadpleegd). Stel de vervaldatum en scopes in. Ik heb de scope ingesteld op volledige toegang.


Klik op 'Create' en kopieer het token ergens naartoe. Je kunt het token later niet meer zien.
-
Nadat we een token hebben ontvangen, moeten we een zelf-gehoste runner instellen. Dit is een machine waarop Signtool en ECSigningKSP zijn geïnstalleerd en geconfigureerd. Ga hiervoor terug naar de pagina Codeoverzicht. Rechtsonder in het scherm ziet u Projectinstellingen. Klik daarop.

Onder Pipelines zie je Agent Pools. Klik daarop en vervolgens op Standaard.

Klik linksboven op 'nieuwe agent'.

Download de agent voor uw besturingssysteem. Ik werk met Windows. Download de agent en pak deze uit in de map "C:\agents".
Je kunt dit ook volgen documentatie voor meer hulp hierover

-
Nadat u de bestanden hebt uitgepakt, navigeert u naar de map waar u ze hebt uitgepakt via cmd en voert u .\config.cmd uit.

Nu zal de server-url zijn https://dev.azure.com/<your_organzation_name Druk op Enter voor PAT bij het authenticatietype en geef bij de volgende vraag het eerder gekopieerde token op.
Zodra de agent is geregistreerd, drukt u bij Agent Pool (deze is standaardinstelling) op Enter. Als u uw agent een naam wilt geven, kunt u dat doen door de naam CLIENT te kiezen, maar druk op Enter om de naam CLIENT te wijzigen.
Zodra de agent is toegevoegd, kunt u de werkmap als standaard laten staan of naar eigen inzicht wijzigen. Voor het uitvoeren van de agent als een service voert u Y in, zoals in 'ja' voor het gebruikersaccount dat voor de service moet worden gebruikt. zorg ervoor dat u dit instelt als beheerderDit is belangrijk omdat u beheerdersrechten nodig hebt om codeondertekening uit te voeren. Geef het wachtwoord op voor uw beheerdersaccount op uw computer.
Omdat we dit als een service hebben ingesteld, wordt de agent automatisch uitgevoerd. Als we dit niet als service hebben ingesteld, moeten we de agent handmatig uitvoeren.
Navigeer naar services.msc en scrol omlaag naar Azure Pipeline Agent om te zien dat u 'Aanmelden als beheerder' hebt geselecteerd. Als u dit nog niet hebt gedaan, kunt u dit zelf wijzigen. Klik op 'Aanmelden' en er verschijnt een dialoogvenster. Navigeer naar 'Aanmelden', stel dit in als 'Beheerder', geef het bijbehorende wachtwoord op en start de service opnieuw op. Ga vervolgens terug naar Azure DevOps om de pijplijn te bouwen.
-
Klik op pijpleidingen om te beginnen.

Klik op 'Pijplijn maken' op de volgende pagina.
-
Kies op de volgende pagina, in het gedeelte 'Verbinden', waar je code staat. Mijn code staat in GitHub en ik ga hiermee aan de slag. Je hebt beheerdersrechten voor je repository nodig om toegang te verlenen.

-
Selecteer de repository waar uw code is opgeslagen.

-
In de sectie 'Configureren' klikt u op 'Starter Pipeline' (als u nog geen .yml-bestand in uw repository hebt). Als u dat wel hebt, klikt u op 'Bestaande Azure Pipeline'. Voor de starter pipeline moet u mogelijk een nieuwe branch maken of committen op de hoofdbranch zelf, de keuze is aan u.

-
Schrijf het volgende script in de editor
trigger:
- <your_branch_name>
pool:
name: <your_pool_name> #In this documentation it’s set as Default
variables:
varible_name: variable_value
steps:
- script: |
signtool sign /csp "Encryption Consulting Key Storage provider" /kc <Key_name> /fd <hashing algorithm> /f <certificate location> /tr <time stamping server> /td SHA256 <file path>
Vervang de variabelen die onder zijn gespecificeerd Hieronder volgt een korte beschrijving van de verwachte variabele.
: Dit verwijst naar de cryptografische sleutel die wordt gebruikt om de code te ondertekenen. Voorbeeld – evcodesigning
: U moet de naam van het hash-algoritme opgeven, bijvoorbeeld SHA256, SHA384 of SHA512. Het moet een van deze drie waarden zijn.
: Een voorbeeld van wat in dit veld kan worden ingevuld is C:\testing.pem. Het certificaat.pem bestand MOET in deze invoer worden opgenomen. U kunt een PEM-bestand van het certificaat genereren voor codesigning, als u de sleutelnaam hebt, met behulp van ECSigningKSP. Volg hiervoor de onderstaande opdrachten:
Navigeer op het apparaat waarop u ECSigningKSP hebt geïnstalleerd en geconfigureerd naar de map van ECSigningKSP, die zich meestal bevindt in "C:\Program Files\Encryption Consulting\SigningKSP".
Ga via de opdrachtprompt naar deze map.
Gebruik vervolgens de volgende opdracht om het pem-bestand van het certificaat op te halen.
ECGetCert.exe (voorbeeld: ECGetCert.exe evcodesigning)
Geef de locatie op waar het certificaat is opgeslagen.
: Een tijdstempelserver levert bewijs dat een digitale handtekening op een specifiek tijdstip is uitgevoerd, waardoor in de toekomst kan worden geverifieerd of een bestand op een bepaald tijdstip is ondertekend. Degene die we over het algemeen gebruiken is http://timestamp.digicert.com
: Hier geeft u het pad op van het bestand dat u wilt ondertekenen. Bijvoorbeeld C:\ \ Zorg ervoor dat u een bestandsnaam met de juiste extensie hebt opgegeven.
Mijn script was:

trigger:
- azure-pipelines1
pool:
name: Default
variables:
EC_Client_Auth: C:\Users\riley\Documents\EncryptionConsulting\testClient.pfx
steps:
- script: |
signtool sign /csp "Encryption Consulting Key Storage provider" /kc evcodesigning /fd SHA256 /f
C:\\Users\\Administrator\\Desktop\\ForTesting\\evcodesigning.pem /tr http://timestamp.digicert.com /td SHA256
C:\\Users\\Administrator\\Desktop\\ForTesting\\AgentService.exe
Wanneer u op Opslaan en uitvoeren klikt, wordt u gevraagd om de branch-tag in te voeren. Controleer of de naam die u hier en onder de trigger in het script opgeeft, hetzelfde is voordat u het script uitvoert.
Zodra de build succesvol is, ziet u dat uw bestand succesvol is ondertekend.

Conclusie
Het bovenstaande artikel demonstreert het proces van het integreren van uw Azure Devops CI/CD-pijplijn met codesigning. Het is een heel eenvoudig proces, aangezien u alleen een runner hoeft in te stellen, deze te verbinden met een Azure Devops-account en de pijplijn hoeft te bouwen om de taak uit te voeren. Codesigning is cruciaal Tegenwoordig blijven bestanden groeien, omdat kwaadaardige software steeds populairder wordt. Codeondertekening creëert vertrouwen tussen softwareontwikkelaars en eindgebruikers en garandeert hen dat de code niet is gecompromitteerd of gewijzigd. U kunt contact met ons opnemen via info@encryptionconsulting.com voor alle hulp met betrekking tot onze codeondertekeningsoplossing.
