Александр Терентьев (aterentiev) wrote,
Александр Терентьев
aterentiev

Category:

"TLS для маленьких"

В очередной раз обдумываю тему защищенного соединения с сервером для сверхмаленьких устройств "умной пыли". Такое ощущение, что все не так сложно, как кажется, а программисты распустились и расслабились :) ОК, troll mode off.

Постановка задачи:

Есть где-то в мире сервер с достаточной мощностью, операционка неважна, предположим, она современная, полный контроль у нас. Есть супермаленькие клиенты, никакого линукса, только C++, только хардкор. Нужно разрешить клиентам выходить в страшный и ужасный интернет, надежно (на данный момент времени) цепляться к серверу и передавать ему данные, получать ответы. Скажем, TCP стек уже есть.

Как минимум нужна защита от базовых атак (типа MITM), утечка ключей из фирмвари не должна быть фатальной для всей системы.

Ограничиваем зону действий: Сервер один, не меняется годами. Клиентов много, каждый уникален. Момент привязки клиента к серверу, скажем, контролируется хорошо и руками.

Как это нужно реализовывать?

Предполагаю, как-то так. Несколько задач.
1. Нужно найти базовую функцию шифровки-дешифровки для ассиметричного шифрования (по идее, это не должно быть сложно, только математика)
2. Нужно генератор случайных чисел для тонкого клиента (генерировать сессионные ключи?)
3. Нужно заранее сгенерировать приватный ключ для сервера и серверный сертификат, который (не ключ, а сертификат) отдать всем клиентам
4. Каждому клиенту сделать то же самое индивидуально, сертификаты или отдать заранее серверу, или сделать их генерацию по известному ID при регистрации устройства.

Остальное вроде бы дело техники, и если ограничиться фиксированным размером сообщения, должно быть все ок.

Читая интернеты, кажется, что все очень сложно и вообще на мелких системах типа МК невозможно. Но нам же не нужно решение уровня PC, мы ограничиваем зону действий.

Покритикуйте или подскажите, как перейти к делу...
Tags: Очумелые ручки, Программизмы
Subscribe

  • А расскажите про Docker

    Задача такая. Хочу дома небольшой сервер. Как файлофотопомойка, как MQTT сервер, как сервер полоумного дома, для телеграм-бота, да мало ли что еще…

  • Баш порадовал

    #464882 15.03.2021 в 8:13 xxx: Управлять нужно только тупым домом. Умный должен сам все понимать! https://bash.im/quote/464882

  • Отзывчивость и доброта

    Все создатели "умных домов" и всего остального "умного" бросаются из одной крайности в другую, и именно это их самая большая проблема. Конечно, проще…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 23 comments

  • А расскажите про Docker

    Задача такая. Хочу дома небольшой сервер. Как файлофотопомойка, как MQTT сервер, как сервер полоумного дома, для телеграм-бота, да мало ли что еще…

  • Баш порадовал

    #464882 15.03.2021 в 8:13 xxx: Управлять нужно только тупым домом. Умный должен сам все понимать! https://bash.im/quote/464882

  • Отзывчивость и доброта

    Все создатели "умных домов" и всего остального "умного" бросаются из одной крайности в другую, и именно это их самая большая проблема. Конечно, проще…