掌桥专利:专业的专利平台
掌桥专利
首页

一种动态链接程序的安全控制方法

文献发布时间:2023-06-19 09:54:18



技术领域

本发明涉及集成电路及计算机领域,尤其指一种动态链接程序的安全控制方法。

背景技术

信息技术改变了科技历史,处理器芯片的发展也在不断地改变着信息技术。但是,在现有背景技术条件下,处理器芯片的发展却并没有带来软件基础技术的革命性发展。对于整个计算机系统而言,最好的系统是硬件提供高效而安全的硬件基础,而软件着力于用户所需要解决的问题。为此,在现有背景技术条件下,需要获得更多进步的,是软件所必须倚重的硬件平台,即计算机处理器需要为软件提供称心应手的硬件功能。

在软件工程中,尤其是在大型软件工程中,“软件模块化”几乎是现代软件设计无法避免的问题。“软件模块化”必须要解决的两大核心问题包括:“软件模块”的“例化问题”和“软件集成”的“安全问题”。其中,“例化问题”即为“软件模块”的动态链接的问题。而“安全问题”则是由于动态链接后的“软件模块”在系统中将具有主进程的权限而带来外部“软件模块”可能非法访问数据的问题。

在现有背景技术条件下,事实上并不存在硬件能够解决“软件模块化”的“例化问题”和“安全问题”。因此,对于“软件模块化”的具体实现而言,所有一切问题都依赖于软件来解决。如此,复杂而低效率的操作系统底层或者说操作系统Kernel就成为了“例化问题”和“安全问题”的唯一解决方案。理论上,操作系统Kernel解决“例化问题”不存在逻辑上不可能的问题,但存在效率的问题。而理论上,操作系统Kernel解决“安全问题”却存在逻辑上不可能的问题,当然也存在效率的问题。依赖于操作系统Kernel来解决“安全问题”,永远也做不到针对所有软件进程确保安全,因为操作系统Kernel本身就是软件,但它不受任何限制,而理论上动态链接的“软件模块”可以获得操作系统Kernel的权限,即例化成为操作系统Kernel的一部分。事实上,现有背景技术条件下,以操作系统Kernel所实现的“系统安全”,看上去就像一条蛇,用自己的嘴咬了自己的尾巴,但并不能察觉出来。所以,现有背景技术条件下的软件“安全问题”事实上是一个悖论,在这种背景技术条件下,“黑客”永远都会存在。

为此,对于整个计算机系统而言,需要合理的硬件为基础,以确保软件运行的效率,以及确保软件运行的安全。

发明内容

本发明将软件进入计算机运行后,定义为以下几种状态:“进程”、“线程”、“函数”。当软件从程序入口开始运行时,此时软件状态为“进程”。“进程”在运行的过程中可以创建一个或多个“线程”,在逻辑上这些“线程”为并发运行效果,此时软件状态为“线程”。处于“线程”状态下的软件,延续程序入口分支的线程,称之为“主线程”,而其它新建出来的线程统称为“副线程”。“副线程”不能嵌套新建线程,即只有“主线程”能够创建“副线程”而“副线程”不能创建新的线程。每条线程之间拥有独立的数据及代码空间,但它们仍然同属于一个进程的范畴。即对于进程之间的通信而言,所有同属于一个进程范畴的所有线程只能使用同一个“进程号”作为在进程间通信的唯一标识。在每条线程运行的过程中,可以重复使用某一段代码去完成既定但不尽相同的任务,该段被重复使用的代码每次被调用时可以拥有完全独立的代码及数据内存/缓存空间,也可以每次都使用相同的代码及数据内存/缓存空间。软件在执行这些被重复使用的代码时的状态被称之为函数。其中每次被调用,使用相同代码及数据内存/缓存空间的函数称之为“静态函数”,而每次被调用,使用新的代码及数据内存/缓存空间的函数称之为“动态函数”。

显而易见,线程是进程在逻辑上的同步分支状态,而函数属于线程执行当中的内部状态。“静态函数”从理论上看不存在嵌套的必要,但“动态函数”在线程当中的应用则主要是存在多层次的嵌套。本文将这种动态嵌套函数简称为NDF,即Nested DynamicFunction的英文缩写。本发明技术重点在于对线程和NDF的动态链接以及安全控制,以确保当线程或NDF代码来自外部动态链接库时的系统安全。当线程调用NDF时,意味着软件由线程状态转变为函数状态,后文将称之为“NDF状态”。而处于“NDF状态”依然可以继续调用NDF,继续嵌套“NDF状态”。因此,从逻辑上看,当软件处于线程状态时,事实上等效于处于NDF嵌套层级的最顶层一级的特殊函数状态。由于所有“副线程”在被创建的时候也会被分配独立的代码和数据内存/缓存空间,所以从逻辑上看,软件的“线程状态”应该被定义为“进程”中的一个同步分支的顶层“NDF状态”。所以,后文将软件的“线程状态”称之为NDF

本发明技术,实现以下对于软件在内核运行过程中的限制:

1. 只有NDF

2. 只有NDF

3. 处于任何层级的NDF

4. NDF

