<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Benlog</title>
	<atom:link href="http://benlog.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://benlog.com</link>
	<description>security, privacy, transparency.</description>
	<lastBuildDate>Thu, 17 May 2012 17:09:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>in praise of hands-on expertise</title>
		<link>http://benlog.com/articles/2012/05/17/in-praise-of-hands-on-expertise/</link>
		<comments>http://benlog.com/articles/2012/05/17/in-praise-of-hands-on-expertise/#comments</comments>
		<pubDate>Thu, 17 May 2012 17:09:34 +0000</pubDate>
		<dc:creator>ben</dc:creator>
				<category><![CDATA[medical]]></category>
		<category><![CDATA[personal]]></category>

		<guid isPermaLink="false">http://benlog.com/?p=2193</guid>
		<description><![CDATA[(I don&#8217;t usually share personal stories in public fora, but in this case, and with my wife&#8217;s permission, I&#8217;m making an exception.) &#8220;Shoulder Dystocia,&#8221; said the Obstetrician, as we neared the end of my wife&#8217;s otherwise-routine delivery of our son &#8230; <a href="http://benlog.com/articles/2012/05/17/in-praise-of-hands-on-expertise/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><em>(I don&#8217;t usually share personal stories in public fora, but in this case, and with my wife&#8217;s permission, I&#8217;m making an exception.)</em></p>
<p>&#8220;Shoulder Dystocia,&#8221; said the Obstetrician, as we neared the end of my wife&#8217;s otherwise-routine delivery of our son last week. This meant nothing to me. My wife, on the other hand, freaked out. She&#8217;s a physician and had understood something I&#8217;d missed. My child&#8217;s head, which had only just emerged, began to visibly turn blue. I froze and, not for the first time in these medical situations, felt utterly useless.</p>
<p>What followed is best described as a highly coordinated dance. The Doctor started a set of rough and involved maneuvers, with stern orders to the nurse to apply pressure here, apply pressure there. The nurse pushed with one hand and grabbed the phone to call for help with the other. Within 30 seconds, before the additional help even arrived, a shoulder was out, one twist, and then the other. Our son cried and his color quickly turned pink. Cord clamped, scissors handed to me, I cut, doing my best not to shake from the adrenaline. The Pediatric team evaluated our son, and, 5 minutes later, he was in my wife&#8217;s arms. His left arm was visibly sore for a few hours. By end of day, though, the pediatrician was confident he had sustained no permanent damage.</p>
<p>So now, a few days later, I am beginning to understand. My son&#8217;s shoulder got stuck right after his head emerged. This happens in approximately 1% of births, though oftentimes the situation resolves itself. When it doesn&#8217;t, permanent nerve damage is a not-unlikely outcome, with reduced or even no use of the impacted arm. And, because the umbilical cord is compressed, the child cannot breathe. If my son hadn&#8217;t been delivered in the 5-10 minutes that followed, he could have suffered permanent brain damage or even died.</p>
<p>Instead, he is a perfectly happy 1-week old baby.</p>
<p>We&#8217;re so accustomed to things going well, we forget how quickly things can go wrong. We don&#8217;t often enough praise the folks in our society who have deep hands-on experience, with the training to react in a highly coordinated, rehearsed, scientifically proven manner in a matter of seconds. They&#8217;re the ones ensuring things go well. Most white-collar professionals, like myself, never need this kind of precise, automatic response. We see it in athletes, but we forget that doctors, pilots, soldiers, and a few others need it too. It&#8217;s a response so well learned it&#8217;s hard to imagine it could be anything but instinct. So we thank chance, fate, or some other mystical agent. We forget the role of these hands-on experts. We figure we can do without them.</p>
<p>Not so. In that one moment last week, decades of accumulated medical knowledge, analyzed by dozens of researchers poring over thousands of data points, condensed and taught to a team of doctors and nurses, rehearsed through years of training and ingrained through careful checklists, came together so that my son will never need to care that this ever happened. It&#8217;s awe-some, in the true sense of the word.</p>
]]></content:encoded>
			<wfw:commentRss>http://benlog.com/articles/2012/05/17/in-praise-of-hands-on-expertise/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>encryption is not gravy</title>
		<link>http://benlog.com/articles/2012/04/30/encryption-is-not-gravy/</link>
		<comments>http://benlog.com/articles/2012/04/30/encryption-is-not-gravy/#comments</comments>
		<pubDate>Mon, 30 Apr 2012 05:37:12 +0000</pubDate>
		<dc:creator>ben</dc:creator>
				<category><![CDATA[cryptorealism]]></category>
		<category><![CDATA[mozilla]]></category>

		<guid isPermaLink="false">http://benlog.com/?p=2143</guid>
		<description><![CDATA[When designing a secure service that stores user data, you might be temped to say &#8220;let&#8217;s make sure the data is encrypted.&#8221; That statement implies that you&#8217;re proposing adding goodness, without taking anything away. Something like &#8220;I&#8217;d like some of &#8230; <a href="http://benlog.com/articles/2012/04/30/encryption-is-not-gravy/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>When designing a secure service that stores user data, you might be temped to say &#8220;let&#8217;s make sure the data is encrypted.&#8221; That statement implies that you&#8217;re proposing adding goodness, without taking anything away. Something like &#8220;I&#8217;d like some of that delicious gravy on my roast turkey, please.&#8221; Clearly, turkey with gravy is strictly better than dry turkey. Who can possibly say no to gravy?</p>
<p>Unfortunately, encryption is not gravy. There are deep consequences to the product you&#8217;re building once you choose to encrypt data, and the consequences differ greatly depending on the key management mechanism you choose. I wrote about this in part in my previous crypto-realism post, <a href="http://benlog.com/articles/2011/12/21/encryption-is-mostly-not-magic/">encryption is not magic</a>:</p>
<blockquote><p>
For the most part, encryption isn’t magic. Encryption lets you manage secrets more securely, but if users are involved in the key management, that almost certainly comes at the expense of usability and features.
</p></blockquote>
<p>That last point bears repeating: if you design a system with encryption where users manage keys, you&#8217;re going to lose features. You want gravy on that turkey? Sorry, no stuffing for you. &#8220;What?&#8221; you say. But I want my stuffing <em>and</em> my gravy! I want to believe I can have it all!</p>
<p>I&#8217;ve been there, and I&#8217;ve made that mistake. A few times. Every fan of cryptography, everyone who&#8217;s ever glimpsed that awesomeness and beauty, wants to believe that they can have all their features and all their crypto. They want to believe so badly that, when the glaring missing features come to light, denial is often the only escape. I&#8217;ve done this in my work on voting and health-data systems. End-user crypto was appropriate, I thought, users would get it, I thought. It&#8217;s their vote, their health data! How much more important does it get? If users don&#8217;t care about crypto and accept some inconvenience in those cases, when will they ever care?</p>
<p>Exactly. <em>Users won&#8217;t accept inconvenience.</em> Because the inconveniences aren&#8217;t small. If users are left to manage crypto keys, that means their data disappears if they lose the key. This is a mathematical certainty that makes absolutely no sense to non-cryptographers. Even safe deposit boxes can be forced open if you lose your key. The most expensive cars have unlocking fallbacks. <em>There is nothing in the intuitive physical world that maps to the helplessness of losing your crypto key.</em></p>
<p>Now don&#8217;t get me wrong. You can still use crypto. The voting system I&#8217;ve proposed still does, and I&#8217;m not arguing it shouldn&#8217;t. I&#8217;m only saying that, whatever crypto you use, involving the user as an agent in the cryptographic protocol is bound result in significant usability limitations, often deal-breakers.</p>
<h4>so what are my options</h4>
<p>Broadly speaking, you have three:</p>
<ol>
<li> <b>full-strength, randomly generated, user-managed key</b>. This is the most secure setting. Access to the full server data gives the attacker no useful information. Unfortunately, it is also the most difficult to use. Enabling a new device requires coordination with an existing device. If users lose all of their devices, e.g. if they only have one device and it breaks, there&#8217;s no way to recover.</li>
<p></p>
<li> <b>password-derived key</b>. The data is encrypted with a key derived from the user&#8217;s password. This is not as secure as the previous setting, since most user passwords are not nearly as strong as full-strength crypto keys. However, as my colleague Brian Warner is <a href="https://wiki.mozilla.org/Identity/CryptoIdeas/01-PBKDF-scrypt">exploring</a>, it may be possible to still make it quite expensive to break into a single user&#8217;s dataset, and prohibitively expensive to go fishing for data across many user accounts. Usability is significantly increased: a user can set up a new device simply by typing in their password. However, the crypto conundrum remains: lose your password, lose your data.</li>
<p></p>
<li> <b>server-side security</b>. Users don&#8217;t manage keys, and servers technically have access to the user data. A number of techniques can be used to meaningfully restrict the chance of a leak (e.g. disk encryption or other type of encryption where the server holds the key somewhere.) Security against insider attackers is not nearly as high as with the two previous solutions. This is, of course, how almost every service on the Internet works today. It is the only model that maps to user intuition, where a user can forget their password, lose their devices, and still recover. Because that&#8217;s how the physical world works.</li>
</ol>
<h4>where Mozilla fits in</h4>
<p>We&#8217;re having important discussions about these issues right now. I gave a talk about these issues a few weeks ago:</p>
<p><iframe frameborder="0" width="640" height="360" name="vidly-frame" src="http://s.vid.ly/embeded.html?link=5x1u5r&#038;autoplay=false"><a target='_blank' href='http://vid.ly/5x1u5r'><img src='http://cf.cdn.vid.ly/5x1u5r/poster.jpg' /></a></iframe></p>
<p>Firefox Sync fits the first, most secure model, but suffers because it is <em>not the product that users think it is</em>. In particular, most users of Sync use it as backup. In practice, it&#8217;s not: lose your device, lose your data. It&#8217;s also impossible to set up a new device without coordinating with an existing device. We are looking at providing new services based on password-derived keys, so that users can set up a new device with just their password and, if they remember their password, recover from complete device failure.</p>
<p>There remains a problem if users lose their device <em>and</em> forget their password. How often might that happen? I fear too often to make this solution complete for all data types. We will probably have to solve this by providing different, configurable levels of security, with corresponding feature compromises.</p>
<p>The discussion is ongoing. We have to keep in mind that the dilemma is very real. End-to-End Encryption is not gravy. We cannot have it for free. The choice of encryption architecture is as much a product decision as it is a technical one.</p>
]]></content:encoded>
			<wfw:commentRss>http://benlog.com/articles/2012/04/30/encryption-is-not-gravy/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>cookies don&#8217;t track people. people track people.</title>
		<link>http://benlog.com/articles/2012/02/19/cookies-dont-track-people-people-track-people/</link>
		<comments>http://benlog.com/articles/2012/02/19/cookies-dont-track-people-people-track-people/#comments</comments>
		<pubDate>Mon, 20 Feb 2012 00:55:33 +0000</pubDate>
		<dc:creator>ben</dc:creator>
				<category><![CDATA[privacy]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://benlog.com/?p=2098</guid>
		<description><![CDATA[The news shows are in a tizzy: Google violated your privacy again [CBS, CNN] by circumventing Safari&#8217;s built-in tracking protection mechanism. It&#8217;s great to see a renewed public focus on privacy, but, in this case, I think this is the &#8230; <a href="http://benlog.com/articles/2012/02/19/cookies-dont-track-people-people-track-people/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The news shows are in a tizzy: Google violated your privacy again [<a href="http://www.cbsnews.com/8301-18563_162-57380653/google-under-fire-over-secretly-tracking-users/">CBS</a>, <a href="http://www.cnn.com/video/#/video/tech/2012/02/18/jkusa-google-tracking-unknowing-apple-users.cnn">CNN</a>] by circumventing Safari&#8217;s built-in tracking protection mechanism. It&#8217;s great to see a renewed public focus on privacy, but, in this case, I think this is the wrong problem to focus on and the wrong message to send.</p>
<h4>what happened exactly</h4>
<p>(Want a more detailed technical explanation? Read <a href="http://webpolicy.org/2012/02/17/safari-trackers/">Jonathan Mayer&#8217;s post</a>. He&#8217;s the guy who discovered the shenanigans in question.)</p>
<p>Cookies are bits of data with which web sites tag users, so that when users return, the site can recognize them and provide continuity of service. This is mostly good for users, who don&#8217;t want to re-identify themselves every time they visit their favorite social network or e-commerce site. Cookies work mostly with strong compartmentalization: if <tt>cnn.com</tt> tags you, your browser sends that tag back only to <tt>cnn.com</tt>. This is important because users would be surprised (not the good kind of surprise) if one site could tag them once and then cause them to uniquely identify themselves with the same identifier to all other sites across the Web.</p>
<p>Things get complicated when web sites embed content served by third parties, for example ads within a news site. Should this third-party content also be able to tag your browser? Should the tag be sent back to that third party when its content is loaded?</p>
<p>Different browsers do different things. Firefox toyed with the idea of not sending the tag back to third parties, but in beta-testing realized that this would break some features that users have come to depend upon, for example Facebook sharing widgets. Safari chose a fairly unique approach: they mostly disallow third parties from tagging users, though they do allow existing tags to be read, so that things like Facebook widgets can still work.</p>
<p>For some reason (I won&#8217;t speculate why, Google claims it&#8217;s to enable the +1 button), Google used a known technique that tricks Safari into accepting a third-party tag from Google.</p>
<h4>mechanism vs. intent</h4>
<p>So the reason this whole controversy bugs me is that we&#8217;re discussing web privacy based on specific mechanisms, a bit like discussing home privacy by regulating infrared cameras. Sure, an infrared camera can be used to violate my home privacy, but it can be used for many good things, and there are many <em>other</em> ways to invade my home privacy. Cookies, like all technical mechanisms, have both good and evil uses. And browsers don&#8217;t all behave the same way with respect to cookies and other web features, so it&#8217;s typical for developers to find workarounds that effectively give them &#8220;standard behavior&#8221; from all browsers. Sometimes these workarounds are truly meant to help the user accomplish what they want. Sometimes these workarounds are used to evil ends, e.g. to track people without their consent.</p>
<p>Again, I don&#8217;t know what Google&#8217;s intentions were. All I know is that we&#8217;re prosecuting the wrong thing: a technical mechanism instead of the an intent to track. Cookies don&#8217;t track people. People track people. We should be focusing on empowering users to express their preferences on tracking and ensuring web sites are required to comply.</p>
<h4>the tracking arms race</h4>
<p>If we focus on technical mechanisms to protect user privacy, then we&#8217;re dooming users to an un-winnable arms race. There are dozens of ways of tracking users other than classic cookies. Google used a work-around for Safari third-party cookies, but let&#8217;s say they hadn&#8217;t. Let&#8217;s say instead they&#8217;d used Flash cookies, or cache cookies, or device fingerprinting, or a slew of other mechanisms that browsers do not defend against, in large part because it&#8217;s really hard to defend against these tracking mechanisms without also breaking key Web features. Would Google then be in the clear?</p>
<p>I fear that that&#8217;s exactly what we&#8217;re implying when we focus the privacy discussion on mechanisms of tracking. The trackers will move on to the next mechanism, and the browsers will scram to try to defend against these mechanisms without every being able to catch up. <em>Blocking tracking at the technical level is, in my opinion, impossible.</em></p>
<h4>the solution: Do Not Track and More</h4>
<p>The beginning of a solution lies in the judo move that is <a href="http://donottrack.us/">Do Not Track</a>, an idea that came out of a collaboration between <a href="http://dubfire.net">Christopher Soghoian</a>, <a href="http://dankaminsky.com/">Dan Kaminsky</a>, and <a href="http://sidstamm.com/">Sid Stamm</a> (see the <a href="http://paranoia.dubfire.net/2011/01/history-of-do-not-track-header.html">full history of DNT</a>). Do Not Track was first implemented in Firefox last year, and soon thereafter in IE, Opera, and Safari. It&#8217;s being <a href="http://www.w3.org/2011/tracking-protection/">standardized now at the W3C</a>. It simply lets the user express a preference for not being tracked. Is it a strong technical measure? No. It does nothing to directly prevent tracking. Instead, it lets the user express a preference. And, as support for it grows, it will become incredibly difficult for sites to justify tracking behavior, <em>regardless of the mechanism</em>, when the user has clearly expressed and communicated this choice.</p>
<p>We&#8217;ll need more than Do Not Track in the future. But it&#8217;s the right kind of battle. It doesn&#8217;t care about cookies or fingerprinting or who-knows-what.</p>
<p>If you want to get upset at Google, ask why they don&#8217;t provide Do Not Track support in Chrome. Ask why they don&#8217;t respect the Do Not Track flag on Google web properties when they see users waiving it. These are fights worth having. But fighting over cookies? That&#8217;s so last decade.</p>
<p><b>UPDATE</b>: corrected origin credit for DNT header.</p>
]]></content:encoded>
			<wfw:commentRss>http://benlog.com/articles/2012/02/19/cookies-dont-track-people-people-track-people/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>it&#8217;s the randomness, stupid</title>
		<link>http://benlog.com/articles/2012/02/16/its-the-randomness-stupid/</link>
		<comments>http://benlog.com/articles/2012/02/16/its-the-randomness-stupid/#comments</comments>
		<pubDate>Thu, 16 Feb 2012 23:06:51 +0000</pubDate>
		<dc:creator>ben</dc:creator>
				<category><![CDATA[crypto]]></category>

		<guid isPermaLink="false">http://benlog.com/?p=2072</guid>
		<description><![CDATA[The New York Times is reporting that a flaw has been found in RSA. The original paper is here, and it looks like a second team was about to release similar information, so they&#8217;ve posted an explanatory blog post, which &#8230; <a href="http://benlog.com/articles/2012/02/16/its-the-randomness-stupid/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The New York Times is <a href="https://www.nytimes.com/2012/02/15/technology/researchers-find-flaw-in-an-online-encryption-method.html?_r=1">reporting that a flaw has been found in RSA</a>. The original paper is <a href="http://eprint.iacr.org/2012/064">here</a>, and it looks like a second team was about to release similar information, so they&#8217;ve posted <a href="https://freedom-to-tinker.com/blog/nadiah/new-research-theres-no-need-panic-over-factorable-keys-just-mind-your-ps-and-qs">an explanatory blog post</a>, which I recommend. A number of people are understandably concerned.</p>
<p>Since I couldn&#8217;t find a simple explanation of what happened, I figured I would write one up.</p>
<h4>public-key encryption</h4>
<p>Public-key encryption is fascinating. You generate a keypair composed of a public and a private key. You post the public key on your web site, and anyone can use it to encrypt data destined for you. Decryption requires the private key, and you keep it to yourself. Anyone can encrypt; only you can decrypt. This is how your web browser secures the communication channel with your bank: the bank publishes its public key, and your browser encrypts data against that public key before sending it to the bank. An eavesdropper knows the bank&#8217;s public key, but because they don&#8217;t have the private key, they can&#8217;t see the data you&#8217;re sending.</p>
<h4>how do I get me one of them keypairs?</h4>
<p>Cryptographic keys are just numbers with special properties. In a public-key encryption system, you typically pick one of these special big numbers randomly, you make that your private key, and from it you compute the public key. It&#8217;s easy to compute the public key from the private key. However, given the public key, it&#8217;s really, really hard to recover the private key. We don&#8217;t know how to do it without spending millions of years of computation for your average public key. That&#8217;s right, a single user&#8217;s public key, attacked with vast computational power, will not yield its corresponding private key. But if you have the private key, you can get the public key in a few milliseconds. That&#8217;s the magic, except it&#8217;s not magic, it&#8217;s math.</p>
<h4>what do you mean by &#8220;randomly&#8221;?</h4>
<p>If you barricade your front door, a thief will probably come in via the window. And so it is with public-key encryption. Attacking a public key directly in order to somehow extract its private counterpart is really, really hard. But maybe it&#8217;s not so hard to guess how that private key was selected in the first place. Remember, you have to pick the private key <em>randomly</em>. And, as it turns out, computers are really bad at picking numbers at random (humans are only marginally better.) So, if you&#8217;re not careful about how you picked that private key, an attacker might simply reconstruct how you picked it.</p>
<h4>lots of people picking lots of keys</h4>
<p>Cryptography is everywhere now, so there are millions of public keys made available on the Web. Just go to <tt>https://amazon.com</tt>, and Amazon will tell you its public key. If a bunch of folks use a not-so-random way to pick their private key, you might expect funny coincidences to happen. Alice in San Francisco and Bob in New York might independently end up with the same private key simply because they both used a similar process for selecting this private key from all possible values. If that happens, they would also have the same public key, and you would be able to easily discover this: just compare their public keys! The researchers found that this happens every now and then: they found a couple dozen public keys that were identical to at least one other public key. In and of itself, that&#8217;s kind of fascinating. But it&#8217;s not really shocking, right? Clearly, if people have the exact same public key, then they picked their private key poorly.</p>
<h4>the funny thing about RSA</h4>
<p>The funny thing about RSA, the most common approach to public-key encryption, is that its private key is composed of <em>two</em> numbers, both prime (which means they are divisible only by themselves and 1, for example: 11, 17, 41,&#8230;). The public key is then the product of those two primes. As it turns out, it&#8217;s really easy for computers to multiply numbers, even really big ones. But if you&#8217;re only given the product of two primes, it&#8217;s incredibly hard to recover those two factors. For example, take two primes each 200 digits long, multiply them together to get a 400-digit long number, and give that to a friend. Given all the computing power in the world for many lifetimes, your friend will not be able to recover those two prime numbers you initially picked.</p>
<p>Now, there are lots and lots of prime numbers. So many, in fact, that if you and I randomly select a 200-digit prime number, there is no conceivable chance we&#8217;d pick the same one. But, what if we don&#8217;t do it randomly? What if we both start out with 1 followed by 199 0s, and work our way up until we find the first prime number? Then of course we&#8217;d end up with the same one. Now maybe we&#8217;re not so stupid, and we have a clever way of picking a much more complex starting point, and <em>then</em> working our way up to find the next prime. Well, let&#8217;s hope we don&#8217;t both use the same clever method, because no matter how clever it is, if we both use the same method, we&#8217;re going to end up with the same prime.</p>
<p>So, back to the funny thing about RSA: because the private key is made up of <em>two</em> prime numbers, if people don&#8217;t choose those prime numbers randomly, then two different people might end up with <em>one</em> prime number in common, but not the other. So their public keys won&#8217;t be exactly the same: one will be <tt>p1 x p2</tt>, and the other will be <tt>p1 x p3</tt>. So it won&#8217;t be immediately obvious that we used poor randomness.</p>
<p>And now the final piece of fun math. It&#8217;s really hard to factor numbers, and it&#8217;s really easy to multiply them. Another thing that&#8217;s really easy is to find common factors between two numbers. So if I have two RSA public keys that share a prime factor, it&#8217;s really easy to determine that common prime factor. And then, with that prime factor, it&#8217;s easy to discover the other prime factor in each of the two keys. So, <em>one RSA public key is very hard to break, but two RSA public keys that share a prime factor are trivial to break together</em>.</p>
<p>So that&#8217;s what the researchers did. They looked at every pair of RSA public keys and found that 0.2% of them share a prime factor with another. Given that, they were able to fully factor those 0.2% of keys, and thus completely break their security.</p>
<p>This really shouldn&#8217;t be that much more shocking than the case where users have the exact same public key. It&#8217;s just that, with RSA, there is another way in which poor randomness could result in weak keys, without those keys being exactly identical. It&#8217;s fascinating, and it&#8217;s a great study, but the root cause is no different: it&#8217;s all about the randomness.</p>
<h4>so other approaches are better?</h4>
<p>No. This attack has nothing to do with RSA. It has everything to do with randomness. No matter the algorithm you pick for public-key encryption, you have to find a really good source of randomness to pick your private key. The cute thing here is that weak randomness was revealed in a new surprising way, because RSA public keys can share a prime factor without being immediately obviously identical. That&#8217;s cool, but it&#8217;s not a weakness of RSA.</p>
<h4>how do I fix my code?</h4>
<p>Make sure you&#8217;re using a secure random number generator to generate your keys. Make sure you&#8217;ve seeded it with good randomness, using operating-system calls if possible. And mostly, don&#8217;t panic. There&#8217;s no new attack here, only a very interesting revelation, using a very interesting trick, that a lot of people don&#8217;t pay sufficient attention to randomness when generating crypto keys.</p>
<p>We knew that. Now we <em>really</em> know it.</p>
]]></content:encoded>
			<wfw:commentRss>http://benlog.com/articles/2012/02/16/its-the-randomness-stupid/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>a simpler, webbier approach to Web Intents (or Activities)</title>
		<link>http://benlog.com/articles/2012/02/09/a-simpler-webbier-approach-to-web-intents-or-activities/</link>
		<comments>http://benlog.com/articles/2012/02/09/a-simpler-webbier-approach-to-web-intents-or-activities/#comments</comments>
		<pubDate>Thu, 09 Feb 2012 15:14:43 +0000</pubDate>
		<dc:creator>ben</dc:creator>
				<category><![CDATA[mozilla]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://benlog.com/?p=2052</guid>
		<description><![CDATA[A few months ago, Mike Hanson and I started meeting with James, Paul, Greg, and others on the Google Chrome team. We had a common goal: how might web developers build applications that talk to each other in a way &#8230; <a href="http://benlog.com/articles/2012/02/09/a-simpler-webbier-approach-to-web-intents-or-activities/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A few months ago, <a href="http://www.open-mike.org/">Mike Hanson</a> and I started meeting with James, Paul, Greg, and others on the Google Chrome team. We had a common goal: <em>how might web developers build applications that talk to each other in a way that the user, not the site, decides which application to use?</em> For example, how might a major news site provide a &#8220;share&#8221; button that connects to the user&#8217;s preferred sharing mechanism? Not everyone uses the same top-three social networks, yet users are constantly forced to search for their preferred service within a set of publisher-chosen buttons. That leads to undue centralization and significantly undercuts innovation and user choice. How incredibly inelegant!</p>
<p>We figured that, with a bit more browser smarts, we could do better.</p>
<h4>to the design studio!</h4>
<p>Mike and I proposed <b>Web Activities</b>, and put together <a href="https://mozillalabs.com/blog/2011/07/web-apps-update-experiments-in-web-activities-app-discovery/">a screencast</a>.</p>
<p>The Google team proposed <b>Web Intents</b>, and put together a <a href="http://webintents.org/">far more complete proposal</a>.</p>
<p>Techcrunch <a href="http://techcrunch.com/2011/07/08/mozilla-labs-launches-web-activities-experiment-lets-web-apps-talk-to-each-other/">covered our collaboration</a>.</p>
<p>While all this was happening, the always amazing Tyler Close, of <a href="http://web-send.org/">Web Introducer fame</a> and also from Google, was whispering in our ears &#8220;Guys, I think you&#8217;re doing it wrong. It&#8217;s over-engineered. We can do simpler.&#8221; We all ignored him. I think that was a mistake. Tyler was right. Web Activities was over-engineered. And, I fear, Web Intents is too.</p>
<p>(<a href="http://tantek.com/2011/220/b1/web-actions-a-new-building-block">Tantek</a> also deserves credit for pointing out that <a href="http://tantek.com/2011/220/b1/web-actions-a-new-building-block">we can do simpler</a>.)</p>
<h4>the glaring inconsistency</h4>
<p>Web applications already have a mechanism for communicating with other web applications loaded within the same browser: <a href="https://developer.mozilla.org/en/DOM/window.postMessage"><tt>postMessage</tt></a>. It isn&#8217;t perfect, but it works, and it is flexible enough that much innovation has been built on it. Google, Microsoft, Facebook all use it, oftentimes for embedding widgets within other pages, each in a very different way. At Mozilla, we use <tt>postMessage</tt> extensively for <a href="https://browserid.org">BrowserID</a>, and we&#8217;ve built nice abstractions on top of it, like <a href="https://github.com/lloyd/winchan">winchan</a> to consistently build a message channel to a new popup window (including all IE workarounds).</p>
<p><tt>postMessage</tt> is a very simple, very Webby, and very generative: it&#8217;s easy to build new ideas on top of it. It doesn&#8217;t care about mime types, dialogs, callbacks, etc. It&#8217;s just a simple, authenticated message channel. The only reason <tt>postMessage</tt> isn&#8217;t enough to do what we need is that the sender and receiver are, for the most part, tightly coupled. The sender has to specify its receiver, which means the user can&#8217;t easily step in and substitute the endpoint of her choice. <tt>postMessage</tt> tightly couples the sender and receiver of the channel. We&#8217;d like a loose coupling, where the user gets to mix and match senders and receivers.</p>
<p>So wait, if that&#8217;s the only gap, then why are we proposing a completely different approach to cross-application messaging? Why should tight and loose coupling of messaging channels be implemented in completely different ways? Given that the <tt>postMessage</tt> abstraction has been so successful and useful, the &#8220;right&#8221; way to move forward is to tweak it, minimally, not to redesign a different stack.</p>
<h4>a minimalist way forward</h4>
<p>A minimalist way forward is to use <tt>postMessage</tt> as is, and to provide only the bits necessary to enable loose coupling.</p>
<p>Here, Tyler comes to the rescue again. He proposed, in one of the last chats we had with Google, using custom protocol handlers as the target of <tt>postMessage</tt> channels. So, when a major news site wants to share an article, rather than postMessage&#8217;ing (or linking) to <tt>http://twitter.com/</tt>, it can use the one-indirection-away URL <tt>share://...</tt>. The browser can then jump in and substitute <em>the user&#8217;s preferred implementation</em> of a sharing provider at that custom protocol handler. Everything else, linking or communicating via <tt>postMessage</tt>, is then the same.The only difference is, there&#8217;s one level of indirection to give the user a chance to step in and say &#8220;that service, please.&#8221;</p>
<p>What&#8217;s even more interesting is that we already have basic mechanisms for sites to register themselves as custom protocol handlers: <a href="https://developer.mozilla.org/en/DOM/navigator.registerProtocolHandler"><tt>registerProtocolHandler</tt></a>. The current mechanisms aren&#8217;t quite good enough yet, but the tweaks we would need are far simpler than building a whole new messaging stack. Mozilla&#8217;s own Austin King has <a href="https://github.com/mozilla/repotheweb">prototyped</a> what some of these tweaks might look like using a JavaScript shim, and the results are surprisingly useful with only minor tweaks.</p>
<h4>another minimalist approach</h4>
<p>There&#8217;s also <a href="http://lists.w3.org/Archives/Public/public-webapps/2011JulSep/1509.html">Ian Hickson&#8217;s proposal</a>, which is a little bit different than using protocol handlers and has some nice properties. It&#8217;s quite similar to Tyler&#8217;s proposal in one key way: <em>do the smallest amount of work to set up a message channel, and get out of the way</em>. Mark Hammond has <a href="https://github.com/mhammond/hixtents">prototyped</a> Ian&#8217;s proposal, and it looks like it can be nicely shimmed in pure JavaScript (with just one tweak to the API that&#8217;s probably worth considering even for the native implementation.) I like this proposal, too, and I wonder if it could be made to work with custom protocol handlers, which have a nice URL-based architecture.</p>
<h4>so now what?</h4>
<p>I propose that we stop for a second on the Web Intents discussion and ask ourselves: maybe we&#8217;ve been over-engineering this. Maybe we don&#8217;t need mime types and new HTML elements and new DOM properties, etc. Maybe there&#8217;s a much easier, good-enough solution, based on proven technology, with only minor tweaks to well-understood code paths. It won&#8217;t be perfect, we&#8217;ll probably need some JS libraries to make things more convenient for developers, but <em>that&#8217;s okay</em>. That&#8217;s better for the Web. Keep the platform simple, leave the real innovation to the edges.</p>
<p>I believe Web Intents, as currently proposed, are over-engineered. So are Web Activities. But it&#8217;s not too late to correct course. Let&#8217;s figure out the simplest way to involve the user in choosing an application, set up a message channel, and get out of the way.</p>
]]></content:encoded>
			<wfw:commentRss>http://benlog.com/articles/2012/02/09/a-simpler-webbier-approach-to-web-intents-or-activities/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>encryption is (mostly) not magic</title>
		<link>http://benlog.com/articles/2011/12/21/encryption-is-mostly-not-magic/</link>
		<comments>http://benlog.com/articles/2011/12/21/encryption-is-mostly-not-magic/#comments</comments>
		<pubDate>Wed, 21 Dec 2011 20:17:08 +0000</pubDate>
		<dc:creator>ben</dc:creator>
				<category><![CDATA[crypto]]></category>
		<category><![CDATA[mozilla]]></category>
		<category><![CDATA[privacy]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://benlog.com/?p=1878</guid>
		<description><![CDATA[A few months ago, Sony&#8217;s Playstation Network got hacked. Millions of accounts were breached, leaking physical addresses and passwords. Sony admitted that their data was &#8220;not encrypted.&#8221; Around the same time, researchers discovered that Dropbox stores user files &#8220;unencrypted.&#8221; Dozens &#8230; <a href="http://benlog.com/articles/2011/12/21/encryption-is-mostly-not-magic/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A few months ago, <a href="http://en.wikipedia.org/wiki/PlayStation_Network_outage">Sony&#8217;s Playstation Network got hacked</a>. Millions of accounts were breached, leaking physical addresses and passwords. Sony admitted that their data was &#8220;not encrypted.&#8221;</p>
<p>Around the same time, researchers discovered that <a href="http://en.wikipedia.org/wiki/Dropbox_%28service%29#Criticism">Dropbox stores user files &#8220;unencrypted.&#8221;</a> Dozens (hundreds?) closed their accounts in protest. They&#8217;re my confidential files, they cried, why couldn&#8217;t you at least encrypt them?</p>
<p>Many, including some quite tech-savvy folks, were quick to indicate that it would have been so easy to encrypt the data. Not encrypting the data proved Sony and Dropbox&#8217;s incompetence, they said.</p>
<p>In my opinion, it&#8217;s not quite that simple.</p>
<p>Encryption is easy, it&#8217;s true. You can download code that implements military-grade encryption in any programming language in a matter of seconds. So why can&#8217;t companies just encrypt the data they host and protect us from hackers?</p>
<p>The core problem is that, to be consumable by human users, data has to be decrypted. So the decryption key has to live somewhere between the data-store and the user&#8217;s eyeballs. For security purposes, you&#8217;d like the decryption key to be very far from the data-store and very close to the user&#8217;s eyeballs. Heck you&#8217;d like the decryption key to be *inside* the user&#8217;s brain. That&#8217;s not (yet) possible. And, in fact, in most cases, it isn&#8217;t even practical to have the key all that far from the data-store.</p>
<h4>encryption relocates the problem</h4>
<p>Sony needs to be able to charge your credit card, which requires your billing address. They probably need to do that whether or not you&#8217;re online, since you&#8217;re not likely to appreciate being involved in your monthly renewal, each and every month. So, even if they encrypt your credit card number and address, they also need to store the decryption key somewhere on their servers. And since they probably want to serve you an &#8220;update your account&#8221; page with address pre-filled, that decryption key has to be available to decrypt the data as soon as you click &#8220;update my account.&#8221; So, if Sony&#8217;s web servers need to be able to decrypt your data, and hackers break into Sony&#8217;s servers, there&#8217;s only so much protection encryption provides.</p>
<p>Meanwhile, Dropbox wants to give you access to your files everywhere. Maybe they could keep your files encrypted on their servers, with encryption keys stored only on your desktop machine? Yes&#8230; until you want to access your files over the Web using a friend&#8217;s computer. And what if you want to share a file with a friend while they&#8217;re not online? Somehow you have to send them the decryption key. Dropbox must now ask its users to manage the sharing of these decryption keys (good luck explaining that to them), or must hold on to the decryption key and manage who gets the key&#8230;. which means storing the decryption keys on their servers. If you walk down the usability path far enough – in fact not all that far – it becomes clear that Dropbox probably needs to store the decryption key not too far from the encrypted files themselves. Encryption can&#8217;t protect you once you actually mean to decrypt the data.</p>
<p>The features users need often dictate where the decryption key is stored. The more useful the product, the closer the decryption key has to be to the encrypted data. Don&#8217;t think of encryption as a magic shield that miraculously distinguishes between good and bad guys. Instead, think of encryption as a mechanism for shrinking the size of the secret (one small encryption key can secure gigabytes of data), thus allowing the easy relocation of the secret to another location. That&#8217;s still quite useful, but it&#8217;s not nearly as magical as many imply it to be.</p>
<h4>what about Firefox Sync, Apple TimeMachine, SpiderOak, Helios, etc.</h4>
<p>But but but, you might be thinking, there <em>are</em> systems that store encrypted data and don&#8217;t store the decryption key. <a href="http://www.mozilla.org/en-US/mobile/sync/">Firefox Sync</a>. Apple&#8217;s <a href="http://www.apple.com/timecapsule/">TimeMachine backup system</a>. The <a href="http://spideroak.com">SpiderOak</a> online backup system. Heck, even my own <a href="http://heliosvoting.org">Helios Voting System</a> encrypts user votes in the browser with no decryption keys stored anywhere except the trustees&#8217; own machines.</p>
<p>It&#8217;s true, in some very specific cases, you can build systems where the decryption key is stored only on a user&#8217;s desktop machine. Sometimes, you can even build a system where the key is stored nowhere durably; instead it is derived on the fly from the user&#8217;s password, used to encrypt/decrypt, then forgotten.</p>
<p>But all of these systems have significant usability downsides (yes, even my voting system). If you only have one machine connected to Firefox Sync, and you lose it, you cannot get your bookmarks and web history back. If you forget your Time Machine or SpiderOak password, and your main hard drive crashes, you cannot recover your data from backup. If you lose your Helios Voting decryption key, you cannot tally your election.</p>
<p>And when I say &#8220;you cannot get your data back,&#8221; I mean you would need a mathematical breakthrough of significant proportions to get your data back. It&#8217;s not happening. Your data is lost. Keep in mind: that&#8217;s the whole point of not storing the decryption key. It&#8217;s not a bug, it&#8217;s a feature.</p>
<h4>and then there&#8217;s sharing</h4>
<p>I alluded to this issue in the Dropbox description above: what happens when users want to share data with others? If the servers don&#8217;t have the decryption key, that means users have to pass the decryption key to one another. Maybe you&#8217;re thinking you can use public-key encryption, where each user has a keypair, publishes the public encryption key, and keeps secret the private decryption key? Now we&#8217;re back to &#8220;you can&#8217;t get your data back&#8221; if the user loses their private key.</p>
<p>And what about features like Facebook&#8217;s newsfeed, where servers process, massage, aggregate, and filter data for users before they even see it? If the server can&#8217;t decrypt the data, then how can it help you process the data before you see it?</p>
<p>To be clear: if your web site has social features, it&#8217;s very unlikely you can successfully push the decryption keys down to the user. You&#8217;re going to need to read the data on your servers. And if your servers need to read the data, then a hacker who breaks into the servers can read the data, too.</p>
<h4>so the cryptographer is telling me that encryption is useless?</h4>
<p>No, far from it. I&#8217;m only saying that encryption with end-user-controlled keys has far fewer applications than most people think. Those applications need to be well-scoped, and they have to accompanied by big bad disclaimers about what happens when you lose your key.</p>
<p>That said, encryption as a means of partitioning power and access on the server-side remains a very powerful tool. If you have to store credit card numbers, it&#8217;s best if you build a subsystem whose entire role is to store credit-card numbers encrypted, and process transactions from other parts of your system. If your entire system is compromised, then you&#8217;re no better off than if you hadn&#8217;t taken those precautions. But, if only part of your system is compromised, encryption may well stop an attacker from gaining access to the most sensitive parts of the system.</p>
<p>You can take this encryption-as-access-control idea very far. An MIT team just <a href="http://css.csail.mit.edu/cryptdb/">published CryptDB</a>, a modified relational database that uses interesting encryption techniques to strongly enforce access control. Note that, if you have the password to log into the database, this encryption isn&#8217;t going to hide the data from you: the decryption key is on the server. Still, it&#8217;s a very good defense-in-depth approach.</p>
<h4>what about this fully homomorphic encryption thing?</h4>
<p>OK, so I lied a little bit when I talked about pre-processing data. There is a kind of encryption, called homomorphic encryption, that lets you perform operations on data while it remains encrypted. The last few years have seen epic progress in this field, and it&#8217;s quite exciting&#8230;. for a cryptographer. These techniques remain extremely impractical for most use cases today, with an overhead factor in the trillions, both for storage and computation time. And, even when they do become more practical, the central decryption key problem remains: forcing users to manage decryption keys is, for the most part, a usability nightmare.</p>
<p>That said, I must admit: homomorphic encryption <em>is</em> actually almost like magic.</p>
<h4>the special case of passwords</h4>
<p>Passwords are special because, once stored, you never need to read them back out, you only need to check if a password typed by a user matches the one stored on the server. That&#8217;s very different than a credit-card number, which does need to be read after it&#8217;s stored so the card can be charged every month. So for passwords, we have special techniques. It&#8217;s not encryption, because encryption is reversible, and the whole point is that we&#8217;d like the system to strongly disallow extraction of user passwords from the data-store. The special tool is a one-way function, such as <tt>bcrypt</tt>. Take the password, process it using the one-way function, and store only the output. The one-way function is built to be difficult to reverse: you have to try a password to see if it matches. That&#8217;s pretty cool stuff, but really it only applies to passwords.</p>
<p>So, if you&#8217;re storing passwords, you should absolutely be passing them through a one-way function. You could say you&#8217;re &#8220;hashing&#8221; them, that&#8217;s close enough. In fact you probably want to say you&#8217;re salting and hashing them. But whatever you do, you&#8217;re not &#8220;encrypting&#8221; your passwords. That&#8217;s just silly.</p>
<h4>encryption is not a magic bullet</h4>
<p>For the most part, encryption isn&#8217;t magic. Encryption lets you manage secrets more securely, but if users are involved in the key management, that almost certainly comes at the expense of usability and features. Web services should strongly consider encryption where possible to more strictly manage their internal access controls. But think carefully before embarking on a design that forces users to manage their keys. In many cases, users simply don&#8217;t understand that losing the key means losing the data. As my colleague Umesh Shankar says, if you design a car lock so secure that locking yourself out means crushing the car and buying a new one, you&#8217;re probably doing it wrong.</p>
]]></content:encoded>
			<wfw:commentRss>http://benlog.com/articles/2011/12/21/encryption-is-mostly-not-magic/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>an ode to lessig&#8217;s optimism, taking on gigantic challenges&#8230; and a quibble</title>
		<link>http://benlog.com/articles/2011/10/26/an-ode-to-lessigs-optimism-taking-on-gigantic-challenges-and-a-quibble/</link>
		<comments>http://benlog.com/articles/2011/10/26/an-ode-to-lessigs-optimism-taking-on-gigantic-challenges-and-a-quibble/#comments</comments>
		<pubDate>Wed, 26 Oct 2011 05:50:07 +0000</pubDate>
		<dc:creator>ben</dc:creator>
				<category><![CDATA[policy]]></category>

		<guid isPermaLink="false">http://benlog.com/?p=1836</guid>
		<description><![CDATA[Last night, I went to see Lessig pitch his latest book, Republic, Lost. His latest spiel is fantastic, fine-tuned, gripping, thrilling, inspiring. I&#8217;ve been an avid fan of Lessigian story-telling for 13 years now. The way he sets up his &#8230; <a href="http://benlog.com/articles/2011/10/26/an-ode-to-lessigs-optimism-taking-on-gigantic-challenges-and-a-quibble/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Last night, I went to see <a href="http://lessig.org">Lessig</a> pitch his latest book, <a href="http://republic.lessig.org">Republic, Lost</a>. His latest spiel is fantastic, fine-tuned, gripping, thrilling, inspiring. I&#8217;ve been an avid fan of Lessigian story-telling for 13 years now. The way he sets up his argument, the way he goes far beyond the obvious, far beyond the quick fix, and the way he absolutely destroys any shred of doubt that may remain about his thesis. I saw him giving one of his first &#8220;Code&#8221; lectures at Harvard in 1998. In 2002, I waited in line at the Supreme Court and got to see the last five minutes of his argument. I saw him in the TV studio debating Jack Valenti. I was at the Creative Commons launch in 2003. I saw his first Corruption lecture at Stanford in 2008. It just doesn&#8217;t get old.</p>
<p>The central thing I deeply admire about Lessig is that he takes on gigantic battles with care and determination. He&#8217;s not deluded about his chances, but he fights anyways. He looks for, and finds, incredibly aggressive wins. Copyright reform against the Disneys of the world didn&#8217;t work, but Creative Commons is genuinely affecting how we share. The corruption of the political process is an impossible challenge, yet Lessig sees a path, and I believe his is the the most likely path to success. I don&#8217;t yet know how Lessig will find the equivalent of the Creative-Commons-win in this much larger battle. But I know he&#8217;s thinking about it, and I believe that, in time, he will move the needle, significantly. </p>
<p>That kind of &#8220;crazy&#8221; optimism is deeply inspiring, because it is, indeed, the only way to change the world. Time is too precious not to focus on the big, gigantic, mind-blowing battles. Lessig reminds me of that every time I attend one of his talks.</p>
<p>So, a quibble. Lessig brought up one argument I&#8217;ve seen him make before: because vaccine policy is influenced by experts who may have received compensation from the pharmaceutical industry, people may lose trust in vaccine policy. Now let&#8217;s be clear: Lessig is <em>not</em> saying that vaccines are unsafe. He&#8217;s saying that, because some vaccine experts do not appear to be fully unbiased, it is understandable that people lose trust in vaccine policy.</p>
<p>I disagree, and I think it weakens Lessig&#8217;s argument to make this connection. I&#8217;d like to see <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Paul_Offit">Paul Offit</a> and his peers deciding our vaccine policy (in a public forum of course), even though he&#8217;s getting rich from his amazing Rotavirus vaccine. Checks and balances in areas that require deep expertise cannot be achieved by banning from advisory boards all experts with a potential conflict of interest. In fact, that&#8217;s a recipe for disaster by way of mediocrity. We have other checks and balances for this. We can require peer-reviewed publications. We can fund counter-studies. We can let the truth rise to the top via competition. This country&#8217;s national vaccine policy is something to be proud of.</p>
<p>There is, however, a subtle but serious corruption in the medical world that should make it into Lessig&#8217;s slideshow: pharmaceutical reps routinely treat physicians to dinners, trips, etc. They leave free drug samples, they leave pens and paper pads with drug logos prominently featured, they suggest that new drugs are better than old tried-and-true drugs, and sometimes they very subtly suggest off-label uses. Drug companies receive prescription records for individual physicians: they know where they&#8217;re having an impact and can calculate very clear Return On Investment. The result: Vioxx. Physicians aren&#8217;t evil, but they are human. The grey areas in medicine are large and common, providing fertile ground for skilled influencing.</p>
<p><em>That</em> needs to stop: where vaccine policy is a mostly public forum with competing ideas, there isn&#8217;t any oversight or counter-balance to drug-rep influence. We can change this. Doctors could be required to provide to all patients, alongside the insane HIPAA disclosure form, a funding disclosure form of all compensation received from drug reps. That disclosure form alone might make doctors think twice before prescribing a drug, and drug reps before paying for dinner. And institutions should follow the path blazed by Mass General, banning their physicians from accepting gifts and banning pharmaceutical reps from physician offices.</p>
]]></content:encoded>
			<wfw:commentRss>http://benlog.com/articles/2011/10/26/an-ode-to-lessigs-optimism-taking-on-gigantic-challenges-and-a-quibble/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>BrowserID and me</title>
		<link>http://benlog.com/articles/2011/09/21/browserid-and-me/</link>
		<comments>http://benlog.com/articles/2011/09/21/browserid-and-me/#comments</comments>
		<pubDate>Wed, 21 Sep 2011 22:27:54 +0000</pubDate>
		<dc:creator>ben</dc:creator>
				<category><![CDATA[identity]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://benlog.com/?p=1769</guid>
		<description><![CDATA[A few weeks ago, I became Tech Lead on Identity and User Data at Mozilla. This is an awesome and challenging responsibility, and I&#8217;ve been busy. When I took on this new responsibility, BrowserID was already well under way, so &#8230; <a href="http://benlog.com/articles/2011/09/21/browserid-and-me/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A few weeks ago, I became Tech Lead on Identity and User Data at Mozilla. This is an awesome and challenging responsibility, and I&#8217;ve been busy. When I took on this new responsibility, <a href="https://browserid.org">BrowserID</a> was already well under way, so we were able to launch it in my second week on the project (early July). It&#8217;s been a very fun ride.</p>
<p>Here&#8217;s the BrowserID demo at the Mozilla All-Hands last week:</p>
<p><iframe width="640" height="360" src="http://www.youtube-nocookie.com/embed/6x45Nt1fOMM" frameborder="0" allowfullscreen></iframe></p>
<p>Given my prior work on email-based authentication (<a href="http://assets.adida.net/research/w2sp2008-emid.pdf">EmID</a>, <a href="http://assets.adida.net/research/lightweight-signatures-for-email.pdf">Lightweight Email Signatures</a>, <a href="http://assets.adida.net/research/beamauth-ccs2007.pdf">BeamAuth</a>), you might think BrowserID was my brainchild. In fact, it really wasn&#8217;t. And, in a testament to the shrinking impact of academic publication venues, none of the BrowserID team had ever heard of my work on email-based authentication before I arrived at Mozila, even though Mozilla folks are quite well versed in the state of the art. But who cares: when I found out about the ongoing work and how we agreed on just about every design principle, I was incredibly excited. And when I realized the fantastic work the team had already done on defining a scaffolding and adoption path for the technology, I was super impressed.</p>
<p>BrowserID started with the <a href="https://wiki.mozilla.org/Identity/Verified_Email_Protocol">Verified Email Protocol</a>, designed by <a href="http://www.open-mike.org/">Mike Hanson</a> and <a href="http://twitter.com/thunder">Dan Mills</a>, who came up with the approach after extensive exploration of web-based identity approaches over the last two years. It&#8217;s a simple idea: users can prove to web sites that they own a particular email address. That&#8217;s how they register, and that&#8217;s how they log back in the next time they visit the site. BrowserID, the code and site, was initially bootstrapped by <a href="http://lloyd.io/">Lloyd Hilaiel</a> and Mike Hanson. <a href="http://www.shanetomlinson.com/">Shane Tomlinson</a> and I joined the team in June. We now also have an awesome UX design team (Bryan and Andy) and the team continues to grow (yay Austin!)</p>
<p>So, that&#8217;s what I&#8217;m working on these days: BrowserID and other Identity+UserData efforts at Mozilla. I&#8217;m excited to be leading this technical effort. The team is amazing, and we&#8217;ve got big aggressive plans to help you control your identity and data on the Web.</p>
]]></content:encoded>
			<wfw:commentRss>http://benlog.com/articles/2011/09/21/browserid-and-me/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>my 9.11</title>
		<link>http://benlog.com/articles/2011/09/11/my-9-11/</link>
		<comments>http://benlog.com/articles/2011/09/11/my-9-11/#comments</comments>
		<pubDate>Sun, 11 Sep 2011 15:07:53 +0000</pubDate>
		<dc:creator>ben</dc:creator>
				<category><![CDATA[personal]]></category>

		<guid isPermaLink="false">http://benlog.com/?p=1784</guid>
		<description><![CDATA[Maybe it&#8217;s silly to add yet another story to the list of &#8220;where I was on 9/11.&#8221; I suffered no direct loss, while some people I know did. Many other world events were far, far more awful. But as I &#8230; <a href="http://benlog.com/articles/2011/09/11/my-9-11/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Maybe it&#8217;s silly to add yet another story to the list of &#8220;where I was on 9/11.&#8221; I suffered no direct loss, while some people I know did. Many other world events were far, far more awful. But as I did experience 9/11 in person, I feel the need to write down some thoughts, some memories.</p>
<p>On the night of September 10th, 2001, I was having drinks with an old friend (I&#8217;m having trouble remembering which friend!) in Chelsea, about 3 miles north of the World Trade Center. We stayed up late. We talked about world politics, terrorism, the Middle East. So when the alarm clock radio came on a bit before 9am (hey, I&#8217;m a software guy), with talk of a plane hitting a building, I thought I was having some messed-up dream based on the night&#8217;s conversation. By the time I turned on the TV, the second plane had hit. My mom called. &#8220;Mom, that&#8217;s a second plane, it&#8217;s not an accident.&#8221; I got a call from my sister who lived a few miles uptown, she was fine, too. I noticed a voicemail from my friend and coworker Josh. His wife, who worked in the WTC, was fine, as she was away on a trip. Then the cell phones went dead.</p>
<p>I threw on clothes and comfortable clothes. I watched the first tower collapse on TV. I grabbed a backpack, put on jogging shoes, and ran out of my apartment on 21st street, between 7th and 8th avenues. From my street I couldn&#8217;t see the towers, so I headed to 7th avenue. By the time I got there, all I could see was smoke. I had to ask someone on the street: &#8220;where&#8217;s the second tower?&#8221;</p>
<p>I started walking downtown, towards my office in TriBeCa, about a mile north of the WTC. I panicked for a moment: what if this was just the beginning and more was underway? I stepped into a convenience store, bought 3 candybars and 2 bottles of water. As I walked downtown, I passed cars stopped in the street, doors open, people standing with their radios turned on, straight out of some apocalypse movie. Then I started seeing people covered in dust. I made it to my office just south of Canal St, walked in, and logged on. I think I spent an hour clicking &#8220;respond&#8221;, writing &#8220;yes, I&#8217;m fine, more later.&#8221;</p>
<p>I found an unused IP address on one of our servers and set up a page to list &#8220;I&#8217;m ok&#8221; messages. Looks like the Internet Archive <a href="http://web.archive.org/web/20020802064830/http://adida.net/SEPT11/">has a copy</a>. I remember thinking I might be aggregating thousands of messages from around the city, though in the end it was obviously limited to my circle of friends. I guess I wanted to help, in any way I could.</p>
<p>Somewhere in there I chatted with co-workers, emailed our clients and partners, told them we were alright, asked how they were doing. One of our clients was on Wall Street and lost a number of friends.</p>
<p>In the mid afternoon, my friend Greg and I went up on the roof of our office building and talked, looking down Greenwich St towards WTC 7 surrounded by smoke of the collapsed towers. We went downstairs, heard on the radio that WTC 7 had collapsed, ran back up, and sure enough, it was gone. That night, Amanda, Greg, my sister and I crowded into my little apartment, ate frozen pizza and watched the news until we couldn&#8217;t anymore.</p>
<p>One of my best friends was stuck in Pennsylvania on a business trip. He wanted to be home in NYC, but couldn&#8217;t.</p>
<p>I gave my team the week off.</p>
<p>The next few days were odd.</p>
<p>I wasn&#8217;t able to fly out to the West Coast that Friday to see my friend Rodrigo&#8217;s new baby.</p>
<p>I stayed up nights listening to fighter jets flying overhead. I participated in far too many email arguments about &#8220;how to respond.&#8221; I was crazy and emotional. I made stupid, childish arguments. Within a few weeks, I would be calmer and, I think, more reasonable. I wish our leaders had also taken a moment to breathe.</p>
<p>People started going about their business again. There was the smell of burn in the air, but people tried not to talk about it. People were nice. Very nice. I went out a lot. I followed my friend Arjun to see indie bands on the lower east side. I didn&#8217;t want to stay in, ever, I needed to go out and be with people. I remember a faux-french band we saw, the guitarist wore an &#8220;I [heart] NYC&#8221; t-shirt he&#8217;d modified to say &#8220;J&#8217;[aime] NYC&#8221;. They didn&#8217;t mention the burning buildings. No one talked about it. Instead people went out of their way to be friendly, to reach out, to help.</p>
<p>That was, in some way, the saddest part of that experience. Everyone wanted to help. Doctors waited for the wounded, but none came. People lined up to give blood, but none was needed. People lined up to help downtown but there wasn&#8217;t room for everyone. So we tried to help each other, in small ways, every day.</p>
]]></content:encoded>
			<wfw:commentRss>http://benlog.com/articles/2011/09/11/my-9-11/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>with freedom comes responsibility: open publishing</title>
		<link>http://benlog.com/articles/2011/09/05/with-freedom-comes-responsibility-open-publishing/</link>
		<comments>http://benlog.com/articles/2011/09/05/with-freedom-comes-responsibility-open-publishing/#comments</comments>
		<pubDate>Mon, 05 Sep 2011 17:02:53 +0000</pubDate>
		<dc:creator>ben</dc:creator>
				<category><![CDATA[personal]]></category>

		<guid isPermaLink="false">http://benlog.com/?p=1780</guid>
		<description><![CDATA[As of a few months ago, I&#8217;m no longer on a publish-or-perish academic track. Mozilla gives me the freedom to publish, but no pressure. Coincidentally, the publishing world is at a bit of a crossroads. Some organizations, like USENIX, are &#8230; <a href="http://benlog.com/articles/2011/09/05/with-freedom-comes-responsibility-open-publishing/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>As of a few months ago, I&#8217;m no longer on a publish-or-perish academic track. Mozilla gives me the freedom to publish, but no pressure. Coincidentally, the publishing world is at a bit of a crossroads. Some organizations, like USENIX, are increasingly open: all papers are published for the world to see, many talks are videotaped and available openly. Others, like IEEE, are increasingly closed, with tighter and tighter constraints on authors, more paywalls and obstacles to the dissemination of knowledge.</p>
<p>I&#8217;ve got increased freedom, so I intend to use it. Starting today, I will not publish nor review papers destined for closed venues. Academic publications should be available for the world to read, to learn from, to build upon. If you&#8217;d like me on your program committee, if you&#8217;d like me to review a journal publication, if you&#8217;d like me to help with a paper, please understand that I will refuse if the conference/journal isn&#8217;t truly open. In the short term, this probably means I&#8217;ll only work with USENIX, and maybe IACR which appears to be moving towards true open-access.</p>
<p>My move isn&#8217;t exactly courageous. I have the luxury to make this decision, while many of my colleagues do not. I hope a few tenured professors make this move, though, as they have both the luxury and a good bit more influence than I do. Matt Blaze is starting down this path. Dan Wallach is helping tweak the IEEE approach. All of these efforts are incredibly important.</p>
<p>This is about free dissemination of knowledge. This is the point of the Internet. Academics who stand for discovery and learning should be outraged by the direction most publishers are taking today, and should at the very least encourage those publishers who are doing it well. Hesitating between ACM and USENIX? Go with USENIX. IACR holding a vote on open-access publishing? Make your voice heard.</p>
]]></content:encoded>
			<wfw:commentRss>http://benlog.com/articles/2011/09/05/with-freedom-comes-responsibility-open-publishing/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

