End-to-End-Verschlüsselung in Microservices: Eine Go- und PostgreSQL-Implementierung

End-to-End-Verschlüsselung in Microservices: Eine Go- und PostgreSQL-Implementierung

3 Min. Lesezeit

Ich präsentiere einen praktischen Ansatz zur Implementierung von durchgängiger Verschlüsselung zwischen Go-Services und einer PostgreSQL-Datenbank.

End-to-End-Verschlüsselung in Microservices: Ein Muss für Ihre Datensicherheit

In einer modernen Microservice-Architektur fließen Daten ständig über das Netzwerk. Während TLS (Transport Layer Security) den Transportweg absichert, bleiben die Daten innerhalb der Services oder in der Datenbank oft im Klartext lesbar. Für hochsensible Informationen – wie PII oder Finanzdaten – reicht das oft nicht aus. Hier kommt die End-to-End-Verschlüsselung (E2EE) ins Spiel. In diesem Beitrag zeige ich Ihnen, wie ich E2EE zwischen Go-Services und einer PostgreSQL-Datenbank implementiere.

Warum nur TLS nicht immer ausreicht

TLS schützt vor “Man-in-the-Middle”-Angriffen auf der Leitung. Sobald die Daten aber den Load Balancer oder das API Gateway passieren, werden sie oft terminiert. Innerhalb des internen Netzwerks oder wenn ein Angreifer Zugriff auf die Datenbank-Festplatten (Data-at-Rest) erhält, sind die Informationen ungeschützt. E2EE stellt sicher, dass nur der berechtigte Service die Daten ver- und entschlüsseln kann – die Infrastruktur dazwischen sieht nur Chiffretext.

Mein Ansatz: Anwendungsseitige Verschlüsselung (Application-Level Encryption)

Anstatt mich auf Datenbank-Features wie TDE (Transparent Data Encryption) zu verlassen, verschlüssele ich die Daten direkt im Go-Service, bevor sie die Anwendung verlassen.

  1. Algorithmus-Wahl: Ich setze konsequent auf AES-256-GCM. Es bietet nicht nur starke Verschlüsselung, sondern durch den GCM-Modus auch Authentizität – wir bemerken also sofort, wenn die verschlüsselten Daten manipuliert wurden.
  2. Key Management (KMS): Der Schlüssel sollte niemals im Code oder in Umgebungsvariablen liegen. Ich nutze externe KMS-Dienste (wie AWS KMS, Google Cloud KMS oder HashiCorp Vault). Der Service sendet den Klartext an das KMS (oder nutzt Envelope Encryption) und speichert nur das Ergebnis.
  3. Envelope Encryption: Für hohe Performance verschlüssele ich die Daten mit einem einmaligen Datenschlüssel (DEK). Dieser DEK wird wiederum mit einem Master-Key aus dem KMS verschlüsselt und zusammen mit den Daten in PostgreSQL gespeichert.

Die Implementierung in Go

Go bietet mit dem crypto-Paket erstklassige Unterstützung. Ich baue mir oft einen kleinen Wrapper um crypto/aes und crypto/cipher, der das KMS anspricht und die Serialisierung übernimmt. In PostgreSQL werden die Daten dann als BYTEA oder Base64-codierter TEXT gespeichert.

Die Abwägung: Performance und Suchbarkeit

E2EE ist kein “Free Lunch”. Es gibt zwei große Herausforderungen:

  • Performance: Die kryptografischen Operationen kosten CPU-Zyklen. Dank AES-NI Instruktionen in modernen CPUs ist der Overhead oft vernachlässigbar, sollte aber in High-Traffic-Szenarien gemessen werden.
  • Suchbarkeit: Dies ist das größte Problem. Man kann in SQL nicht einfach nach einem Namen suchen, wenn dieser verschlüsselt ist (WHERE name = 'Max'). Hier nutze ich oft Blind Indexing: Ich speichere einen kryptografischen Hash (z.B. HMAC) des Suchbegriffs in einer separaten Spalte. So kann ich auf Gleichheit prüfen, ohne die Daten zu entschlüsseln.

Fazit: Wenn “sicher” nicht sicher genug ist

End-to-End-Verschlüsselung erhöht die Komplexität einer Architektur deutlich, bietet aber einen unvergleichlichen Schutz für Ihre wertvollsten Daten. Mit Go und PostgreSQL haben wir die Werkzeuge, um dieses Sicherheitsniveau performant und wartbar umzusetzen. Es ist ein Investment in das Vertrauen Ihrer Kunden und die Resilienz Ihrer Infrastruktur.


Müssen Sie hochsensible Daten in Ihrer Microservice-Architektur verarbeiten und benötigen den höchstmöglichen Schutz?
Ich helfe Ihnen bei der Konzeption und Implementierung von End-to-End-Verschlüsselungslösungen. Von der Auswahl des richtigen KMS bis zur Implementierung in Ihren Go-Services – lassen Sie uns eine Datensicherheitsarchitektur bauen, der Sie vertrauen können. Kontaktieren Sie mich für eine vertrauliche Beratung.

Interesse an einer Lösung?

Ich unterstütze Unternehmen und Verbände bei der digitalen Transformation. Erfahre mehr über meine Softwareentwicklung oder lass dich im Bereich DevSecOps beraten.

Beratungstermin vereinbaren