Моя цель - зашифровать данные iBeacon (UUID + MajorID + MinorID: 20 байт), предпочтительно с включенной временной отметкой (зашифрованной и простой), суммируя ее примерно до 31/32 байт. Как вы уже выяснили, это превышает максимально допустимые данные iBeacon (31 байт, включая префикс iBeacon и tx power). Таким образом, шифрование работает только путем создания пользовательского формата маяка вместо формата iBeacon? Говоря о шифровании: я бы подумал об использовании симметричного шифра с использованием режима работы CBC (чтобы избежать расшифровки из-за повторения, и, самое главное, чтобы избежать коррекции текста шифрования, что привело к изменению UUID, Major-/MinorID). Это не проблема, чтобы сделать IV (Инициализационный вектор) общедоступным (незашифрованным), правильно? Помните, что iBeacons работают в режиме рекламы (только для передачи), без предварительной связи, поэтому я не могу обменять вектор инициализации (IV) до отправки каких-либо данных. Какие соображения должны быть сделаны с использованием наиболее подходящего алгоритма шифрования? Является ли AES-128 ОК? С или без прокладки-схемы? Я также подумал о созвездии AES-GCM, но я этого не делаю, это действительно необходимо/применимо из-за используемого режима рекламы. Как я могу обменять токены сеанса? Более того, в моем случае нет реальной сессии, iBeacons отправляют данные 24/7, открытый конец, без реальной инициализации соединения. Предположим, что система содержит 100 iBeacons, 20 устройств и 1 приложение. Каждый iBeacon периодически отправляет данные (то есть 500 мс), которые принимаются ближними устройствами через BLE, которые отправляют данные в приложение через udp. Таким образом, обзор системы соотношение:Шифрование данных iBeacon (режим рекламы)
п iBeacons - (BLE) - K устройства - (UDP) - 1 Применение
Допустимо использовать один и тот же ключ шифрования на каждом IBeacon? Если бы я работал с кортежем (ключ iBeacon Id/encryption key), мне дополнительно пришлось бы добавить идентификатор iBeacon в каждый пакет, тем самым имея возможность искать ключ в словаре. Должны ли данные быть дешифрованы на устройстве или только позже в приложении?
Можете ли вы уточнить максимальную длину данных? Разрешено только 31 байт или? –
@ Luke: iBeacon позволяет использовать 31 байт данных, в то время как обычно используется 30 байтов (9 (префикс iBeacon)/16 (UUID)/2 (MajorId)/2 (MinorId)/1 (мощность передачи)). – kvirk
С 31 байтом работать не стоит, если вы хотите получить полную защиту. Рассмотрим режим CTR вместо CBC. –