-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Extended origins for non-unique names #1
Comments
@martinthomson Many thanks for your proposal.
It's interesting. I've never thought about such kind of solution before.
In the main proposal, do you assume that devices that have *.local (or *.home.arpa) domain names use self-signed certificates (or RPKs)?
Is the idea available only for development? |
Yes. There is no name for a CA to attest to, so that's the only real alternative. You could maybe use bare public keys, I guess.
If the name is not unique, then the notion of MitM is meaningless. Anyone can rightfully claim that name.
The shortcomings of that approach are fairly severe, as the document explains. This is effectively giving write access to the browser trust store, so extending to things on the local network is basically no-go. Even with the constraints we have, it might make sense to include more safeguards like explicit authorization for requests. |
@martinthomson your proposal of "extended origin for local domain" is interesting. The proposal seems to work well in the case that there is no rogue device in the home network. But there is a concern of the "secure-origin". One of the issues is how a user can trust a non-owned device in public local network such as office and hotel. I am a proponent of using a genuine Web PKI certificate for local server as my idea. Does it make sense that FireFox shows "green padlock" as like below if a device has a genuine Web PKI certificate? |
These names cannot have unique names, so it should be impossible get a valid Web PKI certificate for that name. |
I may misunderstand the proposal. I thought that it is possible for a device to use any unique global DNS name for its server cert. because a browser can verify that the "extended origin for local domain" matches with the server cert. by checking the hash of SPKI(server public key information). Am I wrong ? |
Either a name is globally unique or not. We already have a solution for those that are globally unique: Web PKI. This proposal only addresses those that are not unique, specifically because you cannot get a Web PKI certificate for a non-unique name. |
I highly appreciate these suggestions. I agree that we cannot rely on Web PKI in the case of local network devices, as long as the device name is not globally unique.
Or, could we indicate such a hash in HTTP request headers? I wonder whether the hash should be included in the device's URL or not. |
The point here was to ensure that these devices were hard to target with APIs like I hadn't really considered the effect on CORS requests originating from the device. For that, I think that including the extended origin in the Origin header field would be enough as well. That reveals the name of the device to the server, allowing it to communicate with it (using |
To follow subresource-integrity (SRI) convention, the hash should have the algorithm used in prefix like For example, this could be the described process :
Asking for the device to remember its certificate across reset is, IMHO, a minimum requirement. |
DNS-SD and .local work based on rules that prevent name collisions on the same network. I suppose that you could have name collisions where a device is connected to multiple networks, which is akin to the problem we see with split-horizon DNS and DoH. That is, example.com might be available and local at one address within an enterprise network, but also available on the wider internet. I don't think that it is a case that is common enough to warrant doing anything about specifically, where there are name collisions, there are problems. |
I was thinking about computer with multiple (live) connection (like in a company where you're connected via Wifi to a very limited guest network with internet access, and via the LAN to the company's intranet). Then each connection might have their own I agree that it might be much simpler to ignore this (take the 3.b route) and let the user sort this out (by disconnecting the other connection for example) when she needs to connect to the printer. After the connection is done, the browser will remember it next time even if both LAN are connected, so that's ok. |
Something to consider.
https://docs.google.com/document/d/170rFC91jqvpFrKIqG4K8Vox8AL4LeQXzfikBQXYPmzU/edit?usp=sharing
It requires a change to browser policy about names, and has some interactions with UX.
The text was updated successfully, but these errors were encountered: