Skip to content
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

Add "Pourquoi vous ne pouvez pas sécuriser une application frontend" #843

Merged
merged 10 commits into from Apr 2, 2020

Conversation

Aschen
Copy link
Contributor

@Aschen Aschen commented Mar 9, 2020

Hello :-)

J'ai originellement posté cet article en anglais sur le blog de Kuzzle et je voulais proposer une traduction FR ici pour que la communauté dev FR puisse en profiter.

@Aschen Aschen force-pushed the add-secure-react-native-app branch from 20a1e3d to 3fe727b Compare March 9, 2020 07:52
@Aschen Aschen changed the title Add "Pourquoi vous ne pouvez pas sécuriser une application React Native (ou toute application frontend)" Add "Pourquoi vous ne pouvez pas sécuriser une application frontend" Mar 9, 2020
…rontend.md

Co-Authored-By: Neil Bryson <neilbryson@users.noreply.github.com>
@Aschen
Copy link
Contributor Author

Aschen commented Mar 19, 2020

Petite question, je vois que ça fait longtemps que plus rien n'a été publié ici. Est-ce que le blog est toujours actif?

@MoOx
Copy link
Member

MoOx commented Mar 19, 2020

On va dire au ralenti. On va te faire un retour sous peu.

Copy link
Member

@bloodyowl bloodyowl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hello 👋
D'abord, merci beaucoup de proposer cet article, il est très cool !

Je t'ai laissé quelques nitpicks en reviews.

(désolé d'avoir mis autant de temps à review 😄)

slug: pourquoi-peut-pas-securiser-app-frontend
---

Je suis toujours très surpris d'entendre parler de la sécurité des applications frontend parce que précisément une application frontend s'exécute sur le périphérique de l'utilisateur et ne peut donc pas être sécurisée. Elle doit même être considérée comme un **client potentiellement malveillant**.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Je serais plus nuancé que de tirer cette conclusion de "l'execution sur le périphérique", mais plutôt du fait que c'est un langage interprété dont la source est téléchargée pour être exécutée.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pour moi ce n'est pas le fait que la source soit téléchargée pour être executée ou que ce soit un langage interprété qui pose problème mais bien l'exécution du code sur le périphérique client.

Même sur un smartphone distribué directement avec une application pré-installée codée en C++, cette dernière sera susceptible d'être détournée. (analyse de l'assembleur, modification des instructions, etc)
Ça sera juste plus compliqué mais ça reste possible et si l'incentive est assez élevé ça sera systématiquement réalisé (par exemple les crack de jeux vidéos)


Ajouter une couche de chiffrement basique pour le mot de passe avec un simple XOR et une clé réutilisé pour chaque authentification de chaque client est inutile pour plusieurs raisons:
- la **réutilisation de la clé** pour chaque client et chaque requête **rend le chiffrement vulnérable** car il est possible de [deviner le message](https://stackoverflow.com/questions/1135186/whats-wrong-with-xor-encryption/1135197#1135197) avec une [analyse de fréquence](https://www.wikiwand.com/en/Frequency_analysis).
- étant donné que **la clé est stocké dans le device**, il suffit de télécharger l’application pour la connaître
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

stockée

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Également la clé peut être générée puis stockée dans le storage navigateur, on peut peut-être en faire mention ici.

![trying to reinvent the wheel](/public/images/articles/2020-03-8-pourquoi-pouvez-pas-securiser-application-frontend/reinvent-the-wheel.png)
*When you try to reinvent the wheel..*

Il est bien plus facile d’utiliser d’autres techniques de sécurisation tel que le [SSL Pinning](https://security.stackexchange.com/a/29990) pour se prévenir des attaque MITM.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cette section mériterait peut-être un point sur la durée de validité des tokens (en privilégier des courtes/très courtes)

@@ -0,0 +1,141 @@
---
date: 2020-03-8
title: Pourquoi vous ne pouvez pas sécuriser une application frontend
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Qu'est-ce que tu dirais d'appeler l'article "Est-il possible de sécuriser une application front-end ?" ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oui j'aime bien aussi :)

Aschen and others added 7 commits March 27, 2020 16:12
…rontend.md

Co-Authored-By: Matthias Le Brun <mlbli@me.com>
…rontend.md

Co-Authored-By: Matthias Le Brun <mlbli@me.com>
…rontend.md

Co-Authored-By: Matthias Le Brun <mlbli@me.com>
…ndecode.io into add-secure-react-native-app
@Aschen
Copy link
Contributor Author

Aschen commented Mar 31, 2020

@bloodyowl Tu peux re-jeter un oeil, j'ai appliqué certaines de tes corrections

@bloodyowl
Copy link
Member

@Aschen ok pour moi. On publie demain si ça te va (histoire d'éviter une publication le 1er avril)

@Aschen
Copy link
Contributor Author

Aschen commented Apr 1, 2020

@bloodyowl Ahah bien vu ;-) Ça me va !

@bloodyowl bloodyowl merged commit 7910aa1 into putaindecode:master Apr 2, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants