[发明专利]安全访问共享内存的方法、装置以及认证代理有效
申请号: | 201810239865.1 | 申请日: | 2018-03-22 |
公开(公告)号: | CN110298165B | 公开(公告)日: | 2023-05-23 |
发明(设计)人: | 杨藩 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F21/44 | 分类号: | G06F21/44;G06F21/62;G06F21/64 |
代理公司: | 深圳市联鼎知识产权代理有限公司 44232 | 代理人: | 刘抗美 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 安全 访问 共享 内存 方法 装置 以及 认证 代理 | ||
本公开提供了一种安全访问共享内存的方法、装置以及认证代理。该方法包括:响应于接收到业务文件进程对载体文件描述符的请求,读取所述业务文件;获取所述业务文件的哈希值;基于所述业务文件的哈希值,对所述业务文件进行合法性认证;如果认证通过,将所述载体文件描述符传送到所述业务文件进程,以供所述业务文件进程访问共享内存。本公开进一步提高了共享内存访问的安全性。
技术领域
本公开涉及计算机存储领域,具体涉及一种安全访问共享内存的方法、装置以及认证代理。
背景技术
共享内存作为一种高效的跨进程通讯手段,被广泛用于现代编程中。它的缺点是,任意业务文件进程都能简单连接到一块特定的共享内存,从而能随意获取/篡改其内容。
Linux机制下,可以通过文件映射的方式来提供对共享内存C的访问。为共享内存在内存文件系统下分配一个文件名,从而为共享内存建立了载体文件A。载体文件A是共享内存C的载体。该载体文件A直接存在于内存中,访问内存的效率比访问硬盘高得多。然后,为载体文件A分配一个文件描述符fd。业务文件进程要访问共享内存C时,获取该文件描述符fd,利用该文件描述符fd将载体文件A映射到自己的进程空间中。由于载体文件A实际上就是共享内存C的载体,因此,业务文件进程可以在载体文件A中对共享内存进行访问。
任何业务文件进程都可以获取文件描述符fd,从而通过文件映射的方式实现对共享内存的访问。如果该业务文件进程是恶意程序,可能造成共享文件的泄露或篡改。另外,恶意进程甚至可以不获取文件描述符fd,而是采用简单拷贝、读取按照上述过程在机器中创造的载体文件A的方式来篡改共享内存。共享内存的安全性得不到保证。为了提高共享文件的安全性,现有技术中采用认证业务文件进程的身份的方案。在接收到业务文件进程的共享内存访问请求后,先认证业务文件进程的身份,如身份合法,才能给业务文件进程提供文件描述符fd或让业务文件进程访问载体文件A。然而,恶意程序可能通过提交篡改的身份的方式通过认证,对共享内存访问的安全性提高有限。
发明内容
本公开的一个目的在于进一步提高共享内存访问的安全性。
根据本公开实施例的第一方面,公开了一种安全访问共享内存的方法,包括:
响应于接收到业务文件进程对载体文件描述符的请求,读取所述业务文件;
获取所述业务文件的哈希值;
基于所述业务文件的哈希值,对所述业务文件进行合法性认证;
如果认证通过,将所述载体文件描述符传送到所述业务文件进程,以供所述业务文件进程访问共享内存。
根据本公开实施例的第二方面,公开了一种安全访问共享内存的装置,包括:
读取单元,用于响应于接收到业务文件进程对载体文件描述符的请求,读取所述业务文件;
哈希值获取单元,用于获取所述业务文件的哈希值;
哈希值认证单元,用于基于所述业务文件的哈希值,对所述业务文件进行合法性认证;
传送单元,用于如果认证通过,将所述载体文件描述符传送到所述业务文件进程,以供所述业务文件进程访问共享内存。
根据本公开实施例的第三方面,公开了一种认证代理,包括:
存储器,存储有计算机可读指令;
处理器,读取存储器存储的计算机可读指令,以执行如上所述的方法。
根据本公开实施例的第四方面,公开了一种计算机程序介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行如上所述的方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810239865.1/2.html,转载请声明来源钻瓜专利网。