Как стать автором
Обновить

Комментарии 10

Но md5 для целей криптографии не рекомендуют использовать уже давным давно, так как он достаточно легко вскрывается перебором. Я бы на вашем месте лучше попробовал прикрутить библиотеку с SHA-2 или чем-то вроде того.
Воспримите это как некий вектор движения начинающего в сторону уменьшения паранои. Да и в плейграунде проекта Arduino одной из первых указана именно эта библиотека.
md5 плох для хранения паролей, в случае с подписью, при достаточной длине ключа, — вполне уместен.
НЛО прилетело и опубликовало эту надпись здесь
Спасибо за дельные советы! Многим нравится именно обсуждения. Это и есть формат Хабра!
Не нужно рассчитывать что кто то будет присылать строки

Возможно Иван не совсем правильно понял, но общение между Инициатором и Исполнителем происходит по Радио-каналу именно по строковым данным (в заметке упоминается не один раз фраймворк MySensors), именно в связи с этим такой алгоритм действий, который можно применить и к другим системам.

К тому же на каждое обращение генерируется новая «случайная» фраза, что позволит обойти «перебор», описанный в комментарии выше…
> К тому же на каждое обращение генерируется новая «случайная» фраза, что позволит обойти «перебор»

Это всё замечательно, только у вас защиты от подмены сообщений нет. Достаточно «включи свет в ванной» на «убей всех человеков» заменить и дальше само всё подпишется.

Вообще, криптография — это не просто пару хешей посчитать. Писать самому… С тем же эффектом (и гораздо проще) прогнать XORом сообщение по ключу

Достаточно «включи свет в ванной» на «убей всех человеков» заменить...

Естественно, исполнитель имеет свой ограниченный функционал и игнорирует команды, которые в него не заложены. Например в том же MySensors можно проверять тип входящего сообщения (message.type == V_LIGHT) и адресность конкретного сенсора (message.sensor == PRIMARY_CHILD_ID)…
> и игнорирует команды, которые в него не заложены

естественно я не рассчитываю, что лампочка будет варить кофе
Но тут ещё одна проблема. К примеру, на Arduino, использование простейшего md5 добавляет 13К к коду, плюс столько же библиотека взаимодействия с устройством и в итоге нам останется всего 10К для нашей программы. При реализации взаимодействия с Arduino через EtherCard я думал об использовании простейшей подписи, но когда увидел размеры кода для подписи — отказался от данного решения. Нужно придумывать свою упрощённую реализацию со скидкой на «Неуловимого Джо».
Да, конечно, здесь по большей части обозначен «вектор движения». Можно экпериментировать, например с DES and 3DES Encryption Library.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории