AirWatch Windows Server アプリケーションの既定の構成で TLS 1.2 プロトコルが有効にならない

背景:

AirWatch サービスは通常、SSL/TLS を使用して通信を行うように構成されています。そして、コンソールなどの AirWatch サーバ コンポーネントがサード パーティのクラウド サービス プロバイダに接続するような場合など、AirWatch が SSL/TLS 通信でのクライアントの役割を果たす場合もあります。

SSL/TLS 通信のクライアントとサーバは、セキュアな通信を確立するためにプロトコルと暗号スイートの、互いに共通な組み合わせをサポートしている必要があります。SSL/TLS クライアントは、受け付け可能な暗号アルゴリズムと暗号スイートの一覧をサーバに送信し、SSL/TLS サーバは、その中から使用可能な組み合わせを見つけます。さらに、SSL/TLS クライアントでは、PKI 信頼チェーンによって提供される完全性のレベルも検証されます。 

.NET Framework を使用する AirWatch コンポーネント (コンソール、デバイス サービス、ACC、SEG、など) は、既定の構成では、最もセキュアな SSL/TLS プロトコルと暗号スイートを使用するようにネゴシエーションを行います。したがって、サード パーティのサービスやコンポーネントも TLS 1.2 でのネゴシエーションに対応している場合は、TLS 1.2 が既定のプロトコルとして使用されます。TLS 1.2 に対応していない場合は通常、フォールバックにより TLS 1.1 または TLS 1.0 でのネゴシエーションが行われます。

問題:

Windows Server プラットフォームの多くのバージョンで使用されている .NET Framework では、信頼チェーン (ルート CA 証明書、署名証明書、など) で MD5 署名アルゴリズムが使用されている証明書は、有効な証明書として認識されません。この場合、クライアントもサーバも TLS 1.2 には対応しているので、TLS 1.1 や TLS 1.0 へのフォールバックは発生しません。結果として、.NET クライアントが最初のパラメータ交換で MD5 署名アルゴリズムをサポートしていないことを示しているにもかかわらず、サーバ証明書の検証が失敗します。これは、構成内容が正しくても AirWatch が TLS 1.2 を使用してサード パーティのサービスに接続できない場合がある、ということです。この問題が原因で接続エラーが発生すると、次のエラー メッセージが記録されます。

          Could not create SSL/TLS secure channel.

Windows Server が RFC5246 で規定されている TLS 拡張のひとつ、TLS 1.2 ネゴシエーション パラメータに対応していないことが、この挙動の根本的な原因です。

解決方法:

この挙動のため、SaaS 環境では現時点で TLS 1.2 はサポートされていません。しかし、オンプレミス環境では、次に示す方法をとることもできます。

サード パーティのサービスとの互換性を担保する必要がない場合、またはすべてのサービスの証明書チェーンに互換性があることを確認できる場合は、AirWatch での既定の推奨プロトコルを一時的に TLS 1.0 および TLS 1.1 に変更し、TLS 1.2 のサポートをオプションにします。上記の問題に対する修正が Microsoft 社から提供されたら、AirWatch の既定設定を TLS 1.2 に戻します。これにより、必要に応じて TLS 1.1 や 1.0 へのフォールバックが可能になります。  

注:SSL/TLS 接続を受け付けるほとんどのサーバは既定で TLS 1.1 または TLS 1.0 を使用した接続にも対応しているため、この解決方法で接続の問題が生じる範囲は限定的だと考えられます。

AirWatch では、まず次のバージョンで上記の変更が加えられます。

  • 8.3
  • 8.2 FP04
  • 8.1 FP09

注:TLS プロトコルとしては TLS 1.2 が推奨されますが、これまで TLS 1.1 プロトコルに対する実際の攻撃例はありません。また、機能面での影響の心配がなければ、貴社環境で任意に TLS 1.2 を再び有効にすることもできます。手動で TLS 1.2 を有効にするには、次の手順を実行します。

オーバーライド方法:

AirWatch の各アプリケーションおよびサービスの TLS 既定設定をオーバーライドするには、それぞれの構成ファイルで特定のプロトコルを使用するように指定します。構成ファイルは次のいずれかになります。

  • app.config - Web アプリケーション以外 (SEG、ACC、など)
  • web.config - Web アプリケーション (管理者コンソール、デバイス サービス、など) 

構成ファイルの <appSettings> セクションに、次に示すエントリを追加します。

 

TLS 1.2 のみの場合:

<add key="OutboundTlsProtocols" value="Tls12" />

 

TLS 1.0 と 1.2 の場合:

<add key="OutboundTlsProtocols" value="Tls, Tls12" />

 

TLS 1.0、1.1、1.2 の場合:

<add key="OutboundTlsProtocols" value="Tls, Tls11, Tls12" />

 

構成ファイルを変更した後、該当する AirWatch サービスを再起動する必要があります。

注:上記の変更は、このネットワーク プロトコルが必要な Windows ベースの全 AirWatch コンポーネントの app.config または web.config ファイルに対して行う必要があります。たとえば、次に示すコンポーネントはすべて Content Gateway と通信を行うため、ネットワーク要件で指定されている場合は、これらのコンポーネントにも上記の変更を加えなければなりません。

  • コンソール:..\Canonical\Console\Web\src\WebSln\WanderingWiFi.AirWatch.Console.Web\web.config
  • デバイス サービス:..\Canonical\DeviceServices\Service\src\DeviceServicesSln\WanderingWiFi.AirWatch.DeviceServices\web.config
  • MCM API:..\Canonical\AirWatch API\AW.Mcm.Api\AW.Mcm.Api\web.config
  • セルフ サービス ポータル:..\Canonical\Console\Web\src\MobileSln\AW.Console.Web.Mobile.SelfServicePortal\web.config
  • AirWatch スケジューラ サービス:..\Canonical\Services\AirWatch Scheduler\Service\src\ServiceSln\AW.Service.Scheduler.Service\app.config
  • Content Gateway:..\Canonical\MobileAccessGateway\MobileAccessGateway\web.config

 

免責事項:これは英文の記事「TLS 1.2 protocol not enabled by default for AirWatch Windows Server applications」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。

Have more questions? Submit a request

1 Comments

Article is closed for comments.