Pages:
Author

Topic: Can we talk about removing SSL from the payment protocol and put PGP? - page 2. (Read 2455 times)

legendary
Activity: 1190
Merit: 1004
I have to agree with kjj. The PKI solution is simple and a guaranteed way of giving a proof of identity, which despite problems, has and will continue to work.
kjj
legendary
Activity: 1302
Merit: 1026
The real problem is that WoT is a lousy model for widespread use.

Say I want to buy some hardware from bitcoinstore.com.  I go to their website, prepare my order and check out.  They send a payment request, signed by some PGP key.  Now what?

The options boil down to:

1) I fly to wherever the hell they are and compare the key in person.
2) I get lucky and have a direct path of trustworthy and well known trust delegates between me and their cert.
3) The ad hoc certificate chain is of dubious value.  This is amazingly similar to the SSL CA system, but the entity acting as the CA isn't necessarily obvious, may not even know that they are doing it, and are in no way accountable to anyone.
4) The market recreates the CA system, for real.
5) I proceed with absolutely no security.

While the CA system has huge serious problems, the alternative is much, much worse in 99.9% of actual use cases, and a vastly better 0.1% of the time.
legendary
Activity: 1498
Merit: 1000
Because an implementation contained a bug (now fixed) you want to change the protocol? Makes no sense.

No actually I have been bringing this up for a while now, just that I felt this was another good time to remind people. Also I wasn't a fan of openssl before but this makes it sure that it is too centralized and maybe implementing another library maybe better.
legendary
Activity: 1190
Merit: 1004
Why use PGP when TLS is better designed for this already? I don't know much about it, but it seems you can use identity certificates with PGP, but the infrastructure of digital certificates is no doubt built around TLS.

Because an implementation contained a bug (now fixed) you want to change the protocol? Makes no sense.
donator
Activity: 1218
Merit: 1079
Gerald Davis
Well my main focus is getting a decentralized key server, if it supports SSL first then pgp then fine.

Thank you for clarifying I think a decentralized keyserver for those who wish to avoid the counterparty risk of CAs (not necessarily SSL) is a very good idea.

SSL is very adaptable
Quote
openssl ecparam -genkey -name secp256k1 -out e:\server.pem
openssl req -new -x509 -nodes -sha256 -key e:\server.pem > e:\server.cert

openssl x509 -in e:\server.cert -text -noout

Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            cd:a5:2d:4d:4c:b1:34:94
    Signature Algorithm: ecdsa-with-SHA256
        Issuer: CN=I am as secure as bitcoin itself
        Validity
            Not Before: Apr  9 19:51:02 2014 GMT
            Not After : May  9 19:51:02 2014 GMT
        Subject: CN=I am as secure as bitcoin itself
        Subject Public Key Info:
            Public Key Algorithm: id-ecPublicKey
                Public-Key: (256 bit)
                pub:
                    04:86:80:e3:3b:d6:0e:ab:13:bf:03:5e:ca:02:04:
                    4e:e1:82:7e:10:50:b1:9d:75:d9:4e:63:c6:75:9b:
                    7f:2b:06:c8:e1:11:9c:63:5c:25:29:6a:d3:8f:ee:
                    ae:b0:64:6d:36:80:29:6b:85:ce:73:98:fe:68:22:
                    cf:df:f6:62:53
                ASN1 OID: secp256k1
        X509v3 extensions:
            X509v3 Subject Key Identifier:
                14:ED:A5:89:CD:E8:AB:AA:BF:1D:6D:70:17:81:14:C1:B2:51:BC:3E
            X509v3 Authority Key Identifier:
                keyid:14:ED:A5:89:CD:E8:AB:AA:BF:1D:6D:70:17:81:14:C1:B2:51:BC:3E
            X509v3 Basic Constraints:
                CA:TRUE <-should probably be false but didn't feel like setting up config file
    Signature Algorithm: ecdsa-with-SHA256
         30:44:02:20:65:10:58:29:47:c8:3d:b7:aa:d0:ef:fc:80:47:
         4e:72:77:e5:a5:58:48:0d:6c:37:8f:fc:3d:fc:e1:34:cd:b3:
         02:20:4d:14:5e:8f:0d:31:35:84:20:2d:5a:be:6a:3a:ea:e0:
         7a:69:6d:1e:45:66:4f:5b:e2:d8:57:59:2f:27:4d:ba

