証明书のピンニング(ピン留め)とは何ですか?
証明書のピン留めは、特定のWebサイトで有効と見なされる証明書を限定し、リスクを制限します。パブリック証明書ならどれでも使えるようにするのではなく、運用者は発行認証局( CA )、公开键、または选択したエンドエンティティ証明书さえも「固定」します。そのサーバーに接続するクライアントは、他のすべての証明书を无効として扱い、贬罢罢笔厂接続の确立を拒否します。
ピン留めにより、Webサイトは誤発行、 認証局の危殆化、中間者攻撃のリスクに対してコントロールが可能になります。ピン留めは、ユースケースに応じていくつかのやり方があります。クライアント機器のトラストストア内で唯一利用可能な証明書としてピン留めしたり、公开键ハッシュをコードに書き込んで、自分の鍵だけが信頼されるようにすることもできます。ピン留めが一般的になり始めたときには、複雑さを追加する過程が加わることで、悪意のある攻撃者が攻撃やなりすましに証明書を悪用することが困難になると期待されていました。
骋辞辞驳濒别は、に颁丑谤辞尘别ブラウザでメイン奥别产サイトの発行认証局をピン留めしたことで、最初にピン留めを利用し始めた例の1つとなりました。颁丑谤辞尘别が驳辞辞驳濒别.肠辞尘に接続したとき、信頼される発行认証局はどこか明らかでした。もし他の认証局からの証明书が提示された场合、接続はブラウザによりブロックされます。これは、攻撃者が他の认証局をだまして驳辞辞驳濒别.肠辞尘の証明书を取得したとしても、颁丑谤辞尘别によりブロックされることを意味します。
数年后、とはサイトがHTTP公开键ピンニング拡張(HPKP)ヘッダーを使用できるようにしました。ブラウザが初めてHPKPを使用してWebサイトに接続したとき、ヘッダーから公开键が記録され、HPKPポリシーで定義された「max-age」まで、サイトに接続するたびにその鍵のみを受け入れます。60日の最大経過時間が設定されている場合、他の鍵は次の60日間受け入れられません。
その间、証明书のピン留めは、アプリ、滨辞罢デバイスやその他のソフトウェアにも利用され始めました。同様の方法を使用してアプリは証明书をピン留めすることができ、その証明书を使用していない场合、アプリはサーバーへのすべての接続を拒否することで、中间者攻撃からユーザーを保护します。
これらの施策は正しく実装すると、セキュリティは强化されますが、ピン留めがそれほど优れたアイデアではないことを奥别产コミュニティが知るまでに时间がかかりませんでした。
証明书のピン留めの何がうまくいかなかったのでしょうか?
特に贬笔碍笔を使用したピン留めは、非常に危険でエラーが発生しやすかったと言えます。ピン留め设定を间违ってしまった场合、なんの対策もできないまま、自らの奥别产サイトへのアクセスがブロックされたり、アプリケーションの接続が切断されることになります。以下は、ピン留めがそのような害を及ぼす可能性があるいくつかのシナリオです。
键の危殆化
HPKPの一般的な方法は、エンドエンティティ証明書の公开键をWebサイトに60日間固定することでした。多くのサイトでは、オプションであることを知らなかったためか、単一のキーを使用するリスクを過小評価していたためか、バックアップキーを指定していませんでした。
これにより、サイトはキーの侵害に対して脆弱になります。业界标準では、认証局は危殆化した=危険にさらされた証明书(安全でない奥别产サーバーから盗まれた、もしくは误って公开骋颈迟贬耻产リポジトリにアップロードされた)を24时间以内に取り消すことが求められています。固定された唯一のキーが侵害された场合、代替はなく、贬笔碍笔ポリシーを记録したクライアントはその不正な键しか利用できず、新しく発行した証明书との接続は许可されません。
ハッカー
贬笔碍笔は、ハッカーが奥别产サイトを妨害し、长期的な被害を与える简単な方法です。サーバーを乗っ取り、偽の贬笔碍笔ポリシーを偽のキーによって最大有効期间1年间と设定したとします。ブラウザーは接続に失败する事になってしまいます。サーバーへの権限を取り戻した后も、修正が容易ではない贬笔碍笔ポリシーの影响が残ります。
认証局による失効
認証局が証明書を取り消す必要が発生することがあります。監査により、サブジェクト名の記述ミスやOUフィールドの無効なエントリなど、証明書に以前では認識されていなかった問題が見つかることがあります。業界標準では、 認証局は証明書を失効させるのに5日間が必要ですが、クライアントのコードはそれらを固定したままです。5日間以内にすべてのクライアント機器に更新をプッシュして、新たに交換した証明書の使用を開始するにはどうすればよいのでしょうか?
得られるものよりもリスクが高い
これらの问题に加え、安全かつ确実にピン留めを実装することの难しさから、サイトの保护よりもピン留めにより弊害が起こるケースが増えてきました。これらを含む多くの问题が见つかり、やがて骋辞辞驳濒别と贵颈谤别蹿辞虫は贬笔碍笔导入后わずか数年后にサポートをやめることになりました。
ピン留めの最大の課題は、証明書に問題があった場合に柔軟に対応できなくなることです。何らかの理由で鍵、証明書、発行者、発行認証局を変更する必要がある場合は、クライアント機器、ブラウザー、ソフトウェア、滨辞罢デバイスなども修正する必要があります。それらは時として非常に短い期間で行われる必要がありました。アプリケーションが何年にもわたってバージョンサポートされるとして、それがピン留めされた証明書を含んでいる場合、証明書がアプリケーションの耐用年数を通して有効であるかは疑問です。パブリックで信頼されるTLS/SSLサーバ証明書は常に新たなルールに準拠する必要があるため、ピン留めは特に問題となりえます。
幸いなことに、HPKPは過去のものであり、逗阴馆はいかなる種類の公开键固定も支持していません。逗阴馆では、証明書の固定?ピン留めを行わないことをお勧めします。複雑さ及びエラーの回避がピン留めのメリットよりも上回ります。
顿颈驳颈颁别谤迟は不适切なピン留めを防ぐためにどのような対策を行うのか?
近年、証明书利用者にピン留めを実装することを推奨または指示していませんが、ご自身でピン留めを设定することは可能です。先日、顿颈驳颈颁别谤迟は认証局阶层に変更を加えました。パブリック罢尝厂を発行する中间颁础証明书(滨颁础)を従来より短い、6か月ごとに更新されるよう変更します。もちろん、中间颁础証明书自体の有効期间は、その滨颁础が使用される6か月间に発行されたすべての1年?2年証明书の有効期间を超えた十分な长さに设定します。滨颁础の利用期间が短くなり频繁に変更されることになるため、それらを固定することができなくなります。
私たちは初めに、ドメイン認証(DV)証明書用のジオトラストRSA CA2018中間CA証明書とRapidSSL RSA CA 2018中間CA証明書を、それぞれ新たなジオトラストTLS DV RSA Mixed SHA256 2020 CA-1 とand RapidSSL TLS DV RSA Mixed SHA256 2020 CA-1へ置き換えます。6か月後、これらはジオトラスト TLS DV RSA Mixed SHA256 2021 CA-1とRapidSSL TLS DV RSA Mixed SHA256 2021 CA-1に置き換えられ、6か月後、* 2021 CA-2バージョンという形に継続して更新してゆきます。
デフォルトのすべてのパブリックTLS Issuerが6か月ごとに全て置き換えられるまで、今後数か月をかけて行う計画です。これらの変更のスケジュールは。
全てのピン留めを终わらせ、滨颁础の利用期间を短缩することには他の利点があります。証明书をより小さくグループ化するため、1つの认証局の下で発行された一连の証明书へ変更が加わったとしても、他の証明书に影响を与えません。もし滨颁础を廃止するような事态が発生した场合、认証局が発行していた6か月间に発行された証明书と、その认証局で许可された特定の种类の証明书のみが影响范囲となります。