Oprogramowanie klienckie Tomasz Wolniewicz UCI UMK Tomasz Wolniewicz UCI UMK
Jaki typ EAP? TLS PEAP TTLS/PAP najprostsza instalacja w Windows wymaga systemu dystrybucji kluczy i certyfikatów odcięcie użytkownika od sieci wymaga utrzymywania jego wpisu lub unieważnienia certyfikatu i utrzymywaniu go na CRL użytkownicy (zwłaszcza studenci) mogą rozdawać swoje certyfikaty PEAP prosta instalacja przypuszczalnie najwygodniejszy system w sieciach opartych o serwery Windows nie daje się implementować w sieciach opartych o uwierzytelnianie Windows TTLS/PAP brakuje wbudowanej obsługi w Windows (ale można doinstalować SecureW2) współpracuje ze wszystkimi systemami uwierzytelniania bazującymi na hasłach
Jaki suplikant w Windows? Cechy suplikanta systemowego automatycznie wykrywa typ szyfrowania nowej sieci zmiana trybu szyfrowania w znanej sieci nie stanowi dużego problemu łatwe globalne wsparcie użytkownika brak wbudowanej obsługi EAP-TTLS (ale jest SecureW2) Cechy suplikantów dostarczanych z kartami rozbudowana obsługa statystyki sieci często wbudowana obsługa TTLS mogą występować trudności przy zmianie szyfrowania znanej sieci praktycznie niemożliwe wsparcie użytkownika wpa_supplicant darmowy suplikant obsługujący praktycznie wszystkie metody uwierzytelniania wymaga konfiguracji poprzez pliki tekstowe pozwala na bardzo elastyczną konfigurację
SecureW2 Darmowy pakiet dokładający metodę EAP-TTLS do standardowego suplikanta w Windows 2000 i Windows XP Możliwość prekonfiguracji Wady konieczność ingerencji użytkownika we właściwości sieci bezprzewodowej brak możliwości przekonfigurowania dla kilku użytkowników jednego komputera
Instalator SecureW2 plik SecureW2.INF [Version] Signature = "$Windows NT$" Provider = "Alfa & Ariss" Config = 7 [Certificates] Certificate.1 = umk.der [WZCSVC] Enable = AUTO [SSID.1] Name = "eduroam" Profile = "DEFAULT" [Profile.1] AuthenticationMethod = PAP EAPType = 0 Name = "DEFAULT" Description = "Wprowadź swoje dane:" UseAlternateIdentity = FALSE VerifyServerCertificate = TRUE PromptUserForCredentials = FALSE TrustedRootCA.0 = 58067c343fdc0b5853 UserName = PROMPTUSER
NSIS (Nullsoft Scriptable Install System) Darmowy instalator o bardzo dużych możliwościach http://nsis.sourceforge.net Zainstalowanie NSIS Przygotowanie skryptu instalacyjnego Przygotowanie plików składowych Kompilacja skryptu – wyprodukowanie pliku exe
Instalator SecureW2 - plik SecureW2_UMK.NSI ;General ;Name and file Name "${APPLICATION} ${VERSION}" OutFile "SecureW2_312_UMK.exe" ;-------------------------------- ;Interface Settings !define MUI_ICON "eduroam32.ico" !define MUI_UNICON "eduroam32.ico" !define MUI_ABORTWARNING
Instalator SecureW2 - plik SecureW2_UMK.NSI Section "${APPLICATION}" SecInstall SectionIn RO ; Extract all file to the temp dir SetOutPath $TEMPDIR ; Define all the files required for the installation here: File "SecureW2_312.exe" File "SecureW2.INF" File "umk.der" ExecWait "SecureW2_312.exe" ; If an error occurs then goto Error label else goto Continue label IfErrors Error Goto Continue ; Error Label, show error box and then quit Error: MessageBox MB_OK|MB_ICONEXCLAMATION "Błąd przy instalacji SecureW2. Proszę zgłosić ten fakt na adres eduroam@umk.pl" ; Continue Label Continue: ; Remove temporary files Delete "$TEMPDIR\SecureW2_312.exe" Delete "$TEMPDIR\SecureW2.INF" Delete "$TEMPDIR\umk.der" Quit SectionEnd
Bezpieczeństwo pliku instalatora Przygotowany instalator musi być zaufany Instalator może zostać podpisany kluczem, uwierzytelnionym przez główny klucz uczelni Certyfikat klucza podpisującego musi mieć odpowiednie rozszerzenie zezwalające na podpisywanie oprogramowania
Generowanie certyfikatu podpisującego Produkujemy klucz prywatny openssl genrsa -des3 -out test_sign.key 1024 i zlecenie certyfikacji (warto podać kontaktowy e-mail) openssl req -new -key test_sign.key -out test_sign.csr CA certyfikuje openssl ca -out test_sign.crt -in test_sign.csr –extensions id_kp_codeSigning -extfile codesigning Zawartość pliku codesigning: [ id_kp_codeSigning ] extendedKeyUsage = 1.3.6.1.5.5.7.3.3 Generujemy plik PFX openssl pkcs12 -export -out test_sign.pfx -in test_sign.crt -inkey test_sign.key -clcerts
Podpisywanie kodu (1) Niezbędny jest program signtool, będący częścią pakietu .NET SDK. Ten pakiet można pobrać ze stron Microsoft Należy zaimportować plik test_sign.pfx poprzez dwukrotnie kliknięcie i zaakceptowanie wszystkich opcji domyślnych. Niezbędne będzie podanie hasła zabezpieczającego. Warto włączyć silną ochronę klucza, tak aby przy każdej próbie podpisu system pytał nas o hasło
Podpis możemy sprawdzić przeglądając właściwości pliku programu Podpisywanie kodu (2) Podpisanie programu najprościej zrealizować korzystając z okienkowego interfejsu do programu signtool: \Program Files\Microsoft.NET\SDK\v2.0\Bin\signtool.exe signwizard Podpis możemy sprawdzić przeglądając właściwości pliku programu
Sprawdzenie certyfikatu Podpis możemy sprawdzić przeglądając właściwości pliku programu; oczywiście na komputerze musi być zainstalowany główny certyfikat uczelni
wpa_supplicant Niezależny supplikant pod Windows i Linuxa Automatyczna obsługa wielu konfiguracji W Windows XP konieczna instalacja dodatkowych bibliotek wyłączona konfiguracja sieci bezprzewodowej przez system DHCP jest obsługiwane przez system wpa_supplicant -B –i interfejs -c wpa.conf intefejs to np.: \Device\NPF_{252649BA-443E-495B-AB0E-CE85CC7BBCB3} (program win_if_list pokazuje listę) W Linuxie w niektórych systemach (np. Suse10) wpa_supplicant jest fragmentem systemu, w takim przypadku wystarczy poprawienie pliku konfiguracyjnego przy niezależnej instalacji należy niezależnie uruchamiać klienta DHCP wpa_supplicant -B –i interfejs –c wpa.conf –D typ_drivera
wpa_supplicant – konfiguracja TTLS network={ ssid="eduroam" key_mgmt=IEEE8021X eap=TTLS ca_cert="/home/twoln/Cert/umk.cer" identity="twoln@umk.pl" password="******" phase2="auth=PAP" } key_mgmt=WPA-EAP password="*******"
wpa_supplicant – konfiguracja PEAP network={ ssid="eduroam" key_mgmt=IEEE8021X eap=PEAP ca_cert="/home/twoln/Cert/umk.cer" identity="twoln@umk.pl" password="******" phase2="auth=MSCHAPV2" } key_mgmt=WPA-EAP eap=TTLS password="*******" phase2="auth= MSCHAPV2"
wpa_supplicant – konfiguracja TLS network={ ssid="eduroam" key_mgmt=IEEE8021X eap=TLS ca_cert="/home/twoln/Cert/umk.cer" identity=twoln@umk.pl private_key="twoln.p12” private_key-password="******" phase2="auth=MSCHAPV2" } key_mgmt=WPA-EAP
wpa_supplicant – konfiguracja WPA-PSK network={ scan_ssid=1 ssid="Dom" key_mgmt=WPA-PSK psk="******" }