CAC de carte à puce de Réauthentification
Nous avons un navigateur application en fonction de l'endroit où nous voulons permettre à l'utilisateur de réauthentification quand ils y entrent. Donc, lors de l'accès à l'URL que nous voulons être présenté avec la BROCHE à l'invite de sorte qu'ils ont de s'authentifier à nouveau. Est-il un moyen raisonnable de le faire?
Ajout d'infos: C'est pour un CAC carte et les stations de travail ont ActivIdentity et de Tumbleweed. Aussi, je pourrais ajouter un service pour les postes de travail si nécessaire. Les navigateurs sont tous IE7. Le serveur web IIS 6 et les pages sont écrites en ASP.NET (pour la plupart).
Merci de partager la façon dont cette question a obtenu résolu. 🙂
J'ai repoussé sur l'obligation d'expliquer au client que l'expiration du code confidentiel sur le CAC carte est complètement indépendant du navigateur. À partir d'un point de vue sécurité, il n'est pas une bonne idée d'essayer d'interférer avec le fonctionnement normal. La sécurité de leur personne convenu qu'il n'était pas nécessaire de demander au client de saisir à nouveau le code pin à chaque fois; une meilleure approche est de ne ressaisir si elle a expiré.
J'ai repoussé sur l'obligation d'expliquer au client que l'expiration du code confidentiel sur le CAC carte est complètement indépendant du navigateur. À partir d'un point de vue sécurité, il n'est pas une bonne idée d'essayer d'interférer avec le fonctionnement normal. La sécurité de leur personne convenu qu'il n'était pas nécessaire de demander au client de saisir à nouveau le code pin à chaque fois; une meilleure approche est de ne ressaisir si elle a expiré.
OriginalL'auteur adg | 2009-11-25
Vous devez vous connecter pour publier un commentaire.
Il y a quelques morceaux différents de logiciel en cause ici.
Premier est la carte elle-même. Pour effectuer une signature numérique, le CAC a à être dans un "vérifié" état, ce qui signifie un code PIN a été saisi après que la carte a été insérée. Au-delà, chaque touche sur la carte a un drapeau qui indique si le code PIN doit être entré à chaque fois que la touche est utilisée. Je n'ai pas vérifié, mais je pense que cela est défini pour le "e-mail" paire de clés sur un CAC. Donc, vous auriez besoin de trouver les clés qui ont ce "toujours vérifier" drapeau de définir et de configurer le chemin d'accès du programme de validation sur le service à accepter uniquement les clés. Vous pourriez être en mesure d'exiger d'un particulier OID dans l'étendue de l'utilisation de clé, ou d'en exclure certains le département de la défense des certificats intermédiaires de chemin de bâtiment (repérage comme révoquée, peut-être).
Le middleware sur la machine de parler à la carte pourrait également mettre en cache le code PIN, et de les fournir à la carte à chaque fois que la carte indique qu'il nécessite un code PIN avant de avant de terminer l'opération. Je pense que ActivClient était en train de faire cela avec sa BROCHE fonction de mise en cache jusqu'à la version 6, mais dans la version 7, cette option semble avoir disparu. Je n'ai pas trouvé quelque chose comme cela, dans Windows intégré PIV soutien. Cette "fonctionnalité" pourrait compromettre la sécurité, donc je pense qu'il a été délibérément supprimée et il n'y aurait pas de hacks de registre ou autre pour restaurer le comportement. C'est quelque chose que vous n'ont pas le contrôle, à moins que vous gérez les utilisateurs de machines; il n'y a pas d'en-tête HTTP ou TLS option que vous pouvez utiliser pour appliquer la saisie du code PIN. Mais, avec les nouveaux systèmes, il ne devrait pas être un problème.
Sur le côté serveur, une poignée de main doit se produire afin de rendre le client d'effectuer l'authentification. L'authentification du Client ne se produira pas si il y a un valide session TLS. Donc, vous auriez besoin de trouver un moyen d'invalider la session TLS (pas la session de l'application, ce qui est probablement lié à un cookie HTTP) avant de demander l'authentification, direct ou la demande d'authentification à l'autre de l'interface qui n'a pas de séances de permis.
C'est le droit. Si vous administrer les postes de travail, vous pourriez être en mesure de configurer l'ensemble de la carte de lecteur logiciel pour demander code PIN plus souvent. Par exemple, j'ai utilisé ActivClient que le lecteur de carte logiciel. C'est ce qui s'est réellement affiche la boîte de dialogue pour demander le code PIN, et il y a un paramètre permettant de contrôler la fréquence à laquelle un utilisateur a besoin de re-saisir.
Je me sens chanceux d'avoir trouvé quelqu'un avec Option d'Expérience. Votre réponse m'a incité à regarder la BROCHE de mise en Cache de Service, dont je n'avais pas vu avant. Je peux voir 12 propriétés et l'un d'eux est appelé "Activer le code PIN de la mise en Cache". Je vais essayer de tourner ça de côté.
PIN Service de mise en Cache est une propriété de la ActivClient configuration manager.
Pour pas gâcher, avec des termes - c'est le "logiciel de la carte" pas "lecteur de carte logiciel" En modifiant le code PIN paramètres de mise en cache, vous ne pouvez pas battre la façon SSL fonctionne dans le navigateur. Si vous avez besoin d'authentification personnalisé flux, peut-être regarder OpenID et trustbearer.com openid service. Si je me souviens bien, ils mettent en œuvre un plugin d'authentification basée sur où il y a un plugin personnalisé qui parle à la carte. Probablement que déclenche un dialogue code PIN (car il utilise implicitement le signe de l'opération? ne connais pas les détails..) pour chaque transaction.
OriginalL'auteur erickson
Il y a deux manières de faire de la carte à puce d'authentification du client sur le web: standard TLS/SSL personnalisés ou des plugins pour le navigateur. Je suppose que vous parlez de navigateurs web standard (IE/FF/Safari) et l'authentification SSL.
Il y a deux choses qui comptent pour PIN invites:
le navigateur
En fin de compte, du point de vue sécurité, c'est la carte qui sait quand "demander” une PIN - quelques cartes et clés exiger un code PIN pour chaque opération, la clé, certaines cartes sont OK pour obtenir un code PIN une fois et laisser les clés dans l'état authentifié jusqu'à ce qu'il est retiré du lecteur ou de la réinitialisation par une application.
Si la session dans le cache du navigateur ne peut pas être ré-utilisé ou lorsque la connexion est établie, la carte à puce middleware (PKCS#11 sur Linux, CryptoAPI/BaseCSP module sur Windows ou Tokend sur OSX) doit discuter avec les touches sur la carte. Si l'authentification de l'état sur la carte nécessite un code PIN, un rappel est généralement déclenchée par le navigateur. Ou si le middleware sait qu'il aura besoin du code PIN, il vous demande avant de parler à la carte.
Il n'y a pas de 1:1 rapport entre la saisie d'un code PIN et de se ré-authentifier les droits d'accès à la clé privée et la ré-authentification de la session SSL.
Avec SSL standard, vous dépendent de la manière dont le protocole SSL est mis en œuvre dans les navigateurs et ne peut pas avoir 100% fiable "ré-authentifier à l'entrée du code PIN" sur le côté client.
Si vous utilisez Linux, puis avec OpenSC (qui, autant que je sache pouvez utiliser des cartes CAC), vous pouvez régler "transaction_reset" dans opensc.conf pour de vrai, qui résultats dans la carte en cours de réinitialisation après chaque opération (chaque session SSL négociation), et de cette façon vous pouvez être sûr que chaque fois que vous ouvrez une nouvelle session SSL, l'utilisateur doit entrer le code PIN de nouveau. C'est un client de configuration côté, pas un initiées par le serveur de la fonctionnalité.
Aussi, je reçois de votre commentaire que mon défi est de faire en quelque sorte convaincre la carte qu'il doit demander un nouveau le code PIN. Je n'ai pas compris comment le middleware fonctionne encore, mais serait-il raisonnable de dire que lorsque l'utilisateur accède à une URL, j'ai pu mettre quelque chose dans la page web qui serait la cause de la CAC de décider qu'il doit demander un code PIN? Peut-être que je pourrais tuer la session SSL? (Désolé si c'est idée stupide, je suis un peu confus).
Quand j'claire de l'état SSL (en utilisant IE7-Outils-Options Internet-Contenu-Claire SSL État, il me demande le cert, mais pas le code PIN. Si je choisis le bon cert il fonctionne, si je choisis la mauvaise cert, il échoue. Alors, pourquoi serait-il me demander pour le cert à nouveau, si elle ne va pas demander le code PIN? Je ne comprends pas!
Compensation navigateur SSL cache supprime la session. Alors, probablement, le middleware ne pas mettre en œuvre tout spécial PIN astuces et fonctionne exactement de la manière que j'ai décrite - une fois que la carte est dans l'état authentifié, la clé peut être utilisée tant que l'application n'est pas redémarré ou de la carte retirée. Il demande le certificat de savoir qui de la clé privée que vous souhaitez utiliser et si vous choisissez la carte à puce, il peut l'utiliser pour établir une nouvelle session, car la clé sur la carte est déjà dans le authenitcated état.
Ah, je vois. Il est demandé pour la cert parce que vous pourriez être en train de faire des choses différentes avec différentes touches en même temps. Je ne l'aurais cru! Vous pourriez avoir vu mon autre question, où j'ai découvert que la sortie d'IE7 entraînera toujours une BROCHE invite la prochaine fois que IE7 commence. Le me porte à croire que IE7 fait quelque chose sur la sortie que "réinitialise" la carte de l'état. Si je pouvais comprendre ce que c'est je serait un pas de plus vers ce dont j'ai besoin (je pense).
OriginalL'auteur Martin Paljak
Vous pouvez utiliser la fonction javascript pour rendre le navigateur oublier le SSL existant cache sur quelques navigateurs:
Vous pouvez utiliser Javascript setTimeout méthode de l'appel ci-dessus fonction de déconnexion et, éventuellement, de les rediriger vers la déconnexion.page aspx pour forcer le client à entrer le nouveau code PIN.
Mais il utilise le JavaScript et le code est un navigateur dépendante et ne fonctionne pas pour tous les navigateurs.
OriginalL'auteur ISuckAtCoding