Aller au contenu

Guide de démarrage rapide C2PA

Démarrez avec C2PA en 5 minutes ! Ce guide vous aidera à comprendre, vérifier et créer du contenu signé C2PA.

  1. Comprendre C2PA
  2. Vérifier le contenu C2PA
  3. Créer du contenu C2PA
  4. Prochaines étapes

C2PA ajoute un « manifest » (manifeste) signé cryptographiquement à vos fichiers multimédias contenant :

  • Qui : Identité du créateur/éditeur
  • Quoi : Actions effectuées (créé, modifié, généré par IA)
  • Quand : Horodatages
  • Comment : Outils et paramètres utilisés
  • De : Matériaux sources (ingrédients)
Photo originale → [Ajout manifest C2PA] → Photo signée
Contient métadonnées :
• Créateur : John Doe
• Appareil : Nikon Z9
• Date : 2025-11-21
• GPS : 48.8566°N, 2.3522°E
• Signature : ✓ Valide

Lors de la modification :

Photo signée → [Modification dans Photoshop] → Nouvelle photo signée
Le nouveau manifest référence
l'original comme « ingrédient »

Résultat : Chaîne de provenance complète de l’original à la version actuelle.


Aucune installation requise !

  1. Visitez https://contentcredentials.org/verify
  2. Glissez-déposez n’importe quelle image/vidéo/document
  3. Visualisez les informations de provenance :
    • Identité du créateur
    • Historique de modification
    • Statut de la signature
    • Contenu original (si disponible)

Essayez maintenant avec des exemples d’images : https://contentauthenticity.org/examples

Pour la vérification automatique lors de la navigation :

  1. Installez Content Credentials Extension
    • Disponible pour Chrome, Edge, Brave
  2. Naviguez normalement
  3. L’extension détecte automatiquement le contenu C2PA
  4. Cliquez sur l’icône pour voir les détails de provenance

Pour les développeurs et utilisateurs avancés :

Fenêtre de terminal
# macOS/Linux (avec Cargo)
cargo install c2patool
# macOS (avec Homebrew)
brew install c2patool
# Windows
# Télécharger depuis : https://github.com/contentauth/c2patool/releases
Fenêtre de terminal
# Vérification de base
c2patool photo.jpg
# Sortie JSON détaillée
c2patool photo.jpg --detailed
# Enregistrer le manifest dans un fichier JSON
c2patool photo.jpg --output manifest.json
# Vérifier plusieurs fichiers
c2patool *.jpg
File: photo.jpg
Status: ✓ Valid C2PA signature
Creator: John Doe (john@example.com)
Created: 2025-11-21T10:30:00Z
Camera: Nikon Z9
Signature: Valid
Certificate: DigiCert
Actions: Captured

Intégrez la vérification dans votre application :

const c2pa = require('c2pa-node');
async function verify(imagePath) {
const manifest = await c2pa.read(imagePath);
if (manifest) {
console.log('Creator:', manifest.claim.creator);
console.log('Created:', manifest.claim.created);
console.log('Valid:', manifest.validation_status);
} else {
console.log('No C2PA data found');
}
}
verify('photo.jpg');
from c2pa import Reader
reader = Reader('photo.jpg')
manifest = reader.manifest()
if manifest:
print(f"Creator: {manifest.creator}")
print(f"Created: {manifest.created}")
print(f"Valid: {manifest.is_valid}")
else:
print("No C2PA data found")

Aucun codage requis :

  1. Ouvrez l’image dans Photoshop/Lightroom
  2. Allez dans Édition → Content Credentials
  3. Remplissez les informations du créateur
  4. Enregistrez le fichier → Le manifest C2PA est automatiquement ajouté
  • Nikon Z9/Z8 : Activez dans les paramètres de l’appareil → les photos sont signées à la capture
  • Leica M11-P/SL3 : Signature automatique activée
  • Série Sony Alpha : Activez via une mise à jour du firmware

Vous avez besoin d’un certificat de signature :

Pour les tests (Auto-signé) :

Fenêtre de terminal
# Générer un certificat de test (non reconnu par les validateurs)
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes

Pour la production :

  • Achetez un certificat auprès d’une autorité de certification de confiance (DigiCert, GlobalSign, etc.)
  • Spécifiez les exigences d’utilisation de clé C2PA

Créez manifest.json :

