Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove deterministic signatures requirement #261

Merged
merged 4 commits into from May 25, 2017

Conversation

eranmes
Copy link
Contributor

@eranmes eranmes commented May 22, 2017

Per discussion on trans, making deterministic signing optional,
mentioning that deterministic signing can be achieved by storing
the signature blobs rather than re-signing the same SCTs for
the same submissions.

Per discussion on trans, making deterministic signing optional,
mentioning that deterministic signing can be achieved by storing
the signature blobs rather than re-signing the same SCTs for
the same submissions.
@eranmes eranmes requested review from robstradling and benlaurie and removed request for benlaurie May 22, 2017
Copy link
Collaborator

@robstradling robstradling left a comment

I think we should also change the title of this section from "Deterministic Signatures" to something like "Tracking Clients" (or "Preventing Tracking Clients").

@@ -1892,7 +1892,7 @@ IANA is asked to establish a registry of signature algorithm values, named
|-------------+--------------------------------------------------------+------------------------------------------|
| Value | Signature Algorithm | Reference / Assignment Policy |
|-------------+--------------------------------------------------------+------------------------------------------|
| 0x00 | Deterministic ECDSA (NIST P-256) with HMAC-SHA256 | [RFC6979] |
| 0x00 | ECDSA (NIST P-256) with HMAC-SHA256 | [RFC6979] |
Copy link
Collaborator

@robstradling robstradling May 22, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we're dropping the requirement for deterministic ECDSA, then I don't see how we can keep "[RFC6979]" as the (only) Assignment Policy. I can't find an RFC for "non-deterministic" ECDSA, so I think we should reference FIPS 186-4.

I think we should still mention RFC6979 as an option. AFAICT, the "with HMAC-SHA256" part doesn't apply to "non-deterministic" ECDSA, so I think we should have two lines, both with the value 0x00:

ECDSA (NIST P-256) | [FIPS 186-4]
Deterministic ECDSA (NIST P-256) with HMAC-SHA256 | [RFC6979)

Copy link
Collaborator

@robstradling robstradling May 22, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, we also need to specify the signature hash algorithm:
ECDSA (NIST P-256) with SHA-256

I'm not intimately familiar with RFC6979. Is "with HMAC-SHA256" sufficient? Or do we need to write "with HMAC-SHA256 and SHA-256"?

Copy link
Contributor Author

@eranmes eranmes May 24, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.
HMAC-SHA256 seems enough, by looking at the Building Blocks section of RFC6979 (3.2).

Logs are encouraged to use deterministic signatures to reduce the risk of
tracking clients: clients that gossip STHs or report back SCTs can be tracked
or traced if a log was to produce multiple STHs or SCTs with the same timestamp
and data but different signatures.
Copy link
Collaborator

@robstradling robstradling May 22, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My wordsmithing attempt on this paragraph:
Clients that gossip STHs or report back SCTs can be tracked or traced if a log produces multiple STHs or SCTs with the same timestamp and data but different signatures. To mitigate this risk, logs are encouraged to use deterministic signature schemes.

Copy link
Contributor Author

@eranmes eranmes May 24, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

Note that deterministic signatures can be provided without the use of a
signature scheme that's designed for deterministic signing: The signature bytes
for each SCT or STH could be stored and served when the same certificate is
submitted or the same STH requested, rather than re-signing the same data.
Copy link
Collaborator

@robstradling robstradling May 22, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it's misleading/confusing to use the phrase "deterministic signatures can be provided" here. Here's an attempt at wordsmithing both this and the preceding paragraph:

`Clients that gossip STHs or report back SCTs can be tracked or traced if a log produces multiple STHs or SCTs with the same timestamp and data but different signatures. Logs MUST mitigate this risk by either:

  • Using deterministic signature schemes, or
  • Producing no more than one SCT for each distinct submission and no more than one STH for each distinct tree_size. Each of these SCTs and STHs can be stored by the log and served to other clients that submit the same certificate or request the same STH.`

Copy link
Contributor Author

@eranmes eranmes May 24, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done - with one modification, changing MUST to a SHOULD because I really don't want to require it yet, we don't really know how gossip will take place and if it'll indeed introduce a new tracking/fingerprinting vector.

Copy link
Collaborator

@robstradling robstradling May 24, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK

@eranmes
Copy link
Contributor Author

@eranmes eranmes commented May 24, 2017

@robstradling robstradling merged commit 8d85df6 into google:master May 25, 2017
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
2 participants