Hello,

When you use authentication via eap-tls it is possible to send user-names in 
radius which didn't match the user-name in the client-certificate. In such a 
case the user gets authenticated with a wrong user-name. Accouting 
information will be saved with a wrong user-name. Someone can spoof the 
identity of someone else.

To avoid this certificates should be rejected. Here a diff to 
freeradius-snapshot-20040122.

--- src/modules/rlm_eap/types/rlm_eap_tls/cb.c 2004-01-23 08:25:33.000000000 
+0100
+++ src/modules/rlm_eap/types/rlm_eap_tls/cb.c 2004-01-23 08:34:06.000000000 
+0100
@@ -143,6 +143,23 @@
                break;
        }

+       /*
+        * Check user-name in client certificate.
+        * Should be the same as in radius packet.
+        */
+    if (depth == 0 ) {
+               /* This is a client certificate */
+           user_name, buf );
+               if( strcmp(user_name,buf) != 0 )
+               {
+                   radlog(L_ERR, "User-Name in Radius didn't match "
+                   "client-Certificate: Radius = %s , Certificate = %s",
+                                  user_name, buf);
+                   ok=0;
+               }
+       }
+
+
        if (debug_flag > 0) {
                radlog(L_INFO, "chain-depth=%d, ", depth);
                /*


regards
Gunter


- 
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html

Reply via email to