Зашифровано ли соединение между php-сервером и Routerboard? Да, зашифровано. Безопасно ли мое соединение, даже если я не использую никаких сертификатов? Если вы не используете сертификат, у вас нет гарантии, что устройство, к которому вы подключаетесь, это то самое, к которому вы хотели подключиться, но у вас ЕСТЬ гарантия, что никакое третье устройство не сможет подслушивать или манипулировать данными, которыми обмениваются с этим устройством. Так что если, например, между вашим веб-сервером и Routerboard был бы роутер, и я был бы атакующий, контролирующий этот промежуточный роутер, я мог бы dst-nat вас на свое "шпионское" устройство с псевдо-роутером с работающим ADH, и ваше PHP-приложение бы ничего не заметило — оно бы общалось с моим шпионским устройством, которое, в свою очередь, могло бы, возможно, передавать это по новому соединению к вашему фактическому роутеру. Поскольку я мог бы записывать информацию с обеих сторон, это делает всю шифровку бессмысленной. Если бы мой роутер был настроен так, что ваш веб-сервер находится за его NAT, это было бы еще лучше — мое шпионское устройство могло бы безопасно использовать публичный IP промежуточного роутера, и ваш роутер бы ничего не знал о моем шпионском устройстве. Но это все равно лучше, чем незашифрованное соединение, где злоумышленнику даже не нужен контроль над роутером, чтобы подслушивать, а достаточно просто находиться в вашей сети роутера или веб-сервера. Чем это отличается от обычного соединения без NetworkStream::CRYPTO_TLS? Это отличается только тем, что соединение зашифровано... Или, скорее, оно ДОЛЖНО быть зашифровано. К сожалению, на данный момент это не совсем так. Из-за внутренних проблем в PHP зашифрованные соединения сейчас очень нестабильны. Они могут произвольно разрываться. Помните, что даже при незашифрованном соединении ваш пароль роутера никогда не передается в открытом тексте. Он использует CHAP challenge (как в точке доступа Wi-Fi), что не так уж и просто взломать — если злоумышленник получит успешный CHAP exchange, то сможет выполнять неограниченное количество попыток на своей машине, но ему все равно придется взламывать пароль методом перебора, что может занять много времени, в зависимости от сложности вашего пароля и мощности его машины. Гораздо более проблемным является использование API для изменения паролей пользователей — они передаются в открытом тексте.