<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/rss-style.xsl" type="text/xsl"?>
<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>passwords &#8211; Terence Eden’s Blog</title>
	<atom:link href="https://shkspr.mobi/blog/tag/passwords/feed/" rel="self" type="application/rss+xml" />
	<link>https://shkspr.mobi/blog</link>
	<description>Regular nonsense about tech and its effects 🙃</description>
	<lastBuildDate>Tue, 24 Feb 2026 09:51:32 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://shkspr.mobi/blog/wp-content/uploads/2023/07/cropped-avatar-32x32.jpeg</url>
	<title>passwords &#8211; Terence Eden’s Blog</title>
	<link>https://shkspr.mobi/blog</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title><![CDATA[Your Password Algorithm Sucks]]></title>
		<link>https://shkspr.mobi/blog/2025/06/your-password-algorithm-sucks/</link>
					<comments>https://shkspr.mobi/blog/2025/06/your-password-algorithm-sucks/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Mon, 16 Jun 2025 11:34:07 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[CyberSecurity]]></category>
		<category><![CDATA[passwords]]></category>
		<category><![CDATA[security]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=61259</guid>

					<description><![CDATA[There are two sorts of people in the world; those who know they are stupid and those who think they are clever.  Stupid people use a password manager. They know they can&#039;t remember a hundred different passwords and so outsource the thinking to something reasonably secure. I&#039;m a stupid person and am very happy to have BitWarden generate and save fiendishly complex unique passwords which are then…]]></description>
										<content:encoded><![CDATA[<p>There are two sorts of people in the world; those who know they are stupid and those who think they are clever.</p>

<p>Stupid people use a password manager. They know they can't remember a hundred different passwords and so outsource the thinking to something reasonably secure. I'm a stupid person and am very happy to have BitWarden generate and save fiendishly complex unique passwords which are then protected by the app's MFA. Lovely!</p>

<p>But people who think they are clever decide to bypass that and use their own super-secret algorithm.</p>

<p>Every clever person's algorithm boils down to the same thing:</p>

<ol>
<li>Have a single strong main password.</li>
<li>Add to it some information related to the service.</li>
</ol>

<p>For example <code>P@ssw0rd!_facebook</code> and <code>P@ssw0rd!_linkedin</code>. On the surface, that's quite an attractive proposition. You remember one thing and you don't need to trust a password manager.</p>

<p>People who are <em>extra</em> clever use the same algorithm but wrap it in a command-line function which XORs both pieces of data, creates a SHA-512 hash, takes every prime numbered bit, converts to ASCII, and uses <em>that</em> to generate a password. <a href="https://www.youtube.com/watch?v=ls5BFzuxGw4">Smart!</a></p>

<p>Either way, these algorithms <strong>suck!</strong>  Let me explain why.</p>

<h2 id="password-leaking"><a href="https://shkspr.mobi/blog/2025/06/your-password-algorithm-sucks/#password-leaking">Password Leaking</a></h2>

<p>One day, LinkedIn decides to <a href="https://www.linkedin.com/blog/member/trust-and-safety/protecting-our-members">LeakedOut its users' passwords</a>. Anyone who can see <code>P@ssw0rd!_linkedin</code> can make a pretty good guess at your password for Facebook, banking, dating, and shopping etc.  This means you now need to change <em>every</em> password that you have.</p>

<p>Even if you have used some amazing cryptographic powerhouse of an algorithm, there's still a chance you'll accidentally leak it or get so paranoid that you decide to invalidate it. Now you need to change your password on hundreds of sites.</p>

<h2 id="password-rotation"><a href="https://shkspr.mobi/blog/2025/06/your-password-algorithm-sucks/#password-rotation">Password Rotation</a></h2>

<p>We all know that it is <a href="https://www.ncsc.gov.uk/collection/passwords/updating-your-approach">a bad idea to ask your users to regularly change their passwords</a> - yet sites often persist in doing so.</p>

<p>How does your algorithm cope with this?</p>

<p>Do you have to remember that it is <code>P@ssw0rd!_facebook_1</code> and <code>P@ssw0rd!_linkedin_23</code>?</p>

<p>Perhaps you'll write down all the suffixes and find a way to store them securely - like, say, a password manager?</p>

<h2 id="password-requirements"><a href="https://shkspr.mobi/blog/2025/06/your-password-algorithm-sucks/#password-requirements">Password Requirements</a></h2>

<p>One site says "Your password <em>must</em> contain a special character and a number" another says "You can use any special character <em>except</em> % or ?" another refuses to let your password contain two consecutive identical characters, or it <em>must</em> start with a number, or it cannot be longer than 12 characters. Yes, I know password rules like this aren't sensible - but they <em>are</em> common.</p>

<p>How does your algorithm cope with that?</p>

<p>If you manually have to tweak a couple of dozen passwords generated by your algorithm, you are going to tie yourself in knots remembering the arcane requirements for each one.</p>

<h2 id="be-stupid-use-a-password-manager"><a href="https://shkspr.mobi/blog/2025/06/your-password-algorithm-sucks/#be-stupid-use-a-password-manager">Be Stupid - Use A Password Manager</a></h2>

<p>Humans are stupid<sup id="fnref:not"><a href="https://shkspr.mobi/blog/2025/06/your-password-algorithm-sucks/#fn:not" class="footnote-ref" title="Not you, of course. You're mummy's extra-special boy who never makes mistakes." role="doc-noteref">0</a></sup>. Humans get tired, forgetful, or sick. Our delicious meaty brains are not optimised to remember long strings of complex information or hundreds of rarely used combinations. Knowing that you know not is a super-power. It allows you to offload things that you don't understand to something more competent.</p>

<p>Pick a password manager. Secure it with a reasonably strong password and multi-factor authentication. Let it do the hard work of remembering.</p>

<div id="footnotes" role="doc-endnotes">
<hr aria-label="Footnotes">
<ol start="0">

<li id="fn:not">
<p>Not you, of course. You're mummy's extra-special boy who never makes mistakes.&nbsp;<a href="https://shkspr.mobi/blog/2025/06/your-password-algorithm-sucks/#fnref:not" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>

</ol>
</div>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=61259&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2025/06/your-password-algorithm-sucks/feed/</wfw:commentRss>
			<slash:comments>18</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Password Resets in an Age of MFA]]></title>
		<link>https://shkspr.mobi/blog/2024/07/password-resets-in-an-age-of-mfa/</link>
					<comments>https://shkspr.mobi/blog/2024/07/password-resets-in-an-age-of-mfa/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Mon, 01 Jul 2024 11:34:05 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[2fa]]></category>
		<category><![CDATA[CyberSecurity]]></category>
		<category><![CDATA[MFA]]></category>
		<category><![CDATA[passwords]]></category>
		<category><![CDATA[totp]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=51014</guid>

					<description><![CDATA[Recently, WordPress got in contact with me to say they suspect that my password was exposed in some sort of data breach. Well, it&#039;s a day ending with a &#34;y&#34; - so of course some scumbag has pilfered my digital identity.  WordPress mandated that I change my password. But was that really necessary?  Firstly, the password was uniquely generated by my password manager. It isn&#039;t re-used anywhere else.…]]></description>
										<content:encoded><![CDATA[<p>Recently, WordPress got in contact with me to say they suspect that my password was exposed in some sort of data breach. Well, it's a day ending with a "y" - so of course some scumbag has pilfered my digital identity.</p>

<p>WordPress mandated that I change my password. But was that really necessary?</p>

<p>Firstly, the password was uniquely generated by my password manager<sup id="fnref:password"><a href="https://shkspr.mobi/blog/2024/07/password-resets-in-an-age-of-mfa/#fn:password" class="footnote-ref" title="It was w@&amp;7%GUznK#9^}<S5 if you must know." role="doc-noteref">0</a></sup>. It isn't re-used anywhere else. So there is no chance of hackers breaking in to my email, bank, or OnlyFans account<sup id="fnref:OF"><a href="https://shkspr.mobi/blog/2024/07/password-resets-in-an-age-of-mfa/#fn:OF" class="footnote-ref" title="Lots of weirdos want to buy videos of me recompiling Linux while in my pants. Who am I to judge?" role="doc-noteref">1</a></sup>.</p>

<p>Secondly, and more importantly, I have 2FA app which provides me with a TOTP code every time I want to log in. Even if the evil ne'erdowells have my username <em>and</em> password, they can't get in without the MFA code<sup id="fnref:2FA"><a href="https://shkspr.mobi/blog/2024/07/password-resets-in-an-age-of-mfa/#fn:2FA" class="footnote-ref" title="It is currently 194 685." role="doc-noteref">2</a></sup>.</p>

<p>So, should I change my password?</p>

<p>To understand this, it's worth considering the risks - both of action and inaction.</p>

<p>Changing a password isn't without risk.</p>

<ul>
<li>Perhaps some long-forgotten app or service relies on that password. If I change it, what will break?</li>
<li>Do I trust my password manager to give me a strong password?</li>
<li>What if the original email is a phishing attempt and I end up giving the baddies my credentials?</li>
<li>Can I be bothered spending the time maintaining this old account?</li>
</ul>

<p>As for the risk of inaction.</p>

<ul>
<li>Using my details, a miscreant <em>might</em> convince WordPress to disable MFA on my account.</li>
<li>If there was a breach, my MFA seed secret might also have been stolen.</li>
</ul>

<p>On balance… yeah, obviously I should change my password. It is a 30 second job with a decent password manager. But, I might argue, there isn't much <em>urgency</em> in doing so.</p>

<ul>
<li>A strong and unique password means there is no risk of collateral damage to other accounts.</li>
<li>The use of MFA adds an extra layer of protection which buys you time.</li>
</ul>

<p>Thankfully, we've moved on from the outdated advice to <a href="https://www.ncsc.gov.uk/collection/passwords/updating-your-approach#PasswordGuidance:UpdatingYourApproach-Don'tenforceregularpasswordexpiry">regularly change your password</a>.  Now we only have to change them when there's been a breach. Which, coincidentally, is every 30 days…</p>

<p>The future ain't what it used to be!</p>

<div id="footnotes" role="doc-endnotes">
<hr aria-label="Footnotes">
<ol start="0">

<li id="fn:password">
<p>It was <code>w@&amp;7%GUznK#9^}&lt;S5</code> if you must know.&nbsp;<a href="https://shkspr.mobi/blog/2024/07/password-resets-in-an-age-of-mfa/#fnref:password" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>

<li id="fn:OF">
<p>Lots of weirdos want to buy videos of me recompiling Linux while in my pants. Who am I to judge?&nbsp;<a href="https://shkspr.mobi/blog/2024/07/password-resets-in-an-age-of-mfa/#fnref:OF" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>

<li id="fn:2FA">
<p>It is currently <code>194 685</code>.&nbsp;<a href="https://shkspr.mobi/blog/2024/07/password-resets-in-an-age-of-mfa/#fnref:2FA" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>

</ol>
</div>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=51014&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2024/07/password-resets-in-an-age-of-mfa/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[What's the optimal length for a 2FA code?]]></title>
		<link>https://shkspr.mobi/blog/2022/08/whats-the-optimal-length-for-a-2fa-code/</link>
					<comments>https://shkspr.mobi/blog/2022/08/whats-the-optimal-length-for-a-2fa-code/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Thu, 18 Aug 2022 11:34:12 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[2fa]]></category>
		<category><![CDATA[passwords]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[sms]]></category>
		<category><![CDATA[usability]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=43361</guid>

					<description><![CDATA[The other day, a company sent me a 2FA code which was only four digits long.    I&#039;ll admit, this weirded me out. Surely 4 is just far too short. Right? I think almost every 2FA code I&#039;ve seen has been 6 digits long. Even back in the days of carrying one of those physical RSA fobs, 6 has been the magic number.  But why?  A 2FA code is meant to prevent a specific class of problem. If an attacker…]]></description>
										<content:encoded><![CDATA[<p>The other day, a company sent me a 2FA code which was only <em>four</em> digits long.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2022/08/2FA.png" alt="Screenshot of a text message. It says &quot;Your one time passcode is 1031.&quot;" width="465" height="176" class="aligncenter size-full wp-image-43362">

<p>I'll admit, this weirded me out. <em>Surely</em> 4 is just far too short. Right? I think almost every 2FA code I've seen has been 6 digits long. Even back in the days of carrying one of those physical RSA fobs, 6 has been the magic number.</p>

<p>But why?</p>

<p>A 2FA code is meant to prevent a specific class of problem. If an attacker has got hold of something you are (your username<sup id="fnref:un"><a href="https://shkspr.mobi/blog/2022/08/whats-the-optimal-length-for-a-2fa-code/#fn:un" class="footnote-ref" title="Traditionally, the something you are is a biometric. However biometrics are static - they never alter. So they're poor for some choices of authentication. A username represents something you are.…" role="doc-noteref">0</a></sup>) and something you know (your password), you are still protected by something you have (your phone).  Whether your second-factor is an app generating unique codes, a SIM card receiving SMS<sup id="fnref:SMS"><a href="https://shkspr.mobi/blog/2022/08/whats-the-optimal-length-for-a-2fa-code/#fn:SMS" class="footnote-ref" title="Let's gloss over SMS being a bit vulnerable for now." role="doc-noteref">1</a></sup>, or a cryptographic enclave producing signed transactions - it doesn't matter. The attacker can use your password but won't get the unique second code.</p>

<p>Suppose you received a 2FA code that was a <em>single</em> digit. Is that secure enough?</p>

<p>I think most reasonable people would say that wasn't secure. An attacker has a 10% chance of guessing the 2FA. If the system allows for a couple of retries before locking them out, they've got a 30% chance of getting in.</p>

<p>Similarly a 2 or 3 digit code <em>probably</em> doesn't provide sufficient protection.</p>

<p>A typical bank card PIN is 4 digits. So an attacker has a 1 in 10,000 chance of guessing. That might be slightly better as bank PINs usually don't allow repeated digits, palindromes, and a few other combinations.</p>

<p>I suppose that if an attacker had compromised tens of thousands of credentials, and the service allowed for a few incorrect entries, it is statistically likely that they might be able to compromise a few accounts if they were only protected by 4 digits.</p>

<p>As 2FA codes get longer, they begin to <a href="https://en.wikipedia.org/wiki/The_Magical_Number_Seven,_Plus_or_Minus_Two">reach the limits of what humans can remember</a>. Yes, I know <em>you</em> have an excellent memory - but not everyone does. And I know <em>your</em> fancy 2FA app automatically copies and pastes the codes - but not everyone does. We have to work to what the average user is capable of at a minimum.</p>

<p>I think most people would find it annoying - if not impossible - to remember a 10 digit one-time password.</p>

<p>If you're copying a code from your phone to type into your laptop, there's probably an upper limit on what people will be prepared to do. No one is going to manually transcribe 128 digits. And, if they did, they'd likely introduce several errors.</p>

<p>So the industry has seemingly settled on 6 digits.  I've ranted before about the <a href="https://shkspr.mobi/blog/2022/05/why-is-there-no-formal-specification-for-otpauth-urls/">lack of standardisation in the OTP specification</a>. But all of them seem to allow 6 - 8 digits.</p>

<p>I <em>suspect</em> 6 is the standard because that's what the original RSA SecurID tokens used by default.</p>

<p><a href="https://commons.wikimedia.org/wiki/File:RSA_SecurID_Token_Old.jpg#/media/File:RSA_SecurID_Token_Old.jpg"><img class="aligncenter size-full" src="https://upload.wikimedia.org/wikipedia/commons/8/8a/RSA_SecurID_Token_Old.jpg" alt="RSA SecurID Token Old.jpg" width="480"></a></p>

<p>An attacker would have to be <em>incredibly</em> lucky to randomly guess a 6 digit code - literally a one-in-a-million chance<sup id="fnref:pterry"><a href="https://shkspr.mobi/blog/2022/08/whats-the-optimal-length-for-a-2fa-code/#fn:pterry" class="footnote-ref" title="Although, as per Terry Pratchett: &quot;Million-to-one chances crop up nine times out of ten.&quot;" role="doc-noteref">2</a></sup>. Even if they had multiple retries, it's still statistically unlikely.</p>

<p>Once I logged in using my 4 digit code, I had full access to my account. But if I wanted to make any changes, I had to wait for <em>another</em> 2FA code to be sent. So I guess the effective length of code was actually 8 digits. Which seems excessive 🤣</p>

<h2 id="thoughts-from-the-community"><a href="https://shkspr.mobi/blog/2022/08/whats-the-optimal-length-for-a-2fa-code/#thoughts-from-the-community">Thoughts from the community</a></h2>

<p>I asked my Twitter buddies for their wisdom:</p>

<blockquote class="social-embed" id="social-embed-1556913475389112321" lang="en" itemscope="" itemtype="https://schema.org/SocialMediaPosting"><header class="social-embed-header" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><a href="https://twitter.com/ealexhudson" class="social-embed-user" itemprop="url"><img class="social-embed-avatar social-embed-avatar-circle" src="data:image/webp;base64,UklGRpIBAABXRUJQVlA4IIYBAADwCQCdASowADAAPrVQnUwnJKKiKrVdUOAWiWYAy17xxLilwRGsKKaBrtSlVqCDDbooT6Ycx6rD1oAGOFHttkSuEU6x1l1cvf9yluJ8OZ2BPON5+/sAX+UAAP736ZOmTSBJrik49a//CtWj4lKt4/fnen6qhFukanSjCWDpZLBKtgGAyXjEf7/YjUr3jHECKLuLpDirjPccuvjmJI3D3T8cOM+DggIN1sbqlgGh3LU03UZ4zJP+LOpQbXmyn/IK/+cFg3jNdY0xssXHx3JCF5/jOuJzw95QUBF9AqO17SPYEBbZQBzCUQwjZM8937rj5CSajmybm02kueMJyEsX9ws3sZ/sefJicrAxMByma5rDrkgz9eDLXNByhpXeGYsxOhXjXX4HLorswgNVBfk6rEAkWijB/QydZ5br0iFG2rz1ASgI6guMgaPutAs02lXf+Tmnj7KvmI3w8n0CODggLAX7ug6VK2kNjDCM2fcpdBKlo67Kk6wlVdrrdBusbiM1ust3E72tAAA=" alt="" itemprop="image"><div class="social-embed-user-names"><p class="social-embed-user-names-name" itemprop="name">Alex Hudson</p>@ealexhudson</div></a><img class="social-embed-logo" alt="Twitter" src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%0Aaria-label%3D%22Twitter%22%20role%3D%22img%22%0AviewBox%3D%220%200%20512%20512%22%3E%3Cpath%0Ad%3D%22m0%200H512V512H0%22%0Afill%3D%22%23fff%22%2F%3E%3Cpath%20fill%3D%22%231d9bf0%22%20d%3D%22m458%20140q-23%2010-45%2012%2025-15%2034-43-24%2014-50%2019a79%2079%200%2000-135%2072q-101-7-163-83a80%2080%200%200024%20106q-17%200-36-10s-3%2062%2064%2079q-19%205-36%201s15%2053%2074%2055q-50%2040-117%2033a224%20224%200%2000346-200q23-16%2040-41%22%2F%3E%3C%2Fsvg%3E"></header><section class="social-embed-text" itemprop="articleBody"><a href="https://twitter.com/edent">@edent</a> Depends on retry/lockout policy? 4 digits is enough for a bank card, but there is a physical token involved there - is the account as valuable as that, though?<br><br>Gut feeling is 6 digits is right for most circumstances though...</section><hr class="social-embed-hr"><footer class="social-embed-footer"><a href="https://twitter.com/ealexhudson/status/1556913475389112321"><span aria-label="2 likes" class="social-embed-meta">❤️ 2</span><span aria-label="0 replies" class="social-embed-meta">💬 0</span><span aria-label="0 reposts" class="social-embed-meta">🔁 0</span><time datetime="2022-08-09T08:01:13.000Z" itemprop="datePublished">08:01 - Tue 09 August 2022</time></a></footer></blockquote>

<blockquote class="social-embed" id="social-embed-1556914657276952578" lang="en" itemscope="" itemtype="https://schema.org/SocialMediaPosting"><header class="social-embed-header" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><a href="https://twitter.com/mmmmmrob" class="social-embed-user" itemprop="url"><img class="social-embed-avatar social-embed-avatar-circle" src="data:image/webp;base64,UklGRs4CAABXRUJQVlA4IMICAADQDACdASowADAAPrFImEmnJCIhMdzKAOAWCWoAnTNURThI/U/eX5BQB7Q/q3HR2d5oKymaf5W+Y+9emTgSClOfs8J3V311zXI91dxdvWIW6o5zr9y2kZvIyIEEVO7epO3EKz2d1KfKaPH+EMLNekAA/vva3bK12/RxZTnzmDJxI1qul/owczuZtp8UnG0Q5gppfhi8WwV+tgP3t7xwjxJsSRE2QCllVhIF8fKtbJPwn4+bFPLnsF0D/DDYiO023WAAueZlDEN1maitEPc9n4oG3Hy6MOpVPx7V5/LCKp7VQadQX+eEAPOtYqCxztzk9BF+YFiXc7093UpLBvxmtF+kUB2nNlOyGo94lUdFcVYSIA2xKxoKU6sIUQOFOsIAHm3/hpoDMvg1and0ZX/us3yv2wf1QbNVAT578dsaZLakagc9KRk1Tq84GOJHlUugtkQdVA5R6t7ovgySaZAd0lzulQ15J64j6ytZC7UPS9K3U56o6LNyDtYQFyJkcFV2nNfgiIpbKv/zFfxCHCAChLzbLEXJNwFQ871salvh6fQfuevpF43KmcIoOE6vzMjJ6NUnNagFJd/wiBX/dH9m+wbPtU1rzQ/z6v6POBHZ6jYsLvEuzS4NcaW9Ct9JthMiZn//qjb8kq1uPymoKCwshAh8d86CWZ/KtrZ2R3I2qJwjEVk91kd5yeCv/lqFT700s9WNTOEtLLARuQdko8O/FG6ZThgSIIhzmyBMWkaq/IYU0MV3nRS0YClqH448osDpssR2l3z14tG2/Q0DHefq96ijWryG/rc3bh26ElCgLbpQo4htoRSDjeWU0QRrItqBbne3yPp8aTKkEwW4B0recBVbApQxd7o2huUg7xA7epgdv6YnRvlT9lpoDSUTYmIK+93tpF6MkZ2dUtGvNzfQxnFgF5h8iJaZvqDet8KEkRa9AAAA" alt="" itemprop="image"><div class="social-embed-user-names"><p class="social-embed-user-names-name" itemprop="name">Rob Styles</p>@mmmmmrob</div></a><img class="social-embed-logo" alt="Twitter" src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%0Aaria-label%3D%22Twitter%22%20role%3D%22img%22%0AviewBox%3D%220%200%20512%20512%22%3E%3Cpath%0Ad%3D%22m0%200H512V512H0%22%0Afill%3D%22%23fff%22%2F%3E%3Cpath%20fill%3D%22%231d9bf0%22%20d%3D%22m458%20140q-23%2010-45%2012%2025-15%2034-43-24%2014-50%2019a79%2079%200%2000-135%2072q-101-7-163-83a80%2080%200%200024%20106q-17%200-36-10s-3%2062%2064%2079q-19%205-36%201s15%2053%2074%2055q-50%2040-117%2033a224%20224%200%2000346-200q23-16%2040-41%22%2F%3E%3C%2Fsvg%3E"></header><section class="social-embed-text" itemprop="articleBody"><small class="social-embed-reply"><a href="https://twitter.com/mmmmmrob/status/1556914260080574464">Replying to @mmmmmrob</a></small><a href="https://twitter.com/edent">@edent</a> 10,000 combinations is plenty to prevent guessing, and making the code longer doesn't add any additional protection if the message/device is compromised.<br><br>Making the code longer makes the usability exponentially worse when the code has to be re-keyed.</section><hr class="social-embed-hr"><footer class="social-embed-footer"><a href="https://twitter.com/mmmmmrob/status/1556914657276952578"><span aria-label="3 likes" class="social-embed-meta">❤️ 3</span><span aria-label="1 replies" class="social-embed-meta">💬 1</span><span aria-label="0 reposts" class="social-embed-meta">🔁 0</span><time datetime="2022-08-09T08:05:55.000Z" itemprop="datePublished">08:05 - Tue 09 August 2022</time></a></footer></blockquote>

<blockquote class="social-embed" id="social-embed-1556914899586097152" lang="en" itemscope="" itemtype="https://schema.org/SocialMediaPosting"><header class="social-embed-header" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><a href="https://twitter.com/artesea" class="social-embed-user" itemprop="url"><img class="social-embed-avatar social-embed-avatar-circle" src="data:image/webp;base64,UklGRu4CAABXRUJQVlA4IOICAADwDQCdASowADAAPqFAnEmmI6MhNVqtUMAUCWYAnTMORghYPKxsFSxtE9LpGXYDqFuFzktyCq7b0wO0RsJmHNeweFafikrmMH599Lox5OunwahAqBdrTgtP8ZBiS9Pm1VAhmoC69YffnE9bQOVxPQHYI0zCag7VdjwA/vitYb/vXsunqlYAIB+EGbWPCsrKIQv2Oc6OyRMQaAN+fqQgzOYVeK1cNEafM4mmRV31SP9D3L+5ZoK3g+LUEn71/jFbR57WoTprC0btsDxhY2jZGYOc6Ndd5e2PgcgJXxvv6Qm8ATMRM01UWDNQj0wfVd5G/9j37U9T6Nz8Oj5jLtY9O/NwhJ8VssvhVuu+va/AhYyCr0g8txxqI0gFm04gGYYykwMZC6HnVlQ6L7xLBfSto/gz19l0LSZUeUJVxKxSUt/pjgiP3T5OTTYeG6vYRtVqXBEW8E3hSnNP6StIX+h9OPdbMysgoOhHSk5JqtrEczqNPCKYm0Hpfqvc6WWgxEdTsC/7ieZ68uaOPx7iYATnb79uzIz2wejk+p68mpCoMyeQ8DIuhWRohbrip0GQjhO6vyLAarzQhDD/zdrTGZCYT6Tb5MDcMGlF2X5ZCX1D7QIQc+yFXgw8k9Xi1CroR6k5CwNQIjvzjVSCM8M6FT7puLCetfKk1waLVqnNVrkoEOLJqyP2DbPR0XHpe1A75W5er0Hg23ry45rpvUxuY8QOM5ZHyigDDS5CRO7fk7nCt7N7GU60ZuvzPaC2ilovOvelei940b62MG0EqT+Qb9EB18w12qvYTQcE7+hDmcge85MXNefa8M/hLtVxwg6YMdpLRQh1uQcNxTUqkuXyjB2mcQTesJRv8CHYwMbQEXe6kINcC0NECTKYmVjHJI/i8MzNMvepRSFxn0lOjTAwPLo3PgGLPlfWPh1jfdUuBNjbvYRLHpqPtvE8nzPtp6ndjSkwCCqIv+njlOa6DhSWkVYbT8lUAAA=" alt="" itemprop="image"><div class="social-embed-user-names"><p class="social-embed-user-names-name" itemprop="name">Ryan Cullen</p>@artesea</div></a><img class="social-embed-logo" alt="Twitter" src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%0Aaria-label%3D%22Twitter%22%20role%3D%22img%22%0AviewBox%3D%220%200%20512%20512%22%3E%3Cpath%0Ad%3D%22m0%200H512V512H0%22%0Afill%3D%22%23fff%22%2F%3E%3Cpath%20fill%3D%22%231d9bf0%22%20d%3D%22m458%20140q-23%2010-45%2012%2025-15%2034-43-24%2014-50%2019a79%2079%200%2000-135%2072q-101-7-163-83a80%2080%200%200024%20106q-17%200-36-10s-3%2062%2064%2079q-19%205-36%201s15%2053%2074%2055q-50%2040-117%2033a224%20224%200%2000346-200q23-16%2040-41%22%2F%3E%3C%2Fsvg%3E"></header><section class="social-embed-text" itemprop="articleBody"><a href="https://twitter.com/edent">@edent</a> Assuming just three retries before the code expires, 3 in 10,000 doesn't sound too bad. Also easy to remember whilst switching between the messaging app/notification shade and the app/website wanting it. I find with 6 I need to go back and forth. Worse with alphanumeric.</section><hr class="social-embed-hr"><footer class="social-embed-footer"><a href="https://twitter.com/artesea/status/1556914899586097152"><span aria-label="1 likes" class="social-embed-meta">❤️ 1</span><span aria-label="0 replies" class="social-embed-meta">💬 0</span><span aria-label="0 reposts" class="social-embed-meta">🔁 0</span><time datetime="2022-08-09T08:06:52.000Z" itemprop="datePublished">08:06 - Tue 09 August 2022</time></a></footer></blockquote>

<blockquote class="social-embed" id="social-embed-1556919005125959682" lang="en"><header class="social-embed-header"><a href="https://twitter.com/SecondeJ" class="social-embed-user"><img class="social-embed-avatar social-embed-avatar-circle" src="data:image/webp;base64,UklGRvIBAABXRUJQVlA4IOYBAABwCgCdASowADAAPrVIn0qnJCKhqrqtUOAWiWkAFHH0ydwtc5xhzmiebv2bnTxlsmFs0NlwWTsjE8aD6wQHa1iSjcFvOtjuOq0NIu1wMYhZTaLOW8z/BFqsc8vPAAD+/lZOcN3OyY3MgxtPdsxxWIATqQiZRRFxLIeWQsUJwEp5iPIAKUEGZAUYrXyEZewSGJluexFf58/IVYpD5e/dww4j2MpqdS6JkEstZHWP9NwC7SSXUw8KwTx3uh++nz+pd60lhPk5TgNBgD63PGm0wu7a5eIWaB2UKfhnx+NgxRHcSR8lCpd4TlY9EaKnzzQt63afSvzTVLlXNSY2VfE5ktHheUw4O/GNhv+IiaCw0TWDNMj77KcaQj7itsbKVlc6QFd9h5hjKfnkRZzuZfaF7m3aZBiXV7/UcggzMw5Y7sziStGlZKCuRAemAN+FwbhjlMnTYkw6YB/RsUriUmfJE2ciRFPPZZWY1S+KTWw+7t+80z/RSAz5jw8l/2fajz8PrbgsYneZulXMfYv220peM+dMpvKiaLc9LNkvT+oFvWqLxPdKBhRTz1Npxwfcc5MwyQHs5Xh1duniwuYFwTFNb/BassAlSAWMhaWTvLBH2QN4HPypvRRFwYgLerSJ94sndoJuGhZY4AA=" alt=""><div class="social-embed-user-names"><p class="social-embed-user-names-name">James Seconde</p>@SecondeJ</div></a><img class="social-embed-logo" alt="" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCmFyaWEtbGFiZWw9IlR3aXR0ZXIiIHJvbGU9ImltZyIKdmlld0JveD0iMCAwIDUxMiA1MTIiPjxwYXRoCmQ9Im0wIDBINTEyVjUxMkgwIgpmaWxsPSIjZmZmIi8+PHBhdGggZmlsbD0iIzFkOWJmMCIgZD0ibTQ1OCAxNDBxLTIzIDEwLTQ1IDEyIDI1LTE1IDM0LTQzLTI0IDE0LTUwIDE5YTc5IDc5IDAgMDAtMTM1IDcycS0xMDEtNy0xNjMtODNhODAgODAgMCAwMDI0IDEwNnEtMTcgMC0zNi0xMHMtMyA2MiA2NCA3OXEtMTkgNS0zNiAxczE1IDUzIDc0IDU1cS01MCA0MC0xMTcgMzNhMjI0IDIyNCAwIDAwMzQ2LTIwMHEyMy0xNiA0MC00MSIvPjwvc3ZnPg=="></header><section class="social-embed-text"><small class="social-embed-reply"><a href="https://twitter.com/mmmmmrob/status/1556915524352851968">Replying to @mmmmmrob</a></small><a href="https://twitter.com/mmmmmrob">@mmmmmrob</a> <a href="https://twitter.com/edent">@edent</a> For these sorts of reasons, this is why <a href="https://twitter.com/VonageDev">@VonageDev</a> 2FA (Verify) lets you choose between 4 and 6 digits</section><hr class="social-embed-hr"><footer class="social-embed-footer"><a href="https://web.archive.org/web/20220809082331/https://twitter.com/SecondeJ/status/1556919005125959682"><time datetime="2022-08-09T08:23:11.000Z">08:23 - Tue 09 August 2022</time></a></footer></blockquote>

<blockquote class="social-embed" id="social-embed-1556921468327526400" lang="en" itemscope="" itemtype="https://schema.org/SocialMediaPosting"><header class="social-embed-header" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><a href="https://twitter.com/RhidianB" class="social-embed-user" itemprop="url"><img class="social-embed-avatar social-embed-avatar-circle" src="data:image/webp;base64,UklGRpICAABXRUJQVlA4IIYCAACQDACdASowADAAPrVKn0snJCKhrjQMyOAWiWYArDlBUx5h/gL9zfB8ZoC4ynv7UdyG646dbL3p9j3zKshaYYXvMmz3qpbp+cayyYqgijvxjwdy95U4oNQPOaL6lBYRk9tnYrxhUVc+kFBp1CVAAOP15PA2z2fnN3X4doPJQt+udolFs1RYeQ1yLRD09AEHiRDNTMN7g67XVra7Z+lk7xX6c6lYKt9qAk/4gcE9Cakbhj1v5BlTCG1xE6U0NDtp/lXb/l1LNAoqO3w76iaWVMhQ4qpwsQDQldFjSDKrbqWcxi288o2NjVWoOTUQpZ9nBChqVSTeTQmdBSZOcg77zyGt1fl9NukWNntRETNjc7+Mub2Fe4EM7QhdmjiJ25CD6z+ndjR/SQUWK4wCPmPFNGdtcYoNzLY50xtnVgOVMQ4eh1w97+ekrS5evvyXBtg4e1wC5BykhqqhkkC7mAZWFmw7EukPIOF0by13A72NGv4jlpG9yA+krqgOMsR9UG/6Uv3zanlVfF8SJoP2EjLBcHvrTR1xgWwUTpkjoJVaqIb9OmurIzlqMEIEb9EnCWAexpmxd1MCcterEwhr6qaI1VS/i3stEh7OGFVzEQ9NKsz22P5nNC2D7lsSvppKeoErqW2GhxNh3MD7ZFSUmo7FVDYeI/KDVr9QPqMXbLIJ0FKzPJlbF5zygYidD8W0R2O3S8mehZBrw4VthIgoG2HINujBGqcUxtwtFPCE6qZbJkc3O8aMiaE9N+vShC79lRC8KIPCLFnX6NbD633LrPon00Vh5ujvR5AZongfVgMvaazMMC5jL2kZP+UuEozAwonj8UNX16F7Ja5zSuPQkB6TEEQ+G7ThAAAA" alt="" itemprop="image"><div class="social-embed-user-names"><p class="social-embed-user-names-name" itemprop="name">Rhidian Bramley</p>@RhidianB</div></a><img class="social-embed-logo" alt="Twitter" src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%0Aaria-label%3D%22Twitter%22%20role%3D%22img%22%0AviewBox%3D%220%200%20512%20512%22%3E%3Cpath%0Ad%3D%22m0%200H512V512H0%22%0Afill%3D%22%23fff%22%2F%3E%3Cpath%20fill%3D%22%231d9bf0%22%20d%3D%22m458%20140q-23%2010-45%2012%2025-15%2034-43-24%2014-50%2019a79%2079%200%2000-135%2072q-101-7-163-83a80%2080%200%200024%20106q-17%200-36-10s-3%2062%2064%2079q-19%205-36%201s15%2053%2074%2055q-50%2040-117%2033a224%20224%200%2000346-200q23-16%2040-41%22%2F%3E%3C%2Fsvg%3E"></header><section class="social-embed-text" itemprop="articleBody"><a href="https://twitter.com/edent">@edent</a> Zero digits. More user friendly and secure to send a hyperlink with a single use time limited encryption key. No heed to compromise usability vs security. Win win.</section><hr class="social-embed-hr"><footer class="social-embed-footer"><a href="https://twitter.com/RhidianB/status/1556921468327526400"><span aria-label="3 likes" class="social-embed-meta">❤️ 3</span><span aria-label="0 replies" class="social-embed-meta">💬 0</span><span aria-label="0 reposts" class="social-embed-meta">🔁 0</span><time datetime="2022-08-09T08:32:58.000Z" itemprop="datePublished">08:32 - Tue 09 August 2022</time></a></footer></blockquote>

<blockquote class="social-embed" id="social-embed-1556954933831897088" lang="en" itemscope="" itemtype="https://schema.org/SocialMediaPosting"><header class="social-embed-header" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><a href="https://twitter.com/quis" class="social-embed-user" itemprop="url"><img class="social-embed-avatar social-embed-avatar-circle" src="data:image/webp;base64,UklGRoYBAABXRUJQVlA4IHoBAADQCACdASowADAAPrVSpE4nJCMiJzgJIOAWiWkAEV08/izBiRMEUx29bYtJu4iuIYJDNOD4PcldUHN8sCPbFUBm6pn0grY4vTs4Rke99DHAAP781ihmB/6rrBLC3M/W5paQCHCxK2YR5eb1zKmNlIeaewvvcd53RCtN9SCSWq93KBbWw2EW++UL0QdVCXwnFonqq/k3DT0uWDTlDPtTehdUe5n1wnZNe0k4vI+x3/3WhQ4oC7CyElkIK+icri13wMpAzcnzW4gYn+AqCOslDYPiLI2UkQwg+47t8oY3GTJvbUnfI7Zn+26JHsOJk8UwJ3LGxIElc9zjz73eKJyQRrs3RHnRGjr88p/SpIJDMh8+BNTf0WWg67nuOdwPl27DYG7dUzKpQYK1r+3TKBZe0VJ2vlCzllOlN0mSqIEK734l25srPE/Z0nT0FQ9pCrG5oCYhjpH5RgGAtbILcD+HudXJshNnmygblEhFVYBTgtK9wNmWWZNmseh8AAA=" alt="" itemprop="image"><div class="social-embed-user-names"><p class="social-embed-user-names-name" itemprop="name">Chris Hill-Scott</p>@quis</div></a><img class="social-embed-logo" alt="Twitter" src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%0Aaria-label%3D%22Twitter%22%20role%3D%22img%22%0AviewBox%3D%220%200%20512%20512%22%3E%3Cpath%0Ad%3D%22m0%200H512V512H0%22%0Afill%3D%22%23fff%22%2F%3E%3Cpath%20fill%3D%22%231d9bf0%22%20d%3D%22m458%20140q-23%2010-45%2012%2025-15%2034-43-24%2014-50%2019a79%2079%200%2000-135%2072q-101-7-163-83a80%2080%200%200024%20106q-17%200-36-10s-3%2062%2064%2079q-19%205-36%201s15%2053%2074%2055q-50%2040-117%2033a224%20224%200%2000346-200q23-16%2040-41%22%2F%3E%3C%2Fsvg%3E"></header><section class="social-embed-text" itemprop="articleBody"><a href="https://twitter.com/edent">@edent</a> Design System says 5 digits: <a href="https://design-system.service.gov.uk/patterns/confirm-a-phone-number/">design-system.service.gov.uk/patterns/confi…</a><br><br>On Notify 2% of attempts are miskeyed – people with dyslexia probably disproportionately affected.<br><br>4 would be better – used by Airbnb and Uber – but you need stronger technical measures in place to prevent automated attacks.</section><hr class="social-embed-hr"><footer class="social-embed-footer"><a href="https://twitter.com/quis/status/1556954933831897088"><span aria-label="2 likes" class="social-embed-meta">❤️ 2</span><span aria-label="0 replies" class="social-embed-meta">💬 0</span><span aria-label="0 reposts" class="social-embed-meta">🔁 0</span><time datetime="2022-08-09T10:45:57.000Z" itemprop="datePublished">10:45 - Tue 09 August 2022</time></a></footer></blockquote>

<p>What do you think?</p>

<div id="footnotes" role="doc-endnotes">
<hr aria-label="Footnotes">
<ol start="0">

<li id="fn:un">
<p>Traditionally, the something you are is a biometric. However biometrics are static - they <em>never</em> alter. So they're poor for some choices of authentication. A username <em>represents</em> something you are. Everyone can see your username - just like everyone can see the fingerprints you leave on every touchscreen and the DNA you shed all over the place.&nbsp;<a href="https://shkspr.mobi/blog/2022/08/whats-the-optimal-length-for-a-2fa-code/#fnref:un" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>

<li id="fn:SMS">
<p>Let's gloss over <a href="https://www.issms2fasecure.com/">SMS being a bit vulnerable</a> for now.&nbsp;<a href="https://shkspr.mobi/blog/2022/08/whats-the-optimal-length-for-a-2fa-code/#fnref:SMS" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>

<li id="fn:pterry">
<p>Although, as per Terry Pratchett: <a href="https://en.wikiquote.org/wiki/Equal_Rites">"Million-to-one chances crop up nine times out of ten."</a>&nbsp;<a href="https://shkspr.mobi/blog/2022/08/whats-the-optimal-length-for-a-2fa-code/#fnref:pterry" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>

</ol>
</div>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=43361&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2022/08/whats-the-optimal-length-for-a-2fa-code/feed/</wfw:commentRss>
			<slash:comments>10</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[I've locked myself out of my digital life]]></title>
		<link>https://shkspr.mobi/blog/2022/06/ive-locked-myself-out-of-my-digital-life/</link>
					<comments>https://shkspr.mobi/blog/2022/06/ive-locked-myself-out-of-my-digital-life/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Tue, 07 Jun 2022 11:34:06 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[2fa]]></category>
		<category><![CDATA[passwords]]></category>
		<category><![CDATA[security]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=42735</guid>

					<description><![CDATA[Imagine…  Last night, lightning struck our house and burned it down. I escaped wearing only my nightclothes.  In an instant, everything was vaporised. Laptop? Cinders. Phone? Ashes. Home server? A smouldering wreck. Yubikey? A charred chunk of gristle.  This presents something of a problem.  In order to recover my digital life, I need to be able to log in to things. This means I need to know my u…]]></description>
										<content:encoded><![CDATA[<p>Imagine…</p>

<p>Last night, lightning struck our house and burned it down. I escaped wearing only my nightclothes.</p>

<p>In an instant, everything was vaporised. Laptop? Cinders. Phone? Ashes. Home server? A smouldering wreck. Yubikey? A charred chunk of gristle.</p>

<p>This presents something of a problem.</p>

<p>In order to recover my digital life, I need to be able to log in to things. This means I need to know my usernames (easy) and my passwords (hard). All my passwords are stored in a Password Manager. I <em>can</em> remember the password to that.  But logging in to the manager <em>also</em> requires a 2FA code.  Which is generated by my phone.</p>

<p>The phone which now looks like this:</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2022/05/Melted-Phone.webp" alt="A melted phone. Credit: Reddit user Crushader." width="720" height="480" class="aligncenter size-full wp-image-42781">

<p>Oh.</p>

<h2 id="backups"><a href="https://shkspr.mobi/blog/2022/06/ive-locked-myself-out-of-my-digital-life/#backups">Backups</a></h2>

<p>I'm relatively smart and sensible. I regularly exported my TOTP secrets and saved them in an encrypted file on my cloud storage - ready to be loaded onto a new phone.</p>

<p>But to get into my cloud, I need my password and 2FA.  And even if I could convince the cloud provider to bypass that and let me in, the backup is secured with a password which is stored in - you guessed it - my Password Manager.</p>

<p>I am in cyclic dependency hell.  To get my passwords, I need my 2FA. To get my 2FA, I need my passwords.</p>

<p>Perhaps I can use my MFA FIDO2 Key?</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2022/05/key-melted.jpg" alt="A melted security key. Photo taken from  A Side Journey To Titan: Revealing and Breaking NXP's P5x ECDSA Implementation on the Way." width="411" height="231" class="aligncenter size-full wp-image-42782">

<p>Oh.</p>

<h2 id="emergency-contacts"><a href="https://shkspr.mobi/blog/2022/06/ive-locked-myself-out-of-my-digital-life/#emergency-contacts">Emergency Contacts</a></h2>

<p>Various services allow a user to designate an "emergency contact". Someone who can access your account <i lang="la">in extremis</i>. Who do you trust enough with the keys to your digital life?</p>

<p>I chose my wife.</p>

<p>The wife who lives with me in the same house. And, obviously, has just lost all her worldly possessions in a freak lightning strike.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2022/05/ShadowRidgeRoadFire.jpg" alt="Photo of a house engulfed in flames. Photo taken by Wikimedia user LukeBam06." width="512" height="384" class="aligncenter size-full wp-image-42783">

<p>Oh.</p>

<h2 id="recovery-codes"><a href="https://shkspr.mobi/blog/2022/06/ive-locked-myself-out-of-my-digital-life/#recovery-codes">Recovery Codes</a></h2>

<p>Most online services which have Multi-Factor Authentication, also provide "recovery codes". They are, in effect, one-time override passwords.  A group of random characters which will bypass any security. Each can only be used once, and then is immediately revoked.</p>

<p>I was clever. I hand-wrote the codes on a piece of paper (so they can't be recovered from my printer's memory!) and stored them in a fire-proof safe, secured with a key hidden under the cat's litter-box.</p>

<p>Sadly, the fire-proof safe wasn't lightning-strike safe and is now obliterated. Along with the cat's litter-box. The cat is fine.</p>

<p>I know… I know… I <em>should</em> have kept them in a lock-box in my local bank. The only problem is, <a href="https://www.which.co.uk/news/article/ask-an-expert-my-bank-isnt-providing-safe-deposit-boxes-anymore-where-can-i-get-one-aTFbh0i7nezo">virtually no banks offer safe deposit boxes in the UK</a>. The one that does charges <a href="https://www.metrobankonline.co.uk/safe-deposit-boxes/">£240 per year</a>. A small price to pay, for some, to avoid irreversible loss. But it adds up to a significant ongoing cost.</p>

<p>But, suppose I had stored everything off-site. All I'd need to do is walk up to the bank and show some ID which proved that I was the authorised user of that box.</p>

<p>The ID which has just been sacrificed in tribute to mighty Thor and now looks like a melted waxwork.</p>

<p><a href="https://twitter.com/swestdahl/status/1533504584328523776"><img src="https://shkspr.mobi/blog/wp-content/uploads/2022/06/meltedID.png" alt="An AI generated image of a melted driver's licence." width="384" height="208" class="aligncenter size-full wp-image-42843"></a></p>

<p>Oh.</p>

<h2 id="friendly-neighbourhood-storage"><a href="https://shkspr.mobi/blog/2022/06/ive-locked-myself-out-of-my-digital-life/#friendly-neighbourhood-storage">Friendly Neighbourhood Storage</a></h2>

<p>Perhaps what I <em>should</em> have done is stored all my backup codes and recovery keys on a USB stick and then given them to a friend?</p>

<p>There are a few problems with that.</p>

<ol>
<li>Every time I sign up to a new service, I would need to add it to the USB stick. How many times can I pop round with a fresh stick before it becomes an imposition?</li>
<li>What if my friend (or their kid) accidentally wipes the drive?</li>
<li>If a freak lightning storms hits both our houses at the same time, I still lose everything.</li>
<li>Even if I did all that, I would have to give the USB stick a strong password to make sure my friend didn't betray me. So I either need to remember that, or I'm stuck in the password-manager-paradox.</li>
</ol>

<p>Perhaps I could split the USB sticks between multiple friends using <a href="https://en.wikipedia.org/wiki/Shamir%27s_Secret_Sharing">Shamir's Secret Sharing</a>? That solves some problems - mostly the accidental losses and remembering a strong password - but creates <em>even more</em> issues. Now I have to do a lot more admin <em>and</em> worry about all my friends conspiring against me!</p>

<h2 id="phone-home"><a href="https://shkspr.mobi/blog/2022/06/ive-locked-myself-out-of-my-digital-life/#phone-home">Phone Home</a></h2>

<p>One of the weakest forms of identity is the humble phone number. Several of my accounts use my mobile number to text me authorisation codes. SMS isn't the most secure way to deliver passwords - it can be intercepted or the SIM can be swapped to one controlled by an attacker. But, <em>if</em> I can get my phone number back, I stand a chance of getting in to my email and perhaps some other services.</p>

<p>That's a weakness in my security posture. But one I may need to take advantage of.</p>

<p>The only question is - how do I prove to the staff at my local phone shop that I am the rightful owner of a SIM card which is now little more than soot? Perhaps I can just rock up and say "Don't you know who I am?!?!"</p>

<p>I know, I'll show them my passport!</p>

<p><a title="Santeri Viinamäki, CC BY-SA 4.0 <https://creativecommons.org/licenses/by-sa/4.0>, via Wikimedia Commons" href="https://commons.wikimedia.org/wiki/File:Burning_EU_passport_20180318.jpg"><img width="512" alt="Burning EU passport 20180318" src="https://upload.wikimedia.org/wikipedia/commons/thumb/4/46/Burning_EU_passport_20180318.jpg/512px-Burning_EU_passport_20180318.jpg"></a></p>

<p>Oh.</p>

<h2 id="bootstrapping-of-trust"><a href="https://shkspr.mobi/blog/2022/06/ive-locked-myself-out-of-my-digital-life/#bootstrapping-of-trust">Bootstrapping of trust</a></h2>

<p>I am lucky. I have a nice middle-class life and know lots of professionals - doctors, lawyers, teachers - who I <em>hope</em> would be happy to vouch for me.  I could use one of my friends to <a href="https://www.gov.uk/confirm-identity-online-for-passport-application">confirm my identity for a replacement passport</a>.  Once I have a passport, I should be able to get a SIM card with my phone number. And, I hope, some online services.</p>

<p>I would, however, need to use a credit or debit card to apply for a replacement passport. But all of my cards are melted to slag - and I can't prove to the bank that I am who I say I am because I don't know my account number, password, or mother's maiden name.</p>

<p>You see, I was "clever" and took some idiot's advice about <a href="https://shkspr.mobi/blog/2020/11/why-lying-is-essential-for-privacy-herd-immunity/">setting your mother's maiden name to being a random string of characters</a>. Those details are, of course, stored in my inaccessible password manager!</p>

<p>Hopefully one of my friends will be prepared to lend me the £75.50 to get a new passport.</p>

<p>I'll just call up one of my friends. Hmmm… now, where did I store their phone number?</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2022/05/Melted-Phone.webp" alt="A melted phone. Credit: Reddit user Crushader." width="720" height="480" class="aligncenter size-full wp-image-42781">

<p>Oh.</p>

<h2 id="starting-over"><a href="https://shkspr.mobi/blog/2022/06/ive-locked-myself-out-of-my-digital-life/#starting-over">Starting over</a></h2>

<p>Again, I'm lucky. I live relatively close to some friends and family. And I'm confident that they'd be gracious enough to pay an emergency cab fare if I started hammering on their door at silly o'clock in the morning.</p>

<p>With their help, I think I could probably call up enough insurance companies to figure out which one covered the property. I would hope the insurance company would have some way of validating with the emergency services that the house is, indeed, a smoking crater.  I don't know if that would get me emergency cash, or if I'd have to rely on friends until I get access to my bank account.</p>

<p>I assume my credit card companies can probably be convinced to send out replacement cards. But will they also be willing to change my address - or will the card go to the pile of ashes which was formerly my home?</p>

<p>I don't know whether my insurance policy covers me for access to digital files. Even if it did, I'm not sure how they can force a company like - say - Google to give me access to my account. It isn't like Google went through a KYC (Know Your Customer) process when I signed up.</p>

<h2 id="code-is-law"><a href="https://shkspr.mobi/blog/2022/06/ive-locked-myself-out-of-my-digital-life/#code-is-law">Code Is Law</a></h2>

<p>This is where we reach the limits of the "Code Is Law" movement.</p>

<p>In the boring analogue world - I am pretty sure that I'd be able to convince a human that I am who I say I am. And, thus, get access to my accounts.  I may have to go to court to force a company to give me access back, but it is <em>possible</em>.</p>

<p>But when things are secured by an unassailable algorithm - I am out of luck. No amount of pleading will let me without the correct credentials.  The company which provides my password manager simply doesn't have access to my passwords. There is no-one to convince. Code is law.</p>

<p>Of course, if I can wangle my way past security, an evil-doer could also do so.</p>

<p>So which is the bigger risk:</p>

<ul>
<li>An impersonator who convinces a service provider that they are me?</li>
<li>A malicious insider who works for a service provider?</li>
<li>Me permanently losing access to all of my identifiers?</li>
</ul>

<p>I don't know the answer to that. If you have a strong opinion, please let me know in the comment section.</p>

<p>In the meantime, please rest assured that my home is still standing. But, if you can, please donate generously to the <a href="https://donation.dec.org.uk/ukraine-humanitarian-appeal">DEC's Ukraine Humanitarian Appeal</a></p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=42735&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2022/06/ive-locked-myself-out-of-my-digital-life/feed/</wfw:commentRss>
			<slash:comments>139</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Emoji Passwords and BitWarden]]></title>
		<link>https://shkspr.mobi/blog/2021/03/emoji-passwords-and-bitwarden/</link>
					<comments>https://shkspr.mobi/blog/2021/03/emoji-passwords-and-bitwarden/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Sat, 20 Mar 2021 12:45:09 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[bitwarden]]></category>
		<category><![CDATA[emoji]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[passwords]]></category>
		<category><![CDATA[security]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=38410</guid>

					<description><![CDATA[Let me start by saying that Emoji Passwords are probably a really daft idea.  I want to use emoji in my passwords. They&#039;re easy to type on a mobile keyboard, easy to remember, and a lot more fun than boring ASCII characters.  Let&#039;s go with ✅🐎🔋📎  (As close as possible to Correct Horse Battery Staple)  I use BitWarden as my password manager.  It saves emoji passwords into its database, but has troub…]]></description>
										<content:encoded><![CDATA[<p>Let me start by saying that <a href="https://apple.stackexchange.com/questions/202143/i-included-emoji-in-my-password-and-now-i-cant-log-in-to-my-account-on-yosemite">Emoji Passwords are probably a really daft idea</a>.</p>

<p>I want to use emoji in my passwords. They're easy to type on a mobile keyboard, easy to remember, and a lot more fun than boring ASCII characters.</p>

<p>Let's go with <span style="font-size:2em;">✅🐎🔋📎</span></p>

<p>(As close as possible to <a href="https://xkcd.com/936/">Correct Horse Battery Staple</a>)</p>

<p>I use <a href="https://bitwarden.com">BitWarden as my password manager</a>.  It saves emoji passwords into its database, but has trouble displaying them:</p>

<h3 id="android"><a href="https://shkspr.mobi/blog/2021/03/emoji-passwords-and-bitwarden/#android">Android</a></h3>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2021/03/Emoji-Test.jpg" alt="" width="512" height="512" class="aligncenter size-full wp-image-38412">

<h3 id="browser-plugin"><a href="https://shkspr.mobi/blog/2021/03/emoji-passwords-and-bitwarden/#browser-plugin">Browser Plugin</a></h3>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2021/03/Screenshot-from-2021-03-11-08-16-12.png" alt="Screenshot of the browser plugin corrupting the password." width="455" height="340" class="aligncenter size-full wp-image-38413">

<h3 id="linux-app"><a href="https://shkspr.mobi/blog/2021/03/emoji-passwords-and-bitwarden/#linux-app">Linux App</a></h3>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2021/03/Screenshot-from-2021-03-11-08-14-14.png" alt="Linux app showing a broken password." width="518" height="281" class="aligncenter size-full wp-image-38414">

<h2 id="bug-report"><a href="https://shkspr.mobi/blog/2021/03/emoji-passwords-and-bitwarden/#bug-report">Bug Report</a></h2>

<p>I've <a href="https://github.com/bitwarden/mobile/issues/1310">raised this (minor) bug on GitHub</a>.  I wonder which other password managers also struggle with the more "exotic" parts of Unicode?</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=38410&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2021/03/emoji-passwords-and-bitwarden/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[I have 4% 2FA coverage]]></title>
		<link>https://shkspr.mobi/blog/2020/08/i-have-4-2fa-coverage/</link>
					<comments>https://shkspr.mobi/blog/2020/08/i-have-4-2fa-coverage/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Sun, 30 Aug 2020 11:37:44 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[2fa]]></category>
		<category><![CDATA[passwords]]></category>
		<category><![CDATA[security]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=36427</guid>

					<description><![CDATA[Last year, when doing some digital spring-cleaning, I realised that I had 800 different passwords.  I tried going through them, removing long-dead websites, closing old accounts, and deleting anything incriminating.  I now have 891 accounts.  Arse.  I also went through my 31 different 2FA accounts. Getting rid of old employers&#039; email tokens, failed crypto wallet providers, Club Penguin etc.  I…]]></description>
										<content:encoded><![CDATA[<p>Last year, when doing some digital spring-cleaning, I realised that <a href="https://shkspr.mobi/blog/2019/02/i-have-800-passwords/">I had 800 different passwords</a>.</p>

<p>I tried going through them, removing long-dead websites, closing old accounts, and deleting anything incriminating.  I now have 891 accounts.</p>

<p>Arse.</p>

<p>I also went through <a href="https://shkspr.mobi/blog/2019/03/i-have-thirty-one-2fa-codes/">my 31 different 2FA accounts</a>. Getting rid of old employers' email tokens, failed crypto wallet providers, Club Penguin etc.  I now have 40 different TOTP tokens.</p>

<p>So, about 4% of my accounts have 2FA security.</p>

<p>I don't know if that's good or not.  It feels like it <em>ought</em> to be more, but I'm not sure if I want the administrative burden. Even with a password manager and OTP manager, it's a headache.</p>

<p>I do have a Yubikey (<a href="https://shkspr.mobi/blog/2017/11/a-grumpy-look-at-using-a-yubico-neo-nfc-on-ubuntu-android/">which I hate</a>) but so few services support it. And, frankly, it's pain trying to find it and shove it in a USB socket.</p>

<p>A few services, like Steam, use <a href="https://support.steampowered.com/kb_article.php?ref=4440-RTUI-9218">their own special 2FA app</a>. And some only offer 2FA via email or SMS. Yeuch!  Google has a fancy set of push notifications on Android - but that only works with Google accounts.</p>

<p>Is this a problem?</p>

<p>Any of my accounts which handle payments are tied to my credit cards or PayPal - so I don't care too much if someone cracks my password to Pizza Planet; there's limited damage they can do.</p>

<p>But there has to be a better solution. Things like WebAuthN look interesting - but I worry that they're too complicated for mere mortals to understand. And I'm worried about how fragile it is to have all your credentials tied up on one physical token.  And I'm worried that <a href="https://twitter.com/Lady_Ada_King/status/1298636803067588608">credentials are tied to your browser</a>.</p>

<p>So what's the solution?</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=36427&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2020/08/i-have-4-2fa-coverage/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[I have Thirty-One 2FA codes]]></title>
		<link>https://shkspr.mobi/blog/2019/03/i-have-thirty-one-2fa-codes/</link>
					<comments>https://shkspr.mobi/blog/2019/03/i-have-thirty-one-2fa-codes/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Sun, 03 Mar 2019 13:38:26 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[2fa]]></category>
		<category><![CDATA[passwords]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[usability]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=31621</guid>

					<description><![CDATA[Last week I wrote about how I had 800 passwords in my password manager.  It was intended to highlight the ridiculous proliferation of online services, and how redecentralising identity comes with a manageability problem.  I now want to talk about 2FA - Two-Factor Authentication - the random codes you have to type in every time you log in somewhere secure.  This week, I&#039;ve moved all my 2FA tokens…]]></description>
										<content:encoded><![CDATA[<p>Last week I wrote about how <a href="https://shkspr.mobi/blog/2019/02/i-have-800-passwords/">I had 800 passwords</a> in my password manager.  It was intended to highlight the ridiculous proliferation of online services, and how redecentralising identity comes with a manageability problem.</p>

<p>I now want to talk about 2FA - Two-Factor Authentication - the random codes you have to type in every time you log in somewhere secure.</p>

<p>This week, I've moved all my 2FA tokens from Authy, to the <a href="https://github.com/andOTP/andOTP">open source andOTP</a> app.  It was <a href="https://gist.github.com/gboudreau/94bb0c11a6209c82418d01a59d958c93#gistcomment-2224133">mostly painless exporting the Authy keys</a> - but took a while to manually check each one.  Do I <em>really</em> need this many 2FA tokens?</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2019/03/otp-screenshot-fs8.png" alt="A long list of 2FA tokens." width="480" height="930" class="aligncenter size-full wp-image-31622">

<p>It's good that my webhost uses 2FA - but annoying that they have two separate ones for my account and my control panel.</p>

<p>I've got a bunch of Gmail accounts - it is frustrating scrolling through remembering which G-icon goes with which G-service.</p>

<p>There's a few different Microsoft ones because I'm not sure of the collateral damage if I try to link my Xbox, Skype, and Outlook accounts.</p>

<p>And the usual smattering of hardly-used services which offered 2FA, so I set it up.</p>

<p>Oh, and a few services which don't use standard TOTP - and insist on using their own app or hardware token.</p>

<h2 id="is-this-secure"><a href="https://shkspr.mobi/blog/2019/03/i-have-thirty-one-2fa-codes/#is-this-secure">Is This Secure?</a></h2>

<p>I don't know any more.</p>

<p>In security, we usually talk about the benefits of having your security split between something you know (a password) and something you have (a token).  But I've effectively combined them.  My phone stores passwords and tokens. If someone steals it <em>and</em> can break through my biometrics &amp; PINs - they've got the keys to my kingdom.</p>

<p>If a crappy service has leaked a passwords, which I've reused elsewhere, then this 2FA set-up provides extra security.  But fewer than 5% of my online accounts support 2FA - so that's a minor benefit.</p>

<h2 id="the-alternative"><a href="https://shkspr.mobi/blog/2019/03/i-have-thirty-one-2fa-codes/#the-alternative">The Alternative?</a></h2>

<p>I <a href="https://shkspr.mobi/blog/2017/11/a-grumpy-look-at-using-a-yubico-neo-nfc-on-ubuntu-android/">tried using a YubiKey</a> - and I just couldn't get on with it. The software was too flaky, hardly any services support it, and my keyring is rarely to hand.</p>

<p>So I'd have to keep an easy-to-lose physical token - as well as a phone for every service which doesn't support it.</p>

<h2 id="text-for-details"><a href="https://shkspr.mobi/blog/2019/03/i-have-thirty-one-2fa-codes/#text-for-details">Text For Details</a></h2>

<p>As well as the codes in my app, I have a bunch of services which will <em>only</em> use <a href="https://www.theverge.com/2017/9/18/16328172/sms-two-factor-authentication-hack-password-bitcoin">insecure SMS</a> for 2FA:</p>

<ul>
<li><a href="https://www.linkedin.com/help/linkedin/answer/531">LinkedIn</a></li>
<li><a href="https://www.paypal.com/us/webapps/mpp/security/security-protections">PayPal</a></li>
<li><a href="https://www.americanexpress.com/uk/security/safekey/index.html">American Express</a></li>
</ul>

<p>Quite why these services are stuck in the dark-ages is beyond me. Possibly they just want my phone number for marketing purposes?</p>

<h2 id="whats-next"><a href="https://shkspr.mobi/blog/2019/03/i-have-thirty-one-2fa-codes/#whats-next">What's Next?</a></h2>

<p>The username / password / token pattern is becoming increasingly unsustainable for me. Having a multitude of security apps is marginally more convenient than carrying around a big bunch of keys. But it is frustrating find the right app, searching through for the right icon, typing things in before the timer expires, and proving my identity multiple times daily.</p>

<p>I could turn off 2FA and re-use the same username/password everywhere. That would be a hell of a lot easier for me. But I don't want to reduce my security that much!</p>

<p>I could sign in to everything using Facebook. But even if that weren't ethically dubious, not every service supports that.</p>

<p>Both Google and Authy have a useful service whereby they send a push notification to your phone and ask you to confirm your login. Cool, and easy to use. But, again, limited support and the same risk of my phone being the single point of failure.</p>

<p>What's the alternative? If you know - please leave me a message in the comments.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=31621&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2019/03/i-have-thirty-one-2fa-codes/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[I have 800 passwords]]></title>
		<link>https://shkspr.mobi/blog/2019/02/i-have-800-passwords/</link>
					<comments>https://shkspr.mobi/blog/2019/02/i-have-800-passwords/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Sun, 24 Feb 2019 12:14:19 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[passwords]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[usability]]></category>
		<category><![CDATA[ux]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=31544</guid>

					<description><![CDATA[I&#039;ve started using BitWarden - the open source password manager.  As I&#039;ve been binge-watching Marie Kondo, I thought it was about time that I deleted all the accounts that I no longer user.  I got rid of dozens related to previous employers. I hope the passwords wouldn&#039;t work after I left but 🤷‍♂️.  I scanned through the list and deleted old bank details, failed social networks, and obvious duplic…]]></description>
										<content:encoded><![CDATA[<p>I've started using <a href="https://bitwarden.com/">BitWarden</a> - the open source password manager.  As I've been binge-watching Marie Kondo, I thought it was about time that I deleted all the accounts that I no longer user.</p>

<p>I got rid of dozens related to previous employers. I hope the passwords wouldn't work after I left but 🤷‍♂️.</p>

<p>I scanned through the list and deleted old bank details, failed social networks, and obvious duplicates.</p>

<p>I'm left with seven-hundred and ninety-five different login details!</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2019/02/BitWarden-795-Passwords-fs8.png" alt="Bitwarden vault showing 795 login details." width="374" height="159" class="aligncenter size-full wp-image-31546">

<h2 id="how-has-it-got-this-bad"><a href="https://shkspr.mobi/blog/2019/02/i-have-800-passwords/#how-has-it-got-this-bad">How has it got this bad?</a></h2>

<p>Partly it is my fault. I seem to have three different passwords for PlayStation. I'm not sure which is the main one, and I'm too afraid to delete the others in case they are important.</p>

<p>Some is the fault of companies which insist on separate logins for their website account, discussion forum, and help centre.</p>

<p>I've been online since the 1990s and have accounts all over the place.  I have no easy way of knowing which of my accounts still work.</p>

<h2 id="is-this-actually-a-problem"><a href="https://shkspr.mobi/blog/2019/02/i-have-800-passwords/#is-this-actually-a-problem">Is this actually a problem?</a></h2>

<p>I don't trust centralised logins.  If everywhere offered, say, Twitter logins - then I've put all my eggs in one basket. If the login provider breaks, or goes out of business, or blocks me - then I've lost access to <em>everything!</em></p>

<p>It also means that one provider can't track me around the net. I don't want Facebook knowing every time I log on to my electricity provider's site.</p>

<p>But... It puts the onus on me to be responsible. There are risks associated with password managers - but I doubt I could remember eighty complex passwords, let alone eight-hundred.</p>

<p>(I know some people recommend a password algorithm like <code>pass1234-fb</code> for Facebook and <code>pass1234-tw</code> for Twitter - but this doesn't scale when sites ask you to update your passwords, or have different complexity requirements.)</p>

<h2 id="can-this-be-fixed"><a href="https://shkspr.mobi/blog/2019/02/i-have-800-passwords/#can-this-be-fixed">Can this be fixed?</a></h2>

<p>I don't know which companies have merged or vanished. It's tedious going through every account testing whether my login works.</p>

<p>My friends in WICG have a solution for this. A new "<a href="https://tools.ietf.org/html/rfc5785">well-known</a>" resource called "<a href="https://w3c.github.io/webappsec-change-password-url/">change-password</a>".</p>

<p>Basically, websites should have a page called <code>/.well-known/change-password</code>.  If you visit <a href="https://twitter.com/.well-known/change-password"><code>twitter.com/.well-known/change-password</code></a>, you'll be taken to a password change page.</p>

<p>A password manager can use that to test whether my password can be changed - that might tell me if a service is still live. But given that the proposal doesn't yet have wide support, there will be lots of false negatives.</p>

<p>So I am left with two options:</p>

<ol>
<li>Accept the clutter. Live with the pain of searching through nearly a thousand passwords every time I want to log in somewhere.</li>
<li>Spend a few weekends deleting the accumulated crud of a few decades.</li>
</ol>

<p>Does this password <a href="https://konmari.com/pages/who-we-are">spark joy</a>?</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=31544&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2019/02/i-have-800-passwords/feed/</wfw:commentRss>
			<slash:comments>10</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Review: BitWarden - the better password manager]]></title>
		<link>https://shkspr.mobi/blog/2018/11/review-bitwarden-the-better-password-manager/</link>
					<comments>https://shkspr.mobi/blog/2018/11/review-bitwarden-the-better-password-manager/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Fri, 16 Nov 2018 11:42:34 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[bitwarden]]></category>
		<category><![CDATA[NaBloPoMo]]></category>
		<category><![CDATA[passwords]]></category>
		<category><![CDATA[review]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=30570</guid>

					<description><![CDATA[I&#039;ve been a long time user of LastPass - but over the last year, they&#039;ve abandoned their Linux customers and insisted that users pay to access enhanced security.  Forget that noise!  I started looking for a new password manager and, on the recommendation of several friends, started using BitWarden.  Pros   Open Source! Works in the browser - tried in Firefox and Chrome. Fast, and easy to use.…]]></description>
										<content:encoded><![CDATA[<p>I've been a long time user of LastPass - but over the last year, they've <a href="https://web.archive.org/web/20191220020147/https://forums.lastpass.com/viewtopic.php?f=12&amp;t=280465">abandoned their Linux customers</a> and insisted that users <a href="https://lastpass.com/yubico/">pay to access enhanced security</a>.</p>

<p>Forget that noise!  I started looking for a new password manager and, on the recommendation of several friends, started using <a href="https://bitwarden.com/">BitWarden</a>.</p>

<h2 id="pros"><a href="https://shkspr.mobi/blog/2018/11/review-bitwarden-the-better-password-manager/#pros">Pros</a></h2>

<ul>
<li><a href="https://github.com/bitwarden">Open Source</a>!</li>
<li>Works in the browser - tried in Firefox and Chrome. Fast, and easy to use.</li>
<li>Linux app - handy, but a little clunky to use. Bonus <a href="https://bitwarden.com/blog/cli-tool-released/">CLI tool available</a></li>
<li>Android app - great at autofilling apps. Can unlock using fingerprint.</li>
<li><a href="https://web.archive.org/web/20170529070904/https://blog.bitwarden.com/password-sharing-is-here-organizations-cf9e7a2098d2">Password sharing</a> - I haven't tried this yet, but useful if you and your family share a common password for things like Netflix.</li>
<li>Can be self-hosted if you want.</li>
</ul>

<h2 id="cons"><a href="https://shkspr.mobi/blog/2018/11/review-bitwarden-the-better-password-manager/#cons">Cons</a></h2>

<ul>
<li>Importing old passwords from LastPass was a little tricky - but that's because <a href="https://help.bitwarden.com/article/import-from-lastpass/">LastPass makes it deliberately hard</a>.</li>
<li>The Android app can be a little slow to start. Not much worse than LastPass, but a little annoying.</li>
<li>If you want YubiKey support, you need to buy the premium version. It's $10/year - that's much cheaper than LastPass's $24/year.</li>
</ul>

<h2 id="verdict"><a href="https://shkspr.mobi/blog/2018/11/review-bitwarden-the-better-password-manager/#verdict">Verdict?</a></h2>

<p>Go for it! Incredibly easy to use, cheaper than LastPass if you want premium features, and works everywhere.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=30570&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2018/11/review-bitwarden-the-better-password-manager/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Training Customers To Be Stupid]]></title>
		<link>https://shkspr.mobi/blog/2017/03/training-customers-to-be-stupid/</link>
					<comments>https://shkspr.mobi/blog/2017/03/training-customers-to-be-stupid/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Sat, 18 Mar 2017 21:51:35 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[passwords]]></category>
		<category><![CDATA[phishing]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[twitter]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=24936</guid>

					<description><![CDATA[Companies face a complicated choice. Make things easy for the customers, or make things secure for them.  Convenience seems to take priority most of the time. This forces companies to get their customers to risk their own security.  In this example, we see Verizon Wireless asking their customers to type their passwords into Twitter for everyone to see!    This is dangerous. It is likely that many …]]></description>
										<content:encoded><![CDATA[<p>Companies face a complicated choice. Make things <em>easy</em> for the customers, or make things <em>secure</em> for them.</p>

<p>Convenience seems to take priority most of the time. This forces companies to get their customers to risk their own security.</p>

<p>In this example, we see Verizon Wireless asking their customers to type their passwords into Twitter for everyone to see!</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2017/03/Verizon-asking-for-customers-passwords-fs8.png" alt="Verizon asking for customer's passwords" width="611" height="613" class="aligncenter size-full wp-image-24937">

<p>This is dangerous. It is likely that many of their customers recycle their passwords.  Does the average customer know that their "billing" password is different from their account password?</p>

<p>Is it safe for people to post their phone numbers in public like that?</p>

<p>All a scammer has to do is ring the number, say "Hello Mrs Example, I'm calling from Verizon about your billing problem - let me take you through security..."</p>

<p>Some companies ask for the information via Direct Message.  This is also problematic.</p>

<p><img src="https://shkspr.mobi/blog/wp-content/uploads/2017/03/DM-Password-fs8.png" alt="A train company asking for a password to be sent via DM" width="582" height="208" class="aligncenter size-full wp-image-24941">
<img src="https://shkspr.mobi/blog/wp-content/uploads/2017/03/Ryanair-asking-for-a-password-fs8.png" alt="Ryanair asking for a password" width="582" height="245" class="aligncenter size-full wp-image-24942">
<img src="https://shkspr.mobi/blog/wp-content/uploads/2017/03/Verizon-asking-for-a-DMd-password-fs8.png" alt="Verizon asking for a DM'd password" width="582" height="308" class="aligncenter size-full wp-image-24943"></p>

<p>This trains customers to input their password into a 3rd party site. That's a security risk - the password is now shared with Twitter.</p>

<p>If the company's Twitter account is ever broken into, all those passwords are available in the DM history.</p>

<p>There is also the risk that users will accidentally paste their details for the world to see.</p>

<p>I know what you're thinking - surely no one is actually dumb enough to type their password into Twitter?</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2017/03/Verizon-phishing-their-own-customers-fs8.png" alt="Verizon phishing their own customers" width="611" height="688" class="aligncenter size-full wp-image-24946">

<p>*sigh*</p>

<p>But what else do we expect? Customers are trained to phish themselves in the name of convenience.</p>

<p>These basic security security practices should be obvious - but they clearly aren't. Companies which ask you to breach your own security are dangerous and should be avoided.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=24936&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2017/03/training-customers-to-be-stupid/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[How *not* to do a password change page]]></title>
		<link>https://shkspr.mobi/blog/2016/07/how-not-to-do-a-password-change-page/</link>
					<comments>https://shkspr.mobi/blog/2016/07/how-not-to-do-a-password-change-page/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Sun, 10 Jul 2016 09:34:26 +0000</pubDate>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[usability]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[idiots]]></category>
		<category><![CDATA[passwords]]></category>
		<category><![CDATA[security]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=23044</guid>

					<description><![CDATA[We&#039;ve all been faced with this screen, right?  You haven&#039;t logged in to a website for a while, so it prompts you to change your password.    sigh Annoying but probably necessary.  The problem was, every time I tried to change my password, it told me that my old password was invalid.  The one that I&#039;d just used to log in.  I use the incredible LastPass Password Manager - so I knew I wasn&#039;t typing…]]></description>
										<content:encoded><![CDATA[<p>We've all been faced with this screen, right?  You haven't logged in to a website for a while, so it prompts you to change your password.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2016/07/Screenshot-of-A-Change-Password-field.-It-lists-various-restrictions-but-nothing-about-a-maximum-length.png" alt="Screenshot of A Change Password field. It lists various restrictions - but nothing about a maximum length" width="790" height="511" class="aligncenter size-full wp-image-23050">

<p><em>sigh</em> Annoying but probably necessary.</p>

<p>The problem was, every time I tried to change my password, it told me that my <em>old</em> password was invalid.  The one that I'd just used to log in.  I use the <a href="https://lastpass.com/">incredible LastPass Password Manager</a> - so I knew I wasn't typing it incorrectly.</p>

<p>It took a few tries, but I finally figured out what was going wrong.  When I'd set up the account, LastPass had generated a secure 32 character password.  But the "old password" field had artificially restricted passwords to a maximum of 20 characters.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2016/07/Screenshot-of-HTML-source-code-showing-that-the-input-maxlength-is-set-to-20-fs8.png" alt="Screenshot of HTML source code showing that the input maxlength is set to 20-fs8" width="542" height="121" class="aligncenter size-full wp-image-23046">

<p>Well, that's easy enough to change! Crack open Firefox's Inspect Element tool, change the <code>maxlength</code> value, and submit again.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2016/07/Screenshot-of-A-Change-Password-field.-An-error-message-says-ensure-this-value-has-at-most-20-characters-it-has-32-fs8.png" alt="Screenshot of A Change Password field. An error message says ensure this value has at most 20 characters it has 32)-fs8" width="661" height="139" class="aligncenter size-full wp-image-23049">

<p>What <em>utter</em> cockwombles.</p>

<p>Can you see any mention of a maximum length in the password rules? Minimum, sure, but no max.</p>

<p>Naturally, this 20 character restriction isn't enforced on the login page.</p>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2016/07/Screenshot-of-HTML-source-showing-now-password-length-restrictions-on-login-fs8.png" alt="Screenshot of HTML source showing now password length restrictions on login-fs8" width="514" height="434" class="aligncenter size-full wp-image-23045">

<p>Take a bow, "Willis Towers Watson", your web developers are actively making the world a worse place.  I'd ring you up to complain, but naturally you're closed on a Sunday.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=23044&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2016/07/how-not-to-do-a-password-change-page/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[How *NOT* To Do A Password Field]]></title>
		<link>https://shkspr.mobi/blog/2014/04/how-not-to-do-a-password-field/</link>
					<comments>https://shkspr.mobi/blog/2014/04/how-not-to-do-a-password-field/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Sat, 12 Apr 2014 09:05:23 +0000</pubDate>
				<category><![CDATA[usability]]></category>
		<category><![CDATA[passwords]]></category>
		<category><![CDATA[security]]></category>
		<guid isPermaLink="false">http://shkspr.mobi/blog/?p=10321</guid>

					<description><![CDATA[We&#039;re all changing our passwords in the light of Heartbleed, right? Good!  If you are a developer or designer, I want to explain to you exactly how not to create a password dialogue box for your users.  We&#039;re all used to seeing this:    Input password: Change Password    This is incorrect! Why? Because it leads to this?    Input password: Change Password ERROR! Your password must be longer than …]]></description>
										<content:encoded><![CDATA[<p><a href="https://twitter.com/StephBWright/status/256029401546895360"><img src="https://shkspr.mobi/blog/wp-content/uploads/2014/04/Password-Must-Contain.png" alt="Password Must Contain" width="420" height="294" class="aligncenter size-full wp-image-10330"></a></p>

<p>We're all changing our passwords in the light of Heartbleed, right? Good!</p>

<p>If you are a developer or designer, I want to explain to you exactly how <strong>not</strong> to create a password dialogue box for your users.</p>

<p>We're all used to seeing this:</p>

<hr>

<p><strong>Input password:</strong> <input type="password" value="1234567"><button>Change Password</button></p>

<hr>

<p>This is <em>incorrect!</em> Why? Because it leads to this?</p>

<hr>

<p><strong>Input password:</strong> <input type="password" value="1234567"><button>Change Password</button>
<span style="color: #ff0000;">ERROR! Your password must be longer than 7 characters!</span></p>

<hr>

<p>Ok! Ok! I'll enter in a longer password.</p>

<hr>

<p><strong>Input password:</strong> <input type="password" value="123456789012345678764321"><button>Change Password</button>
<span style="color: #ff0000;">ERROR! Your password must be between 8 - 16 characters!</span></p>

<hr>

<p>Grrrrrr.... ok.... how about this?</p>

<hr>

<p><strong>Input password:</strong> <input type="password" value="123456789012345"><button>Change Password</button>
<span style="color: #ff0000;">ERROR! Your password must contain at least 1 number and special character.</span></p>

<hr>

<p>I <em>will</em> cut you...</p>

<hr>

<p><strong>Input password:</strong> <input type="password" value="1234567!£$%^%$"><button>Change Password</button>
<span style="color: #ff0000;">ERROR! Allowed special characters are "!$%^&amp;*".</span></p>

<hr>

<p>Oh.... FFS.... Will this do?</p>

<hr>

<p><strong>Input password:</strong> <input type="password" value="12345!$%^&amp;*2345"><button>Change Password</button>
<span style="color: #ff0000;">ERROR! I just don't like you!</span></p>

<hr>

<p>GAAAAH!!!!</p>

<p>If you are writing a form which asks a user to enter a new password, please follow these simple guidelines:</p>

<ul>
<li>State your site's password requirements <em>ON THE FRICKIN' FORM!</em>  Seriously, if you only do one thing, make it that!</li>
<li>Don't let a user submit a password which doesn't meet your requirements.  Use JavaScript to disable the button and highlight the text of your password policy.</li>
<li>Don't impose an artificially short password length.  If a user really wants a 64 or 128 or 1024 length password, let them.</li>
<li>If you have to restrict the length, use maxlength in the input field.</li>
<li>Do you <em>really</em> need to insist on special characters, upper and lower case, Roman Numerals, and Unicode emoticons?  If the user <em>really</em> wants to be insecure, let them.  If you need security - insist on using 2FA rather than complex passwords.</li>
<li>How will the user know what your password requirements are?  Are they hidden on a help page somewhere, or only on a pop-up after they've hit enter? Make sure they're on the page - preferably directly above the password field.</li>
</ul>

<p>As I go through all my passwords, it's infuriating how many sites expect the user to magically know the site's Byzantine security requirements.</p>

<p>Remember, if you make your password field too complex, users will get frustrated and reject it.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=10321&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2014/04/how-not-to-do-a-password-field/feed/</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[The Perfect Twitter Spam Attack?]]></title>
		<link>https://shkspr.mobi/blog/2010/03/the-perfect-twitter-spam-attack/</link>
					<comments>https://shkspr.mobi/blog/2010/03/the-perfect-twitter-spam-attack/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Sun, 07 Mar 2010 09:59:03 +0000</pubDate>
				<category><![CDATA[usability]]></category>
		<category><![CDATA[evil genius]]></category>
		<category><![CDATA[oauth]]></category>
		<category><![CDATA[passwords]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[twitter]]></category>
		<guid isPermaLink="false">http://shkspr.mobi/blog/?p=1796</guid>

					<description><![CDATA[This morning, when I logged on to Twitter, I saw a user who I didn&#039;t recognise tweeting away in my timeline.  I wracked my brains thinking about how they could have gotten in there before I realised it was a long-dormant friend who had changed their name and avatar.  But, in thinking about how a spammer could infiltrate one&#039;s timeline, I think I came up with a fairly bullet-proof method to spam…]]></description>
										<content:encoded><![CDATA[<p>This morning, when I logged on to Twitter, I saw a user who I didn't recognise tweeting away in my timeline.</p>

<p>I wracked my brains thinking about how they could have gotten in there before I realised it was a long-dormant friend who had changed their name and avatar.</p>

<p>But, in thinking about how a spammer could infiltrate one's timeline, I think I came up with a fairly bullet-proof method to spam Twitter users.</p>

<p>I present this as an exercise in devious thinking - and also to show how our assumptions about security can play against us. Remember, hacking and impersonation are likely to be illegal in your jurisdiction.&nbsp; This information is designed to help you understand how security weaknesses can occur.</p>

<h2 id="being-evil"><a href="https://shkspr.mobi/blog/2010/03/the-perfect-twitter-spam-attack/#being-evil">Being Evil</a></h2>

<p>Imagine you are a nasty, evil Twitter spammer.  Your own mother wouldn't spit on you if you were on fire - that's how mean you are.  Here's what you do.</p>

<ol>
    <li>Obtain a user's password.&nbsp; Admittedly, this is the hardest part of the process. You might use a dictionary attack, use the same password they use to log in to another site, or somehow steal it.</li>
    <li>Log on to Twitter.</li>
    <li>Go to "Connections" and see which services they have connected to using OAuth.&nbsp; For the purposes of this experiment, let's assume they use Example.com.</li>
    <li>Go to Example.com and OAuth yourself with Twitter using your mark's credentials.</li>
    <li>Here's where the ordinary spammer falls down.&nbsp; The ordinary spammer will start sending out messages from the mark's account.&nbsp; That's <strong>not</strong> the aim of this weakness.</li>
    <li>From the mark's account, through Example.com, make your victim follow one of your spam accounts.&nbsp; An account which exists solely to show adverts to your victim.</li>
</ol>

<p>Your victim now sees your adverts for pills, poker and porn in their timeline.&nbsp; With any luck, they'll just assume that one of their true friends is promoting your illicit wares.</p>

<h2 id="counter-attack"><a href="https://shkspr.mobi/blog/2010/03/the-perfect-twitter-spam-attack/#counter-attack">Counter Attack</a></h2>

<p>Most victims will assume that they accidentally followed your spam account - or that one of their friends has been hacked.</p>

<p>Worst case scenario, they unfollow your spam account.</p>

<p><strong><em>So you just make them follow you again!</em></strong> Remember, you are <strong>still</strong> OAuth'd to Example.com. You can make them follow as many of your spam accounts as you think you can get away with.</p>

<p>At this point, the intelligent victim will think that their account may be compromised and change their password.</p>

<p><strong><em>It doesn't matter</em>!</strong> Because you have used OAuth, password changes <em>don't affect you</em>.&nbsp; You can continue make them follow as many of your spam accounts as you think you can get away with.</p>

<p>At this point, the <em>really</em> intelligent victim will go through their OAuth connections to look for something suspicious.&nbsp; They won't find it.&nbsp; Remember steps 3 and 4?&nbsp; <strong>You are OAuth'd to a service that your victim trusts</strong>.</p>

<p>Because of the way Twitter displays OAuth information, there's no way for a victim to know when a service was last authorised.</p>

<p><img class="size-full wp-image-1798" title="Twitter OAuth Connections" src="https://shkspr.mobi/blog/wp-content/uploads/2010/03/Twitter-OAuth-Connections.png" alt="Twitter OAuth Connections" width="450" height="501"></p>

<p>There is no information other than the <em>first time</em> the OAuth was set up.&nbsp; No last accessed date, no IP addresses, nothing useful.</p>

<p>When following an account, the victim gets no notification of what has happened, when it has happened or how it has happened.&nbsp; There is no way of them knowing which of their OAuth'd connections have been compromised, nor when it happened.</p>

<p>Their only safe option is to revoke <em>every single </em>OAuth connection.&nbsp; Then reauthorise.&nbsp; A time consuming and annoying prospect.</p>

<h2 id="conclusion"><a href="https://shkspr.mobi/blog/2010/03/the-perfect-twitter-spam-attack/#conclusion">Conclusion</a></h2>

<p>I hope I've demonstrated two things.</p>

<p>Firstly, there's more to spam then just sending out messages.&nbsp; Forcing someone to read a message is just as annoying.</p>

<p>Secondly, our understanding of security and usability haven't quite caught up with the new tools which are available to us.&nbsp; OAuth is still better than giving your password to an untrusted site - but without essential usability changes, a compromised account is a lot more dangerous than the user would suspect.</p>

<p>This "attack" still relies on a victim having their original password compromised.&nbsp; That's not a trivial matter.&nbsp; But security is like sexual health - it only takes one little accident...</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=1796&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2010/03/the-perfect-twitter-spam-attack/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
	</channel>
</rss>
