Categories
ESP8266 NodeMCU

SSL размисли разни

Използването на криптирана комуникация е в основата на един успешен IOT проект, от друга страна малкото ресурси в устройствата е сериозна спирачка за пълната и качествена защита от външно влияние. Нека сравним възможните опции:

Некриптирана HTTP, MQTT връзка:

  • използва малко памет;
  • напълно некриптирана връзка (всеки в комуникацията между вашето устройство и сървърът, към който правите заявка може да прочете и подмени информацията, която изпращате/получавате).

SSL без проверка на валидността на сертификата:

  • връзката е криптирана и не може да бъде пряко подслушана;
  • теоретично все още е възможно някой да подмени отговорът от DNS и да отклони вашият трафик към негов сървър;
  • използва повече оперативна памет.

SSL с проверка на отпечатък (fingerprint):

  • връзката е криптирана и не може да бъде пряко подслушана;
  • подмяната на DNS и отклоняването на трафик ще стане доста по-трудно (но не и невъзможно);
  • трябва да се измисли механизъм, при който, при всяко подновяване на сертификат на сървъра устройството да преминава на по-малко защитен режим за да може да се свърже и обнови своите данни, което от своя страна обезсмисля цялото занимание;
  • използва повече оперативна памет.

SSL с пълна проверка на сертификата:

  • връзката е криптирана и не може да бъде пряко подслушана;
  • подмяната на DNS и отклоняването на трафик ще стане невъзможна;
  • трябва да се измисли механизъм, при който, при всяко подновяване на сертификат на сървъра устройството да преминава на по-малко защитен режим за да може да се свърже и обнови своите данни, което от своя страна обезсмисля цялото занимание;
  • използва много повече оперативна памет.

В общи граници истината е някъде по средата. Вероятно SSL без проверка би бил подходящ за хоби проекти. Вероятно за комерсиални проекти трябва да се помисли за някакъв тип проверка, но в същото време трябва да се мисли и за начин устройствата да не загубят връзка завинаги при промяна на сертификат.

Вашият коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *