/github subscribe snowblossomcoin/channels
this ssl thing is kicking my ass
urge to rewrite my own TLS rising
isn't like I haven't done it before
i’ll leave you an emotional support scarecrow: bytewise
I think I got it (kinda)
* EC ssl doesn't work, not sure why
* for some reason, I need some strange library to do SSL at all
* the trust manager is impossible to actually override to meet my needs (but I have a work around)
* I can do wildcard hostnames (good, since I'll be passing in explicit certs to trust for each connection)
Doesn't seem to work with connecting via IP though, which will be the common use case
wouldn't be a problem if I could write my own cert validator that checks for what I expect
I'm trying to make a system where when peers gossip they always share remote_host + public key so when a client goes to connect to that peer they know what key the cert should already be signed with
but that requires making my own certificate validator
which is one of those things where I can almost do it, I can pass in a new TrustManagerFactory that can vend TrustManagers that do what I need
except, I can't. There is only one concrete implementation of TrustManagerFactory and I can't override the method I need. Actually, maybe it is just vending a protected list that I can modify...time to RTFC on that
oh silly me, I needed to make the trust manager factory with a custom TrustManagerFactorySpi, which I can define
you're sorta talking of rolling your own PKI trust store autoinclusion mechanism?
what if the first thing broadcast for a host is a malicious pubkey?
yeah, certificate authorities are bullshit
and unlike the web browsing case, there isn't really a trust relationship being built
a node doesn't trust another node for anything, it is just a way to ensure that a node is securely reaching the node it intends to in a difficult to monitor way
if someone wants to make a node that broadcasts a bunch of things to try go get people to send traffic through it in order to gather information, that is fine
I mean, I can't prevent that
If you want to mitm it, you'll have to get all up in the protocol and start broadcasting your own stuff for nodes and keys that you do control
i have no idea as to what you are doing, i'm just pointing out something on which i spotted a pattern i've seen before
@Fireduck I happen to be working on my own self signed CA with selective oscp stapling.
indeed a pain
The short version, is I am making a social content distribution system and I want to make it so for an ISP to figure out what their users were interested in would be very hard
TLS seems way more complex than it needs to be, but I don't understand enough of what it can do to make such wide statements
diffie-helman, xor in either blocks or streams with chosen parametres with known drawbacks
@Fireduck perhaps each "channel" can act as its own CA, and moderators and users can be enabled by signing their certs/crls
or did they actually reinvent the wheel for tls 1.3? have not followed up
@Clueless that is an interesting idea for a closed or limited access channel
but if I go that route, I'll have signed protobuf messages and not invovle x509 bullshit
only touching x509 and normal certs to get the secure communication between nodes setup
x509 would enable easier enterprise integration, but publickey stuff should be fine
enterprise integration implies there is some enterprise that actually knows wtf to do with x509 :wink:
I'm definitely thinking an organization might typically own one or multiple channels
sure
so perhaps an organization can stake itself on the blockchain, and then act as the CA for channels
indeed, most cert revocations i've seen have been signing key trust deprecations
is just kinda bouncing ideas off the wall without knowing what you're actually working on
Don't really need a CA. The basic peer to peer setup will be a node comes up with its own keypair, broadcasts its connect information (IPs, hostname, port, public key), and signs that
not entirely clear on what that gets me, I am just trying to reduce surface area for intermediate nodes to screw with things
nodes can of course select to not propogate data but they can't tamper without breaking signatures
Anyways, just trying to make it hard for people to figure out what a particular node is interested in for privacy reasons
it won't be impossible, but I'm trying to make it so to find out you'll have to connect to the node and ask it about every possible channel
which we can add throttling/DoS protections to