一种跨特权级通信方法、设备及存储介质与流程

文档序号:41433499发布日期:2025-03-28 17:26阅读:3来源:国知局
一种跨特权级通信方法、设备及存储介质与流程

本发明涉及安全通信,尤其涉及一种跨特权级通信方法、设备及存储介质。


背景技术:

1、在risc-v中,架构设计支持三种主要特权级:用户模式(user mode,umode)、超级用户模式(supervisor mode,s mode)和机器模式(machine mode,m mode)。机器模式是最高权限的模式,直接控制硬件和管理系统资源;超级用户模式则用于操作系统的运行,提供进程管理和系统服务;用户模式是最低权限的模式,主要用于用户级应用程序的执行。

2、在许多情况下,用户模式的用户程序需要与机器模式的内核程序进行通信,即用户程序需要将请求执行的内核命令作为用户数据,发送至内核程序。在现有技术中,处理用户程序与内核程序之间的通信是通过系统调用来实现的,即用户程序调用内核程序程序提供的api,将用户数据经超级用户模式中的超级用户程序转送,最终传递至内核程序,内核程序在执行完成上述内核命令之后,利用缓冲区机制将完成内核命令得到的响应数据传递给用户程序。这种跨特权级的通信方法存在较大的安全风险,具体如下:

3、在现有技术中,内核程序通常对经由超级用户程序中转而来的数据持有一种无条件的信任态度。这种信任基于一个假设,即超级用户程序作为中介是安全可靠的,能够确保所有传递的数据都未经篡改且来源可信。然而,在实际应用中,这一假设并非始终成立。数据在传递过程中可能会面临多种潜在的安全威胁。例如,攻击者可能利用系统漏洞或未受保护的通信通道,在数据从用户程序传输到超级用户程序,再最终到达内核程序的过程中进行拦截和篡改。如果这些数据中包含了即将在内核程序中执行的关键命令或请求,那么任何微小的改动都可能导致严重的后果。被篡改的内核命令可能会触发未经授权的操作,访问敏感资源,甚至破坏系统完整性,导致系统崩溃或数据丢失。同时在内核程序将响应数据传递回用户程序的过程中,响应数据也有可能被篡改,若用户程序不加识别地接收上述响应数据,也可能对自身造成破坏。


技术实现思路

1、本发明提供了一种跨特权级通信方法、设备及存储介质,用于解决在risc-v架构中用户程序与内核程序之间通信安全风险较高的问题。

2、本发明采用下述技术方案:

3、第一方面,本发明提供了一种跨特权级通信方法,方法包括:用户程序将用户数据发送至超级用户程序;超级用户程序根据内核命令,对用户数据进行命令合法性检查;超级用户程序在用户数据通过命令合法性检查之后,将用户数据拷贝至命令参数缓冲区;内核程序分多次从命令参数缓冲区中取出用户数据;内核程序在完成内核命令并得到响应数据之后,对响应数据进行安全认证,得到认证后数据;内核程序将认证后数据拷贝至响应缓冲区;内核程序在进行数据取出和数据拷贝的过程中,对用户数据和认证后数据进行地址合法性检查,并按照预设的异常处理机制处理出现的数据存取指令异常;用户程序对认证后数据进行安全验证,在安全验证通过之后,接收认证后数据。

4、在一种可行的实施方式中,内核程序分多次从命令参数缓冲区中取出用户数据,包括:以预设的数据块大小为单位,对用户数据执行多次取数据指令;在每次执行取数据指令之前,开启虚拟地址转换功能,并在取数据指定执行完成之后,关闭虚拟地址转换功能;在用户数据中的剩余数据小于预设的数据块大小时,以字节为单位,对剩余数据执行取数据指令。

5、在一种可行的实施方式中,内核程序按照预设的异常处理机制处理出现的数据存取指令异常,包括:在执行数据存取指令前,保存处理寄存器的值,处理寄存器包括机器陷阱向量基地址寄存器、机器异常程序计数器、机器原因寄存器以及机器状态寄存器;将机器陷阱向量基地址寄存器的值设置为数据存取指令异常对应的处理函数的地址;在数据存取指令异常发生后,执行处理函数,以根据处理寄存器的值恢复上下文环境。

