SmartCard en Hyper-V y Microsoft Azure

Hace poco me ví en la necesidad de utilizar smartcard dentro de una máquina virtual de Hyper-V para llevar a cabo la autenticación en un servicio de VPN. Como la mayoría sabréis, Hyper-V no tiene de-facto soporte para dispositivos USB, que es la interfaz a través de la cual se conectan la mayoría de estos dispositivos. Sin embargo, existe una alternativa obvia en caso de que nuestra máquina virtual use Windows: utilizar la redirección de Smart Card integrada en el cliente de Remote Desktop. Esto que comento es igualmente válido para las máquinas virtuales de Microsoft Azure.

¡Dicho y hecho! Inserto la Smart Card en la ranura, arranco el cliente y lo configuro adecuadamente:

sc_1

Sin embargo, tras iniciar la conexión en la máquina virtual, podemos ver que nuestra smartcard no es reconocida y por tanto no la podemos utilizar:

sc_2

Después de un par de horas investigando qué podía estar pasando, di con este post de Benjamin Armstrong, el viejo Virtual PC Guy; que fue realmente revelador. La razón por la que esto ocurre es que el soporte de smartcard de Remote Desktop realiza una redirección de la misma a nivel de controlador de dispositivo, no de dispositivo físico conectado por USB, por lo que esta no se detecta como tal en la sesión de escritorio remoto y no se instalan sus controladores adecuadamente. La sólución a este problema pasa por volver a la época donde no existía el Plug and Play e instalar el controlador adecuado manualmente.

En mi caso, la smartcard era compatible con el driver .NET de Gemalto (un alto porcentaje de smarcards funcionan con este driver), en cuyo caso hay que dirigirse a http://test.catalog.update.microsoft.com/v7/site/home.aspx y descargar el controlador manualmente.

sc_3

Una vez encontrada y seleccionada la versión de nuestro sistema operativo, deberemos desempaquetar el CAB descargado, acción que podemos llevar a cabo desde el mismo explorador de Windows:

sc_4

Y veremos los archivos del controlador de la smartcard, con lo que hacemos clic en el botón derecho del archivo INF y seleccionamos Instalar:

sc_5

Tras lo cual ya veremos nuestra smarcard correctamente reconocida:

sc_6

sc_7

¡Y con esto finalmente tenemos nuestra smartcard lista para usar en la máquina virtual! Espero que esto os ahorre horas de investigación y diagnóstico.

Happy smartcarding!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *