java安全:从hotjava到netscape以及展望

java安全:从hotjava到netscape以及展望

ID:13246015

大小:154.00 KB

页数:16页

时间:2018-07-21

java安全:从hotjava到netscape以及展望_第1页
java安全:从hotjava到netscape以及展望_第2页
java安全:从hotjava到netscape以及展望_第3页
java安全:从hotjava到netscape以及展望_第4页
java安全:从hotjava到netscape以及展望_第5页
资源描述:

《java安全:从hotjava到netscape以及展望》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Java安全:从HotJava到Netscape以及展望摘要:Javaapplet的出现已经像风暴一样占据了互联网。信息服务器在网页浏览器中内嵌的指出服务器的代码的支持下可以定制自己内容的表达方式。我们检查了java语言本身和以及支持它的HotJava和Netscape浏览器,发现了很多的危及安全性的隐患。这些隐患包括:执行错误,浏览器不同特征之间无意的冲突,Java语言和字节码语义之间的区别,同时还有语言和字节码设计格式自身的问题。从一个更加深层的角度来考虑,这些缺陷是从java语言和浏览器的设计方法学派生出

2、来的,同时,我们讨论了网络应用程序的设计者和这些应用程序的使用者之间潜在的不稳定因素,并且给出了解决这个问题的建议。1.引言因特网的不断发展和受关注的程度导致了国际互联网的爆发,许多的内容发布者抱怨了他们对使用HTML来表达自己意思的不反便。举个例子吧,在对表格的支持普及以前,许多的网页只能使用数字化了的表格的图片。随着新的HTML标签的出现,使用者仍然会要求更多。同时,许多的发布者都希望可以将交互的功能集成起来,就像聊天和动画一样。比起不断扩展新的HTML标签,SUN公司普及了从网页浏览器中间直接下载程序(a

3、pplet)的观点。这样的远程代码产生了很严峻的安全问题;一个网页浏览者不应该收到恶意的边效应的影响。像Java,Safe-Tcl,Phantom以及Telescript这样的语言都被提出过用来作为这样的下载代码,每种语言都有自己独特的过虑恶意程序的方法。Sun的微系统经过了几年的发展以后,java语言在1995年中期正式作为sun公司的HotJava网页浏览器中的一部分发布。其后不久,Netscape公司宣布他们认可了java并且准备将它嵌入公司的市场领头浏览器的2.0版本中间。在两个颇有影响的公司的支持下,

4、java得到了成为网页上可移植的标准。这一切也让java成为了恶意攻击和安全评价的目标。Netscape和HotJava是两种不同的网页浏览器架构的典型例子。Netscape是用一种不安全的语言实现的,然后把运行Javaapplet作为一种附加的特征。HotJava本身就是用Java语言实现的,使用了想过的运行时间系统来同时支持浏览器和applet。这两种架构从安全的角度看都有着个子的优缺点:Netscape会因为执行了不安全的代码而受到影响但是提供了定义很好的Java接口。在Netscape中间,Javaap

5、plet只能定义那些Java子程序明确给出的方法和变量。HotJava,是用安全的语言实现的,但是偶尔会泄漏了太多的自己的实现环境给那些applet。为了安全,这样的系统必须限制applet访问系统资源如系统的文件,CPU,网络,图像的展示,以及浏览器的内部状态量。语言的典型系统应该是安全的——阻止不安全的指针和检查队列的边界。同时,这个系统还要可以进行系统的内存回收以免造成内存泄漏,小心的管理可以实现系统内部和外部互访的系统调用。Anderson在他的报告[2]中间描述了早期为Fortran语言构建一个安全子

6、集的尝试。这项工作失败了,因为实现者没有考虑一个语句的执行结果,那就是goto语句。这个小错误导致了整个工作的失败。这篇文章的剩下的部分遵循了这样的一个结构:第二节讨论了Java语言的更多细节,第三节给出了在HotJava和Netscape中已知的安全漏洞的分类,第四节叙述了这些系统的结构怎样导致了漏洞的存在,第五节讨论了Java灵活安全性的需要,第五节对全文进行总结。2.Java语义学Java和C++很相似。两者都是面向对象的程序设计,有许多共同的关键字和语法元素,可以用来编写使用很长时间的应用程序。Java

7、在一下的方面和C++是不一样的:它只支持单继承(虽然继承减弱了java的图表类型),同时java可以实现同步,它给每一个类和对象都上了锁,并且提供了synchronized关键字这样每一个类都可以像Mesa监控器一样工作。Java的编译会产生一种独立于机器的字节码,字节码可以在网络之间传输然后再被java的运行系统翻译成为本地码。为了支持这种可以被下载的代码,java会区别远程代码和本地代码。被区分的java字节码会被放在不同名字的环境中以避免偶然的或者是恶意的命名冲突。从当地的文件系统下载的字节码可以被所有的

8、applet得到。在文献[15]中提到了“系统命名空间”有两种不同的特性:1)被所有的命名空间公用;2)总是会被最先公用,从而组织下载来的代码覆盖了系统的类。但是我们发现第二种特征是不存在的。Java的运行系统知道怎样只去从本地加载字节码。如果需要从其他地方加载字节码,java运行系统会调用一个子类ClassLoader,这个子类定义了一个可供java运行系统要求java程序提供一个类

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。