48
SHAって何?Chromeの新しい警告が時代遅れのセキュリティを非難

ウェブサイトが既知の根本的なセキュリティ問題への対策を遅らせている中、GoogleとMozillaはサーバーやインフラの欠陥についてユーザーに警告を発し、自ら問題解決に乗り出しました。最新の動きとしては、Googleが最新バージョンのChromeに警告とエラーを表示し、セッションのセキュリティ保護に使用されている時代遅れの暗号化方式を非難しています。Mozillaも1月中に追随する予定ですが、もしかしたらもっと早く追随するかもしれません。AppleとMicrosoftはどこに隠れているのでしょうか?後ほど詳しく説明します。

セキュリティはしばしば諸刃の剣です。片方の刃は古びたパン切り包丁のように鈍く、もう片方の刃は気づかないうちにあなたを真っ二つに切り裂く可能性があります。ほとんどのインターネット接続はクライアント/サーバーモデルのままで、クライアント(ブラウザ、メールソフト、写真アプリなど)が中央サーバーまたはシステムに接続し、データの取得と保存、その他のオンラインインタラクションを処理します。

その結果、クライアントとサーバーは非対称であるため、どちらの側でもエクスプロイトが発生する可能性があります。クライアントとサーバーは通常、同じコードを実行することも、全く同じタスクを実行することもありません。ハッカーは、データが流れるネットワーク上の接続をエクスプロイトするために、サーバーのコードを解読する必要はありません。クライアントソフトウェアにアクセスし、脆弱性を探って見つけるだけで済みます。そして、多くの異なるサーバーにアクセスできるクライアントソフトウェアが多数存在する場合、侵入の可能性は高まります。ただし、この異種性により、ほとんどのハッキングの影響を受ける人数は少なくなります。

ピアツーピアネットワークでは、ソフトウェアがクライアントとサーバーの役割を動的に、あるいは同時に担う傾向があるため、セキュリティ上の欠陥がすべてのユーザーに一斉に影響を及ぼす可能性があります。これは好ましくないこと(全員が危険にさらされる)ですが、同時に、問題を修正する動機も高まります。

ブラウザメーカーがユーザーを調査・警告する巧妙な点は、その非対称性と多様性をユーザーの利益のために利用している点です。ウェブサイトは古いセキュリティ対策を使っていることを決して知らせませんが、ブラウザは技術的に正確である限り、何の罰も受けずにそうすることができます。また、Googleのブラウザが「チッチッ」と音を立てているからといって、ウェブサイトがChromeユーザーを締め出すようなことはしません。

本物の証明書を立てていただけますか?

4月に安定したデスクトップリリースとしてリリースされたChrome 42には、ウェブサイトのセキュリティの弱さに関連してGoogleが昨年9月にタイムラインに予定されていると通知していたセキュリティ警告とエラーが実装されている。

黄色の三角形

2016 年に期限が切れる SHA1 署名証明書については、Google は Chrome 42 以降でユーザーに Yield サインを表示して警告します。

ユーザーが、古いデジタル証明書検証方法を使用しているサイトにアクセスし、その証明書の有効期限が2016年中の場合、Chromeは警告を表示します。警告は、位置情報/検索バーの鍵アイコンの上に黄色の「Yellow」マークとして表示されます。証明書の有効期限が2016年以降の場合、サイトは読み込まれず、鍵アイコンに赤い×マークが重ねて表示され、バーの「https://」部分に赤い取り消し線が引かれます。これは非常に印象的です。

レッド×クローム

2017 年以降に期限が切れる SHA1 署名証明書の場合、Google は接続をブロックし、Chrome 42 以降ではこのエラーを表示します。

デジタル証明書は、ウェブサーバーやその他のサーバー、ソフトウェアで、いわゆる証明機関(CA)によって認証される安全なセッションを確立するために使用されます。ウェブサーバーの証明書の検証に使用されている証明書のいずれかが古い方法に依存している場合、そのチェーンの最も弱いリンクが壊れる可能性があるため、Chrome の警告とエラーも表示されます。

これらの証明書は暗号的に「署名」されています。つまり、証明書を構成するデータはハッシュアルゴリズムに入力され、一連の複雑な演算処理を経て、ハッシュと呼ばれる一意の短い数値列が生成されます。ハッシュの考え方は、非常に類似した入力(例えば、ドメイン名の文字が1文字だけ異なる2つの証明書)から、大きく異なるハッシュが生成されるというものです。さらに、アルゴリズムに入力されたテキストを調べても、これらのハッシュを予測することはできません。

