<?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>Jeff Blaine &#187; Web Services</title>
	<atom:link href="http://www.kickflop.net/blog/category/web-services/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.kickflop.net/blog</link>
	<description></description>
	<lastBuildDate>Thu, 19 Jan 2012 20:59:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>What you might want to know about InstaFetch</title>
		<link>http://www.kickflop.net/blog/2011/06/06/what-you-might-want-to-know-about-instafetch/</link>
		<comments>http://www.kickflop.net/blog/2011/06/06/what-you-might-want-to-know-about-instafetch/#comments</comments>
		<pubDate>Mon, 06 Jun 2011 19:39:09 +0000</pubDate>
		<dc:creator>JB</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Products]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Web Services]]></category>

		<guid isPermaLink="false">http://www.kickflop.net/blog/?p=1291</guid>
		<description><![CDATA[InstaFetch is, for all intents and purposes, an Android app for connecting to your Instapaper data. If you don&#8217;t have an Instapaper account, you won&#8217;t care about the rest of this article. If you do have one, and use InstaFetch in any form, you may want to read up on what I found out with [...]]]></description>
			<content:encoded><![CDATA[<p><a href="https://market.android.com/details?id=pl.immortal.instafetch&#038;feature=search_result">InstaFetch</a> is, for all intents and purposes, an Android app for connecting to your <a href="http://instapaper.com/">Instapaper</a> data.  If you don&#8217;t have an Instapaper account, you won&#8217;t care about the rest of this article.  If you do have one, and use InstaFetch in any form, you may want to read up on what I found out with some packet sniffing of my own account.<span id="more-1291"></span></p>
<p>I&#8217;d like to point out up front here that Marek St&oacute;j (the InstaFetch author) has been completely forthcoming when emailed for details.  This isn&#8217;t so much a bashing of InstaFetch as it is a lesson in care needed when installing and using so-called &#8220;native apps&#8221;.</p>
<p>There are 2 take-aways from this article is: remember to use unique passwords for all sites (duh) and pressure developers of paid apps to make use of secure connections</p>
<p>Is it a big deal if someone gets my Instapaper password?  Not really, but yes.  It shouldn&#8217;t be possible, regardless of the sensitivity level (the data in my Instapaper account).  Looking through what is possible as a logged in Instapaper user, I&#8217;m not crazy about the idea of someone having my password.</p>
<p>Since I don&#8217;t have easy access to a wireless sniffer setup to watch the traffic from my phone, I installed the <a href="http://developer.android.com/sdk/">Android SDK</a>, <a href="http://www.google.com/search?aq=f&#038;sourceid=chrome&#038;ie=UTF-8&#038;q=install+apk+android+emulator">sideloaded</a> <a href="http://instafetch.immortal.pl/pro">InstafetchPro.apk</a> (I&#8217;m a paying subscriber to InstaFetch), and fired up <a href="http://www.wireshark.org/">Wireshark</a> to snatch the packets off my home wired network for examination.</p>
<p>Discoveries:</p>
<ol>
<li>InstaFetch does not communicate with Instapaper via TLS (https), yet Instapaper offers it.  Your Instapaper account name and password are sent unencrypted from your device to the Instapaper server farm by InstaFetch.  There is no option in InstaFetch to enable https to Instapaper.com that I can find.</li>
<li>If you email text to your unique Instapaper email address for later reading, that data is stored on Instapaper&#8217;s servers and only accessible via an authenticated Instapaper account (of course).  Since InstaFetch offers its own transcoding services (it&#8217;s not <em>just</em> an Instapaper client), it will send your Instapaper username and password (with other details) over bare http as a base64-encoded (not secure) string value to the variable <code>ctx</code>.  The following data may be encoded in <code>ctx</code>: instapaper username, instapaper password (sent ONLY for articles hosted on Instapaper.com; this is needed so that the InstaFetch server can fetch the article and transcode it), flag saying whether it&#8217;s a pro app, platform id (Android/Windows Phone 7), app version.</li>
</ol>
<p>One of the bare http requests to the InstaFetch server is shown below where you can see the base64 encoding of <code>ctx</code>:</p>
<pre>
GET /nreadability/transcode?
url=http%3A%2F%2Fnymag.com%2Fprint%2F%3F%2Fnews%2Ffeatures%2Fcollege-education-2011-5%2F&#038;
rst=newspaper&#038;rmg=xnarrow&#038;
rsi=small&#038;
ctx=Jmluc3RhcGFwZXJVc2VyTmFtZT1qYmxhaW5lQGtpY2tmbG9wLm5ldCZwbGF0Zm9ybT1BbmRyb2lkJnZlcn
</pre>
<p>Decoding the value of <code>ctx</code> via a simple web-based base64 decoder form gets us the following, where you can see this raw information.  Luckily for me, I don&#8217;t make use of the Instapaper email drop box and my password is not included in the information:<br />
<a rel="lightbox" href="http://www.kickflop.net/blog/wp-content/uploads/2011/06/instafetch-ctx-decode.jpg"><img src="http://www.kickflop.net/blog/wp-content/uploads/2011/06/instafetch-ctx-decode-150x150.jpg" alt="" title="instafetch-ctx-decode-screenshot" width="150" height="150" class="alignleft size-thumbnail wp-image-1301" style="margin-left: 0; border: 1px solid #888888;" /></a></p>
<div class="clear"></div>
]]></content:encoded>
			<wfw:commentRss>http://www.kickflop.net/blog/2011/06/06/what-you-might-want-to-know-about-instafetch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flickr: You&#8217;re doing it wrong</title>
		<link>http://www.kickflop.net/blog/2011/04/04/flickr-youre-doing-it-wrong/</link>
		<comments>http://www.kickflop.net/blog/2011/04/04/flickr-youre-doing-it-wrong/#comments</comments>
		<pubDate>Mon, 04 Apr 2011 20:38:08 +0000</pubDate>
		<dc:creator>JB</dc:creator>
				<category><![CDATA[Musings]]></category>
		<category><![CDATA[Photography]]></category>
		<category><![CDATA[Quality Control]]></category>
		<category><![CDATA[Web Services]]></category>

		<guid isPermaLink="false">http://www.kickflop.net/blog/?p=1246</guid>
		<description><![CDATA[I go to share a flickr photo of mine with Facebook friends and this is what I&#8217;m presented with. Gee, no thank you, Yahoo/flickr.]]></description>
			<content:encoded><![CDATA[<p>I go to share a flickr photo of mine with Facebook friends and this is what I&#8217;m presented with.  Gee, no thank you, Yahoo/flickr.</p>
<p><a rel="lightbox" href="http://www.kickflop.net/blog/wp-content/uploads/2011/04/yahoo-flickr-facebook.jpg"><img src="http://www.kickflop.net/blog/wp-content/uploads/2011/04/yahoo-flickr-facebook-300x209.jpg" alt="" title="yahoo-flickr-facebook" width="300" height="209" class="alignleft size-medium wp-image-1247" /></a></p>
<div class="clear"></div>
]]></content:encoded>
			<wfw:commentRss>http://www.kickflop.net/blog/2011/04/04/flickr-youre-doing-it-wrong/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

