freeradius / eap-tls / Android 13
-
@johnpoz said in freeradius / eap-tls / Android 13:
@furom On my android tablet I had to install the ca cert on its own.
Thanks, I believe I did try that first of all, but will have another go... Same certificate config as before I suppose?
-
@furom Yeah pretty sure went over the config of my tablet in that other thread. I am using wpa3 enterprise.
-
@johnpoz said in freeradius / eap-tls / Android 13:
@furom Yeah pretty sure went over the config of my tablet in that other thread. I am using wpa3 enterprise.
Config is the part that is entirely clear now thanks to you. Now its most likely differences in Android versions creating some woes. Some seems to have issues already on Android 11, but most >11
-
@furom Yep. It just won't do it with the same cert-config and installing CA and CERT separately
Auth: (63) Login incorrect (Failed retrieving values required to evaluate condition)
I installed both certs as 'wifi" certs too
-
@furom did you remember to create your freerad user?
-
@johnpoz said in freeradius / eap-tls / Android 13:
@furom did you remember to create your freerad user?
I did, and everything else is the same as from before (and no pwd), and just verified I indeed used the new user to successfully connect the old tablet to the new SSID (on WPA2-Enterprise)...
Edit: If anyone gets what the issue might be it would be highly appreciated. I've been googling the "whole" internet almost, and nowhere is a working setup of WPA[2|3]-Enterprise using EAP-TLS for Android 13 to be found. Can this really be?
-
@furom hmmm I was just able to duplicate your issue
(15) Login incorrect (Failed retrieving values required to evaluate condition): [tablet.home.arpa/<via Auth-Type = eap>] (from client uap-pro port 0 cli 04-34-F6-AA-02-D9) 192.168.2.2 Auth-Type: eap
If I set require online certificate status - this is checking for ocsp, ie has your cert cert been revoked - did you set that up... I never do - these are stuff that only will be used local, and issued and maintained by me.. If for some reason I heed to change then - I will know about it that is for sure ;)
I don't think you can set that up in pfsense cert manager, you can create your own internal revoke list that pfsense would use, etc. But you can not be added, atleast not directly in the gui I don't think..
Example if you look at some external CA, say ones for acme lets encrypt that is most likely in your CAs in cert manager if your using acme.. Shows.
[1]CRL Distribution Point Distribution Point Name: Full Name: URL=http://x1.c.lencr.org/
But when used to access wireless - how would the device even check this for the server until its already been connected, etc. You should just set that to not to check.
-
@johnpoz said in freeradius / eap-tls / Android 13:
@furom hmmm I was just able to duplicate your issue
(15) Login incorrect (Failed retrieving values required to evaluate condition): [tablet.home.arpa/<via Auth-Type = eap>] (from client uap-pro port 0 cli 04-34-F6-AA-02-D9) 192.168.2.2 Auth-Type: eap
If I set require online certificate status - this is checking for ocsp, ie has your cert cert been revoked - did you set that up... I never do - these are stuff that only will be used local, and issued and maintained by me.. If for some reason I heed to change then - I will know about it that is for sure ;)
No, for the same reasons I never do either...
I don't think you can set that up in pfsense cert manager, you can create your own internal revoke list that pfsense would use, etc. But you can not be added, atleast not directly in the gui I don't think..
Example if you look at some external CA, say ones for acme lets encrypt that is most likely in your CAs in cert manager if your using acme.. Shows.
[1]CRL Distribution Point Distribution Point Name: Full Name: URL=http://x1.c.lencr.org/
But when used to access wireless - how would the device even check this for the server until its already been connected, etc. You should just set that to not to check.
Well, sure, the error is identical, but were you not able to connect, if this revocation list is deselected? I can't, no matter what I try it seems. Android 13 was not a lucky number for this configuration at least... :)
-
@furom if I set that to required no it doesn't connect, if I set it to not connect I get in. I also did some other testing like not providing my cert, and typo on the identity and then fail to connect.
It says wpa/wpa2-enterprise - but my unifi is set for wpa3-enterprise only.. So clearly its using wpa3-enterprise. I not sure how I can get such details, not like my iphone where it says wpa3-enterprise when I install the developers profile for diagnostics..
-
@johnpoz said in freeradius / eap-tls / Android 13:
@furom if I set that to required no it doesn't connect, if I set it to not connect I get in. I also did some other testing like not providing my cert, and typo on the identity and then fail to connect.
It says wpa/wpa2-enterprise - but my unifi is set for wpa3-enterprise only.. So clearly its using wpa3-enterprise. I not sure how I can get such details, not like my iphone where it says wpa3-enterprise when I install the developers profile for diagnostics..
Yeah, this is identical to what I do, or try to... Only thing that differs is the Android version, right? I suppose it's not easy to downgrade a tablet... I believe I bought a paper-weight. Of all things to expect, this was not exactly it... but my fault not checking in advance the only thing I cared about actually worked... lol But there's always a next time...
-
@furom how exactly do you have your unifi setup for wpa3-enterprise? You didn't click on the 192 did you, our APs do not support that.
Your saying it works with wpa2-enteprise? What about wpa3-personal?
you updated your firmware on your AP right? What controller version are you running?
-
@johnpoz said in freeradius / eap-tls / Android 13:
@furom how exactly do you have your unifi setup for wpa3-enterprise?
It is identical to what you have posted, I wanted to make sure no mistakes due to non-working options
You didn't click on the 192 did you, our APs do not support that.
I did at first, but as that didn't work, didn't include that in what I was trying with later on
Your saying it works with wpa2-enteprise?
No, the new tablet does not work with any WPAx-Enterprise.
What about wpa3-personal?
WPA3-Personal connects and works. Hadn't tried that until now, but supposedly better than any of the non-working alternatives... Strange EAP-TLS still refuse though
you updated your firmware on your AP right? What controller version are you running?
Yes, I have upgraded the AP, now running on 6.5.54.14746
-
@furom well if me, what I would do to try and glean some insight to what exactly is failing..
I would do a killall radiusd
then start it in debug mode with
radiusd -X
Then try your auth - you will be flooded with info.. just a small snip of my tablet authing
(4) TLS-Session-Information = "(TLS) recv TLS 1.2 Handshake, CertificateVerify" (4) TLS-Session-Information = "(TLS) recv TLS 1.2 Handshake, Finished" (4) TLS-Session-Information = "(TLS) send TLS 1.2 ChangeCipherSpec" (4) TLS-Session-Information = "(TLS) send TLS 1.2 Handshake, Finished" (4) TLS-Session-Cipher-Suite = "ECDHE-ECDSA-AES128-GCM-SHA256" (4) TLS-Session-Version = "TLS 1.2" (4) Sent Access-Challenge Id 24 from 192.168.2.253:1812 to 192.168.2.4:33751 length 119 (4) EAP-Message = 0x0187003d0d800000003314030300010116030300282a3c2d8e314713ca963244f76526de3b14e6c288b234f0f7c6bd662fda640482f8cbd79a8fc0bf63 (4) Message-Authenticator = 0x00000000000000000000000000000000 (4) State = 0x8f9121a78b162c3e188eee1434fd9653 (4) Finished request Waking up in 4.8 seconds. (5) Received Access-Request Id 25 from 192.168.2.4:33751 to 192.168.2.253:1812 length 251 (5) User-Name = "tablet.home.arpa" (5) NAS-IP-Address = 192.168.2.4 (5) NAS-Identifier = "1618d6c21f6b" (5) Called-Station-Id = "16-18-D6-C2-1F-6B:unifi-eap" (5) NAS-Port-Type = Wireless-802.11 (5) Service-Type = Framed-User (5) Calling-Station-Id = "04-34-F6-AA-02-D9" (5) Connect-Info = "CONNECT 0Mbps 802.11b" (5) Acct-Session-Id = "CF1EEF7980492BF6" (5) Acct-Multi-Session-Id = "80BA7EF3E58094C1" (5) WLAN-Pairwise-Cipher = 1027076 (5) WLAN-Group-Cipher = 1027076 (5) WLAN-AKM-Suite = 1027077 (5) WLAN-Group-Mgmt-Cipher = 1027078 (5) Framed-MTU = 1400 (5) EAP-Message = 0x028700060d00 (5) State = 0x8f9121a78b162c3e188eee1434fd9653 (5) Message-Authenticator = 0xe0ac3128b8fedaa1ac89444320ac40c9 (5) Restoring &session-state (5) &session-state:Framed-MTU = 994 (5) &session-state:TLS-Session-Information = "(TLS) recv TLS 1.3 Handshake, ClientHello" (5) &session-state:TLS-Session-Information = "(TLS) send TLS 1.2 Handshake, ServerHello" (5) &session-state:TLS-Session-Information = "(TLS) send TLS 1.2 Handshake, Certificate"
You may need to reboot your AP if your not seeing any info - seems the AP caches some of the info or something..
-
@johnpoz said in freeradius / eap-tls / Android 13:
@furom well if me, what I would do to try and glean some insight to what exactly is failing..
I would do a killall radiusd
then start it in debug mode with
radiusd -X
Then try your auth - you will be flooded with info.. just a small snip of my tablet authing
You may need to reboot your AP if your not seeing any info - seems the AP caches some of the info or something..
This sounds like fun! :) I'll give it a go. I just tried EAP-PEAP and TTLS, neither worked so this will perhaps reveal something interesting... I have read that later Android handled CA's differently and won't trust anything easily, which probably is a good thing for the most part...
Edit: Omg... Well, you weren't kidding about barfing a lot of data... Saw several errors swoshing by, will look for them now
-
@furom It looks like this should contain the interesting error
(4) ERROR: Failed retrieving values required to evaluate condition (4) [expiration] = noop (4) [logintime] = noop (4) pap: WARNING: Auth-Type already set. Not setting to PAP (4) [pap] = noop (4) } # authorize = updated (4) Found Auth-Type = eap (4) # Executing group from file /usr/local/etc/raddb/sites-enabled/default (4) authenticate { (4) eap: Expiring EAP session with state 0x4c94f6214f91fbc3 (4) eap: Finished EAP session with state 0x4c94f6214f91fbc3 (4) eap: Previous EAP request found for state 0x4c94f6214f91fbc3, released from the list (4) eap: Peer sent packet with method EAP TLS (13) (4) eap: Calling submodule eap_tls to process data (4) eap_tls: (TLS) EAP Done initial handshake (4) eap_tls: (TLS) recv TLS 1.2 Alert, fatal internal_error (4) eap_tls: ERROR: (TLS) Alert read:fatal:internal error (4) eap_tls: (TLS) Server : Need to read more data: error (4) eap_tls: ERROR: (TLS) Failed reading from OpenSSL: error:14094438:SSL routines:ssl3_read_bytes:tlsv1 alert internal error (4) eap_tls: (TLS) In Handshake Phase (4) eap_tls: (TLS) Application data. (4) eap_tls: ERROR: (TLS) Cannot continue, as the peer is misbehaving. (4) eap_tls: ERROR: [eaptls process] = fail (4) eap: ERROR: Failed continuing EAP TLS (13) session. EAP sub-module failed (4) eap: Sending EAP Failure (code 4) ID 5 length 4 (4) eap: Failed in EAP select (4) [eap] = invalid (4) } # authenticate = invalid (4) Failed to authenticate the user (4) Using Post-Auth-Type Reject (4) # Executing group from file /usr/local/etc/raddb/sites-enabled/default (4) Post-Auth-Type REJECT { (4) attr_filter.access_reject: EXPAND %{User-Name}
The top 4 rows repeat a few times without the other errors. Interestingly, it says that it needs to 'read more data', and the first error reads like this
(1) ERROR: Failed retrieving values required to evaluate condition (1) [expiration] = noop (1) [logintime] = noop (1) pap: WARNING: Auth-Type already set. Not setting to PAP (1) [pap] = noop (1) } # authorize = updated (1) Found Auth-Type = eap (1) # Executing group from file /usr/local/etc/raddb/sites-enabled/default (1) authenticate { (1) eap: Expiring EAP session with state 0x4c94f6214c96fbc3 (1) eap: Finished EAP session with state 0x4c94f6214c96fbc3 (1) eap: Previous EAP request found for state 0x4c94f6214c96fbc3, released from the list (1) eap: Peer sent packet with method EAP TLS (13) (1) eap: Calling submodule eap_tls to process data (1) eap_tls: (TLS) EAP Got final fragment (131 bytes) (1) eap_tls: WARNING: (TLS) EAP Total received record fragments (131 bytes), does not equal expected expected data length (0 bytes)
So something is going on here...
-
@furom said in freeradius / eap-tls / Android 13:
(4) eap_tls: (TLS) EAP Done initial handshake
(4) eap_tls: (TLS) recv TLS 1.2 Alert, fatal internal_error
(4) eap_tls: ERROR: (TLS) Alert read:fatal:internal error
(4) eap_tls: (TLS) Server : Need to read more data: error
(4) eap_tls: ERROR: (TLS) Failed reading from OpenSSL: error:14094438:SSL routines:ssl3_read_bytes:tlsv1 alert internal error
(4) eap_tls: (TLS) In Handshake Phase
(4) eap_tls: (TLS) Application data.
(4) eap_tls: ERROR: (TLS) Cannot continue, as the peer is misbehaving.Well that for sure would explain why your eap-tls is not working... But your saying you got your old tablet working.. Are you not using the same certs that you used for server and same CA?
So something wrong with the client cert, or how the client is sending it? Or just how the client does the handshake?
edit: My son has a android phone - not sure when he will be over next... We might be doing some sort of bbq on monday, so if so I will try to get his phone connected, not sure what its running.. But I do know it is an android device.
-
@johnpoz said in freeradius / eap-tls / Android 13:
@furom said in freeradius / eap-tls / Android 13:
(4) eap_tls: (TLS) EAP Done initial handshake
(4) eap_tls: (TLS) recv TLS 1.2 Alert, fatal internal_error
(4) eap_tls: ERROR: (TLS) Alert read:fatal:internal error
(4) eap_tls: (TLS) Server : Need to read more data: error
(4) eap_tls: ERROR: (TLS) Failed reading from OpenSSL: error:14094438:SSL routines:ssl3_read_bytes:tlsv1 alert internal error
(4) eap_tls: (TLS) In Handshake Phase
(4) eap_tls: (TLS) Application data.
(4) eap_tls: ERROR: (TLS) Cannot continue, as the peer is misbehaving.Well that for sure would explain why your eap-tls is not working... But your saying you got your old tablet working.. Are you not using the same certs that you used for server and same CA?
So something wrong with the client cert, or how the client is sending it?
Glad to hear it makes some sense at least. Not looking great, so much I do understand... :)
No, I created a second cert for the new tablet as I may want them both still...
I now copied the cert I used on the old tablet (working with WPA2-Enterprise/eap-tls/Android 7) to the new one, and errors are identical
-
@furom Perhaps a fragmentation problem ?
Try to edit eap.conf and set fragment_size = 1344A nanoHD and a unifi6-lite only worked with wpa2-enterprise after doing this change.
-
@furom I looked up if they plan on updating my P11 plus to 13, and doesn't look like it - they list 12 as last, and actually eol security updates 11/23, so that not good.. But the little * says
Lenovo tablets get updates for security issues documented in Android Security bulletin.
Its only my train tablet so not too worried about it, but would be nice if could update to 13 and test..
So this tablet doesn't even work with wpa2 enterprise? I would prob just go with wpa3 personal and call it a day then.. wpa3 personal brings "Simultaneous Authentication of Equals (SAE)." so that is good for any sort of offline attack on the password.
-
@mcury said in freeradius / eap-tls / Android 13:
eap.conf and set fragment_size = 1344
Mine is set to
fragment_size = 1024
Not having any issues.. I do not have a U6-lite, and furom has a uap-ac-lite, which I also have.. I am not seeing any issues with connecting on any of my ap, the lite, the pro or the lr - all just uap-ac, no U6...
I do have a flex HD I could test with, but its currently inactive..
-
@johnpoz said in freeradius / eap-tls / Android 13:
Not having any issues.. I do not have a U6-lite, and furom has a uap-ac-lite, which I also have.. I am not seeing any issues with connecting on any of my ap, the lite, the pro or the lr - all just uap-ac, no U6...
I do have a flex HD I could test with, but its currently inactive..I did have issues with the default values..
At that time, I decided to perform a packet capture and noticed a lot of EAP packets, when it shouldn't have that amount.
After some research, found that changing that value to 1344 fixed all the issues.
https://lists.freeradius.org/pipermail/freeradius-users/2012-January/058297.html
-
@mcury said in freeradius / eap-tls / Android 13:
@furom Perhaps a fragmentation problem ?
Try to edit eap.conf and set fragment_size = 1344A nanoHD and a unifi6-lite only worked with wpa2-enterprise after doing this change.
It would be interesting to test... Where do I find "eap" in freeRadius on pfSense?
-
-
@johnpoz said in freeradius / eap-tls / Android 13:
@furom the eap file would be here
/usr/local/etc/raddb/mods-enabled
@mcury the way I read what you linked seems too says to lower it ;) hehe
"The simplest thing to try is to see eap.conf, and change fragment_size
to something smaller."Well, I set it through the gui and restarted in debug mode. Now verified the value in the file file indeed reads "1344", but same error unfortunately.
It was a good try, thanks for that
-
@johnpoz said in freeradius / eap-tls / Android 13:
@mcury the way I read what you linked seems too says to lower it ;) hehe
"The simplest thing to try is to see eap.conf, and change fragment_size
to something smaller.Indeed, but that pointed me to the right direction, from there I decided to perform a packet capture.
Once I set it to 1344, it worked, no more fragmentation.I suppose it was here that I got the suggestion for this value from:
https://community.ui.com/questions/Issue-with-WPA2-Enterprise-Across-sites/7070e262-c2c6-403b-a61d-a98ad3b3db53 -
@mcury that seems to be talking about
"Framed-MTU and set it to 1344 and issue was resolved."
That is different than the fragment size.. Pretty sure that framed -mtu is calculated, I see different values when in debug mode
(3) Framed-MTU = 1400
Different one
(5) User-Name = "tablet.home.arpa"
(5) Framed-MTU += 994Could you post your full output when you run in debug mode @furom attach as a .txt file.
-
Could this be of relevance?
No EAP Start, assuming it's an on-going EAP conversation
Just prior to that it tries to match an email (containing a "@") and fails. So perhaps a username must be an email? Worth a try I suppose
-
@furom said in freeradius / eap-tls / Android 13:
So perhaps a username must be an email? Worth a try I suppose
I see the same notices.. And not having any issue..
(4) # Executing section authorize from file /usr/local/etc/raddb/sites-enabled/default (4) authorize { (4) [preprocess] = ok (4) [chap] = noop (4) [mschap] = noop (4) [digest] = noop (4) suffix: Checking for suffix after "@" (4) suffix: No '@' in User-Name = "tablet.home.arpa", skipping NULL due to config. (4) [suffix] = noop (4) ntdomain: Checking for prefix before "\" (4) ntdomain: No '\' in User-Name = "tablet.home.arpa", skipping NULL due to config. (4) [ntdomain] = noop (4) eap: Peer sent EAP Response (code 2) ID 192 length 82 (4) eap: No EAP Start, assuming it's an on-going EAP conversation (4) [eap] = updated (4) files: users: Matched entry tablet.home.arpa at line 17 (4) [files] = ok
-
@johnpoz said in freeradius / eap-tls / Android 13:
(3) Framed-MTU = 1400
This value is set in eap.conf, inside: tls-config tls-common {
# fragment_size = 1024
fragment_size = 1344 -
@mcury Your 2nd link talked about editing the framed-mtu, not the fragment size.. But I believe the framed mtu is normally calculated I thought, I sure don't have a framed-mtu in my eap file, and its seems to be calculating the different framed mtu size based on what size its seeing.
I don't really think its related to that - but something with his android version, seems their are a lot of discussion about android 11 or above and wpa enterprise.. What I have seen seems to be should have a problem in 12 as well. But I think some of these things are handled by the maker changes to their release for their devices.
I am using a lenovo with 12, and @furom is using a samsung with 13.. etc..
What versions of android are you using @mcury and your using eap-tls?
-
@johnpoz said in freeradius / eap-tls / Android 13:
Could you post your full output when you run in debug mode @furom attach as a .txt file.
Sure, just trying to figure what to mask...
Edit:
This is the output from the run; out.txt -
@johnpoz said in freeradius / eap-tls / Android 13:
What versions of android are you using @mcury and your using eap-tls?
Tested with Android 11, 12, Macbook air M1, Iphone 11 pro (I'm almost sure it is an iphone 11) and Windows 10 and 11 22H1.
Yes, using EAP-TLS (lets encrypt certificate), I just renew it within a 90 day period and upload it to freeradius server.
Let me enable the server here in my lab so I can post the debug for you.
-
@mcury Yeah not having any issues with iphone (13), ipad (air 5th gen) both running ios 16.5, windows 10 pro 22H2, acer chromebook running whatever latest os is as of day or two ago, and android lenovo p11+ tablet running 12.
Not sure what the issue is with his.. He got his android 7 working with wpa2 enterprise..
@furom did you get your windows test box working? Did you say you found an issue on your switch? So I assume you got your linux and windows and old tablet all working with wpa2-ent
I don't use amce for my certs for eap-tls, all certs via cert manger in pfsense (23.01) using ECDSA with prime256v1 for both the CA and the server and client certs.
Running unifi controller 7.4.156 and uap-ac-pro, lite and lr AP all on 6.5.54 firmware.
edit: here is output of rad -X and my tablet connecting.
Looks like this time it authed connecting to my LR - so have seen valid connections on all 3 of my different APs.
-
@johnpoz said in freeradius / eap-tls / Android 13:
@mcury Yeah not having any issues with iphone (13), ipad (air 5th gen) both running ios 16.5, windows 10 pro 22H2, acer chromebook running whatever latest os is, and android lenovo p11+ tablet running 12.
Not sure what the issue is with his.. He got his android 7 working with wpa2 enterprise..
@furom did you get your windows test box working? Did you say you found an issue on your switch? So I assume you got your linux and windows and old tablet all working with wpa2-ent
I gave up on the windows client. Issue I had with the Netgate switch was not assigning the correct lan, so when corrected old tablet started working (issue then was it did not get an IP), which is the only client so far
-
@furom well maybe you want to try the amce certs, there shouldn't be anyway the tablet doesn't trust those.. Not exactly sure how you get a client cert, would assume just need to be able to validate your fqdn via dns would get you the client cert, just like your server cert, etc.
-
@johnpoz said in freeradius / eap-tls / Android 13:
@furom well maybe you want to try the amce certs, there shouldn't be anyway the tablet doesn't trust those.. Not exactly sure how you get a client cert, would assume just need to be able to validate your fqdn via dns would get you the client cert, just like your server cert, etc.
I have though of it before, but that would require a domain and public DNS, which I don't have.
I really do appreciate you guys trying to find some sense in this. There is a beta of Android 14, not sure if I could load that on my tablet, but could be something. Hopefully this would be fixed in 14, but will hold my breath just a little while longer... :)But as said earlier, 13 is a lot pickier with trusting the CA's. So I would not be surprised if 'let's encrypt' would work right away, as it is trusted by browsers by default
-
I took so long due because this VM wasn't powered on in six months..
My administrator account password expired, users account passwords expired, certificates expired...
More than 160 packages to update in Ubuntu..
Then I got my user stuck in SQL database since simultaneous use is set to one.
What a mess to get this lab working again..With EAP details, ldap and SQL working.. (Android 12 Galaxy S10 connecting to a nandoHD).
full_test.txt -
So found some info last night that said the only way to make Android >11/12 accept a self-signed CA is now to use an MDM (Mobile Device Manager) or a secure app such as Knox to handle the certs.
Edit: Well... put it this way... It was yet another rabbit-hole... A pure nightmare for an average person like myself. Why would I want a full scale mobile deployment environment just to use decent security using certificates - for ONE lousy tablet?? :(
I even tried to get a secure folder working, it would possibly make it work too, but that is not available any longer... bummer...
-
@furom but isn't this line a bit interersting...
Sat May 27 09:36:29 2023 : ERROR: (4) eap_tls: (TLS) Failed reading from OpenSSL: /var/jenkins/workspace/pfSense-Plus-snapshots-23_01-main/sources/FreeBSD-src-plus-RELENG_23_01/crypto/openssl/ssl/record/rec_layer_s3.c[1621]:error:14094438:SSL routines:ssl3_read_bytes:tlsv1 alert internal error
It is clearly a path from building pfSense 23.01, or looks that way at least... Perhaps if I try using same certs but with a separate radius server... after all this it could not cause more grief (hopefully)
-
@furom said in freeradius / eap-tls / Android 13:
Perhaps if I try using same certs but with a separate radius server.
Why would that work? Its the client that has to trust the CA.