こんにちは、 Azure ID の三浦です。
今回は Office 365 での TLS 1.0 と 1.1 のサポート無効化に伴う AD FS / WAP (AD FS Proxy) での対応についてまとめました。
次の情報にありますように 2018/3/1 に Office 365 では TLS 1.0 と 1.1 のサポートを無効化することを予定しています。
Office 365 への TLS 1.2 の実装に対する準備
https://support.microsoft.com/ja-jp/help/4057306/preparing-for-tls-1-2-in-office-365
フェデレーション環境では、 AD FS および WAP (Windows Server 2012 以前は AD FS Proxy) で TLS 1.2 による接続を有効にする必要があります。実際のところ以下の表のとおり最近の OS (Windows Server 2012 以降) であれば既定で TLS 1.2 を利用するようになっており、このときには特別な対処は必要ありません (例えば AD FS および WAP が Windows Server 2012 R2 で構成されている場合)。
OS のバージョン毎にサポートされるセキュリティ プロトコル一覧
![]()
TLS 1.2 の設定状況の確認と設定方法
Windows 8 / 2012 以降の OS であれば、特に明示的に設定を変えていなければ対処は不要です。
本当に大丈夫かは HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSchannelProtocols キー配下に何も設定が無い (既定の状態)、もしくは以下のように明示的に有効にする設定が入っているかで判断でき、この状態では TLS 1.2 が利用されています。
Windows 7 / 2008 / 2008 R2 の場合には、既定では TLS 1.2 は無効であり、対処が必要です。このときはに次のように値を設定します。
値を変更した場合には、システムの再起動をします。
キー:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSchannelProtocolsTLS 1.2Client
名前:Enabled
タイプ: REG_DWORD
値:1
名前:DisabledByDefault
タイプ: REG_DWORD
値:0
キー:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSchannelProtocolsTLS 1.2Server
名前:Enabled
タイプ: REG_DWORD
値:1
名前:DisabledByDefault
タイプ: REG_DWORD
値:0
なお、管理者権限で次の PowerShell コマンドを実行することで一括して上記設定が可能です。
New-Item 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.2Server' -Force | Out-Null
New-ItemProperty -path 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.2Server' -name 'Enabled' -value '1' -PropertyType 'DWord' -Force | Out-Null
New-ItemProperty -path 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.2Server' -name 'DisabledByDefault' -value '0' -PropertyType 'DWord' -Force | Out-Null
New-Item 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.2Client' -Force | Out-Null
New-ItemProperty -path 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.2Client' -name 'Enabled' -value '1' -PropertyType 'DWord' -Force | Out-Null
New-ItemProperty -path 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.2Client' -name 'DisabledByDefault' -value '0' -PropertyType 'DWord' -Force | Out-Null
Write-Host 'TLS 1.2 has been enabled.'
TLS 1.2 を実際に利用しているか確認する方法
クライアントが TLS 1.2 を利用しているかは、以下のサイトでテストできます。
Qualys SSL Labs
https://www.ssllabs.com/
アクセスすると以下の画面が表示されますので、画面赤枠の [Test your browser >>] をクリックします。
![]()
※ 実行した結果、「Your user agent supports TLS 1.2, which is recommended protocol version at the moment.」 と表示された場合には TLS 1.2 を利用している状態です。
![]()
※ 以下のように表示された場合には、TLS 1.2 の設定状況の確認と設定方法に従って有効化します。
![]()
なお、 TLS 1.2 を利用するかはブラウザ側でも設定がありますので、ブラウザの設定で TLS 1.2 が使用できるように構成されているかも合わせてご確認ください。
![]()
以上、クライアント側での確認方法となりますが、サーバー側についても WAP サーバーに対しては、同じく Qualys SSL Labs のサイトで Test your server >> から AD FS のサービス名 (sts.xxxxx.xxx など) を指定して Submit することでサーバー側の TLS の対応状況を確認できます。
(TLS 1.2 のみを利用するように構成したブラウザからアクセスしてアクセスできるか確認するという方法もあります )
TLS 1.0、 1.1、 1.2 に対応している場合の表示結果例です。
![]()
TLS 1.0 / TLS 1.1 を無効にする方法
Office 365 での TLS 1.2 必須化に伴い、 AD FS やアクセスするクライアントで TLS 1.0 / 1.1 を無効にすることは必須ではありません。ただ、セキュリティ観点から TLS 1.0 /1.1 を無効にしたいという要件もあると思います。AD FS と WAP (AD FS Proxy) 間では .NET Framework を利用した通信を実施しますが、この通信は既定で TLS 1.0 を利用するように設定されています。そのため、AD FS で TLS 1.0/1.1 を無効にするには事前に .NET Framework で TLS 1.2 を利用するように構成し、そのあとで TLS 1.0 / 1.1 を無効にする必要があります。
.NET Framework の設定を変更しておけば、AD FS と WAP (AD FS Proxy) で TLS 1.0/1.1 を無効にしても、このバージョンのみを使用できるクライアントからのアクセスができなくなる以外に基本的には想定される影響はありません。ただ、過去に TLS 1.0 を無効にした場合にいくつか発生する問題も報告されており、ご使用の環境では TLS 1.0/1.1 を無効にすると問題が発生し、再度有効にする必要がある場合もありますので、以下の公開情報も参照ください。
Considerations for disabling and replacing TLS 1.0 in ADFS
https://support.microsoft.com/en-us/help/3194197/considerations-for-disabling-and-replacing-tls-1-0-in-adfs
.NET Framework を利用した通信で TLS 1.2 を利用するようにする方法
AD FS および WAP (AD FS Proxy) サーバーで .NET Framework に関するレジストリを設定します。
Windows Server 2016 よりも前の OS では、 .NET Framework が TLS 1.2 を利用できるような修正プログラムがインストールされていることが必要です。そのためには以下のセキュリティ アドバイザリ 2960358 を適用します。
マイクロソフト セキュリティ アドバイザリ 2960358
https://technet.microsoft.com/library/security/2960358
この更新プログラムのインストール時に発生する可能性のある既知の問題が報告されておりますので、併せてご確認ください。
(.NET Framework を使用している製品は多くあります。 AD FS / WAP 以外の役割を兼ねている場合には、更新プログラムの適用、 TLS 1.2 を利用させるように変更する際に他に影響が無いかの動作確認が必要です)
セキュリティ更新プログラム 2960358 をインストールした後に、Internet Explorer でホストされるマネージ コントロールを含むアプリケーションとノータッチ デプロイメントが正しく機能しないことがある
https://support.microsoft.com/ja-jp/kb/2978675
更新プログラムの適用が完了しましたら以下のレジストリを変更します。
Windows Server 2016 および Windows Server 2012 R2 は .NET Framework の 4.0/4.5 を利用するため v4.0.30319 キー配下に設定を実施します。
Windows Server 2012 以前は .NET Framework 3.5 を利用するため v2.0.50727 キー配下に設定を実施します。
(両方ともに設定を実施しても問題ありません)
キー:HKEY_LOCAL_MACHINESOFTWAREMicrosoft.NETFrameworkv4.0.30319
名前: SchUseStrongCrypto
タイプ: REG_DWORD
値:1
キー:HKEY_LOCAL_MACHINESOFTWAREMicrosoft.NETFrameworkv2.0.50727
名前: SchUseStrongCrypto
タイプ: REG_DWORD
値:1
TLS 1.0 / 1.1 無効化方法
.NET Framework の設定が完了しましたら TLS 1.0/1.1 をレジストリ設定により無効にします。
AD FS / WAP (AD FS Proxy) 以外でも TLS 1.0/1.1 を無効にする際のレジストリは以下になります。レジストリを変更しましたら、システムを再起動します。
キー:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSchannelProtocolsTLS 1.0Client
名前:Enabled
タイプ: REG_DWORD
値:1
名前:DisabledByDefault
タイプ: REG_DWORD
値:0
キー:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSchannelProtocolsTLS 1.0Server
名前:Enabled
タイプ: REG_DWORD
値:1
名前:DisabledByDefault
タイプ: REG_DWORD
値:0
キー:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSchannelProtocolsTLS 1.1Client
名前:Enabled
タイプ: REG_DWORD
値:1
名前:DisabledByDefault
タイプ: REG_DWORD
値:0
キー:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSchannelProtocolsTLS 1.1Server
名前:Enabled
タイプ: REG_DWORD
値:1
名前:DisabledByDefault
タイプ: REG_DWORD
値:0
なお、管理者権限で次の PowerShell コマンドを実行することで一括して上記設定が可能です。
New-Item 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.0Server' -Force | Out-Null
New-ItemProperty -path 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.0Server' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null
New-ItemProperty -path 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.0Server' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null
New-Item 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.0Client' -Force | Out-Null
New-ItemProperty -path 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.0Client' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null
New-ItemProperty -path 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.0Client' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null
Write-Host 'TLS 1.0 has been disabled.'
New-Item 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.1Server' -Force | Out-Null
New-ItemProperty -path 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.1Server' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null
New-ItemProperty -path 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.1Server' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null
New-Item 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.1Client' -Force | Out-Null
New-ItemProperty -path 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.1Client' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null
New-ItemProperty -path 'HKLM:SYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.1Client' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null
Write-Host 'TLS 1.1 has been disabled.'
参考情報
Solving the TLS 1.0 Problem
https://www.microsoft.com/en-us/download/details.aspx?id=55266
Managing SSL/TLS Protocols and Cipher Suites for AD FS
https://docs.microsoft.com/en-us/windows-server/identity/ad-fs/operations/manage-ssl-protocols-in-ad-fs
Transport Layer Security (TLS) registry settings
https://docs.microsoft.com/en-us/windows-server/security/tls/tls-registry-settings
[IT 管理者向け] TLS 1.2 への移行を推奨しています
https://blogs.technet.microsoft.com/jpsecurity/2017/07/11/tlsmigration/