V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
lander
V2EX  ›  问与答

磁盘加密的底层原理?

  •  
  •   lander · 2019-10-17 12:05:45 +08:00 · 3789 次点击
    这是一个创建于 1856 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近因为公司项目需求在测试 McAfee 的硬件加密软件,类似 BitLocker。
    目前有如下几个问题:
    1,磁盘是如何被加密的?
    2,加密算法在其中充当什么角色?

    搜索了一些资料,我的理解是这样的:
    >> 安装磁盘加密会修改主引导记录 MBR,先引导至磁盘加密软件自己的登录界面( PBFS ),用户输入自己设置的密钥通过验证之后才能正常引导至 Windows 启动界面。
    >> 会将磁盘里的所有扇区进行加密
    >> 加密完成后,实际读写数据是透明的

    不过感觉还是一知半解,欢迎补充!!


    提前谢过!!
    10 条回复    2019-10-17 16:55:09 +08:00
    jimmy2010
        1
    jimmy2010  
       2019-10-17 12:17:36 +08:00 via Android
    终极原理:打乱数据 bit 存放顺序,这个顺序只有你知道
    Laforet
        2
    Laforet  
       2019-10-17 12:39:35 +08:00 via Android
    加密算法这个一两句话说不清,建议找一些密码学原理的资料学习。

    透明全盘加密的实现原理是用一个特殊的存储驱动拦截系统的文件读写请求,返回解密后的数据。密钥只存在于内存里,断电后消失。
    oreoiot
        3
    oreoiot  
       2019-10-17 12:42:13 +08:00 via iPhone
    @Laforet #2 那这样把片子拆出来换到其他读写模块,或者直接 flash 改个读写驱动,就可以读出未加密的 bit 位?
    Laforet
        4
    Laforet  
       2019-10-17 12:43:34 +08:00 via Android
    @oreoiot

    写到盘上的数据已经是加密后的,如果你知道算法和密钥的话当然可以在另外一台设备上读出来。
    lander
        5
    lander  
    OP
       2019-10-17 13:02:05 +08:00
    @jimmy2010,是不是这样理解的:
    磁盘加密软件设置密钥初始化后,磁盘上已有的数据在文件系统层次上就被打乱了;而开机弹出的磁盘加密软件的认证界面类似非对称加密里的私钥,通过验证后就可以透明的访问和处理文件了。
    Laforet
        6
    Laforet  
       2019-10-17 13:13:23 +08:00 via Android
    @lander 一般的磁盘加密方案是用助记词(一般人所谓的密码)做种子,KDF 生成对称加密用的密钥。非对称加密性能太低,不合适。
    lander
        7
    lander  
    OP
       2019-10-17 13:43:54 +08:00
    @Laforet thanks!
    ysc3839
        8
    ysc3839  
       2019-10-17 14:40:18 +08:00 via Android   ❤️ 1
    可以看看开源的 VeraCrypt 是怎么实现的。
    ungrown
        9
    ungrown  
       2019-10-17 16:05:32 +08:00
    我寻思这些东西在维基百科和大厂文档上不都写得清清楚楚明明白白的嘛
    lander
        10
    lander  
    OP
       2019-10-17 16:55:09 +08:00
    感谢楼上的提醒,之前也看过维基百科上的资料的,不过看得不仔细,今天又深入查了下似乎是找到了一篇不错的科普文章:
    https://web.archive.org/web/20150917051251/http://www.markus-gattol.name/ws/dm-crypt_luks.html
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2568 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 01:33 · PVG 09:33 · LAX 17:33 · JFK 20:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.