Bonjour à tous

En fait je viens surtout pour demander des conseils car mes connaissances en cryptologie/sécurité sont presque nulle.

Je suis actuellement entrain de créer un applet Java qui va permettre de s'authentifier depuis une carte électronique sur un site web sécurisé.
Cette carte dispose d'un certificat d'authentification et peut signer/crypter des données

Du coup j'apprend comment on s'authentifie avec clé publique/privée
Ce que j'ai compris : Pour s'authentifier auprès d'un client : le serveur envoie sont certificat x509 et un message crypté par sa clé privée.
Ensuite, le client récupère la clé publique (qui est dans le certificat) et décode le message.Si le message est correcte, cela signifie que c'est bien le possesseur de la clé privée qui a envoyé le message, aussi le client verifie auprès d'une authorité de certification que le certificat est toujours valide et non révoqué.

Dans mon cas, je crois que je veux faire le contraire : authentifier la carte auprès du serveur.
Du coup, je me demandais s'il suffisait de juste :
- Coté applet : récupérer le certificat de la carte et coder un message avec la clé privée, puis envoyer le tout au serveur
- Coté seveur : vérifier validité du certififcat auprès de l'autorité qui correspond, si c'est ok vérifier que c'est bien la carte qui l'a envoyé en décodant le message, et du coup si c'est ok, fournir un accès.
Je précise que le site existe déja et est sécurisé, et que mon applet ne pourra marcher que si elle est chargée depuis celui-ci.

Sachant que je n'y connais rien en matière de sécurité et que je fais du web depuis assez peu de temps également, j'aimerais surtout savoir si j'ai bien compris le fonctionnement d'une authentification, et si mon raisonnement est valable ou si je dis conneries sur conneries avant de faire des tests dangereux !

Désolé pour ce pavé et j'espere ne pas être trop flou !