-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[WIP] Add article/zero knowledge architecture #208
base: master
Are you sure you want to change the base?
Conversation
|
||
## Conclusion | ||
|
||
L'évolution des lois et de la mentalité des utilisateurs ammène des principes d'architecture logicielle radicalement nouveaux, centrés sur la vie privée et la sécurité. L'apparition de nouveaux services basés sur cette architecture va stimuler l'écosystème ce qui développera à terme les briques technologiques nécessaires pour que toute l'industrie puisse appliquer ces approches architecturales. Les utilisateurs ont beaucoup à y gagner puisqu'en plus de la sécurité accrue, ces pratiques assurent l'éthique des développeurs qui ne peuvent pas accéder aux informations afin de faire de la publicité ciblée ou d'espionner leurs utilisateurs. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
On peut retravailler un peu la conclusion aussi je pense :)
e68e84b
to
f20a8f9
Compare
f20a8f9
to
536c721
Compare
--- | ||
|
||
## Le problème de la protection des données dans le Cloud | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Alterner entre le "nous" et le "on" (tout au long du texte, dés la ligne 2, et parfois au sein de mêmes phrases) me semble un peu maladroit.
Est-ce que ça semblerait pertinent d'en choisir un et de retravailler le texte avec ? ;)
|
||
Le chiffrement des données est une réponse forte et évidente à la problématique de protection des données, cependant elle n'est pas simple à mettre en œuvre. En effet, les outils de cryptographie nécessitent la manipulation de clefs et de certificats qui demandent une maturité des développeurs, des opérateurs mais aussi des utilisateurs. En utilisant le chiffrement, on assure la protection des données « en transite » (attaque de type MITM), à l'usage sur le Cloud (espionnage des données en mémoire non-persistante sur un serveur compromis) et au repos (compromission d'une mémoire persistante de type fichier ou base de données). Pour les cas d'usages qui le permettent, la ZKA recommande l'utilisation du chiffrement de bout en bout. | ||
|
||
[Le chiffrement de bout en bout](https://fr.wikipedia.org/wiki/Chiffrement_de_bout_en_bout), aussi connu par son nom anglais « end to end encryption », consiste à chiffrer systématiquement des données échangées entre deux paires. Nous ne pourrons pas rentrer dans les détails cryptographiques dans cet article, mais le principe de base du chiffrement de bout en bout est que seuls les utilisateurs finaux disposent des clefs nécessaires aux déchiffrements des données. Ce principe est facile à comprendre dans le cas d'une application de messagerie. Afin que Bob et Alice puissent d'échanger des messages privés, ils vont systématiquement chiffrer les messages qu'ils s'échangent, avec des clefs que seuls eux connaissent. En fonction des outils de cryptographie utilisés, les messages pourront même être authentifiés (les messages d'Alice et Bob seront signés), et leur intégrité pourra être vérifiée (ont pourra vérifier que chaque message n'a pas été altéré pendant son transport). Comme expliqué précédemment la principale difficulté rencontrée dans le chiffrement est la gestion des clefs de chiffrement par les utilisateurs. Certains services à large échelle réussissent, néanmoins, à fournir du chiffrement de bout en bout en proposant une gestion simplifiée, souvent automatique, des clefs de chiffrement. Ces mécanismes sont décris pour l'application de messagerie instantanée WhatsApp dans [ce premier article](https://faq.whatsapp.com/general/security-and-privacy/end-to-end-encryption/) et pour le service d'email Protonmail [dans ce second](https://protonmail.com/blog/what-is-end-to-end-encryption/). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
...
(on pourra vérifier que chaque message n'a pas été altéré pendant son transport).
...
|
||
## Authentification zero-knowledge avec le protocole SRP | ||
|
||
S'authentifier avec une comabinaison de nom d'utilisateur et de mot de passe a plusieurs inconvénients, dans ce système l'authentification est faite sans transférer le mot de passe. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
S'authentifier avec une comabinaison de nom d'utilisateur et de mot de passe a plusieurs inconvénients, dans ce système l'authentification est faite sans transférer le mot de passe. | |
S'authentifier avec une combinaison de nom d'utilisateur et de mot de passe a plusieurs inconvénients, dans ce système l'authentification est faite sans transférer le mot de passe. |
|
||
### Réflexion sur le dossier médical partagé | ||
|
||
C'est un cas d'application idéal pour l'architecture ZKA, d'autant plus l'applicatif actuel du **[Dossier Médical Partagé](https://www.dmp.fr/)** est largement critiqué. Cette application gère le suivi médical et l'identité des patients, une sorte de carnet de santé virtuel. En adhérant aux principes zero knowledge on obtient exactement le controle que l'on souhaite avoir sur ses données avec la sécurité induite par l'architecture. L'utilisateur a un compte sur lequel se trouve tout son historique médical numérisé, ses rendez-vous, ses ordonnances etc... Grâce à ce compte il partage sélectivement ses informations avec les professionnels de santé, les ordonnances avec les pharmaciens, les informations de facturation avec sa mutuelle et chaque professionel ne voit que les données qui lui sont utiles. Compte tenu de la criticité des données gérées c'est exactement le genre de scénaro pour lequel la ZKA a beaucoup d'interet. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
C'est un cas d'application idéal pour l'architecture ZKA, d'autant plus l'applicatif actuel du **[Dossier Médical Partagé](https://www.dmp.fr/)** est largement critiqué. Cette application gère le suivi médical et l'identité des patients, une sorte de carnet de santé virtuel. En adhérant aux principes zero knowledge on obtient exactement le controle que l'on souhaite avoir sur ses données avec la sécurité induite par l'architecture. L'utilisateur a un compte sur lequel se trouve tout son historique médical numérisé, ses rendez-vous, ses ordonnances etc... Grâce à ce compte il partage sélectivement ses informations avec les professionnels de santé, les ordonnances avec les pharmaciens, les informations de facturation avec sa mutuelle et chaque professionel ne voit que les données qui lui sont utiles. Compte tenu de la criticité des données gérées c'est exactement le genre de scénaro pour lequel la ZKA a beaucoup d'interet. | |
C'est un cas d'application idéal pour l'architecture ZKA, d'autant plus l'applicatif actuel du **[Dossier Médical Partagé](https://www.dmp.fr/)** est largement critiqué. Cette application gère le suivi médical et l'identité des patients, une sorte de carnet de santé virtuel. En adhérant aux principes zero knowledge on obtient exactement le contrôle que l'on souhaite avoir sur ses données avec la sécurité induite par l'architecture. L'utilisateur a un compte sur lequel se trouve tout son historique médical numérisé, ses rendez-vous, ses ordonnances etc... Grâce à ce compte il partage sélectivement ses informations avec les professionnels de santé, les ordonnances avec les pharmaciens, les informations de facturation avec sa mutuelle et chaque professionnel ne voit que les données qui lui sont utiles. Compte tenu de la criticité des données gérées c'est exactement le genre de scénario pour lequel la ZKA a beaucoup d’intérêt. |
|
||
L'écosystème de bibliothèque de cryptographie permet de développer tout types de clients : client lourds, mobiles ou Web, pour les services zero-knowledge. | ||
|
||
La systématisation du principe de défi cryptographique, implique que les échanges de mot de passe sont limités au fournisseur de preuve, ce qui tend à diminuer le risque de fuite de mot de passe. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
La systématisation du principe de défi cryptographique, implique que les échanges de mot de passe sont limités au fournisseur de preuve, ce qui tend à diminuer le risque de fuite de mot de passe. | |
La systématisation du principe de défi cryptographique implique que les échanges de mot de passe soient limités au fournisseur de preuve, ce qui tend à diminuer le risque de fuite. |
La systématisation du principe de défi cryptographique, implique que les échanges de mot de passe sont limités au fournisseur de preuve, ce qui tend à diminuer le risque de fuite de mot de passe. | ||
De plus, le challenge émis par le serveur étant différent à chaque requête, les tentatives d'usurpation de types « man in the middle » sont aussi rendues plus difficiles à opérer. | ||
|
||
Préservation de la vie privée avec l'approche non-naïve, en ne divulguant que les données nécessaires. Certains service Zero-knowledge proposent même un contrôle dans le temps d'accès aux données de l'utiliateur, en mettant en place des mécanismes de révocation et d'expiration des clefs qui permetent de déchiffrer ses données. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Préservation de la vie privée avec l'approche non-naïve, en ne divulguant que les données nécessaires. Certains service Zero-knowledge proposent même un contrôle dans le temps d'accès aux données de l'utiliateur, en mettant en place des mécanismes de révocation et d'expiration des clefs qui permetent de déchiffrer ses données. | |
Préservation de la vie privée avec l'approche non-naïve, en ne divulguant que les données nécessaires. Certains service Zero-knowledge proposent même un contrôle dans le temps d'accès aux données de l’utilisateur, en mettant en place des mécanismes de révocation et d'expiration des clefs qui permettent de déchiffrer ses données. |
Attention toutefois à ne pas généraliser cette difficulté. En effet, la récupération de données n'est pas forcément critique pour tous les scénarios, par exemple un service de messagerie instantanée pourra se permettre de perde l'historique des conversations (et on pourra négliger la récupération des clefs privées utilisées pour le chiffrement des messages). | ||
À contrario, il est inconcevable de perdre l'accès à ses données médicales. | ||
|
||
Pour développer un client ZKA le plus sûr possible dans les navigateurs on a besoin de nombreuses mesures de sécurités, CORS, CSP (Content security policy), SRI (verification d'assets), Referrer-Policy et File-API. Afin de complexifier les manipulations lors de l'exécution il est préferable de faire tourner la couche crypto en WebAssembly car le javascript peut être manipulé à la volée . |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pour développer un client ZKA le plus sûr possible dans les navigateurs on a besoin de nombreuses mesures de sécurités, CORS, CSP (Content security policy), SRI (verification d'assets), Referrer-Policy et File-API. Afin de complexifier les manipulations lors de l'exécution il est préferable de faire tourner la couche crypto en WebAssembly car le javascript peut être manipulé à la volée . | |
Pour développer un client ZKA le plus sûr possible dans les navigateurs on a besoin de nombreuses mesures de sécurités, [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS), [CSP (Content security policy)](https://developer.mozilla.org/fr/docs/Web/HTTP/CSP), [SRI (verification d'assets)](https://developer.mozilla.org/fr/docs/Web/Security/Subresource_Integrity), [Referrer-Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy) et [File-API](https://www.w3.org/TR/FileAPI/). Afin de complexifier les manipulations lors de l'exécution il est préferable de faire tourner la couche crypto en WebAssembly car le javascript peut être manipulé à la volée . |
Co-authored-by: GuiCz <115c7a5fac@pm.me>
@GuillaumeCz pour info j'avais fait une une branche pour proposer des modifications https://github.com/sogilis/Blog/compare/add-article/zero-knowledge-architecture...add-article/zero-knowledge-architecture-julio?expand=1 . Et j'avais d'autres propales https://github.com/sogilis/Blog/compare/add-article/zero-knowledge-architecture...add-article/zero-knowledge-architecture-julio?expand=1 |
Rédaction de l'article sur l'architecture zero knowledge