私は証明書のピン留めの実装に直面しており、Android内にトラストストアがある場合、iOSにそのような概念がない理由をよく尋ねられます。そのため、標準のHPKPを作成し、2つの公開鍵を固定する必要があります。
私は投稿 証明書のピン留めとは何ですか? を読み、証明書のピン留めとTrustStoreのコンセプトの主な違いは何ですか?公開鍵のsha256の代わりに完全な証明書を検証することを除いて、彼らは同じことをしますか?
証明書のピン留めとトラストストアは同じ概念ではありません。違いは、証明書を信頼することと、証明書で使用されている公開鍵を信頼することではありません。証明書をピン留めすることもできます。
Androidのトラストストアには、Android開発者またはユーザーが信頼する一連の認証局が含まれています(ルート証明書を手動で追加できます)。トラストストアを使用して証明書を検証すると、証明書は信頼されたルートによって作成されたものであり、証明書は特定のホスト向けのものであったため、このアプローチでは ルートCAが秘密鍵を失う のような状況に対して脆弱になります。
OWASPで述べたように 、証明書のピン留めは、このような問題を回避するための良い方法です。その記事から、違いを理解するのに役立つと思われる段落を借ります。
いつピン留めしますか?
リモートホストのIDを比較的確実にしたい場合、または敵対的な環境で動作している場合は、ピン留めする必要があります。ほとんどの場合、どちらか一方または両方が真であるため、常にピン留めする必要があります。適切な事例としては、プレゼンテーションとチートシートの準備の2週間ほどの間に、3つの関連する関連する障害が観察されました。最初は Nokia/Operaが意図的に安全なチャネルを壊しました ; 2番目は DigiCertがマルウェアのコード署名証明書を発行 ; 3番目は Bit9のルート署名キーの喪失 でした。環境は敵対的であるだけでなく、有毒です。