文件加密技术研究


简介

文档加密是现今信息安全防护的主力军,采用透明加解密技术,对数据进行强制加密,不改变用户原有的使用习惯;此技术对数据自身加密,不管是脱离操作系统,还是非法脱离安全环境,用户数据自身都是安全的,对环境的依赖性比较小。市面上的文档加密主要的技术分为磁盘加密、应用层加密、驱动级加密等几种技术,应用层加密因为对应用程序的依赖性比较强,存在诸多兼容性和二次开发的问题,逐步被各信息安全厂商所淘汰。

概念

文档加密” 是指通过采用加密算法和各种加密技术对网络或计算机中的文档进行加密防止文档非法外泄的技术。加密技术是利用数学或物理手段,对电子信息在传输过程中或存储设备内的数据进行保护,以防止泄漏的技术。在信息安全技术中,加密技术占有重要的地位,在保密通信、数据安全、软件加密等均使用了加密技术。

1. 文档安全中的加密技术

虽然加密算法是文档安全系统的核心,但加密算法以何种方式进行实现,是决定文档安全系统的关键。在文档安全系统中,常用的实现方式有静态加密方式和动态加密方式,静态加密是指在加密期间,待加密的数据处于未使用状态(静态),这些数据一旦加密,在使用前,需首先通过静态解密得到明文,然后才能使用。目前市场上许多加密软件产品就属于这种加密方式。

与静态加密不同,动态加密(也称实时加密,透明加密等,其英文名为encrypt on-the-fly),是指数据在使用过程中(动态)自动对数据进行加密或解密操作,无需用户的干预,合法用户在使用加密的文件前,也不需要进行解密操作即可使用,表面看来,访问加密的文件和访问未加密的文件基本相同,对合法用户来说,这些加密文件是“透明的”,即好像没有加密一样,但对于没有访问权限的用户,即使通过其它非常规手段得到了这些文件,由于文件是加密的,因此也无法使用。由于动态加密技术不仅不改变用户的使用习惯,而且无需用户太多的干预操作即可实现文档的安全,因而近年来得到了广泛的应用。

由于动态加密要实时加密数据,必须动态跟踪需要加密的数据流,而且其实现的层次一般位于系统内核中,因此,从实现的技术角度看,实现动态加密要比静态加密难的多,需要解决的技术难点也远远超过静态加密。

2. 文档安全加密系统的实现层次

在现代操作系统中,文件的操作均通过文件系统进行,虽然不同的操作系统支持的文件系统不同,但对文件的访问方式基本相同,在Windows系统中,文件系统是以设备驱动程序形式存在的。

Windows的设备驱动程序采用分层方式,允许在应用程序和硬件之间存在多个驱动程序层次,其中过滤驱动程序是一种特殊类型的中间驱动程序,它们位于其它驱动程序的上层或下层,截获发送给低层驱动程序设备对象的请求,在请求到达低层驱动程序之前,过滤驱动程序可以更改该请求,而低层驱动程序完全不知道在其上层驱动中发生的一切操作。图1给出了Windows系统中的文件操作流程,其中层次I和II属于应用层;层次III和IV属于操作系统内核层。从中可以看出,一个应用程序(I层)在发出文件操作请求时,需要经过操作系统提供的API层(II层)、文件过滤驱动程序层(III层)和文件系统层(IV层)才能访问文件,由此可知,文档安全加密系统也只能在这四个层次上进行实现。

文件系统的这种组织结构决定了文档安全加密系统的实现方式,在数据从应用程序访问文件所经过的每个层次中,均可对访问的数据实施加密/解密操作,由于层次I只能获取应用程序自身读写的数据,其他应用程序的数据不经过该层,因此,在层次I中只能实现静态加密,无法实现动态加密;即使是层次II,也并不是所有文件数据均通过该层,但在该层可以拦截到各种文件的打开、关闭等操作。因此,在应用层实现的动态加解密产品无法真正做到“实时”加密/解密操作,一般只能通过其他变相的方式进行实现(一般均在层次II进行实现)。

例如,在应用程序打开文件时,先直接解密整个文件或解密整个文件到其他路径,然后让应用程序直接(重定向)访问这个完全解密的文件,而在应用程序关闭这个文件时,再将已解密的文件进行加密。其实质是静态加解密过程的自动化,并不属于严格意义上的动态加密。

只有在层次III和IV中才能拦截到各种文件操作,因此,真正的动态加解密产品只能在内核层进行实现。

3. 在系统内核层实现动态加解密

在文件过滤驱动层(III)和文件系统层(IV),不仅能够获得文件的各种信息,而且能够获得访问这些文件的进程信息和用户信息等,因此,可以研制出功能非常强大的文档安全产品。就动态加解密产品而言,有些文件系统自身就支持文件的动态加解密,如Windows系统中的NTFS文件系统,其本身就提供了EFS(Encryption File System)支持,但作为一种通用的系统,虽然提供了细粒度的控制能力(如可以控制到每个文件),但在实际应用中,其加密对象一般以分区或目录为单位,难以做到满足各种用户个性化的要求,如自动加密某些类型文件等。

虽然有某些不足,但支持动态加密的文件系统在某种程度上可以提供和磁盘级加密技术相匹敌的安全性。由于文件系统提供的动态加密技术难以满足用户的个性化需求,因此,为第三方提供动态加解密安全产品提供了足够的空间。

 

要研发在文件级的动态加解密安全产品,虽然与具体的操作系统有关,但仍有多种方法可供选择,一般可通过Hook或过滤驱动等方式嵌入到文件系统中,使其成为文件系统的一部分,从某种意义上来说,第三方的动态加解密产品可以看作是文件系统的一个功能扩展,这种扩展往往以模块化的形式出现,能够根据需要进行挂接或卸载,从而能够满足用户的各种需求,这是作为文件系统内嵌的动态加密系统难以做到的。

4. 文档安全加密系统的实例

对于个人用户,由于不涉及权限和密钥的管理分配等,文档安全加密系统一般只需要在客户端实现加解密等功能即可;对于单位用户来说,只提供加解密等功能是远远不够的,必须提供相应的管理系统,如用户身份的确认,权限分配,密钥管理、安全策略管理等多种功能。虽然不同的文档安全系统有不同的实现方式,但总体架构基本是相似的。下面我们以亿赛通公司的文档安全加密系统SmartSec为例,对文档安全加密系统的实现方式进行分析和说明。

SmartSec的总体架构图,整个安全系统由服务器端和客户端两大部分组成,支持C/S和B/S两种组织结构。服务端主要由用户管理、密钥管理、文档流转管理、安全引擎等组成。其中用户管理主要负责用户身份的验证,权限的分配和管理等;文档流转管理的主要功能是负责文档在单位内部不同部门之间的流转和单位内部与外部之间的流转工作,在保证文档不影响用户交流的情况下,为文档提供安全保障。

如控制文档的浏览次数、使用时间,拥有的权限等。密钥管理用于实现不同部门之间的密钥分配和交换等功能;安全策略管理用于设置和管理系统的安全策略以及为每个用户分配相应的安全策略等;安全引擎主要为服务器系统提供安全保障,如验证安全系统模块的运行权限和条件等,并提供对服务器端存储的文档进行加密/解密等多种安全相关的功能。

上图给出了SmartSec客户端的实现原理,从中可以看出,SmartSec的动态加解密是以文件过滤驱动程序的方式进行实现的(位于层次III),同时在应用层(层次II)和内核层(层次III)均提供访问控制功能,除此之外,还提供了日志和程序行为控制等功能,这种通过应用层和内核层相互配合的实现方式,不仅能提供更高的安全性,而且有助于降低安全系统对系统性能的影响。

 

资料搜索关键词:基于文件过滤驱动的透明加密

转载自:https://www.codenong.com/cs106173361/

 

GitHub上的项目: https://github.com/hkx3upper/Minifilter 

 

版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
YES开发框架
上一篇:windows磁盘加密,文件夹加密,打开分区需要先输入密码
下一篇:.NET Core Winform 打开窗体设计器报错
评论列表

发表评论

评论内容
昵称:
验证码:
验证码
关联文章

文件加密技术研究
C#加密:RSA加密解密
C#加密:MD5加密
SAP S/4HANA MM模块培训 13 - MRP概览、技术流程与计划文件条目
C#加密:SHA1
C#加密:AES加密
C#加密:DES加密
.NET DLL加密代码混淆 Eziriz .NET Reactor
YESWEB开发框架 技术要求
Python清源CPM项目CPM-LM-TF2研究日志
.NET中大型项目开发必备(7)--ORM数据库访问技术
SAP S/4HANA FICO 入门 60:GST 条件技术、Business Place 与主数据
C#安全帮助类,提供MD5,AES加解密,SHA-1加密
C#根据文件流判断文件类型
C# RSA加密(私钥加密、公钥解密、密钥格式转换、支持超大长度分段加密)
自己创造一个格式,自定义文件后缀名
Epicor函数中单独获得某个服务的研究
C# winform选择dll文件
linux分析清理大文件
python四种配置文件

