{"id":10,"date":"2009-08-28T13:03:41","date_gmt":"2009-08-28T17:03:41","guid":{"rendered":"http:\/\/blogs.law.harvard.edu\/dlarochelle\/?p=10"},"modified":"2017-11-27T13:27:57","modified_gmt":"2017-11-27T18:27:57","slug":"using-ssl-t-prove-document-authenticiity","status":"publish","type":"post","link":"https:\/\/archive.blogs.harvard.edu\/dlarochelle\/2009\/08\/28\/using-ssl-t-prove-document-authenticiity\/","title":{"rendered":"Using SSL to Prove Document Authenticity"},"content":{"rendered":"<p>This blog post is an idea that I&#8217;ve been kicking around for a while but haven&#8217;t had the time to research or implement.\u00a0 I&#8217;ve finally decided just to post it speculatively.\u00a0 I&#8217;m really hoping to get feed back from those in the community more knowledgeable about SSL than I am.\u00a0 Note: This is a relatively geeky topic if you don&#8217;t understand what https:\/\/ and SSL are this post won&#8217;t make much sense&#8230;<\/p>\n<h1>Introduction<\/h1>\n<p>Does anyone know anything about the internals of https?\u00a0 I was wondering if there is any way to prove that a document downloaded over https really came from the site you claim that it came from.\u00a0 In other words, if you download a document over https, is there anyway for you to prove to a third party that it actually came from the web site you claim it came from? For example,\u00a0 let&#8217;s say that Alice downloads doc.pdf from <code>https:\/\/foobar.com\/doc.pdf.<\/code> https provides Alice assurance that doc.pdf really came from foobar.com (assuming that the certificate is legitimate).\u00a0 But assuming doc.pdf does not have a digital signature,\u00a0 if Alice simply sends the downloaded file to Bob, he has no proof that the file actually came from foobar.com. (Obviously, the ideal solution would be for the maintainer of foobar.com to digitially sign the pdf file. But few websites digitially sign the files they distribute and individual users often have no means of convincing a web site to do so.)\u00a0 My question is whether there is any way for Alice to prove to Bob that she really obtained the file from foobar.com.\u00a0 I thought that it might be possible for Alice to prove the file&#8217;s origin by sending some of the raw network traffic establishing the SSL connection along with the file.\u00a0 (I&#8217;m using a PDF file to simplify the example but presumably the same issues would apply to a web page.)<\/p>\n<h1>Use Cases<\/h1>\n<p><a href=\"http:\/\/pacer.psc.uscourts.gov\/\">PACER <\/a>is an online service used by the United States federal courts to provide online access to court records and documents.\u00a0 The documents on PACER are generally thought to be in the public domain but remain behind a pay wall.\u00a0\u00a0 Efforts such as\u00a0 the <a href=\"http:\/\/pacer.resource.org\/recycling.html\">PACER Recycling Project<\/a> and <a href=\"https:\/\/recapthelaw.org\">RECAP<\/a> allow users to upload PDF documents obtained from PACER to a central server where the documents can then be freely downloaded by others.\u00a0 However, while PACER uses SSL, it does not provide digitally signed PDF files.\u00a0 Thus users currently have no way to prove that the documents really came from PACER.<\/p>\n<p>Another use case, is as a replacement for web screen shots.\u00a0 Because web pages can be easily altered or taken down,\u00a0 screen shots are often offered as &#8220;proof&#8221; that a web page used to exist even if it has since been altered or removed.\u00a0 For example, this CNET<a href=\"http:\/\/news.cnet.com\/8301-13577_3-10296152-36.html\"> news story<\/a> describes how pranksters from 4chan retaliated against AT&amp;T for blocking their site by posting a fake report saying that AT&amp;T&#8217;s CEO died.\u00a0 The story includes this <a href=\"http:\/\/www.businessinsider.com\/~~\/f?id=4a6da59be29efc711abb8eea\">screen shot<\/a> of the pranked web page prior to its removal.\u00a0 Of course screen shots can be easily faked or altered using tools such as Photo Shop or just by saving and editing the html.\u00a0 Presumably web screen shots posted by CNET are relatively trustworthy, but what about screen shots posted by unknown users?<\/p>\n<h1>Ideal Solution<\/h1>\n<p>I envision a Firefox extension that would allow a user to easily create an archive bundle for an https: web page containing the page and SSL information proving its legitimacy.\u00a0 (Obviously this would need to work for single files as well as web pages.)\u00a0 This bundle would allow other users to view the web page of file as it existed and provide easily verifiable proof that the web page really came from the site in question.<\/p>\n<h1>My Questions for the SSL Knowledgable<\/h1>\n<p>Is this doable at all?<\/p>\n<p>Screen shots are trivial to fake, if this approach can&#8217;t provide perfect proof of the origin of a document how much more assurance would it give you than just a screen shot?<\/p>\n<p>Would releasing the raw https traffic also mean that Alice would be releasing her user name and password?<\/p>\n<p>A minor concern is that the fact that a web site hosted or displayed a particular page is slightly different from the web site signing a file.\u00a0 Furthermore, there may be issues with XSS vulnerabilities that allow attackers to make an https web site display arbitrary content.\u00a0 However, XSS attack are a problem now with screen shot being passed around and XSS altered pages could probably be detected by viewing the html source.<\/p>\n<h1>But Not All Web Sites Use SSL<\/h1>\n<p>It has <a href=\"http:\/\/cyber.law.harvard.edu\/interactive\/events\/luncheons\/2009\/05\/soghoian\">been<\/a> <a href=\"http:\/\/fscked.org\/projects\/cookiemonster\">repeatedly<\/a> <a href=\"http:\/\/erratasec.blogspot.com\/2008\/01\/more-sidejacking.html\">shown<\/a> that web 2.0 applications such as gmail and facebook cannot be used securely over an unencrypted connection.\u00a0 For example, hijacking the account of a facebook users on the same network is trivial. Perhaps I&#8217;m being overly optimistic but I believe once these vulnerabilities become more widely know and attack scripts\/ exploits become widely available web applications will move to SSL as the default or at least offer https as an option.\u00a0 (GMail already has an option to enable https though it is buried deeply within the settings.)<\/p>\n<h1>Please Comment<\/h1>\n<p>There you have it: my first real blog post.\u00a0 Please let me know what you think.<\/p>\n<h1><em><strong>Update<\/strong> December 13, 2009<\/em><\/h1>\n<p><em>Unfortunately, it appears that this won&#8217;t work.\u00a0 The basic problem is that SSL uses a shared key so the client could easily forge messages.\u00a0 (Initially, technically unsophisticated users might not be able to forge messages and sign them with the key but someone would probably develop an automated tool to do it.)\u00a0 I still hope that at some point a standardized way to show what a web page showed previously will emerge that&#8217;s harder to forge than screen shots.  Many thanks to <a href=\"http:\/\/paco.to\/\">Paco Hope<\/a> and his colleagues at <a href=\"http:\/\/cigital.com\">Cigital<\/a> for providing feed back on this. <\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This blog post is an idea that I&#8217;ve been kicking around for a while but haven&#8217;t had the time to research or implement.\u00a0 I&#8217;ve finally decided just to post it speculatively.\u00a0 I&#8217;m really hoping to get feed back from those &hellip; <a href=\"https:\/\/archive.blogs.harvard.edu\/dlarochelle\/2009\/08\/28\/using-ssl-t-prove-document-authenticiity\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2148,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[593,8684,260],"tags":[8685,13880,8686],"class_list":["post-10","post","type-post","status-publish","format-standard","hentry","category-security","category-speculative","category-tech","tag-geeky","tag-speculative","tag-ssl"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/archive.blogs.harvard.edu\/dlarochelle\/wp-json\/wp\/v2\/posts\/10","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/archive.blogs.harvard.edu\/dlarochelle\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/archive.blogs.harvard.edu\/dlarochelle\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/archive.blogs.harvard.edu\/dlarochelle\/wp-json\/wp\/v2\/users\/2148"}],"replies":[{"embeddable":true,"href":"https:\/\/archive.blogs.harvard.edu\/dlarochelle\/wp-json\/wp\/v2\/comments?post=10"}],"version-history":[{"count":40,"href":"https:\/\/archive.blogs.harvard.edu\/dlarochelle\/wp-json\/wp\/v2\/posts\/10\/revisions"}],"predecessor-version":[{"id":578,"href":"https:\/\/archive.blogs.harvard.edu\/dlarochelle\/wp-json\/wp\/v2\/posts\/10\/revisions\/578"}],"wp:attachment":[{"href":"https:\/\/archive.blogs.harvard.edu\/dlarochelle\/wp-json\/wp\/v2\/media?parent=10"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/archive.blogs.harvard.edu\/dlarochelle\/wp-json\/wp\/v2\/categories?post=10"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/archive.blogs.harvard.edu\/dlarochelle\/wp-json\/wp\/v2\/tags?post=10"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}