CN103971059A - 一种Cookie本地存储与使用方法 - Google Patents

一种Cookie本地存储与使用方法 Download PDF

Info

Publication number
CN103971059A
CN103971059A CN201410195502.4A CN201410195502A CN103971059A CN 103971059 A CN103971059 A CN 103971059A CN 201410195502 A CN201410195502 A CN 201410195502A CN 103971059 A CN103971059 A CN 103971059A
Authority
CN
China
Prior art keywords
cookie
key
value
request
browser
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.)
Granted
Application number
CN201410195502.4A
Other languages
English (en)
Other versions
CN103971059B (zh
Inventor
朱洋民
孙毓忠
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Zhongke Flux Technology Co ltd
Original Assignee
Institute of Computing Technology of CAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN201410195502.4A priority Critical patent/CN103971059B/zh
Publication of CN103971059A publication Critical patent/CN103971059A/zh
Application granted granted Critical
Publication of CN103971059B publication Critical patent/CN103971059B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Databases & Information Systems (AREA)
  • Virology (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明提供一种Cookie本地存储与使用方法。所述Cookie本地存储方法包括:解析本地存储的浏览器Cookie文件,得到一个或多个未被替换的键值对;以及对于所述一个或多个未被替换的键值对中的每个键值对,在所述浏览器Cookie文件中用唯一字符串替换该键值对中的值。本发明解决了Cookie的本地存储容易被恶意程序窃取的问题、实现了对HTTPS加密协议的支持,且无需修改浏览器代码和Cookie协议,具有较好的兼容性。

Description

一种Cookie本地存储与使用方法
技术领域
本发明涉及计算机信息安全领域,尤其涉及一种Cookie本地存储与使用方法。
背景技术
近年来,随着因特网的快速发展,出现了多种多样的基于因特网的应用,而Web网站则成为这些应用中最重要的一类基于因特网的服务。随着人们对Web服务的要求不断增高,各种功能也相继增加到原始的Web服务中,出现了诸如动态页面、Cookie机制等各种技术。图1给出了Cookie机制的工作流程,其中Cookie是在客户端中,由浏览器保存的一些由服务器动态生成的信息,客户端在以后的访问中会向服务器提供之前所保存的信息。服务器在收到该信息后可以动态配置返回给用户的页面,从而达到记录用户登录状态等功能。
Cookie机制在方便人们使用Web服务的同时,也带来了很多安全问题,其安全问题之一在于Cookie的本地存储容易被恶意程序窃取。如图2所示,由于当前各主流浏览器,如IE、Firefox、Chrome等,均把Cookie信息以明文形式存储在本地文件中,例如IE使用纯文本格式,而Firefox与Chrome使用sqlite3数据库格式明文保存用户的Cookie信息。这就导致本地恶意程序可以通过直接读取、拷贝该文件从而得到用户的Cookie信息,进而可以利用该Cookie盗用用户登录信息。此外,由于Cookie信息是完全由本地浏览器产生,保存,管理进而使用的,因此Cookie与本地浏览器具有紧密的耦合性,只要控制了本地浏览器,便对Cookie有了完全的控制权限。当用户浏览器中安装了带有恶意代码的插件或执行了带有恶意功能的Javascript代码时,由于用户Cookie的明文存储,导致这些恶意代码也可以直接获取到用户的Cookie,进而发送给恶意攻击者、危害用户安全。
可信平台模块TPM(Trusted Platform Module)是由可信计算组织TCG(Trusted Computing Group)提出的一种内嵌于计算机的新型嵌入式硬件安全模块。基于该安全模块,可以实现验证平台完整性度量、密钥安全保存、远程证明功能以及安全签名等功能。目前已有很多基于TPM来增强系统安全的研究,例如基于TPM来实现Web网页的可信验证等,尽管该方法能够验证服务端网页的可信,但其无法保证客户端Cookie的安全,此外该方法在启用了HTTPS的加密网页传输中存在部署困难的问题。另外一些研究主要集中在TPM的传统应用,例如基于TPM来保证平台完整性的验证、保证本地数据安全等,这些方法对于提高本地系统的安全性有一定帮助,但对于基于Cookie的Web交互仍无法保护。此外,还有针对Cookie协议进行改进来增强其安全性的研究,一种方法是引入一次性令牌来对抗重放攻击。但该方法无法解决本地Cookie泄露等问题;还有一种方法通过将Cookie存放到远程云端服务器来解决相应的安全问题。但其不足在于人们无法充分信任云端的安全,且引入云端可能成为用户访问网络时的单点障碍,如用户由于环境限制无法访问指定云服务器,此时依赖于云服务器的Cookie机制就无法正常工作。此外,该方法需要修改现有Cookie协议,以及需要修改对应的浏览器、服务器等,因此兼容性较差。
发明内容
为解决上述问题,根据本发明的一个实施例,提供一种Cookie本地存储方法,所述方法包括:
步骤1)、解析本地存储的浏览器Cookie文件,得到一个或多个未被替换的键值对;
步骤2)、对于所述一个或多个未被替换的键值对中的每个键值对,在所述浏览器Cookie文件中用唯一字符串替换该键值对中的值。
在一个实施例中,所述方法还包括:
步骤3)、对于替换后的键值对,将该键值对中的键和替换前的值、该键值对所对应的生效域名网址,以及用于替换值的唯一字符串写入安全Cookie文件中的一条记录,并对该安全Cookie文件进行绑定加密;其中,所述安全Cookie文件用于记录替换后的键值对的相关信息。
在一个实施例中,在步骤3)中,调用TPM设备使用绑定密钥对所述安全Cookie文件进行绑定加密。
在一个实施例中,步骤1)包括:
解析出本地存储的浏览器Cookie文件中记录的所有键值对及其对应的生效域名网址,并且解封安全Cookie文件;
对于解析出的所有键值对中的每个键值对,如果在所述安全Cookie文件中不存在包括该键值对中的键和值以及该键值对所对应的生效域名网址的记录,则该键值对是未被替换的键值对。
在一个实施例中,解析本地存储的浏览器Cookie文件包括:根据浏览器的类型确定浏览器Cookie文件的存储格式,基于该存储格式解析本地存储的浏览器Cookie文件。
在一个实施例中,所述唯一字符串是调用TPM设备随机生成的字符串。
在一个实施例中,步骤2)之后还包括:如果到达下一个预定时间,则返回步骤1)进行处理。
根据本发明的一个实施例,还提供一种Cookie的使用方法,其中本地存储的Cookie中的键值对中的值已由唯一字符串替换,且替换后的键值对的相关信息记录在安全Cookie文件中;所述方法包括:
步骤A)、在浏览器发出对目标网站的访问请求前,截获要发出的请求,并且在所述请求中查找Cookie字段;
步骤B)、对于从中找到Cookie字段的请求,从所述请求中解析出唯一字符串,用其对应的值替换所述唯一字符串;
步骤C)、由浏览器发出所述请求。
在一个实施例中,步骤B)包括:
步骤B1)、对于从中找到Cookie字段的请求,从所述请求中解析出唯一字符串;
步骤B2)、解封安全Cookie文件,在所述安全Cookie文件中查找所述唯一字符串对应的值;以及
步骤B3)、如果找到所述对应的值,则用所述对应的值替换所述唯一字符串。
在一个实施例中,步骤B1)还包括:从所述请求中解析出要访问的网址;对于所述要访问的网址请求用户授权;如果得到授权,则执行步骤B2);如果没有得到授权,则执行步骤C)。
在进一步的实施例中,在步骤B1)中,请求用户授权包括:请求用户提交用于解封所述安全Cookie文件的绑定密钥。
在一个实施例中,步骤A)包括:在浏览器发出对目标网站的访问请求前,且在用HTTPS协议对其加密前,截获要发出的请求。
本发明通过使用随机字符串替换技术和基于TPM的绑定加密操作来解决本地Cookie的明文保存问题,解除了Cookie与本地浏览器的紧耦合,防止了恶意用户对本地Cookie的盗取,从而可以安全地在本地存储与使用Cookie信息。此外,在浏览器发出访问请求前,尤其是在HTTPS协议加密前,截获请求并将随机字符串替换回真实的Cookie值,确保了用户对Cookie的正常使用,实现了对HTTPS加密协议的支持。由于本发明可以在不修改浏览器代码和当前Cookie协议的情况下实现上述效果,因此具有较高的兼容性。
附图说明
图1是Cookie机制的工作流程图;
图2是当前主流浏览器的Cookie存储格式与查看方式的示意图;
图3是根据本发明一个实施例的Cookie交换格式的示意图;
图4是根据本发明一个实施例的实现Cookie本地存储与使用的客户端环境与Web服务器的框图;
图5是根据本发明一个实施例的Cookie本地存储方法的流程图;以及
图6是根据本发明一个实施例的Cookie使用方法的流程图。
具体实施方式
下面结合附图和具体实施方式对本发明加以说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
如本领域普通技术人员所公知的,本地文件中存储的Cookie信息包括“Key=Value”键值对以及生效域名网址URL等数据,其中Key(键)和Value(值)的内容是由服务器产生的字符串,键和值之间由一个等号连接,每个键值对之间以一个分号隔开。Cookie的使用同样是按照键值对的方式,在HTTP请求中,本地浏览器会以字符串“Cookie”作为字段名,以键值对为字段值,向服务器提交本地保存的Cookie信息(参见图3)。
根据本发明的一个实施例,提供一种Cookie本地存储方法。概括而言,该存储方法将本地浏览器存储的原始Cookie文件中的Value(值)用随机字符串替换,并且将该替换所涉及的数据用本地基于硬件的TPM设备加密并保存。图4示出了用于实现该Cookie本地存储方法的一种客户端环境与Web服务器,其中,在客户端引入Cookie代理器来完成随机字符串的替换等工作。Cookie代理器还可以响应来自客户端浏览器的请求,为客户端浏览器使用Cookie提供安全的交互环境。在一个实施例中,Cookie代理器可以是在客户端运行的、独立于客户端浏览器以及TPM设备的应用程序。应理解,Cookie代理器还可以是用于实现Cookie本地存储方法的任何硬件或者软件和硬件的组合。
现参考图5,结合图4所示的Cookie代理器对Cookie本地存储方法展开详细描述:
步骤S501、执行Cookie代理器。
在第一次执行Cookie代理器时,用户还需要设置该Cookie代理器的初始运行参数。Cookie代理器的运行参数包括:浏览器Cookie文件(即原始Cookie文件)存储路径、浏览器类型、安全Cookie文件存储路径、以及TPM绑定密钥等。
在一个实施例中,可将Cookie代理器设置为根据浏览器Cookie文件存储路径定期地扫描浏览器Cookie文件,在每次扫描时替换浏览器Cookie文件中的Cookie信息并且执行基于TPM设备的绑定加密操作。
步骤S502、解析浏览器Cookie文件,获得Key-Value键值对。
Cookie代理器通过浏览器Cookie文件存储路径找到本地浏览器存储的浏览器Cookie文件,并且扫描该浏览器Cookie文件。在扫描过程中,根据用户设置的浏览器类型确定该浏览器Cookie文件的存储格式,并且基于该存储格式来解析浏览器Cookie文件,进而可以获得浏览器Cookie文件中的Key-Value键值对以及对应的生效域名网址URL。
在一个实施例中,可将解析得到的Key-Value键值对及其生效域名网址URL表示为<Key,Value,URL>的三元组形式。
如果没有解析得到任何Key-Value键值对,则不对浏览器Cookie文件进行以下处理。
步骤S503、判断解析获得的Key-Value键值对是否已经处理过(即已被替换过),对于没有处理过的Key-Value键值对,执行替换(进入步骤S504);而对于已经处理过的Key-Value键值对则不作处理,返回步骤S502继续扫描并解析浏览器Cookie文件。
在一个实施例中,要判断是否已经处理过某个Key-Value键值对,可根据步骤S501中设置的安全Cookie文件存储路径查找安全Cookie文件,该安全Cookie文件记录已替换过的Key-Value键值对的信息。可首先使用TPM绑定密钥来解封该安全Cookie文件,接着在该安全Cookie文件中查找是否存在一条记录包括当前Key-Value键值对的Key,Value以及对应的URL(生效域名网址),如果存在这样的一条记录,则可以判定该Key-Value键值对已被处理过,如果不存在这样的记录,则判定该Key-Value键值对还没有被处理过。
步骤S504、对于没有处理过的某个Key-Value键值对,用随机字符串替换其中的Value部分。
在一个实施例中,由Cookie代理器调用TPM设备来随机产生一个字符串,接着将Key-Value键值对中的Value部分替换为该随机产生的字符串。
应理解,除了随机生成一个字符串来替换Value部分,也可以指定一个唯一字符串来替换该Value部分。
步骤S505、判断本次扫描是否完成,如果未完成则返回步骤S502继续进行扫描和解析。
步骤S506、对于本次扫描所处理的所有Key-Value键值对,将其中替换后的Value部分写回浏览器Cookie文件,并且将每次替换所涉及的数据存储到安全Cookie文件。
将替换后的Value部分写回浏览器Cookie文件,即用生成的随机字符串来替换浏览器Cookie文件中对应的Value部分。在一个实施例中,可以先在浏览器Cookie文件中删除替换的Cookie信息,再将替换后的Cookie信息以相应的存储格式写回浏览器Cookie文件。在将每个替换所涉及的数据保存到已解封的安全Cookie文件之后,Cookie代理器还要调用TPM设备使用绑定密钥对该安全Cookie文件进行绑定加密。
尽管在本文中以TPM设备为例描述了安全Cookie文件的绑定加密操作,应理解,可用于执行文件加密的其他安全手段也适用于此。
在一个实施例中,在用随机字符串替换浏览器Cookie文件中对应的Value部分之后,可将该次替换所涉及的数据作为一条记录存储到已解封的安全Cookie文件中,安全Cookie文件可包括与多次替换相关的多条记录。其中,一条记录可包括某次替换所涉及的原始的Key-Value键值对、替换其Value部分的随机字符串RandomString,以及该键值对所对应的生效域名网址URL。因此,每条记录可表示为<Key,Value,RandomString,URL>的四元组的形式,也可以表示为其他形式。
如上文所述,安全Cookie文件还用于在步骤S503中判断是否处理过某个Key-Value键值对。例如,假定某个键值对的Key为Key1,Value为Value1,其对应的生效域名网址为URL1,则可以在安全Cookie文件中查找是否有一条记录完整出现过Key1,Value1,URL1,如果有这样的信息,则表示已经处理过该Key1-Value1键值对;如果没有这样的信息,则表示还没有处理过该Key1-Value1键值对。
步骤S507、当到达下一扫描时间,Cookie代理器重新扫描浏览器Cookie文件、重复以上过程S502-S506。
上文描述的Cookie本地存储方法将Cookie的有效值(即原始的Value)从浏览器Cookie文件中进行了剥离,其技术效果是在完全不修改当前浏览器的情况下,解除了Cookie这类敏感数据与浏览器的紧耦合。这样,即使有恶意插件或恶意Javascript代码在用户的浏览器中执行,其获得的Cookie信息也是由本地Cookie代理器替换后的对其毫无意义的“垃圾”值(即一个随机字符串)。同样,对于遭到本地恶意程序窃取的本地Cookie文件,其窃取到的也仅是对其无意义的“垃圾”值。
针对上文描述的Cookie本地存储方法,为确保用户对Cookie的正常使用,根据本发明的一个实施例,还提供一种基于该Cookie本地存储方法的Cookie使用方法。概括而言,该使用方法包括:在客户端浏览器发出HTTP\HTTPS请求前,将请求头及其中的Cookie字段进行修改,用真实的Value替换掉随机字符串,再将修改后的请求发送至远程Web服务器。再次参考图4,可以在客户端引入Cookie代理器插件来修改HTTP\HTTPS请求中的Cookie字段。该Cookie代理器插件可以是运行在客户端浏览器中的插件,其监听客户端浏览器发出的HTTP\HTTPS请求,当监听到该请求后与本地Cookie代理器进行通讯,进而对请求中相应的Cookie字段进行修改,以确保用户能够正常使用Cookie。
现参考图6,提供一种基于上述Cookie本地存储方法的Cookie使用方法,包括以下步骤:
步骤S601、Cookie代理器插件截获浏览器即将发出的HTTP\HTTPS请求,并且查找Cookie字段。
其中,由于Cookie代理器插件可以在浏览器内部进行截获,因此可以获得HTTPS协议加密前的请求。此外,Cookie代理器插件还要在请求的头部(或称请求头)中查找是否出现了Cookie字段,如果没有出现Cookie字段则说明目标网站没有在本地存储Cookie信息,则无需执行任何操作,直接将该请求交由浏览器发出,如果出现Cookie字段,则执行步骤S602。
步骤S602、从请求的头部解析出Cookie信息,获得随机字符串RandomString以及要访问的网址URL,随后Cookie代理器插件向Cookie代理器发出通讯请求,查找之前用该随机字符串替换的真实Cookie。
在一个实施例中,可以以<Key,RandomString,URL>的三元组格式解析出所有的Cookie信息,其中RandomString是当前Cookie字段中“Key=Value”中的Value部分。接着,Cookie代理器插件向Cookie代理器发出的请求,该请求包括三元组<Key,RandomString,URL>。
步骤S603、Cookie代理器接收到由Cookie代理器插件发出的通讯请求后,从该请求中得到Cookie代理器插件请求的随机字符串RandomString和URL,然后提示用户授权。
在一个实施例中,可向用户弹出对话框并且提供要访问的网站URL来请求用户授权,用户可以根据URL判断是否授权。如果用户授权通过,则可以向Cookie代理器提供相关的TPM绑定密钥。Cookie代理器从用户处得到相关的TPM绑定密钥后,使用该密钥解封安全Cookie文件,在该安全Cookie文件中查找RandomString所对应的真实Value。如果找到,则将该真实Value返回给Cookie代理器插件,执行步骤S604。如果用户没有授权或者没有找到真实的Value值,则不对Cookie字段进行修改且由本地浏览器直接发送该请求。
步骤S604、Cookie代理器插件接收到Cookie代理器返回的真实Value,用返回的真实Value替换HTTP/HTTPS请求头中Cookie字段中的对应的随机字符串。最后将修改后的请求头交由浏览器发出。
Cookie代理器插件通过将随机字符串替换回对应的真实Cookie,保证了用户对Cookie的正常使用。此外,可以在HTTPS请求加密前,就对其中的Cookie字段的随机字符串进行替换,完成替换操作后再由浏览器完成该HTTPS请求的加密,从而实现了对HTTPS加密协议的支持。
尽管在上文中以特定顺序描述了本发明提供的Cookie本地存储方法和使用方法,但不应将此理解为要求按照所示的特定顺序或先后顺序来执行以上操作,或者要求执行所有的操作。
下面以配备有符合TCG组织标准规范1.2版本以上的TPM可信平台模块的客户端为例,具体描述本发明提供的Cookie本地存储方法与使用方法。本示例中,客户端运行有支持Cookie和插件扩展的现代浏览器。客户端上运行有上述Cookie代理器,同时客户端浏览器中安装有上述Cookie代理器插件。
其中,Cookie的本地存储步骤包括:
步骤1.1,用户首先执行Cookie代理器,在用户第一次执行Cookie代理器时,设定以下初始运行参数:
(1)、Cookie代理器自动扫描频率,下文中将该参数记为UpdateRate(其类型为整数,单位默认为秒。例如:30);
(2)、浏览器Cookie文件存储路径,下文中将该参数记为CookiePath(类型为字符串。例如,针对Chrome浏览器该路径可设置为:“%LOCALAPPDATA%\Google\Chrome\User Data\Default\Cookies”);
(3)、本地浏览器标识,以下将该参数记为BrowserID(值为字符串,指示当前使用的浏览器类型。例如:“IE”等);
(4)、绑定密钥,下文中将该参数记为KeyBind(类型为字符串,其是调用TPM设备加密或解封时所用的密钥。例如,“1234567890abcdefg*&^%$”等)。
(5)、安全Cookie文件存储路径,下文中将该参数记为SecureCookieFile(类型为字符串,指示Cookie代理器存储真实Cookie信息的位置。例如:“C:\SecureCookieFile.dat”等)。其中,安全Cookie文件的存储格式可以是包括键,真实值,随机字符串和对应URL的四元组,即<Key,Value,RandomString,URL>。该文件在用户指定存储路径后,由Cookie代理器产生、使用和删改。
步骤1.2,Cookie代理器根据CookiePath参数,找到浏览器Cookie文件。根据BrowserID,确定该浏览器Cookie文件的存储格式并解析该浏览器Cookie文件。其中,解析出该文件中记录的Key-Value键值对以及其生效域名网址URL1。将解析所得的信息记为一个三元组<Key1,Value1,URL1>,该三元组的语义为:键Key1对应的值为Value1,其生效域名为URL1。
步骤1.3,Cookie代理器对于从步骤1.2解析得到的每一个三元组<Key1,Value1,URL1>,查询SecureCookieFile文件。若发现解析得到的三元组在安全Cookie文件的一条记录中完整出现,即在SecureCookieFile中存在一个四元组<Key2,Value2,RandomString2,URL2>,其中Key2等于Key1,Vaue2等于Value1,URL2等于URL1,则认为该三元组已经被Cookie代理器处理过,因此跳过该三元组,回到步骤1.2,获取一组新的三元组进行处理。
如果该三元组没有完整出现在SecureCookieFile的一条记录中,则进入步骤1.4。
如果步骤1.2得到的三元组为空,说明已经处理完所有Cookie键值对,则进入步骤1.7。
步骤1.4,Cookie代理器调用TPM设备,生成一个至少有512bit长的随机字符串RandomString1。之后可生成一个新的三元组<x,y,z>,其中x为步骤1.3中的三元组中的Key1,y为生成的随机字符串RandomString1,z为步骤1.3中的三元组中的URL1。
步骤1.5,Cookie代理器将步骤1.4生成的新的三元组<x,y,z>按照BrowserID指示的浏览器的Cookie存储格式,写回到所述CookiePath指示的浏览器Cookie文件中。该写回过程要求先删除浏览器Cookie文件中原始存在的、在步骤1.2中解析得到的三元组<Key1,Value1,URL1>,这里通过先删除再写回的操作,实际完成了将Cookie记录中的Value1替换为RandomString1的操作。
重复以上步骤1.2-1.5,完成所有三元组的替换过程。
步骤1.6,Cookie代理器将步骤1.5中用来替换浏览器Cookie文件中的信息的三元组<x,y,z>,按照格式<x,Value1,y,z>写入到解封后的SecureCookieFile中。其中,Value1为步骤1.3中得到的原始值,其也等价于步骤1.5中被替换的值。重复该过程以写入与所有替换相关的四元组。然后调用本地TPM设备,使用KeyBind对SecureCookieFile进行绑定加密操作。
步骤1.7,Cookie代理器根据UpdateRate参数,每隔UpdateRate的时间就从步骤1.2开始重复执行以上步骤。
Cookie的使用步骤包括:
步骤2.1,客户端浏览器在用户请求下,发出对目标网站的访问请求。
步骤2.2,Cookie代理器插件在浏览器发出该次访问请求前,先截获即将发出的请求。在所述请求的头部中查找是否出现了Cookie字段。如果没有出现,则说明目标网站没有在本地存储Cookie信息,因此无需做任何操作,直接将该请求交由浏览器发出即可。若发现了Cookie字段,则执行步骤2.3。
步骤2.3,Cookie代理器插件从请求头以及Cookie字段中以<Key,RandomString1,URL1>的格式解析出所有的Cookie数据。其中Key和RandomString1分别是Cookie字段中“Key=Value”的Key与替换后的Value部分,URL是当前HTTP/HTTPS请求送往的目标地址。在前述步骤1.5中,浏览器Cookie记录中的Value已经被Cookie代理器替换为了RandomString1,因此本步骤中所读出的也会是RandomString1。之后Cookie代理器插件向本地Cookie代理器发出通讯请求,该请求附上解析出的三元组<Key,RandomString1,URL1>。
步骤2.4,Cookie代理器接收到来自Cookie代理器插件发出的通讯请求,解析出该请求中的Key、RandomString1与URL1。本地Cookie代理器首先向用户弹出对话框用于请求用户授权,该对话框提示用户当前浏览器需要访问的网址URL1,及其将会提交Cookie信息给该URL1。
步骤2.5,用户判断是否授权该次访问操作。
用户可根据URL1判断是否授权当前请求使用Cookie信息,如果用户确定当前请求实际不应该使用Cookie信息,则可拒绝授权(这里用户的默认设置可以为允许所有授权等)。若允许该次Cookie使用,则同时键入步骤1.1所确定的KeyBind值,该密钥将用于由Cookie代理器向TPM设备请求解封SecureCookieFile所记录的真实Cookie信息,在前述步骤中Cookie的初始化需要该值,但不一定需要保存该值。可以由用户保存该值,也可以选择由Cookie代理器记录该值后以后每次直接使用所记录的值。若不允许该次使用,则不需键入所述KeyBind值。
步骤2.6,Cookie代理器判断用户的授权结果。若用户允许所述请求,则使用该用户提交的KeyBind值解封SecureCookieFile的内容,并在SecureCookieFile文件中查找RandomString1所对应的Value1。该查找中所使用的RandomString1为步骤2.4提供给Cookie代理器的RandomString1值。若找到RandomString1所对应的Value1,则将找到的Value1返回给所述Cookie代理器插件。若没有找到或者用户拒绝该次请求,则向所述Cookie代理器插件返回错误信息。
步骤2.7,Cookie代理器插件接收本地Cookie代理器的返回信息。若所述返回信息为成功查找到对应的Value1,则使用返回的Value1替换上述HTTP\HTTPS请求头中Cookie字段中的对应“Key1=RandomString1”的RandomString部分。重复以上2.4-2.6步骤,直到替换完所有的“Key1=RandomString1”后再将所述新的请求头返回给浏览器,由浏览器发出所述请求。若接收到的Cookie代理器的返回结果为错误信息,则不对所述HTTP\HTTPS请求头中作任何修改,直接将所述请求头交由浏览器对外发送。
采用本发明所提供的Cookie本地存储方法和使用方法,可以防御恶意攻击者在用户客户端直接窃取或者利用恶意插件、代码来窃取用户Cookie的攻击。
应该注意到并理解,在不脱离后附的权利要求所要求的本发明的精神和范围的情况下,能够对上述详细描述的本发明做出各种修改和改进。因此,要求保护的技术方案的范围不受所给出的任何特定示范教导的限制。

