vege - Fotolia

Zertifikate und Verschlüsselung in der Softwareentwicklung

Die Entwicklung sicherer Anwendungen umfasst Kryptografie. Dazu müssen Entwickler Schlüssel und Zertifikate richtig einsetzen. Der Beitrag zeigt, wie es geht.

Bei der Entwicklung von sicheren Anwendungen, Apps und Treibern spielt Kryptografie eine wichtige Rolle. Die Arbeit mit Zertifikaten und deren Ablaufdatum sollte ebenfalls berücksichtigt werden. Eine Lösung ist, Software als Webanwendung zu programmieren und auf Domänenzertifikate zu setzen. Der EU Cyber Resilience Act (CRA) spielt hierbei eine wichtige Rolle und erfordert von Entwicklern einen  Security-by-Design-Ansatz.

Service Worker und Webanwendungen

Durch den Einsatz eines Service Worker lassen sich Webanwendungen gezielt optimieren, indem sie Offline-Funktionalität sowie verbesserte Performance bieten. Service Worker agieren als Vermittler zwischen der Webanwendung und dem Netzwerk und ermöglichen eine gezielte Kontrolle über Datenanfragen, Zwischenspeicherung und Synchronisation. Eine sichere Implementierung erfordert die Bereitstellung der Web-App über HTTPS, um die Integrität und Vertraulichkeit der übertragenen Daten zu gewährleisten.

Die Absicherung durch ein gültiges SSL/TLS-Zertifikat spielt hierfür eine zentrale Rolle, da Service Worker nur in sicheren Kontexten ausgeführt werden. Entwickler sollten auf die regelmäßige Erneuerung und den Schutz der Zertifikate achten, um Sicherheitslücken zu vermeiden. Durch eine sorgfältige Kombination aus Web-App-Architektur, Service Worker und einer robusten Zertifikatsverwaltung lassen sich Anwendungen entwickeln, die sowohl eine hohe Verfügbarkeit als auch Schutz vor potenziellen Angriffen bieten.

Kryptografie
Abbildung 1: Kryptografie ist eine Methode zum Schutz von Daten und Mitteilungen.

Software Bills of Material nicht vernachlässigen

Gleichzeitig spielt für sichere Software auch eine Software Bill of Materials (SBOM) eine wichtige Rolle. Eine SBOM ist eine detaillierte Auflistung aller Softwarekomponenten und ihrer Versionen. Die Listen erfassen sowohl proprietären als auch Open-Source-Code, externe Bibliotheken und Abhängigkeiten. Sie erleichtern die Schwachstellenanalyse und unterstützen Unternehmen dabei, schnell auf Bedrohungen zu reagieren. Ein umfassendes Schwachstellenmanagement wird durch die kontinuierliche Pflege über den gesamten Softwarelebenszyklus ermöglicht.

Die Integration einer SBOM in den Entwicklungsprozess ist weniger komplex als oft angenommen. Automatisierte Lösungen erfassen Abhängigkeiten, Schwachstellen und Zertifikate, um Sicherheitsstandards und regulatorische Anforderungen einzuhalten. Zertifikate und Signaturen spielen eine zentrale Rolle bei der Sicherstellung der Integrität von Software. Eine SBOM erlaubt die Überprüfung dieser Zertifikate und erleichtert Audits sowie Compliance-Nachweise. Angesichts steigender Cyberbedrohungen ist eine lückenlose Dokumentation aller eingesetzten Softwarekomponenten unverzichtbar.

Zertifikate und Hardware: Kompromisse sind gefragt

Der Umgang mit Zertifikaten ist eine Gratwanderung für Entwickler. Letztlich hängen Zertifikate – zumindest teilweise – mit Hardware zusammen. Laufen Zertifikate von Treibern oder Anwendern aus und werden zurückgezogen, kann es passieren, dass Hardware nicht mehr nutzbar ist. Das ist zwar aus Sicherheitsgründen verständlich, bedeutet aber auch, dass Hardware ihren Wert verliert, nur weil eine Anwendung aktualisiert wird. Beispiele hierfür sind IoT-Sensoren oder Geräte, die ab einem bestimmten Zeitpunkt keine Weiterentwicklung mehr erhalten. Sicherheit sollte nicht bedeuten, dass Hardware ihren Wert verliert, obwohl sie noch funktioniert.

Gerade im OT-Umfeld (Operative Technologie) kann das eine Rolle spielen. Die Geräte müssen sicher betrieben werden, dürfen aber auch nicht ausfallen, wenn Zertifikate ablaufen. Dennoch haben immer mehr der Geräte eine Verbindung zum Internet oder einem Netzwerk. Daher spielen Zertifikate und Verschlüsselung eine wesentliche Rolle.

Moderne Anwendungen sind nicht monolithisch

In den meisten Fällen handelt es sich bei Anwendungen nicht mehr um Monolithen, sondern in vielen Fällen um Web-Apps, Microservices oder Apps für Mobilgeräte. Die Kommunikation sollte also sicher sein. Hier spielen Zertifikate und das Zero-Trust-Modell eine wichtige Rolle. Dieses besagt, dass die Kommunikation immer authentisiert und autorisiert werden muss. Bei der Kommunikation zwischen Geräten kommt in den meisten Fällen die zertifikatsbasierte Authentifizierung zum Einsatz.

