구글은 블랙 사회를위한 인종 평등을 증진하기 위해 최선을 다하고 있습니다. 방법을 참조하십시오.
이 페이지는 Cloud Translation API를 통해 번역되었습니다.
Switch to English

OpenWeave 공장 프로비저닝 도구

신사-자리-0 .md "> GitHub의에서 소스보기

OpenWeave 공장 프로비저닝 도구 위브 지원 장치 위에 지속, 장치 별 구성 정보를 프로비저닝 할 수있는 편리한 방법을 제공합니다. 팩토리 프로비저닝 도구는 제조 라인 프로세스의 일부로서 사용되도록 의도되는 고객 고유의 ID 및 권한 정보 출하 전에 스탬프와 개별 장치. 또한 개발 과정에서 사용되는 사전 제작 하드웨어를 개인 개발자에 의해 사용될 수 있습니다.

운영의 이론

OpenWeave 공장 프로비저닝 도구의 목표는 장치 펌웨어에 의해 런타임에 집어 사용할 수있는 장치의 지속적인 구성 저장소로 선택 구성 정보를 주입하는 것입니다. 데이터가 저장되는 방법을 정확하게, 그리고 어떤 형식의 세부 사항은, 플랫폼에서 플랫폼에 차이가 있지만 영구 장치 구성은 일반적으로 장치의 내부 플래시에 저장됩니다. 공장 프로비저닝 도구 자체는 최종 저장 형식의 독립적이며, 올바른 방법으로 데이터를 기록하는 장치의 펌웨어 코드에 의존합니다. 툴의 사용자 인터페이스는 유사한 제조 프로세스는 다른 하드웨어 플랫폼에 기반 제품 라인에 걸쳐 이용 될 수 있다는 것을 의미한다, 또한 하드웨어의 유형이 구성되고, 거의 독립적이다.

예를 들어, JTAG 나 SWD 포트 - 공장 프로비저닝 도구는 디버그 또는 제어 인터페이스의 일부 양식을 통해 대상 장치에 연결되어있는 호스트 컴퓨터에서 작업 실행 설계되었습니다. 이 도구는 특수 코드 형태의 RAM 디바이스에 프로비저닝 정보를 주입함으로써 작동한다. 이 장치는 다음 포인트 코드가 내장 된 장치의 펌웨어가 인코딩 된 데이터를 찾아에, 무결성을 검증하고, 플랫폼에 대한 적절한 형식 영구 저장소에 포함 된 값을 기록하는 다시 시작을 지시한다.

감지하고 주입 프로비저닝 데이터 프로세스가 OpenWeave 소자 층에 내장되고, 지원되는 플랫폼을 사용할 수 있음을 온 - 디바이스 번호. 일단 코드는 초기 장치 초기화 프로세스의 시점에서, 장치가 부팅 때마다 자동으로 실행 가능. 코드는 RAM의 플랫폼 특정 지역을 검색하여 운영하고 있습니다. 메모리의 겸손한 마운트와 플랫폼 (예를 들어, <1M), 사용 가능한 모든 RAM의 스캔 포함한다.

RAM에 배치하면, 프로비저닝 된 데이터가 신속하게 스캔 과정에서 발견 될 수있는 용이하게 식별 할 접두사로 인코딩된다. 암호화 해시에 기초하여 무결성 체크 값을 처리하기 전에 상기 데이터의 유효성을 확인하기 위해 사용된다.

기본적으로 프로비저닝 공구 선택은 RAM의 위치가 대상 장치 플랫폼 기반 프로비저닝 데이터를 삽입한다. 이 선택은 도구에 대한 인수를 통해 재정의 할 수 있습니다. 일반적으로, 이는 디바이스가 프로비저닝 된 데이터를 수신하기위한 구체적 RAM 위치를 보유 펌웨어 필요는 없다. 보다 일반적으로, 프로비저닝 데이터는 다른 목적을 위해 할당하지만, 초기 장치 부팅 과정에서 일반적으로 사용되지 않은 RAM 위치에 기록됩니다. 일반적인 선택은 초기 시스템 스택의 상단, 또는 힙 경기장의 끝입니다.

공장 프로비저닝 도구는 대상 장치에 인터페이스 외부 개발 도구의 집합에 의존합니다. 사용되는 특정 도구는 타겟 장치의 종류에 의존한다. 두 장치 인터페이스는 현재 지원되는 :

  • 장치의 JTAG 나 SWD 포트에 연결된 SEGGER J-링크 디버그 프로브
  • Espressif ESP32에 연결된 USB 직렬 포트

J-Link 인터페이스는 별도로 호스트 시스템에 설치되어 있어야합니다 SEGGER J-링크 사령관 도구 (JLinkExe)에 의존한다.

