On 2 November 2013 22:57, slush <slush@centrum.cz> wrote:

Glad to see that there are more and more people wanting to replace passwords with digital signatures.

Although such method has been already used on other websites like Eligius or bitcoin-otc, I dont think theres any standard way to doing so yet.

Two comments to your proposal:

A) message-to-be-signed need to be carefully composed to be both structured and human readable. It should contain at least:
Desired username/identity handler
Server identifier (url)
Timestamp to prevent replay attack
Server challenge

Then the user can see what he's signing, instead of signing some binary blob which can contain some evil data.

B)
Same structured data should be a part of html page in some header tag, ideally signed by server certificate to confirm that the request is valid. Then the login request can be processed by machine automatically, without a need of copy&paste by a user.

But where are the private keys stored?  Crypto in the browser with help, but although they will expose ECC via the NSS, I dont think bitcoin's particular curve will be supported, because it's not NIST approved.  If the use case was presented though, they may add it.

This can actually be done today using client side certificates.  Two methods.

Method 1:

In your client side certificate, put in your bitcoin address in the subjectAlternativeName field.  This is a field that lets you tell the server "I have another identity"

From the bitcoin address look up via a ".well-known" key server some items previously uploaded.  This would normally be a signed value of the key used, or a signed value of the the certificate.  The server checks this and logs you in.

Method 2:

In your client side certificate, put in an HTTP address.  That HTTP address contains your bitcoin address and a signed copy of your cert public key or the cert itself.

The advantage here is that you dont need a key server.


Both methods work, I've been doing this kind of thing for 5 years+, and I'd never go back to passwords on anything I build.

I'm all for recreating this UI in javascript too, but I just wonder how to protect the private keys ...
 

Slush



On Sat, Nov 2, 2013 at 6:01 AM, <bitcoingrant@gmx.com> wrote:

Passwords are inefficient by design: frequently we hear news from Sony, Square Enix, Adobe, and various others about passwords being compromised, databases being copied and stolen. This story remains true in the Bitcoin space. In light of the recent Bitcointalk forum breach echoes an increasing need for passwords to become a thing of the past.

 

In celebration of the 5 year anniversary of the Bitcoin whitepaper, we are delighted to introduce the Message Signing based authentication method.

 

In brief, the authentication work as follows:

 

Server provides a token for the client to sign.

client passes the signed message and the bitcoin address back to the server.

server validates the message and honors the alias (optional) and bitcoin address as identification.

 

http://forums.bitcoingrant.org/

 

Above is a proof of concept forum that utilize this authentication method. Following Kerckhoffs's principle, this forum only stores the signed message and bitcoin address the users provide the first time they use the site, both are public information. In addition, there is no database, everything is simply an RSS feed. For the sake of usability we have included a redis for the sessions, at the cost of additional exposure to potential risks: users no longer need to sign a token every time they wish to post.

 

All source code will be available on github in the next few days.

 

We welcome any feedback or suggestions.


 


------------------------------------------------------------------------------
Android is increasing in popularity, but the open development platform that
developers love is also attractive to malware creators. Download this white
paper to learn more about secure code signing practices that can help keep
Android apps secure.
http://pubads.g.doubleclick.net/gampad/clk?id=65839951&iu=/4140/ostg.clktrk
_______________________________________________
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development



------------------------------------------------------------------------------
Android is increasing in popularity, but the open development platform that
developers love is also attractive to malware creators. Download this white
paper to learn more about secure code signing practices that can help keep
Android apps secure.
http://pubads.g.doubleclick.net/gampad/clk?id=65839951&iu=/4140/ostg.clktrk
_______________________________________________
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development