
Библиотека асимметричной криптографии для генерации подписанных URL на встраиваемых устройствах, обеспечивающая доступ к ресурсам с ограничением по времени с использованием PSA Crypto API и поддержкой Zephyr и ESP-IDF.
Подписанные URL для небольших устройств.
signy — это библиотека для генерации подписанных URL на встраиваемых устройствах с использованием асимметричной криптографии. Подписанные URL обычно используются для предоставления временного доступа к частным ресурсам, таким как ресурсы, обслуживаемые Сетью доставки контента (CDN). В контексте встраиваемых устройств подписанные URL могут использоваться для предоставления внешней системе или другому компоненту той же системы доступа к определенному ресурсу. Например, устройство может сгенерировать подписанный URL и передать его более мощной системе, чтобы та загрузила ресурс от его имени.
Использование signy требует сервера, способного проверять сгенерированные им подписанные URL. При использовании signy с Golioth сертификаты, связанные с Центром сертификации (CA), выдавшим сертификат устройства, должны быть загружены в ваш проект.
signy использует API криптографии Platform Security Architecture (PSA) для операций подписи. Закрытые ключи должны быть сгенерированы или импортированы с использованием API PSA Crypto, а подписанный сертификат, содержащий открытый ключ, должен быть передан библиотеке signy.
Подписанные URL, созданные signy, соответствуют следующему формату.
BASEURL?nb=NOTBEFORE&na=NOTAFTER&cert=CERTIFICATE&sig=SIGNATURE
BASEURL: расположение ресурса (например, https://gw.golioth.io/.u/c/[email protected])NOTBEFORE / NOTAFTER: метки времени Unix, определяющие окно, в течение которого подписанный URL действителен. signy использует системное время устройства для NOTBEFORE и устанавливает метку времени NOTAFTER на основе CONFIG_SIGNY_URL_VALIDITY_DURATION.CERTIFICATE: кодировка URL base64 без дополнения сертификата устройства.SIGNATURE: подпись всей части URL, предшествующей &sig=.Репозиторий signy является модулем Zephyr и может быть включён в любой проект Zephyr путём добавления следующих строк в файл west.yml проекта.
- name: signy
path: modules/lib/signy
revision: v0.2.0
url: https://github.com/golioth/signy.git
Смотрите примеры для Zephyr для получения дополнительной информации.
Репозиторий signy является компонентом ESP-IDF и может быть включён в любой проект ESP-IDF путём указания его в качестве зависимости в файле idf_component.yml проекта.
dependencies:
signy:
version: v0.2.0
git: https://github.com/golioth/signy.git
Смотрите примеры для esp-idf для получения дополнительной информации.