Beispiele für Acra-Technik | Dokumentation und Tutorials | Installation | Acra-Feedback |
---|
Acra – Datenbanksicherheitssuite für den Schutz sensibler und persönlicher Daten.
Acra bietet Verschlüsselung auf Anwendungsebene für Datenfelder, mehrschichtige Zugriffskontrolle, Verhinderung von Datenbanklecks und Funktionen zur Erkennung von Eindringlingen in einer Suite. Acra wurde speziell für verteilte Apps (web, serverseitig und mobil) entwickelt, die Daten in einer oder mehreren Datenbanken/Datenspeichern speichern.
Perfekte Acra-kompatible Anwendungen | Typische Branchen |
---|---|
Web- und mobile Apps, die Daten in einer zentralen Datenbank oder einem Objektspeicher speichern |
|
IoT-Apps, die Telemetriedaten sammeln und Daten in der Cloud verarbeiten | |
Datenverarbeitungs-Apps mit hoher Auslastung |
Acra bietet Ihnen Tools zum Verschlüsseln jedes sensiblen Datensatzes (Datenfeld, Datenbankzelle, JSON), bevor er in der Datenbank/im Dateispeicher gespeichert wird. Und dann werden sie in einem sicheren, abgetrennten Bereich (auf der Acra-Seite) entschlüsselt. Acra ermöglicht es, Daten so früh wie möglich zu verschlüsseln und mit verschlüsselten Daten zu arbeiten.
Das kryptografische Design von Acra stellt sicher, dass kein aus der Anwendung oder Datenbank preisgegebenes Geheimnis (Passwort, Schlüssel usw.) für die Entschlüsselung der geschützten Daten ausreicht. Acra minimiert den Umfang der Leckage, erkennt unbefugtes Verhalten, verhindert die Leckage und informiert die Bediener über den bevorstehenden Vorfall.
Dies ist die Acra Community Edition, sie ist für die kommerzielle und nichtkommerzielle Nutzung für immer kostenlos.
| Verschlüsselung auf Client-Seite und/oder Acra-Seite – jedes Datenfeld wird mit einzigartigen Verschlüsselungsschlüsseln verschlüsselt. |
| Sie wählen aus, welche Spalten verschlüsselt werden sollen, um eine gute Sicherheit und Leistung in Einklang zu bringen. |
| zwei Krypto-Umschläge: AcraBlocks und AcraStructs. AcraBlocks sind schnelle symmetrische Container, die standardmäßig verwendet werden. AcraStructs sind asymmetrische Container, die zur clientseitigen Verschlüsselung verwendet werden. |
| Durchsuchen Sie verschlüsselte Daten ohne Entschlüsselung. Entwickelt für exakte Abfragen, basierend auf AES-GCM und Blindindex. |
| Verwenden Sie eine vollständige oder teilweise Maskierung, um vertrauliche Daten zu entfernen oder zu maskieren. |
| Ersetzen Sie vertrauliche Daten durch ein Token und gleichen Sie sie nur bei Bedarf mit dem Original ab. |
| Integrierte Tools für Schlüsselgenerierung, Export, Sicherung, Rotation usw. |
| durch eine integrierte SQL-Firewall. |
| Verwendung von Giftaufzeichnungen (Honigmarken), um vor verdächtigem Verhalten zu warnen. |
| verfügbar für Acra Enterprise-Benutzer. |
| |
|
Acra bietet verschiedene Verteidigungsebenen für verschiedene Teile und Phasen des Datenlebenszyklus. Das ist Tiefenverteidigung – ein unabhängiger Satz von Sicherheitskontrollen, die darauf abzielen, mehrere Risiken zu mindern, falls ein Angreifer den Außenumfang überschreitet.
| Alle Acra-Funktionen sind in einem Datenbank-Proxy verpackt, der den Datenverkehr zwischen einer App und einer Datenbank analysiert und gegebenenfalls Sicherheitsfunktionen anwendet. |
| API-Server, der die meisten Funktionen von Acra als HTTP-/gRPC-API mit Verkehrsschutz bereitstellt. |
| optionaler clientseitiger Dienst zur Authentifizierung und Transportverschlüsselung. |
| verfügbar für Acra Enterprise-Benutzer. |
| |
| |
| |
|
| Ihre Infrastruktur ist von Anfang an sicher, ohne dass zusätzliche Konfigurationen erforderlich sind. |
| Es besteht kein Risiko, die falsche Schlüssellänge oder den falschen Algorithmus-Padding auszuwählen. |
| einfach zu konfigurieren und zu automatisieren. |
| über Binärpakete oder Docker-Images. |
| erfordert nur minimale Änderungen im Anwendungscode. |
| in allen Acra-Komponenten; kompatibel mit ELK-Stack, Datadog, Graylog, Prometheus, Grafana, Jaeger. |
| Rollback-Dienstprogramme zum Entschlüsseln der Datenbank in Klartext. |
| zahlreiche webbasierte und Docker-basierte Beispielprojekte verfügbar. |
| Führen Sie AcraServer in Ihrer DigitalOcean-Cloud aus. |
| Wir können Acra für Sie einrichten und verwalten. |
Acra verlässt sich auf unsere kryptografische Bibliothek Themis, die High-Level-Kryptosysteme implementiert, die auf den besten verfügbaren Open-Source-Implementierungen der zuverlässigsten Chiffren basieren. Acra enthält grundsätzlich keine selbst erstellten kryptografischen Primitive oder obskuren Chiffren.
Um seine einzigartigen Garantien zu gewährleisten, verlässt sich Acra auf die Kombination bekannter Chiffren und eines intelligenten Schlüsselverwaltungsschemas. Siehe Kryptographie und Schlüsselverwaltung.
Standardmäßige kryptoprimitive Quelle | OpenSSL |
Unterstützte kryptoprimitive Quellen ᵉ | BoringSSL, LibreSSL, FIPS-konform, GOST-konform, HSM |
Speicherverschlüsselung (AcraBlocks) | AES-256-GCM + AES-256-GCM |
Speicherverschlüsselung (AcraStructs) | AES-256-GCM + ECDH |
Transportverschlüsselung | TLS v1.2+ oder Themis Secure Session |
KMS-Integration ᵉ | Amazon KMS, Google Cloud Platform KMS, HashiCorp Vault, Keywhiz usw |
ᵉ – nur in der Enterprise-Version von Acra verfügbar. Schreiben Sie uns eine E-Mail, um eine vollständige Liste der Funktionen und ein Angebot zu erhalten.
Acra besteht aus mehreren Diensten und Versorgungsunternehmen. Mit den Acra-Diensten können Sie unendlich komplexe Datenflüsse aufbauen, die perfekt zu Ihrer genauen Infrastruktur passen. Abhängig von Ihrer Architektur und Ihrem Anwendungsfall müssen Sie möglicherweise nur grundlegende Dienste oder alle Dienste bereitstellen.
Komponenten zur Sicherheitsdurchsetzung : Dienste, bei denen „Verschlüsselung stattfindet“. Eines davon ist erforderlich: AcraServer, AcraTranslator, AnyProxy oder clientseitige SDKs.
Schlüsselspeicher: Datenspeicher, in denen Acra verschlüsselte Schlüssel speichert: Redis, Tabelle in Ihrer Datenbank, jeder KV-Speicher. Einer davon ist erforderlich.
Hauptschlüsselspeicher: KMS, Vault. Einer davon ist dringend zu empfehlen.
Zusätzliche Dienste und Dienstprogramme: Schlüsselverwaltungsdienstprogramme, Datenmigrationsskripte, Transportsicherheitsdienst, Richtlinienverwaltungstools. Alle davon sind optional.
Weitere Informationen zu Acra-Komponenten finden Sie unter Acra-in-Depth / Architecture. Weitere typische Acra-basierte Datenflüsse und Bereitstellungen finden Sie unter Acra-in-Depth / Data Flow.
Sehen wir uns den einfachsten Datenfluss mit AcraServer an.
AcraServer fungiert als transparenter Verschlüsselungs-/Entschlüsselungs-Proxy mit SQL-Datenbanken. Die Anwendung weiß nicht, dass die Daten verschlüsselt sind, bevor sie in die Datenbank gelangen, und die Datenbank weiß auch nicht, dass jemand die Daten verschlüsselt hat. Deshalb bezeichnen wir diesen Modus oft als „transparente Verschlüsselung“.
Sie verfügen über eine clientseitige Anwendung, die mit der SQL-Datenbank kommuniziert. Sie fügen AcraServer in der Mitte hinzu, der als SQL-Proxy fungiert, und verweisen die Anwendung darauf.
So sieht der Prozess des Schreibens und Lesens der Daten in/aus einer Datenbank aus:
Sie stellen AcraServer bereit und konfigurieren ihn: Verbindung zur Datenbank, TLS-Zertifikate, wählen Sie aus, welche Felder verschlüsselt, maskiert oder tokenisiert werden sollen, aktivieren Sie die SQL-Anfrage-Firewall usw.
Sobald AcraServer bereitgestellt ist, ist er bereit, SQL-Anfragen zu akzeptieren.
Sie verweisen die clientseitige Anwendung auf den AcraServer statt auf die SQL-Datenbank.
Beim Empfang von SQL-Abfragen von der App analysiert AcraServer jede Abfrage und führt Sicherheitsvorgänge durch: Verschlüsselung, Maskierung, Tokenisierung. Um zu wissen, welche Werte geändert werden müssen, verwendet AcraServer eine Konfigurationsdatei, in der Sie beschrieben haben, welche Spalten verschlüsselt, maskiert und tokenisiert werden sollen.
Nach der Durchführung des Vorgangs übergibt AcraServer die geänderten Abfragen an die Datenbank und die Datenbankantwort zurück an die Clientanwendung. Angenommen, Sie entscheiden sich für die Verschlüsselung des E-Mail-Felds: Das bedeutet, dass die Originalzeichenfolge im kryptografischen Container verschlüsselt und als Binärdaten an die Datenbank gesendet wird.
Wenn die Clientanwendung die Daten lesen möchte, sendet sie eine SELECT-Abfrage an den AcraServer, der sie an die Datenbank sendet.
Beim Abrufen der Datenbankantwort versucht AcraServer, bestimmte Felder zu entschlüsseln, zu demaskieren, zu detokenisieren und sie an die Anwendung zurückzugeben.
Die Anwendung empfängt Daten im Klartext.
Außer Datenverarbeitungsvorgängen analysiert AcraServer auch SQL-Abfragen: Blockiert unerwünschte Abfragen mithilfe der integrierten konfigurierbaren SQL-Firewall, erkennt SQL-Injections mithilfe von Gift-Datensätzen, sendet Protokolle und Metriken und alarmiert Ihr Operations-Team in verdächtigen Fällen.
Sehen Sie sich den Leitfaden „Integration von AcraServer in die Infrastruktur“ an, um mehr über die Funktionen von AcraServer und deren Verwendung zu erfahren.
Sehen wir uns den einfachsten Datenfluss mit AcraTranslator an.
AcraTranslator arbeitet als Encryption-as-a-Service mit HTTP und der gRPC-API. Die Anwendung sendet eine API-Anfrage mit Datenfeldern und Vorgängen (Verschlüsselung, Entschlüsselung, Tokenisierung, Detokenisierung usw.) an den AcraTranslator. Die Anwendung ist dafür verantwortlich, die verschlüsselten Daten in der Datenbank (NoSQL, KV-Speicher, SQL, AWS S3 – beliebig) zu speichern und mit AcraTranslator zu kommunizieren, um sie wieder zu entschlüsseln.
AcraTranslator und AcraServer sind völlig unabhängige serverseitige Komponenten und können je nach Infrastruktur zusammen oder separat verwendet werden.
Sie verfügen über eine clientseitige Anwendung, die weiß, welche Felder verschlüsselt, entschlüsselt, tokenisiert und wo sie gespeichert werden sollen. Sie fügen AcraTranslator hinzu und bringen der Anwendung bei, API-Aufrufe durchzuführen, um es zu verwenden.
So sieht der Prozess des Schreibens und Lesens der Daten in/aus einer Datenbank aus:
Sie stellen AcraTranslator in Ihrer Infrastruktur bereit und konfigurieren TLS-Zertifikate.
Sobald AcraTranslator bereitgestellt ist, ist es bereit, API-Anfragen zu akzeptieren.
Ihre Anwendung ruft AcraTranslator auf und sendet Datenfelder und Operationen darauf (Verschlüsselung, Entschlüsselung, Tokenisierung, Detokenisierung).
Beim Empfang von API-Anfragen führt AcraTranslator den erforderlichen Vorgang aus und sendet das Ergebnis zurück an die App. Angenommen, die App sendet das Feld „E-Mail“ und den Vorgang „Verschlüsselung“. In diesem Fall wird die ursprüngliche Zeichenfolge in einem kryptografischen Container verschlüsselt und als Binärdaten an die App zurückgesendet.
Die Anwendung übernimmt verschlüsselte Daten und speichert sie in der Datenbank/im Datenspeicher.
Sobald die Anwendung Klartextdaten abrufen muss, liest sie verschlüsselte Daten aus der Datenbank/dem Datenspeicher und sendet eine API-Anfrage an den AcraTranslator. Angenommen, die App sendet das Feld „E-Mail“ und den Vorgang „Entschlüsseln“. In diesem Fall werden die Originaldaten (binärer Blob) in eine Zeichenfolge entschlüsselt und an die App zurückgesendet.
Außer Datenverarbeitungsvorgängen analysiert AcraTranslator auch API-Anfragen: Erkennt Eindringlinge mithilfe von Gift-Records, sendet Protokolle und Metriken und alarmiert Ihr Operations-Team in verdächtigen Fällen.
Sehen Sie sich den Leitfaden „Integration von AcraTranslator in die Infrastruktur“ an, um mehr über die Funktionen von AcraServer und deren Verwendung zu erfahren.
Acra ist eine Suite von Komponenten, von denen die meisten „serverseitig“ sind. Das bedeutet, dass Sie AcraServer, AcraTranslator oder AnyProxy bereitstellen und konfigurieren und Ihre clientseitige Anwendung damit verbinden.
Acra-Komponenten sind mit zahlreichen RDBMS, Objekt- und KV-Speichern, Cloud-Plattformen, externen Schlüsselverwaltungssystemen (KMS) und Lastausgleichssystemen kompatibel.
Cloud-Plattformen | DigitalOcean, AWS, GCP, Heroku, alle |
RDBMS | MySQL v5.7+, PosgtreSQL v9.4-v11, MariaDB v10.3; Google Cloud SQL, Amazon RDS |
Objektspeicher | Dateisysteme, KV-Datenbanken, Amazon S3, Google Cloud DataStore |
Lastausgleich | HAProxy, Cloud-Balancer |
Serverseitige Plattformen | Ubuntu, Debian, CentOS, RHEL; Docker |
Clientseitige App-Sprache | beliebig :) |
Open-Source-Acra bietet eine begrenzte Integrationsunterstützung, mehr Dienste sind nur in der Acra Enterprise Edition verfügbar.
Die serverseitigen Acra-Komponenten (AcraServer, AcraTranslator, AnyProxy) sollten zur besseren Isolierung und Unterteilung auf separaten Servern/VMs ausgeführt werden. Schlüsselverwaltungs-Utilities und Datenbank-Hilfsprogramme werden normalerweise auf demselben Server wie AcraServer, AcraTranslator und AnyProxy ausgeführt.
Die serverseitigen Acra-Komponenten laufen auf den meisten Linux-Distributionen (Ubuntu, Debian, CentOS) und als Docker-Images. Beachten Sie, dass die serverseitigen Acra-Komponenten nicht mit dem Windows-Betriebssystem als Host-Betriebssystem kompatibel sind. Erwägen Sie die Verwendung von Docker.
Unter „Erste Schritte“ erfahren Sie, wie Sie Acra installieren oder Acra ohne Codierung ausprobieren.
Acra funktioniert mit allen Client-Anwendungen. Unabhängig davon, welche Sprachen Sie zum Schreiben Ihrer Apps verwenden, können Sie sie mit AcraServer (über SQL) und AcraTranslator/AnyProxy (über API) verbinden, um die Daten zu verschlüsseln, zu entschlüsseln, zu tokenisieren und zu maskieren.
Acra stellt eine Reihe clientseitiger SDKs bereit, die nur in bestimmten Anwendungsfällen nützlich sind:
AcraWriter – SDK zum Verschlüsseln von Datenfeldern in AcraStructs. Verwenden Sie es, wenn die Verschlüsselung von Daten auf der App-Seite wichtig ist (zum Aufbau Ende-zu-Ende-verschlüsselter Datenflüsse oder zum Arbeiten in feindlichen Umgebungen).
AcraReader – SDK zum Entschlüsseln von Datenfeldern aus AcraStructs. Verwenden Sie es, wenn die Entschlüsselung von Daten auf der App-Seite wichtig ist (zum Aufbau durchgängig verschlüsselter Datenflüsse oder zum Arbeiten in feindlichen Umgebungen).
SDK für AcraTranslator – SDK, das die API von AcraTranslator für eine bequemere Nutzung kapselt.
Diese SDKs sind für Ruby, Python, Go, C++, Node.js, iOS (Swift, ObjC), Android (Java, Kotlin), Desktop-Java und PHP verfügbar.
Unter „Erste Schritte“ erfahren Sie, wie Sie Acra installieren oder Acra ohne Codierung ausprobieren.
Acra-Beispielprojekte veranschaulichen die Integration der Acra-Datenschutzsuite in bestehende Anwendungen: Webanwendungen, die auf Django- und Ruby-on-Rails-Frameworks basieren, und einfache CLI-Anwendungen. Wir haben bekannte Apps genommen, dort sensible Daten erkannt und die Verschlüsselungsschicht hinzugefügt. Der Schutz der Daten ist für die Benutzer völlig transparent und erfordert nur minimale Änderungen an der Infrastruktur und dem Anwendungscode.
Entwickler- und Operationsfreundlich:
Führen Sie einen einzigen Befehl aus, um die Anwendung, die Datenbank, die Komponenten, Protokolle und Dashboards von Acra bereitzustellen.
Lesen Sie die Codeänderungen und sehen Sie, wie wenig nötig ist, um die Verschlüsselung in die Clientanwendung zu integrieren.
Erfahren Sie, wie Acra funktioniert, indem Sie Protokolle lesen, Metriken in Prometheus überwachen, Tracer in Jaeger überprüfen und Grafana-Dashboards beobachten.
Untersuchen Sie Docker-Compose-Dateien, Architekturschemata, Datenbanktabellen und vieles mehr.
Voraussetzungen: Linux oder macOS mit installiertem Docker.
Führen Sie Acra-Beispielprojekte durch |
---|
Die neuesten Versionen der Dokumentation, Tutorials und Demos für Acra sind auf dem offiziellen Dokumentationsserver von Cossack Labs verfügbar.
Um ein erstes Verständnis von Acra zu erlangen, möchten Sie vielleicht:
Was ist Acra, um sich einen Überblick zu verschaffen?
Acras Sicherheitskontrollen, um mehr über Verschlüsselung, Maskierung, Tokenisierung, SQL-Firewall, Einbruchserkennung usw. zu erfahren.
Typische Datenflüsse, die zeigen, welche Acra-Komponenten Sie benötigen und welche Vor- und Nachteile jede Kombination hat.
Lesen Sie die Hinweise zur Architektur und zum Sicherheitsdesign von Acra, um besser zu verstehen, was Sie bei der Verwendung von Acra erhalten und nach welchem Bedrohungsmodell Acra arbeitet.
Sie können sich auch die Vortragsfolien der folgenden Vorträge der Ingenieure von Cossack Labs ansehen:
„Verschlüsselung ohne Magie, Risikomanagement ohne Schmerz“ von Anastasiia Voitova.
„Datenverschlüsselung für Ruby-Webanwendungen“ von Dmytro Shapovalov.
„Aufbau einer SQL-Firewall (AcraCensor): Erkenntnisse von Entwicklern“ von Artem Storozhuk.
Führen Sie Acra-Beispielprojekte durch |
---|
Acra kann Ihnen dabei helfen, die aktuellen Datenschutzbestimmungen einzuhalten, wie zum Beispiel:
Datenschutz-Grundverordnung (DSGVO)
HIPAA (Gesetz zur Portabilität und Rechenschaftspflicht von Krankenversicherungen)
DPA (Datenschutzgesetz)
CCPA (California Consumer Privacy Act)
Durch die Konfiguration und Nutzung von Acra in einer bestimmten Form werden die meisten der in den Artikeln 25, 32, 33 und 34 der DSGVO beschriebenen Anforderungen sowie die PII-Datenschutzanforderungen des HIPAA abgedeckt. Lesen Sie mehr über Acra und Vorschriften.
Dies ist die Acra Community Edition, die Open-Source-Version von Acra, die für die kommerzielle und nichtkommerzielle Nutzung kostenlos ist. Bitte teilen Sie uns unter „Probleme“ mit, wenn Sie auf einen Fehler stoßen, eine mögliche Verbesserung sehen oder einen Kommentar zum Sicherheitsdesign haben.
Es ist auch die Acra Enterprise Edition verfügbar. Es bietet bessere Leistung, Redundanz/Lastausgleich, ist mit Krypto-Primitiven Ihrer Wahl (FIPS, GOST) vorkonfiguriert, verfügt über eine Integration mit Schlüssel-/Geheimnisverwaltungstools in Ihrem Stack, Richtlinienverwaltung, clientseitigen SDKs und vieles mehr von Dienstprogrammen und Tools für Ihre Ops und SREs, um Acra bequem zu bedienen. Sprechen Sie mit uns, um vollständige Funktionslisten und ein Angebot zu erhalten.
Es bedarf mehr als nur der Kompilierung des kryptografischen Codes, um die sensiblen Daten zu schützen. Mit Acra sind Sie nicht sofort konform mit allen modernen Sicherheitsvorschriften, und das ist auch mit keinem anderen Tool möglich.
Wir helfen Unternehmen bei der Planung ihrer Datensicherheitsstrategie, indem wir den Datenfluss prüfen, bewerten, die Daten klassifizieren und die Risiken aufzählen. Wir erledigen den schwierigsten und am wenigsten besuchten Teil der Einhaltung der Compliance – indem wir sie von den „Kosten der Geschäftsabwicklung“ in den „Sicherheitsrahmen, der Risiken verhindert“ umwandeln.
Wenn Sie Ihren Code beisteuern oder Acra auf andere Weise Beiträge leisten möchten, sind Sie herzlich willkommen. Ihr Ausgangspunkt für Ihre Mitarbeit ist hier.
Wenn Sie Acra-Benutzer sind, hinterlassen Sie bitte ein kurzes Feedback.
Acra Community Edition ist als Apache 2 Open-Source-Software lizenziert.
Wenn Sie eine technische Frage stellen möchten, können Sie gerne ein Problem melden oder an [email protected] schreiben.
Um mit dem Geschäftszweig von Cossack Labs Limited zu sprechen, schreiben Sie uns eine E-Mail an [email protected].