翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
TLS
これらのテストを使用して、デバイスと 間のトランスポートレイヤーセキュリティプロトコル (TLS) AWS IoT が安全かどうかを判断します。
注記
Device Advisor が TLS1.3 をサポートするようになりました。
Happy Path
- TLS Connect
-
テスト対象のデバイスが 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。
失敗 — ハンドシェイクエラー AWS IoT のため、テスト対象のデバイスが との TLS ハンドシェイクを完了できませんでした。
- 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" } } ]
暗号スイート
- AWS IoT 推奨される暗号スイートの TLS デバイスサポート
-
テスト対象デバイスからの 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 大きなサイズのサーバー証明書
-
お使いのデバイスが、より大きなサイズのサーバー証明書を受け取って処理する場合に、 AWS IoT との TLS ハンドシェイクを完了できるかどうかを検証します。このテストで使用されるサーバー証明書のサイズ (バイト単位) は、TLS Connect テストケースおよび IoT Core で現在使用されているサイズよりも大きく、20 倍です。このテストケースでは、 は TLS のデバイスのバッファスペースを AWS IoT テストします。バッファスペースが十分大きい場合、TLS ハンドシェイクはエラーなしで枯渇します。このテストでは、デバイスの MQTT 実装は検証されません。テストケースは、TLS ハンドシェイクプロセスが完了した後に終了します。
例 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" } } ]例 テストケースの出力:
-
合格 – テスト対象のデバイスが AWS IoTとの TLS ハンドシェイクを完了しました。
-
警告付きで合格 — テスト対象のデバイスは TLS ハンドシェイクを完了しましたが AWS IoT、デバイスまたは からの TLS 警告メッセージがあります AWS IoT。
-
失敗 — ハンドシェイクプロセス中にエラーが発生した AWS IoT ため、テスト対象のデバイスが との TLS ハンドシェイクを完了できませんでした。
-
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 アラートメッセージを送信します。
警告付きで合格 – テスト対象のデバイスが AWS IoTとの TLS ハンドシェイクを完了することを拒否します。ただし、接続を閉じる前に TLS 警告メッセージは送信されません。
失敗 — テスト対象のデバイスは TLS ハンドシェイクを完了します AWS IoT。