In the light of POODLE we have an urgent requirement to turn off SSL2/3 and TLS 1.0 on our public-facing webservers. However we're a public sector body and around 5-10% of visits to our sites are made using machines running Windows XP and lower browsers and our users are not the most tech-savvy and will start flooding our helplines if they try to visit a site they use regularly only to find it is 'down'.
What we'd like to do is show a message to users of older browsers informing them that SSL2/3 is no more and advising them to upgrade OS/ browser in order to keep using your sites. However it would appear that to detect SSL2/3 we have to have SSL2/3 enabled on our servers ...
Is there some other secure way of detecting requests over SSL2/3 and reacting accordingly?
About the only thing I can think of is having a proxy in front of the site that still supports the old standards, and have that redirect the user to a different site if it detects SSL2 or 3 connections (or an unsupported browser string?)
Of course, to do this, you'll need a proxy that can talk the old protocols to older browsers securely without potentially compromising the connections from more secure endpoints. This isn't going to be easy; you'll need to keep the proxy itself patched and secure and part of being able to guarantee that is the case will be disabling insecure protocols such as SSL2 or 3, and of course a PCI audit against your site will go through this proxy and give unhelpful results, if this is an issue for you. Good luck with all of that.
On reflection since my earlier dash at answering this, you may just need to accept that its time to cut your losses. Aside from anything else, I can't help but imagine that anyone who hasn't upgraded from IE6 yet is either not going to, or is part of a corporate network and can't.
SSL handshaking occurs before any application-level communication, so if you want to prohibit 2/3 then browsers are going to get a very ugly message.
On the other hand, you can enable 2/3 and have your application detect the low version and return the user a specific error message. Unfortunately at this point they've already sent you whatever session cookies etc they have over the old SSL version, potentially exposing them. The only way to prevent the user from transmitting this data is to block the old SSL versions during the handshake and live with the ungraceful user experience.