我需要实现一个功能(在C#中)来锁定USB驱动器上的文件夹。锁定后,在没有我的软件的任何PC中,此文件夹无法访问(或更好地不可见)。我尝试过使用ACL(访问控制列表),但它不适用于USB。
我原来的要求是“不要让人们在没有我的软件的情况下看到USB驱动器上文件夹的内容。当用户登录我的软件时,该文件夹是可访问的,当用户注销时,我的软件有做一些事情来确保这个文件夹在其他PC上无法访问“。这让我想到了锁定USB文件夹。
我已经尝试过使用密码压缩文件夹(不压缩),但是压缩需要时间(1 Gb约2分钟)。因此,如果我有大量数据(100 GB),则处理过程需要很长时间(软件必须在注销时进行处理)。
答案 0 :(得分:9)
要使数据无法访问,您需要创建一个加密容器,您的程序将表示为现有磁盘或虚拟磁盘(驱动器号)上的虚拟文件夹。第一个是Pismo File Mount,第二个是我们的产品(Solid File System OS版本)。这两种方法都需要将内核模式驱动程序安装到系统中。这不是应用程序要求,而是OS体系结构要求。
从技术角度来看,我们的方法更加强大,因为Pismo File Mount使用过滤器驱动程序,而SolFS使用文件系统驱动程序和过滤器驱动程序更复杂,更容易出现兼容性问题(我们也有基于过滤器的产品) ,所以我有两种方法的经验)。
(注意:TrueCrypt与C#无关。所以这里不适用。)
答案 1 :(得分:5)
你看过TrueCrypt吗?
一般情况下,您不应尝试重新发明轮子,尤其是在安全要求方面。这是一个沉重的主题,你自己的文件系统应该是最后一个考虑的选择。
TrueCrypt使用两种不同的操作模式:
- 文件托管(容器)
- 分区/设备主存
注意: 除了创建上述类型的虚拟卷外, TrueCrypt可以加密物理 Windows所在的分区/驱动器 已安装(有关详细信息,请参阅 系统加密章节。
TrueCrypt文件托管卷是一个 普通文件,可以驻留在任何文件上 存储设备的类型。它包含 (主持人)完全独立 加密的虚拟磁盘设备。
TrueCrypt分区是硬盘 使用TrueCrypt加密分区。 你也可以加密整个硬盘 磁盘,USB硬盘,USB存储器 棍棒和其他类型的存储 设备
答案 2 :(得分:1)
之前我使用过这个软件,它是开源的,所以你可能会从中获得一些东西。 http://www.truecrypt.org/
但是,我认为它适用于分区级而不是驱动级(我认为它使用自己的文件系统格式化分区)。