<?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>ClickPopMedia &#187; Sean</title>
	<atom:link href="http://www.clickpopmedia.com/category/sean/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.clickpopmedia.com</link>
	<description>ClickPopMedia is a great little design and illustration firm.</description>
	<lastBuildDate>Thu, 03 Dec 2009 17:28:23 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Mozilla Store got hacked?  Don&#8217;t let it happen to you.</title>
		<link>http://www.clickpopmedia.com/2009/08/05/mozilla-store-got-hacked-dont-let-it-happen-to-you/</link>
		<comments>http://www.clickpopmedia.com/2009/08/05/mozilla-store-got-hacked-dont-let-it-happen-to-you/#comments</comments>
		<pubDate>Wed, 05 Aug 2009 22:16:05 +0000</pubDate>
		<dc:creator>Sean</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Sean]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.clickpopmedia.com/?p=512</guid>
		<description><![CDATA[Unfortunately I have been extremely busy and have been neglecting some of my things which I wanted to do on this here site, primarily my authentication system.  Not too long ago I wrote a post on password security and storage.  I have become very security conscious in the past couple years, staying on top [...]]]></description>
			<content:encoded><![CDATA[<p>Unfortunately I have been extremely busy and have been neglecting some of my things which I wanted to do on this here site, primarily my authentication system.  Not too long ago I wrote a post on <a title="Password information storage and security" href="http://www.clickpopmedia.com/2009/03/26/password-information-storage-and-security/">password security and storage</a>.  I have become very security conscious in the past couple years, staying on top of ways to secure data stored in databases, primarily securing passwords and other sensitive material.  I voiced my opinion that sites should NEVER store passwords in an unencrypted fashion (plain text) or even a form of encryption that is easily undone.  I know this can be a pain in the butt, but unfortunately it&#8217;s a necessity now days to secure your client&#8217;s data.  Today I received an email from the Mozilla Store, warning me that their site had been hacked.  Allow me to share this email with you. (I have highlighted the scariest part in red)</p>
<blockquote><p>
August 05, 2009</p>
<p>Dear Valued Mozilla Customer:</p>
<p>It has been brought to our attention that the Mozilla Store www.store.mozilla.org has had a security breach. We take all security breaches very seriously, and are working hard to determine the extent of the violation. In the meantime, the site has been taken down as a protective measure.  </p>
<p><span style="color: #ff0000;"><strong>At this time we do not believe any credit card information has been compromised.  However, some Mozilla Store customers&#8217; user names and passwords have been exposed.  It is our strong recommendation that all Mozilla Store customers proactively change their user name and passwords for their Mozilla Store account and all other accounts that use the same information.</strong></span>  We will not bring the site back up until we are confident that we have addressed all security issues. A notification will be sent to you when the site goes back up.</p>
<p>GatewayCDI apologizes for any inconvenience this may cause.  We value our customers and their online security is a top priority to our organization.</p>
<p>Sincerely,</p>
<p>Conrad Franey<br />
Chief Marketing Officer<br />
GatewayCDI
</p></blockquote>
<p>There are 3 major things I&#8217;d like to discuss about this.  The first is the obvious, if they had used safe storage techniques; the probability of their password list being compromised would have been practically eliminated.  I cannot stress that enough, if a password is in the database as plain text, it will be compromised, I know that means you can&#8217;t just send a user their password when they forget, but that&#8217;s ok&#8230; it&#8217;s not a huge hassle to change a password.  The second topic is users that &#8220;use the same information&#8221;.  Granted, most of us are guilty of this at some point or another.  We all have favorite passwords that we like to use.  I personally try to make classifications of passwords for different types of sites, but sometimes I find myself using a &#8220;default&#8221; password out of habit.   Please, people, one of the best ways you can protect yourself on the internet is to use different passwords.  If not for everything, don&#8217;t use the same password for sites like facebook, myspace, or twitter that you would use for your bank or email account.  The third MAJOR topic that I feel needs to be discussed is in regard to that first sentence that&#8217;s highlighted in red.  &#8220;At this time we do not believe any credit card information has been compromised.&#8221;  This should not even be a fear.  Under no circumstances should you store your credit card on any sites database, and under no circumstance should any site store it without your asking.  After a transaction is completed, the only thing that should remain is the authorization number, order number, and the last 4 digits of the card.  That is all the bank and the company should EVER need to look up a transaction.  Verifying identity using a credit card number is a terrible thing, and any company that does so should be avoided.  I am hoping that the reason they do not believe any credit card #s were stolen is because they don&#8217;t store them&#8230; but only time will tell.</p>
<p>Ok, enough ranting and raving from me.  I have spoken my mind on this topic, now I will shut up and let you all get back to your days.  Just remember, sites do not always practice safe storage procedures, so the best protection from identity theft is still your common sense, so use it!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.clickpopmedia.com/2009/08/05/mozilla-store-got-hacked-dont-let-it-happen-to-you/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Password information storage and security</title>
		<link>http://www.clickpopmedia.com/2009/03/26/password-information-storage-and-security/</link>
		<comments>http://www.clickpopmedia.com/2009/03/26/password-information-storage-and-security/#comments</comments>
		<pubDate>Thu, 26 Mar 2009 06:06:11 +0000</pubDate>
		<dc:creator>Sean</dc:creator>
				<category><![CDATA[Sean]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[checksum]]></category>
		<category><![CDATA[hash]]></category>
		<category><![CDATA[md5]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[passwords]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[user authentication]]></category>

		<guid isPermaLink="false">http://www.clickpopmedia.com/?p=470</guid>
		<description><![CDATA[There are several techniques used for storing passwords; some are very good, while some are downright terrible.  Without mentioning the name of the organizations (for security purposes), I am, and have been associated with 2 groups that, without a doubt in my mind, store passwords in an extremely insecure manner.  And of course, they&#8217;re not [...]]]></description>
			<content:encoded><![CDATA[<p>There are several techniques used for storing passwords; some are very good, while some are downright terrible.  Without mentioning the name of the organizations (for security purposes), I am, and have been associated with 2 groups that, without a doubt in my mind, store passwords in an extremely insecure manner.  And of course, they&#8217;re not alone.</p>
<p>It is easy to spot an organization that stores passwords either completely unencrypted or encrypted using a method that allows for decryption easily.  One method to spot this insecure behavior is the ability to &#8220;recover your password&#8221; without the need of resetting it.  If you can recover your password, then someone else can easily access it as well (with the right tools).  Another method is one to spot carefully&#8230; it&#8217;s not to fear when a company requires your password to be different from your previous X passwords, but when they also look for similarities and judge your password to be &#8220;too close&#8221;.  This may come off as being a very secure tactic, when indeed it must mean that they are storing not just one, but several old passwords in a way that would make them, once again, an easy target.</p>
<p>So now we know some things to spot visibly that should throw up some caution flags.  What else is there to know.  There are methods of storing passwords that are more secure.  For instance, storing a &#8220;hash&#8221; or checksum of a password using an irreversible, or one-way, algorithm is a good start.  There are several hashing methods out there, some of which are better than others, but before we continue, allow me to explain what a hash is and how it can benefit secure data storage.<span id="more-470"></span></p>
<p>Sparing you from all the techno-jargon, a &#8220;hash&#8221; or checksum is an &#8220;encrypted&#8221; form of a variable.  That&#8217;s a few quotes thrown in there, technically the term hash is misused by the Internet community as is encrypted when talking about a checksum.  Encrypted would technically make the statement that the process is reversible using some sort of key.  When in all actuality there is no key, it is a one-way cypher resulting in a fixed length string of letters and numbers that is unique to the variable data.  A common hash string (MD5) is 128-bit or 32 hexadecimal characters.  In short you have 32 characters ranging from 0-9 and A-F, 16 possible choices for each character position, giving you approximately 340,000,000,000,000,000,000,000,000,000,000,000,000 possibilities.  This doesn&#8217;t eliminate the possibility of duplicate checksums, but obviously the chances of that occurrence are highly unlikely.  The benefit of storing a data in &#8220;hash&#8221; form is that if a person gets a hold of a list of passwords, they are much easier to enter than if they get a hold of just your password hashes, but there is still a weakness.</p>
<p>Passwords are only as good as the people that make them.  Of course a developer can submit their users to a multitude of password rules, eliminating common passwords and other occurrences, but you&#8217;re still left with the possibility of 2 people having the same password.  If 2 people have the same password, they therefor have the same hash.  So how do we eliminate this?  Now it&#8217;s getting fun!</p>
<p>Eliminating possible duplicate hashes in your database is the fun part, and the part that can really help you push forward into the realm of password security.  Salting your passwords is the easiest method to eliminate this rare phenomenon. A salt is small bit of data added &#8220;somewhere&#8221; to your password string.  As I said, this is where it can be a lot of fun if you&#8217;re creative.  The salt has to be stored, and should be unique to each individual user, otherwise you still have the possibility of identical hashes with the same password.  Attaching information collected during the registration process is a good start, or even using the &#8220;id&#8221; of the user.  Or you can be creative and use multiple items or even multiple times of running it through a hashing function.  This ultimately will be up to you, but I will give you a little guidance.</p>
<p>For convenience we will keep this easy.  The salt variable will be left undetermined in this sample so that you can fill it in with whatever you like.  Feel free to play around with it.</p>
<p><strong>&lt;?php<br />
$salt=X;  //undetermined, replace X with something of your choosing.<br />
$password=$_REQUEST['password'];  //Sent from a form, or other type of post/get data set.<br />
$seasoned_password=$salt.$password; //This will joint the 2 together;<br />
$password_hash=md5($seasoned_password);  //This can now be stored in the database along with the salt.</strong><br />
?&gt;</p>
<p>Storing a salted hashed password will effectively eliminate the chances for duplicate password hashes, as long as the salt is wide enough variable.  Remember never to store your salt as it&#8217;s own field, hide it as something else.</p>
<p>I am indeed sorry if this was a little long and drawn out.  Security is not something to be taken lightly, and I hope this helps give insight in to how you can help protect your users passwords as well as the data you wish to protect.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.clickpopmedia.com/2009/03/26/password-information-storage-and-security/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Introduction to my PHP/MySQL User Authentication system</title>
		<link>http://www.clickpopmedia.com/2009/02/20/introduction-to-my-phpmysql-user-authentication-system/</link>
		<comments>http://www.clickpopmedia.com/2009/02/20/introduction-to-my-phpmysql-user-authentication-system/#comments</comments>
		<pubDate>Sat, 21 Feb 2009 02:45:42 +0000</pubDate>
		<dc:creator>Sean</dc:creator>
				<category><![CDATA[Sean]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[sean metzgar]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[user authentication]]></category>

		<guid isPermaLink="false">http://www.clickpopmedia.com/2009/02/20/introduction-to-my-phpmysql-user-authentication-system/</guid>
		<description><![CDATA[I thought I&#8217;d take a few minutes to go over the basics of what I&#8217;m going to be accomplishing over the next few weeks.  I plan on guiding everyone through some of the basics of building your own user authentication system.  This will include many segments varying from storing password information securely, user [...]]]></description>
			<content:encoded><![CDATA[<p>I thought I&#8217;d take a few minutes to go over the basics of what I&#8217;m going to be accomplishing over the next few weeks.  I plan on guiding everyone through some of the basics of building your own user authentication system.  This will include many segments varying from storing password information securely, user registration (and required information), password recovery vs. password reset, analyzing security vulnerabilities, possible applications and a wide variety of other topics that could possibly go along.</p>
<p>I will be starting off with a very basic set of security rules that you will need to keep in mind in order to maintain a secure list of users and password information.  Without going in to further details, I can&#8217;t stress enough the huge mistake that many authentication systems use by limiting the size, type, and strength of a users passwords as well as the mistake of how the information is stored.  I plan on analyzing a few preexisting systems and show some fundamental flaws associated with them, and provide tips to help safeguard your data from any unwanted guests.</p>
<p>Please be sure to check back soon, as I will be posting in the next few days.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.clickpopmedia.com/2009/02/20/introduction-to-my-phpmysql-user-authentication-system/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

