株式会社タフス

Office365接続のTLS1.2義務化

こんちには motです。


表題の件、

2018年3月1日以降にOffice365への接続がTLS1.2が必須となることがマイクロソフト社より公開されました。


業務で対応することがあった為、マイクロソフト社の公開情報と併せて対応した内容を記載したいと思います。
対応した環境は、以下となります。

==================================
■Office365環境
 Exchange Online


■オンプレミス環境

[サーバ]
・Windows 2008R2 SP1
 ADFS /ADFS Proxy
 ※認証要求、Azure Powershellでオンライン接続


・Windows 2012R2
 AAD同期サーバ


[クライアント]

・Windows 7 SP1
※Outlook/OWA、Skype for Business利用(EWS接続)

==================================

【ADFS /ADFS Proxy】

 [前提]

 OSがWindows 2012未満であること。
 ※2012以降であれば既定でTLS1.2有効化されているため対応不要。

 [設定内容]

 ①ADFS/ADFS Proxy両サーバへ以下レジストリ設定

キー:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSchannelProtocolsTLS 1.2Server 

値の名前:Enabled
値の種類: REG_DWORD
値:1 

値の名前:DisabledByDefault
値の種類: REG_DWORD
値:0



私の同僚にADFS は ADFS Proxyを経由してくるのであれば対応する必要ないのではないかと質問頂きましたが、OutlookとOWAの認証経路の違いを考慮すると対応が必要となります。また、ADFSとADFS Proxy間の通信はOffice365と直接やり取りをしないため、考慮不要です。仮に対応したい場合は両サーバの.NetFramworkでTLS1.2を利用するようレジストリ設定することで対応可能です。


【AAD同期サーバ】

 [前提]

 AADのバージョン が1.1.614.0 未満であること

 [設定内容]

 ①セキュリティ アドバイザリ 2960358を基に対応するOS/.NetFrameworkの更新プログラムを適用
  ②以下レジストリを設定。※①の更新プログラムを適用して自動設定されない場合に手動設定。

キー:HKEY_LOCAL_MACHINESOFTWAREMicrosoft.NETFrameworkv4.0.30319値の名前:SchUseStrongCrypto 値のタイプ:REG_DWORD 値:1



私はWindows2012R2のAAD同期サーバで設定しましたが、Windows2008R2では

Schannelのレジストリ設定が別途必要なようです。


【Outlook/OWA】

 [前提]

 OSがWindows 8.1未満であること
 8.1以上では既定でTLS1.2有効化されているため対応不要。

[設定内容]

 /*Outlook*/
 1. Exchange アカウントを設定して利用する場合
     ①WinHTTPでTLS1.2利用できるようにするため、更新プログラム(KB3140245)を適用
  ②以下レジストリを設定。※32bit版を想定。64bit版はWow6432配下のレジストリの設定も必要。

キー:HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionInternet SettingsWinHttp

値の名前: DefaultSecureProtocols値の種類: REG_DWORD値: 0x00000a00 (10 進数 : 2560) ※推奨値


DefaultSecureProtocols には、以下の数値の論理和を指定します。
たとえば TLS 1.0+TLS 1.1+TLS 1.2 を設定したい場合は 0x00000a80 を設定します。
SSL 3.0 = 0x00000020
TLS 1.0 = 0x00000080
TLS 1.1 = 0x00000200
TLS 1.2 = 0x00000800

  ①と②の順番はどちらでも問題なし。 


 2. POP または IMAP アカウントを設定して利用する場合

  ①以下レジストリを設定。

キー:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSCHANNELProtocolsTLS 1.2Client
値の名前: Enabled
値の種類: REG_DWORD
値のデータ: 1 

値の名前: DisabledByDefault
値の種類: REG_DWORD
値のデータ: 0

 /*OWA*/
  Internet Explorer のインターネット オプションの [詳細設定] タブにある [TLS 1.2 の使用] をオンに設定します。

【Skype for Business】

 [前提]

 会話履歴の閲覧/保存、予定の閲覧、プレゼンス情報取得などでExchange Onlineとやりとり。

 [設定内容]

 Outlookの”1. Exchange アカウントを設定して利用する場合”と同様。
 WinHTTPでTLS1.2利用するよう対応すれば問題なし。


【Azure Powershell】

 [前提] 

 Connect-MsolServiceとExchange Online接続に利用。
 OSがWindows2016未満であること

 [設定内容] 

 /*Connect-MsolService*/
    ①Powershellが利用している.Netframeworkのバージョンを確認。
  ②バージョンに応じて設定
  .NetFramwork 4.5以上※32bit版を想定。64bit版はWow6432配下のレジストリの設定も必要。
      1.以下レジストリ設定
         キー:HKEY_LOCAL_MACHINESOFTWAREMicrosoft.NETFrameworkv4.0.30319

  値の名前:SchUseStrongCrypto
  値の種類:REG_DWORD
  値:1

  .NetFramwork 3.5
      1.更新プログラム適用 ※私の環境では不要でした。 

  2.以下レジストリ設定※64bit版を想定。32bit版はWow6432のレジストリは不要。

キー:HKEY_LOCAL_MACHINESOFTWAREMicrosoft.NETFrameworkv2.0.50727
値の名前:SystemDefaultTlsVersions
値の種類:REG_DWORD
値:1

キー:HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoft.NETFrameworkv2.0.50727
値の名前:SystemDefaultTlsVersions
値の種類:REG_DWORD
値:1
 

キー:  HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecurityProvidersSchannelProtocolsTLS1.2Client

値の名前:DisabledByDefault値の種類:REG_DWORD値:0

  /*Exchange Online接続*/
 ①Outlookの”1. Exchange アカウントを設定して利用する場合”と同様。
  WinHTTPでTLS1.2利用するよう対応すれば問題なし。



なお、肝心のTLS1.2で接続しているかどうかの確認ですが、私はnetshでキャプチャ取得し、Network monitor3.4で確認しました。※Wiresharkがなかったもので・・・
TLSのバージョンはClientHelloとServerHelloに表示されるため、Network monitor3.4で
Discriptionが”ClientHelloとServerHello”となっているパケットをフィルタして確認してみましょう。その際、併せて接続先ホスト名(ServerName)も確認すると良いかと思います。

本ブログはあくまでマイクロソフト社の公開情報を基に検証したものとなりますので、参考までにお願いします。


以上。


※※参考サイト※※

Office 365 への TLS 1.2 の実装に対する準備
https://support.microsoft.com/ja-jp/help/4057306/preparing-for-tls-1-2-in-office-365
Office 365 の TLS 1.0/1.1 無効化に伴う AD FS / WAP (AD FS Proxy) の対応

Outlook 2016/2013/2010 から Exchange Online に接続する際に TLS 1.2 が利用されるようにする方法 (Windows 7 では作業が必要)
https://blogs.technet.microsoft.com/outlooksupportjp/2018/01/05/tls/
Azure AD Connect の前提条件
https://docs.microsoft.com/ja-jp/azure/active-directory/connect/active-directory-aadconnect-prerequisites#enable-tls-12-for-azure-ad-connect
.NET Framework で TLS1.1 および 1.2 を有効化する方法
https://blogs.technet.microsoft.com/jpieblog/2015/04/07/net-framework-tls1-1-1-2/