Loading doc/tor-spec.txt +13 −4 Original line number Diff line number Diff line Loading @@ -138,8 +138,8 @@ when do we rotate which keys (tls, link, etc)? additional fields to existing structures; implementations are constrained to ignore fields they do not expect. Parties negotiate OR connection versions as described below in section Parties negotiate OR connection versions as described below in sections 4.1 and 4.2. 2. Connections Loading Loading @@ -305,13 +305,22 @@ when do we rotate which keys (tls, link, etc)? 0 when the other side is recognized as a router running version 0.1.2.??-alpha or earlier. If a server finds that it wants to send a cell (for example because a [If a server finds that it wants to send a cell (for example because a circuit wants to extend to that client, and the TLS connection is already established) yet no cell has arrived yet, we can't distinguish between a version 0 client and a slow network. We can't assume that the other side approves of version 0, so we can't just start using version 0. Perhaps the right answer is to then launch a new TLS connection because you don't have a usable one after all? new TLS connection because you don't have a usable one after all? -RD] [That would seem to be thrashy. Let's see if we can do better. Remember, normal v0 clients always send something after connecting, so if we have had a connection for a while and gotten nothing over it, we could get away with assuming it's bad. Alternatively, we could identify V0 clients by the OU=Tor field in the certificates: we don't check for it, and we never documented it. We might break other people's clients by sending them hello cells, but only if those clients are nonconformant. Am I right? In any case, this seems way more reliable. -NM] 5. Circuit management Loading Loading
doc/tor-spec.txt +13 −4 Original line number Diff line number Diff line Loading @@ -138,8 +138,8 @@ when do we rotate which keys (tls, link, etc)? additional fields to existing structures; implementations are constrained to ignore fields they do not expect. Parties negotiate OR connection versions as described below in section Parties negotiate OR connection versions as described below in sections 4.1 and 4.2. 2. Connections Loading Loading @@ -305,13 +305,22 @@ when do we rotate which keys (tls, link, etc)? 0 when the other side is recognized as a router running version 0.1.2.??-alpha or earlier. If a server finds that it wants to send a cell (for example because a [If a server finds that it wants to send a cell (for example because a circuit wants to extend to that client, and the TLS connection is already established) yet no cell has arrived yet, we can't distinguish between a version 0 client and a slow network. We can't assume that the other side approves of version 0, so we can't just start using version 0. Perhaps the right answer is to then launch a new TLS connection because you don't have a usable one after all? new TLS connection because you don't have a usable one after all? -RD] [That would seem to be thrashy. Let's see if we can do better. Remember, normal v0 clients always send something after connecting, so if we have had a connection for a while and gotten nothing over it, we could get away with assuming it's bad. Alternatively, we could identify V0 clients by the OU=Tor field in the certificates: we don't check for it, and we never documented it. We might break other people's clients by sending them hello cells, but only if those clients are nonconformant. Am I right? In any case, this seems way more reliable. -NM] 5. Circuit management Loading