Hell you could even put a backup of the private key in your wallet (or use it as an address too).

Quote
I am also not a big fan of openssl, that also is playing into it. I rather they used http://nacl.cr.yp.to/.
Ideally the calls would be encapsulated using an interface then support for other crypto libraries would be plug and play (well maybe not plug and play but far easier for developers once wrappers were written).  For example I may want to use a smartcard for signing and currently that requires a whole host of ugly refactoring but if there was an interface I could write against I simply swap the openssl wrapper for the smartcard wrapper and compile.
legendary
Activity: 1498
Merit: 1000
Well technically you can use a X509 to relay pgp information. I think a PGP certificate would be stronger and better in this case. Also X509 is weak with the signature algorithms, you don't need a link to show that.

Well the subtleties do matter. X509 CAN support weak signature algorithms but it can also use require only cryptographically strong algorithms as well.

Code:
openssl req -new -x509 -sha512 ...

The support for older weaker algorithms is mostly for backwards legacy support, support which isn't needed for a greenfield implementation.  No reason that a particular users (or any user) would need to support weak signature algorithms.  You can also use MD5 to hash PGP messages as well. 

If both can be implemented without CAs, both can support key servers, both can use a node network for DHT storage of public keys and/or certs then ultimately the only advantage of using PGP over SSL would be that it is more secure.  Sorry you haven't shown that PGP would be more secure than self signed SSL certs.    This isn't an academic debate.  It is almost certain that Bitcoin will support SSL in payment protocol so it doesn't come down to PGP vs SSL it comes down to SSL vs SSL + PGP.  Adding another entire dependency just because weak SSL certs might be weak (and strong ones are cryptographically unbreakable) is well not a very strong argument.

Well my main focus is getting a decentralized key server, if it supports SSL first then pgp then fine. I am also not a big fan of openssl, that also is playing into it. I rather they used http://nacl.cr.yp.to/.
donator
Activity: 1218
Merit: 1079
Gerald Davis
Well technically you can use a X509 to relay pgp information. I think a PGP certificate would be stronger and better in this case. Also X509 is weak with the signature algorithms, you don't need a link to show that.

Well the subtleties do matter. X509 CAN support weak signature algorithms but it can also use require only cryptographically strong algorithms as well.

Code:
openssl req -new -x509 -sha512 ...

The support for older weaker algorithms is mostly for backwards legacy support, support which isn't needed for a greenfield implementation.  No reason that a particular users (or any user) would need to support weak signature algorithms.  You can also use MD5 to hash PGP messages as well. 

If both can be implemented without CAs, both can support key servers, both can use a node network for DHT storage of public keys and/or certs then ultimately the only advantage of using PGP over SSL would be that it is more secure.  Sorry you haven't shown that PGP would be more secure than self signed SSL certs.    This isn't an academic debate.  It is almost certain that Bitcoin will support SSL in payment protocol so it doesn't come down to PGP vs SSL it comes down to SSL vs SSL + PGP.  Adding another entire dependency just because weak SSL certs might be weak (and strong ones are cryptographically unbreakable) is well not a very strong argument.

legendary
Activity: 1498
Merit: 1000
There isn't a widely used transport layer standard for OpenPGP, which is what the protocol needs, so TLS is probably a better choice then PGP for the actual encryption.

This is very much false, all information could be encrypted using the public key of the user that wants to send the bitcoins and then decrypt by their machine. Also I wouldn't include gpg into the actually bitcoin client I would have it called out to the shell so their is a disconnect of passwords and stuff.

No it's not false.  TLS (per its name) happens at the transport layer.  It's baked into every http library in the world.  There really isn't a standard to do this for OpenPGP that anyone uses or is supported by any library.  What you're proposing requires everyone to implement an ad-hoc poorly specified made-up-just-for-bip-70 encryption scheme and shoving it into the presentation layer.

We are talking about two different things, you are saying I want to take the transport layer and wrap it in a PGP encryption which is not what i am talking about. I am talking taking a public key encrypting data so only that private key can read it. Two very different things.
kgo
hero member
Activity: 548
Merit: 500
There isn't a widely used transport layer standard for OpenPGP, which is what the protocol needs, so TLS is probably a better choice then PGP for the actual encryption.

This is very much false, all information could be encrypted using the public key of the user that wants to send the bitcoins and then decrypt by their machine. Also I wouldn't include gpg into the actually bitcoin client I would have it called out to the shell so their is a disconnect of passwords and stuff.

No it's not false.  TLS (per its name) happens at the transport layer.  It's baked into every http library in the world.  There really isn't a standard to do this for OpenPGP that anyone uses or is supported by any library.  What you're proposing requires everyone to implement an ad-hoc poorly specified made-up-just-for-bip-70 encryption scheme and shoving it into the presentation layer.
legendary
Activity: 1498
Merit: 1000
There isn't a widely used transport layer standard for OpenPGP, which is what the protocol needs, so TLS is probably a better choice then PGP for the actual encryption.

This is very much false, all information could be encrypted using the public key of the user that wants to send the bitcoins and then decrypt by their machine. Also I wouldn't include gpg into the actually bitcoin client I would have it called out to the shell so their is a disconnect of passwords and stuff.
kgo
hero member
Activity: 548
Merit: 500
Note that the BIP doesn't tell you what certificates should be trusted.  That's up to the implementation, not the protocol:

"Trusted root certificates may be obtained from the operating system; if validation is done on a device without an operating system, the Mozilla root store is recommended."

If you want to use a WoT, you can just use something like monkeysphere http://web.monkeysphere.info/ instead of the normal PKI/root-CAs.

There isn't a widely used transport layer standard for OpenPGP, which is what the protocol needs, so TLS is probably a better choice then PGP for the actual encryption.
legendary
Activity: 1498
Merit: 1000
Yes SSL protocol supports it but no browsers (Firefox does) really support that feature, no web server really makes use of that of feature. So what makes bitcoin going to support?

How would Bitcoin support PGP client public keys?  Whatever the solution replace PGP public key with SSL Client cert.  Not saying SSL is better but not seeing how we gain anything by going to PGP.

Quote
Well the X509 also isn't that strong. I mean if people think that SSL cert would work better in a decentralized environment I am open to it but I don't think SSL certificates aren't strong enough for this.

Ok now we are talking or at least to the heart of the matter.  Do you have a cite or link where X509 would fail that PGP wouldn't?

Well technically you can use a X509 to relay pgp information. I think a PGP certificate would be stronger and better in this case. Also X509 is weak with the signature algorithms, you don't need a link to show that.
donator
Activity: 1218
Merit: 1079
Gerald Davis
Yes SSL protocol supports it but no browsers (Firefox does) really support that feature, no web server really makes use of that of feature. So what makes bitcoin going to support?

How would Bitcoin support PGP client public keys?  Whatever the solution replace PGP public key with SSL Client cert.  Not saying SSL is better but not seeing how we gain anything by going to PGP.

Quote
Well the X509 also isn't that strong. I mean if people think that SSL cert would work better in a decentralized environment I am open to it but I don't think SSL certificates aren't strong enough for this.

Ok now we are talking or at least to the heart of the matter.  Do you have a cite or link where X509 would fail that PGP wouldn't?
legendary
Activity: 1498
Merit: 1000
With PGP we could validate two way, that the company is talking to the right user and user could be talking to the right company.

That is a valid point although SSL does support client certs.  Bitcoin would be extended to expose that support making it identical to PGP in that respect.

Yes SSL protocol supports it but no browsers (Firefox does) really support that feature, no web server really makes use of that of feature. So what makes bitcoin going to support?

Quote
 Also PKI are expensive so we can't really have any community involvement this yet. Where is we used a key server that was decentralized like using a DHT, we can then not have to worry about hacks on CA's or it being expensive to start your own.  We also could use each full node be a key server and then you query everyone of them for the public key for the company you want to validate from. With majority rule on what is the correct public key.

