{"action":"created","comment":{"url":"https://api.github.com/repos/yahoo/end-to-end/pulls/comments/35234470","id":35234470,"diff_hunk":"@@ -0,0 +1,81 @@\n+# E2E Integration with Facebook Key Lookup\n+\n+## Intro\n+\n+Facebook has shipped a [feature](https://www.facebook.com/notes/protecting-the-graph/securing-email-communications-from-facebook/1611941762379302) that allows users to upload PGP public keys to their Facebook profile. It would useful for Yahoo E2E to use this feature for key lookups.\n+\n+### Why? Aren't you building a key transparency server?\n+\n+1. Non-Yahoo/Google mail providers might not opt in to the key transparency log. Thus, if Bob is emailing Alice and Alice's mail provider doesn't support key transparency proofs, Bob might rely on a Facebook key lookup to for evidence that a key returned by a standard HKP keyserver actually belongs to Alice.\n+\n+2. If Alice's mail provider does support key transparency proofs, Bob additionally can verify that her key is published on a Facebook profile that he recognizes as Alice's. This provides a meaningful security benefit when Alice does not require her key updates to be signed by her previous key.\n+\n+### Key transparency guarantees:\n+\n+These are the guarantees of a [CONIKS-like](http://coniks.org) key transparency\n+system.\n+\n+* Deters equivocation by the key provider: Any attempt to show a different key\n+for Alice to different users will have a high probability of producing\n+non-repudiable cryptographic evidence. This relies on the presence of auditors\n+who track the signed tree head chain.\n+* Ensures key binding consistency: Alice specifies some policy for allowable key\n+updates, ranging in strictness from \"Allow any key update signed by the\n+provider\" to \"Allow key updates only if they are signed by a certifying key\n+that Alice controls.\" Alice (in CONIKS) and/or third parties (in Dename) can\n+check whether key updates published by the provider are consistent with this\n+policy and raise an alarm if not.\n+* In the case where Alice's key updates do not have to be signed by her\n+previous key, a malicious provider can replace her\n+key at any time. Alice can potentially complain about this if her client is\n+online and checking key updates, but a determined attacker can keep her\n+offline.\n+\n+### Facebook lookup guarantees:\n+\n+* Prevents equivocation by the key provider if Bob knows Alice's Facebook\n+account username a priori and Alice has chosen to pubish her key to her","path":"docs/fb-integration-design.md","position":37,"original_position":37,"commit_id":"3db93d91f3f7fdf62aa704458655095ee395cb5b","original_commit_id":"3db93d91f3f7fdf62aa704458655095ee395cb5b","user":{"login":"adon-at-work","id":8486533,"avatar_url":"https://avatars.githubusercontent.com/u/8486533?v=3","gravatar_id":"","url":"https://api.github.com/users/adon-at-work","html_url":"https://github.com/adon-at-work","followers_url":"https://api.github.com/users/adon-at-work/followers","following_url":"https://api.github.com/users/adon-at-work/following{/other_user}","gists_url":"https://api.github.com/users/adon-at-work/gists{/gist_id}","starred_url":"https://api.github.com/users/adon-at-work/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adon-at-work/subscriptions","organizations_url":"https://api.github.com/users/adon-at-work/orgs","repos_url":"https://api.github.com/users/adon-at-work/repos","events_url":"https://api.github.com/users/adon-at-work/events{/privacy}","received_events_url":"https://api.github.com/users/adon-at-work/received_events","type":"User","site_admin":false},"body":"s/pubish/publish/","created_at":"2015-07-22T16:42:40Z","updated_at":"2015-07-22T16:42:40Z","html_url":"https://github.com/yahoo/end-to-end/pull/54#discussion_r35234470","pull_request_url":"https://api.github.com/repos/yahoo/end-to-end/pulls/54","_links":{"self":{"href":"https://api.github.com/repos/yahoo/end-to-end/pulls/comments/35234470"},"html":{"href":"https://github.com/yahoo/end-to-end/pull/54#discussion_r35234470"},"pull_request":{"href":"https://api.github.com/repos/yahoo/end-to-end/pulls/54"}}},"pull_request":{"url":"https://api.github.com/repos/yahoo/end-to-end/pulls/54","id":39707144,"html_url":"https://github.com/yahoo/end-to-end/pull/54","diff_url":"https://github.com/yahoo/end-to-end/pull/54.diff","patch_url":"https://github.com/yahoo/end-to-end/pull/54.patch","issue_url":"https://api.github.com/repos/yahoo/end-to-end/issues/54","number":54,"state":"open","locked":false,"title":"Adds a V1 implementation for Facebook key lookups","user":{"login":"diracdeltas","id":549654,"avatar_url":"https://avatars.githubusercontent.com/u/549654?v=3","gravatar_id":"","url":"https://api.github.com/users/diracdeltas","html_url":"https://github.com/diracdeltas","followers_url":"https://api.github.com/users/diracdeltas/followers","following_url":"https://api.github.com/users/diracdeltas/following{/other_user}","gists_url":"https://api.github.com/users/diracdeltas/gists{/gist_id}","starred_url":"https://api.github.com/users/diracdeltas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/diracdeltas/subscriptions","organizations_url":"https://api.github.com/users/diracdeltas/orgs","repos_url":"https://api.github.com/users/diracdeltas/repos","events_url":"https://api.github.com/users/diracdeltas/events{/privacy}","received_events_url":"https://api.github.com/users/diracdeltas/received_events","type":"User","site_admin":false},"body":"This is the implementation specified in `docs/fb-integration-design.md` as \"Version 1\".\r\n\r\ncc @adon-at-work @sweis for review, thanks. ","created_at":"2015-07-10T17:43:41Z","updated_at":"2015-07-22T16:42:40Z","closed_at":null,"merged_at":null,"merge_commit_sha":"ce65cee978e726f6a06eb9334f4163e1557b8b55","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/yahoo/end-to-end/pulls/54/commits","review_comments_url":"https://api.github.com/repos/yahoo/end-to-end/pulls/54/comments","review_comment_url":"https://api.github.com/repos/yahoo/end-to-end/pulls/comments{/number}","comments_url":"https://api.github.com/repos/yahoo/end-to-end/issues/54/comments","statuses_url":"https://api.github.com/repos/yahoo/end-to-end/statuses/3db93d91f3f7fdf62aa704458655095ee395cb5b","head":{"label":"yahoo:feature/fb-v1","ref":"feature/fb-v1","sha":"3db93d91f3f7fdf62aa704458655095ee395cb5b","user":{"login":"yahoo","id":16574,"avatar_url":"https://avatars.githubusercontent.com/u/16574?v=3","gravatar_id":"","url":"https://api.github.com/users/yahoo","html_url":"https://github.com/yahoo","followers_url":"https://api.github.com/users/yahoo/followers","following_url":"https://api.github.com/users/yahoo/following{/other_user}","gists_url":"https://api.github.com/users/yahoo/gists{/gist_id}","starred_url":"https://api.github.com/users/yahoo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yahoo/subscriptions","organizations_url":"https://api.github.com/users/yahoo/orgs","repos_url":"https://api.github.com/users/yahoo/repos","events_url":"https://api.github.com/users/yahoo/events{/privacy}","received_events_url":"https://api.github.com/users/yahoo/received_events","type":"Organization","site_admin":false},"repo":{"id":32270084,"name":"end-to-end","full_name":"yahoo/end-to-end","owner":{"login":"yahoo","id":16574,"avatar_url":"https://avatars.githubusercontent.com/u/16574?v=3","gravatar_id":"","url":"https://api.github.com/users/yahoo","html_url":"https://github.com/yahoo","followers_url":"https://api.github.com/users/yahoo/followers","following_url":"https://api.github.com/users/yahoo/following{/other_user}","gists_url":"https://api.github.com/users/yahoo/gists{/gist_id}","starred_url":"https://api.github.com/users/yahoo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yahoo/subscriptions","organizations_url":"https://api.github.com/users/yahoo/orgs","repos_url":"https://api.github.com/users/yahoo/repos","events_url":"https://api.github.com/users/yahoo/events{/privacy}","received_events_url":"https://api.github.com/users/yahoo/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/yahoo/end-to-end","description":"Use OpenPGP-based encryption in Yahoo mail.","fork":false,"url":"https://api.github.com/repos/yahoo/end-to-end","forks_url":"https://api.github.com/repos/yahoo/end-to-end/forks","keys_url":"https://api.github.com/repos/yahoo/end-to-end/keys{/key_id}","collaborators_url":"https://api.github.com/repos/yahoo/end-to-end/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/yahoo/end-to-end/teams","hooks_url":"https://api.github.com/repos/yahoo/end-to-end/hooks","issue_events_url":"https://api.github.com/repos/yahoo/end-to-end/issues/events{/number}","events_url":"https://api.github.com/repos/yahoo/end-to-end/events","assignees_url":"https://api.github.com/repos/yahoo/end-to-end/assignees{/user}","branches_url":"https://api.github.com/repos/yahoo/end-to-end/branches{/branch}","tags_url":"https://api.github.com/repos/yahoo/end-to-end/tags","blobs_url":"https://api.github.com/repos/yahoo/end-to-end/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/yahoo/end-to-end/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/yahoo/end-to-end/git/refs{/sha}","trees_url":"https://api.github.com/repos/yahoo/end-to-end/git/trees{/sha}","statuses_url":"https://api.github.com/repos/yahoo/end-to-end/statuses/{sha}","languages_url":"https://api.github.com/repos/yahoo/end-to-end/languages","stargazers_url":"https://api.github.com/repos/yahoo/end-to-end/stargazers","contributors_url":"https://api.github.com/repos/yahoo/end-to-end/contributors","subscribers_url":"https://api.github.com/repos/yahoo/end-to-end/subscribers","subscription_url":"https://api.github.com/repos/yahoo/end-to-end/subscription","commits_url":"https://api.github.com/repos/yahoo/end-to-end/commits{/sha}","git_commits_url":"https://api.github.com/repos/yahoo/end-to-end/git/commits{/sha}","comments_url":"https://api.github.com/repos/yahoo/end-to-end/comments{/number}","issue_comment_url":"https://api.github.com/repos/yahoo/end-to-end/issues/comments{/number}","contents_url":"https://api.github.com/repos/yahoo/end-to-end/contents/{+path}","compare_url":"https://api.github.com/repos/yahoo/end-to-end/compare/{base}...{head}","merges_url":"https://api.github.com/repos/yahoo/end-to-end/merges","archive_url":"https://api.github.com/repos/yahoo/end-to-end/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/yahoo/end-to-end/downloads","issues_url":"https://api.github.com/repos/yahoo/end-to-end/issues{/number}","pulls_url":"https://api.github.com/repos/yahoo/end-to-end/pulls{/number}","milestones_url":"https://api.github.com/repos/yahoo/end-to-end/milestones{/number}","notifications_url":"https://api.github.com/repos/yahoo/end-to-end/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/yahoo/end-to-end/labels{/name}","releases_url":"https://api.github.com/repos/yahoo/end-to-end/releases{/id}","created_at":"2015-03-15T16:14:20Z","updated_at":"2015-07-17T08:19:00Z","pushed_at":"2015-07-17T04:04:09Z","git_url":"git://github.com/yahoo/end-to-end.git","ssh_url":"git@github.com:yahoo/end-to-end.git","clone_url":"https://github.com/yahoo/end-to-end.git","svn_url":"https://github.com/yahoo/end-to-end","homepage":"http://yahoo.tumblr.com/post/113708033335/user-focused-security-end-to-end-encryption","size":12814,"stargazers_count":154,"watchers_count":154,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":21,"mirror_url":null,"open_issues_count":17,"forks":21,"open_issues":17,"watchers":154,"default_branch":"master"}},"base":{"label":"yahoo:master","ref":"master","sha":"a5377067470203e6c5d9b216b317ef8951d12086","user":{"login":"yahoo","id":16574,"avatar_url":"https://avatars.githubusercontent.com/u/16574?v=3","gravatar_id":"","url":"https://api.github.com/users/yahoo","html_url":"https://github.com/yahoo","followers_url":"https://api.github.com/users/yahoo/followers","following_url":"https://api.github.com/users/yahoo/following{/other_user}","gists_url":"https://api.github.com/users/yahoo/gists{/gist_id}","starred_url":"https://api.github.com/users/yahoo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yahoo/subscriptions","organizations_url":"https://api.github.com/users/yahoo/orgs","repos_url":"https://api.github.com/users/yahoo/repos","events_url":"https://api.github.com/users/yahoo/events{/privacy}","received_events_url":"https://api.github.com/users/yahoo/received_events","type":"Organization","site_admin":false},"repo":{"id":32270084,"name":"end-to-end","full_name":"yahoo/end-to-end","owner":{"login":"yahoo","id":16574,"avatar_url":"https://avatars.githubusercontent.com/u/16574?v=3","gravatar_id":"","url":"https://api.github.com/users/yahoo","html_url":"https://github.com/yahoo","followers_url":"https://api.github.com/users/yahoo/followers","following_url":"https://api.github.com/users/yahoo/following{/other_user}","gists_url":"https://api.github.com/users/yahoo/gists{/gist_id}","starred_url":"https://api.github.com/users/yahoo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yahoo/subscriptions","organizations_url":"https://api.github.com/users/yahoo/orgs","repos_url":"https://api.github.com/users/yahoo/repos","events_url":"https://api.github.com/users/yahoo/events{/privacy}","received_events_url":"https://api.github.com/users/yahoo/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/yahoo/end-to-end","description":"Use OpenPGP-based encryption in Yahoo mail.","fork":false,"url":"https://api.github.com/repos/yahoo/end-to-end","forks_url":"https://api.github.com/repos/yahoo/end-to-end/forks","keys_url":"https://api.github.com/repos/yahoo/end-to-end/keys{/key_id}","collaborators_url":"https://api.github.com/repos/yahoo/end-to-end/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/yahoo/end-to-end/teams","hooks_url":"https://api.github.com/repos/yahoo/end-to-end/hooks","issue_events_url":"https://api.github.com/repos/yahoo/end-to-end/issues/events{/number}","events_url":"https://api.github.com/repos/yahoo/end-to-end/events","assignees_url":"https://api.github.com/repos/yahoo/end-to-end/assignees{/user}","branches_url":"https://api.github.com/repos/yahoo/end-to-end/branches{/branch}","tags_url":"https://api.github.com/repos/yahoo/end-to-end/tags","blobs_url":"https://api.github.com/repos/yahoo/end-to-end/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/yahoo/end-to-end/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/yahoo/end-to-end/git/refs{/sha}","trees_url":"https://api.github.com/repos/yahoo/end-to-end/git/trees{/sha}","statuses_url":"https://api.github.com/repos/yahoo/end-to-end/statuses/{sha}","languages_url":"https://api.github.com/repos/yahoo/end-to-end/languages","stargazers_url":"https://api.github.com/repos/yahoo/end-to-end/stargazers","contributors_url":"https://api.github.com/repos/yahoo/end-to-end/contributors","subscribers_url":"https://api.github.com/repos/yahoo/end-to-end/subscribers","subscription_url":"https://api.github.com/repos/yahoo/end-to-end/subscription","commits_url":"https://api.github.com/repos/yahoo/end-to-end/commits{/sha}","git_commits_url":"https://api.github.com/repos/yahoo/end-to-end/git/commits{/sha}","comments_url":"https://api.github.com/repos/yahoo/end-to-end/comments{/number}","issue_comment_url":"https://api.github.com/repos/yahoo/end-to-end/issues/comments{/number}","contents_url":"https://api.github.com/repos/yahoo/end-to-end/contents/{+path}","compare_url":"https://api.github.com/repos/yahoo/end-to-end/compare/{base}...{head}","merges_url":"https://api.github.com/repos/yahoo/end-to-end/merges","archive_url":"https://api.github.com/repos/yahoo/end-to-end/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/yahoo/end-to-end/downloads","issues_url":"https://api.github.com/repos/yahoo/end-to-end/issues{/number}","pulls_url":"https://api.github.com/repos/yahoo/end-to-end/pulls{/number}","milestones_url":"https://api.github.com/repos/yahoo/end-to-end/milestones{/number}","notifications_url":"https://api.github.com/repos/yahoo/end-to-end/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/yahoo/end-to-end/labels{/name}","releases_url":"https://api.github.com/repos/yahoo/end-to-end/releases{/id}","created_at":"2015-03-15T16:14:20Z","updated_at":"2015-07-17T08:19:00Z","pushed_at":"2015-07-17T04:04:09Z","git_url":"git://github.com/yahoo/end-to-end.git","ssh_url":"git@github.com:yahoo/end-to-end.git","clone_url":"https://github.com/yahoo/end-to-end.git","svn_url":"https://github.com/yahoo/end-to-end","homepage":"http://yahoo.tumblr.com/post/113708033335/user-focused-security-end-to-end-encryption","size":12814,"stargazers_count":154,"watchers_count":154,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":21,"mirror_url":null,"open_issues_count":17,"forks":21,"open_issues":17,"watchers":154,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/yahoo/end-to-end/pulls/54"},"html":{"href":"https://github.com/yahoo/end-to-end/pull/54"},"issue":{"href":"https://api.github.com/repos/yahoo/end-to-end/issues/54"},"comments":{"href":"https://api.github.com/repos/yahoo/end-to-end/issues/54/comments"},"review_comments":{"href":"https://api.github.com/repos/yahoo/end-to-end/pulls/54/comments"},"review_comment":{"href":"https://api.github.com/repos/yahoo/end-to-end/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/yahoo/end-to-end/pulls/54/commits"},"statuses":{"href":"https://api.github.com/repos/yahoo/end-to-end/statuses/3db93d91f3f7fdf62aa704458655095ee395cb5b"}}}}