沙箱(sandbox)安全机制

suaxi
2020-11-29 / 0 评论 / 78 阅读 / 正在检测是否收录...

Java安全模型的核心——Java沙箱(sandbox),沙箱机制就是将Java代码限定在JVM特定的运行范围中,并且严格限制代码对本地系统资源访问,以此保证对代码的有效隔离,防止对本地系统造成破坏。

沙箱的基本组件:

1、字节码校验器(bytecode verifier):确保Java类文件遵循Java语言规范,帮助Java程序实现内存保护,但并不是所有的类文件都会经过字节码校验,如:核心类。

2、类装载器(class loader):在3个方面对Java沙箱起作用

  • 防止恶意代码干涉正常的代码
  • 守护被信任的类库边界
  • 将代码归入保护域,确定代码可以进行哪些操作

虚拟机为不同的类加载器载入的类提供不同的命名空间,命名空间由一系列唯一的名称组成。

类装载器采用双亲委派机制:

1、从最内层JVM自带类加载器开始加载,外层恶意同名类得不到加载从而无法使用

2、严格通过包来区分访问域(外层恶意的类通过内置代码也无法获得权限访问到内层类)

  • 存取控制器(access controller):控制核心API对操作系统的存取权限,同时控制策略的设定可以由用户指定
  • 安全管理器(security manager):是核心API和操作系统之间的主要接口。实现权限控制,比存取控制器优先级高
  • 安全软件包(security package):java.security下的类和扩展包下的类,允许用户为自己的应用增加新的安全性,包括:

    • 安全提供者
    • 消息摘要
    • 数字签名
    • 加密
    • 鉴别
0

评论 (0)

取消