Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

안전한 제로 터치 프로비저닝

메모:

SZTP(Secure Zero Touch Provisioning)를 지원하는 플랫폼을 확인하려면 기능 탐색기로 이동하십시오. Feature Explorer(기능 탐색기) 페이지의 기능 탐색(Explore Features ) 섹션에서 모든 기능(All Features)을 선택합니다. 기능 제품군별로 그룹화된 기능 상자에서 보안 ZTP를 선택합니다. 피처 검색(Search for Features) 편집 상자에 피처 이름을 입력할 수도 있습니다. ZTP 지원이 어떻게 확장되었는지에 대한 자세한 내용은 이 항목의 끝에 있는 릴리스 기록 표를 참조하십시오.

개요

메모:

PHC(Phone-Home Client) 프로세스는 SZTP(Secure Zero Touch Provisioning)을 지원합니다.

RFC-8572 기반 SZTP를 사용하여 공장 기본 상태에 있는 원격 위치 네트워크 디바이스를 부트스트랩할 수 있습니다. SZTP는 원격 네트워크 디바이스를 프로비저닝하기 전에 부트스트랩 서버와 네트워크 디바이스 간의 상호 인증을 활성화합니다.

상호 인증을 활성화하려면 고유한 디지털 바우처와 DevID(디지털 디바이스 ID 또는 암호화 디지털 ID) 프로그래밍된 네트워크 디바이스가 필요합니다. DevID는 네트워크 디바이스의 TPM(Trusted Platform Module) 2.0 칩에 내장되어 있습니다. 주니퍼 네트웍스는 고객에게 각 적격 네트워크 디바이스에 대한 디지털 바우처를 발행합니다.

당사는 관리 및 WAN 인터페이스에서 SZTP를 지원합니다.

메모:

DHCP 기반 레거시 ZTP는 비활성화됩니다. SZTP를 지원하는 하드웨어에서는 DHCP 기반 레거시 ZTP를 지원하지 않습니다.

SZTP는 RFC 8572를 준수하며, 네트워크 디바이스의 ID 및 신뢰성을 보장하기 위해 다음 인프라가 필요합니다.

  • TPM(신뢰할 수 있는 플랫폼 모듈) 2.0

  • 디지털 디바이스 ID(DevID)

  • DevID 인증서

  • X.509 PDC(고정 도메인 인증서)

  • 소유자 인증서

  • DevID 트러스트 앵커

  • 상품권

    바우처를 생성하는 방법에 대한 자세한 내용은 바우처 인증서 생성을 참조하십시오.

보안 ZTP로 주니퍼 디바이스를 온보딩하려면 보안 ZTP 빠른 시작 가이드를 참조하십시오.

혜택

  • 수동 개입 없이 원격 네트워크 디바이스를 프로비저닝할 수 있습니다.

  • 중앙 위치에서 네트워크 디바이스를 안전하게 프로비저닝하여 권한이 없는 엔터티가 네트워크 디바이스를 제어하는 것을 방지할 수 있습니다.

  • 리디렉션 및 부트스트랩 서버는 네트워크 디바이스의 TPM에 프로그래밍된 DevID를 기반으로 네트워크 디바이스의 신뢰성을 확인합니다.

  • 네트워크 디바이스는 디바이스의 바우처를 기반으로 리디렉션 서버 및 부트스트랩 서버와 부트스트랩 정보의 신뢰성을 확인합니다.

사용 사례

공장에서 배송되는 네트워크 장치의 경우 네트워크 장치를 수동으로 건드리지 않고도 네트워크 장치를 안전하게 원격으로 작동시킬 수 있습니다. 네트워크 디바이스는 DHCP(Dynamic Host Configuration Protocol)를 사용하여 네트워크 연결 정보를 얻고 원격 부트스트랩 서버에 연결할 수 있어야 합니다.

SZTP 요구 사항

네트워크에 SZTP를 구축하려면 다음 작업을 수행해야 합니다.

  1. DHCP 및 DNS 서버를 배포합니다.

  2. DHCP 서버에서 DHCP V4 옵션 143 또는 DHCP V6 옵션 136을 구성하여 DHCP 서버가 리디렉션 및 부트스트랩 서버의 이름을 알릴 수 있도록 합니다.

  3. 리디렉션 및 부트스트랩 서버를 배포합니다.

  4. 주니퍼 네트웍스로부터 DevID 트러스트 앵커를 인수합니다.

  5. 하나의 네트워크 디바이스 또는 네트워크 디바이스 그룹에 대한 소유자 인증서를 생성합니다.

  6. 각 네트워크 도메인에 대해 고정된 도메인 인증서(PDC)를 생성합니다.

  7. 주니퍼 네트웍스에서 바우처를 획득합니다.

  8. 각 네트워크 디바이스에 대한 리디렉션 및 부트스트랩 정보를 생성합니다.

  9. 리디렉션 및 부트스트랩 서버가 제공하는 리디렉션 및 부트스트랩 정보를 사용하여 네트워크 디바이스를 프로비저닝합니다.

네트워크에 SZTP를 구축한 다음 새로운 네트워크 디바이스를 구축하면 네트워크 디바이스가 자동으로 부트스트랩됩니다.

SZTP 인프라 구성 요소

TPM(신뢰할 수 있는 플랫폼 모듈) 2.0

TPM은 보안 관련 기능을 제공하는 마이크로칩입니다. 제조 과정에서 주니퍼 네트웍스는 디지털 디바이스 ID(DevID)와 비대칭 키 쌍(공개 키 및 개인 키)을 사용하여 TPM을 프로그래밍합니다. TPM은 변조 방지 위치에서 비대칭 쌍의 프라이빗 키를 잠급니다.

DevID

DevID는 프라이빗 키에 해당하며, 프라이빗 키를 보호합니다. 서명 또는 암호화가 필요한 애플리케이션은 DevID 프라이빗 키를 사용합니다.

네트워크 디바이스에서 실행되는 애플리케이션은 네트워크 디바이스의 TPM에 있는 DevID 프라이빗 키를 사용하여 원격 검증 도구에 네트워크 디바이스의 ID를 증명합니다.

DevID 인증서

주니퍼 네트웍스는 개인 키의 DevID에 해당하는 공개 키에 대한 DevID 인증서(X.509 인증서)를 생성합니다. DevID 인증서에는 DevID가 생성된 네트워크 디바이스의 일련 번호가 포함되어 있습니다. DevID 인증서는 IEEE 802.1AR 표준에 따라 생성됩니다.

메모: IDevID를 지원합니다. LDevID는 지원하지 않습니다.

X.509 PDC(고정 도메인 인증서)

모든 네트워크 도메인에 대해 X.509 고정 PDC(도메인 인증서)를 만듭니다. PDC는 루트 CA 인증서 또는 중간 CA 인증서일 수 있습니다. PDC를 DER(고유 인코딩 규칙)에서 기본 64 인코딩으로 변환합니다. PDC가 CA(인증 기관)이고 X.509를 준수하는지 확인합니다.

소유자 인증서

소유자 인증서는 네트워크 디바이스를 구입하거나 소유한 공급업체를 확인합니다. 각 네트워크 디바이스 또는 네트워크 디바이스 그룹에 대한 비대칭 키 쌍(공개 키 및 개인 키)을 생성합니다. 키 쌍은 RSA(Rivest-Shamir-Adleman) 또는 ECC(Elliptic Curve Cryptography)를 사용해야 합니다. 개인 키를 안전한 위치에 안전하게 보관합니다. PDC(고정된 도메인 인증서)는 소유자 인증서의 CA여야 합니다.

DevID 트러스트 앵커

주니퍼 네트웍스는 DevID 트러스트 앵커를 제공합니다. 리디렉션 및 부트스트랩 서버에 DevID 트러스트 앵커를 설치하여 TLS 세션을 설정하는 동안 디바이스 또는 클라이언트가 제공하는 DevID 인증서를 확인합니다.

바우처 인증서

바우처 인증서를 받으려면 JAL(Juniper Agile Licensing) 포털에서 PDC 및 네트워크 디바이스의 일련 번호를 입력합니다. 바우처 인증서를 받으면 부트스트랩 서버에서 부트스트랩 정보의 일부로 포함합니다. 부트스트랩 서버는 네트워크 디바이스에 바우처 인증서를 제공합니다. 그런 다음 네트워크 디바이스는 부트스트랩 정보를 사용하여 리디렉션 서버가 제공하는 트러스트 앵커를 확인합니다.

바우처를 받는 방법에 대한 단계별 지침은 바우처 인증서 생성을 참조하십시오.

DevID 워크플로우

  1. 애플리케이션에 DevID를 사용하는 서명 또는 암호화가 필요한 경우 애플리케이션은 부트스트랩 서버와의 TLS 세션을 요청합니다.

  2. 부트스트랩 서버는 TLS 응답을 네트워크 디바이스로 전송하여 네트워크 디바이스에 다음 작업을 요청합니다.
    • DevID 인증서 제공
    • 개인 키가 있음을 증명합니다
  3. 네트워크 디바이스는 개인 키의 DevID로 세션 데이터에 서명합니다.

  4. 네트워크 디바이스는 디지털 서명과 DevID 인증서를 부트스트랩 서버로 보냅니다.

  5. 부트스트랩 서버는 DevID 인증서를 사용하여 디지털 서명을 확인합니다.
  6. 부트스트랩 서버는 주니퍼 네트웍스에서 제공하는 DevID 트러스트 앵커를 사용하여 DevID 인증서를 검증합니다.

온보딩 정보

네트워크 디바이스가 자체적으로 부트스트랩되고 다른 시스템과 보안 연결을 설정하려면 온보딩 정보를 제공해야 합니다. 온보딩 정보는 네트워크 디바이스가 스스로 부트스트랩하고 다른 시스템과 연결하는 데 사용하는 데이터입니다. 네트워크 디바이스가 이 데이터를 전송할 때 RFC 8572를 준수하는 형식으로 데이터를 인코딩해야 합니다.

부팅 이미지 정보

부팅 이미지 정보에는 OS 이름 및 OS 버전이 포함됩니다. OS 버전으로 "Junos"를 지정하는 것이 좋습니다. 네트워크 디바이스가 소프트웨어를 계속 다운로드 및 설치하지 않도록 올바른 OS 버전을 지정했는지 확인하십시오.

URI 다운로드

다운로드 URI는 부팅 이미지의 위치를 제공합니다.

이미지 확인

이미지 확인 필드에는 소프트웨어 이미지에 대한 보안 해시를 생성하는 데 사용하는 해시 알고리즘과 소프트웨어 이미지의 다이제스트 값이 포함됩니다. SZTP는 SHA256을 지원합니다. 다이제스트 값을 16진수 문자열로 인코딩합니다.

구성 처리

SZTP는 구성을 병합하거나 대체할 수 있습니다. XML로 구성을 만들고 구성을 Base 64 형식으로 인코딩합니다. 구성은 부트스트랩 서버가 부트스트랩 정보에 포함할 수 있도록 Base 64 형식이어야 합니다.

사전 구성 스크립트

SZTP는 Bourne 쉘 스크립트와 Python 스크립트를 지원합니다. Bourne 쉘 스크립트 인터프리터 경로는 #!/bin/sh이고, Python 인터프리터 경로는 #!/usr/bin/python입니다.

스크립트가 Bourne 스크립트인 경우, SZTP는 스크립트의 끝 값을 확인합니다. 스크립트가 0이 아닌 값으로 종료되면 SZTP 프로세스가 다시 시작됩니다. 스크립트가 Python 스크립트인 경우 SZTP는 스크립트의 끝 값을 확인하지 않습니다. 스크립트가 성공적으로 실행되더라도 스크립트의 출력에 오류가 있을 수 있습니다.

XML의 온보딩 정보 예는 다음과 같습니다.

사후 구성 스크립트

사전 구성 스크립트 요구 사항은 사후 구성 스크립트에도 적용됩니다. 사후 구성 스크립트가 실패하면 디바이스는 사전 구성 스크립트가 실행되기 전에 실행 중이던 구성으로 롤백됩니다. SZTP 프로세스가 다시 시작됩니다.

DHCP V4 옵션 143

DHCP 클라이언트에 IP 주소를 제공하기 전에 DHCP 서버에서 DHCP V4 옵션 143을 구성합니다.

MX 시리즈 디바이스를 DHCP 서버로 사용하는 경우 DHCP V4 옵션 143을 활성화합니다.

다음은 샘플 구성입니다.

DHCP V6 옵션 135

다음은 샘플 구성입니다.

16진수 형식을 ASCII 텍스트 형식으로 변환

