【问题标题】:Identify machine (relatively) uniquely using unc path使用 unc 路径(相对)唯一地识别机器
【发布时间】:2010-04-22 12:12:56
【问题描述】:

使用 C#,并假设用户输入的是 unc 路径。有没有办法验证 2 个月后,当我将文件写入 unc 路径时,它与他输入时是同一台机器?

即我正在向路径写入一些敏感信息,并希望阻止某人将另一台具有相同名称/共享等的机器放在网络上并获取输出。或者,如果软件在笔记本电脑上运行并且用户将其插入另一个网络,并且恰好有一台具有相同名称/共享的机器......

任何想法,除了使用 IP 地址(并​​验证它是否相同?)。除了对 unc 共享的写访问权限之外,我不一定对远程计算机拥有任何权限。

是的,我可能是偏执狂,但想知道是否有可能......

【问题讨论】:

  • 如果您非常关心安全性,那么您可能应该选择另一种数据传输方法。
  • @klausbyskov,非常好的点+1

标签: c# unc


【解决方案1】:

如果您无权访问该框并且您不想使用 IP,那么我唯一能想到的另一件事是在用户进入 UNC 并验证存在时在共享上留下一个隐藏文件并重访时的内容(可能是 guid)。

【讨论】:

  • IP 并不能保证——如果发生了如此邪恶的事情,“冒名顶替”的计算机几乎可以肯定会设置一个静态 IP 来匹配原始机器的 IP,不是吗?
  • @Jay,绝对是,但考虑到安全状况不佳(如果确实可以在这里称之为),总比没有好。还有一个推论是,这个 UNC 位置可能是相当开放的,因为有问题的盒子没有经过身份验证,所以这一切都没有实际意义。只是试图充分利用糟糕的情况;)
【解决方案2】:

如果机器在同一子网中,您也许可以使用ARP 来检索机器的 MAC 地址。这有点难以欺骗。当他们进入 UNC 路径时,检索 MAC 地址。然后稍后在写入文件之前,执行相同的解析并验证 MAC 地址是否相同。

【讨论】:

  • 不错的“开箱即用”思维 +1
【解决方案3】:

如果您担心此类场景的安全性,对我而言,唯一可行的方法是数据加密。使用公钥基础架构,您可以确保只有您想要接收数据的人才能真正解密数据,您还可以确保接收者知道并且只有您知道数据。

互联网上有很多关于数据加密的信息,所以我在这里不做详细介绍,但请务必查找诸如“公钥基础设施、rsa、aes、混合密码系统、数字签名”之类的关键字。

最好的问候,
奥利弗·哈纳皮

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多