summaryrefslogtreecommitdiff
path: root/27/df427a6544c72774d6ab0e8d534d9dbf17beaa
blob: 3d59d62e1b837160792dab46554b7ce35350227a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
Received: from sog-mx-1.v43.ch3.sourceforge.com ([172.29.43.191]
	helo=mx.sourceforge.net)
	by sfs-ml-2.v29.ch3.sourceforge.com with esmtp (Exim 4.76)
	(envelope-from <gavinandresen@gmail.com>) id 1WW4Eh-0005GW-Mu
	for bitcoin-development@lists.sourceforge.net;
	Fri, 04 Apr 2014 13:32:47 +0000
Received-SPF: pass (sog-mx-1.v43.ch3.sourceforge.com: domain of gmail.com
	designates 209.85.160.181 as permitted sender)
	client-ip=209.85.160.181; envelope-from=gavinandresen@gmail.com;
	helo=mail-yk0-f181.google.com; 
Received: from mail-yk0-f181.google.com ([209.85.160.181])
	by sog-mx-1.v43.ch3.sourceforge.com with esmtps (TLSv1:RC4-SHA:128)
	(Exim 4.76) id 1WW4Eg-0001is-0S
	for bitcoin-development@lists.sourceforge.net;
	Fri, 04 Apr 2014 13:32:47 +0000
Received: by mail-yk0-f181.google.com with SMTP id 131so2856112ykp.40
	for <bitcoin-development@lists.sourceforge.net>;
	Fri, 04 Apr 2014 06:32:40 -0700 (PDT)
MIME-Version: 1.0
X-Received: by 10.236.120.147 with SMTP id p19mr16990985yhh.6.1396618360303;
	Fri, 04 Apr 2014 06:32:40 -0700 (PDT)
Received: by 10.170.133.195 with HTTP; Fri, 4 Apr 2014 06:32:40 -0700 (PDT)
In-Reply-To: <CA+WZAEqYKv8T1OMCKhOJvf5FAy=WujJ=OhtsYP9aBf=4ZPNxmw@mail.gmail.com>
References: <CA+WZAEp3HsW5ESGUZ7YfR1MZXGC5jd+LucUt_MUP8K94Xwhuhg@mail.gmail.com>
	<CANEZrP0KVyp2Va7Wyy=t0qYkLNK9BDUaSzBfuzQss+=weLJ1Fw@mail.gmail.com>
	<CA+WZAEqYKv8T1OMCKhOJvf5FAy=WujJ=OhtsYP9aBf=4ZPNxmw@mail.gmail.com>
Date: Fri, 4 Apr 2014 09:32:40 -0400
Message-ID: <CABsx9T0FJGn3a+JjiLK6yhLN4psqgqhX766FY+5r-mK9v_aYnw@mail.gmail.com>
From: Gavin Andresen <gavinandresen@gmail.com>
To: =?ISO-8859-1?Q?Eric_Larchev=EAque?= <elarch@gmail.com>
Content-Type: multipart/alternative; boundary=20cf3010e48d40b5f104f6378d0a
X-Spam-Score: 0.4 (/)
X-Spam-Report: Spam Filtering performed by mx.sourceforge.net.
	See http://spamassassin.org/tag/ for more details.
	-1.5 SPF_CHECK_PASS SPF reports sender host as permitted sender for
	sender-domain
	0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider
	(gavinandresen[at]gmail.com)
	-0.0 SPF_PASS               SPF: sender matches SPF record
	1.0 HTML_MESSAGE           BODY: HTML included in message
	-0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from
	author's domain
	0.1 DKIM_SIGNED            Message has a DKIM or DK signature,
	not necessarily valid
	-0.1 DKIM_VALID Message has at least one valid DKIM or DK signature
	1.0 FREEMAIL_REPLY         From and body contain different freemails
X-Headers-End: 1WW4Eg-0001is-0S
Cc: Bitcoin Dev <bitcoin-development@lists.sourceforge.net>
Subject: Re: [Bitcoin-development] Draft BIP for seamless website
 authentication using Bitcoin address
X-BeenThere: bitcoin-development@lists.sourceforge.net
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: <bitcoin-development.lists.sourceforge.net>
List-Unsubscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>,
	<mailto:bitcoin-development-request@lists.sourceforge.net?subject=unsubscribe>
List-Archive: <http://sourceforge.net/mailarchive/forum.php?forum_name=bitcoin-development>
List-Post: <mailto:bitcoin-development@lists.sourceforge.net>
List-Help: <mailto:bitcoin-development-request@lists.sourceforge.net?subject=help>
List-Subscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>,
	<mailto:bitcoin-development-request@lists.sourceforge.net?subject=subscribe>
