180 likes | 376 Views
Oprogramowanie klienckie. Tomasz Wolniewicz UCI UMK. Jaki typ EAP?. TLS 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
E N D
Oprogramowanie klienckie Tomasz Wolniewicz UCI UMK Tomasz Wolniewicz UCI UMK
Jaki typ EAP? • TLS • 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
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" } network={ ssid="eduroam" key_mgmt=WPA-EAP eap=TTLS ca_cert="/home/twoln/Cert/umk.cer" identity="twoln@umk.pl" password="*******" phase2="auth=PAP" }
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" } network={ ssid="eduroam" key_mgmt=WPA-EAP eap=TTLS ca_cert="/home/twoln/Cert/umk.cer" identity="twoln@umk.pl" 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" } network={ ssid="eduroam" key_mgmt=WPA-EAP eap=TLS ca_cert="/home/twoln/Cert/umk.cer" identity=twoln@umk.pl private_key="twoln.p12” private_key-password="******" phase2="auth=MSCHAPV2" }
wpa_supplicant – konfiguracja WPA-PSK network={ scan_ssid=1 ssid="Dom" key_mgmt=WPA-PSK psk="******" }