一种基于数字签名的数据访问控制方法及系统与流程
未命名
07-14
阅读:76
评论:0
1.本文涉及数据访问领域,尤其涉及一种基于数字签名的数据访问控制方法及系统。背景技术:
::2.随着社会的快速发展,数据的重要性日益凸显,大量数据集中存放于数据库系统中,并通过商业智能平台等多种方式向数据分析师或企业经营管理人员提供用数、查数等功能,以满足企业客户营销、经营分析、企业管理等各类数据应用场景。在这过程中,多样的数据使用方法给数据的信息安全带来了新的挑战,如何在数据信息安全的前提下保障数据能被方便快速地使用具有重要意义。3.现有技术中一种数据访问控制方法依赖数据库系统的数据库用户,即分配若干数据库用户进行增删改查的操作,每个数据库用户所拥有的权限各不相同。这种方法存在以下问题:一是由于依赖数据库系统所提供的功能,数据库用户的数量往往存在限制,无法满足大量的企业用户使用,二是由于每个数据库系统的用户及权限管理的实现方式不一致,每个数据库系统均需要配置用户和权限,造成维护成本高且管理困难。4.现有技术中另一种数据访问控制方法是通过一数据访问控制装置接收用户的数据库访问请求,由其判断用户是否具有相关数据的访问权限,如用户具有权限则将访问命令(sql语句)发送至数据库系统。该方法通过集中控制的方式,解耦了数据库系统与数据访问控制,满足企业大量用户的使用,集中式的控制也降低了维护成本。但在该方法中,数据库系统无法感知或验证请求的sql语句是否合法,若非法用户绕过数据访问控制装置直接将sql语句发送至数据库系统,则会出现越权访问;另一方面,所有的sql语句都需要经由数据访问控制装置转送至数据库系统,在高并发的情况下,将产生数据访问控制装置负载高,数据访问响应不及时的问题。技术实现要素:5.本文用于解决现有技术中数据访问控制在提高数据访问量同时会引起安全性差的问题。6.为了解决上述技术问题,本文一方面提供一种基于数字签名的数据访问控制方法,应用于数据访问控制装置,包括:7.接收客户端发送的数据访问请求,验证用户的访问权限,权限验证通过后对数据访问请求进行签名处理得到数字签名,其中,所述数据访问请求包括:用户信息、数据库系统标识、访问命令;8.发送所述数字签名至所述客户端,以由所述客户端发送数据访问请求及数字签名至目标数据库系统。9.作为本文进一步实施例中,验证用户的访问权限包括:10.根据所述数据访问请求中的用户信息及数据库系统标识,获取用户在数据库系统的权限集,所述用户在数据库系统的权限集由多个元组构成,每个元组包括一数据表标识及操作类型;11.对所述数据访问请求中的访问命令进行语法解析,得到访问对象及操作类型;12.判断用户在数据库系统的权限集与访问对象及操作类型是否一致,若一致,则访问权限验证通过。13.作为本文进一步实施例中,对数据访问请求进行签名处理得到数字签名包括:14.对所述数据访问请求或数据访问请求及时间信息进行序列化处理;15.计算序列化后数据的摘要信息;16.根据数据访问请求中数据库系统标识,确定数据的时效性;17.根据数据的时效性及用户信息,确定数据访问请求的优先级;18.从预先配置的第一加密算法配置表中,查询数据访问请求的优先级相对应的第一目标非对称加密算法;19.利用所述第一目标非对称加密算法对序列化后数据的摘要信息进行签名处理得到数字签名。20.作为本文进一步实施例中,对数据访问请求进行签名处理得到数字签名包括:21.对所述数据访问请求或数据访问请求及时间信息进行序列化处理;22.计算序列化后数据的摘要信息;23.每隔固定时间间隔,统计未处理的数据访问请求数量;24.从预先配置的第二加密算法配置表中,查询所述数据访问请求数量相对应的第二目标非对称加密算法;25.利用所述第二目标非对称加密算法对序列化后数据的摘要信息进行签名处理得到数字签名。26.作为本文进一步实施例中,接收到客户端发送的数据访问请求后,还包括:27.对所述数据访问请求进行正确性检查;28.检查通过后验证用户的访问权限。29.作为本文进一步实施例中,对所述数据访问请求进行正确性检查包括:30.验证所述数据访问请求与标准数据访问请求的数据格式是否一致;31.验证所述数据访问请求中参数是否满足预设规则。32.本文第二方面还提供一种基于数字签名的数据访问控制方法,应用于目标数据库系统,包括:33.接收客户端发送的数据访问请求及数字签名;34.对数字签名进行验签操作,以判断数字签名与接收到的数据访问请求是否匹配,若匹配,则响应所述数据访问请求。35.作为本文进一步实施例中,所述数据访问请求还包括:请求时间信息;36.确定数字签名与接收到的数据访问请求匹配后,还包括:37.对所述数据访问请求中的请求时间信息进行预定值延后处理,得到截止时间;38.判断当前时间是否早于截止时间,若否,则不响应所述数据访问请求,若是,则响应所述数据访问请求。39.作为本文进一步实施例中,响应所述数据访问请求之前,还包括:40.判断所述数字签名是否在缓存中存在,若存在,则不响应所述数据访问请求,若不存在,则将所述数字签名存储至缓存中,并设置所述数字签名的有效时间,待有效时间到后,删除缓存中的数字签名。41.作为本文进一步实施例中,所述数字签名利用目标数据库系统相关的私钥对所述数据访问请求的摘要信息进行加密得到;42.对数字签名进行验签操作,以判断数字签名与接收到的数据访问请求是否匹配包括:43.对所述数据访问请求进行序列化处理;44.计算序列化后数据的摘要信息;45.利用本系统的公钥对数字签名进行解密;46.判断解密结果与序列化后数据的摘要信息是否一致,若一致,则匹配成功,反之,匹配失败。47.本文第三方面提供一种数据访问控制装置,包括:48.接收模块,用于接收客户端发送的数据访问请求;49.权限校验模块,用于验证用户的访问权限;50.签名模块,用于在权限验证通过后对数据访问请求进行签名处理得到数字签名,其中,所述数据访问请求包括:用户信息、数据库系统标识、访问命令;51.发送单元,用于发送所述数字签名至所述客户端,以由所述客户端发送数据访问请求及数字签名至目标数据库系统。52.本文第四方面提供一种数据库系统,包括:53.接收模块,用于接收客户端发送的数据访问请求及数字签名;54.签名验证模块,用于对数字签名进行验签操作,以判断数字签名与接收到的数据访问请求是否匹配,若匹配,则由执行模块响应所述数据访问请求。55.本文第五方面提供一种基于数字签名的数据访问控制系统,包括:客户端、数据访问控制装置及多个数据库系统;56.所述客户端用于发送数据访问请求至所述数据访问控制装置;发送数据访问请求及数字签名至目标数据库系统;其中,所述数据访问请求包括:用户信息、数据库系统标识、访问命令;57.所述数据访问控制装置用于接收所述数据访问请求,验证用户的访问权限,权限验证通过后对数据访问请求进行签名处理得到数字签名,发送所述数字签名至所述客户端;58.所述数据库系统用于接收数据访问请求及数字签名,对数字签名进行验签操作,以判断数字签名与接收到的数据访问请求是否匹配,若匹配,则响应所述数据访问请求。59.作为本文进一步实施例中,数据访问控制装置包括:级联布置的多个访问控制设备,每一访问控制设备接收本访问控制设备服务地区内客户端发出的数据访问请求;60.当一访问控制设备故障时,本访问控制设备服务地区内客户端发出数据访问请求会发送至本访问控制设备上一级的访问控制设备。61.本文第六方面提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现前述任一实施例所述方法。62.本文第七方面提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被计算机设备的处理器执行时实现前述任一实施例所述的方法。63.本文第八方面提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被计算机设备的处理器执行时实现前述任一实施例所述的方法。64.本文提供的基于数字签名的数据访问控制方法、装置、系统、数据访问控制装置及数据库系统,通过由数据访问控制装置接收客户端发送的数据访问请求,验证用户的访问权限,验证通过后对数据访问请求进行签名处理得到数字签名,发送数字签名至客户端,其中,数据访问请求包括:用户信息、数据库系统标识、访问命令;客户端发送数据访问请求及数字签名至目标数据库系统;目标数据库系统接收数据访问请求及数字签名,对数字签名进行验签操作,以判断数字签名与接收到的数据访问请求是否匹配,若匹配,则响应数据访问请求,使得数据库系统根据数字签名能够验证数据访问请求的合法性,保证数据的安全访问,同时数据访问控制装置只进行权限校验和数字签名,不负责转送数据访问请求,降低了负载,提高了吞吐量,可满足高并发场景下的数据访问控制需求。65.为让本文的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。附图说明66.为了更清楚地说明本文实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本文的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。67.图1示出了本文实施例基于数字签名的数据访问控制方法的流程图;68.图2示出了本文实施例数据访问请求检查过程流程图;69.图3示出了本文实施例验证用户访问权限过程的流程图;70.图4示出了本文实施例对数据访问请求进行数字签名过程的第一流程图;71.图5示出了本文实施例对数据访问请求进行数字签名过程的第二流程图;72.图6示出了本文实施例数据库系统验证数据访问请求过程的第一流程图;73.图7示出了本文实施例数据库系统验证数据访问请求过程的第二流程图;74.图8示出了本文实施例数据库系统验证数据访问请求过程的第三流程图;75.图9示出了本文实施例基于数字签名的数据访问控制系统的结构图;76.图10示出了本文实施例数据访问控制装置的结构图;77.图11示出了本文实施例数据库系统的结构图;78.图12示出了本文实施例签名验证模块执行过程的流程图;79.图13示出了本文实施例计算机设备的结构图。80.附图符号说明:81.901、客户端;82.902、数据访问控制装置;83.903、数据库系统;84.1001、接收模块;85.1002、权限校验模块;86.1003、签名模块;87.1004、发送模块;88.1005、用户权限池;89.1102、存储装置;90.11011、接收模块;91.11012、签名验证模块;92.11013、执行模块;93.1302、计算机设备;94.1304、处理器;95.1306、存储器;96.1308、驱动机构;97.1310、输入/输出模块;98.1312、输入设备;99.1314、输出设备;100.1316、呈现设备;101.1318、图形用户接口;102.1320、网络接口;103.1322、通信链路;104.1324、通信总线。具体实施方式105.下面将结合本文实施例中的附图,对本文实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本文一部分实施例,而不是全部的实施例。基于本文中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本文保护的范围。106.需要说明的是,本文的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本文的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。107.本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或装置产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行。108.需要说明的是,本文的基于数字签名的数据访问控制方法及装置可用于金融领域的数据访问控制,也可用于除金融领域之外的任意领域,本文的基于数字签名的数据访问控制方法及装置的应用领域不做限定。109.需要说明的是,本技术所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。110.本文一实施例中,提供一种基于数字签名的数据访问控制方法,用于解决现有技术中数据访问控制在提高数据访问量同时会引起安全性差的问题。具体的,如图1所示,包括:111.步骤101,数据访问控制装置接收客户端发送的数据访问请求,验证用户的访问权限,权限验证通过后对数据访问请求进行签名处理得到数字签名,发送数字签名至客户端。112.其中,数据访问请求包括:用户信息、数据库系统标识、访问命令。用户信息包括:用户标识和凭据,用户标识用于唯一表示用户,例如为身份证号、手机号、用户名等。凭据包括但不限于用户密码、用户密码摘要、数字签名等多种形式。数据库系统标识用于唯一表示/定位数据库系统。访问命令可由sql语句实现,包括但不限于select(选择)、update(更新)、delete(删除)、alter(更改)等。113.对数据访问请求进行签名处理得到数字签名过程包括:先对数据访问请求进行序列处理,计算序列化后数据的摘要信息,对摘要信息进行签名处理。通过对数据访问请求的摘要信息进行签名,能够提高签名效率,避免因数据访问请求数据量过大而影响签名效率。本步骤实施时,还可先判断序列化后数据的数据量,当数据量大于预定值时,计算序列化后数据的摘要信息,并对摘要信息进行签名处理。当数据量小于或等于预定值时,可直接对序列化后数据进行签名处理。摘要信息的计算可利用现有算法,例如sha512,本文对其具体计算方法不做限定。114.数据访问控制装置可以为服务器、计算机设备等。具体实施时,当应用系统包含多个不同层级的机构,例如银行系统包括多个不同级的机构(总行-分行-支行等),为了提高数据访问效率,数据访问控制装置包括:级联布置的多个访问控制设备,每一访问控制设备接收本访问控制设备服务地区内客户端发出的数据访问请求,该种访问控制设备的布局方式能够避免同一时间产生多个数据访问请求而来不及影响的情况,提高数据访问请求相应效率。115.进一步的,当一访问控制设备故障时,本访问控制设备服务地区内客户端发出数据访问请求会发送至本访问控制设备上一级的访问控制设备。该种方式能够保证数据访问请求的有效处理。116.客户端可以为台式电脑、平板电脑、笔记本电脑、智能手机、数字助理、智能可穿戴设备等。其中,智能可穿戴设备可以包括智能手环、智能手表、智能眼镜、智能头盔等。当然,所述客户端并不限于上述具有一定实体的电子设备,其还可以为运行于上述电子设备中的软件。117.本文通过数据访问控制装置验证用户访问权限及生成数字签名,能够实现用户权限管理与数据访问请求转发解耦,提高数据访问请求发送效率并能保证数据库系统对数据访问的合法性的感知,保证数据访问安全性。118.步骤102,客户端发送数据访问请求及数字签名至目标数据库系统。119.客户端接收到数据访问控制装置发送的数字签名之后,直接将数据访问请求及数字签名发送至目标数据库系统。120.步骤103,目标数据库系统接收数据访问请求及数字签名,对数字签名进行验签操作,以判断数字签名与接收到的数据访问请求是否匹配,若匹配,则响应数据访问请求。121.本实施例通过数据访问控制装置对数据访问请求进行签名处理,由客户端将数据访问请求及数字签名发送至数据库系统,能够实现权限集中管控的同时使得数据库系统根据数字签名验证数据访问请求的合法性,保证数据的安全访问,同时数据访问控制装置只进行权限校验和数字签名,不负责转送数据访问请求,降低了负载,提高了吞吐量,可满足高并发场景下的数据访问控制需求。122.本文一实施例中,数据访问控制装置接收到客户端发送的数据访问请求后,还包括:对数据访问请求进行正确性检查,检查通过后验证用户的访问权限。具体的,如图2所示,正确性检查包括:123.步骤201,验证数据访问请求与标准数据访问请求的数据格式是否一致。其中,标准数据访问请求的数据格式预先存储于数据访问控制装置中,验证的内容主要包括访问请求中参数的位置是否正确。124.步骤202,验证数据访问请求中参数是否满足预设规则。其中,预设规则用于规定数据访问请求中参数的取值范围。125.本实施例先通过对数据访问请求进行正确性检查,在数据访问请求不正确时,直接略过用户访问权限的验证,由于数据访问请求正确性检查相对于数据访问权限验证具有效率高的优势,因此,本实施例能够提高数据权限的验证效率。126.本文一实施例中,如图3所示,上述步骤101验证用户的访问权限包括:127.步骤301,根据数据访问请求中的用户信息及数据库系统标识,获取用户在数据库系统的权限集,用户在数据库系统的权限集由多个元组构成,每个元组包括一数据表标识及操作类型。128.其中,数据表标识可由表名表示,例如uuu.table_xxx_yyy,操作类型指的是访问命令所允许的操作类型,包括但不限于select、update、delete、alter等。元组为一不可更改的数据结构,将若干数据整合为一个有序的整体,之后不再变化,使用括号的形式表示,如(uuu.table_xxx_yyy,select)、(uuu.table_xxx_yyy,update)、(uuu.table_xxx_yyy,delete)等,在进行元组比较时,两个元组的数据必须完全一致才能认为二者相等。129.本步骤实施时,从用户权限池中获取用户在数据库系统中的权限集。130.步骤302,对数据访问请求中的访问命令进行语法解析,得到访问对象及操作类型。131.详细的说,每一访问对象及其对应的操作类型可构成一元组,多个元组组成校验集。例如一访问命令对同一张表(访问对象)有多种操作类型,则会得到多个元组。132.步骤303,判断用户在数据库系统的权限集与访问对象及操作类型是否一致,若一致,则访问权限验证通过。133.本步骤实施时,计算校验集在权限集中的差集,若该差集为空集,则权限校验通过,若该差集不为空集,则权限校验不通过。校验集在权限集中的差集是一个由所有属于校验集但不属于权限集的元素构成的集合。134.本实施例通过元组的方式存储用户权限,能保证用户访问权限有序验证。135.本文一实施例中,为了保证签名的处理速度及效率,签名算法可选用edwards25519算法,edwards25519算法是一种基于edwards25519椭圆曲线的快速签名算法,该算法包括公私钥,公布其中的公钥,私钥用于签名,公钥用于验证签名,公钥和私钥的长度均为32字节。edwards25519椭圆曲线签名算法在保证安全强度的前提下在2.4ghz的intelwestmerecpu上可以达到10万/秒的签名速度和7万/秒的验签速度。136.本文一实施例中,如图4所示,数据访问控制装置对数据访问请求进行数字签名包括:137.步骤401,对数据访问请求或数据访问请求及时间信息进行序列化处理,并计算序列化后数据的摘要信息。138.本步骤能够将数据访问请求转换为字符串,便于对其进行签名。一些实施方式中,数据访问请求使用json格式进行封装,本步骤序列化处理能够将json格式转换为字符串。139.步骤402,根据数据访问请求中数据库系统标识,确定数据的时效性。140.本步骤实施时,从数据库系统与时效性的关联关系中确定数据访问请求中数据库系统标识对应的数据时效性。时效性用于表示数据库系统中存储数据的更新频率,具体的,更新频率越快,数据时效性越短,更新频率越慢,数据时效性越长。141.步骤403,根据数据的时效性及用户信息,确定数据访问请求的优先级。142.本步骤实施时,预先配置时效性及用户等级与访问优先级间的关联关系,时效性越短、用户等级越高,对应的优先级越高。143.步骤404,从预先配置的第一加密算法配置表中,查询数据访问请求的优先级相对应的第一目标非对称加密算法。144.其中,第一加密算法配置表中配置有优先级与非对称加密算法间的关联关系,优先级越高,非对称加密算法的处理速度越快,进而能够保证数据访问的时效性。145.步骤405,利用第一目标非对称加密算法对序列化后数据的摘要信息进行数字签名。146.本实施例考虑到加密速度快的签名算法cpu占用率及费用高的问题,通过数据访问请求对数据需求的时效性确定加密算法,能够减少加密费用及资源占用开销,保证数据访问请求的有效加密。147.本文一实施例中,如图5所示,数据访问控制装置对数据访问请求进行数字签名包括:148.步骤501,对数据访问请求或数据访问请求及时间信息进行序列化处理,并计算序列化后数据的摘要信息。149.步骤502,每隔固定时间间隔,统计未处理的数据访问请求数量。150.具体实施时,固定时间间隔可根据需求进行设定,本文对此不作限定。151.步骤503,从预先配置的第二加密算法配置表中,查询数据访问请求数量相对应的第二目标非对称加密算法。152.详细的说,第二加密算法配置表中记录有数据访问请求数量及非对称加密算法的对应关系。对应关系建立过程包括:先确定根据非对称加密算法在预定时间段内处理数据访问请求数量x,然后建立非对称加密算法与数据访问请求数量x相关范围(增加或减少预定值)的对应关系。153.步骤504,利用第二目标非对称加密算法对序列化后数据的摘要信息进行数字签名。154.本实施例能够根据未处理的数据访问请求数量调整加密算法,进而保证数据访问请求加密效率,实现加密效率与加密开销的平衡。155.本文一实施例中,数据访问请求除了包括用户信息、数据库系统标识、访问命令外,还包括:请求时间信息。156.如图6所示,数据库系统确定解密结果与接收到的数据访问请求一致后,还包括:157.步骤601,对数据访问请求中的请求时间信息进行预定值延后处理,得到截止时间。158.预定值可根据数据访问请求流转时间而定,一些实施方式中,预定值例如为10分钟。159.步骤602,判断当前时间是否早于截止时间,若否,则不响应数据访问请求,若是,则响应数据访问请求。160.本实施例能够避免响应重复发送或异常发送的数据访问请求,保证数据访问的安全。161.本文一实施例中,如图7所示,数据库系统响应数据访问请求之前包括:162.步骤701,判断所述数字签名是否在缓存中存在,若存在,则执行步骤702,若不存在,则执行步骤703。163.步骤702,不响应数据访问请求。164.步骤703,设置数字签名的有效时间,待有效时间到后,删除缓存中的数字签名。165.其中,有效时间可根据实际需求进行设定,一些实施方式中,有效时间为10分钟。166.本实施例能够保证每一数据访问请求只响应一次,避免因网络故障或用户误操作或非法用户截获后发送等重复发送数据访问请求情况下的重复响应问题。167.本文一实施例中,数字签名利用目标数据库相关的私钥对数据访问请求的摘要信息进行加密得到。168.如图8所示,目标数据库系统对数字签名进行验签操作,以判断数字签名与接收到的数据访问请求是否匹配包括:169.步骤801,对数据访问请求进行序列化处理,计算序列化后数据的摘要信息。170.步骤802,利用本系统的公钥对数字签名进行解密。171.步骤803,判断解密结果与序列化后数据的摘要信息是否一致,若一致,则响应数据访问请求,反之,拒绝响应数据访问请求。172.进一步实施例中,还记录拒绝响应数据访问请求的次数,当次数达到一定量后,发送提醒信息至响应客户端。173.本文一实施例中,还提供一种基于数字签名的数据访问控制系统,如图9所示,数据访问控制系统包括:客户端901、数据访问控制装置902及多个数据库系统903。174.客户端901用于发送数据访问请求至所述数据访问控制装置;发送数据访问请求及数字签名至目标数据库系统。其中,所述数据访问请求包括:用户信息、数据库系统标识、访问命令。175.数据访问控制装置902用于接收所述数据访问请求,验证用户的访问权限,权限验证通过后对数据访问请求进行签名处理得到数字签名,发送所述数字签名至所述客户端。176.数据库系统903用于接收数据访问请求及数字签名,对数字签名进行验签操作,以判断数字签名与接收到的数据访问请求是否匹配,若匹配,则响应数据访问请求。177.本实施例使得数据库系统根据数字签名能够验证数据访问请求的合法性,保证数据的安全访问,同时数据访问控制装置只进行权限校验和数字签名,不负责转送数据访问请求,降低了负载,提高了吞吐量,可满足高并发场景下的数据访问控制需求。178.本文一实施例中,如图10所示,数据访问控制装置包括:接收模块1001、权限校验模块1002、签名模块1003及发送模块1004。179.接收模块1001用于接收客户端发起的数据访问请求,并进行相应的格式检查。格式检查包括:检查数据访问请求是否包含用户信息、数据库系统标识、sql语句和请求时间;数据访问请求中的字段格式是否正确。格式检查正确以能识别上述信息为准,且相关信息没有明显不合理,如请求时间不应超过预定时间。180.具体的,检查用户信息是否正确,检查数据库系统标识是否正确。检查用户信息需同时检查用户的合法性,用户信息包含用户的标识和凭据,凭据的形式可为用户密码、用户密码的摘要、数字签名等多种形式。检查数据库系统标识只需确认标识存在即可。181.权限校验模块1002用于校验用户是否具有本次数据访问请求相关数据的权限。182.具体的,包括:183.步骤1,以数据访问请求的用户信息和数据库系统标识,获取此用户在该数据库系统的权限,以表名和操作类型作为元组构成权限集a。用户在数据库系统的权限集中存放于用户权限池1005。184.步骤2,对数据访问请求的sql语句进行语法解析,得到sql语句涉及的表和其操作类型,以表和操作类型构成校验集。若sql语句对同一张表有多种操作类型,则在校验集中有对应的多个元组。185.步骤3,计算校验集在权限集中的差集,若该差集为空集,则权限校验通过,若该差集不为空集,则权限校验不通过。校验集在权限集中的差集是一个由所有属于校验集但不属于权限集的元素构成的集合。186.签名模块1003用于对权限验证通过的数据访问请求进行数字签名。数据访问控制装置持有一对预先配置的edwards25519算法的公私钥,公布其中的公钥,私钥用于签名,公钥用于验证签名。具体的,签名模块1003进行签名过程包括:187.步骤1,对数据访问请求进行序列化。通过序列化方法,将数据访问请求的对象转换为字符串,便于对其进行签名,在本例中使用json格式作为数据访问请求的封装格式,只需将json对象转换为字符串,即可完成序列化。188.步骤2,对序列化后的数据访问请求使用edwards25519算法生成签名。189.edwards25519算法实施时,先计算序列化后数据访问请求的摘要信息,然后根据摘要信息生成数字签名。190.发送模块1004,用于发送数字签名至客户端。191.一具体实施方式中,还包括用户权限池1005,用于存放所有用户在各数据库系统的所有权限信息,权限校验模块1002验证用户访问权限时访问用户权限池以获取用户的权限。权限信息可通过发版变更,也可提供用户界面由权限管理员进行维护。192.本文一实施例中,如图11所示,数据库系统至少包括:接收模块11011、签名验证模块11012及执行模块11013。接收模块11011用于接收数据访问请求和数字签名并完成格式正确性检查等操作。签名验证模块11012用于对数字签名进行验签操作,以判断数字签名与接收到的数据访问请求是否匹配。执行模块11013用于在签名验证模块11012匹配通过后响应数据访问请求。具体实施时,数据库系统还包括存储装置1102,用于存储数字签名、匹配结果等数据。图12示出了签名验证模块11012的流程示意图。具体步骤如下:193.步骤1201,对数据访问请求进行序列化。194.步骤1202,利用序列化后的数据访问请求验证签名的有效性。验证签名采用的公钥是数据访问控制装置公布的公钥,其签名有效说明本次数据访问请求经过数据访问控制装置许可。195.步骤1203,对数据访问请求中的请求时间计算其10分钟之后的时间,得到截止时间。196.步骤1204,判断当前时间是否早于截止时间,若晚于截止时间则验证不通过;若早于截止时间则继续步骤1205。197.步骤1205,判断签名在缓存中是否已存在,若存在则验证不通过,若不存在则继续步骤1206。198.步骤1206,将签名存入缓存中,并设置失效时间为10分钟。199.具体实施时,步骤1203及步骤1206中的10分钟可基于缓存大小及数据访问请求的流转时间进行确定,如设定的时间太短,数据访问请求经过层层流转到达签名验证装置时已经过期。如果设定的时间太长,则缓存中需要存储大量的签名,需使用的缓存容量较大。200.通过步骤1204、步骤1205、步骤1206能够确保每笔数据访问请求只被使用一次,从而避免非法用户在拿到有效的数据访问请求和签名后进行使用。201.本文提供的基于数字签名的数据访问控制方法及装置可应用于对数据表中数据的访问,当应用于更为复杂的数据控制方法中,允许对原始的数据访问请求进行修改,在这种情况下,本发明的数据访问控制装置应对修改后的数据访问请求进行数字签名,并修改后的数据访问请求和数字签名一并返回给客户端,客户端再将修改后的数据访问请求和数字签名送至数据库系统进行执行。202.相对于现有技术而言,本文提供的基于数字签名的数据访问控制方法及装置具有如下优势:203.1)解耦了数据库系统及数据访问控制,通过集中式数据访问签名及由客户端发送数据访问请求及数字签名可支撑大量用户合法的数据访问请求;204.2)基于数字签名技术,使得数据库系统可以验证数据访问请求的合理性,加强了数据访问安全,降低了数据泄露隐患;205.3)数据访问控制装置只进行校验权限和数字签名,不负责转送数据访问请求,降低了负载,提高了吞吐量,可满足高并发场景下的数据访问控制需求。206.本文一实施例中,数据访问控制装置及客户端可以为一计算机设备,如图13所示,计算机设备1302可以包括一个或多个处理器1304,诸如一个或多个中央处理单元(cpu),每个处理单元可以实现一个或多个硬件线程。计算机设备1302还可以包括任何存储器1306,其用于存储诸如代码、设置、数据等之类的任何种类的信息。非限制性的,比如,存储器1306可以包括以下任一项或多种组合:任何类型的ram,任何类型的rom,闪存设备,硬盘,光盘等。更一般地,任何存储器都可以使用任何技术来存储信息。进一步地,任何存储器可以提供信息的易失性或非易失性保留。进一步地,任何存储器可以表示计算机设备1302的固定或可移除部件。在一种情况下,当处理器1304执行被存储在任何存储器或存储器的组合中的相关联的指令时,计算机设备1302可以执行相关联指令的任一操作。计算机设备1302还包括用于与任何存储器交互的一个或多个驱动机构1308,诸如硬盘驱动机构、光盘驱动机构等。207.计算机设备1302还可以包括输入/输出模块1310(i/o),其用于接收各种输入(经由输入设备1312)和用于提供各种输出(经由输出设备1314)。一个具体输出机构可以包括呈现设备1316和相关联的图形用户接口(gui)1318。在其他实施例中,还可以不包括输入/输出模块1310(i/o)、输入设备1312以及输出设备1314,仅作为网络中的一台计算机设备。计算机设备1302还可以包括一个或多个网络接口1320,其用于经由一个或多个通信链路1322与其他设备交换数据。一个或多个通信总线1324将上文所描述的部件耦合在一起。208.通信链路1322可以以任何方式实现,例如,通过局域网、广域网(例如,因特网)、点对点连接等、或其任何组合。通信链路1322可以包括由任何协议或协议组合支配的硬连线链路、无线链路、路由器、网关功能、名称服务器等的任何组合。209.应理解,在本文的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本文实施例的实施过程构成任何限定。210.还应理解,在本文实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。211.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本文的范围。212.所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。213.在本文所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。214.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本文实施例方案的目的。215.另外,在本文各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。216.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本文的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本文各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。217.本文中应用了具体实施例对本文的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本文的方法及其核心思想;同时,对于本领域的一般技术人员,依据本文的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本文的限制。当前第1页12当前第1页12
技术特征:
1.一种基于数字签名的数据访问控制方法,其特征在于,应用于数据访问控制装置,包括:接收客户端发送的数据访问请求;验证用户的访问权限,权限验证通过后对数据访问请求进行签名处理得到数字签名,其中,所述数据访问请求包括:用户信息、数据库系统标识、访问命令;发送所述数字签名至所述客户端,以由所述客户端发送数据访问请求及数字签名至目标数据库系统。2.如权利要求1所述的方法,其特征在于,所述验证用户的访问权限包括:根据所述数据访问请求中的用户信息及数据库系统标识,获取用户在数据库系统的权限集,所述用户在数据库系统的权限集由多个元组构成,每个元组包括一数据表标识及操作类型;对所述数据访问请求中的访问命令进行语法解析,得到访问对象及操作类型;判断用户在数据库系统的权限集与访问对象及操作类型是否一致,若一致,则访问权限验证通过。3.如权利要求1所述的方法,其特征在于,对数据访问请求进行签名处理得到数字签名包括:对所述数据访问请求或数据访问请求及时间信息进行序列化处理;计算序列化后数据的摘要信息;根据数据访问请求中数据库系统标识,确定数据的时效性;根据数据的时效性及用户信息,确定数据访问请求的优先级;从预先配置的第一加密算法配置表中,查询数据访问请求的优先级相对应的第一目标非对称加密算法;利用所述第一目标非对称加密算法对序列化后数据的摘要信息进行签名处理得到数字签名。4.如权利要求1所述的方法,其特征在于,对数据访问请求进行签名处理得到数字签名包括:对所述数据访问请求或数据访问请求及时间信息进行序列化处理;计算序列化后数据的摘要信息;每隔固定时间间隔,统计未处理的数据访问请求数量;从预先配置的第二加密算法配置表中,查询所述数据访问请求数量相对应的第二目标非对称加密算法;利用所述第二目标非对称加密算法对序列化后数据的摘要信息进行签名处理得到数字签名。5.如权利要求1所述的方法,其特征在于,接收到客户端发送的数据访问请求后,还包括:对所述数据访问请求进行正确性检查;检查通过后验证用户的访问权限。6.如权利要求5所述的方法,其特征在于,对所述数据访问请求进行正确性检查包括:验证所述数据访问请求与标准数据访问请求的数据格式是否一致;
验证所述数据访问请求中参数是否满足预设规则。7.一种基于数字签名的数据访问控制方法,其特征在于,应用于目标数据库系统,包括:接收客户端发送的数据访问请求及数字签名;对数字签名进行验签操作,以判断数字签名与接收到的数据访问请求是否匹配,若匹配,则响应所述数据访问请求。8.如权利要求7所述的方法,其特征在于,所述数据访问请求还包括:请求时间信息;确定数字签名与接收到的数据访问请求匹配后,还包括:对所述数据访问请求中的请求时间信息进行预定值延后处理,得到截止时间;判断当前时间是否早于截止时间,若否,则不响应所述数据访问请求,若是,则响应所述数据访问请求。9.如权利要求7所述的方法,其特征在于,响应所述数据访问请求之前,还包括:判断所述数字签名是否在缓存中存在,若存在,则不响应所述数据访问请求,若不存在,则将所述数字签名存储至缓存中,并设置所述数字签名的有效时间,待有效时间到后,删除缓存中的数字签名。10.如权利要求7所述的方法,其特征在于,所述数字签名利用目标数据库系统相关的私钥对所述数据访问请求的摘要信息进行加密得到;对数字签名进行验签操作,以判断数字签名与接收到的数据访问请求是否匹配包括:对所述数据访问请求进行序列化处理;计算序列化后数据的摘要信息;利用本系统的公钥对数字签名进行解密;判断解密结果与序列化后数据的摘要信息是否一致。11.一种数据访问控制装置,其特征在于,包括:接收模块,用于接收客户端发送的数据访问请求;权限校验模块,用于验证用户的访问权限;签名模块,用于在权限验证通过后对数据访问请求进行签名处理得到数字签名,其中,所述数据访问请求包括:用户信息、数据库系统标识、访问命令;发送单元,用于发送所述数字签名至所述客户端,以由所述客户端发送数据访问请求及数字签名至目标数据库系统。12.一种数据库系统,其特征在于,包括:接收模块,用于接收客户端发送的数据访问请求及数字签名;签名验证模块,用于对数字签名进行验签操作,以判断数字签名与接收到的数据访问请求是否匹配,若匹配,则由执行模块响应所述数据访问请求。13.一种基于数字签名的数据访问控制系统,其特征在于,包括:客户端、数据访问控制装置及多个数据库系统;所述客户端用于发送数据访问请求至所述数据访问控制装置;发送数据访问请求及数字签名至目标数据库系统;其中,所述数据访问请求包括:用户信息、数据库系统标识、访问命令;所述数据访问控制装置用于接收所述数据访问请求,验证用户的访问权限,权限验证
通过后对数据访问请求进行签名处理得到数字签名,发送所述数字签名至所述客户端;所述数据库系统用于接收数据访问请求及数字签名,对数字签名进行验签操作,以判断数字签名与接收到的数据访问请求是否匹配,若匹配,则响应所述数据访问请求。14.如权利要求13所述的系统,其特征在于,数据访问控制装置包括:级联布置的多个访问控制设备,每一访问控制设备接收本访问控制设备服务地区内客户端发出的数据访问请求;当一访问控制设备故障时,本访问控制设备服务地区内客户端发出数据访问请求会发送至本访问控制设备上一级的访问控制设备。15.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至10任意一项所述方法。16.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被计算机设备的处理器执行时实现权利要求1至10任意一项所述方法。17.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序被计算机设备的处理器执行时实现权利要求1至10任意一项所述方法。
技术总结
本文涉及数据访问领域,提供了一种基于数字签名的数据访问控制方法及系统,其中,方法包括:数据访问控制装置接收客户端发送的数据访问请求,验证用户的访问权限,权限验证通过后对数据访问请求进行签名处理得到数字签名,发送数字签名至客户端,数据访问请求包括:用户信息、数据库系统标识、访问命令;客户端发送数据访问请求及数字签名至目标数据库系统;目标数据库系统接收数据访问请求及数字签名,对数字签名进行验签操作,以判断数字签名与接收到的数据访问请求是否匹配,若匹配,则响应数据访问请求。本文能够保证数据库系统中数据的安全访问,同时还能降低数据访问控制装置的负载,提高吞吐量,可满足高并发场景下的数据访问控制需求。问控制需求。问控制需求。
技术研发人员:吴成杰 沈梦婷 张宏兵 郑凡奇
受保护的技术使用者:中国工商银行股份有限公司
技术研发日:2023.01.16
技术公布日:2023/7/13
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
上一篇:一种高磁感取向硅钢及其制备方法与流程 下一篇:一种穿刺引导器