{
"claim_generator": "mon-app/1.0",
"assertions": [
{
"label": "stds.schema-org.CreativeWork",
"data": {
"@context": "https://schema.org",
"@type": "CreativeWork",
"author": [
{
"@type": "Person",
"name": "John Doe"
}
]
}
},
{
"label": "c2pa.actions",
"data": {
"actions": [
{
"action": "c2pa.created"
}
]
}
}
]
}
Fenêtre de terminal
# Signer avec votre certificat
c2patool photo.jpg \
--manifest manifest.json \
--signer-cert cert.pem \
--signer-key key.pem \
--output signed_photo.jpg
# Vérifier que ça a fonctionné
c2patool signed_photo.jpg
use c2pa::{Builder, SigningAlg};
fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut builder = Builder::from_file("input.jpg")?;
// Ajouter une assertion de créateur
builder.add_assertion("stds.schema-org.CreativeWork",
r#"{"author": [{"name": "John Doe"}]}"#)?;
// Signer et enregistrer
let signer = get_signer(); // Votre certificat/clé
builder.sign("output.jpg", signer)?;
Ok(())
}
const c2pa = require('c2pa-node');
async function sign(inputPath, outputPath) {
const manifest = {
claim_generator: 'mon-app/1.0',
assertions: [
{
label: 'stds.schema-org.CreativeWork',
data: {
author: [{ name: 'John Doe' }]
}
}
]
};
const signer = {
cert: 'chemin/vers/cert.pem',
key: 'chemin/vers/key.pem'
};
await c2pa.sign(inputPath, outputPath, manifest, signer);
console.log('Signé avec succès !');
}
sign('input.jpg', 'output.jpg');
from c2pa import Builder, Signer
# Créer le builder
builder = Builder.from_file('input.jpg')
# Ajouter des assertions
builder.add_assertion('stds.schema-org.CreativeWork', {
'author': [{'name': 'John Doe'}]
})
# Signer
signer = Signer('cert.pem', 'key.pem')
builder.sign('output.jpg', signer)
print('Signé avec succès !')

Méthode 4 : Modifier du contenu signé (Préserver la provenance)

Section intitulée « Méthode 4 : Modifier du contenu signé (Préserver la provenance) »

Lors de la modification de contenu signé C2PA, référencez l’original comme « ingrédient » :

Fenêtre de terminal
# Modifier et préserver la chaîne
c2patool edited_photo.jpg \
--parent original_photo.jpg \
--manifest edit_manifest.json \
--signer-cert cert.pem \
--signer-key key.pem \
--output final_photo.jpg

Le nouveau manifest référencera original_photo.jpg comme ingrédient, préservant l’historique complet.


Comprendre la spécification :

Explorer les outils :

Questions courantes :

Tutoriels officiels :

Exemples de code :

Avant la mise en ligne :

  1. Obtenir un certificat de production

    • Achetez auprès d’une autorité de certification de confiance (DigiCert, GlobalSign, etc.)
    • Assurez-vous de l’utilisation de clé compatible C2PA
    • Coût : environ 50-500 $/an
  2. Stockage sécurisé des clés

    • Utilisez un module de sécurité matériel (HSM) pour les clés privées
    • Ou HSM cloud (AWS CloudHSM, Azure Key Vault)
    • Ne jamais valider les clés dans le contrôle de source
  3. Tester minutieusement

    • Vérifier les signatures avec plusieurs validateurs
    • Tester sur différents formats de fichiers
    • Vérifier la compatibilité multiplateforme
  4. Surveiller et maintenir

    • Implémenter la rotation des certificats
    • Surveiller les révocations
    • Maintenir les SDK à jour

Points d’intégration clés :

Workflow de votre application :
1. Création/Téléversement de contenu
2. [Ajout manifest C2PA] ← Votre point d'intégration
3. Signer avec le certificat
4. Enregistrer/Publier le contenu signé
5. [Optionnel] Vérifier à l'affichage ← Autre point d'intégration

Temps d’intégration typique :

  • Vérification simple : 1-2 jours
  • Signature de base : 3-5 jours
  • Déploiement complet en production : 2-4 semaines

Tests (Gratuit) :

  • Certificats auto-signés
  • Bon pour le développement uniquement
  • Non reconnus par les validateurs

Production :

Obtenir de l’aide :

Contribuer :


Fenêtre de terminal
c2patool image.jpg
Fenêtre de terminal
c2patool input.jpg \
--manifest manifest.json \
--signer-cert cert.pem \
--signer-key key.pem \
--output signed.jpg
https://contentcredentials.org/verify
{
"claim_generator": "nom-app/version",
"assertions": [
{
"label": "stds.schema-org.CreativeWork",
"data": {
"author": [{"name": "Nom du créateur"}]
}
}
]
}

  • Le fichier peut ne pas avoir de manifest C2PA
  • Les métadonnées peuvent avoir été supprimées
  • Essayez un format de fichier différent
  • Fichier modifié après signature
  • Certificat révoqué ou expiré
  • Chaîne de confiance brisée
  • Utilisation d’un certificat auto-signé (attendu pour les tests)
  • Autorité de certification pas dans la liste de confiance
  • Ajoutez des ancres de confiance personnalisées si nécessaire
  • C2PA ajoute environ 10-50 Ko par manifest (minimal)
  • La signature prend < 1 seconde pour les fichiers typiques
  • La vérification est quasi instantanée

Prêt à commencer ? Choisissez votre méthode ci-dessus et lancez-vous !

Questions ? Consultez la FAQ ou ouvrez une issue.


Dernière mise à jour : Novembre 2025