{"action":"created","issue":{"url":"https://api.github.com/repos/google/certificate-transparency-go/issues/105","repository_url":"https://api.github.com/repos/google/certificate-transparency-go","labels_url":"https://api.github.com/repos/google/certificate-transparency-go/issues/105/labels{/name}","comments_url":"https://api.github.com/repos/google/certificate-transparency-go/issues/105/comments","events_url":"https://api.github.com/repos/google/certificate-transparency-go/issues/105/events","html_url":"https://github.com/google/certificate-transparency-go/issues/105","id":272387555,"number":105,"title":"trillian/ctfe: Prevent STH being used for fingerprinting users","user":{"login":"rolandshoemaker","id":5080674,"avatar_url":"https://avatars3.githubusercontent.com/u/5080674?v=4","gravatar_id":"","url":"https://api.github.com/users/rolandshoemaker","html_url":"https://github.com/rolandshoemaker","followers_url":"https://api.github.com/users/rolandshoemaker/followers","following_url":"https://api.github.com/users/rolandshoemaker/following{/other_user}","gists_url":"https://api.github.com/users/rolandshoemaker/gists{/gist_id}","starred_url":"https://api.github.com/users/rolandshoemaker/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rolandshoemaker/subscriptions","organizations_url":"https://api.github.com/users/rolandshoemaker/orgs","repos_url":"https://api.github.com/users/rolandshoemaker/repos","events_url":"https://api.github.com/users/rolandshoemaker/events{/privacy}","received_events_url":"https://api.github.com/users/rolandshoemaker/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"daviddrysdale","id":457208,"avatar_url":"https://avatars3.githubusercontent.com/u/457208?v=4","gravatar_id":"","url":"https://api.github.com/users/daviddrysdale","html_url":"https://github.com/daviddrysdale","followers_url":"https://api.github.com/users/daviddrysdale/followers","following_url":"https://api.github.com/users/daviddrysdale/following{/other_user}","gists_url":"https://api.github.com/users/daviddrysdale/gists{/gist_id}","starred_url":"https://api.github.com/users/daviddrysdale/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/daviddrysdale/subscriptions","organizations_url":"https://api.github.com/users/daviddrysdale/orgs","repos_url":"https://api.github.com/users/daviddrysdale/repos","events_url":"https://api.github.com/users/daviddrysdale/events{/privacy}","received_events_url":"https://api.github.com/users/daviddrysdale/received_events","type":"User","site_admin":false},"assignees":[{"login":"daviddrysdale","id":457208,"avatar_url":"https://avatars3.githubusercontent.com/u/457208?v=4","gravatar_id":"","url":"https://api.github.com/users/daviddrysdale","html_url":"https://github.com/daviddrysdale","followers_url":"https://api.github.com/users/daviddrysdale/followers","following_url":"https://api.github.com/users/daviddrysdale/following{/other_user}","gists_url":"https://api.github.com/users/daviddrysdale/gists{/gist_id}","starred_url":"https://api.github.com/users/daviddrysdale/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/daviddrysdale/subscriptions","organizations_url":"https://api.github.com/users/daviddrysdale/orgs","repos_url":"https://api.github.com/users/daviddrysdale/repos","events_url":"https://api.github.com/users/daviddrysdale/events{/privacy}","received_events_url":"https://api.github.com/users/daviddrysdale/received_events","type":"User","site_admin":false}],"milestone":null,"comments":0,"created_at":"2017-11-08T23:30:06Z","updated_at":"2017-11-09T11:05:49Z","closed_at":null,"author_association":"CONTRIBUTOR","body":"Currently each time a STH is retrieved via get-sth a new signature is created and since CT almost always uses ECDSA these signatures are non-deterministic. This means that when the STH doesn't change between signatures it can be used to uniquely fingerprint the user that retrieved it. It seems like there are two solutions to this problem:\r\n\r\n* Use RFC6979 deterministic ECDSA signatures\r\n* Cache the STH\r\n\r\nThe first seems like a lot of work, although perfectly doable and would allow the CTFE to continue being essentially stateless while the second seems a lot simpler but does require some more significant architectural changes as well as giving the CTFE more information about how the Trillian log signer operates."},"comment":{"url":"https://api.github.com/repos/google/certificate-transparency-go/issues/comments/343122024","html_url":"https://github.com/google/certificate-transparency-go/issues/105#issuecomment-343122024","issue_url":"https://api.github.com/repos/google/certificate-transparency-go/issues/105","id":343122024,"user":{"login":"AlCutter","id":7648032,"avatar_url":"https://avatars0.githubusercontent.com/u/7648032?v=4","gravatar_id":"","url":"https://api.github.com/users/AlCutter","html_url":"https://github.com/AlCutter","followers_url":"https://api.github.com/users/AlCutter/followers","following_url":"https://api.github.com/users/AlCutter/following{/other_user}","gists_url":"https://api.github.com/users/AlCutter/gists{/gist_id}","starred_url":"https://api.github.com/users/AlCutter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AlCutter/subscriptions","organizations_url":"https://api.github.com/users/AlCutter/orgs","repos_url":"https://api.github.com/users/AlCutter/repos","events_url":"https://api.github.com/users/AlCutter/events{/privacy}","received_events_url":"https://api.github.com/users/AlCutter/received_events","type":"User","site_admin":false},"created_at":"2017-11-09T11:05:49Z","updated_at":"2017-11-09T11:05:49Z","author_association":"CONTRIBUTOR","body":"There are other potential solutions too:\r\ne.g. a deterministic function which looks at each Trillian STH, and determines whether it should be promoted to a CT STH (noddy example: `TrillianSTH.RootHash%n == 0`) - this should result in tuneably fewer STHs being emitted by the Log.  And since the function is deterministic, each CTFE would naturally promote the same selection of Trillian STHs without requiring any form of coordination. (I can see a few wrinkles in here, but it's an avenue of thought at least.)  "}}
{"actor":{"display_login":"AlCutter"}}