예를 들어, DHCP V6 옵션 135에 있는 이 16진수 텍스트 문자열은 ASCII 텍스트 형식의 26바이트와 같습니다. 16진수 형식에서 26은 001a로 표시됩니다. 각 16진수는 1바이트와 같고 각 바이트는 ASCII 문자의 조합과 같습니다.

001a68747470733a2f2f6d782d7068732d736572766572362e6e6574 16진수 문자열을 ASCII 문자로 변환하려면 16진수 문자와 숫자를 ASCII 문자, 숫자 및 기호에 매핑해야 합니다.

이 예제에서는 DHCP 옵션 135에 사용되는 URL을 매핑합니다. DHCP 옵션 143에 사용된 URL에 대해 동일한 프로세스를 사용할 수 있습니다.

다음은 16진수 형식과 ASCII 형식 사이의 매핑을 보여주는 예제 URL입니다. 각 16진수가 ASCII 형식의 문자와 기호에 매핑되는 것을 볼 수 있습니다.

최종 도착 URL은 https://ab-cde-server.net.

16진수에서 ASCII로 또는 그 반대로 변환기를 사용하여 결과가 올바른지 확인하십시오.

SZTP 워크플로우

메모: 이 항목에는 허용되는 워크플로 중 하나만 포함됩니다. 부록-B를 포함하여 RFC 8572 표준의 모든 것을 지원합니다.

디바이스가 아직 공장 기본 상태가 아닌 경우 다음 명령 중 하나를 실행하여 디바이스를 공장 기본 상태로 전환합니다.

  • Junos OS를 request vmhost zeroize 실행하는 네트워크 디바이스에서 명령을 실행합니다.

  • Junos OS Evolved를 실행하는 네트워크 디바이스의 request system zeroize 경우 명령을 실행합니다.

디바이스가 공장 기본 상태로 부팅되면 다음 이벤트가 발생합니다.

  1. DHCP 클라이언트는 부트스트랩 서버 또는 고객 리디렉션 서버의 이름, IP 주소 또는 호스트 이름을 얻기 위해 DHCP 서버에 요청을 보냅니다.

    V4용 DHCP 옵션 143 또는 V6용 DHCP 옵션 135를 구성합니다. DHCP 클라이언트는 디바이스가 부트스트랩을 완료할 때까지 각 부트스트랩 또는 리디렉션 서버에 대한 IP 주소를 요청합니다.

  2. DHCP 서버는 부트스트랩 또는 고객 리디렉션 서버의 서버 호스트 이름을 DHCP 클라이언트로 보냅니다.

  3. 디바이스의 PHC(Phone-Home Client)는 DHCP 옵션에서 학습한 서버에 부트스트랩 요청을 보냅니다. DHCP 옵션에서 여러 서버를 제공한 경우 디바이스는 각 서버에 순차적으로 부트스트랩을 시도합니다.

    디바이스는 PHC가 DHCP 옵션을 통해 학습하는 부트스트랩, 고객 리디렉션 또는 DNS 서버로 부트스트랩을 시도합니다. 디바이스는 디바이스 부트스트랩이 성공할 때까지 라운드 로빈 방식으로 서버에 부트스트랩을 시도합니다.

  4. 부트스트랩 서버는 소유자 인증서 및 소유권 바우처와 함께 서명된 온보딩 정보로 응답합니다.

  5. PHC는 소유자 인증서 및 소유권 바우처의 정보를 사용하여 서명된 온보딩 정보를 확인합니다.
  6. PHC는 이미지 및 구성 정보를 추출합니다.

  7. 디바이스가 다른 이미지를 실행 중인 경우 디바이스는 이미지를 다운로드하고 새 이미지를 사용하여 업그레이드한 다음 새 이미지로 재부팅합니다.

    재부팅 후 필요한 이미지가 이미 있기 때문에 디바이스가 재부팅되지 않는다는 점을 제외하고 전체 SZTP 시퀀스가 반복됩니다.

  8. PHC가 구성을 커밋합니다.

  9. (선택 사항) PHC는 사후 구성 스크립트를 실행합니다.

  10. PHC는 부트스트랩 완료 메시지를 PHS에 보냅니다.

  11. 이 장치는 PHC 관련 구성 및 리소스를 정리합니다.

  12. PHC가 종료됩니다.

표 1: SZTP에 지원되는 스크립트

스크립트 유형

통역사 경로

플랫폼 지원

셸 스크립트

#!/bin/sh

모든 네트워크 장치

Python 스크립트

#!/usr/bin/python

향상된 자동화로 Junos OS를 실행하는 네트워크 디바이스

진화한 Junos OS 실행 네트워크 디바이스

듀얼 라우팅 엔진을 사용하는 네트워크 디바이스용 SZTP

Junos OS 소프트웨어를 실행하는 네트워크 디바이스의 백업 라우팅 엔진에서 소프트웨어를 업그레이드하기 전에 기본 라우팅 엔진의 계층에서 문을 [edit system] 활성화 secure-ztp provision-backup-re 합니다

Junos OS 소프트웨어를 실행하는 네트워크 디바이스에서는 기본 라우팅 엔진의 [edit system] 계층에서 문을 활성화 provision-backup-re 하여 백업 라우팅 엔진을 부트스트랩할 수 있습니다.

Junos OS Evolved 소프트웨어를 실행하는 네트워크 디바이스에서 계층에서 [edit system] 문을 활성화 auto-sw-sync 하여 기본 라우팅 엔진이 업그레이드 또는 다운그레이드를 통해 백업 라우팅 엔진에서 동일한 이미지 버전이 존재하도록 보장합니다.

이중 라우팅 엔진이 있는 Junos OS 기반 시스템에서는 기본 라우팅 엔진이 이미 필요한 이미지 버전을 실행하고 있더라도 기본 라우팅 엔진이 이미지를 다운로드합니다. 디바이스는 기본 라우팅 엔진이 필요한 경우 백업 라우팅 엔진을 업그레이드할 수 있도록 이미지를 다운로드합니다.

Junos OS Evolved 기반 시스템에서 기본 라우팅 엔진은 항상 실행 중인 이미지의 사본을 유지합니다.

기본 라우팅 엔진의 synchronize 계층 또는 GRES(Graceful Restart Engine Switchover)에서 문을 [edit system] 활성화하지 않은 경우 기본 라우팅 엔진은 구성 및 상태를 백업 라우팅 엔진과 동기화하지 않습니다. 이 경우 기본 라우팅 엔진은 데이터를 백업 라우팅 엔진과 동기화하기 전에 백업 라우팅 엔진의 신뢰성을 확인합니다.

기본 라우팅 엔진이 백업 라우팅 엔진을 프로비저닝하기 전에 기본 라우팅 엔진은 백업 라우팅 엔진의 신뢰성을 확인합니다. 기본 라우팅 엔진은 백업 라우팅 엔진의 DevID를 확인하여 백업 라우팅 엔진이 주니퍼 공인 라우팅 엔진인지 확인합니다.

메모:

기본 라우팅 엔진은 백업 라우팅 엔진이 기본 라우팅 엔진으로부터 정보를 수신할 권한이 있는지 여부를 확인하지 않습니다. 또한 백업 라우팅 엔진은 기본 라우팅 엔진의 신뢰성이나 권한을 확인하지 않습니다.

기본 라우팅 엔진은 다음과 같은 상황에서 백업 라우팅 엔진을 프로비저닝합니다.

  • 기본 라우팅 엔진이 SZTP를 사용하여 부트스트랩된 경우.

  • 기본 라우팅 엔진이 부트스트랩 중일 때, 백업 라우팅 엔진이 존재하거나 SZTP 프로세스 중에 삽입될 때.

  • 백업 라우팅 엔진이 재부팅되거나 교체될 때.

기본 라우팅 엔진이 백업 라우팅 엔진의 신뢰성을 확인하고 프로비저닝 요구 사항을 충족하면 기본 라우팅 엔진은 백업 라우팅 엔진에서 실행 중인 소프트웨어 버전을 확인합니다. 백업 라우팅 엔진의 소프트웨어 버전이 기본 라우팅 엔진의 소프트웨어 버전과 다른 경우, 기본 라우팅 엔진은 백업 라우팅 엔진을 기본 라우팅 엔진이 실행 중인 것과 동일한 소프트웨어 버전으로 업그레이드합니다.

두 라우팅 엔진이 동일한 소프트웨어를 실행하면, 기본 라우팅 엔진은 백업을 위한 라우팅 엔진과 구성을 동기화합니다.