SGC(暗号強度自動引き上げ)とは ~機能解説と現状の問題点~

SSLサーバー証明書には、SGC(暗号強度自動引き上げ)という機能を備えているものがあります。

正式名称は「Server Gated Cryptography」という名前で、日本語では「サーバーゲート暗号化」と訳すこともあるようです。ただ略称そのままに「SGC」として用いられることの方が多いです。

SGCを一言で表すと「古いブラウザの暗号強度を強制的に引き上げる」機能になります。ただし、現状ではむしろ廃される傾向にあります。

暗号強度とは

まず、そもそも暗号強度とはなにかですが、これはSSLによって通信を暗号化する際の暗号の強さを示すものです。強度は128bitのように数字とビット単位で表されます。

暗号強度にはいくつか段階がありますが、非常に簡単に言えば数字が大きいほど強い(暗号を解読されにくい)ことになります。時代の推移とともに40ビット/56ビット/128ビット/256ビットのように、少しずつインターネットで用いられる暗号強度も強くなってきました。

古いブラウザでも安全性の高い暗号化通信を可能に

ただし、いくらサーバー側に強固な暗号化機能が備わっていても、ブラウザ側がそれに対応していなければ意味がありません。

具体的に例を出せば、あるウェブサイト上で128ビットの暗号化ができるSSLサーバ証明書が設定されていたとします。しかし、そのサイトを利用するユーザーのブラウザが非常に古く、56ビットにしか対応できないものだったとします。そうすると、結局は通信は56ビットの暗号化で行うしかなくなり、十分に安全な通信ではなくなってしまいます。

※なお、現在では128ビット以下の暗号にはリスクがあることが明らかになっているため、新規に発行されるサーバ証明書は原則として256ビット以上のものになります。

SGC機能がないとブラウザ側に合わせた暗号化通信になる

※なお、現在では128ビット以下の暗号にはリスクがあることが明らかになっているため、新規に発行されるサーバ証明書は原則として256ビット以上のものになります。

そこで、古いブラウザでのアクセスがあった場合でも、128/256ビットでの暗号化通信を行えるようにする機能が生み出されました。それが「SGC」です。

SGC機能があると古いブラウザでも安全性の高い暗号化通信がないとブラウザ側に合わせた暗号化通信になる

(SSLサーバ証明書側で)ブラウザの暗号強度を引き上げるように見えることから、SGCを「暗号強度自動引き上げ」とも呼ばれているようです。

現在は「古いブラウザ自体のセキュリティホール」が問題に

このような経緯で生まれたSGCという機能でしたが、現在は大手認証局では非対応や、むしろ「利用を推奨しない」ものになりつつあります。

というのも、SGCが対象とするような古いブラウザ(具体的にはInternet Explorer4.x~5.x等)は、現在ではそもそもMicrosoftなどの公式サポートが終了しているからです。つまり、(SGCを使えば)SSLによる暗号化部分は安全になるとしても、それ以外の「ブラウザアプリケーションそのものに含まれるセキュリティホール」が無数にあるということです。

SGC機能が対象としているような古いブラウザは現状は利用そのものが非推奨

そのような「古いブラウザの利用を受け入れつづけるという考え方は、セキュリティ面で問題がある」という立場から、大手認証局ではこの機能を廃する傾向にあります。
たとえば普及率ナンバーワンと言われるグローバルサインの場合、SGCが生まれることになったより詳しい経緯や、現在の対応方針について詳しく説明も行っています。

・参考記事:SGC対応SSLサーバ証明書に潜むセキュリティの落とし穴 – グローバルサイン

まとめ ~役目を終えたSGC~

たしかにブラウザ側でのSSL対応が遅れがちだった時代においては、SGCには一定の利便性がありました。

しかし現状では各種ブラウザも256bit暗号化に対応していますし、自動アップデート機能などによって常に最新バージョンに保たれやすくなっています。もちろん世の中には自動でアップデートされないぐらいに古いブラウザも一部ありますが、そうしたアプリケーションはサポートが終了しているため、むしろ利用そのものを避けるべき状況です。

こうしたことから、SGCという機能は役目をほぼ終えています。今後SSLサーバ証明書を選ぶ際には、SGCに対応しているかどうかは考慮する必要はないと言えます。