# Backend certificateur ## Certificat ### Qu'est ce qu'un Certificat agréé - un Certificat qui fait parti d'une chaine certifiante - équivalent d'un tampon de notaire Un certificat délivré par une instance valable pendant une durée donnée. L'instance est approuvé par l'UE On achête un certificat à digicert qualifé (à vérifier) Digicert est approuvé par l'UE (voir l'organisme qui s'en occupe) C'est une clef publique / privée, qui permet de hasher une donnée ### Pourquoi on utilise un certificat, à quoi il sert - hasher la donnée permet de prouver que la donnée ne pourra plus être modifiée (à postériori de la signature) - Pour signer le document, que ça soit un texte, une image ou un fichier, on utilise le hash généré via un algorithme connu (SHA256), la clef privée et le certificat pour générer une signature qui sera rajouter au document. - Dans le cas d'un PDF, c'est un rajout qui est fait directement dans le document - Dans le cas d'un texte ou d'une image, ils seront compressés dans une archive signée - Ces documents signés peuvent être ensuite validés par des tiers - La validation va utiliser le certificat et toute la chaîne certifiante pour prouver la validité du document et de sa signature - décripter via la clef publique du certificat - pour prouver que c'est bien la signature du document et que rien a été modifié Le document sera reconnu comme signé par certificall [https://ec.europa.eu/digital-building-blocks/DSS/webapp-demo/doc/dss-documentation.html#DigitalSignatureConcepts ](https://ec.europa.eu/digital-building-blocks/DSS/webapp-demo/doc/dss-documentation.html#DigitalSignatureConcepts ) ### Valeure probante et légale ## Horodatage ### qu'est ce qu'un TSA Prouver qu'un document a existé à un instant T ### Comment ça fonctionne Le backend qui hash la donnée avec un algorythme au choix (sha256) Ce hash est envoyé a un TSA qui va à son tour compiler : - le hash - le timestamp (l'heure) - TSA identity (sa signature) on envoie en HTTPS la donnée au TSA (digicert) il génère un timestamp token qui nous ai renvoyé [https://ec.europa.eu/digital-building-blocks/DSS/webapp-demo/doc/dss-documentation.html#Timestamps](https://ec.europa.eu/digital-building-blocks/DSS/webapp-demo/doc/dss-documentation.html#Timestamps) ### pourquoi on l'utilise on va stocker en BD le hash et le timestamp ce qui va garantir la date et l'heure + l'inviolabilité de la donnée #### Valeure probante et légale ## Archivage ### NF z42-013 ## Front < > backend Que ce soit une donnée texte, image ou autre le déroulé c'est : - on clic sur valider en front - la donnée est envoyé au backend certificateur - on hash la donnée - la donnée est envoyé au TSA timestampé - réception du timestamp token puis il est stocké en BDD - même hash - signature du document, on récupère alors un document signé - dans le cas d'un xml, pdf, json on ajoute la signature au docuement - dans le cas d'une donnée brut (text ou image) on stocke dans une archive (zip) la donnée brut non modifé et la signature > le hash de la donnée est stocké en DB - en base on crée une ligne avec : - le hash - le timestamp token - le lien vers min.io - pour les text ils sont aussi stocké en DB - enregistrement de la donnée en DB