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

La date de création du QR code n'est pas antidatable #85

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

gawel
Copy link

@gawel gawel commented Nov 1, 2020

A l'heure actuelle il est possible de saisir une date/heure dans le passé dans le formulaire. Laissant croire aux citoyens qu'il est possible d'antidater une attestation. Hors, le QR code généré contiens une date de création utilisant l'heure courante. Ainsi, un citoyen ayant généré une attestation antidatée avec l'application officielle s'expose à une verbalisation en cas de contrôle. Ceci n'est pas acceptable.

Le plus simple, tout en évitant toujours plus d'infantilisation, est de permettre aux citoyens d'antidater l'heure de création de l'attestation. C'est ce que propose ce patch simpliste.

@gawel
Copy link
Author

gawel commented Nov 1, 2020

@regulardesigner si une personne se dit "j'ai juste a générer une attestation en cas de contrôle" (ce que je ne recommande pas, hein). Qu'il aperçoit un contrôle, génère une attestation avec départ "il y a 45mn", se fait contrôler. Je penses qu'il y a un risque non négligeable que le contrôleur lui dise "mais monsieur, vous venez de générer votre attestation il y a deux minutes, elle est antidatée et non valide" et lui fasse payer 135€. Dans tout les cas ce n'est pas clair et trompeur.

@regulardesigner
Copy link

regulardesigner commented Nov 1, 2020

Merci pour ton retour. @gawel J'ai compris après relecture de ton message 😅 (d'où la suppression de mon message...)

Cela pose question en effet...

@TocheVoronwe
Copy link

Une idée pourrait-être de prévenir l'utilisateur, via une pop-up, lorsque la différence entre l'heure renseignée et celle générée par le QR-code dépasse, par exemple, les 5 minutes?

@a2br
Copy link

a2br commented Nov 1, 2020

La date de création du QR code indique... Sa date de création. Ça ne serait pas très logique de permettre d'y accéder, autant supprimer la valeur du QR code dans ce cas. Dans l'exemple que tu as donné, c'est vrai que ça peut paraître injuste pour la persone concernée, mais je trouve ça un peu bizarre de permettre de falsifier une date grâce à un outil du gouv... Au pire, mieux vaut laisser ça à des outils indépendants...

@gawel
Copy link
Author

gawel commented Nov 1, 2020

@TocheVoronwe le mieux serait de ne pas permettre d'antidater. Voir encore mieux, arrêter d'infantiliser la population et de supprimer cette application.

@a2br "ça peut paraître injuste" ? Je trouve que c'est surtout vicieux. Si encore cette date de création était affichée en clair dans le pdf, ce qui permettrais aux citoyens de s’apercevoir que l'heure de génération est dans le document, je ne dis pas. En l'état, ce n'est pas acceptable.

@a2br
Copy link

a2br commented Nov 1, 2020

@a2br "ça peut paraître injuste" ? Je trouve que c'est surtout vicieux. Si encore cette date de création était affichée en clair dans le pdf, ce qui permettrais aux citoyens de s’apercevoir que l'heure de génération est dans le document, je ne dis pas. En l'état, ce n'est pas acceptable.

Je serais tout à fait pour indiquer sur le formulaire que l'heure de création est précisée dans le QR code. En revanche je serais contre la possibilité de falsifier la date, tout simplement parce que ça n'a aucun sens, comme je l'ai dit plus haut autant supprimer la valeur, et jamais la PR ne passera. C'est envisageable sur un fork ou des options alternatives, mais ce serait comique de faire ça ici.

@gawel
Copy link
Author

gawel commented Nov 1, 2020

@a2br la PR est surtout la pour pointer le problème: pouvoir générer une attestation exposant à une verbalisation. Je laisse le choix d'implémentation pour le régler aux mainteneurs. J'ai opté pour l'option la plus simple et la plus "comique".

@a2br
Copy link

a2br commented Nov 1, 2020

Mince, je voulais désigner une éventuelle PR, j'avais oublié que ce n'était pas une issue mais une PR... Loin de là le but de t'offenser. :)

Copy link

@a2br a2br left a comment

Choose a reason for hiding this comment

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

Code tout à fait correct.

@mycaule
Copy link

mycaule commented Nov 1, 2020

