JVM 沙箱安全机制
Java安全的核心就是Java沙箱,沙箱是限制程序运行的环境。沙箱机制将java代码限制在JVM特定的运行环境。,严格限制代码对本地资源的访问,保证了代码的有效隔离,防止对本地系统造成破坏。沙箱主要是限制系统资源的访问。
组成沙箱的基本组件:
-
字节码校验器 :保证了java类文件遵循Java语言规范。并不是所有的类文件都要经过字节码校验,例如核心包下的类
-
类加载器
类加载器在三个方面对沙箱起作用
1)阻止恶意代码干涉善意的代码。
2)守护被信任的类库边界。
3)将代码加入保护域,确定了代码可以进行那些操作。
类加载器使用的是双亲委派机制。
-
存取控制器(access controller):存取控制器可以控制核心API对操作系统的存取权限,而这个控制的策略设定,可以由用户指定。
-
安全管理器(security manager):是核心API和操作系统之间的主要接口。实现权限控制,比存取控制器优先级高。
-
安全软件包
(security package):java.security下的类和扩展包下的类,允许用户为自己的应用增加新的安全特性,包括:
- 安全提供者
- 消息摘要
- 数字签名
- 加密
- 鉴别