結論としては?受け取った平文またはデータが改ざんされていないことを、同じハッシュアルゴリズムに通して同じハッシュ結果を確認することで確信できます。証明機関の役割は、ハッシュに暗号的に署名することです。この署名は、オペレーティングシステムまたはブラウザで、特定のCAに既に保存されている暗号化情報と照合することで検証できます。

しかし、十分な時間があれば、すべてのアルゴリズムは総当たり攻撃やより巧妙な数学的手法によって解読可能です。MD5アルゴリズムは長年広く使用されていましたが(残念ながら、その使用は遥かに過ぎましたが) 、衝突(collision )を発生させることが可能であることが明らかになりました。衝突とは、文書を改変して信頼できるハッシュと同一のハッシュを生成することで、CAのデジタル署名も有効であると見せかけることです。これにより、MD5署名付きの代替証明書は、元の証明書の作成に使用された秘密情報にアクセスすることなく、正当なものとして受け入れられるようになります。

SHA1アルゴリズムはMD5に取って代わりましたが、これもまた、同様の悪用を可能にする計算技術の進歩の瀬戸際に長い間立たされてきました。政府機関は、場合によってはほぼ確実にそうすることが可能であり、犯罪者も同様の悪用を行う可能性があります。

2011年(そう、2011年です)、主要なブラウザメーカーと認証局(CA)はSHA1の時代は終わったと合意しました。しかし、インフラの改修と対応が必要なため、CAはSHA1で署名された証明書の発行を続けました。米国の標準規格機関であるNISTは、SHA1が許容される最終年を2014年としましたが、今や2015年です。

ほとんどの場合、完全に受け入れられる代替 SHA2 で署名された新しい証明書を生成することは簡単な作業であり、時間とわずかな計算量以外のコストはかかりません。(SHA2 には、異なるビット長のハッシュのオプションがあり、256 ビット、384 ビット、および 512 ビットが推奨されますが、長いほど優れています。)

しかし、CAは顧客をSHA2に移行させることで必ずしも利益を上げているわけではないため、対応が遅れています。一部のCAは、SHA1証明書をSHA2証明書に交換する際に、あたかも「再発行」であるかのように料金を請求しています。SHA1証明書の発行を完全に停止した場合、CAはプロセスの見直しや技術サポートの対応に費用を負担しますが、これは必要かつ不可欠であり、ほとんどの場合、一度限りの固定費用です。

これが現在の状況です。Googleはインターネットのセキュリティと整合性の弱点を徹底的に排除しようと全力を尽くしているため、積極的な姿勢を示しています。証明書の発行方法や、証明書が有効とみなされるドメインの特定を改善・監視するためにGoogleが行っている他の取り組みについては、以前にも記事を書いています。

Mozilla はコミュニティ主導のグループであり、コミュニティの見解としては、ユーザー向けの警告表示は 2016 年 1 月 1 日までは本格的に開始すべきではないというものです。その時点で、Firefox は、ウェブサーバーから認証局までの信頼チェーンに含まれる SHA1 署名の証明書が 2016 年に発行された場合、接続が信頼できないことをユーザーに通知します。1 年後には、すべての SHA1 証明書が拒否されます。Mozilla は独自の判断により、より早期にユーザー向けの警告表示を開始する可能性があります。

探検家たちはサファリに出かけたが、彼らを見つけることができない

残念なのは、Androidに次ぐ二大OSメーカーであるAppleとMicrosoftが、この点でより強力な姿勢を見せていないことです。私が何度か記事を書いた中国のCNNICレジストラによるルート証明書の不正使用事件と同様に、AppleもMicrosoftも現時点では計画について公に語っておらず、対応手順の策定やユーザーへの警告も行っていません。Microsoftが最後にこの件について投稿したのは2013年で、同社の計画は、ひそかに変更を加えない限り、Mozillaの計画に概ね沿うものになるはずです。Appleは公式には何も発表していません。

問題は、認証局が巨大企業や政府機関と結びついている場合があることです。認証局がプロセスの開示、時代遅れで欠陥のあるセキュリティの糾弾、アクセスの遮断などを行うと、グローバルに事業を展開する企業に深刻な問題を引き起こす可能性があります。

しかし、セキュリティがどれだけ破られたかが検証され、日々新たな脆弱性が発見されている時代において、沈黙を守るだけでは不十分です。AppleとMicrosoftは、GoogleとMozillaが既に実現している透明性を、より一層高めていく必要があります。