Re: [Json] RFC 8785 - JSON Canonicalization Scheme
John Cowan <cowan@ccil.org> Mon, 06 July 2020 03:04 UTC
Return-Path: <cowan@ccil.org>
X-Original-To: json@ietfa.amsl.com
Delivered-To: json@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0CC3C3A0E11 for <json@ietfa.amsl.com>; Sun, 5 Jul 2020 20:04:59 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.898
X-Spam-Level:
X-Spam-Status: No, score=-1.898 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=ccil-org.20150623.gappssmtp.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id iWqaN94-4X2F for <json@ietfa.amsl.com>; Sun, 5 Jul 2020 20:04:51 -0700 (PDT)
Received: from mail-qv1-xf32.google.com (mail-qv1-xf32.google.com [IPv6:2607:f8b0:4864:20::f32]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 765593A0E0D for <json@ietf.org>; Sun, 5 Jul 2020 20:04:50 -0700 (PDT)
Received: by mail-qv1-xf32.google.com with SMTP id t7so16592189qvl.8 for <json@ietf.org>; Sun, 05 Jul 2020 20:04:50 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ccil-org.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=lKVPgutc7LNrQM5W45n+PUqtDC5PGQyxx7znNHijqkE=; b=qCqX/VclzGeVGazcit08X9pX+7+iql5Vz5reiamWYhHYqcmwEb6A4azCiP433kP12h 91feiw33ZpMUSRWJymPE3zc7DGqTKDKH8bzRziRiMItFsNrwYH12lLdSPKKt4v5ATCNS BJJ7U0FXq6wdgmFm6gyQdzCDvLkpYwMNZxn9hLf7FKWGrHfeZ+9/ybuLnC/qnG7gWJHA Cb2A+qfWmsKtR+ctM3oG5VbzQI8OIA3kRVH/uRI95W0srQc3T2wqmCt+qIPkHx4bAuYN XjpTD12pZ5IiPlHVVQfOJ62ZAh3noRFK94cAqKynv9ZQTH1YvNuts21EfiHdPuAqdrCz R1tA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=lKVPgutc7LNrQM5W45n+PUqtDC5PGQyxx7znNHijqkE=; b=e6kWvpmGCNrj4ZEANPoWp0HBpCaQ6f0UtW+HIqcX9sVcYGQItiv7gGQ5RazzdMOzgY EYWeXx0JAhZyNCiySmqU+/DufrIsQ1Znw5kSQ2FyfNsrJ3lSFOxzXJGTlsDYXNdQOKW2 A3tsoP3npG+qMqYBaN90k+87vdsJ9TEz4iFAkZpVrEf/cPLQc5iCc0utEeC3zrdMKana wFkjVEn3RObdSeVFEegW83LTX35E1HdrXRwTS8r6r1dQQXfuPIr1zDasuEf289mCRfhm 7g8zyU0Lvacubp3X7ya4Z8OLMWRfwiV+x8rt5I1BvzlsMo1KHJVQ0p4gFoYK9BTbaTJM woXg==
X-Gm-Message-State: AOAM532Tmg6RibhwdMneBgD/H3ZIwf6B6c9YypN0ixX22Bu9QqFohawh RjMojCTXFgPqFTjdpszLXZs7p7E9JlVtNmz3StU51A==
X-Google-Smtp-Source: ABdhPJwV6JiLzTpV1fa9iwRhOaeIT3/2xiDzQ6nBQo6ew/PRA8Po0GaROCi8gJ8vge4v9lKvl9piITje8aixf0kYnxk=
X-Received: by 2002:a0c:b2d1:: with SMTP id d17mr35067054qvf.100.1594004689946; Sun, 05 Jul 2020 20:04:49 -0700 (PDT)
MIME-Version: 1.0
References: <ce98d1e6-1f39-84ca-b9b0-d11b0aa3c2f7@gmail.com> <715bce33-a744-5a97-8c6b-c7d2b27510f2@gmail.com> <CAJK=1Rje7POnLVrUxPFAkAb5h8atP3n25GYyGdWob3wZRWH20g@mail.gmail.com>
In-Reply-To: <CAJK=1Rje7POnLVrUxPFAkAb5h8atP3n25GYyGdWob3wZRWH20g@mail.gmail.com>
From: John Cowan <cowan@ccil.org>
Date: Sun, 05 Jul 2020 23:04:38 -0400
Message-ID: <CAD2gp_RV0ipzKp7pCqpwvsDPdenje9V3j5SVNJrHVoh65sbhFg@mail.gmail.com>
To: Ulysse Carion <ulysse@segment.com>
Cc: Anders Rundgren <anders.rundgren.net@gmail.com>, "json@ietf.org" <json@ietf.org>
Content-Type: multipart/alternative; boundary="00000000000050a48b05a9bd23ab"
Archived-At: <https://mailarchive.ietf.org/arch/msg/json/ao5xG_-C7zDmTIGjzOOSUKIe9Os>
Subject: Re: [Json] RFC 8785 - JSON Canonicalization Scheme
X-BeenThere: json@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "JavaScript Object Notation \(JSON\) WG mailing list" <json.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/json>, <mailto:json-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/json/>
List-Post: <mailto:json@ietf.org>
List-Help: <mailto:json-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/json>, <mailto:json-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 06 Jul 2020 03:05:00 -0000
We need to catch and reject unpaired surrogates because all the world isn't Java, JavaScript, and C#. Languages that deal in UTF-8 literally have no way to represent unpaired surrogates, and shouldn't have to do something horribly wrong to handle them. On Sun, Jul 5, 2020 at 9:11 PM Ulysse Carion <ulysse@segment.com> wrote: > Hi Anders, > > Nice job with JCS. I've taken a stab at implementing it here (in > Golang), because I have a possible use for something like this, and > your Golang reference implementation wasn't super usable as-is: > > https://github.com/ucarion/jcs > > Overall, I think this document makes sense, and -- given its > prerequisites -- is the design any one of us would have landed on > given time to meditate on the details. I usually specifically avoid > embedding signatures within the data being signed, but when that's not > an option JCS seems a quite reasonable choice. > > Two notes on what you could do to help future implementers: > > 1. I wish you could provide some sort of script that generates > floating-point test-cases, instead of having folks download a 3.8G > file if they want to make sure they're correctly aping JavaScript's > float-to-string algorithm. > > 2. I don't understand why implementations MUST detect and error on > invalid surrogate pairs. For implementations that aren't implementing > their own JSON parser at the same time, doing so may not always be > possible. Can you elaborate on the reasoning, and maybe offer > implementers guidance on the relevant parts of the Unicode spec? A > prospective implementer already needs to go pretty deep into the hairy > details of floating-point numbers and character encoding, and a bit of > guidance in the developer portal would go a long way. > > These are just details. Overall, I think JCS is quite nicely done. > Thanks for making this. > > Best, > Ulysse > > > On Sat, Jul 4, 2020 at 11:27 AM Anders Rundgren > <anders.rundgren.net@gmail.com> wrote: > > > > https://www.rfc-editor.org/rfc/rfc8785 > > > > In case you would like to test what you can do with JSON > canonicalization, there are two public Web applications at your disposal: > > Using JWS: https://mobilepki.org/jws-jcs > > Using an "unwrapped" JWS called Java Signature Format (JSF): > https://mobilepki.org/jsf-lab > > > > A real-world implementation from OWASP using JSF: > https://cyclonedx.org/use-cases/#authenticity > > > > In Saturn JSF is not only a security solution, it is also used for > counter-signatures to simplify state-holding in payment systems: > > https://cyberphone.github.io/doc/saturn/hybrid-payment.html#6 > > > > By securely embedding related messages in each other (aka "Russian > doll"), there is no need for external references to previous messages. > > > > Enjoy! > > > > Anders > > > > _______________________________________________ > > json mailing list > > json@ietf.org > > https://www.ietf.org/mailman/listinfo/json > > _______________________________________________ > json mailing list > json@ietf.org > https://www.ietf.org/mailman/listinfo/json >
- [Json] RFC 8785 - JSON Canonicalization Scheme Anders Rundgren
- Re: [Json] RFC 8785 - JSON Canonicalization Scheme Ulysse Carion
- Re: [Json] RFC 8785 - JSON Canonicalization Scheme John Cowan
- Re: [Json] RFC 8785 - JSON Canonicalization Scheme Anders Rundgren