Claims (12)

1.一种Cookie本地存储方法,包括:
步骤1)、解析本地存储的浏览器Cookie文件,得到一个或多个未被替换的键值对;
步骤2)、对于所述一个或多个未被替换的键值对中的每个键值对,在所述浏览器Cookie文件中用唯一字符串替换该键值对中的值。
2.根据权利要求1所述的方法,还包括:
步骤3)、对于替换后的键值对,将该键值对中的键和替换前的值、该键值对所对应的生效域名网址,以及用于替换值的唯一字符串写入安全Cookie文件中的一条记录,并对该安全Cookie文件进行绑定加密;其中,所述安全Cookie文件用于记录替换后的键值对的相关信息。
3.根据权利要求2所述的方法,其中,在步骤3)中,
调用TPM设备使用绑定密钥对所述安全Cookie文件进行绑定加密。
4.根据权利要求2或3所述的方法,其中,步骤1)包括:
解析出本地存储的浏览器Cookie文件中记录的所有键值对及其对应的生效域名网址,并且解封安全Cookie文件;
对于解析出的所有键值对中的每个键值对,如果在所述安全Cookie文件中不存在包括该键值对中的键和值以及该键值对所对应的生效域名网址的记录,则该键值对是未被替换的键值对。
5.根据权利要求1-3中任何一个所述的方法,其中,解析本地存储的浏览器Cookie文件包括:
根据浏览器的类型确定浏览器Cookie文件的存储格式,基于该存储格式解析本地存储的浏览器Cookie文件。
6.根据权利要求1-3中任何一个所述的方法,其中,所述唯一字符串是调用TPM设备随机生成的字符串。
7.根据权利要求1-3中任何一个所述的方法,其中,步骤2)之后还包括:
如果到达下一个预定时间,则返回步骤1)进行处理。
8.一种Cookie使用方法,其中本地存储的Cookie中的键值对中的值已由唯一字符串替换,且替换后的键值对的相关信息记录在安全Cookie文件中;所述方法包括:
步骤A)、在浏览器发出对目标网站的访问请求前,截获要发出的请求,并且在所述请求中查找Cookie字段;
步骤B)、对于从中找到Cookie字段的请求,从所述请求中解析出唯一字符串,用其对应的值替换所述唯一字符串;
步骤C)、由浏览器发出所述请求。
9.根据权利要求8所述的方法,其中,步骤B)包括:
步骤B1)、对于从中找到Cookie字段的请求,从所述请求中解析出唯一字符串;
步骤B2)、解封安全Cookie文件,在所述安全Cookie文件中查找所述唯一字符串对应的值;以及
步骤B3)、如果找到所述对应的值,则用所述对应的值替换所述唯一字符串。
10.根据权利要求9所述的方法,其中,步骤B1)还包括:
从所述请求中解析出要访问的网址;
对于所述要访问的网址请求用户授权;如果得到授权,则执行步骤B2);如果没有得到授权,则执行步骤C)。
11.根据权利要求10所述的方法,在步骤B1)中,请求用户授权包括:
请求用户提交用于解封所述安全Cookie文件的绑定密钥。
12.根据权利要求8-11中任何一个所述的方法,其中,步骤A)包括:
在浏览器发出对目标网站的访问请求前,且在用HTTPS协议对其加密前,截获要发出的请求。
CN201410195502.4A 2014-05-09 2014-05-09 一种Cookie本地存储与使用方法 Active CN103971059B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410195502.4A CN103971059B (zh) 2014-05-09 2014-05-09 一种Cookie本地存储与使用方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410195502.4A CN103971059B (zh) 2014-05-09 2014-05-09 一种Cookie本地存储与使用方法

