-
Notifications
You must be signed in to change notification settings - Fork 53
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[WIP] Add IWD support to Linux backend #292
base: master
Are you sure you want to change the base?
Conversation
- Rewrite existing IWD class - call IWD functions so it's not just dead code - use f-strings instead of string.format where sane to improve readability. - embed CA pem into IWD configuration rather than referencing a file in some user's homedir
Hi Everyone, After some frustration with the eduroam CAT I took a look at the script and realised that some IWD code existed, but it was all dead code that's not called at all. Now we search for the I'm having some issues with testing this - It consistently chokes on the CA certificate provided by my institution regardless of whether that's the .pem installed to Possible stretch goals:
I'm very interested in any feedback, please reach out and I'll try and track down where IWD is choking on certificates now that I can generate configs. |
I tested this by downloading the main.py from this pull request, getting the current eduroam.py for my institute from the CAT website, and pasting the Message and Config sections from the bottom into main.py. I also changed main.py line 850 to write the config to a temporary path so it didn't overwrite my current configuration. The generated IWD config file is equal to the one I have been using for the last few years. On kernel 6.6 (Arch Linux LTS) it works. On kernel 6.7 it doesn't work as support for certificates with SHA1 signatures has been disabled and so iwd -- which uses the kernel signature utilities -- cannot verify the certificate chain (Arch forum thread on this issue). If you have kernel 6.7 this might be causing your testing issues. For me, it is the root AAA Certificate Services from Comodo which is the problem. |
One extra option could be to hash the user's password if mschapv2 is being used. Instead of |
Just to note that the signature on a root certificate has no trust value - it's a self-signature. Therefore, virtually all OSes have in the past only discontinued certificate verification with SHA-1 along the chain - i.e. for intermediates and end-entity certs. It would be a very "interesting" move to cut off root CAs like that. In the specific case of AAA Services though, there's an easy fix: The USERTrust intermediate CA certificate underneath AAA Services has been re-issued as a root certificate of its own long ago, and it signed itself with a SHA-384 sig. Every server that sends a cert chain ending in AAA Services can alternatively and preferably send a chain ending in USERTrust RSA (one cert and at least one round-trip in EAP less). For a reason unknown to me, the cert provider Sectigo still ships the AAA Services CA by default as the trust anchor for its issued certificates, introducing incompatibility issues here and there. You should contact your eduroam IdP and tell them about the existence of the shorter USERTrust RSA root. |
@restena-sw Thanks for that information! I have just been talking to our IT contact about this, and that is very useful to know. |
Great. I'm relatively happy with this and can chase down my CA issues - do you want to merge as-is, would you like me to pursue some of the stretch goals before that, or is there anything that I've overlooked? |
I can confirm my issues are 6.7.0/SHA1 related:
|
I have tested this installer. One thing probably not so great is that admin access is required to set up the connection. And one other thing, we really wanted to get rid of the python script and return to the bash script working with nmcli. Since the iwd approach seems to be just about creating the config file, this should probably be also doable in bash. And one final remark. The geteduroam Linux client is being developed. There is a good chance that in time it will just replace the current installers - it works with CAT via its API. |
I'll investigate talking to iwd over dbus and see if we can have iwd write the configuration itself, that should eliminate the need to elevate permissions (and probably get some free config validation at the same time)
That's a shame. Since I'm well into the 6.7 series kernels I haven't had a chance to test, but I'll grab an LTS kernel and see if I can get past the root cert SHA1 issue.
I'm sure it that porting the logic will be straightforward when the time comes; I'll be sure to write thorough documentation.
Fantastic, the future will be even better. |
Closes: #201
Closes: #278