Chiffrement
L'objet encryption ajoute une protection par mot de passe au PDF et au DOCX générés. Vous pouvez définir des mots de passe utilisateur et propriétaire séparés et contrôler les actions que les lecteurs sont autorisés à effectuer.
PDF/A interdit le chiffrement. Un PDF chiffré est livré sans sa conformité PDF/A, et le rendu le signale. Une définition qui déclare une partie de PDF/A et définit aussi encryption est refusée : choisissez l'un des deux. Pour qu'un document reste à la fois archivable et confidentiel, laissez le PDF non chiffré et protégez-le là où il est stocké et transmis. Voir Conformité.
Propriétés
| Propriété | Type | Défaut | Description |
|---|---|---|---|
encryptionType | string | "aes256" | L'algorithme : aes256, aes256Gcm ou aes128 (voir ci-dessous) |
userPassword | string | — | Le mot de passe qui ouvre le document. Absent, le document s'ouvre sans mot de passe et les permissions s'appliquent quand même |
ownerPassword | string | — | Le mot de passe qui lève les permissions. Absent, un mot de passe aléatoire est tiré, que personne ne détient |
permissions | object | — | Ce qu'un lecteur peut faire sans le mot de passe propriétaire (voir ci-dessous) |
encryptMetadata | boolean | true | Si les métadonnées du document sont chiffrées avec lui ; false les laisse lisibles par un outil de recherche |
encryptEmbeddedFilesOnly | boolean | false | Chiffre seulement les fichiers joints et laisse le document lui-même lisible |
Types de chiffrement
| Type | Remarques |
|---|---|
aes256 | AES-256, le défaut et l'algorithme recommandé |
aes256Gcm | AES-256 en mode GCM, défini sur PDF 2.0 : un document sans version fixée passe en PDF 2.0, et sous une version 1.7 fixée AES-256 est écrit à la place, avec un avertissement |
aes128 | AES-128, déprécié par PDF 2.0 : un document 2.0 reçoit AES-256 à la place, avec un avertissement |
RC4 n'est pas proposé : il est cassé, et PDF 2.0 le déprécie.
Permissions
L'objet permissions contrôle ce qu'un utilisateur qui ouvre le document avec le mot de passe utilisateur est autorisé à faire. Absent, seule l'impression en pleine qualité est autorisée ; {} n'accorde rien.
| Propriété | Type | Défaut | Description |
|---|---|---|---|
print | boolean | false | Autoriser l'impression |
printHighQuality | boolean | true | Autoriser l'impression en pleine qualité ; false n'autorise qu'une impression dégradée, donc définissez aussi print |
modify | boolean | false | Autoriser la modification du contenu du document |
copy | boolean | false | Autoriser la copie du texte et des graphiques |
annotate | boolean | false | Autoriser l'ajout de commentaires et le remplissage des formulaires |
fillForm | boolean | false | Autoriser le remplissage des champs de formulaire |
assemble | boolean | false | Autoriser l'insertion, la rotation ou la suppression de pages |
Dans un DOCX
Un DOCX est protégé à partir du même objet encryption, dans la mesure où le format Word le permet :
| Clé | Dans le DOCX |
|---|---|
userPassword | Le fichier est chiffré et s'ouvre avec ce mot de passe, en AES-256. Sans lui, le DOCX n'est pas chiffré et s'ouvre sans mot de passe |
ownerPassword et permissions | Deviennent la restriction de modification de Word, verrouillée par le mot de passe propriétaire : lecture seule, commentaires seulement ou remplissage de formulaires, selon les permissions accordées. Autoriser modify laisse la modification libre |
encryptionType | Un DOCX est toujours chiffré en AES-256 |
permissions.print, copy, assemble, printHighQuality | Sans équivalent dans un DOCX. Une permission refusée est signalée, et non appliquée |
encryptMetadata, encryptEmbeddedFilesOnly | Sans équivalent : tout le fichier est chiffré |
La restriction de modification de Word empêche un lecteur de bonne foi de modifier le document, mais la norme Office Open XML précise qu'elle n'est pas une fonction de sécurité. Seul userPassword rend le contenu illisible sans le mot de passe.
Exemples
Protection par mot de passe basique
{
"document": {
"encryption": {
"encryptionType": "aes256",
"userPassword": "viewerPass123",
"ownerPassword": "adminPass456"
},
"content": [
{ "p": "This document requires a password to open." }
]
}
}
Lecture seule avec impression autorisée
{
"document": {
"encryption": {
"encryptionType": "aes256",
"userPassword": "readonly",
"ownerPassword": "owner",
"permissions": {
"print": true,
"copy": false,
"modify": false,
"annotate": false,
"fillForm": false,
"assemble": false
}
},
"content": [
{ "p": "This document can be viewed and printed, but not edited or copied." }
]
}
}
Remplissage de formulaires uniquement
{
"document": {
"encryption": {
"encryptionType": "aes128",
"userPassword": "",
"ownerPassword": "formsAdmin",
"permissions": {
"print": true,
"fillForm": true,
"modify": false,
"copy": false,
"annotate": false,
"assemble": false
}
},
"content": [
{ "p": "Fill in the fields below:" }
]
}
}
Un userPassword vide permet d'ouvrir sans mot de passe tout en appliquant les restrictions de permissions.
Métadonnées non chiffrées
{
"document": {
"metadata": {
"title": "Confidential Report",
"author": "Operations Team"
},
"encryption": {
"encryptionType": "aes256",
"userPassword": "secure",
"ownerPassword": "admin",
"encryptMetadata": false
},
"content": [
{ "p": "Metadata is searchable even though the document is encrypted." }
]
}
}
Cela est utile lorsque les documents doivent être indexés par un système de gestion documentaire sans nécessiter le mot de passe.