All of that can be done with SSL self signed SSL certs as well.  I guess my point is you seem to be indicating that CA = bad therefore don't use SSL.  SSL can be used in a self signed fashion.  You could have SSL self signed key servers, you could load them into the network DHT style essentially replace public key in your example with SSL cert and the same thing applies.

Well the X509 also isn't that strong. I mean if people think that SSL cert would work better in a decentralized environment I am open to it but I don't think SSL certificates aren't strong enough for this.
donator
Activity: 1218
Merit: 1079
Gerald Davis
With PGP we could validate two way, that the company is talking to the right user and user could be talking to the right company.

That is a valid point although SSL does support client certs.  Bitcoin would be extended to expose that support making it identical to PGP in that respect.

Quote
  Also PKI are expensive so we can't really have any community involvement this yet. Where is we used a key server that was decentralized like using a DHT, we can then not have to worry about hacks on CA's or it being expensive to start your own.  We also could use each full node be a key server and then you query everyone of them for the public key for the company you want to validate from. With majority rule on what is the correct public key.

All of that can be done with SSL self signed SSL certs as well.  I guess my point is you seem to be indicating that CA = bad therefore don't use SSL.  SSL can be used in a self signed fashion.  You could have SSL self signed key servers, you could load them into the network DHT style essentially replace public key in your example with SSL cert and the same thing applies.
legendary
Activity: 1498
Merit: 1000
If you write good patches to add PGP/WoT authentication, I suspect they would be merged in a heartbeat.

As far as I can tell, no one is opposed to such a thing, they just don't think it has a very good payoff to effort ratio compared to authentication using the global SSL PKI.  Because of this, it is not a good candidate for being built first.  If you disagree, feel free to write some code, or convince/bribe someone to do so.
Indeed. 100% agreed.

I'm certainly not against better, more distributed alternatives to the payment protocol. BIP0070 was not meant as the be-all and end-all idea, but a immediate workable solution.

But there has been enough talk on this subject. Long, handwavy discussions are just not useful. Show us code.


Yes I agree that code is the overrules talking about it, but by having these talks I am hoping to get a developer who could do this and has the time. Right now many of us just don't have the time to develop this protocol write the features and then convince people to use it.

I don't think a bounty is appropriate with this feature.
legendary
Activity: 1498
Merit: 1000
Not trying to flame gweedo but what would we gain from using PGP over say self signed SSL cert?  SSL doesn't need to mean that CA are used.

Well first SSL cert are one-way. You only validate them for the company you are connecting to. With PGP we could validate two way, that the company is talking to the right user and user could be talking to the right company. Also PKI are expensive so we can't really have any community involvement this yet. Where is we used a key server that was decentralized like using a DHT, we can then not have to worry about hacks on CA's or it being expensive to start your own.

We also could use each full node be a key server and then you query everyone of them for the public key for the company you want to validate from. With majority rule on what is the correct public key.
donator
Activity: 1218
Merit: 1079
Gerald Davis
Not trying to flame gweedo but what would we gain from using PGP over say self signed SSL cert?  SSL doesn't need to mean that CA are used.
hero member
Activity: 812
Merit: 1022
No Maps for These Territories
If you write good patches to add PGP/WoT authentication, I suspect they would be merged in a heartbeat.

As far as I can tell, no one is opposed to such a thing, they just don't think it has a very good payoff to effort ratio compared to authentication using the global SSL PKI.  Because of this, it is not a good candidate for being built first.  If you disagree, feel free to write some code, or convince/bribe someone to do so.
Indeed. 100% agreed.

I'm certainly not against better, more distributed alternatives to the payment protocol. BIP0070 was not meant as the be-all and end-all idea, but a immediate workable solution.

But there has been enough talk on this subject. Long, handwavy discussions are just not useful. Show us code.
legendary
Activity: 1498
Merit: 1000
If you write good patches to add PGP/WoT authentication, I suspect they would be merged in a heartbeat.

As far as I can tell, no one is opposed to such a thing, they just don't think it has a very good payoff to effort ratio compared to authentication using the global SSL PKI.  Because of this, it is not a good candidate for being built first.  If you disagree, feel free to write some code, or convince/bribe someone to do so.

Yes I know if I want it I should write it myself. I just don't have the time.
Pages:
Jump to: