広告を閉じる

数日前、Apple は 100 番目の製品をリリースしました。 iOS7.0.6アップデートのリリースについてお知らせいたしました。多くの人は、このアップデートが古い iOS 6 (バージョン 6.1.6) と Apple TV (バージョン 6.0.2) 用にもリリースされたことに驚いたかもしれません。これはセキュリティパッチであるため、Apple には一部のデバイスのみを更新する余裕はありませんでした。さらに、この問題は OS X にも影響します。Apple の広報担当者 Trudy Muller 氏によると、OS X のアップデートはできるだけ早くリリースされる予定です。

このアップデートに関してこれほど大騒ぎになっているのはなぜですか?システムのコードに欠陥があるため、ISO/OSI 参照モデルのリレーショナル層で安全な送信時にサーバー検証がバイパスされる可能性があります。具体的には、サーバー証明書の検証が行われる部分の SSL 実装が不適切であることが原因です。さらなる説明に入る前に、基本的な概念について説明したいと思います。

SSL (Secure Socket Layer) は、安全な通信に使用されるプロトコルです。通信相手の暗号化と認証によりセキュリティを実現します。認証は、提示された身元を確認することです。たとえば、実生活では、自分の名前 (アイデンティティ) を言い、ID を提示して、相手がそれを確認 (認証) できるようにします。次に、認証は照合に分けられます。これは国民 ID カードまたは身分証明書を使用した例にすぎませんが、本人が事前に提示しなくても本人確認ができる場合です。

ここで、サーバー証明書について簡単に説明します。実生活では、証明書は ID カードなどになります。すべては非対称暗号化に基づいており、各サブジェクトは秘密鍵と公開鍵という 2 つの鍵を所有します。最大の利点は、メッセージを公開キーで暗号化し、秘密キーで復号できるという事実にあります。これは、秘密キーの所有者だけがメッセージを復号化できることを意味します。同時に、通信する双方の当事者に秘密キーを転送することを心配する必要はありません。証明書は、サブジェクトの公開キーにその情報が追加され、認証局によって署名されたものになります。たとえば、チェコ共和国では、認証機関の 1 つが Česká Pošta です。証明書のおかげで、iPhone は指定されたサーバーと実際に通信していることを確認できます。

SSL は接続を確立するときに非対称暗号化を使用します。 SSLハンドシェイク。この段階で、iPhone は指定されたサーバーと通信していることを確認し、同時に非対称暗号化を利用して対称キーが確立され、それ以降のすべての通信に使用されます。対称暗号化は高速です。すでに書いたように、サーバー検証中にすでにエラーが発生しています。このシステムの脆弱性を引き起こすコードを見てみましょう。

static OSStatus
SSLVerifySignedServerKeyExchange(SSLContext *ctx, bool isRsa,
SSLBuffer signedParams, uint8_t *signature, UInt16 signatureLen)

{
   OSStatus err;
   …

   if ((err = SSLHashSHA1.update(&hashCtx, &serverRandom)) != 0)
       goto fail;
   if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0)
       goto fail;
       goto fail;
   if ((err = SSLHashSHA1.final(&hashCtx, &hashOut)) != 0)
       goto fail;
   …

fail:
   SSLFreeBuffer(&signedHashes);
   SSLFreeBuffer(&hashCtx);
   return err;
}

2番目の条件では if 以下に 2 つのコマンドがあります。 失敗します。。そしてそれが障害なのです。このコードにより、証明書を検証する必要がある段階で 2 番目のコマンドが実行されます。 失敗します。。これにより、3 番目の条件がスキップされます if そしてサーバー検証はまったく行われません。

つまり、この脆弱性を知っている人なら誰でもあなたの iPhone に偽の証明書を提供できる可能性があるということです。あなたまたはiPhone では、あなたとサーバーの間に攻撃者がいるにもかかわらず、暗号化されて通信していると思われるでしょう。このような攻撃をこう呼びます 中間者攻撃、チェコ語に大まかに翻訳すると、 中間者攻撃 または 中の人。 OS X と iOS のこの特定の欠陥を利用した攻撃は、攻撃者と被害者が同じネットワーク上にある場合にのみ実行できます。したがって、iOS を更新していない場合は、公衆 Wi-Fi ネットワークを避けることをお勧めします。 Mac ユーザーは、どのネットワークに接続するか、またそれらのネットワーク上でどのサイトにアクセスするかについて引き続き注意する必要があります。

このような致命的なエラーがどのようにして OS X と iOS の最終バージョンに組み込まれたのかは信じられません。不適切に書かれたコードの一貫性のないテストが原因である可能性があります。これは、プログラマーとテスターの両方が間違いを犯すことを意味します。 Apple にとってこれはありそうもないことかもしれないので、このバグは実際にはバックドア、いわゆるバックドアではないかという憶測が浮上しています。 バックドア。最高のバックドアは微妙な間違いに見える、と言われるのも当然です。ただし、これらは未確認の理論にすぎないため、誰かが単に間違いを犯したと仮定します。

お使いのシステムまたはブラウザがこのバグの影響を受けないかどうか不明な場合は、次のページにアクセスしてください。 gotofail.com。以下の画像からわかるように、OS X Mavericks 7.0.1 の Safari 10.9.1 にはバグが含まれていますが、iOS 7.0.6 の Safari ではすべて問題ありません。

リソース: iMore, ロイター通信社
.