某装备制造企业的一批图纸做了加密处理。
工程师在自己电脑上双击打开,改、存、另存,和以前没有区别。
同一份文件拷到另一台电脑上,用同一个软件打开,跳出来的是一堆乱码。
差别不在文件本身,在它现在待的这台机器。
一、一次"打开文件",请求在文件系统这一层被截住
"透明"两个字描述的是一种体验,实现它的位置只有一个,就是文件系统的读写路径。
1. 程序发起读写请求,请求先被拦一道
打开、保存、另存、复制到别的目录,每一下都会产生一次读写请求。
请求不会直接落到磁盘上,中间有一个环节先看它一眼。
这一层就是这类软件的位置,也是它全部能力的来源。
2. 判断的对象是进程,不是登录的人
拦截层看的不是"谁在操作",而是"这次读写是哪个进程发起的"。
授权进程的请求按明文处理,非授权进程的请求按密文处理。
同一个账号,用允许的程序打开是明文,用一个小工具打开就可能是乱码。
3. 写回时先加密再落盘
授权程序写下去的内容,先加密再进磁盘;同一个程序读回来时,先解密再交上去。
所以在磁盘上找这份文件,看到的始终是密文。
使用者感觉不到这几步,这就是"透明"两个字的全部含义。
二、决定"给不给明文"的,是三样依据
进程是第一判据,但它不是唯一的一条。
1. 文件自己的归属与密级
(1)不同部门、不同安全区域可以各用一套密钥,彼此不通用。
(2)跨部门取用时会提示权限不足。
(3)高密级看低密级通常允许,反向会被拦住。
2. 所处的环境
在不在受控终端、在不在内网,都会影响解密能不能拿到授权。
同一份文件换一个环境,结果可能完全不同。
3. 为什么判据要落在进程上
账号可以借用、可以共用,程序身份相对稳定。
代价也在这里:名单本身成了一条能被试探的边界。
三、真正考验这套机制的,是异常路径
正常路径走通不难,难的是下面这几种情况。
1. 离线:拿不到授权时给什么
出差、居家办公时不在内网,授权请求发不出去。
是继续给明文,还是按缓存策略降级,必须提前定义,否则现场只能靠临时开权限解决。
2. 换机与重装
驱动、注册项、密钥都要重新对齐,顺序错了就会出现"文件打不开"的误判。
这一段的操作规范,比软件本身更容易出问题。
3. 名单里的程序被冒用
把文件改个扩展名、拖进一个在名单里的程序去处理,是这类机制必须专门应付的情况。
名单收得越紧,这类试探越多;名单放得越松,判据本身就越没有意义。
4. 屏幕和拍照
文件被打开、显示在屏幕上,用手机拍下来,加密机制管不到这一步。
防泄漏的内容识别同样需要明文,密文面前它看不出里面是什么。
这两条说明:加密管的是文件本身,不是内容被看到之后的去向。
四、这类软件对稳定性的要求比普通软件高
原因不在功能多少,在它站的位置。
1. 它站在读写路径上,出错就是整机问题
普通软件崩了,损失的是一个软件;这一层出问题,表现往往是卡顿甚至无法开机。
位置决定了它没有"降级运行"这个选项。
2. 兼容性是需要持续投入的活
和防护类软件、其他驱动、各类业务程序共存,都要逐个验证。
上线前测过,不等于上新版本之后还成立。
3. 上线要留回退方案
先小范围试,确认读写路径上不出异常,再逐步铺开。
出问题时要有不停机就能退回的办法,否则只能挨台处理。
五、小结
透明加密软件做的,是在文件系统的读写路径上截住请求,按进程身份决定给明文还是给密文。
"透明"指的是使用者的习惯不变,文件在磁盘上始终是密文。
它管得住文件,管不住屏幕;能拦住程序,拦不住被借用的程序身份。
责编:安企神-小赵