Pythonでルート証明書なしでSSL証明書を確認するにはどうすればよいですか?
ルートCAではなく、下位CAのいずれかを使用して、証明書チェーンを検証できます。これは経路構築と呼ばれ、RFC that covers the techniqueがあります。
エンドエンティティサーバー証明書を直接使用することもできます。ルートCAまたは下位CAではなく、その信頼を根絶してください。
ルートCAまたは下位CAを使用できない場合は、別のスキームに移行する必要があります。
これは直接あなたの質問に答える...あなたができることの一つはpin the host's public keyで、全体PKIやPKIX機械をあきらめることはありません。
key distribution problemも適用され、サイドステップはありません。 PKIXでは、CAのルート証明書が必要です。固定するときは、ホストの公開鍵を知る必要があります。
先験的にホストの公開鍵についてのの知識がない場合は、Trust On First Useスキームに移動できます。それはツールCertPatrolのような道具に似ています。
ピニングは、エンタープライズアプリケーションに適しています。エンタープライズでは、組織が独自の証明書を発行するため、公開鍵が手元にあるかどうかがわかります。彼らは、独自のプライベートPKIを実行することさえできます。組織は情報を先験的にと知っているので、アプリケーションには必要な証明書が組み込まれています。最初の使用については信頼する必要はありません。
重要なメモ... RFC 7469, Public Key Pinning Extension for HTTPは重大な欠陥があります。最も有害なのは、(1)攻撃者が既知の良いピンセットを壊すことができるオーバーライド、 (2)ピンセットが破損した場合、エラー報告は無効になります。 RFCは、セキュリティ上の考慮事項を列挙するのには適していません。
Peter GutmannのEngineering Securityも参照してください。彼はこれらすべてのことについて話します。
の要求 'とも 'httplib' パッケージを試してみました場合は...
残念ながら、私は残念ながら、これらのことを実行する必要があるライブラリはありません。利用可能なライブラリはありません。
出典
2017-01-29 18:07:23
jww
私は、私は非常に少しの知識を持っているにあなたが言及している多くのものがある主な理由は、今のように答えとしてあなたの答えを受け入れることができないので、私はあなたの提案を試してみることができます前に、それはいくつかの時間がかかります。しかし、私は間違いなくすべての貴重な点についてあなたの答えを投票しています。ありがとうございました:) – akash12300
@ akash12300 - 心配しないでください。あなたは深刻なセキュリティ工学の問題に直面しています。グットマンの本を読んでください。そして、あまりにも早く答えを受け入れないでください。人々が答える時間を許してください。あなたはもっと良いものが来るかもしれません。 – jww