Exemples d'ingénierie Acra | Documentation et tutoriels | Installation | Commentaires sur Acra |
---|
Acra — suite de sécurité de base de données pour la protection des données sensibles et personnelles.
Acra fournit un cryptage au niveau de l'application pour les champs de données, un contrôle d'accès multicouche, une prévention des fuites de bases de données et des capacités de détection d'intrusion dans une seule suite. Acra a été spécialement conçu pour les applications distribuées (web, côté serveur et mobile) qui stockent des données dans une ou plusieurs bases de données/banques de données.
Applications compatibles avec Perfect Acra | Industries typiques |
---|---|
Applications Web et mobiles qui stockent les données dans une base de données centralisée ou dans un stockage d'objets |
|
Applications IoT qui collectent la télémétrie et traitent les données dans le cloud | |
Applications de traitement de données à forte charge |
Acra vous propose des outils pour crypter chaque enregistrement de données sensibles (champ de données, cellule de base de données, json) avant de les stocker dans la base de données/stockage de fichiers. Et puis les décrypter dans un espace compartimenté sécurisé (côté Acra). Acra permet de chiffrer les données le plus tôt possible et d'opérer sur des données chiffrées.
La conception cryptographique d'Acra garantit qu'aucun secret (mot de passe, clé, etc.) divulgué de l'application ou de la base de données ne sera suffisant pour le décryptage des données protégées. Acra minimise l'ampleur des fuites, détecte les comportements non autorisés et prévient les fuites, informant les opérateurs de l'incident en cours.
Il s'agit d'Acra Community Edition, elle est gratuite pour une utilisation commerciale et non commerciale, pour toujours.
| cryptage côté client et/ou côté Acra – chaque champ de données est crypté à l’aide de clés de cryptage uniques. |
| vous sélectionnez les colonnes à chiffrer pour équilibrer sécurité et performances. |
| deux crypto-enveloppes : AcraBlocks et AcraStructs. Les AcraBlocks sont des conteneurs symétriques rapides, utilisez-les par défaut. Les AcraStructs sont des conteneurs asymétriques, utilisez-les pour le chiffrement côté client. |
| rechercher dans des données cryptées sans décryptage. Conçu pour des requêtes exactes , basées sur AES-GCM et un index aveugle. |
| utiliser un masquage complet ou partiel pour supprimer ou masquer les données sensibles. |
| remplacez les données sensibles par un jeton et faites-les correspondre à l'original uniquement lorsque cela est nécessaire. |
| outils intégrés pour la génération de clés, l'exportation, la sauvegarde, la rotation, etc. |
| via un pare-feu SQL intégré. |
| utiliser des enregistrements d'empoisonnement (jetons de miel) pour avertir d'un comportement suspect. |
| disponible pour les utilisateurs d'Acra Enterprise. |
| |
|
Acra propose différentes couches de défense pour différentes parties et étapes du cycle de vie des données. C’est ce qu’est la défense en profondeur : un ensemble indépendant de contrôles de sécurité visant à atténuer les multiples risques en cas de franchissement du périmètre extérieur par un attaquant.
| toutes les fonctionnalités d'Acra regroupées dans un proxy de base de données qui analyse le trafic entre une application et une base de données et applique des fonctions de sécurité le cas échéant. |
| Serveur API, qui expose la plupart des fonctionnalités d'Acra en tant qu'API HTTP/gRPC avec protection du trafic. |
| service côté client en option pour l’authentification et le cryptage du transport. |
| disponible pour les utilisateurs d'Acra Enterprise. |
| |
| |
| |
|
| votre infrastructure est sécurisée dès le départ sans configuration supplémentaire. |
| aucun risque de sélection d’une mauvaise longueur de clé ou d’un mauvais remplissage d’algorithme. |
| facile à configurer et à automatiser. |
| via des packages binaires ou des images Docker. |
| nécessite des modifications minimes dans le code de l’application. |
| dans toutes les composantes d’Acra ; compatible avec la pile ELK, Datadog, Graylog, Prometheus, Grafana, Jaeger. |
| utilitaires de restauration pour décrypter la base de données en texte brut. |
| de nombreux exemples de projets basés sur le Web et Docker sont disponibles. |
| exécutez AcraServer dans votre cloud DigitalOcean. |
| nous pouvons configurer et gérer Acra pour vous. |
Acra s'appuie sur notre bibliothèque cryptographique Themis, qui implémente des systèmes cryptographiques de haut niveau basés sur les meilleures implémentations open source disponibles des chiffrements les plus fiables. Acra ne contient strictement pas de primitives cryptographiques créées par soi-même ou de chiffres obscurs.
Pour offrir ses garanties uniques, Acra s'appuie sur la combinaison de chiffrements bien connus et d'un système de gestion de clés intelligent. Voir Cryptographie et gestion des clés.
Source crypto-primitive par défaut | OuvertSSL |
Sources crypto-primitives prises en charge ᵉ | BoringSSL, LibreSSL, conforme FIPS, conforme GOST, HSM |
Cryptage du stockage (AcraBlocks) | AES-256-GCM + AES-256-GCM |
Cryptage du stockage (AcraStructs) | AES-256-GCM + ECDH |
Chiffrement des transports | TLS v1.2+ ou Session sécurisée Themis |
Intégration KMS ᵉ | Amazon KMS, Google Cloud Platform KMS, HashiCorp Vault, Keywhiz, etc. |
ᵉ — disponible uniquement dans la version Entreprise d'Acra. Envoyez-nous un e-mail pour obtenir une liste complète des fonctionnalités et un devis.
Acra se compose de plusieurs services et utilitaires. Les services Acra vous permettent de construire des flux de données infiniment sophistiqués et parfaitement adaptés à votre infrastructure précise. En fonction de votre architecture et de votre cas d'utilisation, vous devrez peut-être déployer uniquement les services de base, voire la totalité.
Composants d'application de la sécurité : services où "le chiffrement se produit". L'un d'eux est requis : AcraServer, AcraTranslator, AnyProxy ou des SDK côté client.
Stockage des clés : banques de données dans lesquelles Acra conserve les clés cryptées : Redis, table de votre base de données, n'importe quel magasin KV. L'un d'eux est obligatoire.
Stockage de la clé principale : KMS, Vault. L'un d'eux est fortement recommandé.
Services et utilitaires supplémentaires : utilitaires de gestion de clés, scripts de migration de données, service de sécurité du transport, outils de gestion des politiques. Chacun d’entre eux est facultatif.
Reportez-vous à Acra-en profondeur/Architecture pour en savoir plus sur les composants Acra. Reportez-vous à Acra-en profondeur/Flux de données pour voir des flux de données et des déploiements plus typiques basés sur Acra.
Voyons le flux de données le plus simple avec AcraServer.
AcraServer fonctionne comme proxy transparent de cryptage/déchiffrement avec les bases de données SQL. L'application ne sait pas que les données sont chiffrées avant d'arriver dans la base de données, et la base de données ne sait pas non plus que quelqu'un a chiffré les données. C'est pourquoi on appelle souvent ce mode un « cryptage transparent ».
Vous disposez d'une application côté client qui communique avec la base de données SQL. Vous ajoutez AcraServer au milieu, fonctionnant comme proxy SQL, et pointez l'application vers celui-ci.
Voici à quoi ressemble le processus d’écriture et de lecture des données vers/depuis une base de données :
Vous déployez AcraServer et le configurez : connexion à la base de données, certificats TLS, sélectionnez les champs à chiffrer, masquer ou tokeniser, activer le pare-feu des requêtes SQL, etc.
Une fois AcraServer déployé, il est prêt à accepter les requêtes SQL.
Vous pointez l'application côté client vers AcraServer au lieu de la base de données SQL.
A la réception de requêtes SQL de l'application, AcraServer analyse chaque requête et effectue des opérations de sécurité : cryptage, masquage, tokenisation. Pour savoir quelles valeurs modifier, AcraServer utilise un fichier de configuration dans lequel vous avez décrit quelles colonnes doivent être chiffrées, masquées, tokenisées.
Après avoir effectué l'opération, AcraServer transmet les requêtes modifiées à la base de données et la réponse de la base de données à l'application client. Supposons que vous choisissiez de chiffrer le champ de courrier électronique : cela signifie que la chaîne d'origine est chiffrée dans un conteneur cryptographique et envoyée à la base de données sous forme de données binaires.
Lorsque l'application client souhaite lire les données, elle envoie une requête SELECT à l'AcraServer qui l'envoie à la base de données.
Après avoir récupéré la réponse de la base de données, AcraServer tente de déchiffrer, de démasquer, de détokeniser les champs spécifiés et de les renvoyer à l'application.
L'application reçoit des données en texte brut.
À l'exception des opérations de traitement de données, AcraServer analyse également les requêtes SQL : bloque les requêtes indésirables à l'aide du pare-feu SQL configurable intégré, détecte les injections SQL à l'aide d'enregistrements de poison, envoie des journaux et des métriques et alerte votre équipe Ops en cas de cas suspects.
Consultez le Guide : Intégration d'AcraServer dans l'infrastructure pour en savoir plus sur les fonctionnalités d'AcraServer et comment les utiliser.
Voyons le flux de données le plus simple avec AcraTranslator.
AcraTranslator fonctionne comme Encryption-as-a-Service en utilisant HTTP et l'API gRPC. L'application envoie une requête API à AcraTranslator avec des champs de données et des opérations (cryptage, déchiffrement, tokenisation, détokenisation, etc.). L'application est chargée de stocker les données cryptées dans la base de données (NoSQL, KV store, SQL, AWS S3 – n'importe lequel) et de communiquer avec AcraTranslator pour les déchiffrer.
AcraTranslator et AcraServer sont des composants côté serveur entièrement indépendants et peuvent être utilisés ensemble ou séparément en fonction de votre infrastructure.
Vous disposez d’une application côté client qui sait quels champs crypter, déchiffrer, tokeniser et où les stocker. Vous ajoutez AcraTranslator et apprenez à l'application à effectuer des appels API pour l'utiliser.
Voici à quoi ressemble le processus d’écriture et de lecture des données vers/depuis une base de données :
Vous déployez AcraTranslator dans votre infrastructure et configurez les certificats TLS.
Une fois AcraTranslator déployé, il est prêt à accepter les requêtes API.
Votre application appelle AcraTranslator et envoie des champs de données et des opérations sur ceux-ci (cryptage, déchiffrement, tokenisation, détokenisation).
Lors de la réception des requêtes API, AcraTranslator effectue l'opération requise et renvoie le résultat à l'application. Supposons que l'application envoie le champ « email » et l'opération « chiffrer ». Dans ce cas, la chaîne d'origine est cryptée dans un conteneur cryptographique et renvoyée à l'application sous forme de données binaires.
L'application prend les données cryptées et les stocke dans la base de données/la banque de données.
Une fois que l'application a besoin d'obtenir des données en texte brut, elle lit les données cryptées de la base de données/du magasin de données et envoie une requête API à AcraTranslator. Supposons que l'application envoie le champ « e-mail » et l'opération « décrypter ». Dans ce cas, les données d'origine (blob binaire) sont déchiffrées en chaîne et renvoyées à l'application.
Outre les opérations de traitement de données, AcraTranslator analyse également les requêtes API : détecte les intrusions à l'aide d'enregistrements d'empoisonnement, envoie des journaux et des métriques et alerte votre équipe Ops en cas de cas suspects.
Consultez le Guide : Intégration d'AcraTranslator dans l'infrastructure pour en savoir plus sur les fonctionnalités d'AcraServer et comment les utiliser.
Acra est une suite de composants, la plupart d'entre eux sont "côté serveur", ce qui signifie que vous déployez et configurez AcraServer, AcraTranslator ou AnyProxy, et que vous y connectez votre application côté client.
Les composants Acra sont compatibles avec de nombreux RDBMS, magasins d'objets et KV, plates-formes cloud, systèmes de gestion de clés externes (KMS), systèmes d'équilibrage de charge.
Plateformes cloud | DigitalOcean, AWS, GCP, Heroku, tout |
SGBDR | MySQL v5.7+, PosgtreSQL v9.4-v11, MariaDB v10.3 ; Google Cloud SQL, Amazon RDS |
Magasins d'objets | systèmes de fichiers, bases de données KV, Amazon S3, Google Cloud DataStore |
Équilibrage de charge | HAProxy, équilibreurs cloud |
Plateformes côté serveur | Ubuntu, Debian, CentOS, RHEL ; Docker |
Langage de l'application côté client | n'importe lequel :) |
L'open source Acra dispose d'un support d'intégration limité, davantage de services sont disponibles uniquement dans Acra Enterprise Edition.
Les composants Acra côté serveur (AcraServer, AcraTranslator, AnyProxy) doivent s'exécuter sur des serveurs/VM distincts pour une meilleure isolation et compartimentation. Les utilitaires de gestion de clés et les assistants de base de données sont généralement exécutés sur le même serveur qu'AcraServer, AcraTranslator, AnyProxy.
Les composants Acra côté serveur s'exécutent sur la plupart des distributions Linux (Ubuntu, Debian, CentOS) et sous forme d'images Docker. Notez que les composants Acra côté serveur ne sont pas compatibles avec le système d'exploitation Windows en tant que système d'exploitation hôte, pensez à utiliser Docker.
Consultez Mise en route pour savoir comment installer Acra ou pour essayer Acra sans coder.
Acra fonctionne avec toutes les applications clientes. Quels que soient les langages que vous utilisez pour écrire vos applications, vous pouvez les connecter à AcraServer (via SQL) et AcraTranslator/AnyProxy (via API) pour crypter, déchiffrer, tokeniser et masquer les données.
Acra fournit un ensemble de SDK côté client qui ne sont utiles que dans des cas d'utilisation spécifiques :
AcraWriter – SDK pour crypter les champs de données dans AcraStructs. Utilisez-le lorsque le chiffrement des données côté application est important (pour créer des flux de données chiffrés de bout en bout ou pour travailler dans des environnements hostiles).
AcraReader – SDK pour décrypter les champs de données d'AcraStructs. Utilisez-le lorsque le décryptage des données côté application est important (pour créer des flux de données chiffrés de bout en bout ou pour travailler dans des environnements hostiles).
SDK pour AcraTranslator – SDK qui encapsule l'API d'AcraTranslator pour une utilisation plus pratique.
Ces SDK sont disponibles pour Ruby, Python, Go, C++, Node.js, iOS (Swift, ObjC), Android (Java, Kotlin), Java de bureau et PHP.
Consultez Mise en route pour savoir comment installer Acra ou pour essayer Acra sans coder.
Les exemples de projets Acra illustrent l'intégration de la suite de protection des données Acra dans des applications existantes : applications Web basées sur les frameworks Django et Ruby on Rails et applications CLI simples. Nous avons pris des applications connues, y avons détecté des données sensibles et ajouté la couche de cryptage. La protection des données est totalement transparente pour les utilisateurs et nécessite des modifications minimes dans l'infrastructure et le code de l'application.
Adapté aux développeurs et aux opérateurs :
exécuter une seule commande pour déployer l'application, la base de données, les composants, les journaux et les tableaux de bord d'Acra ;
lisez les modifications du code et voyez combien il faut peu pour intégrer le cryptage dans l'application client ;
découvrez comment Acra fonctionne en lisant les journaux, en surveillant les métriques dans Prometheus, en vérifiant les traceurs dans Jaeger et en regardant les tableaux de bord Grafana ;
inspectez les fichiers Docker-compose, les schémas d'architecture, les tables de base de données et bien plus encore.
Exigences : Linux ou macOS avec Docker installé.
Exécuter des exemples de projets Acra |
---|
Les versions les plus récentes de la documentation, des didacticiels et des démos pour Acra sont disponibles sur le serveur de documentation officiel de Cossack Labs.
Pour acquérir une première compréhension d’Acra, vous souhaiterez peut-être :
Qu’est-ce qu’Acra pour avoir une vue d’ensemble des choses.
Contrôles de sécurité d'Acra pour en savoir plus sur le chiffrement, le masquage, la tokenisation, le pare-feu SQL, les détections d'intrusion, etc.
Flux de données typiques qui montrent de quels composants Acra vous avez besoin et quels sont les avantages et les inconvénients de chaque combinaison.
Lisez les notes sur l'architecture et la conception de la sécurité d'Acra pour mieux comprendre ce que vous obtenez lorsque vous utilisez Acra et quel est le modèle de menace dans lequel Acra opère.
Vous pouvez également consulter les diapositives des intervenants pour les conférences suivantes des ingénieurs de Cossack Labs :
"Cryptage sans magie, gestion des risques sans douleur" par Anastasiia Voitova.
"Cryptage des données pour les applications Web Ruby" par Dmytro Shapovalov.
"Création d'un pare-feu SQL (AcraCensor) : aperçus des développeurs" par Artem Storozhuk.
Exécuter des exemples de projets Acra |
---|
Acra peut vous aider à vous conformer aux réglementations actuelles en matière de confidentialité, telles que :
Règlement Général sur la Protection des Données (RGPD)
HIPAA (Loi sur la portabilité et la responsabilité de l'assurance maladie)
LPD (Loi sur la protection des données)
CCPA (Loi californienne sur la protection de la vie privée des consommateurs)
La configuration et l'utilisation d'Acra sous une forme désignée couvriront la plupart des exigences décrites dans les articles 25, 32, 33 et 34 du RGPD et les exigences de protection des données PII de la HIPAA. En savoir plus sur Acra et ses réglementations.
Il s'agit d'Acra Community Edition, la version open source d'Acra, gratuite pour un usage commercial et non commercial. Veuillez nous faire savoir dans les problèmes si vous tombez sur un bug, si vous voyez une amélioration possible ou si vous avez un commentaire sur la conception de la sécurité.
Acra Enterprise Edition est également disponible. Il offre de meilleures performances, une redondance/un équilibrage de charge, est préconfiguré avec les crypto-primitives de votre choix (FIPS, GOST), est intégré aux outils de gestion des clés/secrets dans votre pile, à la gestion des politiques, aux SDK côté client et dispose de nombreux d'utilitaires et d'outils permettant à vos opérations et SRE de faire fonctionner Acra facilement. Parlez-nous pour obtenir des listes complètes de fonctionnalités et un devis.
Il ne suffit pas de compiler du code cryptographique pour sécuriser les données sensibles. Acra ne vous rendra pas « conforme dès le départ » à toutes les réglementations de sécurité modernes, et aucun autre outil ne le fera.
Nous aidons les entreprises à planifier leur stratégie de sécurité des données en auditant, en évaluant le flux de données et en classant les données, en énumérant les risques. Nous effectuons la partie la plus difficile et la moins sollicitée pour atteindre la conformité : transformer le « coût de l’activité commerciale » en un « cadre de sécurité qui prévient les risques ».
Si vous souhaitez contribuer à votre code ou fournir tout autre type de contribution à Acra, vous êtes le bienvenu. Votre point de départ pour contribuer est ici.
Si vous êtes un utilisateur d'Acra, veuillez laisser un bref commentaire.
Acra Community Edition est sous licence en tant que logiciel open source Apache 2.
Si vous souhaitez poser une question technique, n'hésitez pas à soulever un problème ou à écrire à [email protected].
Pour parler à l'aile commerciale de Cossack Labs Limited, envoyez-nous un e-mail à [email protected].