CN110311789B - 数据安全传输方法及装置 - Google Patents
数据安全传输方法及装置 Download PDFInfo
- Publication number
- CN110311789B CN110311789B CN201910577283.9A CN201910577283A CN110311789B CN 110311789 B CN110311789 B CN 110311789B CN 201910577283 A CN201910577283 A CN 201910577283A CN 110311789 B CN110311789 B CN 110311789B
- Authority
- CN
- China
- Prior art keywords
- salt
- token
- time
- current
- encrypted
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/321—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
- H04L9/3213—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
Abstract
本公开实施例涉及信息安全技术领域,提供一种数据安全传输方法及装置,其中,方法包括:创建生成令牌加密盐的加密盐结构缓存,加密盐结构缓存包括第一当前盐、第一旧盐;基于接收的客户端数据请求进程中的令牌与当前令牌、旧令牌中之一相同,得出客户端数据请求进程安全,其中,当前令牌为第二当前盐与禁止修改数据项目生成的令牌,旧令牌为第二旧盐与禁止修改数据项目生成的令牌,第二当前盐、第二旧盐为接收客户端数据请求进程时加密盐缓存结构中的加密盐。本公开实施例避免了令牌更新临界时客户端数据丢失的现象产生,提高了数据安全传输的效率以及安全性。
Description
技术领域
本公开涉及信息安全技术领域,尤其涉及一种数据安全传输方法及装置。
背景技术
客户端的数据请求进程中包含客户端的信息,客户端请求数据对象(如服务端)接收到客户端的数据请求,通过验证客户端的信息后将客户端请求的数据返回客户端。客户端请求数据对象中存储的信息包括可修改部分以及不可修改部分。其中,对于禁止修改部分,例如,客户端订单中的商品价格信息等,客户端请求数据对象在返回客户端的该部分数据中添加令牌,避免客户端之后再次请求数据时对数据请求进程中禁止修改数据项目进行修改。令牌由客户端请求数据对象生成且令牌具有时间限制。
令牌具体形式可以是字符串。该字符串中包括客户端请求数据对象中禁止修改的数据项目以及加密盐。令牌由客户端请求数据对象生成且令牌具有时间限制,超过该时间限制会人为或者客户端请求数据对象自动更新加密盐,使令牌更新。客户端需在令牌有效的时间限制内获取新的令牌,超过时间限制后未获取新的令牌再次请求数据造成数据请求失败。
发明内容
为了解决现有技术中存在的上述问题,本公开提供一种数据安全传输方案。
根据本公开实施例的其中一方面,提供一数据安全传输方法,包括:加密盐结构缓存创建步骤,创建生成令牌加密盐的加密盐结构缓存,加密盐结构缓存包括第一当前盐、第一旧盐;数据请求进程安全判断步骤,基于接收的客户端数据请求进程中的令牌与当前令牌、旧令牌中之一相同,得出客户端数据请求进程安全,其中,当前令牌为第二当前盐与禁止修改数据项目生成的令牌,旧令牌为第二旧盐与禁止修改数据项目生成的令牌,第二当前盐、第二旧盐为接收客户端数据请求进程时加密盐缓存结构中的加密盐。
在一例中,加密盐结构缓存步骤,包括:时阈文件配置步骤,对第一当前盐、第一旧盐更新的时间范围进行文件配置,得到包括第一时刻的时阈配置文件,其中,第一时刻为时间范围的起始时刻;加密盐结构缓存还包括时阈配置文件。
在一例中,加密盐结构缓存步骤,还包括:数据请求进程判断步骤,基于接收的客户端数据请求进程,判断是否存在加密盐结构缓存,得到判断结果;第一当前盐获取步骤,基于判断结果为否,获取随机字符串作为第一当前盐,第一旧盐为空。
在一例中,基于判断结果为是,在数据请求进程安全判断步骤之后,方法还包括:时间对比步骤,对接收客户端数据请求进程的第二时刻与第一时刻进行比对;加密盐替换步骤,响应于第二时刻晚于第一时刻,获取更新加密盐并用更新加密盐替换第二当前盐,第二当前盐替换第二旧盐,将第一时刻向后推迟至第三时刻,其中,第三时刻晚于第二时刻。
在一例中,第三时刻与第一时刻之间的为固定的时间间隔,且时间间隔的长度大于加密盐结构缓存的有效期。
在一例中,方法还包括:令牌返回步骤,基于客户端数据请求进程请求的数据中包括禁止修改数据项目,将当前令牌返回至客户端。
根据本公开实施例的另一方面,提供一种数据安全传输装置,包括:加密盐结构缓存创建单元,用于创建生成令牌加密盐的加密盐结构缓存,加密盐结构缓存包括第一当前盐、第一旧盐;数据请求进程安全判断单元,用于基于接收的客户端数据请求进程中的令牌与当前令牌、旧令牌中之一相同,得出客户端数据请求进程安全,其中,当前令牌为第二当前盐与禁止修改数据项目生成的令牌,旧令牌为第二旧盐与禁止修改数据项目生成的令牌,第二当前盐、第二旧盐为接收客户端数据请求进程时加密盐缓存结构中的加密盐。
在一例中,加密盐结构缓存单元,包括:时阈文件配置模块,用于对第一当前盐、第一旧盐更新的时间范围进行文件配置,得到包括第一时刻的时阈配置文件,其中,第一时刻为时间范围的起始时刻;加密盐结构缓存还包括时阈配置文件。
在一例中,加密盐结构缓存单元,还包括:数据请求进程判断模块,用于基于接收的客户端数据请求进程,判断是否存在加密盐结构缓存,得到判断结果;第一当前盐获取模块,用于基于判断结果为否,获取随机字符串作为第一当前盐,第一旧盐为空。
在一例中,装置还包括:时间对比单元,用于基于判断结果为是,对接收客户端数据请求进程的第二时刻与第一时刻进行比对;加密盐替换单元,用于响应于第二时刻晚于第一时刻,获取更新加密盐并用更新加密盐替换第二当前盐,第二当前盐替换第二旧盐,将第一时刻向后推迟至第三时刻,其中,第三时刻晚于第二时刻。
在一例中,第三时刻与第一时刻之间的为固定的时间间隔,且时间间隔的长度大于加密盐结构缓存的有效期。
在一例中,装置还包括令牌返回单元,用于基于客户端数据请求进程请求的数据中包括禁止修改数据项目,将当前令牌返回至客户端。
根据本公开实施例的另一方面,提供一种电子设备,其中,包括:
存储器,用于存储计算机程序;
处理器,用于执行存储器中存储的计算机程序,且计算机程序被执行时,实现上述任一实施例的方法。
根据本公开实施例的另一方面,提供一种计算机可读存储介质,存储有计算机程序,其中,计算机程序被处理器执行时,实现上述任一实施例的方法。
基于上述本实施例提供的数据安全传输方法、装置、电子设备以及计算机可读存储介质,通过在加密盐数据结构缓存中设置新盐与旧盐,分别与客户端禁止修改数据项目结合后生成新令牌与旧令牌,客户端数据请求进程的令牌与其中之一相同,即可认定该数据请求进程中的禁止修改数据项目为安全,未被修改。可以有效避免客户端在客户端请求数据对象更新加密盐后造成的客户端不可以再次访问的弊端。
附图说明
通过参考附图阅读下文的详细描述,本公开实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:
图1示出了本公开的数据安全传输方法的一个实施例的流程示意图;
图2示出了本公开的数据安全传输方法加密盐结构缓存步骤一个实施例的流程示意图;
图3示出了本公开的数据安全传输方法的另一实施例的流程示意图;
图4示出了本公开的数据安全传输方法的另一实施例的流程示意图;
图5示出了本公开的数据安全传输装置的一个实施例的结构示意图;
图6示出了本公开的加密盐结构缓存创建单元一个实施例的结构示意图;
图7示出了本公开的数据安全传输装置的另一实施例的结构示意图;
图8示出了本公开的数据安全传输装置的另一实施例的结构示意图;
图9示出了本公开的电子设备的一个实施例的结构示意图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本公开的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。
需要注意,虽然本文中使用“第一”、“第二”等表述来描述本公开的实施方式的不同模块、步骤和数据等,但是“第一”、“第二”等表述仅是为了在不同的模块、步骤和数据等之间进行区分,而并不表示特定的顺序或者重要程度。实际上,“第一”、“第二”等表述完全可以互换使用。
本公开实施例可以应用于终端设备、计算机系统及服务端等电子设备,其可与众多其它通用或者专用的计算系统环境或者配置一起操作。适于与终端设备、计算机系统以及服务端等电子设备一起使用的众所周知的终端设备、计算系统、环境和/或配置的例子,包括但不限于:个人计算机系统、服务端计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
终端设备、计算机系统以及服务端等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑以及数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务端可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
网络请求包含很多重要数据,为保障这些重要数据的安全,用户在用客户端向服务端请求数据的过程中客户端请求数据对象需要对禁止修改的数据部分进行加密处理,保障客户端向服务端进行数据请求时能够安全,避免客户端请求数据对象的数据被篡改以及被盗用。客户端请求数据对象通过对禁止修改的部分数据配置包括加密盐的令牌,可以有效提高数据的安全性。
服务端向客户端发放的令牌具有一定的时限性,具体地,令牌中的加密盐具有一定的时限性,客户端必须在加密盐更新之前完成操作,或者在服务端更新加密盐之前获取新的加密盐才能保障操作数据的完整性及安全性。若客户端在服务端更新之前获取令牌进行数据操作,在服务端更新之后仍在进行操作,那么该客户端的数据会丢失。例如,客户端在a时刻对服务端的商品价格进行获取请求,并获取商品价格以及服务端发送的令牌A,令牌A由商品价格与加密盐a1经预设算法获得;在用户下单期间服务端更新了加密盐a1为加密盐b1,客户端订单编辑完成后向服务端下单提交数据。服务端验证b1与商品价格经上述预设算法得出的令牌B与令牌A不同,造成用户下单不成功的现象产生。
本公开实施提供一种数据安全传输方法,以避免客户端在服务端更新加密盐的临界产生数据安全威胁及丢失的现象产生。
图1为本公开数据安全传输方法一个实施例的流程图。如图1所示,该实施例方法包括:加密盐结构缓存创建步骤100、数据请求进程安全判断步骤200。下面对图1中的各步骤对本公开实施例进行详细说明。
加密盐结构缓存创建步骤100,创建生成令牌加密盐的加密盐结构缓存,加密盐结构缓存包括第一当前盐、第一旧盐。
在一些实施例中,加密盐结构缓存可以是采用数据库为媒介生成和存储。服务端可以在客户端发起数据请求前创建加密盐结构缓存,也可以是在接收客户端数据请求的同时创建加密盐结构缓存。
在创建加密盐结构缓存时,不存在旧盐,为空字符。生成第一当前盐作为令牌加密盐存储在加密盐结构缓存中。服务端将包括有第一当前盐的令牌返回给客户端,客户端再次访问服务端时可通过该令牌通过服务端的校验,保障客户端的数据访问、数据请求进程是安全的。
服务端更新令牌所用的加密盐时,将第一当前盐替换第一旧盐作为旧盐存储,更新后的加密盐替换第一当前盐作为生成令牌的加密盐。即生成令牌的加密盐采用的是最新的加密盐,被替换的第一当前盐加密盐作为旧盐进行存储。这样,加密盐结构缓存中在加密盐结构缓存创建时只有一个第一当前盐,在后续加密盐更新后存在一个新盐以及一个旧盐。这样,在客户端后续进行数据请求时可以通过校验新盐、旧盐分别与客户端数据请求进程中的禁止修改数据项目经过预设算法得出的新令牌、旧令牌,判断新令牌、旧令牌中之一是否与客户端中数据请求进程中的令牌相同,避免服务端加密盐更新临界客户端的数据丢失的现象产生。本实施例中禁止修改数据项目是服务端在生成令牌时选取的、客户端不可更改的数据。
数据请求进程安全判断步骤200,基于接收的客户端数据请求进程中的令牌与当前令牌、旧令牌中之一相同,得出客户端数据请求进程安全,其中,当前令牌为第二当前盐与禁止修改数据项目生成的令牌,旧令牌为第二旧盐与禁止修改数据项目生成的令牌,第二当前盐、第二旧盐为接收客户端数据请求进程时加密盐缓存结构中的加密盐。
在一些实施例中,第二当前盐可以是在加密盐结构缓存创建之后第一加密盐被更新多次后的加密盐,也可以是第一当前盐。此时第二当前盐为用来生成令牌的加密盐。
在一些实施例中,通过在令牌中加入加密盐salt1=5cb5864ae708f使服务端的三个重要的参数字段param_a,param_b,param_c不能修改。加密盐salt1可以用一个简单的md5算法关联上param_a、param_b、param_c这三个禁止修改数据项目的参数得出一个令牌token,例如得到的令牌可以是token=md5(param_a+param_b+param_c+salt1),计算得出的令牌是0bbba4e414cd9745defe04e0255c9004。
客户端再次提交请求的时数据请求中的令牌包括参数(param_a,param_b,param_c),服务端重新使用上述算法对第二当前盐与上述参数进行逻辑运算处理,以及对第二旧盐与参数进行逻辑运算处理。逻辑运算处理的的算法可以是token=md5(param_a+param_b+param_c+salt),其中,salt可以是第二当前盐或者第二旧盐,得出当前令牌和第一旧令牌,客户端再次提交请求的时数据请求中的令牌与第二旧盐或者第一旧令牌之一相等则可以认为param_a,param_b,param_c三个参数在数据传递过程中没有被修改过。
另一例中,客户端再次提交请求时,服务端中的加密盐被更新,则带有加密盐salt=5cb5864ae708f的令牌采用同样的算法得出的结果与服务端中的当前令牌与旧令牌不同,可以认为param_a,param_b,param_c三个参数在数据传递过程中已经被修改过,服务端终止客户端对其的数据请求,造成客户端数据丢失的现象产生。
本实施例通过在加密盐结构缓存中设置新盐与旧盐,使得服务端更新加密盐后,将旧盐进行存储,而不删除。客户端在服务端更新加密盐后再次对服务端进行数据请求,验证客户端数据请求中令牌与服务端中的新盐、旧盐分别与禁止修改数据项目运算处理后的令牌中的一个相同即可通过服务端的校验,保障数据传递过程中param_a,param_b,param_c没有被修改过的数据安全性。
上述本公开实施例通过设置新盐与旧盐,用来对客户端的令牌进行验证,加密盐结构缓存中新盐与客户端的禁止修改数据项目结合生成当前令牌,旧盐与客户端禁止修改数据项目结合生成旧令牌。客户端令牌与当前令牌、旧令牌中的一个相同即可通过验证,可有效避免客户端在服务端更新加密盐的临界进行数据请求,造成的令牌验证不通过、客户端数据丢失的现象产生。
在一些实施例中,加密盐结构缓存可以是建立在Redis中的键值key为“saltstruct”的数据缓存。其中,Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的数据接口。内存数据库,速度快,也支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。Redis支持数据的备份,即master-slave模式的数据备份。访问存储快、数据结构易扩展。
由于Redis是KV结构,设置key为“salt_struct”,包含三个字段newSalt、oldSalt、deadTime,其中,newSalt:当前正在使用的加密盐;deadTime:newSalt的可更新的最早时刻;oldSalt:新旧加密盐交替需要把旧的放在这里,不能直接丢弃。上面的数据结构[newSalt,deadTime,oldSalt]作为整个系统唯一的一个结构体,只存在一个,每次触发更新的时候就将新生成的newSalt字符串替换掉结构体里的的newSalt并将结构体里原来的newSalt里的字符串替换到oldSalt里。
本实施例中采用Redis只是示例性说明,并不是对加密盐结构缓存的媒介类型的限制。
图2示出了本公开数据安全传输方法的另一些实施例的流程示意图,如图2所示,本公开的数据安全传输方法中加密盐结构缓存步骤100可以包括时阈文件配置步骤110,对第一当前盐、第一旧盐更新的时间范围进行文件配置,得到包括第一时刻的时阈配置文件,其中,第一时刻为时间范围的起始时刻;加密盐结构缓存还包括时阈配置文件。
在一些实施例中,第二当前盐与第一当前盐可以是相同的加密盐,第二旧盐与第一旧盐可以是相同的加密盐,即第二旧盐也可以是空字符。第一时刻为可以对第一当前盐或第二当前盐进行更新的最早时刻,并不是一旦到了第一时刻就对第一当前盐或第二当前盐进行更新。在客户端的某次数据请求进程结束之后,该客户端不再进行数据请求,此时服务端也没有更新加密盐或者令牌的必要。在某一固定长度时间内,可以默认数据不会发生改变,频繁更新加密盐或者令牌会造成资源浪费。针对上述情景,在创建加密盐结构缓存时对加密盐结构缓存配置时阈配置文件。
通过设置时阈配置文件确定可更新加密盐的最早时刻,使客户端在第一时刻之前接收到的加密盐为同一加密盐。超过第一时刻后再次对服务端进行数据请求,触发加密盐结构缓存生成新的加密盐,并将新的加密盐与令牌组合生成新的令牌返回至客户端。
继续参照图2,本公开的数据安全传输方法中加密盐结构缓存步骤100还包括:数据请求进程判断步骤120、第一当前盐获取步骤130,下面参照图2对本实施例的数据安全传输方法进行详细说明。
数据请求进程判断步骤120,基于接收的客户端数据请求进程,判断是否存在加密盐结构缓存,得到判断结果。
在一些实施例中,以‘X请求’为例,客户端在某个页面发起数据请求时(如点击某个按钮或进行某个页面跳转),该数据请求进程触发上述的数据库建立一个加密盐结构缓存。
第一当前盐获取步骤130,基于判断结果为否,获取随机字符串作为第一当前盐,第一旧盐为空。
‘X请求’第一次到达服务端,服务端需要检查是否存在salt_struct这个结构缓存key,如果不存在,那么就新建一个该key的数据结构缓存并触发生成uuid存储到newSalt字段里作为新盐,同时将第一时刻设置为向后延迟至某一时刻,由于此时是第一次触发,所以oldSalt字段为空,不必写入任何值。
图3示出了本公开数据安全传输方法的另一些实施例的流程示意图,如图3所示,在服务端基于客户端数据请求进程判断存在加密盐结构缓存时,本公开的数据安全传输方法,还可以包括时间对比步骤300、加密盐替换步骤400,以下结合图3对本实施例的数据安全传输方法进行详细说明。
时间对比步骤300,对接收客户端数据请求进程的第二时刻与第一时刻进行比对。
在一具体实施例中,服务端接收第一次‘X请求’之后,再次接收该客户端发送的‘X请求’,服务端检测到加密盐结构缓存中已经有salt_struct这个缓存key了,并验证X请求中令牌是否与salt_struct这个缓存key中第二当前盐、第二旧盐分别与数据项目运算得出的当前令牌、旧令牌中的一个相同。若X请求中令牌与当前令牌、旧令牌中的一个相同,服务端获取当前系统时间第二时刻,将第二时刻和第一时刻进行比较。以便服务端根据对比结果直接采用当前的新盐生成令牌返回客户端,还是采用更新后的加密盐生成令牌后再返回客户端。若X请求中令牌与当前令牌、旧令牌中的都不相同,则服务端拒绝该X请求。
加密盐替换步骤400,响应于第二时刻晚于第一时刻,获取更新加密盐并用更新加密盐替换第二当前盐,第二当前盐替换第二旧盐,将第一时刻向后推迟至第三时刻,第三时刻晚于第二时刻;将包括更新加密盐的令牌返回至客户端。
在一些例中,若第二时刻还没达到第一时刻,那么就直接将newSalt取出作为加密盐,不做任何更新替换操作。如果第二时刻已经晚于第一时刻,那么就生成一个uuid,将这个uuid写入newSalt,将原newSalt的值替换进oldSalt里,同时将第二时刻设置为第二时刻之后的第三时刻。其中,第一时刻与第二时刻之间的时间长度、第二时刻与第三时刻之间的时间长度可以相同,也可以不同。时间粒度可以设置到天、小时、分钟级别,具体地可以视安全要求设置。
本实施例中可以在服务端数据产生变化较频繁的时期将时间粒度设置较小,如网上购物的旺季,商家会通过变动价格的方式进行促销。此期间将时间粒度设置较小,既可以方便商家价格变动被及时通知到客户端,还可以避免客户端长期没有操作造成的交易不成功的现象产生。例如双11网上购物,线上商品价格可能会随时产生变化,通过将时间粒度设置较小可保障客户端与服务端的价格数据一致。同理,在服务端数据变化不频繁的时候可以将时间粒度设置较大。
第三时刻与第一时刻之间的为固定的时间间隔,且时间间隔的长度大于加密盐结构缓存的有效期,采用该种方式设置可以避免长时间不操作的客户端,提高了服务端的数据请求处理效率。
在一具体实施例中,可以设置每天、每小时等任意时间粒度来生成一个随机的字符串作为加密盐,而且不需要主动生成,完全由客户端的数据请求触发服务端的数据接口使服务端被动生成一个加密盐并存储到Redis里。只要客户端在预先设定的时间点访问服务器,则自动生成一个随机字符串newSalt,每次触发生成的newSalt,加密盐结构缓存中的当前用于生成令牌的加密盐,并将原来的newSalt存储到oldSalt字段里。
设置的第一时刻、第二时刻、第三时刻是可以更新的最早时间,表示的是当过了该时刻才可以被下一次客户端的请求触发,并重新设置一个可更新加密盐结构缓存的时刻。该时刻可以随便设,也可以为了方便将该时刻设置为个周期性的,比如每天的固定时间10点。而并不是每天到了10点就会更新,而是10点过后就可以更新了,更新还是客户端发送的数据请求触发的。
图4示出了本公开数据安全传输方法的另一些实施例的流程示意图,如图4所示,本实施例的数据安全传输方法还包括令牌返回步骤500,令牌返回步骤,基于客户端数据请求进程请求的数据中包括禁止修改数据项目,将当前令牌返回至客户端。
客户端再次对服务端进行数据请求时,若数据请求进程请求的服务端数据中包括禁止修改的数据项目,则需要服务端再次返回客户端请求数据时需要再次发送令牌给客户端。第二当前盐是生成当前令牌的加密盐,作为新盐进行存储。在新盐更新为第二当前盐后,客户端收到的当前令牌包括第二当前盐。客户端携带包括第二当前盐的令牌,在服务端加密盐再更新两次之前进行数据请求,均可以通过服务端的校验,避免数据出现丢失以及被修改的现象产生。本实施例中所涉及的服务端的数据为服务端中禁止修改的部分,对于其他类型的数据,本实施例不做限定,可以返回客户端新令牌,也可以不返回客户端新令牌。
基于相同的构思,本公开实施例还提供一种数据安全传输装置,图5示出了本公开的数据安全传输装置的一个实施例的结构示意图,如图5所示,本实施例的数据安全传输装置包括加密盐结构缓存创建单元10与数据请求进程安全判断单元20,其中,加密盐结构缓存创建单元10用于创建生成令牌加密盐的加密盐结构缓存,加密盐结构缓存包括第一当前盐、第一旧盐。数据请求进程安全判断单元20用于基于接收的客户端数据请求进程中的令牌与当前令牌、旧令牌中之一相同,得出客户端数据请求进程安全,其中,当前令牌为第二当前盐与禁止修改数据项目生成的令牌,旧令牌为第二旧盐与禁止修改数据项目生成的令牌,第二当前盐、第二旧盐为接收客户端数据请求进程时加密盐缓存结构中的加密盐。
在一些实施例中,加密盐结构缓存可以是采用数据库为媒介生成和存储。服务端可以在客户端发起数据请求前创建加密盐结构缓存,也可以是在接收客户端数据请求的同时创建加密盐结构缓存。在创建加密盐结构缓存时,不存在旧盐,为空字符。生成第一当前盐作为令牌加密盐存储在加密盐结构缓存中。服务端将包括有第一当前盐的令牌返回给客户端,客户端再次访问服务端时可通过该令牌通过服务端的校验,保障客户端的数据访问、数据请求进程是安全的。
在一些实施例中,在一些实施例中,加密盐结构缓存可以是建立在Redis中的键值key为“salt struct”的数据缓存。第二当前盐可以是在加密盐结构缓存创建之后第一加密盐被更新多次后的加密盐,也可以是第一当前盐。此时第二当前盐为用来生成令牌的加密盐。
本实施例通过在加密盐结构缓存中设置新盐与旧盐,使得服务端更新加密盐后,将旧盐进行存储,而不删除。客户端在服务端更新加密盐后再次对服务端进行数据请求,验证客户端数据请求中令牌与服务端中的新盐、旧盐分别与禁止修改数据项目运算处理后的令牌中的一个相同即可通过服务端的校验,保障数据传递过程中禁止被修改的数据项目的数据安全性。
图6示出了本公开的加密盐结构缓存创建单元一个实施例的结构示意图,如图6所示,在一些实施例中,加密盐结构缓存创建单元10可以包括时阈文件配置模块11,用于对第一当前盐、第一旧盐更新的时间范围进行文件配置,得到包括第一时刻的时阈配置文件,其中,第一时刻为时间范围的起始时刻;加密盐结构缓存还包括时阈配置文件。
第一时刻为可以对第一当前盐或第二当前盐进行更新的最早时刻,并不是一旦到了第一时刻就对第一当前盐或第二当前盐进行更新。在某一固定长度时间内,可以默认数据不会发生改变,频繁更新加密盐或者令牌会造成资源浪费。针对上述情景,在创建加密盐结构缓存时对加密盐结构缓存配置时阈配置文件。通过设置时阈配置文件确定可更新加密盐的最早时刻,使客户端在第一时刻之前接收到的加密盐为同一加密盐。超过第一时刻后再次对服务端进行数据请求,触发加密盐结构缓存生成新的加密盐,并将新的加密盐与令牌组合生成新的令牌返回至客户端。
继续参照图6,在一些实施例中,加密盐结构缓存创建单元10还可以包括数据请求进程判断模块12以及第一当前盐获取模块13,其中,数据请求进程判断模块,用于基于接收的客户端数据请求进程,判断是否存在加密盐结构缓存,得到判断结果;第一当前盐获取模块13,用于基于判断结果为否,获取随机字符串作为第一当前盐,第一旧盐为空。
客户端在某个页面发起数据请求时(如点击某个按钮或进行某个页面跳转),该数据请求进程触发上述的Redis数据库建立一个加密盐结构缓存。数据请求进程第一次到达服务端,服务端需要检查是否存在salt_struct这个结构缓存key,如果不存在,那么就新建一个该key的数据结构缓存并触发生成uuid存储到newSalt字段里作为新盐,同时将第一时刻设置为向后延迟至某一时刻,由于此时是第一次触发,所以oldSalt字段为空,不必写入任何值。
图7示出了本公开的数据安全传输装置的另一实施例的结构示意图,如图7所示,本实施例的数据安全传输装置还可以包括时间对比单元30以及加密盐替换单元40,其中,时间对比单元30用于基于判断结果为是,对接收客户端数据请求进程的第二时刻与第一时刻进行比对;加密盐替换单元40用于响应于第二时刻晚于第一时刻,获取更新加密盐并用更新加密盐替换第二当前盐,第二当前盐替换第二旧盐,将第一时刻向后推迟至第三时刻,其中,第三时刻晚于第二时刻。
在一些实施例中,再次接收该客户端发送的数据请求进程,服务端检测到加密盐结构缓存中已经有salt_struct这个缓存key了,并验证客户端令牌是否与salt_struct这个缓存key中第二当前盐、第二旧盐分别与数据项目运算得出的当前令牌、旧令牌中的一个相同。客户端令牌与当前令牌、旧令牌中的一个相同,服务端获取当前系统时间第二时刻,将第二时刻和第一时刻进行比较。以便服务端根据对比结果直接采用当前的新盐生成令牌返回客户端,还是采用更新后的加密盐生成令牌后再返回客户端。若数据请求进程中令牌与当前令牌、旧令牌中的都不相同,则服务端拒绝该数据请求进程。
若第二时刻还没达到第一时刻,那么就直接将newSalt取出作为加密盐,不做任何更新替换操作。如果第二时刻已经晚于第一时刻,那么就生成一个uuid,将这个uuid写入newSalt,将原newSalt的值替换进oldSalt里,同时将第二时刻设置为第二时刻之后的第三时刻。其中,第一时刻与第二时刻之间的时间长度、第二时刻与第三时刻之间的时间长度可以相同,也可以不同。时间粒度可以设置到天、小时、分钟级别,具体地可以视安全要求设置。
在一些实施例中,第三时刻与第一时刻之间的为固定的时间间隔,且时间间隔的长度大于加密盐结构缓存的有效期。采用该种方式设置可以避免长时间不操作的客户端,提高了服务端的数据请求处理效率。可以设置每天、每小时等任意时间粒度来生成一个随机的字符串作为加密盐,而且不需要主动生成,完全由客户端的数据请求触发服务端的数据接口使服务端被动生成一个加密盐并存储到Redis里。只要客户端在预先设定的时间点访问服务器,则自动生成一个随机字符串newSalt,每次触发生成的newSalt,加密盐结构缓存中的当前用于生成令牌的加密盐,并将原来的newSalt存储到oldSalt字段里。
图8示出了本公开的数据安全传输装置的另一实施例的结构示意图,如图8所示,本实施例的数据安全传输装置还可以包括令牌返回单元50,用于基于客户端数据请求进程请求的数据中包括禁止修改数据项目,将当前令牌返回至客户端。
客户端再次对服务端进行数据请求时,若数据请求进程请求的服务端数据中包括禁止修改的数据项目,则需要服务端再次返回客户端请求数据时需要再次发送令牌给客户端。第二当前盐是生成当前令牌的加密盐,作为新盐进行存储。在新盐更新为第二当前盐后,客户端收到的当前令牌包括第二当前盐。客户端携带包括第二当前盐的令牌,在服务端加密盐再更新两次之前进行数据请求,均可以通过服务端的校验,避免数据出现丢失以及被修改的现象产生。
图9示出了本公开的电子设备的一个实施例的结构示意图。下面参考图9,其示出了适于用来实现本申请实施例的终端设备或服务器的电子设备的结构示意图。如图9所示,该电子设备该电子设备包括处理器和存储器。电子设备也可以包括输入输出装置。存储器、输入输出装置均通过总线与处理器连接。其中,存储器,用于存储处理器执行的指令;处理器,用于调用存储器存储的指令,并执行上述实施例涉及的任务分配方法。
本公开实施例中处理器可调用存储器存储的指令,进行创建生成令牌加密盐的加密盐结构缓存,加密盐结构缓存包括第一当前盐、第一旧盐。基于接收的客户端数据请求进程中的客户端加密盐与第二当前盐、第二旧盐中之一相同,判断得出客户端数据请求进程为安全,其中第二当前盐、第二旧盐为接收客户端数据请求进程时加密盐缓存结构中的加密盐;将包括第二当前盐的令牌返回至客户端。其中,电子设备执行数据安全传输的过程,可参阅上述实施例描述的任务分配的实施过程,在此不再赘述。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,计算机可执行指令在计算机上运行时,执行上述实施例涉及的数据安全传输方法。
本公开实施例还提供一种包含指令的计算机程序产品,当包含指令的计算机程序产品在计算机上运行时,使得计算机执行上述实施例涉及的数据安全传输方法。
在一个或多个可选实施方式中,本公开实施例还提供了一种计算机可读存储介质,用于存储计算机可读指令,该指令被执行时使得计算机执行上述任一可能的实现方式中的数据安全传输方法。在另一个可选例子中,该计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
尽管在附图中以特定的顺序描述操作,但是不应将其理解为要求按照所示的特定顺序或是串行顺序来执行这些操作,或是要求执行全部所示的操作以得到期望的结果。在特定环境中,多任务和并行处理可能是有利的。
本公开的方法和装置能够利用标准编程技术来完成,利用基于规则的逻辑或者其他逻辑来实现各种方法步骤。还应当注意的是,此处以及权利要求书中使用的词语“装置”和“模块”意在包括使用一行或者多行软件代码的实现和/或硬件实现和/或用于接收输入的设备。
此处描述的任何步骤、操作或程序可以使用单独的或与其他设备组合的一个或多个硬件或软件模块来执行或实现。在一个实施方式中,软件模块使用包括包含计算机程序代码的计算机可读介质的计算机程序产品实现,其能够由计算机处理器执行用于执行任何或全部的所描述的步骤、操作或程序。
出于示例和描述的目的,已经给出了本公开实施的前述说明。前述说明并非是穷举性的也并非要将本公开限制到所公开的确切形式,根据上述教导还可能存在各种变形和修改,或者是可能从本公开的实践中得到各种变形和修改。选择和描述这些实施例是为了说明本公开的原理及其实际应用,以使得本领域的技术人员能够以适合于构思的特定用途来以各种实施方式和各种修改而利用本公开。
Claims (8)
1.一种数据安全传输方法,其中,包括:
加密盐结构缓存创建步骤,创建生成令牌加密盐的加密盐结构缓存,所述加密盐结构缓存包括第一当前盐、第一旧盐和时域配置文件;
所述时域配置文件通过时阈文件配置步骤得到,所述时阈文件配置步骤包括:对所述第一当前盐、所述第一旧盐更新的时间范围进行文件配置,得到包括第一时刻的时阈配置文件,其中,所述第一时刻为所述时间范围的起始时刻;
数据请求进程安全判断步骤,基于接收的客户端数据请求进程中的令牌与当前令牌、旧令牌中之一相同,得出所述客户端数据请求进程安全,其中,所述当前令牌为第二当前盐与禁止修改数据项目生成的令牌,所述旧令牌为第二旧盐与所述禁止修改数据项目生成的令牌,所述第二当前盐、所述第二旧盐为接收客户端数据请求进程时所述加密盐缓存结构中的加密盐;其中,所述第二旧盐通过所述第二当前盐替换得到,所述第二当前盐通过更新加密盐替换得到,同一时刻下所述加密盐缓存结构中包括一个所述第二当前盐和一个所述第二旧盐。
2.根据权利要求1所述的方法,其中,所述加密盐结构缓存创建 步骤,还包括:
数据请求进程判断步骤,基于接收的客户端数据请求进程,判断是否存在所述加密盐结构缓存,得到判断结果;
第一当前盐获取步骤,基于所述判断结果为否,获取随机字符串作为所述第一当前盐,所述第一旧盐为空。
3.根据权利要求2所述的方法,其中,基于所述判断结果为是,在所述数据请求进程安全判断步骤之后,所述方法还包括:
时间对比步骤,对接收所述客户端数据请求进程的第二时刻与所述第一时刻进行比对;
加密盐替换步骤,响应于第二时刻晚于所述第一时刻,获取更新加密盐并用所述更新加密盐替换所述第二当前盐,所述第二当前盐替换所述第二旧盐,将所述第一时刻向后推迟至第三时刻,其中,所述第三时刻晚于所述第二时刻。
4.根据权利要求3所述的方法,其中,所述第三时刻与所述第一时刻之间为固定的时间间隔,且所述时间间隔的长度大于所述加密盐结构缓存的有效期。
5.根据权利要求1所述的方法,其中,所述方法还包括:
令牌返回步骤,基于所述客户端数据请求进程请求的数据中包括所述禁止修改数据项目,将所述当前令牌返回至客户端。
6.一种数据安全传输装置,其中,包括:
加密盐结构缓存创建单元,用于创建生成令牌加密盐的加密盐结构缓存,所述加密盐结构缓存包括第一当前盐、第一旧盐和时域配置文件;
所述时域配置文件通过时阈文件配置模块配置得到,所述时阈文件配置模块,用于对所述第一当前盐、所述第一旧盐更新的时间范围进行文件配置,得到包括第一时刻的时阈配置文件,其中,所述第一时刻为所述时间范围的起始时刻;
数据请求进程安全判断单元,用于基于接收的客户端数据请求进程中的令牌与当前令牌、旧令牌中之一相同,得出所述客户端数据请求进程安全,其中,所述当前令牌为第二当前盐与禁止修改数据项目生成的令牌,所述旧令牌为第二旧盐与所述禁止修改数据项目生成的令牌,所述第二当前盐、所述第二旧盐为接收客户端数据请求进程时所述加密盐缓存结构中的加密盐;其中,所述第二旧盐通过所述第二当前盐替换得到,所述第二当前盐通过更新加密盐替换得到,同一时刻下所述加密盐缓存结构中包括一个所述第二当前盐和一个所述第二旧盐。
7.一种电子设备,其中,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述存储器中存储的计算机程序,且所述计算机程序被执行时,实现权利要求1-5中任意一项所述的数据安全传输方法。
8.一种计算机可读存储介质,存储有计算机程序,其中,所述计算机程序被处理器执行时,实现权利要求1-5中任意一项所述的数据安全传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910577283.9A CN110311789B (zh) | 2019-06-28 | 2019-06-28 | 数据安全传输方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910577283.9A CN110311789B (zh) | 2019-06-28 | 2019-06-28 | 数据安全传输方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110311789A CN110311789A (zh) | 2019-10-08 |
CN110311789B true CN110311789B (zh) | 2022-09-13 |
Family
ID=68079326
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910577283.9A Active CN110311789B (zh) | 2019-06-28 | 2019-06-28 | 数据安全传输方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110311789B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111581223B (zh) * | 2020-04-11 | 2023-08-22 | 北京城市网邻信息技术有限公司 | 一种数据更新方法、装置、终端设备及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101741851B (zh) * | 2009-12-23 | 2012-06-20 | 北京交通大学 | 一种增强源地址真实性保障的令牌更新方法 |
CN104079539B (zh) * | 2013-03-28 | 2017-09-08 | 阿里巴巴集团控股有限公司 | 一种数据保密存储方法及客户端 |
CN105450587B (zh) * | 2014-07-28 | 2018-08-24 | 国际商业机器公司 | 用于保护网络通信安全的方法和装置 |
CN106302336A (zh) * | 2015-05-25 | 2017-01-04 | 四川长虹电器股份有限公司 | 一种基于云计算实现用户指纹安全的方法、系统和设备 |
US9594922B1 (en) * | 2015-06-30 | 2017-03-14 | EMC IP Holding Company LLC | Non-persistent shared authentication tokens in a cluster of nodes |
CN109660343B (zh) * | 2019-01-17 | 2023-06-20 | 平安科技(深圳)有限公司 | 令牌更新方法、装置、计算机设备及存储介质 |
-
2019
- 2019-06-28 CN CN201910577283.9A patent/CN110311789B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110311789A (zh) | 2019-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109784058A (zh) | 版本强一致性校验方法、客户端、服务器及存储介质 | |
US9589153B2 (en) | Securing integrity and consistency of a cloud storage service with efficient client operations | |
CN108959407B (zh) | 数据的强一致性写入方法及终端设备 | |
CN103826215A (zh) | 一种在终端设备上进行Root权限管理的方法和装置 | |
US11520905B2 (en) | Smart data protection | |
EP3533200B1 (en) | Fault tolerant automatic secret rotation | |
US11201870B2 (en) | Using commit tokens to coordinate permissions submissions to address transaction conflict in blockchain systems | |
CN103514298A (zh) | 一种实现文件锁的方法及元数据服务器 | |
CN110928904A (zh) | 一种数据查询方法、装置及相关组件 | |
CN110113385A (zh) | 缓存动态配置方法、装置、计算机设备及存储介质 | |
US20210263809A1 (en) | Method, electronic device, and computer program product for storage management | |
CN111324425B (zh) | 一种数据访问方法、装置、设备及存储介质 | |
CN107066877B (zh) | 一种交易系统的权限变更方法及系统 | |
US20210263784A1 (en) | Efficient and scalable use of shared resources | |
CN109358874A (zh) | 业务规则更新方法、装置、计算机设备和存储介质 | |
CN110311789B (zh) | 数据安全传输方法及装置 | |
US9924002B1 (en) | Managing stateless processes | |
CN112015563B (zh) | 消息队列切换方法、装置、电子设备及存储介质 | |
US10127270B1 (en) | Transaction processing using a key-value store | |
CN113282626A (zh) | 基于Redis的缓存数据的方法、装置、计算机设备及存储介质 | |
CN116360696B (zh) | 分布式块存储系统、介质及其电子设备 | |
CN115174158B (zh) | 基于多云管理平台的云产品配置检查方法 | |
CN116126380A (zh) | 一种固件升级方法、装置、电子设备及存储介质 | |
CN107085681B (zh) | 鲁棒的计算设备标识框架 | |
CN115221559A (zh) | 数据账户的访问授权方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |