Il suffit d'utiliser un protocole de type ssl avec tous les calculs côté client effectués par la carte. Tu ne peux pas berner la carte dans ce cas car celle-ci a authentifié le serveur à l'aide de son certificat (signé par une autorité de certification reconnue par la carte) et a pu vérifier lors des échanges que le serveur possède la clé privée associée au certificat.
En fait via le protocole ssl la carte et le serveur peuvent s'authentifier mutuellement et se mettre d'accord sur une clé de session pour chiffrer et vérifier l'intégrité des données. Même si tu as une application espion sur le PC tu ne pourra pas forger des message reconnu par la carte car l'écoute des échanges ne te permet pas de découvrir la clé de session utilisée.
Impossible dans ce cas de faire signer n'importe quoi à la carte.
Evidemment tu n'as pas besoin de carte pour faire cela mais la carte (ou dongle) te permet d'emporter tes clés sur toi et elles sont beaucoup plus difficiles à découvrir que des clés stockée dans un fichier d'ordinateur. De plus les calculs sont fait par la carte et pas par le PC. Au final, pas besoin d'un ordi de confiance.
Bon le seul problème c'est que c'est de la crypto asymétrique, ce qui très bien sauf que les calculs sont lourds et imposent un crypto processeur dans la puce, ce qui en augmente un peu le coût. Mais le plus embêtant c'est dans le cadre d'une utilisation en sans contact (genre ISO 14443). En effet dans ce cas la puce est alimentée par le champs électromagnétique du lecteur. Une puce capable de faire du RSA suffisamment rapidement consomme trop, si bien que le lecteur ne peut fournir suffisamment d'énergie. C'est pour cela qu'il y a très peu de crypto à clé publique en sans contact. Ceci dit certains schémas sont moins gourmands que RSA...
Et puis si on utilise un téléphone mobile, celui-ci est alimenté par sa batterie, auquel cas il n'y a plus de problème...
[^] # Re: Lecteurs de cartes
Posté par ndesmoul . En réponse au journal Comment les banques font croire à la sécurité. Évalué à 1.
Il suffit d'utiliser un protocole de type ssl avec tous les calculs côté client effectués par la carte. Tu ne peux pas berner la carte dans ce cas car celle-ci a authentifié le serveur à l'aide de son certificat (signé par une autorité de certification reconnue par la carte) et a pu vérifier lors des échanges que le serveur possède la clé privée associée au certificat.
En fait via le protocole ssl la carte et le serveur peuvent s'authentifier mutuellement et se mettre d'accord sur une clé de session pour chiffrer et vérifier l'intégrité des données. Même si tu as une application espion sur le PC tu ne pourra pas forger des message reconnu par la carte car l'écoute des échanges ne te permet pas de découvrir la clé de session utilisée.
Impossible dans ce cas de faire signer n'importe quoi à la carte.
Evidemment tu n'as pas besoin de carte pour faire cela mais la carte (ou dongle) te permet d'emporter tes clés sur toi et elles sont beaucoup plus difficiles à découvrir que des clés stockée dans un fichier d'ordinateur. De plus les calculs sont fait par la carte et pas par le PC. Au final, pas besoin d'un ordi de confiance.
Bon le seul problème c'est que c'est de la crypto asymétrique, ce qui très bien sauf que les calculs sont lourds et imposent un crypto processeur dans la puce, ce qui en augmente un peu le coût. Mais le plus embêtant c'est dans le cadre d'une utilisation en sans contact (genre ISO 14443). En effet dans ce cas la puce est alimentée par le champs électromagnétique du lecteur. Une puce capable de faire du RSA suffisamment rapidement consomme trop, si bien que le lecteur ne peut fournir suffisamment d'énergie. C'est pour cela qu'il y a très peu de crypto à clé publique en sans contact. Ceci dit certains schémas sont moins gourmands que RSA...
Et puis si on utilise un téléphone mobile, celui-ci est alimenté par sa batterie, auquel cas il n'y a plus de problème...