专利名称:基于会话的数据库存储加密方法
技术领域:
本发明属于计算机中的数据库应用技术领域,特别是一种用于保护用户敏 感数据的基于会话的数据库存储加密方法。
背景技术:
在政府、军队以及企业等数据库应用环境中,数据库中存放了大量敏感数 据,这些数据一旦被敌手获取会造成灾难性的损失。为了保护这些敏感数据, 各大安全数据库厂商都提供了存储加密方法,对敏感数据进行加密。当前所提 供的加密方法可以分为透明加密和非透明加密两种。
透明加密指的是将加密算法的相关信息和密钥保存在数据库中,当用户对 敏感数据进行操作时,由数据库管理系统自动完成加解密过程,该过程对用户 不可见。透明加密能够在不改变上层应用系统的同时有效保护敏感数据在存储 介质上的安全,且不限制加密对象的数据类型,但透明加密并不能阻止其它合 法的数据库用户对这些敏感数据的访问。
非透明加密则是将密钥以及加密算法相关信息由用户保管,并对外提供专 门的加解密接口,敏感数据的加解密过程由用户显式调用加解密接口完成。非 透明加密能够有效保护用户私有的敏感数据,以这种方法加密后的数据只有拥 有解密密钥的用户才能查看。不过非透明加密要求用户显式提供加密算法相关 信息,操作较为繁瑣,对已有的应用系统来说,移植也非常困难,而且非透明
加密对加密对象的数据类型存在限制, 一般只能是VARCHAR或VARBINARY类型。
发明内容
本发明的目的是提供一种克服现有数据库存储加密方法无法兼顾易用性与
敏感数据的有效保护的困境的基于会话的数据库存储加密方法,使用户能非常 方便地保护存放在数据库中的私有敏感数据。
为了实现上述目的,本发明解决其技术问题所釆用的方法是将加密算法
的相关信息与加密对象相关联,由数据库管理员事先设定,密钥则与用户信息 相关联,由用户事先设定,加密算法的相关信息与密钥分别存放,在需要对加 密对象进行加解密时再将它们结合起来使用。
上述方法的具体步骤是
第一步骤由数据库管理员事先为加密对象设置加密算法的相关信息,并 保存在与加密对象关耳关的元数据中,当用户对加密对象进行操作时,数据库管 理系统自动查询元数据,获取加密对象上加密算法的相关信息;
第二步骤将用户使用的加解密密钥交由用户自己管理,用户将密钥保存 到与用户信息关联的元数据中,作为缺省的密钥,当用户登录到数据库中之后,
系统自动将用户的缺省密钥设置到用户会话中,供数据库管理系统自动完成加
解密操作;
第三步骤当用户对加密对象进行操作时,自动调用第一步骤中应用在加 密对象上的加密算法,并利用第二步骤中保存在用户会话中的密钥完成加解密 操作;
上述第三步骤中还提供允许用户动态改变其会话密钥的接口 。 由于本发明采用将加密算法的相关信息与密钥分别存放,在需要对加密对 象进行加解密时再将它们结合起来使用,使得本发明既可实现对不同的加密对 象采用不同的加密算法,使用起来非常灵活,不用改变已有的应用系统,移植 性非常好,同时又能很好地保护用户私有的敏感凝:据,而且对加密对象的数据 类型没有限制。
图1为本发明的系统框图。
图2为本发明实施例系统框图。
具体实施例方式
下面结合附图和实施例对本发明作进一步的详细描述,但该实施例不应理 解为对本发明的限制。
本发明中将存储加密的要素分为加密算法的相关信息和密钥两部分分别管 理,首先由用户在定义存储敏感数据的加密对象时,给出加密算法、工作模式、 是否加盐、是否进行完整性检查等信息。而密钥由用户事先保存在用户元数据 中或在会话过程中动态进行改变。本发明由于事先设定加密算法,使得可以不 限制加密对象的凄t据类型。
本发明将密钥与用户及其建立的会话关联,加密算法的相关信息则与加密
对象关联;在加解密的过程中不需要用户显式调用加解密接口。在定义用户时, 可以设置用户的缺省密钥,在会话开始时,用户将密钥保存到会话中,数据库 管理系统自动利用密钥对敏感数据进行加解密,且在交互的过程中用户能够调 用系统接口更换该会话中保存的密钥。在定义加密对象时,可以设置加密算法 相关信息,当用户访问该对象时,数据库管理系统自动利用对象的加密算法相 关信息对敏感数据进行加解密,同时,当加密对象为列时,不限制其数据类型。 实施例
① 由用户1定义一个存放了敏感数据的表Tablel,定义Tablel时指定了加 密表TaMel中的数据所使用的加密算法;
② 用户2登录到数据库中,利用自己的密钥在Tablel上执行插入、查询等 操作。在插入和查询的过程中由数据库管理系统自动调用Tablel的加密 算法并利用用户2的密钥完成加解密过程;
③ 当用户3登录到数据库中之后,想要查看用户2在表Tablel中插入的数
据时,由于不知道用户2的解密密钥,系统无法对用户2插入的数据正确 解密,从而无法获取用户2的敏感数据。同样用户2在不知道用户3的解 密密钥时,也无法查看用户3在表Tablel中存》文的每丈感数据。 本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
权利要求
1、一种基于会话的数据库存储加密方法,所采用的方法是将加密算法的相关信息与加密对象相关联,由数据库管理员事先设定,密钥则与用户信息相关联,由用户事先设定,加密算法的相关信息与密钥分别存放,在需要对加密对象进行加解密时再将它们结合起来使用。
2、 如权利要求1所述的基于会话的数据库存储加密方法,其特征在于其 具体步骤是第一步骤由数据库管理员事先为加密对象设置加密算法的相关信息,并 保存在与加密对象关联的元数据中,当用户对加密对象进行操作时,数据库管 理系统自动查询元数据,获取加密对象上加密算法的相关信息;第二步骤将用户使用的加解密密钥交由用户自己管理,用户将密钥保存 到与用户信息关联的元数据中,作为缺省的密钥,当用户登录到数据库中之后, 系统自动将用户的缺省密钥设置到用户会话中,供数据库管理系统自动完成加 解密操作;第三步骤当用户对加密对象进行操作时,自动调用第一步骤中应用在加 密对象上的加密算法,并利用第二步骤中保存在用户会话中的密钥完成加解密 操作。
3、 如权利要求2所述的基于会话的数据库存储加密方法,其特征在于第 三步骤中还提供允许用户动态改变其会话密钥的接口 。
全文摘要
本发明涉及一种基于会话的数据库存储加密方法,所采用的方法是将加密算法的相关信息与加密对象相关联,由数据库管理员事先设定,密钥则与用户信息相关联,由用户事先设定,加密算法的相关信息与密钥分别存放,在需要对加密对象进行加解密时再将它们结合起来使用。由于本发明采用将加密算法的相关信息与密钥分别存放,在需要对加密对象进行加解密时再将它们结合起来使用,使得本发明既可实现对不同的加密对象采用不同的加密算法,使用起来非常灵活,不用改变已有的应用系统,移植性非常好,同时又能很好地保护用户私有的敏感数据,而且对加密对象的数据类型没有限制。
文档编号G06F21/00GK101183419SQ200710168708
公开日2008年5月21日 申请日期2007年12月7日 优先权日2007年12月7日
发明者铨 付, 亮 宁 申请人:武汉达梦数据库有限公司