(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202210791685.0 (22)申请日 2022.07.07 (71)申请人 北京双洲科技有限公司 地址 100020 北京市朝阳区安 立路66号4号 楼III段11层 (72)发明人 姚述源 章翔凌 李升平  (51)Int.Cl. G06F 3/06(2006.01) G06F 21/62(2013.01) (54)发明名称 一种linux操作系统环境下文件加密密钥的 存储方法 (57)摘要 本发明公开了一种linux操作系统环境下文 件加密密钥的存储方法, 包括如下步骤: 1、 文件 加密与加密密钥存储, 2、 密文加密密钥 与文件解 密。 该方法并没有多余的I/O操作, 也不依 赖于其 他软件, 整个过程高效简洁, 只要文件存在, 就不 会担心文件密钥的丢失。 本专利的优点在于: 1、 文件加密密钥存储时, 不再对第三方数据库的依 赖; 2、 减少了系统资源的浪费; 3、 降低了系统维 护人员的维护成本; 4、 减少了系统I/O操作次数, 提高了应用程序的效率; 5、 文件与文件加密密钥 存储在一起, 只要文件存在的时候就一定存在文 件加密密钥, 防止数据库崩溃或无法连接时, 应 用业务无法正常进行的情况。 权利要求书1页 说明书4页 附图2页 CN 115098034 A 2022.09.23 CN 115098034 A 1.一种linux操作系统环境下文件加密 密钥的存 储方法, 其特 征在于, 包括如下步骤: 1)、 文件加密与加密 密钥存储, 其过程如下: 第一步: 应用程序使用工具(硬件或软件)生成随机的文件密钥key; 第二步: 应用程序使用文件密钥key对明文 文件file进行加密, 生成密文 文件efile; 第三步: 应用程序使用密钥加密密钥key对文件密钥key进行加密保护, 生成文件加密 密钥ekey; 第四步: 应用程序在用户态调用Linux操作系统提供的标准API接口setxattr()函数, 对密文文件的扩展属性进行设置; 第五步: setxattr()函数对传 入的参数进 行合法性检查, 如合法则继续, 不合法则错误 返回; 第六步: 执行进程调用strncpy_from_user()函数或copy_from_user()函数将参数从 用户空间拷贝到内核空间; 第七步: 调用vfs_setxat tr()函数, 将扩展属性信息写入实际文件系统; 第八步: 文件加密 密钥被写入 扩展属性, 成功存 储, 返回; 2)、 密文加密 密钥与文件解密, 其过程如下: 第一步: 应用程序获取 预解密的密文 文件efile路径path; 第二步: 应用程序在用户态调用Linux操作系统提供的标准API接口getxattr()函数, 对密文文件的扩展属性进行获取; 第三步: getxat tr()函数对传入的参数进行合法性检查; 第四步: 执行进程调用strncpy_from_user()函数或copy_from_user()函数将参数从 用户空间拷贝到内核空间; 第五步: 调用vfs_getxattr()函数, 从文件系统记录获取将扩展属性信息, 即文件加密 密钥ekey; 第六步: 获取到文件加密 密钥, 将其返回用户态; 第七步: 应用程序将密钥加密 密钥key对文件加密 密钥ekey进行解密还原, 生成key; 第八步: 使用key对efi le进行解密, 生成明文 文件file; 第九步: 解密结束。 2.根据权利要求1所述的一种linux操作系统环境下文件加密密钥的存储方法, 其特征 在于, 所述函数setxattr包含五个参数: 第一个是指向目标对象对应的目录项, 即/path/ efile; 第二个参数表示用户空间的扩展属性名称, 即user.key; 第三个表示用户空间的扩 展属性的值, 即ekey; 第四个表示扩展属性值的长度; 第五个表 示传递给文件系统相关操作 的标志。 3.根据权利要求1所述的一种linux操作系统环境下文件加密密钥的存储方法, 其特征 在于, 所述getxattr()函数包括四个参数, 第一个表示目标对象对应的目录项, 即/path/ efile, 第二个表示用户空间的扩展属性名称, 即user.key, 第三个为保存用户空间的扩展 属性的值的缓冲区, 第四个表示扩展属性的长度。权 利 要 求 书 1/1 页 2 CN 115098034 A 2一种linux操作系统环境下文件加密 密钥的存 储方法 技术领域 [0001]本发明涉及一种加密密钥存储方法, 具体是一种linux操作系统环境下文件加密 密钥的存 储方法。 背景技术 [0002]对于文件加 密密钥的存储保护, 通常情况下的做 法是将加密后的文件密钥与其对 应的文件分开进 行各自存储。 应用程序通过密钥加密密钥(key)对文件密钥(key)进 行加密 保护, 生成文件加密密钥(ekey)。 因数据库表索引查找数据的方便性特点, 在设计加密密钥 存储方案时, 一般会将文件加密密钥写入数据库表, 而将与其对应的文件写入指定的文件 目录, 忽略了使用分开存储方式与数据库表存储带来的弊端; 文件加密密钥的保护存储需 要与数据库配套使用, 这就意味着系统管理员预先安装好数据库, 并且创建好数据 表。 文件 加密密钥写入整个过程大致如下: 应用程序连接数据库, 打开数据库表, 再将文件加密密钥 插入数据库表中。 在获取文件加密密钥时, 大概的流程如下: 应用程序连接数据库, 打开数 据库表, 查询获取相应的文件加密密钥, 再通过密钥加密密钥对文件加密密钥还原, 生 成文 件密钥。 [0003]如以上描述可知, 通常情况的做法不但增加了系统管理员的管理难度, 程序员的 开发工作量, 系统资源也会造成不必要的浪费, 在文件加密密钥存储与获取过程中过度依 赖第三方的数据库, 反复进行连接, 打开, 关闭, 读, 写等I/ O操作, 降低了程序运行的效率与 性能。 在数据库崩溃或无法连接时, 整个程序的运行会陷入停滞 状态, 用户无法对密 文文件 进行解密, 降低了程序应用的可靠性与安全性。 如何解决在文件加密密钥更高效的存储与 获取, 对第三方的依赖程度更低, 应用起 来更独立是件很有意 义的事情。 发明内容 [0004]本发明的目的在于提供一种linux操作系统环境下文件加密密钥的存储方法, 以 解决上述背景技 术中提出的问题。 [0005]为实现上述目的, 本发明提供如下技 术方案: [0006]一种linux操作系统环境下文件加密密钥的存储方法, 包括如下步骤: 1、 文件加密 与加密密钥存储, 其过程如下: [0007]第一步: 应用程序使用工具(硬件或软件)生成随机的文件密钥key; [0008]第二步: 应用程序使用文件密钥key对明文文件file进行加密, 生成密文文件 efile; [0009]第三步: 应用程序使用密钥加密密钥key对文件密钥key进行加密保护, 生成文件 加密密钥ekey; [0010]第四步: 应用程序在用户态调用Linux操作系统提供的标准API接口setxattr()函 数, 对密文 文件的扩展属性进行设置; [0011]其中, 函数setxattr包含五个参数: 第一个是指向目标对象对应的目录项, 即/说 明 书 1/4 页 3 CN 115098034 A 3

.PDF文档 专利 一种linux操作系统环境下文件加密密钥的存储方法

安全报告 > 其他 > 文档预览
中文文档 8 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共8页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 一种linux操作系统环境下文件加密密钥的存储方法 第 1 页 专利 一种linux操作系统环境下文件加密密钥的存储方法 第 2 页 专利 一种linux操作系统环境下文件加密密钥的存储方法 第 3 页
下载文档到电脑,方便使用
本文档由 思考人生2024-02-19 06:35:03上传分享
给文档打分
您好可以输入 255 个字符
网站域名是多少( 答案:github5.com )
评论列表
  • 暂时还没有评论,期待您的金玉良言
热门文档
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。