00:00
那在双金尾派机制之外呢,我们再来谈另外一种机制,叫做沙箱安全机制,那一提到这个沙箱呢,那叫3BOX是吧?那其实呢,我们也能够联想到,呃,大家作为一个普通的用户,即使呢不是开发人员,其实应该也接触过这样的沙箱的概念,那比如说呢,典型的就我们在运行相关的一些程序的时候,比如我们电脑上大家装着像360安全卫士啊,或者这个电脑管家呀等等,哎,他们呢,也都会有相应的一些这个杀箱机制,包括手机上也是一样,对吧?那大家呢,如果是安装不明来源的一些APPAPP的话呢,这个手机呢,也会提示你,它会把它做一个隔离是吧?诶隔离执行,那这里边这个隔离之行,那实际上就相当于是一个沙箱啊,比如说我们在这里边呢,去搜索一下,叫做这个沙箱。啊,这儿呢,我是用的这个360啊,这个搜索完沙箱之后呢,你看360有个专门的叫隔离沙箱,那如果呢,大家想运行指定的应用程序啊,但是又不确定这个应用程序呢,会不会对本身的这个操作系统进行这个破坏啊,它可能内部呢植入病毒了,对吧?那我们可以呢,就是在这个沙箱环境当中呢,去做一个执行,哎,你可以点击啊运行指定的这个应用程序。
01:12
啊,这个呢,就是沙箱的一个呃,体现对吧,那这个沙箱的话呢,主要的作用呢,就是刚才提到的啊,来保护程序的一个安全。哎,保护我们程序的一个安全,那同时呢,保证我们原生的Java的这个环境呢,是没有问题的。好呃,就是限制一个程序运行的一个环境,对吧,那这就我们说的这叫沙箱安全机制,那沙箱安全制剂呢,在我们Java这个层面呢,就是限定Java代码在GVM的特定的环境当中呢去运行,那尤其限制它对本地资源的一个访问。那主要都涉及到哪些资源呢?这里边提到有CPU,内存、文件、系统、网络等等啊这样的一些资源的访问,不同级别的沙箱呢,对这些资源的访问限制呢,也不太一样,那这里边儿呢,就涉及到了Java呢,在几个不同的版本当中制定的各种不同的这个沙箱的策略啊意思呢,当然是一个递进的关系,对吧?那目前呢,我们主要呢,应用的就是1.6这个版本的一个策略。
02:13
那我们来看一下历史当中出现的相关的一些这个策略。那么在这个1.0的时期啊,那我们说要想访问这个操作系统也好,还是本地资源也好,那这里边儿呢,我们针对的一方面呢,是本地的代码,另一方面呢,就是远程的代码,那对于本地代码对相应资源的访问呢,我们是无条件的这个授权的啊,就是完全的信任的一种状态,那对于远程代码来讲呢,我们是把它呢,诶封装在相应的这个沙箱当中啊,对这个资源呢,相当于是严格的限制它的对本地资源的一个执行啊,一个调用。这呢是在这个JDK1.0这样一个环境环境当中,那么在1.1当中呢,我们对这个远程的这个代码呢,由于呢,你严格限制它对本地资源的一个访问,那这儿呢,在很多场景下呢,是不利于我们相关功能的实现的,怎么办呢,在1.1的这个时期呢,我们就把这个远程的代码呢,做了一个分离,对吧?那对于远程代码受信任的这个远程代码呢,我们可以呢,允许他来来访问这个本地资源。
03:16
啊,对于不受信任的话呢,仍然不具备这个,呃,本地资源的一个访问啊,这呢就是在1.1场景下的一个杀强机制。好,那么在这个1.2的时候呢,我们这个策略呢,就更加的灵活一些啊,就更加灵活一些,这里边呢,我们增加了叫代码签名,呃,涉及到不同的这个叫权限组对吧?那涉及到不同的这个权限组,那不管呢,你是本地代码也好啊,像我们刚才呢,涉及到本地和远程对吧?那这里边儿的话呢,我们不管呢,你是本地代码也好,还是这个远程代码也好啊,都需要按照用户设置的这个安全策略呢去执行。对吧,那我们把这个代码呢,呃,设置了这个,我们把这个程序呢,设了不同的一个权限组,那么相具备就需要具备相应权限的这个代码呢,我们就放到对应的这个组里边,那不同的组呢,这个权限呢,也是不一样的,来限制他们对本地资源的一个访问。
04:10
这个呢是我们这个1.2时期的一个策略啊,这个呢也构成了我们现在使用的安全机制的一个这个整体的一个架构了,就涉及到不同的权限组,那么在JK1.6时期呢,呃,又进一步的进行了一个划分啊,这里呢提到了一个啊,这整个我们把这个呢称为叫域的概念了哈,那上面这个域呢,其实呃还可以理解成呢,叫做权限组。啊权限组,那这个域呢,我们称为呢,叫做啊什么呀,叫应用域是吧?叫应用域,那除了应用之外,应用域之外呢,我们还有一个概念叫做系统域。那何为系统域呢?就是专门来负责与观念资源进行交互的。啊,与关键资源进行交互的,那上面的这个代码,不管是本地的还是远程的,我们仍然呢,划分成不同的权限组,我们也可以称作呢,叫做应用域是吧,不同的应用域,然后呢,呃,借助于这个系统域的这个部分代理来控制呢,对这个呃,这个相应的这些应用域的这个资源的一个权限的一个限制。
05:07
是吧,那现在代码的话呢,在应用于的这个限制下呢,诶发起了对这个系统与资源的一个调用啊,实现对操作系统和本地资源的一个使用。啊,就是相当于是呃,限制呢,我们就更加具有这个层次化啊这样的,这也是我们目前呢,主要使用的一种沙箱安全机制。OK,那应该说呢,这不是一个特别复杂的一个概念啊,大家对于这个杀星安全机制这样的一个迭代呢,来熟悉一下那就可以了。
我来说两句