| 18 | | If we don't have a cached answer, we send an HTTP request to a |
| 19 | | perl script located on one of our geographic information servers, |
| 20 | | asking about one or more IP addresses. The requests are always |
| 21 | | sent to |
| | 18 | If we don't have a cached answer, we send an HTTP request to a perl |
| | 19 | script located on our geographic information server, asking about one |
| | 20 | or more IP addresses. |
| | 21 | |
| | 22 | As of Vidalia 0.1.0, if Vidalia is built against Qt 4.3 or later with |
| | 23 | OpenSSL support, the requests are done over an SSL connection and sent to |
| | 24 | |
| | 25 | https://geoip.vidalia-project.net:1443/cgi-bin/geoip |
| | 26 | |
| | 27 | The server has a CACert-issued certificate and CACert's root certificate |
| | 28 | is included in Vidalia's signed packages. Prior to Vidalia 0.1.0, or |
| | 29 | when Vidalia is built against a Qt without OpenSSL support, requests |
| | 30 | are unauthenticated and unencrypted. The requests are sent to |
| 132 | | Second, because no end-to-end encryption/authentication is used, the |
| 133 | | exit node can discover what is being requested -- and can modify the |
| 134 | | answers that are sent back. What are the partitioning opportunities |
| 135 | | in this scenario -- both passive partitioning to discover patterns |
| 136 | | of behavior based on which descriptors have just been fetched, and |
| 137 | | active partitioning to mislead the user into believing a given server |
| 138 | | is at a certain set of coordinates? |
| 139 | | |
| 142 | | 3.1. Encryption to/from the coordinate servers. |
| 143 | | |
| 144 | | It would be smart to encrypt the queries and responses, to at least |
| 145 | | limit the exposure. This could be done simply by running a Tor server |
| 146 | | nearby each geoip service, and asking for the address |
| 147 | | |
| 148 | | geoip.vidalia-project.net.foo.exit:80 |
| 149 | | |
| 150 | | Of course, this approach introduces more points of failure. A more |
| 151 | | complex scheme would be for Vidalia to check first whether the |
| 152 | | preferred exit server is running, and modify the address only when |
| 153 | | it is. |
| 154 | | |
| 155 | | 3.2. Tor servers could include geoip data in network statuses. |
| | 133 | 3.1. Tor servers could include geoip data in network statuses. |