Windowsで「FIPS準拠」の暗号化を有効にしない方がよい理由
Windowsには、政府が認定した「FIPS準拠」の暗号化のみを有効にするという隠された設定があります。 PCのセキュリティを強化する方法のように思えるかもしれませんが、そうではありません。政府機関で働いている場合、または政府のPCでソフトウェアがどのように動作するかをテストする必要がある場合を除き、この設定を有効にしないでください。.
この調整は、他の役に立たないWindowsの調整の神話とぴったり合っています。 Windowsでこの設定に出くわした、または他で言及されているのを見たことがある場合は、有効にしないでください。正当な理由がなく有効にしている場合は、以下の手順で「FIPSモード」を無効にしてください。.
FIPS準拠の暗号化とは?
FIPSとは「Federal Information Processing Standards」の略です。暗号化アルゴリズムなど、政府で特定のものがどのように使用されるかを定義した一連の政府標準です。 FIPSでは、使用可能な特定の暗号化方式と暗号化キーの生成方法が定義されています。これは、米国標準技術局(NIST)によって発行されています。.
Windowsの設定は、米国政府のFIPS 140規格に準拠しています。有効になっていると、WindowsはFIPS検証済みの暗号化スキームのみを使用するように強制され、アプリケーションにもそのようにアドバイスされます。.
「FIPSモード」はWindowsをより安全にしません。 FIPS検証されていない新しい暗号化スキームへのアクセスをブロックするだけです。つまり、新しい暗号化スキームや同じ暗号化スキームを使用するより速い方法を使用することはできません。言い換えれば、それはあなたのコンピュータを遅くし、機能を低下させ、そして間違いなく論じる もっと少なく 安全な.
この設定を有効にした場合のWindowsの動作の違い
マイクロソフトは、この設定が実際には何をするのかを、「なぜ「FIPSモード」を推奨していないのか」というブログ記事で説明しています。たとえば、米国政府のコンピュータを使用している場合、そのコンピュータでは政府の規制に従って「FIPSモード」が有効になっているはずです。この設定を有効にして米国政府のコンピュータでソフトウェアの動作をテストしていない限り、自分のパソコンでこれを有効にしたいという実例はありません。.
この設定は、Windows自体に2つのことを行います。 WindowsとWindowsサービスは、FIPS検証済み暗号化のみを使用するように強制されます。たとえば、Windowsに組み込まれているSchannelサービスは、古いSSL 2.0および3.0プロトコルでは機能せず、代わりに少なくともTLS 1.0が必要になります。.
Microsoftの.NET Frameworkは、FIPS検証されていないアルゴリズムへのアクセスもブロックします。 .NETフレームワークは、ほとんどの暗号化アルゴリズムに対していくつかの異なるアルゴリズムを提供しています。それらすべてが検証のために提出されているわけでもありません。一例として、マイクロソフトは、.NETフレームワークには3つの異なるバージョンのSHA256ハッシュアルゴリズムがあると述べています。最速のものは検証のために提出されていませんが、同じくらい安全であるべきです。そのため、FIPSモードを有効にすると、より効率的なアルゴリズムを使用する.NETアプリケーションが機能しなくなるか、効率の悪いアルゴリズムを使用するようになり、遅くなります。.
これら2つのこととは別に、FIPSモードを有効にすると、FIPS検証済み暗号化のみを使用することもアプリケーションに推奨されます。しかし、それは他に何も強制しません。従来のWindowsデスクトップアプリケーションでは、必要な暗号化コード(恐ろしいほど脆弱な暗号化、またはまったく暗号化されていない場合でも)の実装を選択できます。 FIPSモードは、この設定に従わない限り、他のアプリケーションには何もしません。.
FIPSモードを無効にする方法(または必要に応じて有効にする方法)
政府のコンピュータを使用していて強制されない限り、この設定を有効にしないでください。この設定を有効にした場合、一部のコンシューマアプリケーションは実際にFIPSモードを無効にして正しく機能するように要求することがあります。.
FIPSモードを有効または無効にする必要がある場合 - 有効にした後にエラーメッセージが表示される場合は、FIPSモードが有効になっているコンピュータでソフトウェアがどのように動作するかをテストする必要があります。それを可能にするために - あなたはいくつかの方法でそうすることができます。 FIPSモードは、特定のネットワークに接続している場合、または常に適用されるシステム全体の設定によってのみ有効にできます。.
特定のネットワークに接続している場合にのみFIPSモードを有効にするには、次の手順を実行します。
- コントロールパネルウィンドウを開く.
- [ネットワークとインターネット]の下にある[ネットワークの状態とタスクを表示する]をクリックします。.
- 「アダプタ設定の変更」をクリックしてください。
- FIPSを有効にするネットワークを右クリックして、[ステータス]を選択します。
- Wi-Fi Statusウィンドウの“ Wireless Properties”ボタンをクリックしてください。.
- ネットワークのプロパティウィンドウで[セキュリティ]タブをクリックします.
- 「詳細設定」ボタンをクリック.
- 802.11設定の下の「このネットワークに対して連邦情報処理標準(FIPS)準拠を有効にする」オプションを切り替えます。.
この設定は、グループポリシーエディタでシステム全体で変更することもできます。このツールは、Homeバージョンではなく、Professional、Enterprise、およびEducationバージョンのWindowsでのみ使用できます。自分のコンピュータのグループポリシー設定を管理しているドメインに参加していないコンピュータを使用している場合は、ローカルグループポリシーエディタを使用してのみこのツールを変更できます。コンピュータがドメインに参加していて、グループポリシー設定が組織によって一元管理されている場合は、自分で変更することはできません。グループポリシーでこの設定を変更するには
- Windowsキー+ Rキーを押して[ファイル名を指定して実行]ダイアログを開く.
- ファイル名を指定して実行ダイアログボックスに「gpedit.msc」と入力し、Enterキーを押します。.
- グループポリシーエディタの[コンピュータの構成\ Windowsの設定\セキュリティの設定\ローカルポリシー\セキュリティオプション]に移動します。.
- 右側のウィンドウで[システム暗号化:暗号化、ハッシュ、および署名にFIPS準拠のアルゴリズムを使用する]設定を見つけてダブルクリックします。.
- 設定を「無効」にして「OK」をクリックしてください。
- コンピュータを再起動してください.
Windowsのホームバージョンでは、レジストリ設定を介してFIPS設定を有効または無効にすることができます。レジストリでFIPSが有効か無効かを確認するには、次の手順を実行します。
- Windowsキー+ Rキーを押して[ファイル名を指定して実行]ダイアログを開く.
- [ファイル名を指定して実行]ダイアログボックスに「regedit」と入力し、Enterキーを押します。.
- “ HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Control \ Lsa \ FipsAlgorithmPolicy \”に移動します。.
- 右側のペインの「有効」の値を見てください。 0に設定すると、FIPSモードは無効になります。 「1」に設定されていると、FIPSモードが有効になります。設定を変更するには、「有効」の値をダブルクリックして「0」または「1」に設定します。.
- コンピュータを再起動してください.
この投稿を刺激してくれたTwitterの@SwiftOnSecurityに感謝します!