ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/gvpe/doc/gvpe.protocol.7.pod
(Generate patch)

Comparing gvpe/doc/gvpe.protocol.7.pod (file contents):
Revision 1.7 by pcg, Mon Sep 1 05:31:28 2008 UTC vs.
Revision 1.9 by root, Wed Jul 10 01:51:40 2013 UTC

89traffic even if it doesn't need to transport packets. 89traffic even if it doesn't need to transport packets.
90 90
91In addition, the same problems as the TCP transport also plague this 91In addition, the same problems as the TCP transport also plague this
92protocol. 92protocol.
93 93
94It's only use is to tunnel through firewalls that do not allow direct 94Its only use is to tunnel through firewalls that do not allow direct
95internet access. Similar to using a HTTP proxy (as the TCP transport 95internet access. Similar to using a HTTP proxy (as the TCP transport
96does), it uses a local DNS server/forwarder (given by the C<dns-forw-host> 96does), it uses a local DNS server/forwarder (given by the C<dns-forw-host>
97configuration value) as a proxy to send and receive data as a client, 97configuration value) as a proxy to send and receive data as a client,
98and an C<NS> record pointing to the GVPE server (as given by the 98and an C<NS> record pointing to the GVPE server (as given by the
99C<dns-hostname> directive). 99C<dns-hostname> directive).
152 152
153Before nodes can exchange packets, they need to establish authenticity of 153Before nodes can exchange packets, they need to establish authenticity of
154the other side and a key. Every node has a private RSA key and the public 154the other side and a key. Every node has a private RSA key and the public
155RSA keys of all other nodes. 155RSA keys of all other nodes.
156 156
157A host establishes a simplex connection by sending the other node an 157A host establishes a simplex connection by sending the other node an RSA
158RSA encrypted challenge containing a random challenge (consisting of 158encrypted challenge containing a random challenge (consisting of the
159the encryption key to use when sending packets, more random data and 159encryption and authentication keys to use when sending packets, more
160PKCS1_OAEP padding) and a random 16 byte "challenge-id" (used to detect 160random data and PKCS1_OAEP padding) and a random 16 byte "challenge-id"
161duplicate auth packets). The destination node will respond by replying 161(used to detect duplicate auth packets). The destination node will respond
162with an (unencrypted) RIPEMD160 hash of the decrypted challenge, which 162by replying with an (unencrypted) hash of the decrypted challenge, which
163will authenticate that node. The destination node will also set the 163will authenticate that node. The destination node will also set the
164outgoing encryption parameters as given in the packet. 164outgoing encryption parameters as given in the packet.
165 165
166When the source node receives a correct auth reply (by verifying the 166When the source node receives a correct auth reply (by verifying the
167hash and the id, which will expire after 120 seconds), it will start to 167hash and the id, which will expire after 120 seconds), it will start to
203will try to connect every few seconds. 203will try to connect every few seconds.
204 204
205=head2 Routing and Protocol translation 205=head2 Routing and Protocol translation
206 206
207The GVPE routing algorithm is easy: there isn't much routing to speak 207The GVPE routing algorithm is easy: there isn't much routing to speak
208of: When routing packets to another node, GVPE trues the following 208of: When routing packets to another node, GVPE tries the following
209options, in order: 209options, in order:
210 210
211=over 4 211=over 4
212 212
213=item If the two nodes should be able to reach each other directly (common 213=item If the two nodes should be able to reach each other directly (common

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines