これがスマートカードの機能です。USBスティックが必要な場合は、どこにあるかわかっています。
スマートカードはセキュリティのために設計されています。彼らは改ざん耐性があるように設計されています。彼らは秘密をあきらめるのではなく、秘密を保存して自殺するように設計されています。(妥当な努力で、実装の欠陥を除いて)データを抽出したり、クローンしたりすることはできません。
スマートカードは、ソフトウェアインターフェイスをバイパスしてメモリを直接読み取ろうとしてもできないように設計されています(想定されています)。外部インターフェイスは、電源とシリアル回線のみです。その他はすべて、腐食性化学物質の層(酸だと思います)によって保護されているファラデーケージ(排出量測定に対抗するため)の中にあります。保護層に穴を開けようとすると、チップ(特にメモリ)が回復できないほど損傷している。
このチップは、一定の電力を消費するように設計されており、電力消費による情報の漏えいを防ぎます。また、操作に一定の時間がかかるように設計されています。そのため、スマートカードチップには、命令パイプラインや電力管理などのハードウェア最適化機能がなく、放熱を低減します。スマートカードチップには、実際には目的を果たさない部品が含まれていることが多く、エミッションと電力消費をより一定または困難に分析し、リバースエンジニアリングを困難にします。
スマートカードは、セキュリティに敏感ではないチップよりも多くの点で遅くなります。スマートカードには独自の電源がないため、フラッシュメモリに頻繁に書き込む必要があります。RAMにキャッシュする余裕はありません。さもなければ、敵対者は有利な(彼にとって)時間に力を切ることができます。ソフトウェアは、可能な限り最速のアルゴリズムではなく、(タイミング攻撃を回避するために)一定時間アルゴリズムを使用する必要があります。敵がカードをレーザーで照らしてメモリ内の一部のビットを反転させ、ソフトウェアを到達不能な状態にした場合に備えて、ソフトウェアは冗長性を持たせて作成する必要があります(そうです、それは実際の攻撃です)。
このようなセキュリティ対策にはコストがかかります。さらに、攻撃が改善し続けるので、チップの設計も遅れないようにする必要があります。ほとんどの種類のチップは、ムーアの法則に従ってますます強力になっていますが、スマートカードでは、エンジニアリングの改善は、新しい攻撃に対抗する必要性によってほとんど吸収されます。
4k RSAキーをサポートするカードがあります。しかし、それらは珍しいです。数年前、Java Card 3は、Java言語のほぼすべての機能をサポートするために導入されました。それができるカードは4k RSAで署名できると思います。しかし、エンジニアリングの改善がセキュリティ保護の強化によって取り上げられたため、また、多くのエンジニアリングの改善が非接触型カードに採用されたため、実際には採用されていません。
しかし、4k RSAの市場はそれほど多くありません。スマートカードがその点に達していたので、ECCは広く利用できるようになりました。はるかに小さなECCキーで4k RSAと同じセキュリティレベルを取得できます。RSAからECCへの切り替えの唯一の欠点は、インフラストラクチャ全体でのアルゴリズムのサポートですが、スマートカードなどの組み込みデバイスは最も困難な部分です。サーバーサイドが最近ECCをサポートするほとんどすべてのものです。
より強力なものが本当に必要な場合は、「実際の」コンピューティング能力を備えたUSBドングルが存在します。これは、暗号鍵を保存し、PKCS#11インターフェイスで暗号操作を実行できます。これらのドングルは、一般的なPKCS#11とほぼ同じ物理的な改ざん耐性を備えていません。これは、セキュリティとパフォーマンスの妥協点です。
参考文献: