Hi Mikael,

thanks for your feedback.


Being a crypto novice, let me write some text and please tell me if it makes sense in the context of your draft (thanks for writing it, it looks like a good summary).
I do not consider myself to be a crypto expert either which is one of the reasons I'd try to offload the actual crypto to something well-known. Also this probably means that what I drafted might not be 100% accurate but I hope some of the actual expert will review it.



I like SSH. SSH generates its own public/private key, there are fingerprints I can put in SSHFP DNSSEC secured posts, etc. Are the public/private keys considered to be similar to self-signed "certificates"?
I'll answer this in the context of the consensus based trust-scheme I added in addition to the PSK and PKI-based trust scheme. Yes, using self-signed certs here is possible since it's simply X.509.



Anyhow, let me propose a scenario:

I get my first homenet router and power it up. It comes with a QR code on it, and it has a button (or NFC, similar principle). I scan the QR code on my smartphone (with a special homenet-control-app) which gives it enough information to connect to the wifi of the router, then I am asked to press a button on the router to allow my phone to become the administration device. The QR code contains wifi information and key fingerprint ID so my phone can decide that it's speaking to the correct device.
Right that would be possible and the QR-code would be an additional "trust bootstrap ceremony" in that context. I actually had a phone / homenet-app scenario in mind when drafting this. So I was thinking about two possible cases.

Case #1: The app is bound to the router itself via some kind of vendor-specific RPC so it can control its configuration directly. That RPC allows the app to read / receive fingerprints and names when a new device attempts to join the homenet and allows the user to give a verdict (trusted / untrusted) which is then announced by the router itself and not the phone.

Case #1 is pretty obvious because it isn't really problematic and not bound to the phone itself and you could probably do the using some kind of webinterface on such a router.

Case #2: The app itself speaks HNCP, i.e. the base state synchronization part (not the routing, addressing, SD whatever). It is standalone (i.e. doesn't depend on a specific router, just has to peered with any HNCP router once so it is trusted) from then on it can itself announce trust verdicts about other routers.


Now, after this, my phone app can speak to the router, and when I hook up another device to that router, it detects the new device, fingerprint ID etc, and asks me before it's allowed. After I ACK that it's allowed to talk to my homenet (which previously only consisted of a single router), they exchange session keys (or something) for management, so they can continue to talk.
In Case #1 above it could tell the router to announce a trust verdict (trusted / untrusted) or in Case #2 it would do so by itself.

The session key exchange would then be done by the underlying protocol i.e. DTLS, IPsec/IKE, ... The only real addition here should be that this underlying protocol (or its implementation) needs to allow a custom verification hook (i.e. notifies the HNCP daemon that there is a an unknown certificate and allows it to be accepted or not). For DTLS e.g. this shouldn't be problematic since most libraries seem to support such a callback.


Just like with SSH allowing key based login, the management of homenet devices would rely on the public key for each accepted device being known to all the other devices, and this is how things authenticate. This would be the "anchor" that everything else relies on when it comes to security.
Yes, each device would announce the fingerprints of the certificates or public keys (details TBD) that it trusts in its HNCP-state.


Now, the problem is what to do when I lose my phone and don't have any backup, so perhaps I need a user/password based login to add new administration devices, it seems hard to work around.
Each device may announce verdicts about public keys / certificates and verdicts of device which are absent are cached by other HNCP routers so your case and Case #2 above would work without the app/phone always being there.


If someone gets the private key of any of the accepted homenet devices, of course everything falls down, but I don't see any way around it apart from having TPM etc.
Yeah that's also the downside here. It's even more apparent if anyone can say someone else is trusted or not. But I guess ultimately its the same issue and once you are actually a trusted homenet router you can do more nasty things like messing with routing etc. than actually attacking the trust system itself, especially since most of the algorithms / applications run over HNCP are distributed / consensus based anyway.


Cheers,

Steven

_______________________________________________
homenet mailing list
homenet@ietf.org
https://www.ietf.org/mailman/listinfo/homenet

Reply via email to