Hi Anders

That resembles a bit a JWS JSON serialization format; if a signature is
taken on a thumbprint of the natural payload, then perhaps there's some
scope for the alignment there ?
Let me clarify what I meant.
If we look at a complete serialization example,
https://tools.ietf.org/html/draft-ietf-jose-json-web-signature-38#appendix-A.6.4,

one can imagine this representation having not a "payload" property representing an encoded payload but whatever the custom document would have, but the signatures/header would qualify that a signatures are calculated over a thumbprint:

{
      "a": "b",
      "c": "d",
      "signatures":[
       {"protected":"eyJhbGciOiJSUzI1NiJ9",
        "header":
         {"kid":"2010-12-29", "signatureType":"thumbprint"},
        "signature": "..."}
      ]
}

The consumer would calculate a thumbprint of the JSON payload minus "signatures", possibly of "signatures" siblings only to support signing of individual doc parts, and verify...

Not sure it makes much sense, just clarifying what I thought when I saw your example :-)

Well, the alignment is that JCS is nimble and can use JOSE algorithms.
What does "JCS is nimble" mean ? Sorry for being ignorant :-)
Unfortunately it stops there as I don't think that the following
dual-signed message
(card-holder signs a signed payment request + other data) would fit
nicely in JWS:

{
   "@context": "http://xmlns.webpki.org/wcpp-payment-demo";,
   "@qualifier": "AuthData",
   "paymentRequest":
     {
       "commonName": "Demo Merchant",
       "amount": 8600550,
       "currency": "USD",
       "referenceId": "#1000001",
       "dateTime": "2014-12-10T13:33:16Z",
       "signature":
         {
           "algorithm": "RS256",
           "signerCertificate":
             {
               "issuer": "CN=Merchant Network Sub CA5,C=DE",
               "serialNumber": "1413983542582",
               "subject": "CN=Demo Merchant,2.5.4.5=#1306383936333235,C=DE"
             },
           "certificatePath":
             [

"MIIDQzCCAiugAwIBAgIGAUk3_J02MA0GCS...MMGP3eMGlY734U3hxrdDbphEvsWTc",

"MIIEPzCCAiegAwIBAgIBBTANBgkqhkiG9w...IyRGA7IbdHOeDB2RUpsXloU2QKfLrk"
             ],
           "value":
"xVCFsxvB0y8j1GSi_rnXg4fcHQXDAv-...wNMhH8j4E99979WhDK5x9viUNvg"
         }
     },
   "domainName": "localhost",
   "cardType": "SuperCard",
   "pan": "7222464316037372",
   "dateTime": "2014-12-10T13:33:22Z",
   "signature":
     {
       "algorithm": "RS256",
       "signerCertificate":
         {
           "issuer": "CN=Mybank Client Root CA1,C=US",
           "serialNumber": "1413983550045",
           "subject": "CN=The Cardholder,2.5.4.5=#13083935363733353232"
         },
       "certificatePath":
         [

"MIIENzCCAh-gAwIBAgIGAUk3_LpdMA0....eo5DndNnV8D0UM-oBRkUDDFiWlhCU"
         ],
       "value":
"Ey1E0To7VDEXasNC5kiAr_bXrV...1uVfiQMs4ih7j4qegzOD7npk7wCFeOXs8VA"
     }
}

Are you referring to the fact one can have various individual parts of the same document signed with JCS ?

The JSON parser I use performs strict type-checking and automatically
detects
if there for example are "alien" properties in a signature container.


thanks, Sergey

cheers,
Anders


Sergey

On 10/12/14 07:18, Anders Rundgren wrote:
Dropping XML DSig bloat and adding support for JOSE algorithms made JCS
even nicer:

{
      "Statement": "Hello signed world!",
      "OtherProperties": [2000,true],
      "signature":
          {
              "algorithm": "ES256",
              "publicKey":
                  {
                      "type": "EC",
                      "curve": "P-256",
                      "x":
"vlYxD4dtFJOp1_8_QUcieWCW-4KrLMmFL2rpkY1bQDs",
                      "y": "fxEF70yJenP3SPHM9hv-EnvhG6nXr3_S-fDqoj-F6yM"
                  },
              "value":
"MEUCIQDXU1ph6-MRs0upj5PHA_bOcUv0pz5zIpvcQowgVj_wzQIgRW1_VMuTtc7C64vMh2kKpdGC70tqjpAAcbnn2qnVGuE"


          }
}

My claim that JSON parsers featured in browsers are compliant with JCS
was unfortunately not entirely correct -(
Properties expressed as numbers only ("1":"hi!"), are dealt with in a
special way.  OTOH, this seems like an
unusual construct so it is not a show-stopper.

Cheers,
Anders

_______________________________________________
jose mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/jose

_______________________________________________
jose mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/jose




--
Sergey Beryozkin

Talend Community Coders
http://coders.talend.com/

Blog: http://sberyozkin.blogspot.com

_______________________________________________
jose mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/jose

Reply via email to