서버 인증 - AWS IoT Core

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

서버 인증

장치 또는 다른 클라이언트가 연결을 시도하면 AWS IoT Core 서버에서 장치가 서버를 인증하는 데 AWS IoT Core사용하는 X.509 인증서를 보냅니다. 인증은 X.509 인증서 체인 검증을 통해 TLS 계층에서 이루어집니다. 이는 HTTPS URL을 방문할 때 브라우저에서 사용하는 것과 동일한 방법입니다. 자체 인증 기관의 인증서를 사용하려면 단원을 참조하세요CA 인증서 관리

디바이스 또는 다른 클라이언트가 AWS IoT Core 엔드포인트에 TLS 연결을 설정하면 다른 서버를 가장하지 않고 디바이스가 통신 중인지 확인하는 데 사용하는 인증서 체인을 AWS IoT Core 제공합니다. AWS IoT Core AWS IoT Core표시되는 체인은 기기가 연결하는 엔드포인트 유형과 클라이언트가 TLS 핸드셰이크 중에 AWS IoT Core 협상한 암호 제품군의 조합에 따라 달라집니다.

엔드포인트 유형

AWS IoT Core 두 개의 서로 다른 데이터 엔드포인트 유형 및 을 지원합니다. iot:Data iot:Data-ATS iot:Data엔드포인트는 VeriSign 클래스 3 퍼블릭 프라이머리 G5 루트 CA 인증서로 서명된 인증서를 제공합니다. iot:Data-ATS엔드포인트는 Amazon 트러스트 서비스 CA에서 서명한 서버 인증서를 제공합니다.

ATS 엔드포인트에서 제공하는 인증서는 Starfield에서 교차 서명합니다. 일부 TLS 클라이언트 구현에는 신뢰 루트의 검증이 필요하며 클라이언트의 신뢰할 수 있는 스토어에 Starfield CA 인증서가 설치되어 있어야 합니다.

주의

전체 인증서(발급자 이름 등 포함)를 해시하는 인증서 고정 방법을 사용하는 것은 권장되지 않습니다. 이렇게 하면 AWS에서 제공하는 ATS 인증서가 Starfield에 의해 교차 서명되고 발급자 이름이 다르기 때문에 인증서 확인에 실패할 수 있습니다.

중요

디바이스에 Symantec 또는 Verisign CA 인증서가 필요한 경우가 아니면 iot:Data-ATS 엔드포인트를 사용하세요. Symantec 및 Verisign 인증서는 이제 사용되지 않으며 대부분의 웹 브라우저에서 더 이상 지원되지 않습니다.

describe-endpoint 명령을 사용하여 ATS 엔드포인트를 생성할 수 있습니다.

aws iot describe-endpoint --endpoint-type iot:Data-ATS

describe-endpoint 명령은 다음 형식으로 엔드포인트를 반환합니다.

account-specific-prefix.iot.your-region.amazonaws.com
참고

describe-endpoint를 처음 호출하면 엔드포인트가 생성됩니다. 이후 describe-endpoint에 대한 모든 호출은 동일한 엔드포인트를 반환합니다.

이전 버전과의 호환성을 위해 AWS IoT Core 여전히 시만텍 엔드포인트를 지원합니다. 자세한 내용은 AWS IoT Core 가 고객이 Symantec 인증 기관의 비신뢰 문제를 처리하는 데 도움이 되는 방법을 참조하세요. ATS 엔드포인트에서 작동하는 디바이스는 동일한 계정의 Symantec 엔드포인트에서 작동하는 디바이스와 완전히 상호 운용할 수 있으며 어떠한 재등록도 필요하지 않습니다.

참고

콘솔에서 iot:Data-ATS 엔드포인트를 보려면 [Settings] 를 선택합니다. AWS IoT Core 콘솔에는 iot:Data-ATS 엔드포인트만 표시됩니다. 기본적으로 describe-endpoint 명령은 이전 버전과의 호환성을 위해 iot:Data 엔드포인트를 표시합니다. iot:Data-ATS 엔드포인트를 보려면 앞의 예제와 같이 --endpointType 파라미터를 지정합니다.

Java용 AWS SDK를 IotDataPlaneClient 사용하여 만들기

기본적으로 AWS SDK for Java - 버전 2IotDataPlaneClient 엔드포인트를 사용하여 iot:Data를 생성합니다. iot:Data-ATS 엔드포인트를 사용하는 클라이언트를 생성하려면 다음을 수행해야 합니다.

  • DescribeEndpointAPI를 사용하여 iot:Data-ATS 엔드포인트를 생성합니다.

  • IotDataPlaneClient를 생성할 때 해당 엔드포인트를 지정합니다.

