スマートカードには抽出できない秘密キーが格納されていることを考えると、SIMカードはこれらの点でスマートカードに似ているように見えます。
電話に秘密キーを保存(または既存のキーを使用)し、それを使用してWebサービスから送信されたデータを復号化する必要があります。また、秘密鍵ストアに次のプロパティを設定します
簡単に複製できない(難易度は主観的)
プログラマーは秘密鍵を使用できます(Objective C、Java、Javascriptなど)。
秘密鍵は抽出できず、ハードウェア手段によって保護されています
そのような設備は、どのメーカーのどの電話でも利用できますか?
SIMカードはスマートカードです。これは、スマートカードに関連するすべての標準に従っており、スマートカードベンダーによって作成されています。
スマートカードは、改ざん防止用のコンピュータにすぎません。独自のCPU、RAM、ROM、ストレージエリア(多くの場合、EEPROM)を備えています。電源と時計は外部から供給されます。このデバイスは、内部に保存されたデータの物理的な抽出に耐性があると想定されています。外部カバーの違反、範囲外の条件での操作(温度が低すぎるか高すぎる、時計)を検出する多くのセンサーが装備されています予想される周波数から逸脱するレート...)、そして最終的には、高度な リバースエンジニアリング が試行された場合に自己破壊するはずです。
もちろん、これはすべてお金の問題です。電子顕微鏡とレーザーによる直接検査には数千ドルの費用がかかると言われています。過去数年間、それは衛星有料テレビハッカーの間でかなりの産業でした(特に、衛星からの信号を受信したが、商業インフラの不足のために合法的に加入することができなかった国では-北アフリカでは、ヨーロッパのテレビ)。また、スマートカードから秘密鍵を抽出するための調査方法 学者と業界の両方で真剣に研究されています 。最後に、スマートカードはそれ自体が小さなコンピュータであり、softwareを使用するため、bugs、その一部は悪用可能です。
私は最近 その種の製品 で作業しました。これは、「SIM形式」に収まるスマートカードでありながら、何十ものRSAキーを格納して使用できます。キーはボード上で生成され、多くの用途でパフォーマンスは非常に許容範囲です(2048ビットのRSAシグネチャでは1秒未満)。カードはFIPS 140-2レベル3およびEAL 5+に準拠することが認定されています。どちらもかなり印象的です(カードが壊れないことを保証するものではありませんが、ベンダーは、その目標に向けてかなりの労力とお金を投資していませんでした)。
上記で私が説明しているのは、秘密鍵に対する耐性を備えた、暗号化のために非対称鍵を格納して使用するSIMのようなカードを持っていることは技術的に可能であることです無視できない抽出。
もちろん、問題は、既存の展開済みのSIMカードが必ずしもそれを実行できるわけではないことです。 SIMカードのコア機能は、symmetricキーを格納し、それを電話プロバイダーネットワークでの認証プロトコルに使用することです。これはGSMの世界では A3/A8 と呼ばれます。これは対称暗号化のみです。これは計算がはるかに簡単で、基本的な8ビットCPUで実行でき、アクセラレータ回路は必要ありません。このようなカードは、RSA対応のスマートカードよりもかなり安価であり、電話会社は常にコストをできるだけ低くしようとすることが知られています(個々のカードの製造コストは、RSA対応のカードの場合、約5ドルです)。 、対称暗号化のみを行うカードでは1 $未満)。
一部の企業は シグネチャの計算 が可能なSIMカードを展開していますが、ほとんどの既存のSIMカードから(まだ)期待できません。テクノロジーはそこにあります、商業的インセンティブが必要です。
さらに複雑なのは、Androidアプリからのアクセスが許可されるかどうかです。電話内では、SIMカードは通信課金の法的根拠として使用されるため、完全に隔離されています。マルウェアアプリからハイジャックされると、顧客が自分の電話がハッキングされたと主張し、請求書の支払いを拒否するのが簡単になります。
「秘密鍵で暗号化」しないでください。秘密鍵を使用すると、あなたdecryptまたはあなたsignになります。あなたのユースケースは認証の場合だと思います。サーバーから、特定のユーザーが回線の反対側にいることを確認したいとします。