<?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>Neural Core Dump &#187; TWiT</title>
	<atom:link href="http://www.jeffdarlington.com/tag/twit/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jeffdarlington.com</link>
	<description>The personal blog of Jeffrey T. Darlington, creator of General Protection Fault</description>
	<lastBuildDate>Sat, 24 Jul 2010 19:00:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Why I&#8217;m dropping TWiT</title>
		<link>http://www.jeffdarlington.com/2009/04/21/why-im-dropping-twit/</link>
		<comments>http://www.jeffdarlington.com/2009/04/21/why-im-dropping-twit/#comments</comments>
		<pubDate>Tue, 21 Apr 2009 14:29:25 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Leo Laporte]]></category>
		<category><![CDATA[podcast]]></category>
		<category><![CDATA[TWiT]]></category>

		<guid isPermaLink="false">http://www.jeffdarlington.com/?p=212</guid>
		<description><![CDATA[I hate breaking the drought of (real, non-Twitter summary) updates with a gripe fest, but this has been bothering me for a couple weeks and I just wanted to get this off my chest. If you don&#8217;t listen to the podcast &#8220;This Week in Tech&#8221; (or TWiT), feel free to ignore this post. Of course, [...]]]></description>
			<content:encoded><![CDATA[<p>I hate breaking the drought of (real, non-<a title="Twitter: jeffdarlington" href="https://twitter.com/jeffdarlington">Twitter</a> summary) updates with a gripe fest, but this has been bothering me for a couple weeks and I just wanted to get this off my chest. If you don&#8217;t listen to the podcast <a title="This Week in Tech" href="http://twit.tv/twit">&#8220;This Week in Tech&#8221;</a> (or TWiT), feel free to ignore this post. Of course, if you&#8217;ve <em>considered</em> listening but haven&#8217;t gotten around to it yet, this <em>might</em> be informative enough to help you reconsider, but I&#8217;ll leave that up to you to decide.</p>
<p>I&#8217;ve been a fan of <a title="Leoville.com" href="http://leoville.com/">Leo Laporte</a> for a number of years, ever since we first discovered <a title="TechTV article on Wikipedia" href="http://en.wikipedia.org/wiki/TechTV">TechTV</a> (before it died a miserable death at the hands of <a title="Paul Allen article on Wikipedia" href="http://en.wikipedia.org/wiki/Paul_Allen">Paul Allen</a> and <a title="G4 (TV channel) article on Wikipedia" href="http://en.wikipedia.org/wiki/G4_(TV_channel)">G4</a>). <a title="The Screen Savers article on Wikipedia" href="http://en.wikipedia.org/wiki/The_Screen_Savers">&#8220;The Screen Savers&#8221;</a> was one of our favorite shows and became a nightly staple in our house for several years. When Laporte left TechTV and &#8220;The Screen Savers&#8221; was canceled (or, more properly, devolved into <a title="Attack of the Show article on Wikipedia" href="http://en.wikipedia.org/wiki/Attack_of_the_Show">&#8220;Attack of the Show&#8221;</a>), we had a small sense of loss. The show was entertaining and informative, and a big part of the entertainment value was Laporte&#8217;s friendliness and personality. The network was never the same after that, and now we largely ignore G4&#8242;s existence on our cable listings. (<a title="X-Play article on Wikipedia" href="http://en.wikipedia.org/wiki/X-Play">&#8220;X-Play&#8221;</a>, the only remaining show from TechTV&#8217;s original line-up, is the only thing still worth watching on G4, and even then it&#8217;s not nearly as good as it used to be.)</p>
<p>When I discovered a year or so ago that Laporte had gone on to create his own <a title="The TWiT Netcast Network" href="http://twit.tv/">podcasting network</a>, I was thrilled. Several old TechTV allumni were among the guests and cohosts, and the selection of podcasts has been diverse, engaging, and ever expanding. The flagship of the network, of course, is TWiT, a weekly roundtable of tech industry players and journalists discussing the latest tech news. The show is often wild and unpredictable, spiraling down rabbit holes and meandering in bizarre directions, but that&#8217;s often part of the fun of the show. The bottom line, though, was that the show was about <em>tech news,</em> and it and <a title="Slashdot" href="http://slashdot.org/">Slashdot</a> were two of my main ways of keeping on top of what&#8217;s been happening in the tech world.</p>
<p>Something happened in recent weeks to change that, however. Since I can&#8217;t follow the live streams (both for practical and technical reasons), I can only guess the sequence of events based on what&#8217;s been released in the podcasts or written by others after the fact. But from what I can tell, the TWiTters have been hosting a live wine tasting show right before TWiT starts recording on Sundays. Now I&#8217;m a teetotaler myself, but I won&#8217;t condemn anyone who wants to imbibe their spirits if they really want to. What self-destructive behavior they engage in on their own time is up to them. As long as no one&#8217;s forcing me or anyone else to participate and nobody&#8217;s operating motorized vehicles, they are free to destroy their own livers to their hearts content. But what&#8217;s <em>really</em> annoying is that once TWiT starts taping, everyone in the studio is already tipsy, if not totally soused. The wine continues to flow as the show progresses, and what follows is a train wreck of drunken giddiness and squabbling that&#8217;s only really entertaining to those who are equally inebriated. To top everything off, from what I&#8217;ve read the final podcast (what <em>I&#8217;m</em> actually hearing and complaining about) is heavily edited before it&#8217;s released; the live feed is even <em>worse.</em></p>
<p>The <a title="TWiT #191: Corked" href="http://twit.tv/191">latest episode</a> is a perfect example. Subtitled &#8220;Corked&#8221; (which is appropriate; I originally intended to say &#8220;ironically&#8221; but I&#8217;m pretty sure the choice of subtitle was intentional), the show is a disaster of panelists talking on top of each other about nothing worth talking about. Leo, who is usually an excellent host and often does a great job of keeping everyone else in line, is interrupting his guests and spinning things even further out of control. <a title="Channel Dvorak" href="http://channeldvorak.com/">John C. Dvorak</a>, whose input I always find amusing and often enlightening, is equally rude and—from what I&#8217;ve read from those who saw the live feed—apparently egged on the other guests to get them even further inebriated. I was originally going to complain that neither of the female guests, <a title="Mostly Lisa" href="http://mostlylisa.com/">Lisa Bettany</a> or <a title="ShiraLazar.com" href="http://shiralazar.com/">Shira Lazar</a>, could manage to finish a sentence before being trampled upon by Leo or Dvorak, but Lazar was just drunk enough to be an unstoppable stampede of rambling who couldn&#8217;t let a topic go. As previously stated, one of the appeals of TWiT is its unpredictable nature, but this show was so far off the beaten path that there was no path left to beat. Somewhere, deep inside the tangled mess of four people talking at once about Twitter drinking games, is only the vaguest <em>hint</em> of tech news, a thin whiff of the scent of information that rapidly gets swept away by the torrent of uselessness that follows. And for the cherry on top, several times during the show Leo pauses to read complaints from the live chat room about how terrible the show has become&#8230; and <em>makes fun of them.</em> This following a single glimmer of insightfulness in a discussion about <em>how important the community has become</em> in modern online media.</p>
<p>Now, I&#8217;ve been a webcartoonist for a decade, so I&#8217;m no stranger to the vast swing between amateurism and professionalism when it comes to online media. Before there were basement-dwelling podcasters, there were basement-dwelling webcartoonists, and you can tell in both cases which ones take their craft seriously and which just throw things out without any care for quality. I consider Laporte an accomplished pro, and virtually every other show on his network stands as shining proof of that. <a title="Security Now!" href="http://twit.tv/sn">&#8220;Security Now!&#8221;</a> is brilliantly informative (and my personal favorite), <a title="FLOSS Weekly" href="http://twit.tv/FLOSS">&#8220;FLOSS Weekly&#8221;</a> (when it updates) shines the spotlight on some great open source projects, and <a title="Jumping Monkeys" href="http://twit.tv/jm">&#8220;Jumping Monkeys&#8221;</a> (before it went on indefinite hiatus) was a great parenting podcast for tech-savvy parental units. In all three of these examples, Leo is an excellent cohost to the show&#8217;s main star, showing his versatility with rare skill. He asks the questions many of us are thinking, assuming the role of the everyman so the expert can answer to the fullest. The TWiT Network as a whole is an example that many podcasters should look up to, a yardstick of professionalism by which all others should be compared.</p>
<p>All except for TWiT itself. Leo, what the <em>heck</em> happened?</p>
<p>I won&#8217;t stop listening to &#8220;Security Now!&#8221; or &#8220;FLOSS Weekly&#8221;, both of which I enjoy immensely. If &#8220;Jumping Monkeys&#8221; ever comes back, I&#8217;ll resubscribe in a heartbeat. My wife loves <a title="net@nite" href="http://twit.tv/natn">&#8220;net@nite&#8221;</a>, <a title="The Daily Giz Whiz" href="http://twit.tv/DGW">&#8220;The Daily Giz Whiz&#8221;</a>, and <a title="Munchcast" href="http://twit.tv/mc">&#8220;Munchcast&#8221;</a> and keeps bugging me to listen to them. But TWiT&#8230; oh, TWiT, how the mighty have fallen. What was arguably the best show on the network is now the worst.</p>
<p>What&#8217;s incredibly ironic is that in a recent episode of &#8220;net@nite&#8221; (unfortunately, I don&#8217;t know which, but my wife thinks it&#8217;s either <a title="net@nite #85" href="http://twit.tv/natn85">#85</a> or <a title="net@nite #86" href="http://twit.tv/natn86">#86</a>), Leo chastized <a title="Kevin Rose article on Wikipedia" href="http://en.wikipedia.org/wiki/Kevin_Rose">Kevin Rose</a> for a <a title="ReadWriteWeb: Kevin Rose Apologizes for Sexist Joke on Diggnation" href="http://www.readwriteweb.com/archives/kevin_rose_apologizes_for_sexi.php">drunken comment</a> he made on-air that caused a bit of an Internet stir. He commented that in today&#8217;s world of streaming media, celebrities have to assume that they&#8217;re always on the air and that anything and everything they do will be rebroadcast repeatedly, even stating that it&#8217;s a big mistake to be <em>drunk while recording.</em> Maybe it&#8217;s time Leo listened to his own advice.</p>
<p>I&#8217;m still not sure whether or not I&#8217;m dropping TWiT now or if I&#8217;ll give it one last chance. <a title="FriendFeed: Leo Laporte" href="http://friendfeed.com/e/abe8eef3-82aa-4cf0-9535-c2c4fd15fb40/OK-message-received-A-little-less-wine-and-a/">Leo posted on FriendFeed</a> that the &#8220;message [was] received&#8221; and, based on overwhelmingly negative feedback, there will be &#8220;a little less wine and a little more tech in future TWiTs&#8221;. We&#8217;ll see. What&#8217;s ironic is that it was <a title="Audible.com" href="http://www.audible.com/">Audible.com</a>&#8216;s sponsorship of TWiT that turned me on to audio books, and now there&#8217;s a good chance that audio books will completely replace TWiT during my long, boring commute each morning. It&#8217;s Leo&#8217;s loss, not mine.</p>]]></content:encoded>
			<wfw:commentRss>http://www.jeffdarlington.com/2009/04/21/why-im-dropping-twit/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Bill Gates now inhabits my dreams&#8230;</title>
		<link>http://www.jeffdarlington.com/2008/09/09/bill-gates-now-inhabits-my-dreams/</link>
		<comments>http://www.jeffdarlington.com/2008/09/09/bill-gates-now-inhabits-my-dreams/#comments</comments>
		<pubDate>Tue, 09 Sep 2008 14:12:57 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[advertising]]></category>
		<category><![CDATA[Bill Gates]]></category>
		<category><![CDATA[humor]]></category>
		<category><![CDATA[Jerry Seinfeld]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[TWiT]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.jeffdarlington.com/?p=161</guid>
		<description><![CDATA[So I was listening to this week&#8217;s edition of TWiT, during which Leo Laporte and the usual band of miscreants psychoanalyze Microsoft&#8216;s new ad campaign featuring Bill Gates and Jerry Seinfeld. I had not seen the ad yet myself—apparently it debuted during an NFL opening game, and considering that I don&#8217;t watch professional sports and [...]]]></description>
			<content:encoded><![CDATA[<p>So I was listening to <a title="TWiT 159: That’s Not My Churro" href="http://www.twit.tv/159">this week&#8217;s edition of TWiT</a>, during which <a title="Leoville.Com" href="http://leoville.com/">Leo Laporte</a> and the usual band of miscreants psychoanalyze <a title="Microsoft" href="http://www.microsoft.com/">Microsoft</a>&#8216;s new ad campaign featuring <a title="Bill Gates article on Wikipedia" href="http://en.wikipedia.org/wiki/Bill_Gates">Bill Gates</a> and <a title="Jerry Seinfeld article on Wikipedia" href="http://en.wikipedia.org/wiki/Jerry_Seinfeld">Jerry Seinfeld</a>. I had not seen the ad yet myself—apparently it debuted during an <a title="National Football League article on Wikipedia" href="http://en.wikipedia.org/wiki/National_Football_League">NFL</a> opening game, and considering that I don&#8217;t watch professional sports and the overwhelming majority of my television watching now consists of shows containing <a title="Dora the Explorer article on Wikipedia" href="http://en.wikipedia.org/wiki/Dora_the_Explorer">magic backpacks and talking monkeys that wear red boots</a>, it hadn&#8217;t come to my attention yet—so the discussion naturally raised my morbid curiosity. So I dug around a little on <a title="YouTube" href="http://www.youtube.com/">YouTube</a> and found <a title="YouTube - Jerry Seinfeld Microsoft Commercial (Better Quality)" href="http://www.youtube.com/watch?v=tM_72QXCtN4">this</a>. I must admit, it&#8217;s as surreal as I was led to believe. I won&#8217;t attempt to try and mine this thing for hidden meaning like <a title="gdgt" href="http://gdgt.com/">Ryan Block</a> did; the only comment I think I can really make about it is that it tells me absolutely <em>nothing</em> about Microsoft, <a title="Microsoft Windows article on Wikipedia" href="http://en.wikipedia.org/wiki/Microsoft_Windows">Windows</a>, or any other product they may have in the pipeline, and after watching it I am no more inclined to pick Microsoft options over the competition than I was before. I thought that was the <em>point</em> of advertising&#8230;.</p>
<p>But that&#8217;s not the weirdest part. Last night, I dreamed about Bill Gates. Maybe it was exhaustion, maybe it was a prescription-drug fueled haze (I&#8217;m currently in the middle of my quarterly bout with bronchitis), but it was not something I was particularly expecting. There&#8217;s nothing really interesting to say about the dream, though. In what little I remember, Mr. Gates was there, tying his shoes. He wasn&#8217;t necessarily trying on new ones, nor was there any indication that the shoes were noticeably old. They were shiny, brown leather dress shoes, so they could have been either new or well maintained. Mr. Seinfeld was nowhere in sight. The setting was unclear; I can&#8217;t say that it was a shoe store, a men&#8217;s locker room, or any other recognizable setting. I know only that I was seated on a wooden bench which I believe was painted a dark green and that Bill Gates stood next to me, lifted one leg, and set the foot on the bench, then proceeded to tie his shoe laces. Then he left without saying a word and the dream moved on to wherever it went after that. I remember nothing else about the dream, and to my knowledge Mr. Gates appeared nowhere else within it.</p>
<p>I have no desire to do any research on what kind of <a title="Sigmund Frued article on Wikipedia" href="http://en.wikipedia.org/wiki/Sigmund_Freud">Fruedian</a> analysis can be drawn from watching a billionare-CEO-turned-philanthropist from one of the world&#8217;s largest and most reviled software companies tying his shoes next to me. I&#8217;d be afraid of what I&#8217;d find. So I&#8217;ll just say it was the prescription cough syrup working its magic and go back to talking to the <a title="How to Catch a Pink Elephant" href="http://www.gpf-comics.com/fun/stories/pinkelephant.php">pink elephant</a> and the green roast beef sandwich on either side of me. It&#8217;s a conversation about world politics and an economy built entirely around edible golf balls will solve the world&#8217;s energy crisis. It&#8217;s very enlightening. Maybe, somehow, some way, we&#8217;ll figure out exactly what makes Windows &#8220;delicious&#8221; while we&#8217;re at it. Drug-enduced hysteria is about the only way I can think of in my current semi-lucid state to make an operating system taste delicious. It makes me begin to wonder, though&#8230; what would other OSes taste like? Would Mac OS be crunchy? Would Linux be spicy? Would my Treo&#8217;s PalmOS be light in calories? I certainly hope so&#8230; I <em>am</em> trying to lose weight&#8230;.</p>]]></content:encoded>
			<wfw:commentRss>http://www.jeffdarlington.com/2008/09/09/bill-gates-now-inhabits-my-dreams/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Look, Ma! I&#8217;m on Security Now!</title>
		<link>http://www.jeffdarlington.com/2008/07/14/look-ma-im-on-security-now/</link>
		<comments>http://www.jeffdarlington.com/2008/07/14/look-ma-im-on-security-now/#comments</comments>
		<pubDate>Mon, 14 Jul 2008 14:54:52 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[cookie]]></category>
		<category><![CDATA[DoubleClick]]></category>
		<category><![CDATA[podcast]]></category>
		<category><![CDATA[Security Now]]></category>
		<category><![CDATA[Steve Gibson]]></category>
		<category><![CDATA[TWiT]]></category>

		<guid isPermaLink="false">http://www.jeffdarlington.com/?p=148</guid>
		<description><![CDATA[I hope to post more on this when there&#8217;s more data to post, but I thought I&#8217;d throw up a quick note stating that the latest episode of the Security Now! &#8220;netcast&#8221; features a question posed by yours truly. (The best part was listening to Leo Laporte stumble over my long-winded rambling. ) The high-quality [...]]]></description>
			<content:encoded><![CDATA[<p>I hope to post more on this when there&#8217;s more data to post, but I thought I&#8217;d throw up a quick note stating that the <a title="Security Now! #152 (TWiT.tv)" href="http://twit.tv/sn152">latest episode of the Security Now! &#8220;netcast&#8221;</a> features a question posed by yours truly. (The best part was listening to Leo Laporte stumble over my long-winded rambling. <img src='http://www.jeffdarlington.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ) The high-quality version of the show can be found at the previous link; a low-bandwidth version as well as a text-only transcript can be found at the <a title="Security Now! #152 (GRC.com)" href="http://www.grc.com/sn/sn-152.htm">corresponding page at GRC.com</a>. A search in the transcript for &#8220;Darlington&#8221; will take you to the beginning of my question; in the netcast, it starts around 38 minutes, 22 seconds in. (Of course, I encourage everyone to read/listen to the entire thing.)</p>
<p>For the full effect, though, you&#8217;ll also need to listen to/read the previous two non-Q&amp;A episodes of the show, <a title="Security Now! #149 (TWiT.tv)" href="http://twit.tv/sn149">#149</a> and <a title="Security Now! #151 (TWiT.tv)" href="http://twit.tv/sn151">#151</a>. (Low-bandwidth and trascriptions can be found <a title="Security Now! #149 (GRC.com)" href="http://www.grc.com/sn/sn-149.htm">here</a> and <a title="Security Now! #151 (GRC.com)" href="http://www.grc.com/sn/sn-151.htm">here</a>.) The entire dialog concerns the recent trend of <a title="Internet service provider article on Wikipedia" href="http://en.wikipedia.org/wiki/Internet_service_provider">ISPs</a> selling out their customers to allow third-party advertisers to come in and install hardware at the ISP to facilitate tracking the ISPs&#8217; customers&#8217; surfing habits across sites. While the ad companies in question claim to not be recording personally identifyable information about the ISPs&#8217; customers, the capability is there and the possibilities for abuse are enormous. It brings back many shades of the <a title="DoubleClick article on Wikipedia" href="http://en.wikipedia.org/wiki/DoubleClick">DoubleClick</a> controversies of the late 1990s-early 2000s, only much more ominous. I provided a unqiue standpoint to the discussion: that of a Web developer hosting a site and encountering similiar mysterious &#8220;first party&#8221; cookies set for my domain but not set by me.</p>
<p>The full body my question is present, but I&#8217;m not completely satisfied with the answer. <img src='http://www.jeffdarlington.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  Let&#8217;s just say I think Steve Gibson made an assumption about the <a title="General Protection Fault" href="http://www.gpf-comics.com/">GPF</a> site that&#8217;s not 100% true. I&#8217;ve replied to his response with additional information. I don&#8217;t necessarily expect another response (he does, after all, have his own agenda to follow on <em>his</em> show), and even if he does it will likely be in episode #154, the next scheduled Q&amp;A episode. If anyone is interested, I&#8217;ll post updates if and when this occurs. If I don&#8217;t get a response, I&#8217;ll post my response here, especially since it contains some disturbing observations about &#8220;first party&#8221; cookies that have mildly paranoid folks like me nervous. (I&#8217;d hate to see what it does to <em>really</em> paranoid people.)</p>]]></content:encoded>
			<wfw:commentRss>http://www.jeffdarlington.com/2008/07/14/look-ma-im-on-security-now/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>But we were there first. OK, maybe second.</title>
		<link>http://www.jeffdarlington.com/2008/02/25/but-we-were-there-first-ok-maybe-second/</link>
		<comments>http://www.jeffdarlington.com/2008/02/25/but-we-were-there-first-ok-maybe-second/#comments</comments>
		<pubDate>Mon, 25 Feb 2008 15:20:44 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[GPF]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Webcomics]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[podcast]]></category>
		<category><![CDATA[TWiT]]></category>

		<guid isPermaLink="false">http://www.jeffdarlington.com/2008/02/25/but-we-were-there-first-ok-maybe-second/</guid>
		<description><![CDATA[Anyone interested in the history of webcomics should check out this week&#8217;s episode of the This Week in Tech (TWiT) podcast. Especially since it has nothing to do with webcomics. Here&#8217;s my line of reasoning: In this episode, Leo Laporte and his unusual round of suspects are joined by Jonathan Coulton, geek musician extraordinaire. Aside [...]]]></description>
			<content:encoded><![CDATA[<p>Anyone interested in the history of webcomics should check out <a href="http://twit.tv/133" title="This Week in Tech #133: Jonathan Coulton - Functional And Elegant">this week&#8217;s episode</a> of the This Week in Tech (<a href="http://twit.tv/twit" title="TWiT: This Week in Tech">TWiT</a>) podcast. Especially since it has nothing to do with webcomics.</p>
<p>Here&#8217;s my line of reasoning: In this episode, <a href="http://leoville.com/" title="Leoville.com">Leo Laporte</a> and his unusual round of suspects are joined by <a href="http://www.jonathancoulton.com/" title="Jonathan Coulton">Jonathan Coulton</a>, geek musician extraordinaire. Aside from discussing a few topics of current note (like the death of <a href="http://en.wikipedia.org/wiki/HD_DVD" title="HD DVD article on Wikipedia">HD DVD</a>), they discuss a recent concert by Coulton where Leo and company joined him to play <a href="http://en.wikipedia.org/wiki/Rock_Band_%28video_game%29" title="Rock Band (video game) article on Wikipedia">Rock Band</a> before a nerd-filled audience. They go on to talk about the &#8220;new&#8221; Internet phenomena of niche entertainment targeting&#8211;skipping the big, mass-market blitzkrieg typically used by music, TV, and movie studios and canvasing thousands or millions of potential customers, to instead go directly to your core fans, the few dedicated people who are the ones that will <em>really</em> appreciate what you do. Coulton talks of making a living catering to a small handful of hard-core fans and how this is much more fulfilling that the big media alternative, where both the artist and the audience are faceless statistics on the bottom line of a balance sheet. And they discuss this with such freshness and enthusiasm, as if this is were the next new thing, some epiphany that no one has yet uncovered.</p>
<p>What <em>I</em> find so funny about it is&#8230; those of us in webcomics have already been doing this&#8230; for <em>years.</em> <img src='http://www.jeffdarlington.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>I&#8217;ve noticed this a lot over the past near-decade of <a href="http://www.gpf-comics.com/" title="General Protection Fault">GPF</a>&#8216;s existence. Blogs, podcasts, and other forms of grass-roots media have all cropped up during that time, putting publishing power in the hands of the masses, becoming &#8220;innovative&#8221; and &#8220;groundbreaking&#8221; in bringing content production to the people. But a fair number of &#8220;new&#8221; trends (and problems) associated with these technologies are things I remember seeing crop up among webcartoonists several years before. Long before the term &#8220;blog&#8221; was coined, I remember chatting with other cartoonists on mailing lists and news groups, swapping ideas about search engine optimization (before <em>that</em> term was coined as well), getting and retaining readers, how to monetize your site, etc. It&#8217;s entertaining now to watch many tech headlines to see &#8220;fresh&#8221; ideas crop up that I&#8217;ve personally tried&#8211;and abandoned&#8211;a couple years before. It&#8217;s like the wheel reinventing itself every couple of years, only with different colors and/or materials.</p>
<p>Of course, I would never be so conceited to believe webcomics &#8220;did it first.&#8221; Webcomics themselves borrow heavily from the underground comics movement of the 1950s, 60s, and 70s, where small independent publishers ducked under government sensors to push out innovated and controversial content directly to the people who wanted them. What changed between then and now is that the interconnectivity of the Internet moved this from basements and back rooms to hidden mailing lists and chat rooms, eventually making its way to the mainstream, all while expanding the sphere of availability from isolated pockets of common interest to global reach. It would also be naive to believe this flow of &#8220;innovation&#8221; is one-way; RSS and other syndication technologies took off first in the blogosphere, and was only later ret-conned and shoe-horned into webcomic automation systems as a handy update notification system.</p>
<p>Perhaps one of the reasons bloggers and podcasters didn&#8217;t learn any lessons from webcartoonists is the difference between skill level&#8211;real or perceived, take your pick&#8211;required for entry. Cartooning obviously requires some level of artistic talent as cartooning, in all of its myriad of forms, is a form of art. It&#8217;s often a commercial art, intended more to generate revenue than anything else, but an art nonetheless, conveying ideas and emotions graphically. And while a well-crafted blog certainly requires a talent for writing, that is often easier to come by than the ability to <em>both</em> write and draw. Thus the critical mass of webcartoonists is much smaller than that of bloggers and podcasters, making it less noticeable to the mainstream. That&#8217;s also why &#8220;break-out&#8221; blogs now seem to be a dime a dozen, but it&#8217;s still major news when an online comic gets noticed by big media and gets optioned for TV/movie deals. <em>Everyone</em> knows about blogs and maybe even reads a few, but there are other comics on the &#8220;intraweb&#8221; besides <a href="http://www.dilbert.com/" title="Dilbert.com">Dilbert</a>?</p>
<p>I&#8217;m not sure if there&#8217;s anything useful to these observations, other than the fact that they amuse me occasionally and it gives me something to post about. I&#8217;m not sure if anyone else has made these kinds of observations or, for that matter, anybody else cares. But I&#8217;ve often wondered if those underground cartoonists of yesteryear thought to same way about us webcartoonists as I have about bloggers. I&#8217;d like to think so, just because it creates a nice symmetry. I can&#8217;t wait for bloggers to sit around in the old bloggers&#8217; home, thinking such thoughts about whatever comes next. &#8220;Those kids with their holocasts&#8230; if they had learned the lessons we did about AI search, they&#8217;d be raking the quatloos by now&#8230;.&#8221;</p>]]></content:encoded>
			<wfw:commentRss>http://www.jeffdarlington.com/2008/02/25/but-we-were-there-first-ok-maybe-second/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Disturbing: PayPal in cahoots with DoubleClick?</title>
		<link>http://www.jeffdarlington.com/2007/11/27/disturbing-paypal-in-cahoots-with-doubleclick/</link>
		<comments>http://www.jeffdarlington.com/2007/11/27/disturbing-paypal-in-cahoots-with-doubleclick/#comments</comments>
		<pubDate>Tue, 27 Nov 2007 16:52:57 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[cookie]]></category>
		<category><![CDATA[DoubleClick]]></category>
		<category><![CDATA[PayPal]]></category>
		<category><![CDATA[Security Now]]></category>
		<category><![CDATA[Steve Gibson]]></category>
		<category><![CDATA[TWiT]]></category>

		<guid isPermaLink="false">http://www.jeffdarlington.com/2007/11/27/disturbing-paypal-in-cahoots-with-doubleclick/</guid>
		<description><![CDATA[I don&#8217;t usually do link-and-run posts (I prefer to have actual content in a blog), but I thought this was disturbing enough to disseminate. I&#8217;ll probably add my own blathering commentary which will make it more than a link-and-run post anyway. (After all, I know all of you who come here really come for the [...]]]></description>
			<content:encoded><![CDATA[<p>I don&#8217;t usually do link-and-run posts (I prefer to have actual <em>content</em> in a blog), but I thought this was disturbing enough to disseminate. I&#8217;ll probably add my own blathering commentary which will make it more than a link-and-run post anyway. (After all, I know all of you who come here <em>really</em> come for the blathering. I&#8217;m just so blatherful&#8230;.)</p>
<p>I&#8217;m not sure how many of you out there follow the <a href="http://www.twit.tv/sn" title="The TWiT Netcast Network: Security Now!">Security Now!</a> podcast over at <a href="http://www.twit.tv/" title="The TWiT Netcast Network">TWiT</a>, but it&#8217;s probably obvious by now that I do, given <a href="http://www.jeffdarlington.com/2007/11/07/roaming-authentication-with-apache-mod_rewrite/" title="Roaming authentication with Apache mod_rewrite, November 7th, 2007">recent</a> <a href="http://www.jeffdarlington.com/2007/10/31/wordpress-security-tweaks/" title="WordPress security tweaks, October 31st, 2007">posts</a>. This past week&#8217;s episode, <a href="http://www.twit.tv/sn119" title="TWiT: Security Now! #119">#119</a>, exposes a rather unsettling fact that shouldn&#8217;t be ignored.  (The high quality 64kbps MP3 can be found at that link, while a 16kbps MP3, a transcript in various formats, and additional notes can be found <a href="http://www.grc.com/SecurityNow.htm#119" title="GRC | Security Now!">here</a>.) While I encourage you to download and listen/read the facts for yourself, I&#8217;ll see if I can summarize it below for the attention-span impaired.</p>
<p>For a long time, I&#8217;ve defended <a href="https://www.paypal.com/" title="PayPal">PayPal</a> as a method of monetary transfer. They&#8217;ve always been good to me personally, even during the stormy periods where some <a href="http://www.gpf-comics.com/" title="General Protection Fault">GPF</a> readers boycotted them for &#8220;questionable&#8221; practices. (See the <a href="http://en.wikipedia.org/wiki/PayPal" title="PayPal article on Wikipedia">PayPal Wikipedia entry</a> for an abbreviated history.) For that matter, many online comics wouldn&#8217;t be able to monetize themselves in <em>any</em> fashion if it weren&#8217;t for PayPal, as many webcomics use the service for donations and online stores. (PayPal has always been an acceptable form of payment in every incarnation of the <a href="https://www.jeffdarlington.com/store/" title="The Official GPF Store">GPF Store</a>.) They&#8217;ve always had issues with customer service, but they&#8217;ve also been champions in <a href="http://en.wikipedia.org/wiki/Phishing" title="Phishing article on Wikipedia">anti-phishing</a> campaigns.</p>
<p>But Steve Gibson and Leo Laporte have helped disclose a rather shady new practice: In a previous Security Now! episode, a listener mentioned problems downloading a software service from PayPal, only to discover that the download link was sending him to a server over at <a href="http://www.doubleclick.com/" title="DoubleClick.com">DoubleClick</a> rather than PayPal. Since he was locally blocking access to the domain &#8220;doubleclick.net&#8221; in his <a href="http://en.wikipedia.org/wiki/Hosts_file" title="Hosts file article on Wikipedia">hosts file</a>, the link failed and the software would not download. Gibson promised to investigate the incident and after a number of side-tracks finally presented his results.</p>
<p>DoubleClick, for the few out there unfamiliar with it, is one of the Internet&#8217;s largest online advertising agencies, serving ad banners to millions of Web sites (including, indirectly, GPF). DoubleClick has long been unpopular among netizens for its questionable policies of tracking Web surfers across multiple sites, using a trick with <a href="http://en.wikipedia.org/wiki/HTTP_cookie#Privacy_and_third-party_cookies" title="Privacy and third-party cookies section of the HTTP Cookie Wikipedia article">tracking cookies</a> to follow you from site to site. Privacy concerns were raised even further when <a href="http://www.google.com/" title="Google">Google</a>, a company that itself stores and indexes a lot of personal information about its users of GMail, Ad-Sense, and other services, recently purchased DoubleClick. DoubleClick eventually bowed to pressure from the Net at large and created an <a href="http://www.doubleclick.com/privacy/dart_adserving.aspx" title="DoubleClick.com: Privacy: Dart Ad Serving: Opt-Out">opt-out page</a> so their tracking cookie would contain &#8220;non-personally-identifiable information&#8221; and thus negate some of the tracking cookie&#8217;s effectiveness. (This opt-out page is still linked to (now indirectly, as the URL has changed) from the <a href="http://www.gpf-comics.com/privacy.html" title="GPF: Privacy Statement and Ad Info">GPF privacy policy page</a>.) Many folks these days, however, including myself, simply run <a href="http://en.wikipedia.org/wiki/Spyware" title="Spyware article on Wikipedia">spyware</a> scanners like <a href="http://www.safer-networking.org/" title="Spybot: Search &amp; Destroy">Spybot: Search &amp; Destroy</a> or<a href="http://www.lavasoftusa.com/" title="Lavasoft"> Ad-Aware</a> and periodically delete such tracking cookies, or just block the &#8220;doubleclick.net&#8221; domain and its subdomains using the hosts file trick mentioned above. (This is how, in part, Spybot&#8217;s immunization against cookies works.) This eliminates or at least minimizes the opportunity for your Web surfing habits to be linked personally to you.</p>
<p>However, PayPal&#8217;s new links bypass many of these anti-drive-by-cookie-ing techniques by sending you directly to DoubleClick&#8217;s servers, rather than inlining content like Flash or images from their site. Since these are internal PayPal URLs and not links that are expected to send you to the outside, they should be immediately suspicious. What&#8217;s even worse is that if you examine the URL closely, there appears to be some sort of &#8220;user ID&#8221; like number included that may personally identify you if you click on it. What&#8217;s even <em>more</em> disturbing is the number of these links you run across as you surf the PayPal site; while some obviously ad-like images contain the &#8220;doubleclick.net&#8221; URL, many links in the site bar that look like ordinary navigational links contain it as well. While Gibson points out&#8211;quite rightly&#8211;that there is no evidence to support any sort of conspiracy theories that many come to mind, it <em>is</em> obvious enough that <em>some</em> sort of information sharing is going on between the two companies, and that if a unique user identifier is indeed being passed along with the URL, there&#8217;s a likelihood that both companies can link your potential spending habits with PayPal to your surfing habits tracked by DoubleClick.</p>
<p>Now it&#8217;s easy to be alarmist and to say everyone should boycott PayPal. Unfortunately, so many of us in webcomics depend on PayPal for survival, so there&#8217;s no way we can easily remove ourselves from it. And there&#8217;s no competitor out there with enough critical mass to really challenge PayPal for dominance, so there aren&#8217;t many viable alternatives. Thus the only current immunization option is diligent observation.</p>
<p>The good news is that the DoubleClick URLs within PayPal&#8217;s site all contain at the end PayPal URL you will eventually be redirected to. It&#8217;s trivial to copy the URL, paste it into your address bar, crop out the DoubleClick portion, and go directly the the PayPal internal destination. Laporte even suggested that it won&#8217;t be long before someone comes up with a <a href="http://www.mozilla.com/firefox/" title="Firefox">Firefox</a> <a href="https://addons.mozilla.org/en-US/firefox/" title="Firefox Add-ons">plugin</a> that does that for you on the fly. The problem I see with this is that it won&#8217;t be long before the diabolical duo figures out savvy users are bypassing the links and they find a better way to obscure the redirection target URL so the copy/paste/edit trick will no longer work. While true encryption might be a bit too much server load for them to handle <em>en masse,</em> a simple ROT13 or Base64 encode might be enough to thwart all but the most stalwart gearheads.</p>
<p>So&#8230; should <em>you</em> avoid PayPal? That&#8217;s up to you. I <em>can&#8217;t,</em> but I&#8217;ll be a lot more careful of where I click on their site from now on.</p>]]></content:encoded>
			<wfw:commentRss>http://www.jeffdarlington.com/2007/11/27/disturbing-paypal-in-cahoots-with-doubleclick/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Roaming authentication with Apache mod_rewrite</title>
		<link>http://www.jeffdarlington.com/2007/11/07/roaming-authentication-with-apache-mod_rewrite/</link>
		<comments>http://www.jeffdarlington.com/2007/11/07/roaming-authentication-with-apache-mod_rewrite/#comments</comments>
		<pubDate>Wed, 07 Nov 2007 21:25:59 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[authentication]]></category>
		<category><![CDATA[cookie]]></category>
		<category><![CDATA[mod_rewrite]]></category>
		<category><![CDATA[Security Now]]></category>
		<category><![CDATA[Steve Gibson]]></category>
		<category><![CDATA[TWiT]]></category>

		<guid isPermaLink="false">http://www.jeffdarlington.com/2007/11/07/roaming-authentication-with-apache-mod_rewrite/</guid>
		<description><![CDATA[I mentioned last week that I was working on a neat Apache mod_rewrite trick for locking down access to certain administration pages, but that I wasn&#8217;t having much success with it. Well, it seems to be working now and, as promised, I wanted to share it with anyone who might be interested. Fair warning to [...]]]></description>
			<content:encoded><![CDATA[<p>I <a href="http://www.jeffdarlington.com/2007/10/31/wordpress-security-tweaks/" title="WordPress security tweaks, October 31st, 2007">mentioned last week</a> that I was working on a neat <a href="http://httpd.apache.org/" title="Apache Web server">Apache</a> <a href="http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html" title="mod_rewrite documentation"><code>mod_rewrite</code></a> trick for locking down access to certain administration pages, but that I wasn&#8217;t having much success with it. Well, it seems to be working now and, as promised, I wanted to share it with anyone who might be interested. Fair warning to non-technical readers: extreme geekery lies ahead.</p>
<p>First and foremost, I can&#8217;t claim full credit for this idea. It borrows some from <a href="http://www.grc.com/default.htm" title="Gibson Research Corporation">Steve Gibson</a>&#8216;s roaming authentication scheme outlined in episode #113 of the <a href="http://www.grc.com/SecurityNow.htm" title="GRC | Security Now!">Security Now! podcast</a>. In that show (and subsequently continued in episode #115), Gibson outlines his method of allowing his employees to access secure portions of his site while traveling. The method described here is not quite as secure as his, as I&#8217;m forcing things to happen at the Web server software layer as opposed to the application layer and thus don&#8217;t have the same fine granularity of control he has. However, it uses many of the same ideas.</p>
<p>It&#8217;s relatively easy with <code>mod_rewrite</code> to protect certain resources of a site by restricting access to certain IP addresses. Consider the following:</p>
<blockquote><p><code>RewriteCond %{REQUEST_URI}   ^/store/admin/.*<br />
RewriteCond %{REMOTE_ADDR} !^192\.168\.13\.<br />
RewriteCond %{REMOTE_ADDR} !^127\.0\.0\.1$<br />
RewriteRule ^/store/admin/.* /store/ [R,L]</code></p></blockquote>
<p>This rule set essentially says: (1) if the requested URL starts with the string &#8220;/store/admin/&#8221; and (2) the IP address of the requesting client does not begins with &#8220;192.168.13.&#8221; or (3) is not exactly &#8220;127.0.0.1&#8243; then (4) redirect all requests for URLs starting with &#8220;/store/admin/&#8221; to the root URL of the store, &#8220;/store/&#8221;. Essentially, we&#8217;re only allowing access to what is apparently the administrative portions of an online store to a very limited number of IP addresses, one of which is fully qualified (the &#8220;loop-back&#8221; address of 127.0.0.1) and the rest belonging to a range (192.168.13.0 through 192.168.13.255). Anyone outside these IPs will be transparently redirected to the front page of the store. (Redirecting is much friendlier than outright forbidding access.) All of this takes place in Apache itself, before we even get to the application and any potential security flaws it might have. There are no worries about hacking the store software itself to deny access.  Of course, we can list any number of <code>REMOTE_ADDR</code> entries that we wish; each condition is a regular expression (which are negated here by the &#8220;bang&#8221; at the front) so we can filter on any octet we want and can easily specify real, outside IPs rather than private ones. For example, for this site I limit access to my various admin sections to the IP of my cable modem and our outside IP at work.</p>
<p>However, what happens when you are required to go on a trip and need to access the administrative parts of the site while on the go? Obviously, you can&#8217;t add the hotel&#8217;s outside IP to this rule set in advance (imagine asking the front desk for <em>that</em> information), and you probably won&#8217;t be able to add it easily once you get there. Sure, <a href="http://wordpress.org/" title="WordPress">WordPress</a> and the store front software have login security on their various admin interfaces, but we&#8217;re trying to protect those from hackers, right? Aside from reopening them to the entire Internet before the trip and closing them again once we get back, there aren&#8217;t very many options. How then can we identify approved &#8220;roaming&#8221; users and/or machines so they can access the admin sites without being inside a hard-coded list of IPs?</p>
<p>Gibson&#8217;s answer was to optionally set a secure cookie in the user&#8217;s browser if they access the admin site within one of the approved IPs first. Being within an approved IP, they aren&#8217;t restricted by the access rule and they are allowed to reach the login prompt. During login, they are prompted on whether or not they want to enable roaming access on this particular machine. If they agree, a secure cookie is set in the browser and set to expire at some date in the future. Later, when the user attempts to access the admin site outside of the approved IP list, the site checks to see if the cookie has been set. If present, the user is allowed to log in, just as if they were within one of the approved IPs. The cookie acts as a kind of two-factor authentication: the first factor being &#8220;something you know&#8221;, the user name and password, and the second being &#8220;something you have&#8221;, the cookie. Since the cookie is set in secure mode (HTTPS), it will only be sent back to the site over a secure connection. And since (well behaved) browsers only allow a site to read the cookies it has itself set, no other site should be able to read it.</p>
<p>This is all well and good&#8230; <em>if</em> you have access to the source of the application you&#8217;re trying to secure and you&#8217;re willing to hack it. Gibson wrote his own store front, so this was relatively easy for him to integrate. But I want to secure WordPress, a third-party store app, and a few random subdirectories that are pretty much statically built HTML. As much as I like running Open Source software, I usually prefer not to muck around with things if I can help it, lest I screw something up. Thus, I don&#8217;t particularly want to hack WP and the store to add this extra layer of functionality. Fortunately, though, <code>mod_rewrite</code> gives us a mechanism through which we can accomplish basically the same thing without modifying the underlying application. In theory, since all this occurs <em>before</em> we even reach the application, one could argue it may even be <em>more</em> secure than the application&#8217;s authentication mechanisms themselves.</p>
<p>You can actually set browser cookies via <code>mod_rewrite</code> rules. Consider what happens if we insert the following before the rules we defined above:</p>
<blockquote><p><code>RewriteCond %{REMOTE_ADDR} ^192\.168\.13\.<br />
RewriteCond %{HTTP_COOKIE} "!</code><code>(.+; )*admincookie=uniqueval(; .+)*"</code><br />
<code> RewriteRule .* - [CO=admincookie:uniqueval:.domainname.tld:43200:/store/]</code></p></blockquote>
<p>This rule set essentially says: (1) if the remote IP starts with &#8220;192.168.13.&#8221; and (2) there isn&#8217;t a cookie already set by the name &#8220;admincookie&#8221; then (3) set a cookie named &#8220;admincookie&#8221; with the value &#8220;uniqueval&#8221; for the domain &#8220;.domainname.tld&#8221; (assuming that&#8217;s our real domain name) for a period of 30 days (60 minutes x 24 hours x 30 days = 43,200 minutes) restricted to the path &#8220;/store/&#8221; and its subdirectories. Now let&#8217;s modify the rule set from before:</p>
<blockquote><p><code>RewriteCond %{REQUEST_URI}   ^/store/admin/.*<br />
RewriteCond %{REMOTE_ADDR} !^192\.168\.13\.<br />
RewriteCond %{REMOTE_ADDR} !^127\.0\.0\.1$<br />
RewriteCond %{HTTP_COOKIE} "!(.+; )*admincookie=uniqueval(; .+)*"<br />
RewriteRule ^/store/admin/.* /store/ [R,L]</code></p></blockquote>
<p>Note that we&#8217;ve added a new condition. In addition to checking for the approved IP list, we also check to see if the &#8220;admincookie&#8221; has been set and that its value is what we expect (&#8220;uniqueval&#8221;). Note the parenthetical parts at the beginning and end of the cookie regex; these should make sure we match the unique cookie name/value pair, regardless of how many cookies are present. (Also note the quotes around this regex; since whitespace delimits the parts of the rewrite statements, the quotes are required to include the spaces after the semicolons in the regex. Without the quotes, the regex produces a &#8220;bad flag delimiters&#8221; error when Apache parses the configuration file.) Since each approved item&#8217;s entry is negated, the rule is only applied if none of them match. So now we should be able to get into the site remotely if and only if we&#8217;re inside an approved IP or we have the secret cookie, which we know is only set if we&#8217;ve been in one of the approved IPs first. Instant roaming authentication!</p>
<p>To summarize, the primary advantages to this scheme are:</p>
<ul>
<li>Restricts access to specific requested URIs to specific IP addresses and/or ranges and to machines outside those addresses that have a special roaming authentication cookie.</li>
<li>The roaming cookie can only be set from within one or more of the authorized IPs.</li>
<li>The cookie is set and checked at the Web server level, before the request reaches application code, so this scheme can be placed on top of third-party applications as an additional layer of security. No changes to the application layer are required.</li>
</ul>
<p>There are, of course, a few caveats:</p>
<ul>
<li>Based on these rules alone, none of the information transmitted back and forth is encrypted; it&#8217;s all sent in the clear, which may potentially be sniffed by a man in the middle. Then again, you can always use <code>mod_rewrite</code> to force certain URLs to always use SSL (assuming you have a secure certificate), thereby securing the connection first. All WP admin functions, the <a href="https://www.jeffdarlington.com/store/" title="GPF Store">GPF Store</a>, and my other secured admin locales here on this site are all secured via SSL, so that helps in keeping my site secure by eliminating sniffing. (Of course, if you go this route, don&#8217;t forget to copy any necessary rules from the main Apache configuration file to the SSL config file, as the secure site will be treated as a different virtual host with its own set of rewriting rules. This little hiccup is what was keeping me from publishing this for quite a while.)</li>
<li>Forcing SSL, however, doesn&#8217;t necessarily protect the cookie itself. Gibson&#8217;s roaming authentication cookie required an SSL connection. This is called a secure mode cookie. While I&#8217;m still doing research into this, as far as I can tell so far <code>mod_rewrite</code> does not have the facility to specify secure mode in a cookie set by a rewrite rule. Thus, the above cookie is <em>not</em> secure and will be sent with each request in or below the specified path, encrypted or not. The cookie is then theoretically susceptible to sniffing attacks. Setting a secure mode cookie is easy enough to do in application code, but not apparently so in <code>mod_rewrite</code>.</li>
<li>The value of the cookie is currently hard-coded to a set value, and every browser accessing it within the approved IP will receive the same hard-coded cookie value. Ideally, the cookie should be unique to each browser and somehow obscured or, better yet, encrypted. Unfortunately, while I&#8217;ve been researching this also, so far I haven&#8217;t come up with a way to create such a unique token natively within <code>mod_rewrite</code>. (Remember, all this is occurring in Apache before we even reach application code.) Right now, <strike>I&#8217;m using a rather large hash of a unique pass phrase string</strike> I use a small command-line script to create a very long, highly random string using random numbers, several hashes, a little bit of Blowfish encryption, and some random string manipulation, but the cookie value is still technically hard coded. It may be possible to write a cron that will periodically create a new value token, update the Apache config file, and restart Apache. This will update the value every so often, but it seems quite a hassle.  (Plus, the user under which the cron runs has to be root in order to modify both the config file and to restart Apache.)</li>
<li>Similarly, there&#8217;s no way to distinguish between browsers behind the approved IP. My desktop is unlikely to roam anywhere, so it technically doesn&#8217;t need the cookie. Meanwhile, if my parents bring their laptop over and visit this site from that machine while within my network, they&#8217;d get the roaming cookie as well. Neither of these scenarios are ideal. In application code, it would be simple to set the cookie only after the user has been authenticated by the app&#8217;s internal mechanism first. But we&#8217;re not working with application code; we&#8217;re rewriting URLs in the server. Thus, this becomes a different security concern: controlling access to the approved IPs, which could be both a physical (who can patch directly in via Ethernet) and a logical issue (who can access the wireless LAN). One thing I&#8217;ve done to get around this problem is to require the browser to be authorized for roaming access to first navigate to a very large (~50 characters), randomly-generated alphanumeric subdirectory alias (generated using the same command-line script mentioned above) that is highly improbably that some might guess. This alias can only be accessed within a single authorized IP address that I directly control. It is only then that the cookie set. This eliminates the unintentional cookie setting by casual browsing of the site from other machines behind the approved IP.</li>
<li><strike>The regular expression to match the cookie should probably be more precise. For example, the expression as stated above could also match the string &#8220;myadmincookie=uniquevalnum2&#8243;, which technically isn&#8217;t what we want. Since we&#8217;re only dealing with cookies that should be set by our domain, it may not be that big of a deal, but it&#8217;s still a vulnerability nonetheless. If nothing else, there&#8217;s always the potential of colliding with cookies sent by other applications running on your site, so picking a unique cookie name and value is important. The <code>%{HTTP_COOKIE}</code> variable gets all the cookies for a given site/path as one big string, with each name/value pair delimited by a semi-colon and a space (&#8220;; &#8220;) and the name and value are glued together with an equal sign. I&#8217;m looking into a better regex to match this more precisely and I&#8217;ll update this post if I find one.</strike> I&#8217;ve updated the regex so it should match the cookie name/value pair more exactly.</li>
<li>Of course, none of this by itself can completely secure a site. In addition to this scheme, I force SSL on certain paths, deny access for all users to other paths that should never be accessed directly, and even explicitly block certain IP ranges that have attempted to hack the site. It&#8217;s not fool proof by any means, but combined with many other secure practices and mechanisms, it adds one more layer of protection, and sometimes one added layer can make all the difference.</li>
</ul>
<p>I welcome any feedback on how to improve this, especially if anyone knows how to get around the secure and unique cookie caveats.</p>
<p><em>Appendium:</em>  I should also point out that this scheme should be equally usable if you place the code in your master Apache configuration file (usually something like <code>/etc/httpd/conf/httpd.conf</code> on UNIX clones) or in per-directory <code>.htaccess</code> files. I usually prefer to put such rules in the master config file, mostly because it&#8217;s more secure (outside of the document root) and only gets parsed and loaded once while <code>.htaccess</code> files are read and parsed each time there&#8217;s a request in that directory (or any of its subdirectories). However, that only works if you have access to the master config, which most shared hosting services don&#8217;t provide. Of course, such rules placed in an <code>.htaccess</code> file will only apply to that directory and its subdirectories, so you&#8217;d have to tweak the rules (such as file paths and the cookie path) as necessary.</p>
<p><em>Update 11/20/2007:</em> Updated cookie regex to better match the exactly name/value pair; added notes about rotating cookie values.</p>
<p><em>Update 11/30/2007:</em>  Put cookie regex in quotes to correct avoid &#8220;bad flag delimiters&#8221; parsing errors; added advantage summary to better showcase the advantages of the scheme; updated my cookie value scheme; added highly-random subdirectory alias to avoid unintentional cookie-ing</p>]]></content:encoded>
			<wfw:commentRss>http://www.jeffdarlington.com/2007/11/07/roaming-authentication-with-apache-mod_rewrite/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