X-List-Received-Date: Fri, 04 Apr 2014 13:32:47 -0000

--20cf3010e48d40b5f104f6378d0a
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Using a bitcoin address repeatedly is something we're trying to move away
from.

And using a bitcoin address as a persistent identity key feels like the
wrong direction to me.

Better to use something like client certificates, the FIDO alliance's
(new!) specs:
  http://fidoalliance.org/specifications/download

... or Steve Gibson's proposed SQRL system:
  https://www.grc.com/sqrl/sqrl.htm

If one of those systems gets critical mass and actually starts being
successful, then I think it would make sense to specify a standard way of
using a HD wallet's deterministic seed to derive a key used for the FIDO or
SQRL systems.




On Fri, Apr 4, 2014 at 9:22 AM, Eric Larchev=EAque <elarch@gmail.com> wrote=
:

> What I'm trying to achieve, is to have a very simple way of authenticatin=
g
> yourself with one Bitcoin address from your wallet.
> For most of the people using Bitcoin, their wallet is on their phone.
>
> The UX is clear and simple :
> 1. click on "connect with Bitcoin" (the audience is normal people)
> 2. flash the QRcode with your wallet (blockchain.info, mycelium, ...)
> 3. accept the authentication request (same style than OpenID or Facebook
> connect)
> 4. user is autologged and identified by the chosen Bitcoin public address
>
> It makes sense only if major wallets are supporting the protocol. If you
> need to install a plugin or download a third party software, no one will =
do
> it.
> I see only benefits for the entire ecosystem, and if I'm working on such =
a
> proposition it is because I really need this feature.
>
> Of course, it can be done without a BIP, I just need to convince wallet
> developpers one by one to implement the feature.
> But I thought it was much better to start the "official" way, so all
> wallet could easily find and implement the same authentication mechanism.
>
> >  Bitcoin and website authentication are unrelated problems
>
> I respectfully disagree. Many services require your Bitcoin address, and
> to do that they artificially request an email/password to store it.
> This is not about authentication as an identity (as "I'm Eric
> Larcheveque"), but as in "I'm proving to you that I control this address"=
.
>
> Without such a standard protocol, you could never envision a pure Bitcoin
> physical locker rental, or booking an hotel room via Bitcoin and opening
> the door through the paying address.
>
> Eric
>
>
>
> On Fri, Apr 4, 2014 at 3:08 PM, Mike Hearn <mike@plan99.net> wrote:
>
>> This comes up every few months. I think the problem you are trying to
>> solve is already solved by SSL client certificates, and if you want to h=
elp
>> make them more widespread the programs you need to upgrade are web brows=
ers
>> and not Bitcoin wallets. There are certainly bits of infrastructure you
>> could reuse here and there, like perhaps a TREZOR with a custom firmware
>> extension for really advanced/keen users, but overall Bitcoin and websit=
e
>> authentication are unrelated problems.
>>
>>
>> On Fri, Apr 4, 2014 at 2:15 PM, Eric Larchev=EAque <elarch@gmail.com>wro=
te:
>>
>>> Hello,
>>>
>>> I've written a draft BIP description of an authentication protocol base=
d
>>> on Bitcoin public address.
>>>
>>> By authentication we mean to prove to a service/application that we
>>> control a specific Bitcoin address by signing a challenge, and that all
>>> related data and settings may securely be linked to our session.
>>>
>>> The aim is to greatly facilitate sign ups and logins to services and
>>> applications, improving the Bitcoin ecosystem as a whole.
>>>
>>> https://github.com/bitid/bitid/blob/master/BIP_draft.md
>>>
>>> Demo website :
>>> http://bitid-demo.herokuapp.com/
>>>
>>> Classical password authentication is an insecure process that could be
>>> solved with public key cryptography. The problem is that it theoretical=
ly
>>> offloads a lot of complexity and responsibility on the user. Managing
>>> private keys securely is complex. However this complexity is already be=
ing
>>> addressed in the Bitcoin ecosystem. So doing public key authentication =
is
>>> practically a free lunch to bitcoiners.
>>>
>>> I've formatted the protocol description as a BIP because this is the
>>> only way to have all major wallets implementing it, and because it
>>> completely fits in my opinion the BIP "process" category.
>>>
>>> Please read it and let me know your thoughts and comments so we can
>>> improve on this draft.
>>>
>>> Eric Larcheveque
>>> elarch@gmail.com
>>>
>>>
>>>
>>> -----------------------------------------------------------------------=
-------
>>>
>>> _______________________________________________
>>> Bitcoin-development mailing list
>>> Bitcoin-development@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/bitcoin-development
>>>
>>>
>>
>
>
> -------------------------------------------------------------------------=
-----
>
> _______________________________________________
> Bitcoin-development mailing list
> Bitcoin-development@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/bitcoin-development
>
>


--=20
--
Gavin Andresen

--20cf3010e48d40b5f104f6378d0a
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Using a bitcoin address repeatedly is something we&#39;re =
trying to move away from.<div><br></div><div>And using a bitcoin address as=
 a persistent identity key feels like the wrong direction to me.</div><div>
<br></div><div>Better to use something like client certificates, the FIDO a=
lliance&#39;s (new!) specs:</div><div>=A0=A0<a href=3D"http://fidoalliance.=
org/specifications/download">http://fidoalliance.org/specifications/downloa=
d</a></div>
<div><br></div><div>... or Steve Gibson&#39;s proposed SQRL system:</div><d=
iv>=A0=A0<a href=3D"https://www.grc.com/sqrl/sqrl.htm">https://www.grc.com/=
sqrl/sqrl.htm</a></div><div><br></div><div>If one of those systems gets cri=
tical mass and actually starts being successful, then I think it would make=
 sense to specify a standard way of using a HD wallet&#39;s deterministic s=
eed to derive a key used for the FIDO or SQRL systems.</div>
<div><br></div><div><br></div></div><div class=3D"gmail_extra"><br><br><div=
 class=3D"gmail_quote">On Fri, Apr 4, 2014 at 9:22 AM, Eric Larchev=EAque <=
span dir=3D"ltr">&lt;<a href=3D"mailto:elarch@gmail.com" target=3D"_blank">=
elarch@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex"><div dir=3D"ltr">What I&#39;m trying to achi=
eve, is to have a very simple way of authenticating yourself with one Bitco=
in address from your wallet.<div>
For most of the people using Bitcoin, their wallet is on their phone.</div>

<div><br></div><div>The UX is clear and simple :</div><div>1. click on &quo=
t;connect with Bitcoin&quot; (the audience is normal people)</div><div>2. f=
lash the QRcode with your wallet (<a href=3D"http://blockchain.info" target=
=3D"_blank">blockchain.info</a>, mycelium, ...)</div>


<div>3. accept the authentication request (same style than OpenID or Facebo=
ok connect)</div><div>4. user is autologged and identified by the chosen Bi=
tcoin public address</div><div><br></div><div>It makes sense only if major =
wallets are supporting the protocol. If you need to install a plugin or dow=
nload a third party software, no one will do it.</div>


<div>I see only benefits for the entire ecosystem, and if I&#39;m working o=
n such a proposition it is because I really need this feature.<br></div><di=
v><br></div><div>Of course, it can be done without a BIP, I just need to co=
nvince wallet developpers one by one to implement the feature.</div>


<div>But I thought it was much better to start the &quot;official&quot; way=
, so all wallet could easily find and implement the same authentication mec=
hanism.</div><div class=3D""><div><br></div><div>&gt;=A0<span style=3D"font=
-family:arial,sans-serif;font-size:13px">=A0</span><span style=3D"font-fami=
ly:arial,sans-serif;font-size:13px">Bitcoin and website authentication are =
unrelated problems</span></div>


<div><span style=3D"font-family:arial,sans-serif;font-size:13px"><br></span=
></div></div><div><span style=3D"font-family:arial,sans-serif;font-size:13p=
x">I respectfully disagree. Many services require your Bitcoin address, and=
 to do that they artificially request an email/password to store it.</span>=
</div>


<div><span style=3D"font-family:arial,sans-serif;font-size:13px">This is no=
t about authentication as an identity (as &quot;I&#39;m Eric Larcheveque&qu=
ot;), but as in &quot;I&#39;m proving to you that I control this address&qu=
ot;.</span></div>


<div><span style=3D"font-family:arial,sans-serif;font-size:13px"><br></span=
></div><div><font face=3D"arial, sans-serif">Without such a standard protoc=
ol, you could never envision a pure Bitcoin physical locker rental, or book=
ing an hotel room via Bitcoin and opening the door through the paying addre=
ss.</font></div>
<span class=3D"HOEnZb"><font color=3D"#888888">

<div><br></div><div><font face=3D"arial, sans-serif">Eric</font></div><div>=
<font face=3D"arial, sans-serif"><br></font></div></font></span></div><div =
class=3D"HOEnZb"><div class=3D"h5"><div class=3D"gmail_extra"><br><br><div =
class=3D"gmail_quote">
On Fri, Apr 4, 2014 at 3:08 PM, Mike Hearn <span dir=3D"ltr">&lt;<a href=3D=
"mailto:mike@plan99.net" target=3D"_blank">mike@plan99.net</a>&gt;</span> w=
rote:<br>

<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex"><div dir=3D"ltr">This comes up every few mon=
ths. I think the problem you are trying to solve is already solved by SSL c=
lient certificates, and if you want to help make them more widespread the p=
rograms you need to upgrade are web browsers and not Bitcoin wallets. There=
 are certainly bits of infrastructure you could reuse here and there, like =
perhaps a TREZOR with a custom firmware extension for really advanced/keen =
users, but overall Bitcoin and website authentication are unrelated problem=
s.</div>



<div class=3D"gmail_extra"><br><br><div class=3D"gmail_quote"><div><div>On =
Fri, Apr 4, 2014 at 2:15 PM, Eric Larchev=EAque <span dir=3D"ltr">&lt;<a hr=
ef=3D"mailto:elarch@gmail.com" target=3D"_blank">elarch@gmail.com</a>&gt;</=
span> wrote:<br>


</div></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bo=
rder-left:1px #ccc solid;padding-left:1ex"><div><div>
<div dir=3D"ltr">Hello,<br><br>I&#39;ve written a draft BIP description of =
an authentication protocol based on Bitcoin public address.<br><br>By authe=
ntication we mean to prove to a service/application that we control a speci=
fic Bitcoin address by signing a challenge, and that all related data and s=
ettings may securely be linked to our session.<div>





<br></div><div>The aim is to greatly facilitate sign ups and logins to serv=
ices and applications, improving the Bitcoin ecosystem as a whole.<br><br><=
a href=3D"https://github.com/bitid/bitid/blob/master/BIP_draft.md" target=
=3D"_blank">https://github.com/bitid/bitid/blob/master/BIP_draft.md</a><br>





<br>Demo website :<br><a href=3D"http://bitid-demo.herokuapp.com/" target=
=3D"_blank">http://bitid-demo.herokuapp.com/</a><br><br>Classical password =
authentication is an insecure process that could be solved with public key =
cryptography. The problem is that it theoretically offloads a lot of comple=
xity and responsibility on the user. Managing private keys securely is comp=
lex. However this complexity is already being addressed in the Bitcoin ecos=
ystem. So doing public key authentication is practically a free lunch to bi=
tcoiners.<br>





<div><br></div><div>I&#39;ve formatted the protocol description as a BIP be=
cause this is the only way to have all major wallets implementing it, and b=
ecause it completely fits in my opinion the BIP &quot;process&quot; categor=
y.</div>





<div><br></div><div>Please read it and let me know your thoughts and commen=
ts so we can improve on this draft.<br></div><div><br></div><div>Eric Larch=
eveque</div><div><a href=3D"mailto:elarch@gmail.com" target=3D"_blank">elar=
ch@gmail.com</a></div>





<div><br></div></div></div>
<br></div></div>-----------------------------------------------------------=
-------------------<br>
<br>_______________________________________________<br>
Bitcoin-development mailing list<br>
<a href=3D"mailto:Bitcoin-development@lists.sourceforge.net" target=3D"_bla=
nk">Bitcoin-development@lists.sourceforge.net</a><br>
<a href=3D"https://lists.sourceforge.net/lists/listinfo/bitcoin-development=
" target=3D"_blank">https://lists.sourceforge.net/lists/listinfo/bitcoin-de=
velopment</a><br>
<br></blockquote></div><br></div>
</blockquote></div><br></div>
</div></div><br>-----------------------------------------------------------=
-------------------<br>
<br>_______________________________________________<br>
Bitcoin-development mailing list<br>
<a href=3D"mailto:Bitcoin-development@lists.sourceforge.net">Bitcoin-develo=
pment@lists.sourceforge.net</a><br>
<a href=3D"https://lists.sourceforge.net/lists/listinfo/bitcoin-development=
" target=3D"_blank">https://lists.sourceforge.net/lists/listinfo/bitcoin-de=
velopment</a><br>
<br></blockquote></div><br><br clear=3D"all"><div><br></div>-- <br>--<br>Ga=
vin Andresen<br>
</div>

--20cf3010e48d40b5f104f6378d0a--