Publications (2)

Publication Number Publication Date
CN103971059A true CN103971059A (zh) 2014-08-06
CN103971059B CN103971059B (zh) 2017-01-25

Family

ID=51240541

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410195502.4A Active CN103971059B (zh) 2014-05-09 2014-05-09 一种Cookie本地存储与使用方法

Country Status (1)

Country Link
CN (1) CN103971059B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104243489A (zh) * 2014-09-30 2014-12-24 珠海市君天电子科技有限公司 一种提示用户Cookies安全性的方法及装置
CN104680063A (zh) * 2015-03-02 2015-06-03 魅族科技(中国)有限公司 一种信息拦截方法及终端
CN105447342A (zh) * 2014-08-28 2016-03-30 阿里巴巴集团控股有限公司 脚本加密方法、解密方法及引擎
CN106656915A (zh) * 2015-10-30 2017-05-10 深圳市中电智慧信息安全技术有限公司 基于可信计算的云安全服务器
CN108183802A (zh) * 2018-01-11 2018-06-19 深圳市沃特沃德股份有限公司 数字签名生成方法和装置
CN112800303A (zh) * 2019-11-13 2021-05-14 马上消费金融股份有限公司 一种浏览器数据的存储、读取方法及相关装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8176539B2 (en) * 2008-10-28 2012-05-08 Check Point Software Technologies Ltd. Methods for protecting against cookie-poisoning attacks in networked-communication applications
CN103117897A (zh) * 2013-01-25 2013-05-22 北京星网锐捷网络技术有限公司 一种检测包含Cookie信息的消息的方法及相关装置
CN103336928A (zh) * 2013-06-28 2013-10-02 贝壳网际(北京)安全技术有限公司 对数据库进行加密以及解密的方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8176539B2 (en) * 2008-10-28 2012-05-08 Check Point Software Technologies Ltd. Methods for protecting against cookie-poisoning attacks in networked-communication applications
CN103117897A (zh) * 2013-01-25 2013-05-22 北京星网锐捷网络技术有限公司 一种检测包含Cookie信息的消息的方法及相关装置
CN103336928A (zh) * 2013-06-28 2013-10-02 贝壳网际(北京)安全技术有限公司 对数据库进行加密以及解密的方法及装置

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105447342A (zh) * 2014-08-28 2016-03-30 阿里巴巴集团控股有限公司 脚本加密方法、解密方法及引擎
CN105447342B (zh) * 2014-08-28 2018-08-31 阿里巴巴集团控股有限公司 脚本加密方法、解密方法及引擎
CN104243489A (zh) * 2014-09-30 2014-12-24 珠海市君天电子科技有限公司 一种提示用户Cookies安全性的方法及装置
CN104243489B (zh) * 2014-09-30 2017-09-19 珠海市君天电子科技有限公司 一种提示用户Cookies安全性的方法及装置
CN104680063A (zh) * 2015-03-02 2015-06-03 魅族科技(中国)有限公司 一种信息拦截方法及终端
CN104680063B (zh) * 2015-03-02 2019-03-15 魅族科技(中国)有限公司 一种信息拦截方法及终端
CN106656915A (zh) * 2015-10-30 2017-05-10 深圳市中电智慧信息安全技术有限公司 基于可信计算的云安全服务器
CN108183802A (zh) * 2018-01-11 2018-06-19 深圳市沃特沃德股份有限公司 数字签名生成方法和装置
WO2019136805A1 (zh) * 2018-01-11 2019-07-18 深圳市沃特沃德股份有限公司 数字签名生成方法、装置和计算机设备
CN108183802B (zh) * 2018-01-11 2020-06-19 深圳市沃特沃德股份有限公司 数字签名生成方法和装置
CN112800303A (zh) * 2019-11-13 2021-05-14 马上消费金融股份有限公司 一种浏览器数据的存储、读取方法及相关装置
CN112800303B (zh) * 2019-11-13 2023-05-05 马上消费金融股份有限公司 一种浏览器数据的存储、读取方法及相关装置