Bon point, mais j'aurais tendance à faire l'inverse, contraindre le front-end à choisir une datetime après la date d'exécution pour éviter les situations frauduleuses.

L'utilisateur est censé prévoir sa sortie, et non pas générer l'attestation après coup ?

En tous les cas je crois que la proposition de modification ne marche pas, en effet on peut avoir deux journées différentes

  • la date de la sortie (présentée sur le PDF)
  • la date d'exécution (cachée dans le QR Code)

Tu utilises l'heure de sortie avec ton changement, ce qui peut poser des incohérences comme

Cas 1 : cohérent mais louche

Cree le: 01/11/2020 a 09:00;
 Nom: ...;
 Prenom: ...;
 Naissance: ...;
 Adresse: ...;
 Sortie: 03/11/2020 a 09:00;
 Motifs: travail

Cas 2 : louche également, l'homme qui imprime plus vite que son ombre

Cree le: 01/11/2020 a 08:00;
 Nom: ...;
 Prenom: ...;
 Naissance: ...;
 Adresse: ...;
 Sortie: 01/11/2020 a 08:00;
 Motifs: sport_animaux

Cas 3: clairement frauduleux

Cree le: 01/11/2020 a 08:00;
 Nom: ...;
 Prenom: ...;
 Naissance: ...;
 Adresse: ...;
 Sortie: 31/10/2020 a 08:00;
 Motifs: achats

Dans tous les cas le QR code ne me semble pas une si bonne idée que ça, il n'est pas crypté et il est possible de changer son contenu très facilement.

La méthode papier stylo et la sobriété numérique ont encore de beaux jours devant eux... :-)

@jmoinet
Copy link

jmoinet commented Nov 2, 2020

Il serat bien d'ajouter un condensat signé par le minint dans le QR-code pour éviter les fraudes et s'assurer que le certif vient bien des serveurs du minint et que la date n'a pas été bidouillée. Ca éviterait que des petits malins se baladent toute la journée sans certif et en génèrent un vite fait dès qu'ils voient des flics au bout de la rue.

@a2br
Copy link

a2br commented Nov 2, 2020

J'y ai pensé plus tôt, mais après y avoir réfléchi je pense que ça ne serait pas une bonne idée de donner aux serveurs du ministère le 'monopole de la certification', après tout le cirque qu'on a fait pour pas envoyer les params de l'URI au serveur ;)

@gawel
Copy link
Author

gawel commented Nov 2, 2020

Il serat bien d'ajouter un condensat signé par le minint dans le QR-code pour éviter les fraudes et s'assurer que le certif vient bien des serveurs du minint et que la date n'a pas été bidouillée. Ca éviterait que des petits malins se baladent toute la journée sans certif et en génèrent un vite fait dès qu'ils voient des flics au bout de la rue.

Ca n'a aucun sens. Sachant qu'une attestation sur papier libre est valide (et tout aussi falsifiable), que voulez vous certifier? Un peu de bon sens.

@zerodeux
Copy link

zerodeux commented Nov 2, 2020

Pour les raisons citées ci-dessus (équivalence du papier libre, non centralisation de la signature), le QRcode ne peut pas avoir de valeur intrinsèque supérieure à celle de l'information saisie dans les champs du formulaire.

Du point de vue du citoyen, ça peut tendre à faire croire qu'il existe un mécanisme de contrôle de type signature, puisqu'il est habitué à pouvoir prouver qu'il a payé son titre de transport ou sa place de concert avec un QRcode : c'est assez trompeur mais relativement anodin, même si personnellement je serai pour supprimer ce blob graphique opaque pour le principe de la transparence et de la démocratie (imaginez voter avec des bulletins QRcode...).

Dans le pire cas (le QRcode reste), il me semble évident qu'il ne peut être QUE un reflet exact et fidèle des informations directement consutables dans les champs du formulaire, et n'en contenir ni plus ni moins. Tout écart est clairement une entourloupe envers les citoyens.

@jmoinet
Copy link

jmoinet commented Nov 2, 2020

Il serat bien d'ajouter un condensat signé par le minint dans le QR-code pour éviter les fraudes et s'assurer que le certif vient bien des serveurs du minint et que la date n'a pas été bidouillée. Ca éviterait que des petits malins se baladent toute la journée sans certif et en génèrent un vite fait dès qu'ils voient des flics au bout de la rue.

