2017-09-25 4 views
1

XMLDSIG est une spécification de signature numérique pour un document XML. C# a des classes pour prendre en charge XMLDSIG dans l'espace de noms System.Security.Cryptography.Xml.Signature numérique dans le fichier YAML. Similaire à XMLDSIG

Je me demandais s'il existe une spécification de signature numérique pour les documents YAML. Ou en général, comment se passe la validation de l'authenticité du document YAML (comme il n'a pas été altéré).

L'idée était de placer une signature numérique dans un document YAML, puis d'utiliser la clé publique à l'autre extrémité pour la valider. Je ne sais pas s'il existe une bibliothèque implémentée autour de cette chose en C#, python ou go.

J'ai trouvé quelque chose sous la section 3.2.1.3. Égalité à http://yaml.org/spec/1.0/ qui mentionne l'utilisation de la forme canonique pour prendre en charge la signature numérique. Je ne sais pas si je le comprends bien.

Répondre

0

Non, il n'existe pas de format de signature numérique spécifique pour Yaml. Les formats les plus courants sont XMLDsig pour xml, PAdES pour PDF, CMS/PKCS#7/CAdES pour les données binaires et JWS pour JSON

Ajout d'une balise de YAML avec la signature signifie traiter la canonicalisation du texte qui peut conduire à un mal de tête .

Je suggère d'envelopper le contenu dans un conteneur de signature comme CMS/PKCS # 7 ou JWT. Par exemple

{ 
"yaml": "SGVsbG8=". //yaml as base64 
} 

Ou utiliser une signature détachée


de Canonicalisation Le lien que vous faites référence parle sur la façon de représenter un nombre. Notez que tout changement dans les données, ou la façon dont elles sont traitées pour calculer la signature produira des signatures différentes. Ainsi, lorsqu'un format de texte est utilisé, il est nécessaire d'avoir recours à un processus de «canonisation» bien connu pour s'assurer que toutes les parties traitent les données de la même manière.