다음 예제에서는 이 두 작업을 모두 수행합니다.

public void setup() throws Exception { IotClient client = IotClient.builder().credentialsProvider(CREDENTIALS_PROVIDER_CHAIN).region(Region.US_EAST_1).build(); String endpoint = client.describeEndpoint(r -> r.endpointType("iot:Data-ATS")).endpointAddress(); iot = IotDataPlaneClient.builder() .credentialsProvider(CREDENTIALS_PROVIDER_CHAIN) .endpointOverride(URI.create("https://" + endpoint)) .region(Region.US_EAST_1) .build(); }

서버 인증을 위한 CA 인증서

사용 중인 데이터 엔드포인트 유형과 협상한 암호 제품군에 따라 AWS IoT Core 서버 인증 인증서는 다음 루트 CA 인증서 중 하나로 서명됩니다.

Amazon Trust Services 엔드포인트(기본 설정됨)

참고

이 링크를 마우스 오른쪽 버튼으로 클릭하고 다른 이름으로 링크 저장을 선택하여 이러한 인증서를 파일로 저장해야 할 수 있습니다.

  • RSA 2048비트 키: Amazon Root CA 1.

  • RSA 4096비트 키: Amazon Root CA 2. 추후 사용 예약.

  • ECC 256비트 키: Amazon Root CA 3.

  • ECC 384비트 키: Amazon Root CA 4. 추후 사용 예약.

이러한 인증서는 모두 Starfield 루트 CA 인증서에서 교차 서명됩니다. 2018년 5월 9일 출시를 시작으로 아시아 태평양 (뭄바이) 지역의 모든 신규 AWS IoT Core AWS IoT Core 지역에는 ATS 인증서만 제공됩니다.

VeriSign 엔드포인트 (레거시)

서버 인증 지침

디바이스에서 AWS IoT Core 서버 인증 인증서를 검증하는 기능에 영향을 미칠 수 있는 많은 변수가 있습니다. 예를 들어 디바이스의 메모리가 너무 한정적이어서 가능한 모든 루트 CA 인증서를 보유할 수 없거나, 디바이스가 비표준 인증서 검증 방법을 구현할 수 있습니다. 이러한 이유로 다음 지침을 따르는 것이 좋습니다.

  • ATS 엔드포인트를 사용하고 지원되는 모든 Amazon Root CA 인증서를 설치하는 것이 좋습니다.

  • 디바이스에 이러한 인증서를 모두 저장할 수 없고 디바이스에서 ECC 기반 검증을 사용하지 않는 경우 Amazon Root CA 3Amazon Root CA 4 ECC 인증서를 생략할 수 있습니다. 디바이스가 RSA 기반 인증서 검증을 구현하지 않는 경우 Amazon Root CA 1Amazon Root CA 2 RSA 인증서를 생략할 수 있습니다. 이 링크를 마우스 오른쪽 버튼으로 클릭하고 다른 이름으로 링크 저장을 선택하여 이러한 인증서를 파일로 저장해야 할 수 있습니다.

  • ATS 엔드포인트에 연결할 때 서버 인증서 검증 문제가 발생하는 경우 관련 교차 서명된 Amazon Root CA 인증서를 신뢰할 수 있는 스토어에 추가해 보세요. 이 링크를 마우스 오른쪽 버튼으로 클릭하고 다른 이름으로 링크 저장을 선택하여 이러한 인증서를 파일로 저장해야 할 수 있습니다.

  • 서버 인증서 검증 문제가 발생하는 경우 디바이스가 루트 CA를 명시적으로 신뢰해야 할 수 있습니다. Starfield Root CA Certificate를 트러스트 스토어에 추가하세요.

  • 위의 단계를 실행한 후에도 문제가 계속 발생하면 AWS 개발자 지원 센터에 문의하세요.

참고

CA 인증서에는 서버 인증서를 검증하는 데 사용할 수 없는 만료 날짜가 있습니다. 따라서 만료 날짜가 도래하기 전에 CA 인증서를 교체해야 하는 경우도 있습니다. 지속적 연결을 보장하고 최신 보안 모범 사례를 유지하려면 모든 디바이스 또는 클라이언트에서 루트 CA 인증서를 업데이트해야 합니다.

참고

디바이스 코드로 연결할 때는 AWS IoT Core 연결에 사용하는 API에 인증서를 전달하십시오. 사용하는 API는 SDK에 따라 다릅니다. 자세한 내용은 AWS IoT Core 디바이스 SDK를 참조하세요.