5. NDF

6. 不同NDF

7. 同属一个“线程”内的任意NDF

8. NDF

9. NDF

本发明技术,在上述限制条件下,由NDF

附图说明

图1是本发明方案所涉及的电路结构框图;

图2是链接过程的逻辑示意图;

图3是例化程序时的例化信息描述的数据结构图;

图4是为记录被例化程序相关信息的数据结构图;

下面将以明确易懂的方式,结合附图说明优先实施方式,对本方案的上述特点、技术特点、优点及其实施方式予以进一步说明。

图1所示,为本发明方案所涉及的一种可实现的处理器基础结构的典型概念图,所代表的是一种可以满足本发明需求的硬件结构,但并不代表本方案需要限制为该种硬件结构;

图1所示,由于本发明方案所涉及硬件在于内核内部,即假定在内核外部的代码和数据均存在其它技术提供安全保障,所以举例实现了一个内核的处理器硬件结构;

图1所示,带箭头实线表示软件所辖代码及数据在处理器内部,包括内核内部的传输路线示意;

图1所示,“处理器内部总线控制器”是处理器集成内核及其它硬件部件的硬件控制器;

图1所示,“系统内存”为处理器内部或外部用于大容量随机存储软件代码、用户数据、等其它形式的数据的失忆性存储部件或设备;

图1所示,“指令共享缓存”为处理器内部用于缓存代码的专用缓存,并表示该缓存排除软件层面的访问权限问题,在物理上可以被处理器内部内核(如果存在多个内核)或其它相关设备访问;

图1所示,“指令内核缓存”为处理器内核内部用于缓存代码的专用缓存,并表示该缓存即便排除软件层面的访问权限问题,在物理上除其所在内核以外,其它内核(如果存在多个内核)或硬件设备均不能对该缓存进行访问;

图1所示,“指令耦合缓存”为处理器内部最后一级用于缓存代码的专用缓存,并表示该缓存以外没有其它专用缓存直接与内核流水线在物理上存在连接;

图1所示,“数据共享缓存”为处理器内部用于缓存数据的专用缓存,并表示该缓存排除软件层面的访问权限问题,在物理上可以被处理器内部内核(如果存在多个内核)或其它相关设备访问;

图1所示,“数据内核缓存”为处理器内核内部用于缓存数据的专用缓存,并表示该缓存即便排除软件层面的访问权限问题,在物理上除其所在内核以外,其它内核(如果存在多个内核)或硬件设备均不能对该缓存进行访问;

图1所示,“数据耦合缓存”为处理器内部最后一级用于缓存数据的专用缓存,并表示该缓存以外没有其它专用缓存直接与内核流水线在物理上存在连接;

图1所示,“内核流水线”为具体执行程序代码的内核硬件模块。

图2所示,为本发明方案所实现的,软件在内核流水线中运行示意图。图中示意了NDF

NDF

NDF

NDF

NDF

NDF

NDF

图2所示,NSP是NDF Service Program的英文缩写,表示“NDF服务程序”。NSP是NDF

在软件运行过程中,NSP完成所有NDF

图2所示,“链接返回”是指NDF

图3所示,为在NDF所辖数据内存或缓存中固定位置的固定长度的一段数据,该段数据简称为NLI,表示“NDF链接信息”,英文NDF Link Information的缩写,后文将NDF

1、线程号,该信息表示当前NDF所隶属线程的线程号。NDF

2、NDF

3、NDF

4、DLF文件名,该信息表示记录PRF

5、NS类型,该信息表示NDF

6、NDF

7、NDF

图4所示,为NSP所维护的在例化NDF时,关于描述NDF所辖内存/缓存信息以及PRF所在位置的检索信息的数据结构,该段数据简称为NII,表示“NDF例化信息”,英文NDFInstance Information的缩写。NSP在将PRF

1、NDF链接符号,该信息表示用于检索NII

2、指令非耦合缓存信息,该信息表示NII

3、数据非耦合缓存信息,该信息表示NII

4、指令耦合缓存信息,该信息表示NII

5、数据耦合缓存信息,该信息表示NII

6、NDF返回地址,该信息表示NII

具体实施方式

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图,并获得其它的实时方式。

为了使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构或流程。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。

实施例1

本发明的一个实施例,本发明技术方案中所涉及NDF

1、在操作系统或者其它父进程的操作下,创建本实施例进程,进程进入内核流水线,进入NDF

2、NDF

3、NDF

4、NSP

实施例2

本发明的一个实施例,在实施例1的基础上,NSP

1、“主线程”中NDF

2、NSP

3、NSP

4、NSP

5、NSP

6、NSP

实施例3

本发明的一个实施例,在实施例1或者实施例2的基础上,完成非NDF

1、NDF

2、NDF

3、NDF

4、NSP为NDF

实施例4

本发明的一个实施例,在实施例1或者实施例2的基础上,以及在实施例3的基础上,完成NDF

1、NDF

2、NSP依据NLI

相关技术
  • 一种动态链接程序的安全控制方法
  • 一种安全认证与授权控制方法、控制系统、程序存储介质
技术分类

06120112344957