FR3 and EAP-TLS session cache

Jüri Palis jyri.palis at gmail.com
Thu Jun 18 14:49:10 CEST 2015


Hi,


This my eap configuration. In-memory cache is enabled, persistent cache is not as there is no path defined (persist_dir) for saving session data. 

Thu Jun 18 07:30:20 2015 : Debug:    # Linked to sub-module rlm_eap_tls
Thu Jun 18 07:30:20 2015 : Debug:    tls {
Thu Jun 18 07:30:20 2015 : Debug:       tls = "tls-common"
Thu Jun 18 07:30:20 2015 : Debug:       virtual_server = "check-eap-tls"
Thu Jun 18 07:30:20 2015 : Debug:    }
Thu Jun 18 07:30:20 2015 : Debug:    tls-config tls-common {
Thu Jun 18 07:30:20 2015 : Debug:       rsa_key_exchange = no
Thu Jun 18 07:30:20 2015 : Debug:       dh_key_exchange = yes
Thu Jun 18 07:30:20 2015 : Debug:       rsa_key_length = 512
Thu Jun 18 07:30:20 2015 : Debug:       dh_key_length = 512
Thu Jun 18 07:30:20 2015 : Debug:       verify_depth = 0
Thu Jun 18 07:30:20 2015 : Debug:       pem_file_type = yes
Thu Jun 18 07:30:20 2015 : Debug:       private_key_file = "/etc/raddb/certs/radius.key"
Thu Jun 18 07:30:20 2015 : Debug:       certificate_file = "/etc/raddb/certs/radius.crt"
Thu Jun 18 07:30:20 2015 : Debug:       ca_file = "/etc/raddb/certs/root_ca.crt"
Thu Jun 18 07:30:20 2015 : Debug:       private_key_password = “xxxxxx"
Thu Jun 18 07:30:20 2015 : Debug:       dh_file = "/etc/raddb/certs/dh"
Thu Jun 18 07:30:20 2015 : Debug:       fragment_size = 1024
Thu Jun 18 07:30:20 2015 : Debug:       include_length = yes
Thu Jun 18 07:30:20 2015 : Debug:       check_crl = no
Thu Jun 18 07:30:20 2015 : Debug:       cipher_list = "ALL:!MEDIUM:!LOW"
Thu Jun 18 07:30:20 2015 : Debug:       check_cert_issuer = “/DC=com/DC=example/CN=RootCA”
Thu Jun 18 07:30:20 2015 : Debug:       ecdh_curve = "prime256v1"
Thu Jun 18 07:30:20 2015 : Debug:     cache {
Thu Jun 18 07:30:20 2015 : Debug:       enable = yes
Thu Jun 18 07:30:20 2015 : Debug:       lifetime = 24
Thu Jun 18 07:30:20 2015 : Debug:       max_entries = 255
Thu Jun 18 07:30:20 2015 : Debug:     }
Thu Jun 18 07:30:20 2015 : Debug:     verify {
Thu Jun 18 07:30:20 2015 : Debug:     }
Thu Jun 18 07:30:20 2015 : Debug:     ocsp {
Thu Jun 18 07:30:20 2015 : Debug:       enable = no
Thu Jun 18 07:30:20 2015 : Debug:       override_cert_url = yes
Thu Jun 18 07:30:20 2015 : Debug:       url = "http://127.0.0.1/ocsp/"
Thu Jun 18 07:30:20 2015 : Debug:       use_nonce = yes
Thu Jun 18 07:30:20 2015 : Debug:       timeout = 0
Thu Jun 18 07:30:20 2015 : Debug:       softfail = no
Thu Jun 18 07:30:20 2015 : Debug:     }
Thu Jun 18 07:30:20 2015 : Debug:    }

It’s done more or less the way comments in original eap configuration file instruct. 

>> But I had an impression that in-memory and persistent cache behave exactly the same way except persistent cache can survive daemon restarts. So what you are saying is that EAP-TLS session resumption works only when persistent disk caching is enabled?
> 
>  No.  My tests show that if you enable the "cache" sub-section of the EAP module, it does in-memory session caching.
> 
>  You MUST set attributes to cache.  See raddb/mods-available/eap, and the “cache" sub-section.

What does this mean? Do I have to explicitly define a list of attributes including TLS-* which must be stored in cache?

> 
>  The TLS-* attributes are available ONLY when a client certificate is used, as with EAP-TLS.

This is exactly the case here, clients authenticate with certificates, that’s the whole point of EAP-TLS

> 
>  It works in all of my tests.
> 

Did you test Win7 supplicant with EAP-TLS? Did you test configuration with ‘check-eap-tls’?

Regards,
Jyri.



More information about the Freeradius-Users mailing list