6、在一种可行的实施方式中,内核程序对用户数据和认证后数据进行地址合法性检查,包括:获取用户数据和认证后数据分别对应的虚拟地址,并确定用户数据和认证后数据分别对应的的物理地址;判断物理地址是否属于非法地址,非法地址包括内核程序的地址;若是,则触发数据存取指令异常,否则,通过地址合法性检查。

7、在一种可行的实施方式中,超级用户程序对用户数据进行命令合法性检查,包括:根据预设的已授权命令类型构建合法命令集;从用户数据中提取出内核命令对应的命令类型;检测命令类型是否在合法命令集之中;若是,则通过命令合法性检查,否则,丢弃用户数据。

8、在一种可行的实施方式中,内核程序对响应数据进行安全认证,包括:使用预设的安全认证密钥和预设的加密算法,计算响应数据的哈希值,得到安全认证数据;将安全认证数据插入响应数据中,得到认证后数据。

9、在一种可行的实施方式中,用户程序对认证后数据进行安全验证,包括:从认证后数据中提取出安全认证数据与待验证响应数据;使用预设的安全认证密钥和预设的加密算法,计算待验证响应数据的哈希值,得到安全验证数据;若安全认证数据与安全验证数据相同,则安全验证通过,否则安全验证未通过。

10、在一种可行的实施方式中,用户程序将用户数据发送至超级用户程序,包括:用户程序将用户数据保存至数据文件中,并通过系统调用将数据文件的地址发送至超级用户程序;超级用户程序根据数据文件的地址,取出用户数据。

11、第二方面,本发明还提供了一种跨特权级通信设备,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有能够被至少一个处理器执行的指令,以使至少一个处理器能够执行如上述任一实施方式所述的一种跨特权级通信方法。

12、第三方面,本发明还提供了一种非易失性计算机存储介质,存储有计算机可执行指令,计算机可执行指令设置为能够执行如上述任一实施方式所述的一种跨特权级通信方法。

13、本发明提供的一种跨特权级通信方法、设备及存储介质,具有以下有益效果:

14、1.本发明在用户数据传送至超级用户程序时,由超级用户程序进行命令合法性检查,这可以在用户数据发送至内核程序之前过滤非法命令,避免内核程序执行错误命令,从而保证系统的安全。内核程序分多次从命令参数缓冲区中取出用户数据,可以减少每一次取出用户数据所使用的时间,提高黑客在取数据过程中的攻击难度,从而增加取数据过程的安全性。对响应数据进行安全认证与安全验证操作,可以让用户程序获取到响应数据之后具有检验数据正确性的手段,保证用户程序获取到未经篡改的响应数据。在进行内存数据处理的过程中,对内存数据进行地址合法性检查,可以保证在内存数据处理过程中内存地址的安全性。本发明通过在用户程序与内核程序通信过程中的多个环节设置多种安全保障措施,大幅提高了在risc-v架构下,用户程序与内核程序通信的安全性。

15、2.本发明通过计算响应数据的哈希值作为安全认证数据,哈希函数具有高度的敏感性和单向性,即微小的数据变化也会导致哈希值发生显著变化。这种特性使得即使响应数据只被篡改了极少部分的内容,根据修改之后的响应数据计算出的安全验证数据与安全认证数据也无法匹配。这种机制有效地提供了一种数据完整性的校验手段,使得用户程序能够迅速识别出数据在传输过程中是否被非法修改。

16、3.本发明在执行取数据指令之前开启虚拟地址转换功能,能够让内核程序使用虚拟地址转换功能确定取数据指令对应的物理地址。在执行取数据指令之后关闭虚拟地址转换功能,可以避免在取数据指令执行完毕之后,遭受到基于页表的黑客攻击,从而提高取数据过程的安全性。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1