[sr-dev] Playing with TCP and TLS
Klaus Darilion
klaus.mailinglists at pernau.at
Mon Oct 29 10:52:59 CET 2012
On 26.10.2012 22:03, Olle E. Johansson wrote:
>
> 26 okt 2012 kl. 21:08 skrev Klaus Darilion
> <klaus.mailinglists at pernau.at>:
>
>> Am 26.10.2012 14:08, schrieb Olle E. Johansson:
>>> 25 okt 2012 kl. 19:05 skrev Klaus Darilion
>>> <klaus.mailinglists at pernau.at>:
>>>
>>>> Kamailio uses the next hop target (probably the URI in the Path
>>>> header) and searches for open TCP connections to this target. I
>>>> guess the Path header contains the private IP address of the
>>>> outbound proxy, thus it does not match the open TCP connection.
>>>> If there is not outboundproxy, the solution is simple: as
>>>> always use fix_nated_register() on REGISTER. Then, after
>>>> lookup() the proxy will search for a TCP connection to the
>>>> "received" IP:port and find and uses the existing connection.
>>> Thinking about TLS - how do we match there?
>>
>> AFAIK there is no difference to TLS. If there is a TLS connection
>> whose remote address matches the next hop, it will be used.
>
> That's bad. We need to check the domains in the certificate before
> re-using it. If they showed NO client cert, we should open a new
> one. If they showed a client, we should verify.
Not necessarily. Usually SIP clients are behind NAT (not servers) and
thus we need NAT traversal for these clients and these clients usually
do not have a client certificate.
For servers, we usually want to have separate TLS connections for each
direction. In your "untypical" scenario the NAT traversal should be
fixed on the client side and then you could use 2 separate TLS connections.
> Will the on-send route give me the possibility or is it triggered
> before kamailio selects a tcp connection? I'm a bit unclear of the
> exact situation where the on-send route is called.
[on-send] is just before the message is sent. AFAIK it is executed
before the message is handled over to the transport layer - thus I think
TLS paramters of the new connection are not available.
Generally, domain verification against the certificate name is broken.
For example if you have to reopen a TLS connection for an in-dialog
request, there is no proper URI (RURI, next hop Route URI) to compare
against the certificate.
regards
Klaus
>
> /O
>
More information about the sr-dev
mailing list