AWS IoT Core의 전송 보안
전송 계층 보안(TLS)은 컴퓨터 네트워크를 통한 보안 통신을 위해 설계된 암호화 프로토콜입니다. AWS IoT Core Device Gateway에서는 고객이 디바이스와 게이트웨이를 연결하는 데 TLS를 사용하여 전송 중에 모든 통신을 암호화하도록 요구합니다. TLS는 AWS IoT Core에서 지원하는 애플리케이션 프로토콜(MQTT, HTTP, WebSocket)의 기밀성을 달성하는 데 사용됩니다. TLS 지원은 다수의 프로그래밍 언어 및 운영 체제를 지원합니다. AWS의 데이터는 특정 AWS 서비스에 의해 암호화됩니다. 다른 AWS 서비스의 데이터 암호화에 대한 자세한 내용은 해당 서비스의 보안 설명서를 참조하세요.
TLS 프로토콜
AWS IoT Core는 다음 버전의 TLS 프로토콜을 지원합니다.
-
TLS 1.3
-
TLS 1.2
AWS IoT Core를 사용하면 도메인 구성에서 TLS 설정(TLS 1.2
보안 정책
보안 정책은 클라이언트와 서버 간의 TLS 협상 중에 지원되는 프로토콜과 암호를 결정하는 TLS 프로토콜과 해당 암호의 조합입니다. 필요에 따라 미리 정의된 보안 정책을 사용하도록 디바이스를 구성할 수 있습니다. 참고로 AWS IoT Core는 사용자 지정 보안 정책을 지원하지 않습니다.
디바이스를 AWS IoT Core에 연결할 때 디바이스에 대해 사전 정의된 보안 정책 중 하나를 선택할 수 있습니다. AWS IoT Core에서 가장 최근의 사전 정의된 보안 정책의 이름에는 출시된 연월에 따른 버전 정보가 포함되어 있습니다. 기본 사전 정의 보안 정책은 IoTSecurityPolicy_TLS13_1_2_2022_10
입니다. 보안 정책을 지정하려면 AWS IoT 콘솔이나 AWS CLI를 사용할 수 있습니다. 자세한 내용은 도메인 구성에서 TLS 설정 구성 단원을 참조하십시오.
다음 테이블에는 AWS IoT Core에서 지원하는 가장 최근의 사전 정의된 보안 정책이 설명되어 있습니다. IotSecurityPolicy_
가 제목 행의 정책 이름에서 제거되어 해당 위치에 맞게 조정되었습니다.
보안 정책 | TLS13_1_3_2022_10 | TLS13_1_2_2022_10 | TLS12_1_2_2022_10 | TLS12_1_0_2016_01* | TLS12_1_0_2015_01* | ||
---|---|---|---|---|---|---|---|
TCP 포트 |
443/8443/8883 |
443/8443/8883 |
443/8443/8883 |
443 | 8443/8883 | 443 | 8443/8883 |
TLS 프로토콜 | |||||||
TLS 1.2 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
TLS 1.3 | ✓ | ✓ | |||||
TLS 암호 | |||||||
TLS_AES_128_GCM_SHA256 | ✓ | ✓ | |||||
TLS_AES_256_GCM_SHA384 | ✓ | ✓ | |||||
TLS_CHACHA20_POLY1305_SHA256 | ✓ | ✓ | |||||
ECDHE-RSA-AES128-GCM-SHA256 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
ECDHE-RSA-AES128-SHA256 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
ECDHE-RSA-AES128-SHA | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
ECDHE-RSA-AES256-GCM-SHA384 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
ECDHE-RSA-AES256-SHA384 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
ECDHE-RSA-AES256-SHA | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
AES128-GCM-SHA256 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
AES128-SHA256 | ✓ | ✓ | ✓ | ✓ | ✓ | ||
AES128-SHA | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
AES256-GCM-SHA384 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
AES256-SHA256 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
AES256-SHA | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
DHE-RSA-AES256-SHA | ✓ | ✓ | |||||
ECDHE-ECDSA-AES128-GCM-SHA256 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
ECDHE-ECDSA-AES128-SHA256 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
ECDHE-ECDSA-AES128-SHA | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
ECDHE-ECDSA-AES256-GCM-SHA384 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
ECDHE-ECDSA-AES256-SHA384 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
ECDHE-ECDSA-AES256-SHA | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
참고
TLS12_1_0_2016_01
은 다음 AWS 리전에서만 사용 가능합니다. ap-east-1, ap-northeast-2, ap-south-1, ap-southeast-2, ca-central-1, cn-north-1, cn-northwest-1, eu-north-1, eu-west-2, eu-west-3, me-south-1, sa-east-1, us-east-2, us-gov-west-1, us-gov-west-2, us-west-1.
TLS12_1_0_2015_01
은 다음 AWS 리전에서만 사용 가능합니다. ap-northeast-1, ap-southeast-1, eu-central-1, eu-west-1, us-east-1, us-west-2.
AWS IoT Core의 전송 보안에 관한 중요 참고 사항
MQTT를 사용하여 AWS IoT Core에 연결하는 디바이스의 경우, TLS가 디바이스와 브로커 간 연결을 암호화하고, AWS IoT Core는 TLS 클라이언트 인증을 사용하여 디바이스를 식별합니다. 자세한 내용은 클라이언트 인증을 참조하세요. HTTP를 사용하여 AWS IoT Core에 연결하는 디바이스의 경우, TLS가 디바이스와 브로커 간 연결을 암호화하고, 인증은 AWS 서명 버전 4에 위임됩니다. 자세한 내용은 AWS 일반 참조에서 서명 버전 4를 사용하여 요청에 서명을 참조하세요.
디바이스를 AWS IoT Core에 연결할 때 서버 이름 표시(SNI) 확장host_name
필드에 전체 엔드포인트 주소를 제공해야 합니다. host_name
필드에는 호출하는 엔드포인트가 포함되어야 합니다. 이 엔드포인트는 다음 중 하나여야 합니다.
-
aws iot describe-endpoint
에서 반환한--endpoint-type iot:Data-ATS endpointAddress
-
aws iot describe-domain-configuration
에서 반환한–-domain-configuration-name " domain_configuration_name
"domainName
올바르지 않거나 유효하지 않은 host_name
값으로 디바이스에서 시도한 연결은 실패합니다. AWS IoT Core는 인증 유형이 사용자 지정 인증인 경우 CloudWatch에 실패를 로그합니다.
AWS IoT Core는 SessionTicket TLS 확장
LoRaWAN 무선 디바이스를 위한 전송 보안
LoRaWAN 디바이스는 LoRaWAN™ 보안: LoRa Alliance™에 Gemalto, Actility 및 Semtech이 준비한 백서
LoRaWAN 디바이스를 사용한 전송 보안에 대한 자세한 내용은 LoRaWAN 데이터 및 전송 보안 섹션을 참조하세요.