TLS - AWS IoT Core

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

TLS

이러한 테스트를 사용하여 디바이스와 간의 전송 계층 보안 프로토콜(TLS) AWS IoT 이 안전한지 확인합니다.

참고

이제 Device Advisor에서 TLS 1.3을 지원합니다.

해피 패스

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.

  • 실패 - 핸드셰이크 오류 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 클라이언트 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" } } ]
예 테스트 케이스 출력:
  • 통과 - 테스트 중인 디바이스 암호 제품군에는 권장 AWS IoT 암호 제품군 중 하나 이상이 포함되어 있으며 지원되지 않는 암호 제품군은 포함되어 있지 않습니다.

  • 경고가 있는 통과 - 디바이스 암호 제품군에 하나 이상의 AWS IoT 암호 제품군이 포함되지만 다음과 같은 문제가 있습니다.

    1. 권장 암호 제품군이 포함되어 있지 않습니다.

    2. 여기에는에서 지원하지 않는 암호 제품군이 포함되어 있습니다 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 연결 테스트 케이스는 통과하는 경우 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.