基于ShadowDOM的Web应用加解密方法与流程

文档序号:12123380阅读:1324来源:国知局
本发明涉及数据隐私保护的研究领域,特别涉及一种基于ShadowDOM的Web应用加解密方法。
背景技术
::随着互联网的飞速发展的同时,用户隐私泄露问题日益严重。用户的隐私数据不但可能在服务器端数据库中被窃取,也可能在传输过程中泄露,甚至在客户端应用的代码也同样面临着泄露危险。因而让用户自己控制隐私数据的加密可以避免上述威胁。而传统加密算法使用所带来密文格式的变化不但会影响应用的前台验证,同样破坏了数据库字段的存储要求。所以,既能使用户隐私得到保护同时不破坏应用数据库存储及主要功能,是一个亟待解决的问题。技术实现要素:本发明的主要目的在于克服现有技术的缺点与不足,提供一种基于ShadowDOM的Web应用加解密方法,实现对用户隐私数据的保护且不破坏应用数据库的存储和应用的主要功能。为了达到上述目的,本发明采用以下技术方案:本发明基于ShadowDOM的Web应用加解密方法,包括下述步骤:(1)web开发人员或者维护人员标记敏感数据;(2)用户在浏览器安装ShadowFPE扩展程序,并设置密钥;(3)ShadowFPE浏览器扩展程序鉴别敏感数据并在安全的隔离环境下实现加解密。作为优选的技术方案,步骤(1)中,标记敏感数据的方法为:(1.1)为需要渲染的敏感数据之间添加自定义标签<myshadowspan>;(1.2)为涉及敏感数据的标签添加自定义属性data-crypt以标识数据格式,该属性取值可为{“AES”,“FPE”,“INT”,“STRING”,“IDNUMBER”,“EMAIL”}集合中的一项,“AES”,“FPE”,“INT”,“STRING”,“IDNUMBER”,“EMAIL”分别表示AES加密、未指定格式的FPE、格式为整数的FPE、格式为字符串的FPE、格式为身份证类型的FPE、格式为电子邮件类型的FPE。作为优选的技术方案,步骤(3)中,ShadowFPE浏览器扩展程序鉴别敏感数据的方法为:(3.1.1)遍历应用DOM中存在的<myshadowspan>标签与data-crypt属性;(3.1.2)对带有data-crypt属性的文本输入元素认定为待加密的敏感数据,如input元素、textarea元素、[contentEditable]等,其数据格式为data-crypt的值所指定;(3.1.3)对<myshadowspan>标签内的文本认定为待解密的敏感数据密文,其数据格式为data-crypt的值所指定。作为优选的技术方案,步骤(3.1.2)中,对待加密元素格式的鉴别依赖于该元素中属性的值:A、若data-crypt取值为AES,则认为该字段格式不敏感,使用AES加密算法进行加密;B、若data-crypt取值为{“INT”,“string”,“IDNUMBER”,“EMAIL”}中一项,则认为该字段格式敏感,使用FPE算法中的特定格式进行处理;C、若data-crypt取值为“FPE”,即该字段格式敏感但没有明确给出数据格式,此时ShadowFPE会对数据格式进行自动化识别:ShadowFPE将遍历该元素的所有属性,发现关键字即返回。作为优选的技术方案,步骤(3.1.2)中,所述待解密密文的鉴别方式有两种:D、通过对data-crypt属性的鉴别;E、通过正则匹配的方式对密文进行鉴别。作为优选的技术方案,步骤(3)中,所述在安全的隔离环境下实现加解密的方法为:(3.2.1)采集用户敏感数据时,在shadowDOM中生成替换应用代码与用户敏感数据进行交互的元素,监听用户击键事件,对用户输入的敏感数据进行加密,并将密文更新给原应用;(3.2.2)为用户呈现敏感数据时,将密文加密,并将明文封装在shadowDOM中呈现给用户。本发明涉及的与数据加密有关的一些基本概念:(1)AES:密码学中的高级加密标准(AdvancedEncryptionStandard,AES),是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院(NIST)于2001年11月26日发布于FIPSPUB197,并在2002年5月26日成为有效的标准。2006年,高级加密标准已然成为对称密钥加密中最流行的算法之一。(2)FPE:密码学中的保留格式加密(FormatPreservingEncryption,FPE),FPE是一种全新的密码学技术,它将特定格式的明文加密成相同格式的密文,即密文的长度和类型与明文相同。(3)shadowDOM:ShadowDOM是W3C提出的一个HTML的新规范,其允许开发者封装自己的HTML标签、CSS样式和JavaScript代码。本发明与现有技术相比,具有如下优点和有益效果:1.本发明可实现用户对敏感数据的控制权,避免了客户端应用代码、传输过程中以及服务器端对用户隐私的泄露。2.本发明使用保留格式加密算法使得密文格式不发生变化,不会破坏应用的前台验证以及数据库存储的字段格式。3.本发明应用的开发者或维护人员可以自行选择敏感字段并添加标签,避免了加密对应用功能造成的影响。附图说明图1是本发明装置的方法流程图;图2是本发明输入隔离原理图;图3是本发明输出隔离原理图。具体实施方式下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。实施例用户敏感数据涉及姓名、电话、身份证号码、电子邮件、地址等,本发明以电子邮件作为实例进行细节描述。如图1所示,本实施例基于ShadowDOM的Web应用加解密方法,其具体的实现方式如下:1、web开发人员或者维护人员标记敏感数据;1.1、当应用需要对用户敏感信息进行采集时,应对涉及敏感数据的元素添加data-crypt属性。如对<inputtype=”text”name=”email”/>添加data-crypt以标识该电子邮件字段需要进行加密处理,并选择对应的格式为data-crypt赋值。可将其修改为<inputtype=”text”name=”email”data-crypt=”FPE”/>或<inputtype=”text”name=”email”data-crypt=”email”/>。二者的区别在于是否明确指出数据格式,对于未明确指出数据格式的字段,shadowFPE将对其进行自动化识别。1.2、当应用需要为用户呈现敏感信息时,应对敏感字段密文用<myshadowspan>标识,用data-crypt进行数据格式标识。例如,若huxtdg@gmail.com表示nankai@gmail.com加密后的密文,则可标注为<myshadowspandata-crypt=”FPE”>huxtdg@gmail.com<myshadowspan>或<myshadowspandata-crypt=”email”>huxtdg@gmail.com<myshadowspan>。此二者区别在于是否指定保留格式加密的具体数据格式,对于未明确指出数据格式的字段,shadowFPE将对其进行自动化识别。2、鉴别机制;2.1、鉴别待加密的输入。ShadowFPE会遍历应用DOM中的各个节点,对文本输入元素(例如,input,textarea,[contenEditable])遍历其属性。对于存在data-crypt属性的textinputelement认定为待加密元素。对待加密元素格式的鉴别依赖于该元素中属性的值:(1)若data-crypt取值为AES,则认为该字段格式不敏感,使用AES加密算法进行加密;(2)若data-crypt取值为{“INT”,“string”,“IDNUMBER”,“EMAIL”}中一项,则认为该字段格式敏感,使用FPE算法中的特定格式进行处理;(3)若data-crypt取值为“FPE”,即该字段格式敏感但没有明确给出数据格式,此时ShadowFPE会对数据格式进行自动化识别:ShadowFPE将遍历该元素的所有属性,发现关键字即返回。此过程的伪代码如下述所示:2.2、鉴别待解密的输入。ShadowFPE会遍历应用DOM中的各个节点,对<myshadowspan>标签进行识别,<myshadowspan>标签内的文本即为待解密的输出。对密文格式的鉴别有两种方式:(1)通过对data-crypt属性的鉴别,此时与上述方案相同;(2)通过正则匹配的方式对密文进行鉴别,判断其格式,shadowFPE提供了具有一定准确度的自动识别算法,在下述代码中以函数IdentifyDecFormat表示。此过程的伪代码如下述所示:3、生成安全的隔离环境并实现加解密使用shadowDOM隔离应用DOM以生成安全的输入输出环境。在ShadowFPE中,有输入隔离和输出隔离两种操作。3.1、输入隔离。在具有隔离性的shadowDOM中的文本输入元素获取用户输入,并以鉴别模块的鉴别结果为参数调用算法库中合适的加密算法,对明文信息进行加密,并将密文更新给应用。根据鉴别结果,对涉及敏感数据的元素进行处理。以input元素为例,在其前插入新节点myspan用来作为影子宿主挂载影子树,在影子树内,生成一个新的input元素。然后,将应用中的原input元素通过添加属性值为”display:none”的属性”style”设置为不显示。对影子树内的input元素进行监听,对用户每次击键事件,shadowFPE对用户输入以对应格式进行加密处理,此后将密文更新给应用原input元素。此过程如图2所示,其核心代码如下所示:3.2、输出隔离。对鉴别模块识别出的密文及格式调用算法库中合适的解密算法,对密文数据进行解密,并将明文在具有隔离性的shadowDOM中呈现给用户。根据鉴别结果,调用算法库中相应的解密算法,对密文按照相应格式进行解密。之后以密文标识标签<myshadowspan>为影子宿主生成影子树,并将敏感数据明文置于影子树中。此过程如图3所示,其核心代码如下所示:本实施例中,通过应用开发人员或维护人员在应用代码中对敏感字段进行标识,用户在客户端浏览器安装本发明的浏览器扩展并设置秘钥后,将应用中涉及用户敏感信息的数据封装在安全的、与应用DOM相隔离的shadowDOM中,并进行保留格式加解密处理。上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1