2011-02-23 3 views
0

Возможно ли обнаружить, что какой-либо последовательный порт обнюхивает другой процесс, запущенный в Windows?Как обнаружить последовательный портвейер?

У нас есть приложение, которое получает конфиденциальные данные, которые не могут быть прочитаны другими людьми. Таким образом, перед открытием последовательного порта нам нужно проверить, контролируется ли порт.

Мы можем использовать функцию Windows API , чтобы открыть последовательный порт с эксклюзивными правами доступа, но если монитор работает до нашего вызова, он может читать все сообщения (он открывает последовательный порт с правами общего доступа, поэтому мы может открыть порт одновременно). Чтобы этого избежать, попытка проверить, проверен ли порт и вызвать исключение, предупредить пользователя. Можно ли сделать это?

+0

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

ответ

5

Для портативного нюхания требуется драйвер фильтра, например утилита SysInternals PortMon. Вы применяете неправильный подход к защите своего приложения. Когда кто-то может установить драйвер фильтра, у злоумышленника более чем достаточно привилегий, чтобы полностью отключить ваше приложение и заменить его чем-то другим. Попытка обнаружить и предотвратить потерю информации через ваше приложение бессмысленно, сама система должна быть защищена. Последовательный порт - это, вероятно, первое, что вам нужно будет проиграть, тривиально использовать свои провода.

+0

+1, но я не знаю, что ему придется потерять последовательный порт, так как это уязвимо, если у злоумышленника есть физический доступ к системе, и в этот момент вы все равно отказываетесь от всякой надежды. Также тривиально использовать Ethernet-проводы, но большинство защищенных коммуникаций на планете теперь проходят через них. –

+0

Чтобы ответить на вопрос: предполагается, что O/S - это Windows NT или вариант, как определить, установлен ли драйвер фильтра, и/или как определить личность самого последнего драйвера устройства, связанного с данным последовательным портом? – ChrisW

+0

Большое спасибо, Ханс, вы ответили на этот вопрос. Полностью безопасная система - идеальная ситуация, но, к сожалению, я не могу быть уверен в этом, в основном из-за вирусов (нас не беспокоит физический доступ). Как сказал ChrisW, я думаю, что мне нужно выяснить, установлен ли драйвер фильтра. – Juliano

1

Вместо того, чтобы потерять последовательный порт, почему бы не encrypt ваши данные. Это предполагает, что и DTE, и DCE программируются.

+1

В данный момент подключенные устройства не шифруют свои данные. Мы внедрили новую версию своей спецификации связи (с криптографией), которая скоро появится в поле. Однако потребуется некоторое время до обновления прошивки старого оборудования. Обновление прошивки не так просто, потому что оно требует, чтобы оборудование было доставлено на завод. – Juliano

Смежные вопросы