前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JVM系列(四):沙箱安全机制笔记

JVM系列(四):沙箱安全机制笔记

作者头像
IT技术分享社区
发布2022-05-24 15:22:36
1.2K0
发布2022-05-24 15:22:36
举报
文章被收录于专栏:IT技术分享社区

今天主要给大家分享JVM的沙箱安全机制笔记,希望对大家能有所帮助!

1、沙箱机制的概念

Java安全模型的核心就是Java沙箱(sandbox)。

沙箱机制就是将Java代码限定只能在虚JVM虚拟机中特定的运行范围,并且严格限制代码对本地系统资源访问,通过这样的方式来保证对Java代码的有效隔离,防止对本地操作系统造成破坏。

2、沙箱的作用

主要限制系统资源(CPU、内存、文件系统、网络)的访问。

不同级别的沙箱对系统资源访问的限制也有差异。

3、本地代码和远程代码

Java的执行程序分为:本地代码和远程代码。,

本地代码:默认视为可信任的,可以访问一切本地资源。

远程代码:被看作是不受信的。对于授信的本地代码,对于非授信的远程代码在早期的Java实现中,安全依赖于沙箱(Sandbox)机制。

4、沙箱安全机制模型

4.1 JDK1 .0安全模型

JDK1 .0安全模型本地代码可以访问系统资源,远程代码无法访问系统资源,比如用户希望远程代码访问本地系统的文件时候,就无法实现。

4.2 JDK1 .1安全模型

JDK1 .1 安全模型版本中,针对安全机制做了改进,增加了受信任安全策略,允许用户指定代码对本地资源的访问权限

4.3 JDK1 .2安全模型

JDK1 .2安全模型改进了安全机制,增加了代码签名。不论本地代码或是远程代码,统一按照用户的安全策略设定,由类加载器加载到虚拟机中权限不同的运行空间,从而来实现差异化的代码执行权限控制。

4.4 目前最新的安全模型

目前最新的安全模型引入了域 (Domain) 的概念。JVM虚拟机会把所有代码加载到不同的系统域和应用域,系统域部分专门负责与关键资源系统进行交互,而每个应用域部分则通过系统域的部分代理来对各种需要的资源进行精细划分然后可以进行访问。JVM虚拟机中不同的受保护域 (Protected Domain)对应不一样的权限 (Permission)。存在于不同域中的类文件就拥有了它所包含应用域所有可访问资源之和。

5、沙箱安全机制的基本组件

5.1 字节码校验器(bytecode verifier)

确保lava类文件遵循lava语言规范。这样可以帮助Java程序实现内存保护。但并不是所有的类文件都会经过字节码校验,比如核心类。

5.2 类装载器(class loader)

  • 防止恶意代码去干涉善意的代码,比如:双亲委派机制
  • 守护了被信任的类库边界;
  • 将代码归入保护域,确定了代码的权限范围可以进行哪些资源操作

5.3 存取控制器(access controller)

存取控制器可以控制核心API对操作系统的存取权限,用户可以设定控制策略。

5.4 安全管理器(security manager)

安全管理器主要是核心API和操作系统之间的主要接口。比如实现权限控制,比存取控制器优先级高。

5.5 安全软件包(security package) :

java.security下的类和扩展包下的类,允许用户为应用增加所需要安全特性:安全提供者、消息摘要、数字签名keytools、加密、鉴别。

IT技术分享社区

个人博客网站:https://programmerblog.xyz

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-05-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小明互联网技术分享社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、沙箱机制的概念
  • 2、沙箱的作用
  • 3、本地代码和远程代码
  • 4、沙箱安全机制模型
    • 4.1 JDK1 .0安全模型
      • 4.2 JDK1 .1安全模型
        • 4.3 JDK1 .2安全模型
          • 4.4 目前最新的安全模型
          • 5、沙箱安全机制的基本组件
            • 5.1 字节码校验器(bytecode verifier)
              • 5.2 类装载器(class loader)
                • 5.3 存取控制器(access controller)
                  • 5.4 安全管理器(security manager)
                    • 5.5 安全软件包(security package) :
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档