Goプログラミング言語のセキュリティインフラは、信頼できないSubject Public Key Info (SPKI)フィンガープリントのハードコードされたリストを含むように更新されています。この変更により、Go標準ライブラリは、これらの特定のフィンガープリントを含むすべての証明書チェーンを明示的に拒否するようになります。証明書の公開鍵とその関連アルゴリズムを含む部分であるSPKIをターゲットとすることで、このアップデートは、発行元の認証局(CA)が信頼ストアに残っている場合でも、特定の鍵素材が侵害されている、あるいは信頼できないことが判明している場合に証明書をブロックするメカニズムを提供します。
信頼できないフィンガープリントの特定のリストには、eMudhra Technologies LimitedやComodo CA Limitedなどのエンティティに関連する証明書が含まれています。例えば、提供されたデータには、さまざまな「EM」(eMudhra)TLSおよびCS(コード署名)証明書のフィンガープリントや、Comodoの「AAA Certificate Services」が含まれています。これらのエントリは特定のシリアル番号および証明書のSHA-256ハッシュにマッピングされており、GoランタイムはTLSハンドシェイクまたは証明書検証プロセス中に、これらの特定の証明書インスタンスを識別して無効化することができます。
この明示的なフィンガープリント拒否への動きは、ソフトウェアが侵害されたインフラを処理する方法の変化を浮き彫りにしています。証明書発行の監視にはCertificate Transparency (CT)ログが頻繁に使用されますが、一部の実装では、偽造された証明書によるログのスパムを防ぐために、これらの特定のCAからの証明書のログ記録をブロックし始めています。しかし、これにはトレードオフが存在します。ログが圧倒されるのを防ぐ一方で、侵害された鍵から発行された偽造証明書がCTログに記録されない可能性があり、野外での検出がより困難になることを意味します。これらの拒否をGoランタイムにハードコードすることで、開発者は、広範なCA階層の状態に関わらず、これらの特定の侵害された鍵から派生した証明書に対して決定的な防御を提供することを目指しています。
