Las firmas cubren bytes, mientras que formatos como XML, JSON y el correo electrónico admiten muchas codificaciones en bytes del mismo contenido. Los esquemas de canonicalización fijan una: Exclusive XML Canonicalization para XML-DSig y SAML; el JSON Canonicalization Scheme (JCS, RFC 8785: claves ordenadas, formato de números de ECMAScript, sin espacios en blanco) para JSON; los algoritmos simple y relaxed de DKIM para los encabezados y el cuerpo del correo (RFC 6376 §3.4); DER como forma canónica de ASN.1.
Toda canonicalización es una superficie de ataque, porque el firmante y el verificador deben implementarla de forma idéntica y la aplicación debe actuar sobre el contenido canónico y no sobre la entrada sin procesar; la envoltura de firmas XML (XML signature wrapping) y los trucos con la longitud del cuerpo en DKIM aprovechan precisamente esas brechas. Formatos como JWS y COSE esquivan el problema porque firman exactamente los bytes transmitidos (base64url(header).base64url(payload)), y por eso es más fácil implementarlos bien.