<body><div style="font-family: sans-serif; font-size: 16px;"><div class="message-body">
        <p style="margin: 0px; padding: 0px; ">
                 </p>
        <p style="color: rgb(0, 0, 255); background-color: rgb(255, 255, 255); margin: 0px; padding: 0px; ">
                Hi all,</p>
        <p style="color: rgb(0, 0, 255); background-color: rgb(255, 255, 255); margin: 0px; padding: 0px; ">
                 </p>
        <p style="color: rgb(0, 0, 255); background-color: rgb(255, 255, 255); margin: 0px; padding: 0px; ">
                I'd love to get your collective thoughts on a challenge we have. We make the Inky mail client (<a target="_blank" href="http://inky.com%29/">http://inky.com)</a> and, not coincidentally, it embeds a version of trevp's tlslite, extended to do cert validation. Inky connects to our "mothership" server via tlslite using an SRP authentication scheme. (Not TLS-SRP, but something essentially similar.)</p>
        <p style="color: rgb(0, 0, 255); background-color: rgb(255, 255, 255); margin: 0px; padding: 0px; ">
                 </p>
        <p style="color: rgb(0, 0, 255); background-color: rgb(255, 255, 255); margin: 0px; padding: 0px; ">
                In a nutshell, we take the user's Inky password, key-stretch it using PBKDF2, and then use this as a key for AES-256 encryption; this allows us to store encrypted secrets on the user's behalf without us knowing what the secrets are. (Because the authentication is done via SRP, we don't know the user's Inky password, hence we don't know the key derived from it.)</p>
        <p style="color: rgb(0, 0, 255); background-color: rgb(255, 255, 255); margin: 0px; padding: 0px; ">
                 </p>
        <p style="color: rgb(0, 0, 255); background-color: rgb(255, 255, 255); margin: 0px; padding: 0px; ">
                One usability issue with this scheme, though, is that when users forget their Inky passwords, we can't do anything but wipe their account and let them repopulate it.</p>
        <p style="color: rgb(0, 0, 255); background-color: rgb(255, 255, 255); margin: 0px; padding: 0px; ">
                 </p>
        <p style="color: rgb(0, 0, 255); background-color: rgb(255, 255, 255); margin: 0px; padding: 0px; ">
                What we do now is allow users to set up a secret question / answer combination on each device they have Inky installed on. I believe this is essentially the approach LastPass takes: you can reset your password using a client you've previously set up to do so.</p>
        <p style="color: rgb(0, 0, 255); background-color: rgb(255, 255, 255); margin: 0px; padding: 0px; ">
                 </p>
        <p style="color: rgb(0, 0, 255); background-color: rgb(255, 255, 255); margin: 0px; padding: 0px; ">
                The problem is that many users just skip the secret question / answer setup. Then when they forget their password, they can't reset it. And when they ask us to wipe their account so they can recreate it with the same user name — people actually care about the user name — we have no way of knowing they're actually the owner of the account.</p>
        <p style="color: rgb(0, 0, 255); background-color: rgb(255, 255, 255); margin: 0px; padding: 0px; ">
                 </p>
        <p style="color: rgb(0, 0, 255); background-color: rgb(255, 255, 255); margin: 0px; padding: 0px; ">
                So I'm soliciting clever ideas for ways to improve the usability without changing the fundamental security properties. (Or, alternatively, dire predictions about the feasibility of any such clever idea working.)</p>
        <p style="color: rgb(0, 0, 255); background-color: rgb(255, 255, 255); margin: 0px; padding: 0px; ">
                 </p>
        <p style="color: rgb(0, 0, 255); background-color: rgb(255, 255, 255); margin: 0px; padding: 0px; ">
                Dave</p>
</div>
<div class="message-gap">
        <p style="margin: 0px; padding: 0px; ">
                 </p>
</div>
<div class="message-signature" id="signature_1398181307989-3260421" name="signature_1398181307989-3260421">
        <div>
                <span style="font-family: Arial, Helvetica Neue, Helvetica, sans-serif; color: rgb(153, 153, 153);">Sent with <a href="http://inky.com?kme=signature"><span style="color: rgb(51, 150, 192); text-decoration: underline;">inky</span></a></span></div>
</div>
<p style="margin: 0px; padding: 0px; ">
         </p>
</div></body>