ESP32 인터페이스는 Espressif의 ESP-IDF SDK의 일부로 제공되는 Espressif esptool.py 명령에 의존합니다.

프로비저닝 할 수있는 정보의 종류

OpenWeave 공장 프로비저닝 도구는 다음과 같은 유형의 정보를 프로비저닝 할 수있다 :

  • 디바이스 일련 번호
  • 제조업체 할당 위브 장치 ID
  • 제조업체 할당 위브 인증서와 개인 키
  • 위브 페어링 코드
  • 제품 개정 번호
  • 제조 날짜

일반적으로 장치가 올바르게 작동하려면 위의 모든 정보가 필요하지만,이 조항에 동시에 모든 정보를 필요하지 않습니다. 따라서, 정보의 다른 유형의 프로비저닝 제조 공정에 고유 한 지점에서 일어날 수있다. 또한, 후속 공정에서 프로비저닝 새로운 값이 이전에 제공된 값을 대체 할 수있다.

프로비저닝 정보 출처

프로비저닝 정보 장치는 후속의 방법으로 공장 프로비저닝 도구를 제공 할 수 있습니다 :

  • 명령 줄 인수
  • 프로비저닝 CSV 파일을 사용하여
  • 둥지 프로비저닝 서버에서 값을 가져 오는으로

명령 줄

가장 간단한 형태로, 디바이스 프로비저닝 정보는 OpenWeave 공장 프로비저닝 도구 명령 행에 직접 지정됩니다. 예를 들면 :

 ./weave-factory-prov-tool --target nrf52840 --device-id 18B4300000000001 \
    --pairing-code NESTUS --mfg-date 2019/04/01

이러한 직조 인증서와 개인 키 이진 데이터 값,베이스-64 문자열로 지정하거나, 또는 수 원료 (바이너리) 형태로 원하는 데이터를 포함하는 파일의 이름과 같은.

사용할 수있는 명령 행 인수의 전체 목록은 아래를 참조하십시오.

프로비저닝 CSV 파일

디바이스의 프로비저닝 대부분을 수용하기 위해, 공장 프로비저닝 도구는 또한 CSV 형식의 프로비저닝 데이터 파일에서 데이터를 프로비저닝 읽을 수 있습니다. 이다 - 이것은 파일의 열은 특정 프로비저닝 데이터 유형에 대응하는 예상 Serial_Num , Certificate , Private_Key 등 파일 행이 직조 장치 ID (의해 인덱싱 특정 장치에 대한 개별 값 수득 Device_Id ). 특정 장치의 ID는 명령 행에 지정해야합니다 프로비저닝 할 수 있습니다. 예를 들면 :

 ./weave-factory-prov-tool --target nrf52840 --device-id 18B4300000000001 \
    --prov-csv-file ./dev-provisioning-data.csv

다음 CSV 열이 지원됩니다

이름 체재 기술
Device_Id 16 개의 16 진수 위브 장치 ID입니다. 있어야합니다.
Serial_Num 장치 일련 번호입니다.
Certificate 기본-64 문자열 제조업체 할당 위브 장치 인증서.
Private_Key 기본-64 문자열 제조업체 할당 된 개인 키 직조.
Pairing_Code 위브 페어링 코드.
Product_Rev 정수 제품 개정 번호.
Mfg_Date YYYY / MM / DD 장치 날짜 제조.

열 순서에 CSV 파일에 나타날 수 있습니다. 모든 열을 제외하고는 선택 사항입니다 Device_Id . CSV 파일에 존재하지 않는 모든 값은 단순히 장치에 프로비저닝되지 않습니다.

사용자는 CSV 파일뿐만 아니라 커맨드 라인에서 개별 프로비저닝 값을 지정할 수있는 경우, 파일의 그 이상의 명령 행 값을 인출 선행한다.

공장 프로비저닝 도구에 의한 CSV 파일 형식 지원의 출력과 호환되는 weave 도구의 gen-provisioning-data 명령.

둥지 프로비저닝 서버

공장 프로비저닝 도구는 HTTPS 기반 프로토콜을 사용하여 둥지 프로비저닝 서버에서 선택 프로비저닝 정보를 가져 오는 지원합니다. 프로비저닝 서버 프로토콜은 제조업체 할당 위브 장치 인증서, 해당 개인 키 및 프로비저닝 서버에서 직물 페어링 코드를 가져 오는 데 사용할 수 있습니다.