热门标签
.NET Core .NET Reactor ag-grid AI发布 api安全 ASP.NET Core C#DLL加密 C#播放声音 C#代码混淆 C#代码加密 ChromeDriver Codex DateTime DBeaver devexpress devTool DLL混淆 edge.js EF EFCore Electron element-ui el-form el-table excel FastReport FileStream FolderBrowerDialog FolderSelectDialog form提交 git gridcontrol gridview input javascript json字符串 JS转换对象JSON jwt JWT授权 linq log Math MCP mitmproxy MVC MySQL Navicat netstat nginx node_modules NSwag Nuget Nuget镜像 number PowerShell pyinstaller python pythoncom python爬虫 python抓包 pywin32 redis Requests-html RestSharp Selenium sql SQL Server Swagger to-cms Visual Studio VSCode vue VueRouter vue路由 VUE页面通讯 Webpack Windows Windows服务 winform wmi xlrd yaml YESCMS YESWEB开发框架 白象 表单提交 播放声音 打开URL 代码混淆 弹窗提醒 端口占用 对象转换 分布式 公共字典 机器码 进程排查 静态资源 开发指南 路由参数 密钥 配置教程 配置文件 权限 人工智能 任务 任务调度 日期间隔 日志 日志记录 省市区 授权验证 数据库 四舍五入 文案 文件读取 文件夹选择 文件目录选择 问题排查 行政区域数据 页面通讯 中间件 CSharp 事务锁 工单系统 并发控制 重复提交 CMS Markdig Markdown markdown-it marked 技术选型 VS Code 开发工具 源代码管理 版本控制 Docker PostgreSQL 时区 部署排查 CMS架构 EF Core 主题系统 二次开发 插件系统 容器 运维命令 镜像清理 Linux NAS 远程挂载 飞牛 fnOS S/4HANA SAP GUI SAP HANA SAP R/3 SAP入门 SAP版本 ERP SAP SAP MM 库存管理 物料管理 采购管理 入门教程 SAP S/4HANA SPRO 企业结构 采购组织 MM01 物料主数据 物料类型 BP分组 业务伙伴 供应商主数据 ME41 RFQ 库存物料 采购流程 ME51 消耗性物料 科目分配 采购申请 AC03 ML81N 外部服务 服务主数据 Business Partner SAP培训 ME51N MM模块 Lean Services MM-SRV 外部服务采购 PIR 供应来源 采购主数据 采购信息记录 ME31K 框架协议 计划协议 采购合同 ME01 供应来源确定 货源清单 MEQ1 供应源确定 配额安排 配额评分 MD04 MD21 MRP 计划文件 需求计划 批量程序 MD01N MD02 MRP Live MD05 MM 物料计划 优化采购 供应源 采购订单 ME2A 供应商确认 采购监控 Flexible Workflow 凭证释放 采购审批 释放策略 实地盘点 物料凭证 货物移动 MIGO 收货 移动类型 已撤回 供应商退货 货物发出 STO 库存转储 转移过账 生产订单 预留 GR/IR MIRO 供应商发票 物流发票校验 OMR2 税码 FI PP SD 实操教程 MRBR OMR6 发票差异 交货成本 后续借记 MI01 实物盘点 盘点差异 公司代码 工厂 组织结构 OMS2 主数据定制 自动科目确定 BP角色 CVI 伙伴确定 编号范围 凭证类型 字段选择 FBN1 OMBT OMC2 会计凭证 OMJJ BOM 委外加工 项目类别L MRKO 供应商寄售 特殊库存K MRKON PIPE Pipeline 特殊库存P ERS MRIS 发票计划 周期性结算 里程碑付款 变更追踪 版本管理 采购凭证 SFTP WebDAV 网盘 飞牛fnOS AMPL HERS MPN 中文教程 库存确定 可用性检查 缺件检查 Output Management 消息确定 输出确定 分割评估 库存计价 评估类别 评估类型 PB00 RM0000 条件技术 采购定价 MM-FI集成 OBYC 库存估价 文本类型 文本采用 EFB EVO MSV SU3 用户参数 发票校验 合同参照 履约保留款 特别总账 预付款 Fiori Launchpad SAP Fiori 应用导航 用户体验 LSMW LTMC Migration Cockpit 数据迁移 BRFplus OPD Output Control My Inbox 审批流程 灵活工作流 SAP PP 外部加工 SAP QM 检验批 质量信息记录 采购收货 SAP PM 维护BOM 维护订单 SAP SD SAP Service 端到端流程 MM模块培训 FI-MM集成 供应商管理 审批配置 FICO入门 SAP FICO 财务配置 供应商税务 预扣税 House Bank 银行对账 客户清账 应收账款 FI控制 验证与替代 印度 GST 税务配置 F110 FBZP EWM入门 SAP EWM 仓库管理 OX14 成本核算 物料评估 后勤配置 物料组 价值更新 数量更新 PP-PI 流程制造 生产计划 容差配置 SAP事务码 SAP基础 TCODE Basis 事务代码 MMNR 编号区间 采购实操 组织架构 OMSF SAP实操 FI配置 端口修改 密码设置 数据库配置 远程访问 ABAP基础 SAP ABAP 内表 变量定义 常量 数据类型 ABAP SAP开发 变量 基础语法 系统变量 结构体 字符串处理 循环语句 控制语句 DDIC SE11 数据字典 透明表 ABAP开发 ALE EDI IDoc 增强技术 ABAP内表 HASHED TABLE SORTED TABLE STANDARD TABLE 基本概念 性能优化 PARAMETERS SELECT-OPTIONS SELECTION-SCREEN 报表程序 选择屏幕 F4帮助 Report事件 输入校验 ABAP SQL ABAP语法 Open SQL SELECT 数据库访问 IKuai IP修改 PVE 网络配置 虚拟化
联系我们
联系电话:15090125178(微信同号)
电子邮箱:garson_zhang@163.com
站长微信二维码
微信二维码