Home QNet Quack-Man idea from http://www.revolvedigital.co.uk/

Home
News
Channel search
Web chat
About us
History
Columns
Forum
Servers
Services
Staff listing
Contact us
Link us!
Credits
Development
Team


General FAQ
IRC FAQ
Trusts FAQ
Rules FAQ
Security FAQ
S FAQ
#feds FAQ
Q FAQ
  Trust is not transitive: or why IRC over SSL is pointless.  by slug
Monday 04. May 2009 at 20:00 BST

Several people have asked why we haven't added SSL support to snircd, there's two reasons:

  • we haven't got around to it.
  • we don't think it adds any real security to IRC.
The first should be believable! Here's our reasoning behind the second:

First some assumptions:
  • The IRC network has only one server, and it's not compromised, and doesn't log anything.
  • The server has an SSL certificate, with a fingerprint posted somewhere out of band to enable people to verify it is correct.
  • Each server only supports IRC over SSL, i.e. there's no support for unencrypted connections.
  • Each client has a uncompromised machine with logging turned off.
Say I create a new channel: #secret, and I invite two of my friends (Bob and Carol).
Now since I'm a paranoid computer scientist with a background in security, I verified that the certificate the ircd presented at connect was valid by checking its fingerprint, as did Bob.
Our connections to the ircd look like this:
ircd <---SSL---(securenet.org:real)---> Me
ircd <---SSL---(securenet.org:real)---> Bob
Since we verified the fingerprint of the ircd's certificate we are certain there's no man in the middle.
My second friend, Carol didn't bother verifying the certificate, she just clicked 'accept' in the dialog blindly (as most users do with SSL warnings, c.f. "Crying Wolf: An Empirical Study of SSL Warning Effectiveness", "Why Phishing Works").
Unbeknown to Carol, she's being attacked by Eve, Carol's connection looks like this:
ircd <---SSL---(securenet.org:real)---> Eve <---SSL---(securenet.org:fake)---> Carol
Eve presented her own certificate to Carol rather than that of the ircd, and can decrypt Carol's data, process it, then re-encrypt it and send it off to the ircd.
The ircd has no way of knowing that it is not talking to Carol, Carol is responsible for verifying the ircd's fingerprint, and she couldn't be bothered.

Clearly if Carol joins #secret, Eve can also see everything that's going on too, and the other users of the channel have no way of knowing their chat has been compromised.

Now why doesn't SSH and HTTPS suffer from the same problems?
Well they do, but the incentives are different.

If your connection to your SSH server gets MITM'ed, you are the only one to lose out as your server/shell gets rooted.
If your connection to your bank gets MITM'ed, you are the only one to lose out as the phisherman steal all your money.

If your connection to an IRC server gets MITM'ed, you likely not to even care, but other people in the channel probably do as they're talking about naughty things.

A lot of people will say that hey, that's not a problem, it's better than plaintext.
We don't agree, and feel that the false sense of security SSL provides is worse than no SSL at all.

If you'd like encryption the way we suggest to implement it is on top of IRC, several scripts say they provide this functionality.

As to how easy this sort of attack is, you can download software that'll do it for you for HTTPS sites, this uses various techniques such as ARP spoofing.
I'm sure there's something kicking around on efnet that'll do it for IRC with two clicks of a mouse.

Another obvious example of SSL IRC being broken is mibbit, which allows you to connect to an SSL'ed IRC server over HTTP. The ircd doesn't know it's really going over unencrypted HTTP, so it'll even let you into SSL only channels!


Colour: Operators  | Helpers  | Users
#1 
 2009-05-14 10:53 | MunkeN [IP logged] 
This actually explains alot, and your example shows that it's pretty much unnecessary. Great column, slug. Keep it up!
#2 
 2009-05-17 21:59 | Dreamcast [IP logged] 
I disagree. Even if it falls short at several places it protect the 'aware' users against people sniffing the network when you're AUTH'ing (or handling chanlev or whatever it is that you do which doesn't have a *cookie command.) And it protects 'aware' users against MITM attacks pretty efficiently!
#3 
 2009-05-17 22:19 | slug [IP logged] 
I don't dispute your second sentence, but the third obviously isn't true when you're in a channel with >=2 people as I have explained in detail above.
#4 
 2009-05-21 05:56 | Dinesh [IP logged] 
Well I agree that SSL is useless, mostly because we should not trust the IRC server operators :) An client encryption is better, and not visible to IRCops & co About AUTH security, this is indeed an issue. SSL would prevent this if the fingerprint is checked, but CHALLENGEAUTH solves it even better, also in the case where the fingerprint is not checked. So SSL is useless. See http://www.quakenet.org/development/challengeauth/ for details.
#5 
 2009-06-20 23:47 | Dreamcast [IP logged] 
I'm thinking more of protecting the session than the data being transmitted.
#6 
 2010-06-23 16:03 | Heth [IP logged] 
Very good article on IRC SSL security. While it states most of the issues, I have to disagree that it doesn't provide a security layer to the educated personality, for example where You and Bob are talking privately over SSL. As every other encryption mechanism, you will have to trust the other party to be sure the conversation is really secure, and when you do, you're able to use the SSL feature with it's purpose.


  You must log in (be authed) to add comments.
Currently online
174069
User peak
243389
(Tuesday 08. February 2005)
Login

gameservers
cs4u
Euroserv Website
m group website
Port80 website
Multiplay website
Underworld.no website
 
Copyright © 1997-2009 by QuakeNet IRC Network - All rights reserved.
Quakenet Q-man logo Copyright © 2003-2004 Revolve Digital Solutions Ltd. - All rights reserved.