Schritte in einem Webanwendungs-Workflow
Abbildung 2: Webanwendungen funktionieren in einem Client-Server-Modell.

X.509-Zertifikate einsetzen

Im Rahmen der Kommunikation mit und zwischen Geräten spielt es eine wichtige Rolle, welche Zertifikate genutzt werden. In vielen Fällen sind X.509-Zertifikate im Einsatz. X.509-Zertifikate sind ein zentraler Bestandteil der sicheren Entwicklung von Anwendungen und der sicheren Kommunikation zwischen Geräten. Sie ermöglichen eine zuverlässige Authentifizierung, indem sie digitale Identitäten durch eine vertrauenswürdige Zertifizierungsstelle (Certificate Authority, CA) bestätigen.

In der Softwareentwicklung gewährleisten X.509-Zertifikate, dass nur autorisierte Anwendungen und Dienste miteinander kommunizieren, indem sie eine Ende-zu-Ende-Verschlüsselung ermöglichen und Datenintegrität sicherstellen. Dies schützt vor Man-in-the-Middle-Angriffen oder Identitätsfälschungen. In IoT-Umgebungen sorgen X.509-Zertifikate dafür, dass Geräte sicher in Netzwerke eingebunden werden und nur berechtigte Kommunikation stattfindet. Durch die regelmäßige Überprüfung und Aktualisierung von Zertifikaten bleibt die Sicherheit über den gesamten Lebenszyklus einer Anwendung oder eines Geräts hinweg gewährleistet.

Ablaufende X.509-Zertifikate stellen ein Sicherheitsrisiko dar. Ein abgelaufenes Zertifikat kann dazu führen, dass eine Anwendung oder ein Gerät die Authentifizierung verweigert oder der verschlüsselte Datenaustausch unterbrochen wird. In vielen Fällen werden abgelaufene Zertifikate jedoch weiterhin genutzt, sei es aus Unachtsamkeit oder aufgrund fehlender Prozesse zur regelmäßigen Erneuerung. Dies kann dazu führen, dass Angreifer Schwachstellen ausnutzen, indem sie gefälschte Zertifikate einschleusen oder die Kommunikation abfangen.

Zertifikate dienen nicht nur der Authentifizierung und Verschlüsselung der Kommunikation zwischen Anwendungen, sondern sie stellen auch sicher, dass nur vertrauenswürdige Software in produktive Umgebungen gelangt.

Um diesem Risiko zu begegnen, sind automatisierte Zertifikatsmanagementprozesse erforderlich, die eine rechtzeitige Erneuerung sicherstellen und den sicheren Austausch von Zertifikaten gestatten. Moderne Public Key Infrastructures (PKI) bieten Mechanismen, um ablaufende Zertifikate frühzeitig zu erkennen und durch neue zu ersetzen, ohne die Verfügbarkeit von Diensten zu gefährden. Dennoch kommt es häufig vor, dass Unternehmen veraltete Zertifikate aus Kompatibilitätsgründen oder wegen unzureichender Überwachung weiterhin einsetzen, was die Angriffsfläche vergrößert.

Besonders in IoT-Umgebungen oder bei Cloud-Anwendungen, in denen eine Vielzahl von Zertifikaten im Einsatz sind, kann das Management komplex werden. Hier unterstützen Monitoring-Tools, die den Ablauf von Zertifikaten verfolgen und automatische Warnmeldungen generieren. Unternehmen sollten klare Richtlinien für die Verwaltung und den Austausch von Zertifikaten definieren, um sicherzustellen, dass abgelaufenen Zertifikate nicht unbeabsichtigt weiter genutzt werden.

Zertifikatsmanagement in DevSecOps

In DevSecOps spielen Zertifikate eine zentrale Rolle, um die Sicherheit von Anwendungen über den gesamten Entwicklungs- und Bereitstellungsprozess hinweg zu gewährleisten. Zertifikate dienen nicht nur der Authentifizierung und Verschlüsselung der Kommunikation zwischen Anwendungen, sondern sie stellen auch sicher, dass nur vertrauenswürdige Software in produktive Umgebungen gelangt. Moderne Lösungen für das Zertifikatsmanagement integrieren sich in gängige DevOps-Tools und erlauben eine vollständig automatisierte Bereitstellung und Erneuerung von Zertifikaten.

Ein zentralisiertes Zertifikatsmanagement gestattet Unternehmen, sowohl öffentliche als auch private Zertifikate zu verwalten und eine durchgängige Sicherheitskontrolle über alle Entwicklungsphasen hinweg zu gewährleisten. Besonders im Containerumfeld, in dem Anwendungen mitsamt ihren Abhängigkeiten ausgeliefert werden, sorgt ein automatisiertes Zertifikatsmanagement für eine sichere und konsistente Umgebung.

Code-Signing-Zertifikate spielen hierbei eine wichtige Rolle, indem sie sicherstellen, dass nur signierter und geprüfter Code in Produktionsumgebungen ausgeführt wird. Durch die Integration in bestehende DevSecOps-Prozesse erhalten Unternehmen eine zentrale Lösung zur Verwaltung von Zertifikaten, die manuelle Fehler reduziert und gleichzeitig den Compliance-Anforderungen gerecht wird.

Erfahren Sie mehr über Softwareentwicklung