Winapi 如何检测串行端口嗅探器?

Winapi 如何检测串行端口嗅探器?,winapi,serial-port,Winapi,Serial Port,是否可以检测某个串行端口是否被运行在Windows上的另一个进程嗅探 我们有一个应用程序,它接收一些其他人无法读取的敏感数据。因此,在打开串行端口之前,我们需要检查端口是否被监视 我们可以使用CreateFileWindows API函数打开具有独占访问权限的串行端口,但是如果在调用之前运行监视器,它可以读取所有通信(它打开具有共享访问权限的串行端口,因此我们可以同时打开端口)。为了避免这种情况,尝试检查端口是否正在被监视,并引发异常,警告用户。有可能做到这一点吗?端口嗅探需要一个过滤器驱动程序

是否可以检测某个串行端口是否被运行在Windows上的另一个进程嗅探

我们有一个应用程序,它接收一些其他人无法读取的敏感数据。因此,在打开串行端口之前,我们需要检查端口是否被监视


我们可以使用
CreateFile
Windows API函数打开具有独占访问权限的串行端口,但是如果在调用之前运行监视器,它可以读取所有通信(它打开具有共享访问权限的串行端口,因此我们可以同时打开端口)。为了避免这种情况,尝试检查端口是否正在被监视,并引发异常,警告用户。有可能做到这一点吗?

端口嗅探需要一个过滤器驱动程序,比如SysInternals的PortMon实用程序。您采取了错误的方法来保护应用程序。当有人可以安装过滤器驱动程序时,攻击者有足够的权限完全禁用你的应用程序,并用他自己制作的其他东西替换它。试图通过应用程序检测和防止信息丢失是毫无意义的,系统本身必须得到保护。串行端口可能是您必须丢失的第一件东西,轻触它的线路是很简单的。

端口嗅探需要一个过滤器驱动程序,如SysInternals的PortMon实用程序。您采取了错误的方法来保护应用程序。当有人可以安装过滤器驱动程序时,攻击者有足够的权限完全禁用你的应用程序,并用他自己制作的其他东西替换它。试图通过应用程序检测和防止信息丢失是毫无意义的,系统本身必须得到保护。串行端口可能是您必须丢失的第一件东西,轻触它的导线是很简单的。

与其丢失串行端口,不如丢失数据。这假设DTE和DCE都是可编程的

与其丢失串行端口,不如将数据丢失。这假设DTE和DCE都是可编程的

我不认为应用程序可以为共享访问打开串行端口,即使它们可以,我认为您请求独占访问将阻止您获得一个已经打开的端口。如果我想编写软件来监视您的串行端口使用情况,我会编写一个串行端口筛选器驱动程序。我不认为应用程序可以打开共享访问的串行端口,即使可以,我认为您请求独占访问将阻止您获得已打开的串行端口。如果我想编写软件来监视您的串口使用情况,我会编写一个串口过滤器驱动程序。+1,但我不知道他是否会丢失串口,因为只有当攻击者能够物理访问系统时,这才容易受到攻击,在这一点上,您放弃了所有希望。接入以太网线路也很简单,但现在地球上的大多数安全通信都是通过以太网进行的。要回答以下问题:假设O/s是Windows NT或变体,如何确定是否安装了筛选器驱动程序,和/或如何确定与给定串行端口关联的最高设备驱动程序的标识?非常感谢,Hans,您回答了这个问题。完全安全的系统是理想的情况,但不幸的是,我不能肯定这一点,主要是因为病毒(我们不担心物理访问)。正如ChrisW所说,我想我必须发现是否安装了筛选器驱动程序。+1,但我不知道他是否必须丢失串行端口,因为只有攻击者能够物理访问系统时,串行端口才容易受到攻击,此时你无论如何都放弃了希望。接入以太网线路也很简单,但现在地球上的大多数安全通信都是通过以太网进行的。要回答以下问题:假设O/s是Windows NT或变体,如何确定是否安装了筛选器驱动程序,和/或如何确定与给定串行端口关联的最高设备驱动程序的标识?非常感谢,Hans,您回答了这个问题。完全安全的系统是理想的情况,但不幸的是,我不能肯定这一点,主要是因为病毒(我们不担心物理访问)。正如ChrisW所说,我想我必须发现是否安装了过滤驱动程序。目前,连接的设备不会加密它们的数据。我们已经实现了一个新版本的通信规范(带有脚本),该规范很快将在现场发布。然而,要升级所有传统硬件的固件还需要一段时间。固件升级并不是那么简单,因为它要求将设备交付到工厂。目前,连接的设备不加密其数据。我们已经实现了一个新版本的通信规范(带有脚本),该规范很快将在现场发布。然而,要升级所有传统硬件的固件还需要一段时间。固件升级并不是那么简单,因为它要求将设备交付到工厂。