Jak skonfigurować uwierzytelnianie SSH na karcie inteligentnej?

9

Chciałbym móc połączyć się z SSH na moim komputerze za pomocą karty inteligentnej Gemalto .NET jako metody uwierzytelnienia. Jak można to zrobić na maszynie Fedora 13 (lub w ogólnym stylu Red Hat)?

Są to trudne kroki, które moim zdaniem są potrzebne:

  1. Zaświadczenie o dostarczeniu karty inteligentnej (i ewentualnie urzędzie certyfikacji w celu jej wydania?)
  2. Pobierz certyfikat na kartę inteligentną
  3. Skonfiguruj serwer SSH, aby zezwolić na uwierzytelnianie kart inteligentnych i skonfiguruj go tak, aby używał określonego certyfikatu / urzędu certyfikacji
  4. Klient SSH z obsługą kart inteligentnych (dodatkowe punkty za darmowy system Windows)
Geoff Childs
źródło

Odpowiedzi:

2

Wierzę, że sterowniki Gemalto są teraz open source. Mają kod źródłowy na swojej stronie internetowej.

Musisz skonfigurować pammoduł (nie jestem pewien, jak to zrobić, ale kod na pewno tam jest). Wyobrażam sobie, że pamkonfiguracja wymagałaby odwzorowania zasady certyfikatu na identyfikator lokalnego użytkownika.

Uważam, że GDM obsługuje teraz karty inteligentne, ale nie jestem pewien, jak to wykrywa. Spróbuję to sprawdzić później (najłatwiej jest po prostu zajrzeć do gdmkodu źródłowego).

Oczywiście to wszystko wymaga pcscdi libpcsclitemusi zostać zainstalowane. Potrzebny będzie również, aby skopiować libgtop11dotnet.sodo /usr/lib.

vwduder
źródło
Dzięki! To doprowadziło mnie do właściwego toru. Jest też kilka naprawdę przydatnych informacji, jeśli ktoś patrzy na konfigurację opartą na RedHat: centos.org/docs/5/html/Deployment_Guide-en-US/sso-ov.html
Geoff Childs
Gdzie znajdujesz plik libgtop11dotnet.so?
user568021,
2

Poleciłbym Kerberos. MIT produkuje klienta i serwer krb5.

vwduder, czy mógłbyś polecić czytnik kart inteligentnych i źródło kart zgodnych z FIPS-201?

http://csrc.nist.gov/publications/fips/fips201-1/FIPS-201-1-chng1.pdf

Mam kopię na własnym serwerze, ale w tej chwili nie jestem wystarczająco popularna na tym stacktrace, aby się z tobą podzielić. Powyższe jest tylko nieco mniej niezawodne niż nasze własne serwery, więc prawdopodobnie będziesz w stanie je uzyskać;)

[edytuj] Jestem teraz wystarczająco popularny!

http://www.colliertech.org/state/FIPS-201-1-chng1.pdf

cjac
źródło
@vwduder próbował odpowiedzieć, ale nie jest jeszcze częścią zamkniętej wersji beta
cjac
Dzięki cjac! W połączeniu z wkładem vwdudera myślę, że już go polizałem.
Geoff Childs,
Fajne! Jeszcze jedno, o czym myślę. Mój tata ma kredyt za ich znalezienie. smartcardworld.com
cjac
1

Podczas korzystania z kluczy RSA 1) i 2) są trywialne, ponieważ, jak zobaczymy w 3), rzeczywisty certyfikat nie ma znaczenia w tym kontekście. Po prostu przejdź do cacert.org lub wygeneruj samopodpisany certyfikat i wszystko gotowe.

W przypadku 3) musisz wyodrębnić swój klucz publiczny i zainstalować go w $ HOME / .ssh / author_keys. Zwróć uwagę na własność pliku i uprawnienia! (700 dla .ssh, 600 dla autoryzowanych_kluczy). Uwierzytelnianie kluczem publicznym na całym hoście jest odradzane, ale pozostawione jako ćwiczenie dla dociekliwych umysłów.

Jeśli chodzi o 4), powinieneś zajrzeć do PuTTY SC ( http://www.joebar.ch/puttysc/ ) lub - najlepiej - PuTTY-CAC ( http://www.risacher.org/putty-cac/ ), który poprawia PuTTY SC z lepszym algorytmem wyodrębniania klucza publicznego, a także zawiera obsługę Kerberos-GSSAPI z gałęzi programistycznej PuTTY.

kodhead
źródło
0

Zrobiłem film, aby pokazać, jak używać karty inteligentnej z serwerem Linux, używając PuttySC i SecureCRT . Możesz to obejrzeć tutaj: Jak korzystać z SSH za pomocą karty inteligentnej

Nie wyjaśniam, jak udostępnić certyfikat na karcie, ale jeśli to zrobisz, pamiętaj, że klucz administratora karty powinien zostać zmieniony za pomocą Systemu zarządzania kartami. Będzie ci o wiele łatwiej, jeśli Twoja firma dostarczy Ci kartę inteligentną, abyś nie musiał się tym martwić.

Po przygotowaniu karty należy wyodrębnić klucz publiczny, a następnie dodać go do ~ / .sshd / author__key.

Aby połączyć się z serwerem, możesz użyć narzędzi takich jak PuttySC lub SecureCRT. Będziesz musiał uzyskać bibliotekę PSKC # 11 dla karty (od producenta karty inteligentnej lub wersji open source). Skonfiguruj narzędzie SSH z biblioteką, powinno być w stanie je odczytać i znaleźć certyfikat.

Po uwierzytelnieniu narzędzie wyświetli monit o podanie numeru PIN karty inteligentnej.

Matthias Buchner
źródło