Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

Firstly, I'm sorry for my bad English. I'm still learning it. Here it goes:

When I host a single website per IP address, I can use "pure" SSL (without SNI), and the key exchange occurs before the user even tells me the hostname and path that he wants to retrieve. After the key exchange, all data can be securely exchanged. That said, if anybody happens to be sniffing the network, no confidential information is leaked* (see footnote).

On the other hand, if I host multiple websites per IP address, I will probably use SNI, and therefore my website visitor needs to tell me the target hostname before I can provide him with the right certificate. In this case, someone sniffing his network can track all the website domains he is accessing.

Are there any errors in my assumptions? If not, doesn't this represent a privacy concern, assuming the user is also using encrypted DNS?

Footnote: I also realize that a sniffer could do a reverse lookup on the IP address and find out which websites were visited, but the hostname travelling in plaintext through the network cables seems to make keyword based domain blocking easier for censorship authorities.

share|improve this question
    
What do you mean by "keyword based domain blocking"? How would you match a domain against a keyword? –  David Schwartz Oct 19 '12 at 20:00
    
Examples: websites from a specific region (*.com.br); from a organization (*.google.com); *porn*; etc. –  pagliuca Oct 19 '12 at 20:06
add comment

1 Answer

up vote 3 down vote accepted

Your analysis is incorrect. You are more secure with SNI than without.

Without SNI, the IP address uniquely identifies the host. Thus anyone who can determine the IP address can determine the host.

Without SNI, the IP address does not uniquely identify the host. Someone would have to actually intercept and view some of the traffic to determine the exact host. This is more difficulty than just obtaining the IP address.

So you are (slightly) more secure with SNI than without it.

Anyone who is going to block based on an intrusive analysis of packet data is going to also block based on IP address. They will block the "bad ones" based on IP address with or without SNI.

However, the answer to your question is "yes". SNI does represent a privacy concern. With SNI, someone who can intercept the traffic does get the host name in addition to the IP address.

share|improve this answer
    
Thanks for the answer. So SNI would be safer only in the cases the attacker starts sniffing only after the keys were already exchanged, am I correct? –  pagliuca Oct 19 '12 at 20:03
    
@pagliuca SSL really isn't designed to hide who you're talking to, it's designed to hide what you're saying to them. You're not going to defeat a web filter by avoiding sending SNI; they keep extensive IP-to-domain databases. Moot point anyway, as a client browser that supports SNI will always send SNI regardless of whether your server needs it. –  Shane Madden Oct 19 '12 at 22:57
    
@ShaneMadden Interesting. Knowing that, now I have no reason to not use SNI :), as it's likely that the majority of users already have browsers that expose the remote hostname in every HTTPS request. –  pagliuca Oct 20 '12 at 18:35
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.