<?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"
	>

<channel>
	<title>Emil Sit: Thoughts and Observations</title>
	<atom:link href="http://www.emilsit.net/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.emilsit.net/blog</link>
	<description></description>
	<pubDate>Sun, 24 Aug 2008 02:19:43 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<item>
		<title>Notes on the MD6 hash function</title>
		<link>http://www.emilsit.net/blog/archives/notes-on-the-md6-hash-function/</link>
		<comments>http://www.emilsit.net/blog/archives/notes-on-the-md6-hash-function/#comments</comments>
		<pubDate>Sun, 24 Aug 2008 02:19:43 +0000</pubDate>
		<dc:creator>Emil Sit</dc:creator>
		
		<category><![CDATA[Technology]]></category>

		<category><![CDATA[Thoughts]]></category>

		<guid isPermaLink="false">http://www.emilsit.net/blog/archives/notes-on-the-md6-hash-function/</guid>
		<description><![CDATA[Hal Finney presents rough notes taken from a talk by Ron Rivest (1.5M PPT) about the MD6 hash function.  MD6 will be a SHA-3 candidate and is tree-based and thus highly parallelizable (while remaining serializable). It appears to be designed to resist known forms of attack.
]]></description>
			<content:encoded><![CDATA[<p>Hal Finney presents rough notes taken from a <a href="http://people.csail.mit.edu/rivest/Rivest-TheMD6HashFunction.ppt" onclick="javascript:pageTracker._trackPageview('/outbound/article/people.csail.mit.edu');">talk by Ron Rivest (1.5M PPT)</a> about the <a href="http://www.mail-archive.com/cryptography@metzdowd.com/msg09690.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.mail-archive.com');">MD6 hash function</a>.  MD6 will be a SHA-3 candidate and is tree-based and thus highly parallelizable (while remaining serializable). It appears to be designed to resist known forms of attack.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emilsit.net/blog/archives/notes-on-the-md6-hash-function/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Wuala: Buy or trade p2p storage</title>
		<link>http://www.emilsit.net/blog/archives/wuala-buy-or-trade-p2p-storage/</link>
		<comments>http://www.emilsit.net/blog/archives/wuala-buy-or-trade-p2p-storage/#comments</comments>
		<pubDate>Fri, 22 Aug 2008 02:19:43 +0000</pubDate>
		<dc:creator>Emil Sit</dc:creator>
		
		<category><![CDATA[Technology]]></category>

		<category><![CDATA[Thoughts]]></category>

		<guid isPermaLink="false">http://www.emilsit.net/blog/archives/wuala-buy-or-trade-p2p-storage/</guid>
		<description><![CDATA[Wuala uses erasure codes and crypto over a p2p network (backed by managed servers) to provide &#8220;social&#8221; storage. The crypto builds on work by Kevin Fu and others.  One nice idea is that you can trade local storage for remote storage.  I wonder how good the latency is when reconstructing data fragmented across [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://wua.la/en/learn/technology" onclick="javascript:pageTracker._trackPageview('/outbound/article/wua.la');">Wuala</a> uses <a href="http://highscalability.com/wuala-p2p-online-storage-cloud" onclick="javascript:pageTracker._trackPageview('/outbound/article/highscalability.com');">erasure codes and crypto</a> over a p2p network (backed by managed servers) to provide &#8220;social&#8221; storage. The crypto builds on work by <a href="http://www.cs.umass.edu/~kevinfu/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.cs.umass.edu');">Kevin Fu</a> and others.  One nice idea is that you can trade local storage for remote storage.  I wonder how good the latency is when reconstructing data fragmented across distributed peers.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emilsit.net/blog/archives/wuala-buy-or-trade-p2p-storage/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Amazon EBS</title>
		<link>http://www.emilsit.net/blog/archives/amazon-ebs/</link>
		<comments>http://www.emilsit.net/blog/archives/amazon-ebs/#comments</comments>
		<pubDate>Thu, 21 Aug 2008 13:16:26 +0000</pubDate>
		<dc:creator>Emil Sit</dc:creator>
		
		<category><![CDATA[Technology]]></category>

		<category><![CDATA[Thoughts]]></category>

		<guid isPermaLink="false">http://www.emilsit.net/blog/archives/amazon-ebs/</guid>
		<description><![CDATA[Amazon&#8217;s EC2 now has persistent storage as part of the Amazon Elastic Block Store (EBS).  Similar to how S3 built on DHT research, EBS turns ideas from research systems like Petal or the Expandable Network Disk into a massively scalable commercial product.
]]></description>
			<content:encoded><![CDATA[<p>Amazon&#8217;s EC2 now has persistent storage as part of the <a href="http://www.allthingsdistributed.com/2008/08/amazon_ebs_elastic_block_store.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.allthingsdistributed.com');">Amazon Elastic Block Store (EBS)</a>.  Similar to how <a href="http://www.allthingsdistributed.com/2007/10/amazons_dynamo.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.allthingsdistributed.com');">S3 built on DHT research</a>, EBS turns ideas from research systems like Petal or the <a href="http://publications.csail.mit.edu/abstracts/abstracts07/athicha/athicha.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/publications.csail.mit.edu');">Expandable Network Disk</a> into a massively scalable commercial product.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emilsit.net/blog/archives/amazon-ebs/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Opis</title>
		<link>http://www.emilsit.net/blog/archives/opis/</link>
		<comments>http://www.emilsit.net/blog/archives/opis/#comments</comments>
		<pubDate>Thu, 21 Aug 2008 01:15:33 +0000</pubDate>
		<dc:creator>Emil Sit</dc:creator>
		
		<category><![CDATA[Research]]></category>

		<category><![CDATA[Thoughts]]></category>

		<guid isPermaLink="false">http://www.emilsit.net/blog/archives/opis/</guid>
		<description><![CDATA[Pierre-Evariste Dagand developed Opis, an OCaml-based framework for developing distributed systems.  It includes yet another Chord implementation, tested in ModelNet against Macedon and MIT Chord.  While I still think OCaml is kind of ugly, it appeals to me more than P2 or Macedon did. (via Anarchaia)
]]></description>
			<content:encoded><![CDATA[<p>Pierre-Evariste Dagand developed <a href="http://perso.eleves.bretagne.ens-cachan.fr/~dagand/opis/" onclick="javascript:pageTracker._trackPageview('/outbound/article/perso.eleves.bretagne.ens-cachan.fr');">Opis</a>, an OCaml-based framework for developing distributed systems.  It includes yet another Chord implementation, tested in ModelNet against Macedon and <a href="http://pdos.csail.mit.edu/chord/" onclick="javascript:pageTracker._trackPageview('/outbound/article/pdos.csail.mit.edu');">MIT Chord</a>.  While I still think OCaml is kind of ugly, it appeals to me more than P2 or Macedon did. <em>(via <a href="http://anarchaia.org/archive/2008/08/19.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/anarchaia.org');">Anarchaia</a>)</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.emilsit.net/blog/archives/opis/feed/</wfw:commentRss>
		</item>
		<item>
		<title>WordPress Security: Doomed?</title>
		<link>http://www.emilsit.net/blog/archives/wordpress-security-doomed/</link>
		<comments>http://www.emilsit.net/blog/archives/wordpress-security-doomed/#comments</comments>
		<pubDate>Tue, 19 Aug 2008 21:49:40 +0000</pubDate>
		<dc:creator>Emil Sit</dc:creator>
		
		<category><![CDATA[Thoughts]]></category>

		<guid isPermaLink="false">http://www.emilsit.net/blog/archives/wordpress-security-doomed/</guid>
		<description><![CDATA[Mark Jaquith presented Secure Coding with WordPress at WordCamp 2008.  Skimming them, I have to wonder if there&#8217;s any hope at all for security in WP plugins.  We need Coverity for PHP.  Is Movable Type any better?  How about Habari?  Can we fix this with simple software design or do [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://markjaquith.wordpress.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/markjaquith.wordpress.com');">Mark Jaquith</a> presented <a href="http://markjaquith.wordpress.com/2008/08/16/secure-coding-with-wordpress-wordcamp-sf-2008-slides/" onclick="javascript:pageTracker._trackPageview('/outbound/article/markjaquith.wordpress.com');">Secure Coding with WordPress</a> at WordCamp 2008.  Skimming them, I have to wonder if there&#8217;s any hope at all for security in WP plugins.  We need <a href="http://www.coverity.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.coverity.com');">Coverity</a> for PHP.  Is Movable Type any better?  How about <a href="http://www.habariproject.org/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.habariproject.org');">Habari</a>?  Can we fix this with simple software design or do we need <a href="http://flume.csail.mit.edu/" onclick="javascript:pageTracker._trackPageview('/outbound/article/flume.csail.mit.edu');">DIFC</a>?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emilsit.net/blog/archives/wordpress-security-doomed/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Experiences with Mercurial and Git</title>
		<link>http://www.emilsit.net/blog/archives/experiences-with-mercurial-and-git/</link>
		<comments>http://www.emilsit.net/blog/archives/experiences-with-mercurial-and-git/#comments</comments>
		<pubDate>Sat, 16 Aug 2008 03:32:02 +0000</pubDate>
		<dc:creator>Emil Sit</dc:creator>
		
		<category><![CDATA[Technology]]></category>

		<category><![CDATA[git]]></category>

		<category><![CDATA[mercurial]]></category>

		<category><![CDATA[tools]]></category>

		<category><![CDATA[usability]]></category>

		<category><![CDATA[workflow]]></category>

		<guid isPermaLink="false">http://www.emilsit.net/blog/?p=77</guid>
		<description><![CDATA[I have been a big fan of the Mercurial version control system since migrating the Chord project from CVS almost two years ago.  Mercurial offers a comfortable command-line experience, good performance and a module based architecture for expansion.  Since graduating, I have had to interface with Subversion and Perforce servers at work and [...]]]></description>
			<content:encoded><![CDATA[<p>I have been a big fan of the <a href="http://www.selenic.com/mercurial/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.selenic.com');">Mercurial</a> version control system since migrating the <a href="http://pdos.csail.mit.edu/chord/" onclick="javascript:pageTracker._trackPageview('/outbound/article/pdos.csail.mit.edu');">Chord</a> project from CVS almost two years ago.  Mercurial offers a comfortable command-line experience, good performance and a module based architecture for expansion.  Since graduating, I have had to interface with Subversion and Perforce servers at work and used that as an opportunity to learn how to use <a href="http://git-scm.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/git-scm.com');">Git</a>, the other big player in the distributed version control world.</p>

<p>Learning Git can be a bit daunting&#8212;concepts like <a href="http://osteele.com/archives/2008/05/my-git-workflow" onclick="javascript:pageTracker._trackPageview('/outbound/article/osteele.com');">the index</a>, the <a href="http://eagain.net/articles/git-for-computer-scientists/" onclick="javascript:pageTracker._trackPageview('/outbound/article/eagain.net');">abstract model of Git repositories</a> as a directed acyclic graph, and commands like <code><a href="http://www.kernel.org/pub/software/scm/git/docs/git-reset.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.kernel.org');">git-reset</a></code> and <code><a href="http://www.kernel.org/pub/software/scm/git/docs/git-rebase.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.kernel.org');">git-rebase</a></code> are hard to wrap your head around.  Coming from CVS or Subversion, it is easy to think that Git is just weird, much like Lisp macros might confuse the <a href="http://www.paulgraham.com/avg.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.paulgraham.com');">average programmer</a>.  However, last year, <a href="http://thunk.org/tytso/blog/" onclick="javascript:pageTracker._trackPageview('/outbound/article/thunk.org');">Ted Ts&#8217;o</a> <a href="http://thunk.org/tytso/blog/2007/03/24/git-and-hg/" onclick="javascript:pageTracker._trackPageview('/outbound/article/thunk.org');">wrote</a></p>

<blockquote>
  <p>[...] I see its potential as being greater than hg, and so while it definitely has some ease-of-use and documentation shortcomings, in the long run I think it has “more legs” than hg, [...]</p>
</blockquote>

<p>Having gotten comfortable with Git, I definitely agree with this statement. </p>

<p>Compared to Mercurial, branching with Git is much easier.  When developing features for Chord, I would use Mercurial&#8217;s <a href="http://www.selenic.com/mercurial/wiki/index.cgi/MqExtension" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.selenic.com');">patch queue extension</a> to develop features piece-meal until they were ready to commit.  I would edit the <code>series</code> file manually to rearrange commits, in particular to push out small bug-fixes.  It is much easier to use topic branches or <code><a href="http://www.kernel.org/pub/software/scm/git/docs/git-stash.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.kernel.org');">git-stash</a></code> to arrange (and re-arrange) commits and do small fixes.  Git&#8217;s view of branch heads as simply pointers to some commit on a commit graph and its constant tracking of your commit history with <a href="http://gitfu.wordpress.com/2008/04/06/git-reflog-no-commits-left-behind/" onclick="javascript:pageTracker._trackPageview('/outbound/article/gitfu.wordpress.com');">reflogs</a> around allows you to develop without fear of losing your work, even when arranging things so that your published history is pretty.  In Mercurial, last I checked (around version 0.9.4), branches in a single working tree were still somewhat confusing and hard to use.</p>

<p>Git also has excellent Subversion and Perforce front-ends.  With <code>git-svn</code> and <code>git-p4</code>, you can mirror an existing repository (say, the official version control system at the office) into Git, develop using all of Git&#8217;s tools, then push changes neatly back into Subversion and Perforce.  Mercurial has <a href="http://pypi.python.org/pypi/hgsvn" onclick="javascript:pageTracker._trackPageview('/outbound/article/pypi.python.org');">hgsvn</a> but I haven&#8217;t used it and its documentation suggests that it can&#8217;t push changes back into Subversion; I don&#8217;t know of any Perforce front-ends for Mercurial.</p>

<p>Mercurial makes it extremely easy to serve up a repository, without requiring starting a daemon on any special ports.  <code>hg serve</code> is all you need and you can efficiently clone a Mercurial repository over HTTP; Git uses a special protocol that runs over a dedicate port, making it somewhat less firewall friendly.  Mercurial also better allows differences between the HEAD branch (aka tip) and your current working directory state&#8212;you can push into a repository with a working directory without confusing Mercurial; not so with Git.  This means collaboration in Git requires a third copy of the repository for collecting commits (or requires that repositories be updated only by pull).</p>

<p>For most uses, Mercurial and Git are more-or-less interchangeable, especially with the usability improvements in versions 1.5 of Git and later.  The most basic commands like <code>status</code>, <code>diff</code>, <code>commit</code>, and <code>log</code> behave very similarly (at first glance).  Commands execute quickly, even for large trees.  Both systems are very flexible with modules and scripts that bring most features to parity.   For myself, having learned how to work with Git, I prefer the power Git offers with fast branches and powerful tools like reflogs and rebase.  For the undecided, fortunately there are tools that convert repositories from Git to Mercurial and vice-versa, so other than mental switching costs, there is little to fear in choosing one or the other.  I won&#8217;t be using Subversion or CVS any more if I can help it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emilsit.net/blog/archives/experiences-with-mercurial-and-git/feed/</wfw:commentRss>
		</item>
		<item>
		<title>PDOS Thesis Season</title>
		<link>http://www.emilsit.net/blog/archives/pdos-thesis-season/</link>
		<comments>http://www.emilsit.net/blog/archives/pdos-thesis-season/#comments</comments>
		<pubDate>Thu, 14 Aug 2008 14:23:25 +0000</pubDate>
		<dc:creator>Emil Sit</dc:creator>
		
		<category><![CDATA[Thoughts]]></category>

		<guid isPermaLink="false">http://www.emilsit.net/blog/?p=72</guid>
		<description><![CDATA[Congratulations to Athicha Muthitacharoen,
Bryan Ford, Max Krohn and Russ Cox on their recent thesis defenses!
]]></description>
			<content:encoded><![CDATA[<p>Congratulations to <a href="http://pdos.csail.mit.edu/~athicha/" onclick="javascript:pageTracker._trackPageview('/outbound/article/pdos.csail.mit.edu');">Athicha Muthitacharoen</a>,
<a href="http://www.csail.mit.edu/events/eventcalendar/calendar.php?show=event&#038;id=1941" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.csail.mit.edu');">Bryan Ford</a>, <a href="http://www.csail.mit.edu/events/eventcalendar/calendar.php?show=event&#038;id=1945" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.csail.mit.edu');">Max Krohn</a> and <a href="http://www.csail.mit.edu/events/eventcalendar/calendar.php?show=event&#038;id=1944" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.csail.mit.edu');">Russ Cox</a> on their recent thesis defenses!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emilsit.net/blog/archives/pdos-thesis-season/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Microblogging options</title>
		<link>http://www.emilsit.net/blog/archives/microblogging-options/</link>
		<comments>http://www.emilsit.net/blog/archives/microblogging-options/#comments</comments>
		<pubDate>Tue, 12 Aug 2008 14:00:34 +0000</pubDate>
		<dc:creator>Emil Sit</dc:creator>
		
		<category><![CDATA[Thoughts]]></category>

		<guid isPermaLink="false">http://www.emilsit.net/blog/?p=70</guid>
		<description><![CDATA[Exploring facets of microblogging: Twitter, identi.ca, Facebook/LinkedIn status, or something self-hosted?
]]></description>
			<content:encoded><![CDATA[<p>Exploring facets of microblogging: <a href="http://twitter.com/emilsit/" onclick="javascript:pageTracker._trackPageview('/outbound/article/twitter.com');">Twitter</a>, <a href="http://identi.ca/emilsit" onclick="javascript:pageTracker._trackPageview('/outbound/article/identi.ca');">identi.ca</a>, Facebook/LinkedIn status, or something self-hosted?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emilsit.net/blog/archives/microblogging-options/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Improving web authentication</title>
		<link>http://www.emilsit.net/blog/archives/improving-web-authentication/</link>
		<comments>http://www.emilsit.net/blog/archives/improving-web-authentication/#comments</comments>
		<pubDate>Mon, 11 Aug 2008 02:02:17 +0000</pubDate>
		<dc:creator>Emil Sit</dc:creator>
		
		<category><![CDATA[Technology]]></category>

		<category><![CDATA[authentication]]></category>

		<category><![CDATA[bruce schneier]]></category>

		<category><![CDATA[cookies]]></category>

		<category><![CDATA[e-mail]]></category>

		<category><![CDATA[encryption]]></category>

		<category><![CDATA[FastMail]]></category>

		<category><![CDATA[GMail]]></category>

		<category><![CDATA[ING]]></category>

		<category><![CDATA[Kim Cameron]]></category>

		<category><![CDATA[openid]]></category>

		<category><![CDATA[password]]></category>

		<category><![CDATA[randall stross]]></category>

		<category><![CDATA[security]]></category>

		<category><![CDATA[session]]></category>

		<category><![CDATA[Vanguard]]></category>

		<guid isPermaLink="false">http://www.emilsit.net/blog/?p=66</guid>
		<description><![CDATA[You use passwords, possibly dozens of passwords, to authenticate to websites daily.  Passwords are a useful authentication tool because they function as a &#8220;thing-you-know&#8221; (a shared secret between you and the server) and because passwords can be changed (in case of loss, unlike say, your fingerprints).

In a diatribe against OpenID titled, &#8220;Goodbye, Passwords.  [...]]]></description>
			<content:encoded><![CDATA[<p>You use passwords, possibly dozens of passwords, to authenticate to websites daily.  Passwords are a useful authentication tool because they function as a &#8220;thing-you-know&#8221; (a shared secret between you and the server) and because passwords can be changed (in case of loss, unlike say, your fingerprints).</p>

<p>In a diatribe against <a href="http://openid.net/2008/08/10/challenges-facing-openid/" onclick="javascript:pageTracker._trackPageview('/outbound/article/openid.net');">OpenID</a> titled, <a href="http://www.nytimes.com/2008/08/10/technology/10digi.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.nytimes.com');">&#8220;Goodbye, Passwords.  You aren&#8217;t a good defense&#8221;</a>, Randall Stross argues (?) that the time for passwords has gone and (password-based) single sign on systems like OpenID are not going to fly.  Let&#8217;s ignore the fact that while he claims &#8220;no security expert [he] could reach&#8221; thought passwords were a good idea, he names no actual experts in his column&#8212;could he not, for example, get a comment from Bruce Schneier, who has <a href="http://www.google.com/search?q=bruce+schneier+password+security" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.google.com');">written extensively</a> about the subject?  By ignoring that, we would be less likely to conclude that perhaps that his column is just a front piece fed to him by the source he does cite, Kim Cameron.  (The OpenID blog contains a somewhat <a href="http://openid.net/2008/08/10/challenges-facing-openid/" onclick="javascript:pageTracker._trackPageview('/outbound/article/openid.net');">more objective defense</a> of the issue.)  OpenID is still a long way from mainstream, however, and a site can do many things to improve their authentication security without it.</p>

<p>Session management allows users to participate in detection of password theft.  For example, Google Mail now lets you <a href="http://gmailblog.blogspot.com/2008/07/remote-sign-out-and-info-to-help-you.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/gmailblog.blogspot.com');">manage authenticated sessions</a>.  Not only does GMail now explicitly inform you when and from where your account has been accessed recently (which many banking websites do as well and Unix login has done for years), it also lets you explicitly log-out those other sessions.  This is great news for detecting and then dealing with password compromises.  Google Mail also added a setting to <a href="http://gmailblog.blogspot.com/2008/07/making-security-easier.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/gmailblog.blogspot.com');">ensure that your mail itself always goes over an encrypted connection</a>.  This lets you trade-off between the computational overhead of secrecy via encryption and performance&#8212;for users, the computational overhead of a single SSL connection is minimal and easily amortized over a day-long GMail connection.</p>

<p>Google&#8217;s approaches, however, still rely on your password.  What if you are at an Internet café and want to check your e-mail but not risk losing the password that protects your AdSense account?  <a href="http://fastmail.fm/" onclick="javascript:pageTracker._trackPageview('/outbound/article/fastmail.fm');">FastMail</a> has the solution: <a href="http://blog.fastmail.fm/2008/07/21/one-time-and-sms-passwords/" onclick="javascript:pageTracker._trackPageview('/outbound/article/blog.fastmail.fm');">One-time and SMS passwords</a>.  This is a brilliant feature that I am surprised is not more widely available.  Basically, FastMail offers a variety of options for generating temporary, disposable passwords.  You can pre-create a list of single-use passwords that you keep safely in your wallet: even if the password is captured by a key-logger or shoulder-surfer, it can never be used again to authenticate you.  You can also create, on-demand, a single-use password that is sent via SMS to your cellphone.  These are great ways to protect your account while still being able to access it from anywhere.</p>

<p>Any web system must also deal with the inevitable forgotten password.  <a href="http://www.ingdirect.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.ingdirect.com');">ING Direct</a> demonstrates how this can be handled efficiently and safely.  Instead of the <a href="http://www.zephoria.org/thoughts/archives/2007/11/15/algorithms_for.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.zephoria.org');">moronic question/answer systems</a> that demand that you remember exact, case-sensitive answers to short answer questions, ING appears to ask you specific questions about your current billing address, and then some things from your credit report (like where you used to live or work).  I remember the addresses of places I used to live and work; I can&#8217;t remember if I used to own a Subaru or an Outback.  ING often feeds you wrong information to clue you in to a potential problem&#8212;enter an invalid saver ID and it will happily make up a name for you that&#8217;s not yours.  And after jumping through these questions, you also have to prove access to a verified e-mail address.  These are familiar, repeatable tasks that I feel work quite well.</p>

<p>Finally, the display of personalized phrases and images at login time help reduce the risk of phishing attacks, by authenticating the website to you.  Yahoo! sets a cookie for this purpose, displaying text in a color of your choosing, for each computer you use&#8212;the browser policy of returning cookies only to the domains that set them ensures that you are connecting to the proper site.  <a href="https://personal.vanguard.com/us/help/SecurityLogonFAQsContent.jsp" onclick="javascript:pageTracker._trackPageview('/outbound/article/personal.vanguard.com');">Vanguard</a> and ING both link the custom image to your username.  They trade-off the convenience of not having to worry about cookies on every computer for the potential risk of a man-in-the-middle attack.  I&#8217;d imagine they&#8217;ve done the risk analysis studies to determine that this works out best.</p>

<p>It would greatly improve the security of most websites if they supported user session management, forced SSL, provided one-time passwords/SMS passwords, authenticated users using intelligent questions, and authenticated to users explicitly.  While they may be foreign to users today, as they become more common and uniformly adopted, they will become as familiar as captchas but infinitely more useful.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emilsit.net/blog/archives/improving-web-authentication/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Become a master</title>
		<link>http://www.emilsit.net/blog/archives/become-a-master/</link>
		<comments>http://www.emilsit.net/blog/archives/become-a-master/#comments</comments>
		<pubDate>Sat, 09 Aug 2008 22:49:27 +0000</pubDate>
		<dc:creator>Emil Sit</dc:creator>
		
		<category><![CDATA[Personal]]></category>

		<category><![CDATA[lifehacks]]></category>

		<category><![CDATA[mastery]]></category>

		<category><![CDATA[selfimprovement]]></category>

		<guid isPermaLink="false">http://www.emilsit.net/blog/?p=58</guid>
		<description><![CDATA[Masters make things look easy.  A master photographer can pick up a disposable camera and take a beautiful picture; a master bodyworker sees patterns that cause pain in your body and efficiently corrects them; a master programmer rapidly produces working systems and debugs existing ones.  There&#8217;s something appealing about being a master of [...]]]></description>
			<content:encoded><![CDATA[<p>Masters make things look easy.  A <a href="http://www.luminous-landscape.com/essays/Yes_It_Matters.shtml" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.luminous-landscape.com');">master photographer</a> can pick up a disposable camera and take a beautiful picture; a <a href="http://www.anatomytrains.net" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.anatomytrains.net');">master bodyworker</a> sees patterns that cause pain in your body and efficiently corrects them; a master programmer rapidly produces working systems and debugs existing ones.  There&#8217;s something appealing about being a master of any skill.</p>

<p><a href="http://www.fourhourworkweek.com/blog/2007/09/14/the-top-5-reasons-to-be-a-jack-of-all-trades/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.fourhourworkweek.com');">Tim Ferriss</a> argues that we can all approach <a href="http://www.fourhourworkweek.com/blog/2007/09/14/the-top-5-reasons-to-be-a-jack-of-all-trades/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.fourhourworkweek.com');">mastery of many areas</a>, that mastery can be achieved in less time than we think.  He writes:</p>

<blockquote>
  <p>Generalists recognize that the 80/20 principle applies to skills: 20% of a language’s vocabulary will enable you to communicate and understand at least 80%, 20% of a dance like tango (lead and footwork) separates the novice from the pro, 20% of the moves in a sport account for 80% of the scoring, etc.</p>
</blockquote>

<p>Of course, it takes <a href="http://norvig.com/21-days.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/norvig.com');">more than 21 days</a> to master a skill and <a href="http://www.365portraits.com" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.365portraits.com');">daily practice</a> is critical.  You must constantly challenge yourself to do something difficult and to learn something new.</p>

<p>I find these challenges incredibly rewarding.  Since I graduated college, I&#8217;ve taken up hobbies and skills outside my professional work&#8212;from <a href="http://www.southbostonyoga.net/teachers.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.southbostonyoga.net');">yoga</a> to <a href="http://www.flickr.com/photos/emilsit/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.flickr.com');">photography</a>; I continue to learn about about areas within my field, from tools like the <a href="http://git-scm.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/git-scm.com');">hot version control system of the day</a> to <a href="http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-828Fall-2006/CourseHome/" onclick="javascript:pageTracker._trackPageview('/outbound/article/ocw.mit.edu');">how to write an operating system</a>.  Some things I still want to learn include massage, menu planning, haircutting, jazz piano, &#8230; not to mention continuing to improve upon what I&#8217;ve already learned.  But it is hard to find time to learn new things and keep up with old ones.  Time management is something I have yet to fully master.  I&#8217;m working on it.</p>

<p>Are you a master?  No?  Why not?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emilsit.net/blog/archives/become-a-master/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.599 seconds -->