Ca n'a aucun sens. Sachant qu'une attestation sur papier libre est valide (et tout aussi falsifiable), que voulez vous certifier? Un peu de bon sens.

Falsifialble ? En plein millieu de la rue, se mettre à écrire sur un bout de papier une attestion se voit comme le nez au millieu de la figure, contrairement au fait de tapoter sur son smartphone. Un peu de bonne foi.

@gawel
Copy link
Author

gawel commented Nov 2, 2020

@jmoinet écrire 4 chiffres (l'heure) sur un papier pré-remplis ça prends quoi, 3 secondes ? Ca ne semble pas trop compliqué. Mais... le problème est ailleurs.

@jmoinet
Copy link

jmoinet commented Nov 2, 2020

@jmoinet écrire 4 chiffres (l'heure) sur un papier pré-remplis ça prends quoi, 3 secondes ? Ca ne semble pas trop compliqué. Mais... le problème est ailleurs.

Oui, clairement, la question est de minimiser la transmission du virus, pas de demander au minint de mettre en place des outils grand public permettant de frauder le confinement.

@jmoinet
Copy link

jmoinet commented Nov 2, 2020

Dans le pire cas (le QRcode reste), il me semble évident qu'il ne peut être QUE un reflet exact et fidèle des informations directement consutables dans les champs du formulaire, et n'en contenir ni plus ni moins. Tout écart est clairement une entourloupe envers les citoyens.

Je trouve au contraire qu'essayer de mettre en place un système permettant d'éviter d'introduire un déséquilibre entre ceux qui jouent le jeux et impriment leur attestation avant de sortir et ceux qui fraudent le système en utilisant l'attestation électronique à posteriori est une garantie d'équité entre citoyens. L'objectif est, me semble-t-il, de faire baisser les interactions physiques afin de tenter de casser la chaîne de transmission du virus ? Et non de proposer que le minint mettre en place des outils facilitant une éventuelle fraude ?

@gawel
Copy link
Author

gawel commented Nov 2, 2020

@jmoinet voilà. Ce qui permets de douter de l'utilité d'une attestation basée sur la bonne foi, falsifiable et totalement infantilisante. Si on veux réellement contrôler la population et éviter les fraudes, le mieux serait d'implanter une puce RFID dans chaque citoyens. J'imagine que vous serez pour cette option quand elle se présentera dans le débat publique.

@jmoinet
Copy link

jmoinet commented Nov 2, 2020

@jmoinet voilà. Ce qui permets de douter de l'utilité d'une attestation basée sur la bonne foi, falsifiable et totalement infantilisante. Si on veux réellement contrôler la population et éviter les fraudes, le mieux serait d'implanter une puce RFID dans chaque citoyens. J'imagine que vous serez pour cette option quand elle se présentera dans le débat publique.

Ce qui est clair c'est que ce n'est ni un procès d'intention ni un sophisme de la pente savonneuse qui permettra de faire avancer la question. Cela met par contre en exergue votre refus du débat ainsi que vos méthodes dialectiques peu honorables :) Assez perdu de temps en ce qui me concerne, j'ai exprimée mon point de vue, je laisse le débat à d'autres.

@zerodeux
Copy link

zerodeux commented Nov 2, 2020

@jmoinet d'accord avec le débat plus haut niveau, mais ça dépasse le cadre de ce ticket. Pour le résoudre il faut bien partir du fait que le principe d'auto-certification est la spec actuelle, indépendamment du fait qu'on a tous envie de les critiquer.

@julien-lecomte
Copy link

C'est pas plus simple de faire un petit script qui appelle l'url toutes les 30 minutes et qui forward le pdf par email?

Comme cela l'utilisateur a toujours une attestation sur lui. Meme la nuit.

@@ -16,9 +16,7 @@ const ys = {
export async function generatePdf (profile, reasons, pdfBase) {
const creationInstant = new Date()
const creationDate = creationInstant.toLocaleDateString('fr-FR')
Copy link

Choose a reason for hiding this comment

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

Il faut aussi remplacer creationDate par profile.datesortie, sinon tu peux avoir des incohérences si l'attestation est faite proche de minuit.

Voir gjgd@7defcc0

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.

10 participants