翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
これらのテストを使用して、デバイスと 間のトランスポートレイヤーセキュリティプロトコル (TLS) AWS IoT が安全かどうかを判断します。
注記
Device Advisor が 1.3 TLS をサポートするようになりました。
Happy Path
- TLS 接続
-
テスト対象のデバイスがTLSハンドシェイクを完了できるかどうかを検証します AWS IoT。このテストでは、クライアントデバイスのMQTT実装は検証されません。
例 API テストケース定義:
注記
EXECUTION_TIMEOUT
のデフォルト値は 5 分です。最良の結果を得るには、タイムアウト値 を 2 分とすることをお勧めします。"tests":[ { "name":"
my_tls_connect_test
", "configuration": { // optional: "EXECUTION_TIMEOUT":"300
", //in seconds }, "test":{ "id":"TLS_Connect", "version":"0.0.0" } } ]例 テストケースの出力:
合格 — テスト対象のデバイスがTLSハンドシェイクを完了しました AWS IoT。
警告付きで合格 — テスト対象のデバイスはTLSハンドシェイクを完了しましたが AWS IoT、デバイスまたは からのTLS警告メッセージがありました AWS IoT。
失敗 — TLSハンドシェイクエラー AWS IoT のため、テスト対象のデバイスが とのハンドシェイクを完了できませんでした。
- TLS 最大サイズのフラグメントを受信する
-
このテストケースでは、デバイスがTLS最大サイズのフラグメントを受信して処理できることを検証します。大きなペイロードを受信するには、テストデバイスが QoS 1 で事前設定されたトピックをサブスクライブする必要があります。
${payload}
設定を使用して、ペイロードをカスタマイズできます。例 API テストケース定義:
注記
EXECUTION_TIMEOUT
のデフォルト値は 5 分です。最良の結果を得るには、タイムアウト値 を 2 分とすることをお勧めします。"tests":[ { "name":"TLS Receive Maximum Size Fragments", "configuration": { // optional: "EXECUTION_TIMEOUT":"
300
", //in seconds "PAYLOAD_FORMAT":"{"message":"${payload}"}", // A string with a placeholder ${payload}, or leave it empty to receive a plain string. "TRIGGER_TOPIC": "test_1" // A topic to which a device will subscribe, and to which a test case will publish a large payload. }, "test":{ "id":"TLS_Receive_Maximum_Size_Fragments", "version":"0.0.0" } } ]
暗号スイート
- TLS AWS IoT 推奨暗号スイートのデバイスサポート
-
テスト対象のデバイスからの TLS Client Hello メッセージ内の暗号スイートに、推奨されるAWS IoT 暗号スイートが含まれていることを検証します。デバイスでサポートされている暗号スイートに関するさらなる洞察を提供します。
例 API テストケース定義:
注記
EXECUTION_TIMEOUT
のデフォルト値は 5 分です。タイムアウト値は 2 分であることを推奨します。"tests":[ { "name":"
my_tls_support_aws_iot_cipher_suites_test
", "configuration": { // optional: "EXECUTION_TIMEOUT":"300
", // in seconds }, "test":{ "id":"TLS_Support_AWS_IoT_Cipher_Suites", "version":"0.0.0" } } ]例 テストケースの出力:
合格 — テスト対象デバイスの暗号スイートには、推奨される暗号スイートが少なくとも 1 AWS IoT つ含まれており、サポートされていない暗号スイートは含まれていません。
-
警告付きで合格 – デバイス暗号スイートには少なくとも 1 つの AWS IoT 暗号スイートが含まれていますが、次の点に注意してください。
-
推奨される暗号スイートは含まれていません
-
これには、 でサポートされていない暗号スイートが含まれています AWS IoT。
サポートされていない暗号スイートが安全であることを確認することをお勧めします。
-
失敗 — テスト対象のデバイスの暗号スイートに、 AWS IoT サポートされている暗号スイートが含まれていません。
より大きなサイズのサーバー証明書
- TLS ラージサイズのサーバー証明書
-
デバイスでの検証は、より大きなサイズのサーバー証明書を受信して処理するときに、 とのTLS AWS IoT ハンドシェイクを完了できます。このテストで使用されているサーバー証明書のサイズ (バイト単位) は、TLSConnect テストケースで現在使用されているものよりも大きく、20 によって IoT Core で使用されています。このテストケースでは、 は のデバイスのバッファ領域を AWS IoT テストします。バッファ領域が十分大きいTLS場合、TLSハンドシェイクはエラーなしで枯渇します。このテストでは、デバイスのMQTT実装は検証されません。テストケースは、TLSハンドシェイクプロセスが完了した後に ds します。
例 API テストケース定義:
注記
EXECUTION_TIMEOUT
のデフォルト値は 5 分です。最良の結果を得るには、タイムアウト値 を 2 分とすることをお勧めします。このテストケースが失敗しても TLS Connect テストケースが成功した場合は、バッファ容量制限TLSを増やすためにデバイスのバッファ容量制限を増やすことをお勧めします。バッファ容量制限を増やすと、サイズが大きくなった場合にデバイスがより大きなサイズのサーバー証明書を処理できるようになります。"tests":[ { "name":"
my_tls_large_size_server_cert_test
", "configuration": { // optional: "EXECUTION_TIMEOUT":"300
", // in seconds }, "test":{ "id":"TLS_Large_Size_Server_Cert", "version":"0.0.0" } } ]例 テストケースの出力:
-
合格 — テスト対象のデバイスが とのTLSハンドシェイクを完了しました AWS IoT。
-
警告付きで合格 — テスト対象のデバイスはTLSハンドシェイクを完了しましたが AWS IoT、デバイスまたは からのTLS警告メッセージが表示されます AWS IoT。
-
失敗 — TLSハンドシェイクプロセス中にエラーが発生した AWS IoT ため、テスト対象のデバイスが とのハンドシェイクを完了できませんでした。
-
TLS セキュアでないサーバー証明書
- 認識された CA によって署名されていません
-
ATS CA からの有効な署名がないサーバー証明書が提示された場合、テスト対象のデバイスが接続を閉じることを検証します。デバイスは、有効な証明書を提示するエンドポイントにのみ接続する必要があります。
例 API テストケース定義:
注記
EXECUTION_TIMEOUT
のデフォルト値は 5 分です。タイムアウト値は 2 分であることを推奨します。"tests":[ { "name":"
my_tls_unsecure_server_cert_test
", "configuration": { // optional: "EXECUTION_TIMEOUT":"300
", //in seconds }, "test":{ "id":"TLS_Unsecure_Server_Cert", "version":"0.0.0" } } ]例 テストケースの出力:
合格 – テスト対象のデバイスは接続を閉じました。
失敗 — テスト対象のデバイスがTLSハンドシェイクを完了しました AWS IoT。
- TLS サブジェクトネームサーバー証明書が正しくない/サブジェクト共通名 (CN) が正しくない/サブジェクト代替名 (SAN)
-
リクエストされたものとは異なるドメイン名のサーバー証明書が提示された場合にテスト対象のデバイスが接続を閉じることを検証します。
例 API テストケース定義:
注記
EXECUTION_TIMEOUT
のデフォルト値は 5 分です。タイムアウト値は 2 分であることを推奨します。"tests":[ { "name":"
my_tls_incorrect_subject_name_cert_test
", "configuration": { // optional: "EXECUTION_TIMEOUT":"300
", // in seconds }, "test":{ "id":"TLS_Incorrect_Subject_Name_Server_Cert", "version":"0.0.0" } } ]例 テストケースの出力:
合格 – テスト対象のデバイスは接続を閉じました。
失敗 — テスト対象のデバイスがTLSハンドシェイクを完了しました AWS IoT。
TLS 期限切れのサーバー証明書
- 期限切れサーバー証明書
-
期限切れサーバー証明書が提示された場合にテスト対象のデバイスが接続を閉じることを検証します。
例 API テストケース定義:
注記
EXECUTION_TIMEOUT
のデフォルト値は 5 分です。タイムアウト値は 2 分であることを推奨します。"tests":[ { "name":"
my_tls_expired_cert_test
", "configuration": { // optional: "EXECUTION_TIMEOUT":"300
", //in seconds }, "test":{ "id":"TLS_Expired_Server_Cert", "version":"0.0.0" } } ]例 テストケースの出力:
合格 — テスト対象のデバイスはTLSハンドシェイクの完了を拒否します AWS IoT。デバイスは、接続を閉じる前にTLSアラートメッセージを送信します。
警告付きで合格 — テスト対象のデバイスはTLSハンドシェイクの完了を拒否します AWS IoT。ただし、接続を閉じる前にTLSアラートメッセージを送信することはありません。
失敗 — テスト対象のデバイスがTLSハンドシェイクを完了します AWS IoT。