
임베디드 장치에서 서명된 URL을 생성하기 위한 비대칭 암호화 라이브러리로, PSA Crypto API를 사용하여 시간 제한 리소스 액세스를 가능하게 하며 Zephyr 및 ESP-IDF를 지원합니다.
소형 기기를 위한 서명된 URL.
signy는 비대칭 암호화를 사용하여 임베디드 장치에서 서명된 URL을 생성하는 라이브러리입니다. 서명된 URL은 일반적으로 콘텐츠 전송 네트워크(CDN)에서 제공하는 개인 리소스에 대해 시간 제한 액세스를 부여하는 데 사용됩니다. 임베디드 장치의 맥락에서, 서명된 URL은 외부 시스템이나 동일 시스템의 다른 구성 요소가 특정 리소스에 액세스할 수 있도록 하는 데 사용될 수 있습니다. 예를 들어, 장치가 서명된 URL을 생성하고 이를 더 강력한 시스템에 전달하여 해당 시스템이 대신 리소스를 다운로드할 수 있도록 할 수 있습니다.
signy를 사용하려면 생성된 서명된 URL을 검증할 수 있는 서버가 필요합니다. signy를 Golioth와 함께 사용하는 경우, 장치 인증서를 발급한 인증 기관(CA)과 관련된 인증서를 프로젝트에 업로드해야 합니다.
signy는 서명 작업을 위해 PSA Crypto API를 활용합니다. 개인 키는 PSA Crypto API를 사용하여 생성하거나 가져와야 하며, 공개 키를 포함하는 서명된 인증서를 signy 라이브러리에 전달해야 합니다.
signy가 생성하는 서명된 URL은 다음 형식을 따릅니다.
BASEURL?nb=NOTBEFORE&na=NOTAFTER&cert=CERTIFICATE&sig=SIGNATURE
BASEURL: 리소스의 위치 (예: https://gw.golioth.io/.u/c/[email protected])NOTBEFORE / NOTAFTER: 서명된 URL이 유효한 기간을 정의하는 유닉스 타임스탬프. signy는 NOTBEFORE에 장치 시스템 시간을 사용하고 CONFIG_SIGNY_URL_VALIDITY_DURATION에 따라 NOTAFTER 타임스탬프를 설정합니다.CERTIFICATE: 장치 인증서의 base64 패딩 없는 URL 인코딩.SIGNATURE: &sig= 앞에 있는 URL 전체 부분에 대한 서명.signy 저장소는 Zephyr 모듈이며, 프로젝트의 west.yml 파일에 다음을 추가하여 모든 Zephyr 프로젝트에 포함할 수 있습니다.
- name: signy
path: modules/lib/signy
revision: v0.2.0
url: https://github.com/golioth/signy.git
자세한 내용은 Zephyr 예제를 참조하세요.
signy 저장소는 ESP-IDF 구성 요소이며, 프로젝트의 idf_component.yml에서 종속성으로 지정하여 모든 ESP-IDF 프로젝트에 포함할 수 있습니다.
dependencies:
signy:
version: v0.2.0
git: https://github.com/golioth/signy.git
자세한 내용은 esp-idf 예제를 참조하세요.