2013-07-01 4 views
0

Я молодой профессионал, который занимается встроенным дизайном, сетью ИТ, системами контроля/мониторинга и многого другого. В настоящее время я разрабатываю систему мониторинга с использованием устройства Tibbo Techonology, DS1102.предложения для моей системы мониторинга?

http://tibbo.com/products/controllers/ds110x/ds1102

Это программируемое устройство, которое охватывает последовательную и локальные сети связи. Для моего проекта его основными задачами являются сбор данных и совокупность данных. Последовательная связь осуществляется через RS485, а база данных - MySQL 5.5. Моя база данных размещена на общедоступном IP-адресе, который также запускает веб-сервер для интерфейса, в то время как мое устройство находится за NAT. Он подключается к базе данных напрямую с использованием общедоступного IP-адреса.

Я хотел бы попросить совета, чтобы я мог улучшить и обновить его. Прямо сейчас это вопросы , которые я хотел бы задать.

  1. Что лучше? Наличие сервера на публичном IP-адресе или использование пересылки портов? Я также использую его как веб-сервер для интерфейса моей системы мониторинга.

  2. Для связи с устройством (перезагрузка, изменение IP и т. Д.) Я написал приложение в python с использованием UDP (с использованием порта 65535 устройства), а также установил, что устройство связывается с приложением для определенных команд. Меня беспокоит, что я хочу зашифровать связь между моим приложением python и устройством в обоих направлениях. Единственной доступной функцией для шифрования и дешифрования на DS1102 является RC4. Что вы думаете об использовании RC4 для этого приложения? Кроме того, я планирую осуществлять переадресацию портов на порт 65535, чтобы я мог использовать приложение python извне. Может ли RC4 быть надежным для этого тоже? Я действительно хочу научиться правильно использовать шифрование.

  3. Я также планирую внедрить SMTP для предупреждений. У Tibbo есть образец кода, из которого я основал мой. Проблема в том, что она находится в режиме AUTH PLAIN LOGIN. Думаю, я хочу повернуть его на STARTTLS позже. Можете ли вы порекомендовать некоторые уроки по алгоритму STARTTLS?

  4. Что это за информация о MAIL FROM: <> и RCPT TO: <>? Потому что, используя команду DATA, программист все равно может писать From: и To: что может сделать его личность кем-то другим.

Это все на данный момент. Предложения приветствуются. Вы также можете поделиться некоторыми хорошими материалами для чтения и ссылками. Я всегда жажду учиться. :)

Спасибо за ваше время.

ответ

0

2. Шифрование заменяет конфиденциальность произвольного количества данных (открытого текста) конфиденциальностью небольших данных (ключ). Другими словами, ваше сообщение конфиденциально только как ключ - если общий секретный ключ просачивается, шифрование бесполезно. More on this.

Также обратите внимание, что обычный RC4 не обеспечивает подлинности (целостность сообщения). Противник может изменять сообщения столько, сколько он хочет. Он может даже отправлять свои собственные сообщения, которые будут считаться вполне действительными по шифру. Проверка достоверности сообщений зависит от кода, который анализирует сообщения.

Если ваши сообщения просты (всего несколько байт или около того), противник может просто отправлять случайные байты, пока они не расшифруют, так что они образуют действительное сообщение, не зная ничего о ключе. Это происходит в среднем после 100 попыток для 1-байтового сообщения, например.

Вам, очевидно, придется использовать какой-то nonce, чтобы предотвратить тривиальные атаки повтора.

RC4 также довольно изворотливый per se. Я думаю, вы уже знаете о многочисленных вариантах «drop-n» и так далее.

Короче говоря, дизайн протокола опасен. Даже эксперты часто ошибаются (например, посмотрите на WEP). Самый простой способ решить это - найти аппаратное обеспечение, которое может обрабатывать существующий протокол, такой как TLS.