Azure DevOps ist eine leistungsstarke Cloud-basierte Plattform, die Menschen, Prozesse und Tools integriert, um die Softwareentwicklung zu optimieren und eine nahtlose Zusammenarbeit während des gesamten Entwicklungszyklus zu ermöglichen. Von der Ideenfindung bis zur Bereitstellung und darüber hinaus: Azure-DevOps bietet ein umfassendes Leistungsspektrum für den gesamten Softwareentwicklungszyklus. Es vereint leistungsstarke Technologien wie Azure Boards, Azure Repos, Azure Pipelines, Azure Test Plans und Azure Artifacts, um Entwicklungsteams zu unterstützen und ihnen eine schnellere Markteinführung, höhere Produktivität und höhere Kundenzufriedenheit zu ermöglichen. Durch die Integration von Azure in ihre CI/CD-Workflows können Unternehmen die Softwarebereitstellung beschleunigen, die Zusammenarbeit verbessern und während des gesamten Entwicklungszyklus hohe Qualitätsstandards einhalten.
CodeSigning
Codesignatur ist ein Verfahren, das die Legitimität des Autors sowie die Originalität und Authentizität digitaler Informationen, insbesondere von Softwarecode, überprüft. Es stellt außerdem sicher, dass es sich bei den Informationen nicht um Schadcode handelt. Darüber hinaus garantiert es, dass diese Informationen nach der Erstellung nicht verändert, verfälscht oder gelöscht wurden. digital signiert. Der Digitale Unterschrift Die Code-Signatur wird mit einem privaten Schlüssel erstellt, der nur dem Softwarehersteller zur Verfügung steht. Beim Herunterladen und Installieren der Software wird die digitale Signatur mit dem öffentlichen Schlüssel abgeglichen, um sicherzustellen, dass sie übereinstimmt und die Software nicht verändert wurde. Code-Signierung ist wichtig für die Sicherheit von Softwareanwendungen, da sie die Verbreitung von Malware und anderer Schadsoftware verhindert.
Encryption Consulting verfügt über eine CodeSigning-Lösung, „CodeSign Secure”, die Ihnen bei der manipulationssicheren Aufbewahrung der Schlüssel und der vollständigen Sichtbarkeit und Kontrolle von helfen kann Codesignatur Aktivitäten. Die privaten Schlüssel des Code-Signing-Zertifikats können in einem HSM um die Risiken im Zusammenhang mit gestohlenen, beschädigten oder missbrauchten Schlüsseln auszuschließen.
Integration Azure DevOps für Codesigning
Um damit zu beginnen, benötigen Sie zunächst ein Azure-Konto und ein System, auf dem Sie signtool und ECSigningKSP installiert und konfiguriert haben. Listen Sie die Voraussetzungen auf.
- Ein System, auf dem ECSigning KSP und Signtool installiert und konfiguriert sind. Dieser Runner sollte über Administratorrechte verfügen.
- Azure-Konto.
Um ECSigningKSP und Signtool einzurichten, führen Sie die folgenden Schritte aus:
Laden Sie das Windows SDK herunter: (developer.microsoft.com/en-us/windows/downloads/windows-10-sdk/)
Sie können auswählen, nur die Windows SDK-Signaturtools für Desktop-Apps zu installieren.
Öffnen Sie die Datei winsdksetup.exe. Merken Sie sich den im Installationspfad angezeigten Standardpfad, da dieser beim Ausführen dieser Befehle über die Eingabeaufforderung hilfreich ist.

Auf der Datenschutzseite von Windows Kits können Sie Microsoft mit beiden Optionen das Sammeln von Erkenntnissen gestatten. Klicken Sie auf „Weiter“.

Akzeptieren Sie die Lizenzvereinbarung

Deaktivieren Sie alle Funktionen außer Windows SDK-Signaturtools für Desktop-Apps, Wählen Sie dann „Installieren“.

Wenn Sie gefragt werden, ob Sie dieser App Änderungen erlauben möchten, wählen Sie „Ja“.


Klicken Sie auf die Windows-Suchleiste in der Taskleiste, geben Sie „Systemumgebungsvariablen bearbeiten“ ein und wählen Sie die gleichnamige Option in der Systemsteuerung aus.

Klicken Sie auf Umgebungsvariablen.

Bevor Sie die Variablenliste bearbeiten, navigieren Sie mit dem Datei-Explorer zum Installationsort des Windows SDK. Sie müssen den Pfad des Ordners kopieren, der die Signtool-Anwendung enthält. Der Standardpfad lautet C:\Programme (x86)\Windows Kits\10\bin\10.0.22621.0\x64, Siehe Screenshot unten. Klicken Sie mit der rechten Maustaste und kopieren Sie den Pfad wie gezeigt. Sie sehen außerdem die Anwendung „Signtool“ unten in der Dateiliste. Dies ist der Befehl, den Sie ausführen werden.

Klicken Sie in der Liste der Systemvariablen auf Neu. Geben Sie dann Pfad als Variablennamen ein und kopieren Sie den oben genannten Pfad. Klicken Sie dann auf OK auf die Umwelt Variablen Fenster und fragst immobilien Fenster.

Um die Installation zu testen, öffnen Sie die Eingabeaufforderung und geben Sie „signtool“ ein. Die Ausgabe sollte wie unten gezeigt aussehen.

Der Standardinstallationsort für Signtool ist beispielsweise: C:\Programme (x86)\Windows Kits\10\bin\10.0.22621.0\x64
Um KSP einzurichten, führen Sie die folgenden Schritte aus:
Wenn Sie unsere Lösung verwenden, können Sie das KSP mit den folgenden Schritten herunterladen:
- Anmelden bei Code Sign Secure.
-
Navigieren Sie zu: Repository für Signaturtools.

- Download „Verschlüsselungsberatung CNG-SigningKSP“
-
Installieren Sie die Client-Tools mit dem MSI-Installationsprogramm. Das MSI-Installationsprogramm automatisiert einen Großteil der Konfiguration. Navigieren Sie zum Speicherort der heruntergeladenen Datei und starten Sie das Installationsprogramm.

-
Klicken Sie auf „Weiter“, wenn der Installationsassistent angezeigt wird.

-
Weiter klicken.

- Im Benutzername Geben Sie im Feld „admin“ ein.
-
Im Code Feld, kopieren Sie den Code aus dem Postman-API-Repository. Klicken Sie auf GetLoginToken API und kopieren Sie den Code aus der Körper
Laden Sie PostMan von diesem herunter Link. Klicken Sie nach dem Download unten im Fenster auf die Schaltfläche „Überspringen“. Fügen Sie im Dashboard mithilfe des Pluszeichens neben „Sammlungen“ eine neue Sammlung hinzu.
GetLoginToken API (http://codesignsecureapi.encryptionconsulting.com/api/auth/GetLoginToken): Dies ist die wichtigste API, da sie Ihnen eine Inhaber-Token Zur Verwendung mit den restlichen APIs. Was im Body enthalten sein sollte, wird unten angezeigt. Der Code dient als Passwort, um das Bearer-Token zu erhalten, das Benutzerfeld ist der Benutzername und das Feld Identitätstyp gibt den Benutzertyp an. Klicken Sie auf Senden um eine Ausgabe zu generieren, in der das Bearer-Token unten aufgeführt ist. Kopieren Sie dieses Token zur Verwendung.

- Ändern Sie die Identitätsschutz Typ um 1.
- Verlassen API BaseURL das Gleiche.
-
Weiter klicken.

-
Weiter klicken.

-
Sie werden dann benachrichtigt, dass dieses Programm Änderungen an Ihrem PC vornimmt. Klicken Sie auf „Ja“.

-
Die Installation ist nun abgeschlossen.

Befolgen Sie zur Einrichtung mit Azure DevOps die folgenden Schritte:
- Navigieren Sie zu dev.azure.com und melden Sie sich mit Ihrem Microsoft-Konto an. Alternativ können Sie auch kostenlos mit Ihrem GitHub-Konto beginnen.
-
Geben Sie die Details wie aufgefordert ein

- Sie werden aufgefordert, eine Organisation zu erstellen, falls Sie dies noch nicht getan haben. Erstellen Sie eine Organisation und beginnen Sie mit dem Projekt.
-
Wenn Sie bereits ein Projekt haben, in dem Sie die Pipeline erstellen möchten, navigieren Sie zu „Pipelines“. Andernfalls erstellen Sie zunächst ein einfaches Projekt. Geben Sie die erforderlichen Details ein, um fortzufahren.

-
Navigieren Sie nach der Projekterstellung zu den Benutzereinstellungen in der oberen linken Ecke Ihres Bildschirms und klicken Sie auf „Persönliches Zugriffstoken“. Klicken Sie auf der nächsten Seite auf „Neues Token“. Geben Sie im angezeigten Dialogfeld die erforderlichen Details wie den Namen des Tokens und den Namen der Organisation ein (die Organisation, die Sie zuvor erstellt/aufgerufen haben). Legen Sie Ablaufdatum und Geltungsbereich fest. Ich habe den Geltungsbereich auf Vollzugriff eingestellt.


Klicken Sie auf „Erstellen“ und kopieren Sie das Token irgendwohin, da Sie das Token nicht mehr sehen können.
-
Nachdem wir ein Token erhalten haben, müssen wir einen selbstgehosteten Runner einrichten. Dies ist eine Maschine, auf der Signtool und ECSigningKSP installiert und konfiguriert sind. Kehren Sie dazu zur Codeübersicht zurück. Unten rechts auf dem Bildschirm sehen Sie die Projekteinstellungen. Klicken Sie darauf.

Unter „Pipelines“ sehen Sie „Agent Pools“. Klicken Sie darauf und dann auf „Standard“.

Klicken Sie oben links auf „Neuer Agent“.

Holen Sie sich den Agenten entsprechend Ihrem Betriebssystem. Ich verwende Windows. Laden Sie den Agenten herunter und extrahieren Sie ihn in den Ordner „C:\agents“.
Diesem können Sie auch folgen Dokumentation für weitere Hilfe hierzu

-
Navigieren Sie nach dem Extrahieren der Dateien von cmd zu dem Ordner, in den Sie sie extrahiert haben, und führen Sie .\config.cmd aus.

Nun lautet die Server-URL https://dev.azure.com/<your_organzation_name Drücken Sie beim Authentifizierungstyp einfach die Eingabetaste für PAT und geben Sie bei der nächsten Frage das zuvor kopierte Token ein.
Sobald der Agent registriert ist, drücken Sie für den Agentenpool, da wir ihn als Standard haben, die Eingabetaste. Wenn Sie Ihrem Agenten einen Namen geben möchten, können Sie ihn benennen, aber drücken Sie die Eingabetaste, damit er CLIENT heißt.
Sobald der Agent hinzugefügt wurde, können Sie den Arbeitsordner als Standard belassen oder nach Wunsch ändern. Geben Sie zum Ausführen des Agenten als Dienst „Y“ (Ja) ein. Geben Sie für das für den Dienst zu verwendende Benutzerkonto „Y“ (Ja) ein. Stellen Sie sicher, dass Sie dies als Administrator festlegenDies ist wichtig, da Sie zum Signieren des Codes Administratorrechte benötigen. Geben Sie das Kennwort für Ihr Administratorkonto auf Ihrem Computer ein.
Da wir dies als Dienst festgelegt haben, wird der Agent automatisch ausgeführt. Hätten wir dies nicht als Dienst festgelegt, müssten wir den Agenten manuell ausführen.
Navigieren Sie zu services.msc und scrollen Sie nach unten zu Azure Pipeline Agent, um zu sehen, ob Sie sich als Administrator angemeldet haben. Falls nicht, können Sie dies direkt ändern. Klicken Sie einfach auf „Anmelden“. Ein Dialogfeld wird angezeigt. Navigieren Sie zur Anmeldung, stellen Sie sie auf „Administrator“, geben Sie das entsprechende Kennwort ein und starten Sie den Dienst neu. Kehren Sie anschließend zu Azure DevOps zurück, um die Pipeline zu erstellen.
-
Klicken Sie auf Pipelines, um zu beginnen.

Klicken Sie auf der folgenden Seite auf „Pipeline erstellen“.
-
Wählen Sie auf der nächsten Seite im Abschnitt „Verbinden“ den Speicherort Ihres Codes aus. Mein Code befindet sich in GitHub, und ich fahre damit fort. Sie benötigen Administratorrechte für Ihr Repository, um Zugriff zu gewähren.

-
Wählen Sie das Repository aus, in dem sich Ihr Code befindet.

-
Klicken Sie nun im Abschnitt „Konfigurieren“ auf „Starter-Pipeline“, falls noch keine YML-Datei in Ihrem Repository vorhanden ist. Andernfalls klicken Sie auf „Vorhandene Azure-Pipeline“. Für die Starter-Pipeline müssen Sie möglicherweise einen neuen Zweig erstellen oder einen Commit auf dem Hauptzweig selbst ausführen – Sie haben die Wahl.

-
Schreiben Sie im Editor das folgende Skript
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>
Bitte ersetzen Sie die angegebenen Variablen unter . Eine kurze Beschreibung der erwarteten Variable finden Sie weiter unten.
: Dies bezieht sich auf den kryptografischen Schlüssel, der zum Signieren des Codes verwendet wird. Beispiel – evcodesigning
: Sie müssen den Namen des Hash-Algorithmus angeben, z. B. SHA256, SHA384 oder SHA512. Es muss einer dieser drei Werte sein.
: Ein Beispiel für den Inhalt dieses Feldes ist C:\testing.pem. Das Zertifikat.pem Die Datei MUSS in dieser Eingabe enthalten sein. Sie können eine PEM-Datei des Zertifikats für die gemeinsame Gestaltung generieren, wenn Sie den Schlüsselnamen ECSigningKSP verwenden. Führen Sie dazu die folgenden Befehle aus:
Navigieren Sie auf Ihrem Gerät, auf dem ECSigningKSP installiert und konfiguriert ist, zum Ordner ECSigningKSP, der sich normalerweise unter „C:\Programme\Encryption Consulting\SigningKSP“ befindet.
Greifen Sie in Ihrer Eingabeaufforderung auf dieses Verzeichnis zu.
Verwenden Sie dann den folgenden Befehl, um die PEM-Datei des Zertifikats abzurufen.
ECGetCert.exe (Beispiel: ECGetCert.exe evcodesigning)
Geben Sie den Speicherort des Zertifikats an.
: Ein Zeitstempelserver liefert den Nachweis, dass eine digitale Signatur zu einem bestimmten Zeitpunkt durchgeführt wurde, wodurch später überprüft werden kann, ob eine Datei zu einem bestimmten Zeitpunkt signiert wurde. Wir verwenden im Allgemeinen http://timestamp.digicert.com
: Hier geben Sie den Pfad der Datei an, die Sie signieren möchten. Beispiel: C:\ \ . Stellen Sie sicher, dass Sie einen Dateinamen mit der richtigen Erweiterung angegeben haben.
Mein Skript war:

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
Wenn Sie auf „Speichern und ausführen“ klicken, werden Sie zur Eingabe des Branch-Tags aufgefordert. Stellen Sie sicher, dass der hier und unter „Trigger“ im Skript angegebene Name identisch ist, bevor Sie das Skript ausführen.
Sobald der Build erfolgreich ist, sehen Sie, dass Ihre Datei erfolgreich signiert wurde.

Fazit
Der obige Artikel demonstriert den Prozess der Integration Ihrer Azure Devops CI/CD-Pipeline mit Codesigning. Es ist ein sehr einfacher Prozess, da Sie lediglich einen Runner einrichten, ihn mit einem Azure Devops-Konto verbinden und die Pipeline für die Ausführung des Jobs erstellen müssen. Codesigning ist wichtig In der heutigen Zeit, in der Schadsoftware ständig wächst, werden Dateien immer größer. Code Signing schafft Vertrauen zwischen Softwareherstellern und Endbenutzern und garantiert ihnen, dass der Code nicht kompromittiert oder verändert wurde. Sie erreichen uns unter info@encryptionconsulting.com für jegliche Hilfe bezüglich unserer Code-Signing-Lösung.
