[RADIATOR] SSL3_GET_RECORD:wrong version number

Heikki Vatiainen hvn at open.com.au
Thu Apr 28 10:14:16 UTC 2022


On 19.4.2022 21.47, Ullfig, Roberto Alfredo wrote:
> Hello, we've been getting these errors for months, maybe longer:
> 
> SSL3_GET_RECORD:wrong version number
> 
> a few hundred a day out of 500K logins. They happen on a development 
> Radius server as well by a login from a monitoring account.
> 
> That account logged in 490 times today and the login failed once:
> 
> AuthFILE PEAP TLS Handshake error: result: -1, reason/error: 
> 'SSL_ERROR_SSL', state: 'error', error:1408F10B:SSL 
> routines:SSL3_GET_RECORD:wrong version number

This happens very early when OpenSSL library parses incoming TLS. Before 
this error can happen with TLS-based EAP methods, the user has started 
EAP authentication successfully, but during the EAP authentication a 
message is received that can't be parsed.

Possible reasons include: client attempting use a TLS version server 
does not support, corrupted messages, bad client implementation where 
client says that it uses PEAP but does not send TLS when it should.

TLS messages, or more exactly a sequence of TLS records, start with 
version number. The above error message could mean that a record in the 
incoming TLS message is completely corrupted so that even the version 
number completely off.

With OpenSSL, at least some vesrions, a possibility is that client 
attempts to use TLS version that is higher than server supports. For 
example, server supports TLSv1.0 and client uses TLSv1.2. If this is 
reversed, server support TLSv1.2 and client supports TLSv1.0 the the 
message seems to be 'unknown protocol'.

If version is slightly off, for example TLSv1.2 is attempted with an old 
server that knows only TLSv1.0, then this gets logged as 'unknown 
protocol' too.

The above are likely to depend on the OpenSSL version, but I'd say the 
main thing is that 'wrong version number' can mean corrupted messages in 
addition to server and client not supporting the same TLS versions.

> On the development server, the login is always from the same Raspberry 
> Pi. It does go through an F5 load balancer but there's just one member 
> Radius server/port involved.
> 
> Any idea why 1 out of 490 logins fail from an automated monitor?

I'd say the reasons are similar than with PEAP. With TLS over TCP in 
Radiator, OpenSSL is used similarly than with TLS-based EAPs.

You can trigger similar error with telnet by connecting to TLS-protected 
monitor port and then typing 'asdf' and hitting enter.  OpenSSL tries to 
detect plain HTTP attempts and logs those as 'http request' errors.

If possible, see if wireshark can tell more about what happens with the 
Pi and Radiator.


To summarise: the problem with Raspberry Pi is more unexpected than PEAP 
errors. From what I have seen there are typically some number of errors 
seen with busy TLS-based EAP servers.

Thanks,
Heikki

-- 
Heikki Vatiainen
OSC, makers of Radiator
Visit radiatorsoftware.com for Radiator AAA server software


More information about the radiator mailing list