19
edits
Changes
m
<font color="red">WarningOn campus, there are 2 wireless networks: Use of PEAP-MSCHAPv2 to connect to * '''eduroam''': uses federated credentials and is the Virginia Tech network is strongly discouraged by preferred method.* '''VirginiaTech''': for guests and devices that cannot use the authentication method of '''eduroam'''.Any remotely modern/complete Linux and or Unix Users Group due system will be able to attacks that can allow all traffic connect to be decrypted with a 100% success rateeduroam without any issues.</font>
At DefCon 20 in July 2012, an attack was announced ==General Connection Information=====eduroam===The following settings are recommended for MSCHAPv2 that allows connecting to the protocol to be cracked quickly with a 100% success rate.<ref>[httpseduroam network://www.cloudcracker.com/blog/2012/07/29/cracking-ms-chap-v2/]</ref> '''Use of MSCHAPv2 is strongly discouraged.'''
==Set your remote access * '''SSID:''' eduroam* '''EAP:''' PEAP* '''Phase 2:''' MSCHAPv2* '''Root CA:''' "USERTrust RSA Certification Authority" or pin the certificate (networksee below) passphrase==Regardless of what software you use to establish * '''Server Name:''' eduroam.nis.vt.edu* '''Identity:''' pid@vt.edu (So if your connectionPID was "hokiebird", you must first set your remote passphrase by going to hokiebird@vt.edu)* '''Anonymous Identity:''' anonymous@vt.edu* '''Password:''' [https://mywww.vt.edu mycomputing.vt.edu]→Settings→Change /kb/entry/3765 Your Network Password.]
==Android=====eduroam ''Regardless of what software you use to establish your connection, you must first set your remote (preferrednetwork)===TODO=== VT-Wireless (legacy)==={{Version|2passphrase by going to [https://my.vt.edu my.vt.edu]→Settings→Change Network Password.2 (Froyo) of Android}}''
==NetworkManager=====eduroam (preferred)===* In your the list of wireless configuration programnetworks, select "eduroam".* Choose PEAP as the EAP type.* Choose MSCHAPv2 as Set the authentication method.* Use PID@vt.edu and network passphrase as your login credentials.following options:
===VT-Wireless (legacy)===* In your wireless configuration program, select VT-Wireless.* Choose PEAP as the EAP type.* Choose MSCHAPv2 as the authentication method.* Use your {{{identity|PID}}} and network passphrase as your login credentials[[File:Nm settings.png]]
===For eduroam (preferred)===
ctrl_interface=DIR=More thorough documentation is available at [https:/run/wpa_supplicant GROUP=wheel update_config=1 fast_reauth=1 ap_scan=1 network={ ssid="VT-Wireless" proto=WPA2 key_mgmt=WPA-EAP eap=PEAP phase2="auth=MSCHAPV2" identity="your {{{identity|PID}}}" password="your passphrase" ca_cert="w1.fi/etccgit/sslhostap/certsplain/GlobalSign_Root_CAwpa_supplicant/wpa_supplicant.pem }conf]
In our configuration we opted for a much stronger level of validation where in we specify the hash of the certificate that we expect to see. When using this method of certificate validation, you specify the ca_cert parameter as hash://server $ rcctl enable wpa_supplicant $ rcctl set wpa_supplicant flags -c /sha256etc/<sha256 hash of DER encoded certificate>wpa_supplicant.conf -s -D openbsd -i iwm0 $ rcctl start wpa_supplicant
In order Finally, connect to generate the sha256 hash of the DER encoded certificate network with (so that you can validate that the above hash is correctagain, replacing iwm0 with your wireless interface), download the certificate by clicking the "Download" link on the [https://ash.eprov.seti.vt.edu/EJBCAWebRequest/certSearch?cmd=search&keyword=VT-Wireless Certifcate Search for VT-Wireless]
Validate that the certificate downloaded is in fact signed by the Virginia Tech Certificate Authority: $ ifconfig iwm0 join eduroam wpa wpaakms 802.1x up $ dhclient iwm0 $ ifconfig iwm0 inet6 autoconf
(TODO)Then generate the sha256 hash (in the directory where the certificate downloaded to): openssl x509 -in VT-Wireless.cns.vt.edu.crt -outform der | sha256sum 216c5f2568c6e84860b12535efe93500623ccee999306b84260f951bcbd57b1a - ==netctlInstructions==
===eduroam (preferred)===Put the following configuration in <code>/etc/netctl/eduroam </code> with your proper PID and Network Password. Further, this assumes that your wireless network device is wlan0, which you might have to change to match your system. The ca_cert line pins the server certificate and can be generated/validated using the mechanism described above.
'domain_match="eduroam.nis.vt.edu"'
* Create a file, '''<pre>[global]Name = eduroamDescription = Optionally put something descriptive here. [service_wifi_3c15c2e29584_656475726f616d_managed_ieee8021x]Type = wifiName = eduroamEAP = peapCACertFile = /etc/netctlssl/VT-Wireless''' and place this in it:certs/USERTrust_RSA_Certification_Authority.pem DescriptionDomainMatch ="VT-Wireless PEAP-MSCHAPv2"eduroam.nis.vt.edu InterfaceAnonymousIdentity =wlan0anonymous@vt.edu ConnectionPhase2 =wirelessMSCHAPV2 SecurityIdentity =wpa-configsectionPID@vt.edu IPPassphrase =dhcpNETWORKPASSWORD IP6=stateless</pre> WPAConfigSection==iwd Instructions==This is a sample configuration, usually located at something like <code>/var/lib/iwd/eduroam.8021x</code>. For details, read <code>iwd.network(5)</code>. 'ssid<pre>[Security]EAP-Method ="VTPEAPEAP-Wireless"'Identity = anonymous@vt.edu 'protoEAP-PEAP-CACert =RSN'embed:USERTrust_RSA_Certification_Authority 'key_mgmtEAP-PEAP-ServerDomainMask =WPAeduroam.nis.vt.eduEAP-PEAP-Phase2-Method = MSCHAPV2EAP'-PEAP-Phase2-Identity = PID@vt.edu 'eapEAP-PEAP-Phase2-Password-Hash =PEAP'8846f7eaee8fb117ad06bdd830b7586c [@pem@USERTrust_RSA_Certification_Authority]-----BEGIN CERTIFICATE-----MIIF3jCCA8agAwIBAgIQAf1tMPyjylGoG7xkDjUDLTANBgkqhkiG9w0BAQwFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAwMjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCAEmUXNg7D2wiz0KxXDXbtzSfTTK1Qg2HiqiBNCS1kCdzOiZ/MPans9s/B3PHTsdZ7NygRK0faOca8Ohm0X6a9fZ2jY0K2dvKpOyuR+OJv0OwWIJAJPuLodMkYtJHUYmTbf6MG8YgYapAiPLz+E/CHFHv25B+O1ORRxhFnRghRy4YUVD+8M/5+bJz/Fp0YvVGONaanZshyZ9shZrHUm3gDwFA66Mzw3LyeTP6vBZY1H1dat//O+T23LLb2VN3I5xI6Ta5MirdcmrS3ID3KfyI0rn47aGYBROcBTkZTmzNg95S+UzeQc0PzMsNT79uq/nROacdrjGCT3sTHDN/hMq7MkztReJVni+49Vv4M0GkPGw/zJSZrM233bkf6c0Plfg6lZrEpfDKEY1WJxA3Bk1QwGROs0303p+tdOmw1XNtB1xLaqUkL39iAigmTYo61Zs8liM2EuLE/pDkP2QKe6xJMlXzzawWpXhaDzLhn4ugTncxbgtNMs+1b/97lc6wjOy0AvzVVdAlJ2ElYGn+SNuZRkg7zJn0cTRe8yexDJtC/QV9AqURE9JnnV4eeUB9XVKg+/XRjL7FQZQnmWEIuQxpMtPAlR1n6BB6T1CZGSlCBst6+eLf8ZxXhyVeEHg9j1uliutZfVS7qXMYoCAQlObgOK6nyTJccBz8NUvXt7y+CDwIDAQABo0IwQDAdBgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAFzUfA3P9wF9QZllDHPFUp/L+M+ZBn8b2kMVn54CVVeWFPFSPCeHlCjtHzoBN6J2/FNQwISbxmtOuowhT6KOVWKR82kV2LyI48SqC/3vqOlLVSoGIG1VeCkZ7l8wXEskEVX/JJpuXior7gtNn3/3ATiUFJVDBwn7YKnuHKsSjKCaXqeYalltiz8I+8jRRa8YFWSQEg9zKC7F4iRO/Fjs8PRF/iKz6y+O0tlFYQXBl2+odnKPi4w2r78NBc5xjeambx9spnFixdjQg3IM8WcRiQycE0xyNN+81XHfqnHd4blsjDwSXWXavVcStkNr/+XeTWYRUc+ZruwXtuhxkYzeSf7dNXGiFSeUHM9h4ya7b6NnJSFd5t0dCy5oGzuCr+yDZ4XUmFF0sbmZgIn/f3gZXHlKYC6SQK5MNyosycdiyA5d9zZbyuAlJQG03RoHnHcAP9Dc1ew91Pq7P8yF1m9/qS3fuQL39ZeatTXaw2ewh0qpKJ4jjv9cJ2vhsE/zB+4ALtRZh8tSQZXq9EfX7mRBVXyNWQKV3WKdwrnuWih0hKWbt5DHDAff9Yk2dDLWKMGwsAvgnEzDHNb842m1R0aBL6KCq9NjRHDEjf8tM7qtj3u1cIiuPhnPQCjY/MiQu12ZIvVS5ljFH4gxQ+6IHdfGjjxDah2nGN59PRbxYvnKkKj9-----END CERTIFICATE-----</pre> 'phase2==Android Instructions== [[File:AndroidEduroamNoCert.png|170px|thumb|Sample Android configuration of eduroam, but crucially lacking certificate validation.]] A sample configuration is available to the right, but as this configuration is currently lacking CA certificate validation, we do not at this time recommend connecting to the network. The Identity needs to be modified to match your PID@vt.edu, and your Network Password needs to be entered in the Password field. Steps:* Navigate to the list of Wi-Fi networks.* "auth=MSCHAPV2Forget"'any existing entries for eduroam. 'identity=* From the "YOUR IDENTITYWiFi networks"'listing, click on eduroam. 'password=* Choose PEAP as the EAP method and MSCHAPv2 as the phase two authentication mechanism.* For the CA certificate, select "NETWORK PASSWORDUse system certificates". Optionally, import the root CA from above, and select that instead for better security. 'ca_cert=* For the domain, enter ```eduroam.nis.vt.edu```* Enter your pid@vt.edu for the identity* Enter "/etc/ssl/certs/GlobalSign_Root_CAanonymous@vt.pemedu" for the anonymous identity* Enter your Network Password for the password* Press "Connect"'. )NOTE: Older versions of Android do not allow not verifying the server certificate. Setting both the root CA and the domain are essential for protecting your credentials. Although older versions will get you connected, use at your own risk.
Make sure to change '''IDENTITY''' to your {{{identity|PID}}}, ==Frequently Asked Questions=====Is eduroam free?===eduroam at Virginia Tech is free for:* VT affiliates with wireless entitlements (includes students) access and '''NETWORK PASSWORD''' to your network password.passwords* Users at other participating institutions
* To connect===Does eduroam support EAP-TLS?===Currently, simply type the following in a terminal: sudo netctl start VTVirginia Tech eduroam RADIUS servers are not configured for EAP-WirelessTLS.
Because '''PEAP-MSCHAPv2eduroam'''' s credentials are federated, it means that a VT user is a wireless authentication scheme used by Virginia Tech as an alternative able to automatically connect to [[EAPthe Internet at participating institutions. The eduroam-TLS]] for connections to US site provides a [[VT-Wireless]https://www.eduroam.us/technical_overview technical overview]of the authentication system.
===Obtaining the Certificate Chain=== The certificate presented by the RADIUS server is chained as such: * USERTrust RSA Certification Authority** InCommon RSA Server CA *** From eduroam.nis.vt.edu Below is where to obtain each of these, along with some metadata. The filenames are arbitrary, but will be used for the home screenrest of this article. For every certificate (''especially'' the root, the signature chain helps with the rest), consider where you are obtaining it from and how much trust that you are getting what you think you are. You will probably want the PEM formatted certificate, if you have the option. ====USERTrust RSA Certification Authority==== ''Filename:'' USERTrust_RSA_Certification_Authority.pem ''Subject:'' C = US, ST = New Jersey, L = Jersey City, O = The USERTRUST Network, press CN = USERTrust RSA Certification Authority This is a common root CA and should have shipped with your OS. It is likely located in <code>/etc/ssl/certs/USERTrust_RSA_Certification_Authority.pem</code>. Note that if you follow the Authority Information Access of the menu button intermediate certificate, it may direct you to a URL which points to a different version of this certficate, which is cross signed by AddTrust and choose expired in May 2020. The one in your cert store is self-signed and expires in 2038. You want the one from your cert store. ====InCommon RSA Server CA==== ''Filename:'' InCommonRSAServerCA_2.pem ''Subject:'' C = US, ST = MI, L = Ann Arbor, O = Internet2, OU = InCommon, CN = InCommon RSA Server CA This is an intermediate certificate issued to InCommon. You can get it directly from InCommon [http://crt.usertrust.com/InCommonRSAServerCA_2.crt here]. ====eduroam.nis.vt.edu==== ''Filename:'' eduroam.nis.vt.edu.pem ''Subject:'' C = US, postalCode = 24061, ST = Virginia, L = Blacksburg, street = 800 Washington St. SW, O = Virginia Polytechnic Institute and State University, OU = Secure Identity Services, CN = eduroam.nis.vt.edu This can be obtained from the [https://certs.it.vt.edu/search VT Certificate Manager]. This requires PID login. Search for "Settingseduroam.nis.vt.edu"→"Wireless & networks"→"Wi. Grab the certificate most recently issued. ===Validating the certificate=== <ol><li> Obtain ''all'' certificates in the chain ''in PEM format'' </li><li> Concatenate the non-leaf certificates in to a single file: </li><pre>$ cat USERTrust_RSA_Certification_Authority.pem InCommonRSAServerCA_2.pem > ca.pem</pre><li> Verify the certificates are signed correctly </li><pre>$ openssl verify -verbose -purpose sslserver -Fi settings"CAfile ca.pem eduroam.nis.vt.edu.pemeduroam.nis.vt.edu.pem: OK</pre>* Remove any existing entries <li> For at least the root and leaf certificates, verify the subject (compare to above) </li><pre>$ openssl x509 -in file_of_cert_you_want_to_check -noout -subject</pre></ol> ===Certificate Pinning=== Due to vulnerabilities in the MSCHAPv2 protocol that allow the protocol to be cracked quickly with a 100% success rate<ref>[https://web.archive.org/web/20160316174007/https://www.cloudcracker.com/blog/2012/07/29/cracking-ms-chap-v2/]</ref>, it is ''absolutely critical'' that the RADIUS server certificate be validated properly before attempting authentication. Where possible, we opt for {{{networks|the highest level of verification of the certificate: manually pinning the hash of the certificate we expect to be presented. The canonical form of the hash used by many network managers is the SHA256 hash of the DER encoding of the certificate. Validate the certificate (see above) then generate the sha256 hash: $ openssl x509 -in eduroam.nis.vt.edu.crt -outform der | sha256sum 9b5163a3360f07b2dce2fd1e958c541687cf4c5360bb8adc87fa821c1c969910 - It is recommended that youperform these steps yourself rather than trusting the certificate hash presented in the configurations below. 'd like ''Note:''' As we are pinning the certificate instead of relying on a PKI, when NI&S rotates the certificates being used (at least every year), the configuration will need to be updated to add or any conflicting match the new certificate. ===Getting your network}}}.password hash===* From MSCHAPv2 verifies the "WiFi networks" listingNT4 hash of your password, click not the password itself. This means knowing the hash of the password is sufficient to connect to authenticate. Depending on {{{network|the network client, you may be able to store the hash in your config instead of the password. To reiterate, '''this hash is just as sensitive as your password'''. The hash is less human memorable, though, and does act as a deterrent to shoulder-surfing. To derive the password hash, youcan:<pre>printf 'YOUR-NETW-ORKP-SSWD'\ | iconv -f ASCII -t UTF-16LE \ | openssl dgst -md4 \ | cut -d like ' ' -f 2</pre> If you are using OpenSSL 3, you will need to add}}}specify the legacy provider:<pre> | openssl dgst -md4 -provider legacy \</pre> ===A Word of Caution===Although you can verify connection to the Virginia Tech RADIUS servers you must keep in mind that you are connecting to a network that you do not control.It is possible that there are network monitors in place which can record and potentially modify traffic. * Choose PEAP as We encourage you to take precautions against network eavesdropping and mischief (on the EAP method eduroam network, and MSCHAPv2 as in general). Potential countermeasures that one might want to employ include using [https://www.eff.org/HTTPS-EVERYWHERE HTTPS when connecting to sites], using a [https://www.computing.vt.edu/content/virtual-private-network VPN], or using the phase two authentication mechanism[https://www.torproject.org/ Tor Browser Bundle].* Enter For general tips on improving your credentials for security while using the network, consider reading the identity EFF's [https://ssd.eff.org/ Surveillance Self-Defense] tips, reading [https://www.hokieprivacy.org/ Hokie Privacy], and press "Connect"/or contacting the [https://security.vt.edu/ Virginia Tech Information Security Office]. ==NetworkManager Instructions==
* Wi-Fi security: WPA & WPA2 Enterprise
* Authentication: Protected EAP (PEAP)
* Anonymous identity: anonymous@vt.edu
* Domain: nis.vt.edu
* CA certificate: Select <code>/path/to/USERTrust_RSA_Certification_Authority.pem</code> via the file picker
* PEAP version: Automatic
* Inner authentication: MSCHAPv2
* Username: PID@vt.edu
* Password: YOUR_NETWORK_PASSWORD
==wpa_supplicantInstructions==
[http://w1.fi/wpa_supplicant/ wpa_supplicant] is a cross-platform supplicant which implements IEEE 802.1x/WPA and is used in many Linux/UNIX distributions.
In order to connect to the eduroam network, add the following to <code>/etc/wpa_supplicant/eduroam.conf </code> modifying the identity and password to reflect your PID and Network Password:
ctrl_interface=DIR=/run/wpa_supplicant GROUP=wheel
update_config=1
fast_reauth=1
ap_scan=1
phase2="auth=MSCHAPV2"
anonymous_identity="anonymous@vt.edu"
# if you prefer to pin the certificate, follow the instructions above to generate a hash ca_cert="hash://server/sha256/216c5f2568c6e84860b12535efe93500623ccee999306b84260f951bcbd57b1a0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff" # if you prefer to dynamically validate the certificate by its cryptographic attributes ca_cert="/path/to/USERTrust_RSA_Certification_Authority.pem" domain_match="eduroam.nis.vt.edu" identity="YourPidHerePID@vt.edu" password="YourNetworkPasswordHereYOUR_NETWORK_PASSWORD"
}
$ sudo dhcpcd wlan0
Alternate config options, besides domain_match are as follows (obviously not correct):
subject_match="/C=US/ST=For VT-Wireless (legacy)CA/L=San Francisco/CN=Test AS/emailAddress=as@example.com"Add the following lines to /etc/wpa_supplicant domain_suffix_match="nis.vt.conf:edu"
==Certificate pinning=====For eduroamOpenBSD Instructions===In Since the above [[OpenBSD]] network stack doesn't support 802.1x authentication, wpa_supplicant configuration, we pin the server certificate that we expect the RADIUS server is needed to presentconnect. wpa_supplicant offers multiple mechanisms for certificate managementon OpenBSD is different from its Linux counterpart in that it is only capable of 802. The ca\_cert parameter can point to a file which contains one or 1x authentication and nothing more CA certificates which will be used to validate the certificate. With First, install wpa_supplicant from ports if it is not already installed. After that option you also have , add just the ability to specify a substring match <code>network={ .. }</code> portion of the certificate's common nameabove configuration to <code>/etc/wpa_supplicant.conf</code>.The wpa_supplicant service can be enabled with (where iwm0 is your wireless interface):
[https://wiki.archlinux.org/index.php/netctl netctl] is a network manager which is native to the ArchLinux distribution. netctl makes use of wpa_supplicant under the hood, and so the configuration is similar.
Description='Federated Educational Wifi Network'
'anonymous_identity="anonymous@vt.edu"'
'ca_cert="hash://server/sha256/216c5f2568c6e84860b12535efe93500623ccee999306b84260f951bcbd57b1a"'
'identity="YourPidHere@vt.edu"'
'password="YourNetworkPasswordHere"'
)
The ConfigSection (as per the netctl.profile manpage) is just what you would put in a wpa_supplicant config. Again, note that the domain_match is ''less secure'' than ca_cert, but better than not checking at all.
Ensure that this file is owned by root and only readable by root:
$ sudo netctl start eduroam
===For VT-Wireless (legacy)=connman Instructions ==Tested on [[Arch Linux]] This config should be useable with connman. Replace Passphrase and Identity with netctl 0your Network password and PID@vt.8 (updated on 2013-04-12)edu, respectively.
===Why is eduroam the preferred SSID?===Using eduroam has several advantages:* After creating this file, make sure The unencrypted portion of your authentication optionally identifies you as "anonymous@vt.edu" rather than revealing your PID* You have access to change the owner seamless roaming if you ever travel to root (<code>sudo chown root:root /etc/netctl/VT-Wireless</code>) and change the permissions so that it can be read only by another participating college campus* The anonymous identity feature separates RADIUS authentication logs from the owner (<code>sudo chmod 0600 /etc/netctl/VT-Wireless</code>). This will ensure that your private key password cannot be read by others easily.network access provider's logs
==References==
<references/>
===Network Information Sources===
* [http://www.cns.vt.edu/html/wireless/wlan/index.html Communications Network Services: Wireless LAN]
* [http://computing.vt.edu/internet_and_web/internet_access/ipaddresses.html Virginia Tech IP Addresses]
[[Category:Howtos]]
[[Category:Campus computing resources]]
[[Category:Needs restoration]]