Клиент fwknop SPA для iPhone, iPad, Mac и Apple Watch
fwknop заменяет угадываемую последовательность одним зашифрованным аутентифицированным пакетом. Secret Knock создаёт этот пакет на вашем устройстве с вашими ключами и отправляет его в fwknopd через UDP или HTTP.
Совместимо с fwknopd
Secret Knock отправляет шифрование Rijndael (AES) fwknop с HMAC — по умолчанию SHA-256, доступны и другие дайджесты — через UDP на порт 62201 или другой указанный вами порт либо в виде HTTP-запроса. Можно запросить доступ для адреса, с которого пришёл пакет, или указать другой адрес, а также отправлять сообщения командного режима fwknop, если сервер их разрешает.
Настройте сервер
Создайте пару ключей с помощью fwknop --key-gen и добавьте оба ключа в access.conf сервера.
SOURCE ANY
OPEN_PORTS tcp/22
KEY_BASE64 <output of fwknop --key-gen>
HMAC_KEY_BASE64 <output of fwknop --key-gen>
FW_ACCESS_TIMEOUT 30 Добавьте дверь в приложении
- 1Новая дверь › Тип: Одиночный пакет (fwknop) или Начать с шаблона › fwknop.
- 2Вставьте вывод fwknop --key-gen с помощью «Вставить ключи из fwknop --key-gen» — или на iPhone и iPad отсканируйте QR-код ключей.
- 3Либо + › Импортировать из файла и выберите .fwknoprc.
- 4Ключи хранятся в Связке ключей; при включённой синхронизации они передаются со сквозным шифрованием через Связку ключей iCloud на ваши устройства.
Все примеры на GitHub → Все конфигурации с этой страницы, готовые к копированию: github.com/mobilcomm/secretknock-examples (общественное достояние).
Вопросы
Почему fwknop, а не knockd?
Последовательность knockd передаётся в открытом виде, и её может повторить любой, кто её увидит. Пакет SPA зашифрован, аутентифицирован и не может быть воспроизведён.
Может ли Apple Watch самостоятельно отправлять SPA?
Да, через HTTP: приложения для Apple Watch не могут отправлять необработанные UDP-пакеты, поэтому вдали от iPhone часы отправляют пакет SPA как HTTP-запрос. Настройку сервера см. в руководстве для Apple Watch.