¿Cómo puedo configurar la autenticación SSH con tarjeta inteligente?

9

Me gustaría poder SSH a mi máquina usando una tarjeta inteligente Gemalto .NET como método de autenticación. ¿Cómo podría hacerse esto en una máquina Fedora 13 (o estilo genérico Red Hat)?

Estos son los pasos aproximados que creo que son necesarios:

  1. Certificado de provisión para la tarjeta inteligente (¿y posiblemente una CA para emitirla?)
  2. Obtenga el certificado en la tarjeta inteligente
  3. Configure el servidor SSH para permitir la autenticación con tarjeta inteligente y configúrelo para usar un certificado / CA particular
  4. Un cliente SSH que tiene soporte para tarjetas inteligentes (puntos extra por uno gratuito basado en Windows)
Geoff Childs
fuente

Respuestas:

2

Los controladores de Gemalto ahora son de código abierto, creo. Tienen el código fuente en su sitio web.

Tendrá que configurar el pammódulo (no estoy seguro de cómo hacerlo, pero el código ciertamente está allí). Me imagino que la pamconfiguración requeriría una asignación de un principio de certificado a una identificación de usuario local.

GDM creo que ahora admite tarjetas inteligentes, pero no estoy seguro de cómo lo detecta. Intentaré buscar esto más tarde (la forma más fácil es echar un vistazo al gdmcódigo fuente).

Por supuesto, todo esto requiere pcscdy libpcsclitepara ser instalado. También deberá copiar el libgtop11dotnet.sopara /usr/lib.

vwduder
fuente
¡Gracias! Eso me llevó por el buen camino. También hay información realmente útil aquí si alguien está mirando una configuración basada en RedHat: centos.org/docs/5/html/Deployment_Guide-en-US/sso-ov.html
Geoff Childs
¿Dónde encuentra el archivo libgtop11dotnet.so?
user568021
2

Yo recomendaría kerberos. MIT produce un cliente y servidor krb5.

vwduder, ¿podría recomendar un lector de tarjetas inteligentes y una fuente de tarjetas compatibles con FIPS-201?

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

Tengo una copia en mi propio servidor, pero no soy lo suficientemente popular en este stacktrace en este momento como para compartirla con ustedes. Lo anterior es solo un poco menos confiable que nuestros propios servidores, por lo que probablemente podrá obtenerlo de ellos;)

[editar] ¡Ahora soy lo suficientemente popular!

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

cjac
fuente
@vwduder intentó responder, pero aún no forma parte de la beta cerrada
cjac
Gracias cjac! Combinado con la contribución de vwduder, creo que este lamió.
Geoff Childs
¡Frio! Una más mientras lo pienso. Mi padre recibe crédito por encontrarlos. smartcardworld.com
cjac
1

Cuando se usan claves RSA, 1) y 2) son triviales, porque como veremos en 3) el certificado real es irrelevante en este contexto. Simplemente diríjase a cacert.org o genere un certificado autofirmado y ya está todo listo.

Para 3) deberá extraer su clave pública e instalarla en $ HOME / .ssh / Authorized_keys. ¡Presta atención a la propiedad y los permisos del archivo! (700 para .ssh, 600 para claves autorizadas). Se desaconseja la autenticación de clave pública en todo el host, pero se deja como un ejercicio para las mentes curiosas.

En cuanto a 4) debe buscar en PuTTY SC ( http://www.joebar.ch/puttysc/ ) o -preferentemente- PuTTY-CAC ( http://www.risacher.org/putty-cac/ ) que mejora PuTTY SC con un mejor algoritmo de extracción de clave pública y también incluye el soporte Kerberos-GSSAPI de la rama de desarrollo de PuTTY.

cabeza de código
fuente
0

Hice un video para mostrar el uso de una tarjeta inteligente con un servidor Linux usando PuttySC y SecureCRT . Puedes verlo aquí: Cómo SSH con tu tarjeta inteligente

No explico cómo aprovisionar un certificado en la tarjeta, pero si lo hace, recuerde que la clave de administrador de la tarjeta debe cambiarse utilizando un Sistema de administración de tarjetas. Será mucho más fácil para usted si su empresa le proporciona una tarjeta inteligente para que no tenga que preocuparse por esta parte.

Una vez que haya aprovisionado la tarjeta, debe extraer la clave pública y luego agregarla a ~ / .sshd / optional_key.

Para conectarse al servidor, puede usar herramientas como PuttySC o SecureCRT. Deberá obtener la biblioteca PSKC # 11 para la tarjeta (ya sea del fabricante de la tarjeta inteligente o de una versión de código abierto). Configure la herramienta SSH con la biblioteca, debería poder leerla y encontrar el certificado.

Cuando se autentica, la herramienta le pedirá el PIN de la tarjeta inteligente.

Matthias Buchner
fuente