JVM_沙箱安全机制与Java安全模型

沙箱安全机制

什么是沙箱

        沙箱是一个限制程序运行的环境

什么是沙箱机制

        沙箱机制就是将Java代码限定在JVM特定的运行范围中,并严格限制代码对本地系统资源的访问,以此来保证对代码的有效隔离、防止对本地系统造成破坏。不同级别的沙箱对本地系统资源的访问限制不同(CPU、内存、文件系统、网络)

组成沙箱的基本组件

1.字节码校验器

        确保字节码文件(.class文件)遵守Java语言规范,实现Java程序的内存保护

        注:并非所有的字节码文件都会经过字节码校验,例如核心类的字节码文件

2.类加载器

  • 防止恶意代码干涉善意代码
  • 守护了被信任的类库边界
  • 将代码归入不同的受保护域,限制了代码的权限(不同的保护域拥有不同的权限,类拥有所处受保护域的所有权限,一个类只能属于一个受保护域)

类加载器的机制是双亲委派机制

3.存取控制器

        控制核心API对操作系统的存取权限(控制策略可由用户设定)

4.安全管理器

        核心API和操作系统间的主要接口,实现权限控制,优先级高于存取控制器

5.安全API

       Java提供的安全API

Java安全模型

JDK1.0安全模型

        代码分为本地代码和远程代码,本地代码默认可信任,远程代码默认不可信任。受信的本地代码可以访问一切本地资源,非受信的远程代码在早期的Java实现中,安全依赖于沙箱(Sandbox) 机制

        但严格的安全机制给程序的功能扩展带来了阻碍

JDK1.1安全模型

        针对安全机制进行改进,添加了安全策略,可设定代码对本地资源的访问权限

JDK1.2安全模型

        再次改进了安全机制,添加了代码签名。不论本地代码与远程代码,均依安全策略,通过类加载器将类加载到JVM中不同权限的命名空间,实现权限控制

JDK1.6安全模型

        引入了 (Domain) 的概念

        类加载器将所有代码加载到不同的系统域和应用域(统称受保护域)。系统域负责与关键资源进行交互;应用域通过系统域的代理,对需要的资源进行访问。JVM中不同的受保护域 (Protected Domain),对应不同的权限 (Permission)。存在于不同域中的类拥有当前域的所有权限

所有Java程序都可以指定运行的沙箱,都可以定制安全策略

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值