프로비저닝 서버의 네트워크 위치는 프로비저닝 도구 명령 줄에서 기본 URL을 제공하여 지정됩니다. 원하는 프로비저닝 정보는 명령 라인에서 직조 기기 ID를 지정하여 선택된다. 예를 들면 :

 ./weave-factory-prov-tool --target nrf52840 --device-id 18B4300000000001 \
    --prov-server https://192.168.172.2:8000/

사용자는 프로비저닝 서버 URL에 추가하여 명령 행에서 개별 프로비저닝 값을 지정할 수 있습니다. 이 경우, 값은 서버에 의해 반환 된 값을 통해 명령 줄 걸릴 전례에 주어진.

활성화 / 공장 프로비저닝 지원을 비활성화

장치 펌웨어에서 프로비저닝 OpenWeave 공장에 대한 지원은에 의해 제어되는 WEAVE_DEVICE_CONFIG_ENABLE_FACTORY_PROVISIONING 컴파일 시간 구성 옵션을 선택합니다. 이 옵션은 기본적으로 활성화되어 있습니다. 이 기능은 응용 프로그램에서 옵션을 대체하여 사용할 수 있습니다 WeaveProjectConfig.h 파일을. 예를 들면 :

#define WEAVE_DEVICE_CONFIG_ENABLE_FACTORY_PROVISIONING 0

일반적으로는 펌웨어 장치 디버그 인터페이스가 적절하게 생산 장치에서 비활성화되어 있음을 제공 생산 장치 프로비저닝 공장을 가능하게하는 것이 안전합니다. 이것은 (부팅 프로세스의 일부로서 블록 디버그 액세스하는 보안 부트 로더를 통해, 예를 들어) (온 칩 퓨즈를 불어 넣음으로써, 예를 들어) 하드웨어 수단을 통해 달성하거나, 또는 소프트웨어 일 수있다.

공장 프로비저닝 도구를 실행

OpenWeave 공장 프로비저닝 도구는 다음 명령 줄 옵션을 지원합니다 :

선택권 기술
--target <문자열> 대상 장치 유형입니다. 선택 사항은 다음과 같습니다 nrf52840, esp32
--load-ADDR <헥스 자리> 프로비저닝 데이터를 기록 할있는 장치 메모리 주소.
--verbose, -v 출력 상세 레벨을 조정합니다. 상세를 높이기 위해 여러 개의 인수를 사용합니다.
--serial-NUM <문자열> 장치 일련 번호를 설정합니다.
--device-ID <헥스 자리> 제조업체에서 할당 된 디바이스 ID를 설정합니다.
--device-CERT <기본-64> | <파일 이름> 제조업체 할당 위브 장치 인증서를 설정합니다.
--device 키 <기본-64> | <파일 이름> 제조업체에서 할당 위브 장치 개인 키를 설정합니다.
--pairing 코드 <문자열> 장치 페어링 코드를 설정합니다.
- 제품 반전 <정수> 장치의 제품 버전을 설정합니다.
--mfg - 날짜 <YYYY / MM / DD> | 오늘 | 지금 장치의 제조 날짜를 설정합니다.
--jlink-CMD <path 이름> JLINK 명령 경로. 'JLinkExe'기본값.
--jlink-경우 SWD | JTAG J-링크 인터페이스 유형. SWD 기본값.
--jlink 속도 <정수> | 적응 | 자동차 J-링크 인터페이스 속도.
--jlink-SN <문자열> J-Link는 일련 번호를 조사.
--esptool-CMD <path 이름> esptool 명령 경로. 'esptool.py'기본값.
--port <path 이름> ESP32에 대한 COM 포트 장치 이름. / 청각 장애 / USB0 기본값.
--speed <정수> COM 포트의 전송 속도. 115200 기본값.
--prov-CSV 파일 <파일 이름> 프로비저닝 CSV 파일에서 데이터를 프로비저닝 읽기 장치.
--prov 서버 <URL> 프로비저닝 서버에서 데이터를 프로비저닝 읽기 장치.
--disable-서버 검증 HTTPS를 사용하는 경우, 인증서의 비활성화 검증은 프로비저닝 서버에서 제공.

다음 명령은 특정 값에 장치 ID, 일련 번호, 제품 개정 페어링 코드를 설정한다. 제조 날짜는 현재 날짜로 설정된다. 그리고 장치의 인증서와 개인 키는 함께 제공되는 CSV 파일에 주어진 테스트 값으로 설정됩니다 openweave-core 소스 저장소.

 ./weave-factory-prov-tool --target nrf52840 --device-id 18B4300000000042 \
    --serial-num JAYS_DEVICE_42 --product-rev 1 --pairing-code NESTUS --mfg-date today \
    --prov-csv-file ~/projects/openweave-core/certs/development/device/test-dev-provisioning-data.csv