version negotiation
Greg Troxel <[email protected]> Tue, 29 Jun 2021 19:38:39 -0400
| Newsgroups | gmane.network.unison.devel |
|---|---|
| Message-ID | <[email protected]> |
I just wrote to -users to ask if people really use socket mode, and if so how it is sound from a security viewpoint. I am guessing that the answer is that some do, that it is not sound, but some people have threat models that say their LAN is ok. A PR to add version negotiation is on the table: https://github.com/bcpierce00/unison/pull/507 I am trying to meet the dual goals of allowing automatic compat and not being complicated, with the following constraints: Eventually we should have a way for two unison instances to negotatiate and find a common version with no user/admin interaction. Right now there are some people running 2.48. I am ignoring this. RIght now there are a lot of people running various 2.51. If we can release a new 2.51.5 with the property that it works fine both ways with the existing 2.51.Y, Y <= 4, but can negotiate with itself (perhaps choosing the current protocol) and negotiate with some 2.52.0 which has the current protocol and a new one, all without config, that would be great. If the future 2.52 with the new protocol can also interop with 2.51.<=4, that's nice, but I'm not sure it's realistic With these properties, we can say to people update to 2.51.5, and don't worry it's safe. packaging systems can do it, even in LTS, because is is just a new optional feature along 2.51 once everything is 2.51.5, then you can update randomly to 2.52 and not have trouble My understanding is that right now, unison simply assumes that the remote side speaks the same protocol, and things deteriorate from there if it is not true (because of a 2.48/2.51 mismatch). #507, as I understand it, causes the server to start off with proto version negotation instead, and the server can be configured not to, so that old clients can connect. So, I am wondering if instead, we say: 2.51.5 will simply announce as 2.51.5 2.51.5, if it sees the remote as 2.51.5 or higher, instead of starting the old protocol, will send the first message of the "determine supported proto versions negotiation protocol". If it sees something earlier, it will just do the old protocol. this makes a version higher than a magic number being sent from the server be a clue to the client that it can do proto version negotiation instead of just speaking the old protocol. And maybe the client must do this if it is 2.51.5 or higher, and must not otherwise. This is a bit half baked, but I wanted to throw it out for discussion. _______________________________________________ Unison-hackers mailing list [email protected] https://LISTS.SEAS.UPENN.EDU/mailman/listinfo/unison-hackers
signature.asc
(application/pgp-signature, 194 B)
-----BEGIN PGP SIGNATURE----- iF0EARECAB0WIQS7wyAjWilQwVHG9Vsf2nroCY7WDgUCYNuu/wAKCRAf2nroCY7W DjAtAJ43Waa5CUbbIyS5FSIFOmP7Kd911QCdGx800kzfY0iCX8EYjGs4EUiFPAY= =axSH -----END PGP SIGNATURE-----