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

Category:

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

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

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

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

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

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

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

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

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

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

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

  • Remote displays

    Здравствуйте, мои виртуальные други и подруги. Я снова имею вопрос. Дано: 1. Сеть с кучей компов. Компы виртуальные (впрочем, это не сильно важно,…

  • (no subject)

    Кстати, не в курсе ли мои воображаемые виртуальные друзья, может ли USB hid девайс узнать текущую установленную громкость на компе? Что он ей…

  • На злобу дня

    Я вот тут опять зачем-то подумал... И не понял, почему пропадает очень большая рыночная ниша? Во некоторых странах (ну, как минимум, в той, в…

  • 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

  • Remote displays

    Здравствуйте, мои виртуальные други и подруги. Я снова имею вопрос. Дано: 1. Сеть с кучей компов. Компы виртуальные (впрочем, это не сильно важно,…

  • (no subject)

    Кстати, не в курсе ли мои воображаемые виртуальные друзья, может ли USB hid девайс узнать текущую установленную громкость на компе? Что он ей…

  • На злобу дня

    Я вот тут опять зачем-то подумал... И не понял, почему пропадает очень большая рыночная ниша? Во некоторых странах (ну, как минимум, в той, в…