Some websites have clearnet https and .onion versions, but not both. What are the pros and cons of using each option (assuming they are both accessed over Tor it is important that the data not be read by a third party)?
1 Answer
TL;DR — With TLS you have the option to trust a third party (this is not necessarily a good thing) and/or trust the certificate itself, with Tor you must trust the certificate itself with no third party verification (this is not necessarily a bad thing).
Ignoring cryptographic differences for now (let's assume both are secure for the purposes of this question and that you're not using weak cipher suites) the main difference as I see it is one of trust.
When you visit a website that is secured with TLS, you are trusting the authority who issued that certificate to have verified the identity of your traffic's destination (third party verification). To a limited extent this means that any certificate authority can vouch for the identity of a given service at any time and you can still trust the fact that you're communicating with the service you thought you were. However, this greatly increases the attack surface (you might trust hundreds of CAs, giving an attacker that many chances to compromise one and generate trusted certificates). In practice, it is a good idea to trust both the certificate authority AND the certificate itself (eg. I know that last time I connected to this site it had this specific certificate, today it has a different one issued by a CA which I trust, but I don't trust it because the certificate has changed). One common way to do this is certificate pinning.
With Tor there is no third party verification, so you are only relying on the equivalent of the certificate to verify that you're connected to the correct service (eg. I trust that xyz
is the correct checksum for the service I want to reach, therefore I trust that xyz.onion
is the service I want to reach).
In both cases it requires that you do your research if you want to verify the identity of the end service, however in the case of HTTPS you also have third party verification in the certificate authority system (I'm not necessarily saying that it's a good second level of verification, but it's a second level all the same).