Hi everyone,
I've had some experiences with ssltcp ICE candidates and WebRTC Pseudo-SSL implementation and I'm quite disappointed.
Firewalls with full SSL handshake checks (like Watchguard for example) drop ICE connections detecting them as illegal.
For those who don't know, Pseudo SSL implementation consists in Chrome sending a SSL Client Hello message, server replying with a SSL Server Hello.
After this 2 packets exchange, instead of proceeding with SSL handshake (server should send CA certificate), Chrome starts to send STUN then DTLS over the same connection. Each packet has a 2 bytes header containing packet size.
This is a partial SSL handshake that might fool only some super cheap packet inspection firewalls.
For sure, this will never work in enterprise environments with good firewalls.
If UDP ports are closed, Hangouts won't work either as it relies on the same ssltcp ICE connection.
Is there a real reason (apart from SSL overhead) why ssltcp ICE candidates do not use a regular SSL connection instead of a Pseudo-SSL one?
Having DTLS inside SSL means encrypting two times and that might sound silly: is it sillier than breaking SSL protocol with an hack and getting blocked by professional firewalls?
I'd be glad to share opinions and experiences on this matter.
regards
Marcello Vezzelli
--
--- You received this message because you are subscribed to the Google Groups "discuss-webrtc" group.
To unsubscribe from this group and stop receiving emails from it, send an email to discuss-webrt...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/discuss-webrtc/5667061B.6020109%403cx.com.
For more options, visit https://groups.google.com/d/optout.
This is a partial SSL handshake that might fool only some super cheap packet inspection firewalls.
Which are common enough to make this worthwhile. Apart from Chrome's proprietary implementation Microsoft has TURN extensions which use the same pattern, see https://msdn.microsoft.com/en-us/library/office/cc431507(v=office.12).aspx if you're interested.
Is there a real reason (apart from SSL overhead) why ssltcp ICE candidates do not use a regular SSL connection instead of a Pseudo-SSL one?
Having DTLS inside SSL means encrypting two times and that might sound silly: is it sillier than breaking SSL protocol with an hack and getting blocked by professional firewalls?
You can use TURN/TLS if you want a full TLS handshake. It comes with double encryption though.
Regards,
Marcello Vezzelli
You can use TURN/TLS if you want a full TLS handshake. It comes with double encryption though.
2015-12-08 17:32 GMT+01:00 Marcello Vezzelli <m...@3cx.com>:
> For those who don't know, Pseudo SSL implementation consists in Chrome
> sending a SSL Client Hello message, server replying with a SSL Server Hello.
> After this 2 packets exchange, instead of proceeding with SSL handshake
> (server should send CA certificate), Chrome starts to send STUN then DTLS
> over the same connection. Each packet has a 2 bytes header containing packet
> size.
I'm a bit afraid. Is this related to ICE+DTLS+SRTP/SCTP over TCP
(which already works in Chrome)? or is this another completely
different stuff?
You said Chrome implements that ("ssltcp"), is that right? where is
that defined within the WebRTC spec?
2015-12-22 12:29 GMT+01:00 'Philipp Hancke' via discuss-webrtc
<discuss...@googlegroups.com>:
>> I'm a bit afraid. Is this related to ICE+DTLS+SRTP/SCTP over TCP
>> (which already works in Chrome)? or is this another completely
>> different stuff?
>
>
> Similar. Roughly "over TCP preceded by something that looks like a TLS
> handshake".
And... why??
And how/when does Chrome decide to send that ugly/propietary stuff
instead of the standard STUN/DTLS/STRP/SCTP-over-TCP?
Does it mean that, in case the remote peer provides TCP candidates,
Chrome will send this privative stuff?
--
Iñaki Baz Castillo
<i...@aliax.net>
--
---
You received this message because you are subscribed to the Google Groups "discuss-webrtc" group.
To unsubscribe from this group and stop receiving emails from it, send an email to discuss-webrt...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/discuss-webrtc/CALiegf%3DYBDr5mNkELg1zU3JRmiKa6rHK2mWN%2BzZwE6BgNwZRxg%40mail.gmail.com.
Similar. Roughly "over TCP preceded by something that looks like a TLS handshake".And... why??
And how/when does Chrome decide to send that ugly/propietary stuff instead of the standard STUN/DTLS/STRP/SCTP-over-TCP?
Does it mean that, in case the remote peer provides TCP candidates, Chrome will send this privative stuff?
Oh, so does it mean that Chrome can handle ICE candidates with
protocol "udp", "tcp" and "ssltcp"?
And does Chrome also generate
"ssltcp" candidates and place them in the SDP offer?
According to the WebRTC spec, it is clear that RTCIceProtocol just
allows "udp" and "tcp":
enum RTCIceProtocol {
"udp",
"tcp"
};
so, why Google??
I don't see normative language preventing other types in the spec. If there was, this would probably conflict with the definition of transport-extension in RFC 5245.
so, why Google??
Why does an additional candidate type that is accepted concern you?
It's been around at least since 2007 FWIW.
Together with 'udp', 'tcp' and 'ssltcp', I would really, really like to see also 'tlstcp' candidate with a real TLS connection! This would solve all the problems.