TLS - AWS IoT Core

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

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

  • 失敗 — ハンドシェイクエラーのため、テスト対象デバイスが 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" } } ]

暗号スイート

AWS IoT 推奨暗号スイートの TLS デバイスSupport

テスト対象デバイスからの 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 暗号スイートが含まれていますが、次の点に注意してください。

    1. 推奨される暗号スイートは含まれていません

    2. でサポートされていない暗号スイートが含まれています。 AWS IoT

    サポートされていない暗号スイートが安全であることを確認することをお勧めします。

  • 失敗 — テスト対象の暗号スイートには、 AWS IoT サポートされている暗号スイートがまったく含まれていません。

より大きなサイズのサーバー証明書

TLS 大きなサイズのサーバー証明書

お使いのデバイスが、より大きなサイズのサーバー証明書を受け取って処理する場合に、 AWS IoT との TLS ハンドシェイクを完了できるかどうかを検証します。このテストで使用されるサーバー証明書のサイズ (バイト単位) は、TLS Connect テストケースと IoT Core で現在使用されているサイズよりも 20 倍大きくなっています。このテストケースでは、 AWS IoT デバイスの TLS のバッファスペースをテストします。バッファスペースが十分に大きければ、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