Adobe AIR を V30からV31にアップするとNetconnectionを利用した認証が失敗する
Adobe AIR を V30からV31にアップすると認証が失敗するようになりました。
バージョンアップの影響と思われますが、原因が判りません。
何かご存知の方、この様な現象を回避されている方など、いらっしゃいましたら、
情報・対策などご教授頂けないでしょうか?
MacOS HighSierra (10.13.1)環境下において、Adobe AIRのバージョンをv30.0.0.107 から v31.0.0.96にアップデートしたところ、
Netconnection.call()を実行した際にクライアント証明書が添付されない問題が発生しております。
【問題概要】
プログラム(イメージ)
Netconnection.connect("https://hogehoge/index.php");
Netconnection.objectEncoding = ObjectEncoding.AMF3;
Netconnection.call("Auth.login", res, userName, userPassword, 1200);
上記のような実装でサーバーマシン上で認証を行うプログラムを運用していますが、
Adobe AIRのバージョンをアップしたところ認証が失敗するようになってしまいました。
【問題詳細】
Netconnection.call()メソッドを呼び出したタイミングの通信ログを確認したところ、
TLSv1.2 Certificate, Client Key Exchange, Change Cipher Spec, Encrypted Handshake Message
通信において、Adobe AIRのバージョンによって以下の差異(★の個所)があることが判明しました。
【 Adobe AIR v30.0.0.107 使用時 】
<< 前略 >>
TLSv1.2 Record Layer: Handshake Protocol: Certificate
Content Type: Handshake (22)
Version: TLS 1.2 (0x0303)
Length: 996
Handshake Protocol: Certificate
Handshake Type: Certificate (11)
Length: 992 ★
Certificates Length: 989 ★
Certificates (989 bytes) ★
<< 後略 >>
【 Adobe AIR v31.0.0.96 使用時 】
<< 前略 >>
TLSv1.2 Record Layer: Handshake Protocol: Certificate
Content Type: Handshake (22)
Version: TLS 1.2 (0x0303)
Length: 7
Handshake Protocol: Certificate
Handshake Type: Certificate (11)
Length: 3 ★
Certificates Length: 0 ★
<< 後略 >>
【通信ログ取得手順】
AIRアプリケーション起動後、通信開始前に以下のコマンドを発行
sudo tcpdump -i lo0 -w output.cap
取得したoutput.capはWireShark v2.6.3を使用して解析
v31.0.0.96では、Handshake Protocol: CertificatesのLength が 0 になっており、データの欠落が発生しています。
本件、Adobe AIRのバージョン以外は全て同じ条件下で試したため、Adobe AIRのバージョンアップによるものと
推測しています。
何かご存知の方がいらっしゃいましたら、ご教示をお願いします。
