Каково влияние шифрования трафика моего датчика?

13

Учитывая типичный тип применения: датчик с питанием от батареи, считывающий показания (32-разрядное значение) каждые 10 минут, каково будет вероятное влияние на срок службы батареи, если я выберу простой незашифрованный эфирный протокол по сравнению с зашифрованной передачей?

Предположим, что мои данные не являются особо секретными, но в соответствии с этим вопросом мне, вероятно, нужно подумать о том, чтобы их зашифровать, если на самом деле нет значительных затрат на разработку.

Для простоты предположим, что я использую SoC nRF51822, который поддерживает стек BLE и более простой протокол 2,4 ГГц.

Поскольку я имею в виду коммерческое применение продукта, а не разовую установку, шифрование должно быть интенсивным, чтобы его взломать (скажем, не менее 500 долларов в облачных вычислениях 2016 года), а не просто обфускация. Что-то, что остается безопасным даже при доступе к прошивке устройства.

Шон Хулихейн
источник
2
«То, что остается безопасным даже при доступе к прошивке устройства». означает, что вам либо нужно использовать асимметричную криптографию, которую в вычислительном отношении обходится дорого, либо вам нужно хранить симметричный ключ там, где его невозможно извлечь или использовать для восстановления (известная атака открытым текстом и т. д.). Как правило, в последнем случае каждая копия продукта имеет уникальный ключ, так что восстановление из одного образца не нарушает всю систему; но это означает, что ваш приемник должен хранить все эти ключи.
Крис Страттон

Ответы:

8

Большая часть вашей энергии, скорее всего, будет расходоваться на радиочастотную передачу, а не циклы ЦП, затрачиваемые на процедуры шифрования. Каждый дополнительный передаваемый бит будет стоить вам больше энергии, чем предлагаемое вами шифрование. Это означает, что если вы используете наивный подход, например, использование AES в режиме CBC, вы рискуете увеличить размер сообщения для переноса дополнительных битов в каждом блоке.

Если вы решите, что вашему бизнесу необходимо зашифровать данные, рассмотрите возможность использования AES в режиме CTR для генерации битов потокового шифра. Режим счетчика удобен для работы в случаях, когда прием может быть ненадежным и пакеты могут быть потеряны. Вы должны будете синхронизировать счетчики, поэтому имейте в виду, что периодическая передача значения счетчика будет увеличивать накладные расходы. И вам придется зарезервировать несколько байтов состояния для хранения счетчика, потому что повторное использование зашифрованного потока битов может привести непосредственно к восстановлению данных.

Джон Детерс
источник
Звучит убедительно и ставит проблему по-другому, о чем я не особо задумывался в этот раз.
Шон
2
Помните, что CTR не обеспечивает подлинность данных. Вам следует использовать режим шифрования с проверкой подлинности, если вы не понимаете, почему подлинность не имеет значения в вашем приложении.
Жиль "ТАК - перестань быть злым"
10

Существует множество методов шифрования, которые вы можете использовать для защиты своего трафика, и у каждого из них немного другое потребление энергии, поэтому я выберу несколько популярных вариантов. Методология, которую я использую для оценки каждого метода, должна быть применима к любым другим шифрам, которые вы найдете и хотите сравнить.

AES

AES - один из самых популярных алгоритмов шифрования с симметричным ключом (что означает, что вы используете один и тот же ключ для шифрования и дешифрования). С точки зрения безопасности, AES является надежной ставкой:

Лучший публичный криптоанализ

Были опубликованы атаки, которые в вычислительном отношении быстрее, чем атака полным перебором, хотя по состоянию на 2013 г. ни одна из них не была осуществима в вычислительном отношении.

- Википедия

В документе Biclique Cryptanalysis Full AES описано, что AES-128 требует 2 126,1 операций, AES-192 требует 2 189,7 операций, а AES-256 требует 2 254,4 операций для прерывания. На процессоре с тактовой частотой 2,9 ГГц при условии, что каждая «операция» составляет 1 цикл ЦП (вероятно, не соответствует действительности), остановка AES-128 займет очень много времени . С 10 000 из них это будет продолжаться вечно . Итак, безопасность здесь не проблема; давайте рассмотрим аспект силы.

Эта статья показывает (на странице 15), что для шифрования блока с помощью AES используется 351 пДж. Я сравню это чуть позже после разговора о некоторых других распространенных алгоритмах.

SIMON

Я задавал вопрос о SIMON и SPECK ранее, который стоит прочитать. Превосходство SIMON происходит в ситуациях, когда вам часто приходится шифровать немного данных . В статье, которую я связал ранее, говорится, что SIMON 64/96 использует 213 пДж для 64 бит, что целесообразно, когда вам нужно только отправить 32 бита полезной нагрузки.

SIMON 64/96 значительно легче взломать, чем AES; статья, которую я связал, предлагает 2 63,9 операции, поэтому наша установка 10 000 ЦП может взломать шифрование всего за несколько лет , а не миллионы тысячелетий.

Это действительно имеет значение?

При скорости, которую вы планируете передавать, ответ почти наверняка нет ; использование энергии от криптографии будет совершенно незначительным. Для AES вы бы использовали 50 544 пДж в день , поэтому дешевая батарея типа АА с углеродом и цинком с энергией 2340 Дж продлилась бы намного дольше срока службы устройства . Если вы переоцените расчеты с SIMON, вы обнаружите, что он также имеет очень большой срок службы

Короче говоря, если вы не передаете очень часто, радио гораздо больше заботится о мощности . Википедия цитирует энергопотребление в диапазоне от 0,01 до 0,5 Вт. Если вы передаете в течение 1 секунды при 0,01 Вт , вы уже использовали больше энергии, чем AES за весь день .

Для BLE, тем не менее, вы, вероятно, хорошо, просто полагаясь на безопасность по умолчанию; BLE использует AES-CCM по умолчанию для безопасности канального уровня :

Шифрование в Bluetooth с низким энергопотреблением использует криптографию AES-CCM. Как и BR / EDR, контроллер LE будет выполнять функцию шифрования. Эта функция генерирует 128-битные encryptedData из 128-битного ключа и 128-битного открытого текста с использованием 128-битного блочного шифра AES, как определено в FIPS-1971.

Существует некоторая обеспокоенность тем, что в реализации BLE защиты канального уровня есть недостатки безопасности; это не недостаток в AES; Скорее Bluetooth SIG решил накатить собственный механизм обмена ключами в 4.0 и 4.1 . Эта проблема теперь решена в 4.2, поскольку теперь поддерживается эллиптическая кривая Хеллмана-Диффи.

Аврора0001
источник
1
«На процессоре 2,9 ГГц, предполагая, что каждая« операция »равна 1 циклу ЦП (вероятно, не соответствует действительности)» - вероятно, компенсируется параллельными процессорами (например, графическими процессорами), работающими на более низких скоростях, но производящими несколько результатов за такт [и даже на ЦП IIRC вы можете достичь почти 1 операции / такт на одном ядре]. Это не меняет порядки слишком сильно.
Мацей Пехотка
@MaciejPiechotka Это хороший момент. Как вы предполагаете, на порядок величины не следует сильно влиять, и в тех масштабах, на которых мы работаем, коэффициент 10 все еще весьма незначителен (10 ^ 33 дня против 10 ^ 32 дня не будут иметь значения очень много!)
Aurora0001
1
Симметричная система, такая как AES, проблематична, если только у каждого устройства нет уникального ключа - в противном случае получение его только из одного расчлененного образца разрушает всю систему.
Крис Страттон
4

Если вы не используете аппаратно-ускоренную криптографию, затраты на электроэнергию, вероятно, будут высоки, поскольку вы получаете процессор, который по существу перегружен для базовых (не криптографических) нужд. Однако в большинстве случаев именно радио в любом случае потребляет больше энергии.

Поскольку вы специально рассматриваете блютуз SOC, рассмотрим BGM-111 , в котором имеется чип с аппаратным ускорением. Я играл с этим чипом, и он, кажется, хорош, хотя я специально не рассматривал функции шифрования.

Другой маршрут и, возможно, «лучший» маршрут, если вы хотите, чтобы никто не мог получить ваши ключи, даже если они разбирают устройство. Он должен включать чип TPM, такой как OPTIGA TPM , который имеет чипы I2C и SPI TPM, которые поддерживаются ядрами Linux.

Короче говоря, вы будете прожигать батареи без специального аппаратного шифрования. Либо создайте плату с чипом TPM, либо выберите более современный SoC, в котором уже есть встроенная аппаратная криптография.

Саймон Манро
источник
2
Этот вопрос предполагает 2,5 ГГц SoC и отправку 32-битного значения каждые 10 минут. Количество вычислений, необходимых для криптографии, совершенно незначительно. Конечно, SoC, кажется, одолел для этой задачи. Но для 32 битов каждые 10 минут, самый дешевый базовый процессор, который вы можете найти, будет более чем достаточно.
Жиль "ТАК - перестань быть злым"
3
С 10-минутными интервалами не имеет значения, сколько времени требуется для шифрования, важно только, сколько энергии . Вы должны взглянуть на детали реализации, такие как паразитные нагрузки, чтобы выяснить, выиграет ли быстрая микросхема, которая делает это за 1 мс, или медленная, которая занимает 500 мс, по энергопотреблению, предполагая, что обе они эффективно спят, когда не заняты. Аппаратный движок вполне может быть лучше программного обеспечения, но для энергоэффективности - то, что он выполняет работу быстрее, не имеет значения.
Крис Страттон