<?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>Dereleased &#187; Information Security</title>
	<atom:link href="http://www.dereleased.com/category/information-security/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dereleased.com</link>
	<description>Information Saturation</description>
	<lastBuildDate>Sat, 10 Sep 2011 20:41:33 +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>Let&#8217;s talk about your password model</title>
		<link>http://www.dereleased.com/2010/02/09/lets-talk-about-your-password-model/</link>
		<comments>http://www.dereleased.com/2010/02/09/lets-talk-about-your-password-model/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 17:02:50 +0000</pubDate>
		<dc:creator>Clark</dc:creator>
				<category><![CDATA[Information Security]]></category>
		<category><![CDATA[PHP Development]]></category>
		<category><![CDATA[The Internet]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[blowfish]]></category>
		<category><![CDATA[crypt]]></category>
		<category><![CDATA[md5]]></category>
		<category><![CDATA[nonce]]></category>
		<category><![CDATA[password]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[salt]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[sha1]]></category>
		<category><![CDATA[sha256]]></category>

		<guid isPermaLink="false">http://www.dereleased.com/?p=151</guid>
		<description><![CDATA[First off, let me just say that I am by no means an expert cryptographer; there are all sorts of wonderful, terrible things about hashes and block ciphers that I just don&#8217;t understand (I&#8217;d like to believe that it&#8217;s because I&#8217;ve not been exposed to them, whoever&#8217;s fault that is, and that if given a [...]]]></description>
			<content:encoded><![CDATA[<p>First off, let me just say that I am by no means an expert cryptographer; there are all sorts of wonderful, terrible things about hashes and block ciphers that I just don&#8217;t understand (I&#8217;d like to believe that it&#8217;s because I&#8217;ve not been exposed to them, whoever&#8217;s fault that is, and that if given a chance I would get it), but that&#8217;s also why I&#8217;m writing this &#8211; to give the opinion of someone who recognizes his own weakness, and how that translates to another&#8217;s strength.  Furthermore, this explanation gives a very simplistic view of web security that only examines one aspect of a secure system.  For loads more information about securing your web application, take a look at <a href="http://cookies.lcs.mit.edu/pubs/webauth:tr.pdf">&#8220;Dos and Don&#8217;ts of Client Authentication on the Web&#8221; <small>[PDF]</small></a> written by some very smart folks at M.I.T.</p>
<p>So, let&#8217;s start with a beginner&#8217;s introduction.  In the beginning, there were users, and users wanted to be able to log in because otherwise being a user was rather pointless indeed.  Thus, the password is born, and forevermore it becomes the goal of clever crackers and security experts alike.  The first problem someone encounters with passwords is how to store them, and that depends very much on a few key factors: Audience, Exposure, and Uniqueness.  If you are running a &#8220;homegrown&#8221; application (shout out to MecTracker) for use only inside the company, containing (in general) zero sensitive data, and you intend to pick user&#8217;s passwords for them (preventing the loss of a life password, itself a bad-yet-unavoidable practice), then why not just store them in plain text?  Certainly makes it easy to retrieve a password for someone without having to reset it (useful for someone away from their work machine with saved password who needs to log in).</p>
<p>Conversely, if you&#8217;re a bank, and you&#8217;re storing any of this in plain text, you will be razed to the ground by angry tech-savvy customers and auditors alike, hopefully BEFORE you get grandma and grandpa Jones to type in the password they use for everything else, too.  Hopefully, if you&#8217;re a bank, you&#8217;re using some crazy method I&#8217;m not about to describe here.</p>
<p>Then, there&#8217;s the middle ground.  I, for example, am not a bank (who would&#8217;ve guessed?  Can someone please notify my ex-girlfriend?), so my needs are much more middle-of-the-road, which is why I&#8217;ve settled for hashing.  When I started using PHP, I generally stuck to simple MD5 hashes; it was 10 years ago, and breaking MD5 seemed reasonably difficult.  Then I was told not to use MD5 because, at 128 bits, it was too weak, and I should be using SHA-1, which was 160 bits.  Then came the recommendation for SHA-256 (guess how many bits that one is!), and then whirlpool, and so on.  If you&#8217;re using a proper password strategy then you&#8217;ve been salting all along (I&#8217;ll admit I wasn&#8217;t in the old days, but you&#8217;ve got to be a beginner sometime), but if you haven&#8217;t, allow me to give you a word on salt.</p>
<p>&#8220;Salting&#8221; a password hash is the practice of taking a piece of input data, adding in an extra piece of information (called &#8220;salt&#8221;; see where this is going?), and hashing that, instead of just hashing the raw input.  In fact, with sites <a href="http://md5.rednoize.com/">that act like a search engine for MD5 and SHA-1 hashes</a>, not salting your input is, for general purpose storage, only one-degree of separation away from just storing the data in plain text.  Furthermore, good salt will be ever-changing (in this practice, the salt is also known as a &#8216;nonce&#8217;), and can safely be stored without obfuscation, as having included it means that a table not accounting for the nonce is useless, and a table that accounts for the nonce is only good against one of the passwords in your database.  Now you&#8217;ve just made an attack much more expensive, but that may not be as useful in reality as we&#8217;d like to believe.</p>
<p>MD5 and SHA-1 hashes can be calculated very, very quickly.  In fact, it&#8217;s generally more expensive to include some data about the current time (for use in salting/as a nonce) than it is to calculate the actual hash.  Here is some experimental code to prove my point:</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;"><span style="color: #990000;">define</span><span style="color: #009900;">(</span><span style="color: #0000ff;">'ITERATIONS'</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">5</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$tt</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$th</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">for</span> <span style="color: #009900;">(</span><span style="color: #000088;">$j</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #000088;">$j</span> <span style="color: #339933;">&lt;</span> ITERATIONS<span style="color: #339933;">;</span> <span style="color: #339933;">++</span><span style="color: #000088;">$j</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
	<span style="color: #000088;">$start</span> <span style="color: #339933;">=</span> <span style="color: #990000;">microtime</span><span style="color: #009900;">(</span><span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">for</span> <span style="color: #009900;">(</span><span style="color: #000088;">$i</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #990000;">microtime</span><span style="color: #009900;">(</span><span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">)</span> <span style="color: #339933;">-</span> <span style="color: #000088;">$start</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span> <span style="color: #339933;">++</span><span style="color: #000088;">$i</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
		<span style="color: #000088;">$k</span> <span style="color: #339933;">=</span> <span style="color: #990000;">md5</span><span style="color: #009900;">(</span><span style="color: #000088;">$i</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">}</span>
	<span style="color: #000088;">$tt</span> <span style="color: #339933;">+=</span> <span style="color: #009900;">(</span><span style="color: #990000;">microtime</span><span style="color: #009900;">(</span><span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">)</span> <span style="color: #339933;">-</span> <span style="color: #000088;">$start</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$th</span> <span style="color: #339933;">+=</span> <span style="color: #000088;">$i</span><span style="color: #339933;">;</span>
<span style="color: #009900;">}</span>
&nbsp;
<span style="color: #990000;">var_dump</span><span style="color: #009900;">(</span><span style="color: #000088;">$tt</span> <span style="color: #339933;">/</span> ITERATIONS<span style="color: #339933;">,</span> <span style="color: #000088;">$th</span> <span style="color: #339933;">/</span> ITERATIONS<span style="color: #009900;">)</span><span style="color: #339933;">;</span></pre>
</div>
</div>
<p>Simply hashing the value of the counter averaged 320,000 hashes per second on my work machine, which is not very powerful, and is certainly not running this in a very optimized way.  By changing what is being hashed to the current time to the microsecond, the number of hashes per second is reduced to an average of about 150,000 &#8211; in short, the hash is NOT the expensive part of what&#8217;s going on here.  So, let&#8217;s say that, given a more optimized environment but a more expensive dictionary list to be hashed, that the average is 200,000 hashes per second, and the dictionary is about 50,000,000 common passwords.  Simple math tells you that generating a hash list for this will take about 250 seconds, or less than 5 minutes.  If it takes under 5 minutes to generate a table, and only a few seconds from there to query it, then even a database of 150,000 users can be fully cracked in just under a fortnight.</p>
<p>So how can this be combated?  Well, strong password guidelines are a good start, but if you&#8217;re relying on users to implement password security for you, you&#8217;re probably doing it very, very wrong.  I&#8217;d like to challenge one of the assumptions you&#8217;ve probably made that I&#8217;ve had to challenge recently, and that is the value of speed; speed is <em>bad</em>.  Think about it: using a hash method that can generate a table of fifty million values in under 5 minutes sounds great from a performance perspective, but who are you really helping?  Is your user going to notice that your hash method took under 1ms to calculate, or is this performance more likely to benefit someone trying to crack your passwords?  Who would be more hurt if your passwords took closer to 12ms to generate and verify, your users or your would-be attacker?</p>
<p>If you haven&#8217;t heard of it yet, may I introduce you to <a href="http://www.bletchleypark.net/cryptology/blowfish.html">Blowfish Encryption</a>.  Blowfish is designed to scale with Moore&#8217;s Law by allowing you, the programmer, to decide how long it takes to generate a hash.  This is done by allowing you to specify a number which will be interpreted as a log-base-2 of how many iterations the hashing sequence should take; this metadata is then stored as part of the salt, prepended to the hash, and can be verified by the same function that created it since hashes are of fixed length and will be truncated or padded accordingly.  By using a log-base-2 scale, every increment of that number (n) literally doubles the time required to calculate the hash, as it will have to undertake 2<sup>n</sup> iterations to generate the password.  From what I can gather, a number like 7 or 8 is a fair industry standard at this time, and on my work machine limits the hashes-per-second to around 86.6 and 43.3, respectively.</p>
<p>Now, performance is a factor in real world applications, so let&#8217;s pick a number like 2<sup>7</sup>, which as I said allows about 87 hashes per second.  At that rate, a single dictionary table (useful for only one user, since we are salting these passwords) takes about six and a half days to generate.  For that same database of 150,000 users, it would take over 2,733 <b>years</b> to crack.  Of course, computational power will get less expensive as time goes on, and the same number of operations can and will get faster, but with the blowfish algorithm you need only increment the log to double the computational cost, keeping the cracking of your database safely outside the realm of technical feasibility.</p>
<p>So how does one use the blowfish algorithm in PHP?  The <a href="http://php.net/manual/en/function.crypt.php" style="font-family: 'Courier New',courier,monospace;">crypt()</a> function is your friend!  However, the manual is not entirely clear on the implementation details of blowfish, as it does not include one key part (which caused me to tear my hear out a little bit, since, as a Windows user, I was unable to check the man pages for crypt(3)) in any great detail, and that is the log base.  When you generate the salt, you will need to prepend it with an instruction string that tells it what kind of hash to generate, and what parameters to use.  Furthermore, the salt is not sixteen characters, but sixteen BYTES, and the characters in your hash will be read as a BASE64 encoded string, which means that using characters not allowed in a base64 string will cause the function to revert back to whatever the default is on your system, probably STD_DES or MD5.</p>
<p>All of that information might have seemed a bit hazy, so I&#8217;ll include the timing example I used before modified to suit crypt/blowfish.  Note also that I am storing the microtime result on every iteration of the for-loop, as in order to give you worst-case scenarios on the cracker&#8217;s timetable, I had to give best-case timings on the hashing, and that means as few calls to microtime as possible.</p>
<div class="wp_syntax">
<div class="code">
<pre class="php" style="font-family:monospace;"><span style="color: #990000;">define</span><span style="color: #009900;">(</span><span style="color: #0000ff;">'ITERATIONS'</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">5</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$tt</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$th</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">for</span> <span style="color: #009900;">(</span><span style="color: #000088;">$j</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #000088;">$j</span> <span style="color: #339933;">&lt;</span> ITERATIONS<span style="color: #339933;">;</span> <span style="color: #339933;">++</span><span style="color: #000088;">$j</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
	<span style="color: #000088;">$start</span> <span style="color: #339933;">=</span> <span style="color: #990000;">microtime</span><span style="color: #009900;">(</span><span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">for</span> <span style="color: #009900;">(</span><span style="color: #000088;">$i</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #009900;">(</span><span style="color: #000088;">$z</span> <span style="color: #339933;">=</span> <span style="color: #990000;">microtime</span><span style="color: #009900;">(</span><span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">)</span><span style="color: #009900;">)</span> <span style="color: #339933;">-</span> <span style="color: #000088;">$start</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span> <span style="color: #339933;">++</span><span style="color: #000088;">$i</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
		<span style="color: #000088;">$k</span> <span style="color: #339933;">=</span> <span style="color: #990000;">crypt</span><span style="color: #009900;">(</span><span style="color: #000088;">$i</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'$2a$07$'</span> <span style="color: #339933;">.</span> <span style="color: #009900;">(</span>string<span style="color: #009900;">)</span><span style="color: #000088;">$z</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">}</span>
	<span style="color: #000088;">$tt</span> <span style="color: #339933;">+=</span> <span style="color: #009900;">(</span><span style="color: #000088;">$z</span> <span style="color: #339933;">-</span> <span style="color: #000088;">$start</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$th</span> <span style="color: #339933;">+=</span> <span style="color: #000088;">$i</span><span style="color: #339933;">;</span>
<span style="color: #009900;">}</span>
&nbsp;
<span style="color: #990000;">var_dump</span><span style="color: #009900;">(</span><span style="color: #000088;">$tt</span> <span style="color: #339933;">/</span> ITERATIONS<span style="color: #339933;">,</span> <span style="color: #000088;">$th</span> <span style="color: #339933;">/</span> ITERATIONS<span style="color: #009900;">)</span><span style="color: #339933;">;</span></pre>
</div>
</div>
<p>Of paramount importance is the literal string prepended to the stored value.  The first four characters, <span style="font-family:'Courier New',courier,monospace;">$2a$</span>, simply instruct crypt to use the blowfish algorithm.  The next three, <span style="font-family:'Courier New',courier,monospace;">07$</span>, pass the number 7 as our log-base-2 argument, meaning the computation will run for 2<sup>7</sup> iterations.  After that, we concatenate our salt (values shorter than 22 characters will be padded in a predictable fashion, and longer than 22 will be truncated) to the argument string and send it off on its merry, 12ms way.</p>
<p>Do I think I&#8217;ve defeated all the clever crackers out there?  Certainly not.  However, I&#8217;m definitely in a better boat for having stood on the shoulders of giants and listened to people smarter than I am about security.  In fact, don&#8217;t listen to me, check out these links for more info:</p>
<p><a href="http://vwng.blogspot.com/2008/01/php-hash.html">(Victor) Xi Wang talks about salt, nonces and rainbow tables</a></p>
<p><a href="http://chargen.matasano.com/chargen/2007/9/7/enough-with-the-rainbow-tables-what-you-need-to-know-about-s.html">Matasano Security, LLC, talks about blowfish and why you shouldn&#8217;t design your own password protection scheme.</a></p>
<p><a href="http://www.bletchleypark.net/cryptology/blowfish.html">Linked earlier, explains blowfish encryption &#8211; very math/pseudocode heavy.</a></p>
<p><a href="http://php.net/manual/en/function.crypt.php">Also linked earlier, the PHP Manual Entry for Crypt()</a></p>
<p>Happy Hashing!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dereleased.com/2010/02/09/lets-talk-about-your-password-model/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Smartphones Affected By Malware &#8211; Welcome To The Club</title>
		<link>http://www.dereleased.com/2009/07/31/smartphones-affected-by-malware-welcome-to-the-club/</link>
		<comments>http://www.dereleased.com/2009/07/31/smartphones-affected-by-malware-welcome-to-the-club/#comments</comments>
		<pubDate>Fri, 31 Jul 2009 11:08:59 +0000</pubDate>
		<dc:creator>Clark</dc:creator>
				<category><![CDATA[Information Security]]></category>
		<category><![CDATA[The Internet]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Macintosh]]></category>
		<category><![CDATA[Malware]]></category>
		<category><![CDATA[market share]]></category>
		<category><![CDATA[SMS]]></category>
		<category><![CDATA[Virus]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.dereleased.com/?p=83</guid>
		<description><![CDATA[For years, as a P.C. and Windows user and developer, I&#8217;ve been forced to listen to inane claims about the superiority of Mac/Linux/BSD/Gameboys because they &#8220;don&#8217;t get viruses because they&#8217;re better products.&#8221;  Now, I usually try not to allow myself to be incited to anger, or shame, but come on.  That&#8217;s like saying that Malta [...]]]></description>
			<content:encoded><![CDATA[<p>For years, as a P.C. and Windows user and developer, I&#8217;ve been forced to listen to inane claims about the superiority of Mac/Linux/BSD/Gameboys because they &#8220;don&#8217;t get viruses because they&#8217;re better products.&#8221;  Now, I usually try not to allow myself to be incited to anger, or shame, but come on.  That&#8217;s like saying that Malta isn&#8217;t getting invaded because their security is top-notch.  The actual quality of Malta&#8217;s security notwithstanding, they don&#8217;t get attacked because there just isn&#8217;t a market for it. With <a title="Google Search: Windows Market Share" href="http://www.google.com/search?q=windows+market+share" target="_blank">Windows keeping its market share well over 85%</a>, it&#8217;s little wonder that it&#8217;s the prime market for attacks and exploits. And, while I won&#8217;t argue that some of the choices they&#8217;ve made over the years haven&#8217;t affected the vulnerability, the real point is that there is simply more sensetive data to be gathered from Windows users, and more &#8220;research&#8221; done into the field of Windows hacking.</p>
<p>Enter the iPhone &#8220;virus.&#8221;  There are <a title="Mashable: iPhone Virus" href="http://mashable.com/2009/07/30/iphone-virus/" target="_blank">several</a> <a title="QuickPwn: iPhone Virus" href="http://www.quickpwn.com/2009/07/iphone-virus.html" target="_blank">blogs</a> and <a title="Business Week: The Truth About the iPhone Virus" href="http://www.businessweek.com/technology/ByteOfTheApple/blog/archives/2009/07/the_truth_about.html" target="_blank">articles</a> talking about it, and it seems that a dull roar is arising of people clamoring that there is a horrible problem here, and they&#8217;re right&#8230; ish.  While certainly any security breech allowing an attacker not only complete control over and access to your data and device is a tremendous issue, you have to balance this issue with reason.  Charlie Miller, discoverer of the vulnerability, admonishes users not to jump ship yet &#8212; at best, would-be attackers are weeks away from a workable piece of malware.</p>
<blockquote><p><q>&#8220;It’s extremely hard.  It took me two-and-a-half weeks to write the code for this. If there were a bad guy who wanted to attach something like a virus to this exploit, it would realistically take a few weeks if not longer for them to carry it out.&#8221;</q></p></blockquote>
<p>What this means to you is that panicking and turning off your phone right this instant is probably an overreaction; then again, with an apparent lack of response from AT&amp;T about the issue, don&#8217;t just turn off the alarm in your head just yet.  If this issue is not addressed, an event that yours truly finds just a bit unlikely, then yes, feel free to panic, scream, rant, rave, and yell at Customer Service all the live-long day until they address the issue, but don&#8217;t have a heart attack <em>today</em>.</p>
<p>Certainly, the scariest part of this issue is that you really don&#8217;t have to do <em>anything</em> for this to affect you; simply by having adopted, as almost all of us have, technology that uses the current SMS specification, your smartphone is vulnerable.  Keeping in mind a certain amount of concern, and certainly the response of major phone carriers and manufacturers over the coming weeks will be the gauge by which we measure this, it simply isn&#8217;t necessary to jump overboard&#8230; yet.</p>
<p>Now, I have to admit, I do take a small amount of sick pleasure in seeing an Apple product fall susceptible to an issue this potentially massive, if only to have the slight personal vindication of knowing the truth: Everything is vulnerable, given someone takes enough time to bother attacking it.  To this end, <a title="Apple Computers Vulnerable To Malware" href="http://www.smartcompany.com.au/information-technology/20090731-apple-computers-vulnerable-to-new-cyber-attacks-expert-warns.html" target="_blank"><strong>Dai Zovi</strong> warned at a Las Vegas security conference</a> that <q>&#8220;There is no magic fairy dust protecting Macs.&#8221;</q> As they gain in market share, as they become more and more ubiquitous, they become more and more vulnerable.  According to Zovi, there is more code in the Mac OS than in Windows, something which provides would-be attackers with even more vulnerabilities to exploit.</p>
<p>Of course, at the end of the day, all this really means is that every user, no matter their OS or hardware choice, must exersize caution.  Thinking that you can&#8217;t be targetted by someone just because you use Product X is a ridiculous security plan that will only end in heartbreak.  To put it succinctly, for the desktop computing world, I Told You So.</p>
<p>As for the SMS vulnerability for smartphones, it&#8217;s in the hands of the big boys now;  We&#8217;ve trusted them to look out for us for some time, but the coming weeks will be a testament to how well founded that trust has been.  Here&#8217;s hoping we haven&#8217;t been just a bunch of lemmings.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dereleased.com/2009/07/31/smartphones-affected-by-malware-welcome-to-the-club/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

