D2W: Безопасность
Возможность управления по локальной сети без “токена безопасности” по умолчанию заблокирована. Это может быть актуальным, например, при использовании локального управления в общественных местах. Токен безопасности необходимо добавлять ко всем запросам на изменение. Требование наличия токена безопасности в запросах определяется параметром lanBlock 114 = 1 или в меню устройства пунктом bLc = Lan. Отключить данное требование можно изменив параметр lanBlock 114 на значение 0 или в меню устройства пунктом bLc выбрав вариант oFF
Note
На устройстве дополнительно реализована возможность блокирования работы через облако Welrok. Данная блокировка регулируется параметром cloudBlock 115 = 1 или со страницы http://dev_ip, где dev_ip - ip адрес устройства в локальной сети.
Important
Если включены обе блокировки сразу (параметры lanBlock 114 = 1 и cloudBlock 115 = 1; пункт меню самого устройства bLc = on), то устройство заблокировано полностью для удаленного управления. Управление возможно только с кнопок.
Для аутентификации источника при отправке команд на устройство используется TOTP протокол (rfc4226, rfc6238, Interval = 30 second, Digit = 9), который формирует токен безопасности. Для формирования токена безопасности необходимо знать ключ, который представляет из себя последовательность из 16 байт. Он генерируется облаком в момент первого подключения и при каждой привязке к аккаунту. Помните, что ключ меняется если устройство привязывается снова к учетной записи личного кабинета Welrok.
- Получить ключ можно только через API сервера в 2 этапа:
получить токен авторизации для нужной учетной записи
получить список устройств с параметрами, привязанных к данной учетной записи, где будет указан 16-тибайтный ключ.
ПОЛУЧЕНИЕ ТОКЕНА АВТОРИЗАЦИИ
POST https://app.welrok.com/api/login/
{
"email":"user@email.com",
"password":"myPassword"
}
- Параметры:
email - почта зарегистрированного аккаунта приложения Welrok
password - пароль от аккаунта приложения Welrok
Ответ:
{
"access_token":"9573e6a8e24b025fafbaf81dc2eccbc09b94d187",
"user_name":"welrok",
"is_timezone_chosen":true
}
access_token - искомый токен авторизации
Пример запроса токена авторизации:
{
POST /api/login/ HTTP/1.1
Host: app.welrok.com
Accept-Language: en
Content-Type: application/json
{"email":"demo@welrok.com","password":"demoaccount"}
}
ПОЛУЧЕНИЕ СПИСКА УСТРОЙСТВ С КЛЮЧАМИ
GET https://app.welrok.com/api/device/ –header «Authorization: Token access_token»
- Параметры
access_token- токен авторизации в заголовке
Ответ:
{
"count": 4,
"next": null,
"previous": null,
"results": [
{
"id": 1,
"sn": "404CCAAAD4E8A89860609800000149",
"name": "D2W",
"":""
"totp_key": "AAD4EXAJX4E8A8XT"
}
]
}
Поле totp_key в параметрах каждого устройства содержит искомый 16-тибайтный ключ для генерации TOTP токена.
Пример запроса списка устройств с ключами:
{
GET /api/device/ HTTP/1.1
Host: app.welrok.com
Accept-Language: en
Content-Type: application/json
Authorization: Token 9573e6a8e24b025fafbaf81dc2eccbc09b94d187
}
ФОРМИРОВАНИЕ ТОКЕНА БЕЗОПАСНОСТИ И ЕГО ИСПОЛЬЗОВАНИЕ
После получения ключа, используя TOTP протокол (rfc4226, rfc6238, Interval = 30 second, Digit = 9), можно формировать токен безопасности и использовать его в запросах на изменение по API.
При этом в таких запросах добавляется два поля перед полями с данными:
time - время в секундах от 01.01.2000 00:00
auth - вычисленный токен безопасности.
Тогда запрос, например, для включения реле устройства, изменение яркости индикации устройства на 1 и включение блокирования изменений по API, будет выглядеть так:
{
"sn":"404CCAAAD4E8A89860609800000149",
"time":"634929122",
"auth":"672201707",
"par":[[125,7,"0"], [23,2,"1"], [114,7,"1"]]
}
Note
В 2-х кнопочных устройствах для этого надо удерживать правую кнопку с 36 по 39 секунду (через 3 секунды после сброса настроек). Индикация мигание красным. 1. Светодиод гаснет на непродолжительное время раз в секунду - блокировка включена. 2. Светодиод загорается на непродолжительное время раз в секунду - блокировка выключена.
Note
На устройстве существует страница http://dev_ip/index.html, где доступна функция подключения устройства к облаку API CLOUD CONNECT. Если пункт CLOUD CONNECT включен, связь устройства с облаком активна. Если пункт CLOUD CONNECT выключен, связь устройства с облаком отсутствует. При отключении связи с облаком гарантированно не передаются никакие данные на облако. Однако при этом не осуществляется и синхронизации времени на устройстве с облаком. Страница доступна так-же при работе утройства в режиме точки доступа. Для этого переведите устройство в режим «AP», подключитесь к нему и перейдите по ссылке: http://192.168.0.1/index.html
Note
На устройстве существует страница http://dev_ip/index.html, где доступна функция блокировки управления устройством из локальной сети или удалённо CLOUD BLOCK. Если на устройстве отключить блокировку (blc = off) (параметр [114,7,”0”]) и включить CLOUD BLOCK, то управление осуществляется только с помощью кнопок устройства или по локальной сети. Удалённое управление блокируется. В данных условиях включённый CLOUD BLOCK соответствует блокировке управления из облака (blc = cld) (параметр [114,7,”0”], [115,7,”1”]) на устройстве. Если на устройстве установить блокировку управления из локальной сети (blc = lan) (параметр [114,7,”1”]) и включить CLOUD BLOCK, то управление осуществляется только с помощью кнопок устройства. В этих условиях включённый CLOUD BLOCK соответствует блокировке любого управления по сети (blc = cld) (параметр [114,7,”1”], [115,7,”1”]) на устройстве. Страница доступна так-же при работе утройства в режиме точки доступа. Для этого переведите устройство в режим «AP», подключитесь к нему и перейдите по ссылке: http://192.168.0.1/index.html