Also Published As

Publication number Publication date
CN103971059B (zh) 2017-01-25

Similar Documents

Publication Publication Date Title
Fett et al. An expressive model for the web infrastructure: Definition and application to the browser id sso system
US10509905B2 (en) Ransomware mitigation system
CN103971059A (zh) 一种Cookie本地存储与使用方法
US10599842B2 (en) Deceiving attackers in endpoint systems
CN108076057A (zh) 一种基于区块链的数据保全系统及方法
US9769654B2 (en) Method of implementing a right over a content
CN103095847B (zh) 一种云存储系统安全保障方法及其系统
CN108322461A (zh) 应用程序自动登录的方法、系统、装置、设备和介质
WO2017152050A1 (en) Deterministic reproduction of client/server computer state or output sent to one or more client computers
US20170371625A1 (en) Content delivery method
CN102546576A (zh) 一种网页挂马检测和防护方法、系统及相应代码提取方法
CN105354451B (zh) 访问鉴权的方法及系统
US9059987B1 (en) Methods and systems of using single sign-on for identification for a web server not integrated with an enterprise network
CN111030963B (zh) 文档追踪方法、网关设备及服务器
Ferry et al. Security evaluation of the OAuth 2.0 framework
CN103634399A (zh) 一种实现跨域数据传输的方法和装置
Fett et al. Analyzing the BrowserID SSO system with primary identity providers using an expressive model of the web
CN114629713B (zh) 身份验证方法、装置及系统
US11546378B2 (en) Smart exposure of data to known attacker sessions
CN114024751B (zh) 一种应用访问控制方法、装置、计算机设备及存储介质
Garrison Digital forensics for network, Internet, and cloud computing: a forensic evidence guide for moving targets and data
US20200382311A1 (en) Protection of online applications and webpages using a blockchain
JP2018055582A (ja) 通信管理プログラム、通信管理方法および通信管理装置
CN108462671A (zh) 一种基于反向代理的认证保护方法及系统
CN108322420A (zh) 后门文件的检测方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240305

Address after: Room 711C, Floor 7, Building A, Yard 19, Ronghua Middle Road, Daxing District, Beijing Economic-Technological Development Area, 100176

Patentee after: Beijing Zhongke Flux Technology Co.,Ltd.

Country or region after: China

Address before: 100190 No. 6 South Road, Zhongguancun Academy of Sciences, Beijing, Haidian District

Patentee before: Institute of Computing Technology, Chinese Academy of Sciences

Country or region before: China