Java安全组成

Java安全领域由4个部分组成:JCA(Java机密体系结构 Java Cryptography Architecture)、JCE(Java 加密扩展包 Java Cryptography Extension)、JSSE(Java 安全套接字扩展包 Java Secure Sockets Extension)、JAAS(Java鉴别与安全服务 Java Authentication and Authenication Serivce)。
1、JCA提供基本的加密框架,如证书、数字签名、消息摘要和密钥对产生器。
2、JCE在JCA的基础上作了扩展,提供了各种加密算法、消息摘要算法和密钥管理等功能。我们已经了解的DES算法、AES算法、RSA算法、DSA算法等就是通过JCE来提供的。有关JCE的实现主要在javax.crypto包(及其子包)中。
3、JSSE提供了基于SSL(安全套接字层 Secure Sockets Layer)的加密功能。在网络的传输过程中,信息会经过多个主机(很有可能其中一台就被窃听),最终传送给接收者,这是不安全的。这种确保网络通信安全的服务就是由JSSE来提供的。
4、JAAS提供了在Java平台上进行用户身份鉴别的功能。如何提供一个符合标准安全机制的登录模块,通过可配置的方式集成至各个系统中呢?这是由JAAS来提供的。
JCA和JCE是Java平台提供的用于安全和加密服务的两组API。它们并不执行任何算法,它们只是连接应用和实际算法实现程序的一组接口。软件开发商可以根据JCE接口(又称安全提供者接口)将各种算法实现后,打包成一个Provider(安全提供者),动态地加载到Java运行环境中。
根据美国出口限制规定,JCA可出口(JCA和SUN的一些默认实现包含在Java发行版中),但JCE对部分国家是限制出口的。因此,要实现一个完整的安全结构,就需要一个或多个第三方厂商提供的JCE产品,称为安全提供者。BouncyCastle JCE就是其中的一个安全提供者。

JCA(Java机密体系结构 Java Cryptography Architecture)

JCA参考链接

JCE(Java 加密扩展包 Java Cryptography Extension)

JSSE(Java 安全套接字扩展包 Java Secure Sockets Extension)

JSSE:使用JDK的以外的扩展包需要修改资源文件并增加相关的内容,这是使用JDK以外的扩展包的方式之一

JAAS(Java鉴别与安全服务 Java Authentication and Authenication Serivce

JDK提供的相关的包,类
Java.security–消息摘要
javax.crypto–安全消息摘要,消息认证码
java.net.sll–安全套接字
第三方提供的Java扩展
Bouncy Castle
两种支持方案:配置,调用。
Commons Codec
Base64,二进制,十进制,字符集编码
Url编码/解码



OSI安全体系介绍

OSI是Open SystemInterconnect的缩写,意为开放式系统互联。国际标准组织(国际标准化组织)制定了OSI模型。这个模型把网络通信的工作分为7层,分别是物理层,数据链路层,网络层,传输层,会话层,表示层和应用层。1至4层被认为是低层,这些层与数据移动密切相关。5至7层是高层,包含应用程序级的数据。每一层负责一项具体的工作,然后把数据传送到下一层。

第一层-物理层

(也即OSI模型中的第一层)在课堂上经常是被忽略的。它看起来似乎很简单。但是,这一层的某些方面有时需要特别留意。物理层实际上就是布线、光纤、网卡和其它用来把两台网络通信设备连接在一起的东西。甚至一个信鸽也可以被认为是一个1层设备。网络故障的排除经常涉及到1层问题。我们不能忘记用五类线在整个一层楼进行连接的传奇故事。由于办公室的椅子经常从电缆线上压过,导致网络连接出现断断续续的情况。遗憾的是,这种故障是很常见的,而且排除这种故障需要耗费很长时间。

第二层-数据链路层

运行以太网等协议。请记住,我们要使这个问题简单一些。第2层中最重要的是你应该理解网桥是什么。交换机可以看成网桥,人们现在都这样称呼它。网桥都在2层工作,仅关注以太网上的MAC地址。如果你在谈论有关MAC地址、交换机或者网卡和驱动程序,你就是在第2层的范畴。集线器属于第1层的领域,因为它们只是电子设备,没有2层的知识。第2层的相关问题在本网络讲座中有自己的一部分,因此现在先不详细讨论这个问题的细节。现在只需要知道第2层把数据帧转换成二进制位供1层处理就可以了。

第三层-网络层

在计算机网络中进行通信的两个计算机之间可能会经过很多个数据链路,也可能还要经过很多通信子网。网络层的任务就是选择合适的网间路由和交换结点,确保数据及时传送。网络层将数据链路层提供的帧组成数据包,包中封装有网络层包头,其中含有逻辑地址信息–源站点和目的站点地址的网络地址。

如果你在谈论一个IP地址,那么你是在处理第3层的问题,这是“数据包”问题,而不是第2层的“帧”。IP是第3层问题的一部分,此外还有一些路由协议和地址解析协议(ARP)。有关路由的一切事情都在第3层处理。地址解析和路由是3层的重要目的。

第四层-传输层

第4层的数据单元也称作数据包(packets)。但是,当你谈论TCP等具体的协议时又有特殊的叫法,TCP的数据单元称为段(segments)而UDP协议的数据单元称为“数据报(datagrams)”。这个层负责获取全部信息,因此,它必须跟踪数据单元碎片、乱序到达的数据包和其它在传输过程中可能发生的危险。理解第4层的另一种方法是,第4层提供端对端的通信管理。像TCP等一些协议非常善于保证通信的可靠性。有些协议并不在乎一些数据包是否丢失,UDP协议就是一个主要例子。

第五层-会话层

这一层也可以称为会晤层或对话层,在会话层及以上的高层次中,数据传送的单位不再另外命名,统称为报文。会话层不参与具体的传输,它提供包括访问验证和会话管理在内的建立和维护应用之间通信的机制。如服务器验证用户登录便是由会话层完成的。

第六层-表示层

这一层主要解决拥护信息的语法表示问题。它将欲交换的数据从适合于某一用户的抽象语法,转换为适合于OSI系统内部使用的传送语法。即提供格式化的表示和转换数据服务。数据的压缩和解压缩,加密和解密等工作都由表示层负责。

第七层-应用层

第7层也称作“应用层”,是专门用于应用程序的。应用层确定进程之间通信的性质以满足用户需要以及提供网络与用户应用软件之间的接口服务如果你的程序需要一种具体格式的数据,你可以发明一些你希望能够把数据发送到目的地的格式,并且创建一个第7层协议。SMTP、DNS和FTP都是7层协议。

学习OSI模型中最重要的事情是它实际代表什么意思。

假如你是一个网络上的操作系统。在1层和2层工作的网卡将通知你什么时候有数据到达。驱动程序处理2层帧的出口,通过它你可以得到一个发亮和闪光的3层数据包(希望是如此)。作为操作系统,你将调用一些常用的应用程序处理3层数据。如果这个数据是从下面发上来的,你知道那是发给你的数据包,或者那是一个广播数据包(除非你同时也是一个路由器,不过,暂时不用担心这个问题)。如果你决定保留这个数据包,你将打开它,并且取出4层数据包。如果它是TCP协议,这个TCP子系统将被调用并打开这个数据包,然后把这个7层数据发送给在目标端口等待的应用程序。这个过程就结束了。

当要对网络上的其它计算机做出回应的时候,每一件事情都以相反的顺序发生。7层应用程序将把数据发送给TCP协议的执行者。然后,TCP协议在这些数据中加入额外的文件头。在这个方向上,数据每前进一步体积都要大一些。TCP协议在IP协议中加入一个合法的TCP字段。然后,IP协议把这个数据包交给以太网。以太网再把这个数据作为一个以太网帧发送给驱动程序。然后,这个数据通过了这个网络。这条线路中的路由器将部分地分解这个数据包以获得3层文件头,以便确定这个数据包应该发送到哪里。如果这个数据包的目的地是本地以太网子网,这个操作系统将代替路由器为计算机进行地址解析,并且把数据直接发送给主机。

OSI安全体系


OSI七层网络模型与TCP/IP四层网络模型关系图:
TCP/IP安全体系
安全服务和安全机制
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190727180400270.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTIwNTE0OA==,size_16,color_FFFFFF,t

八类安全机制如下:

  1. 加密机制:加密机制对应数据保密性服务。加密是提高数据安全性的最简便方法。通过对数据进行加密,有效提高了数据的保密性,能防止数据在传输过程中被窃取。常用的加密算法有对称加密算法(例如DES算法)和非对称加密算法(如RSA算法)。
  2. 数字签名机制:数字签名机制对应认证(鉴别)服务。数字签名是有效的鉴别方法,利用数字签名计数可以实施用户身份认证和消息认证,它具有解决手法双方纠纷的能力,是认证(鉴别)服务最核心的技术。在数字签名技术的基础之上,为了鉴别软件的有效性,有产生了代码签名技术。常用的签名算法有RSA算法和DSA算法等等
  3. 访问控制机制:访问控制机制对应访问控制服务。通过预先设定的规则对用户所访问的数据进行限制。通常情况下,首先是通过用户的用户名和口令进行验证,其次是通过用户角色、用户组等规则进行验证,最后用户才能访问相应的限制资源。一般的应用常使用基于用户角色的访问控制方式。
  4. 数据完整性机制:数据完整性机制对应数据完整性服务。数据完整性的作用是为了避免数据在传输过程中受到干扰,同时防止数据在传输过程中被褚篡改,以提高数据传输完整性。通常可以使用单向加密算法对数据加密,生成唯一验证码,用以校验数据完整性。常用的加密算法有MD5和SHA
  5. 认证机制:认证机制对应认证(鉴别)服务。认证的目的在于验证接收方所接收到的数据是否来源于所期望的发送方,通常可以使用数字签名来进行验证。常用算法有RSA算法和DSA算法等。
  6. 业务流填充机制:也称为传输填充机制。业务流填充机制对应数据保密性服务。业务流填充机制通过在数据传输过程中传输随机数的方式,混淆真实的数据,加大数据破解的难度,提高数据的保密性。
  7. 路由控制机制:路由访问机制对应访问控制服务。路由控制机制为数据发送方选择安全网络通信路径,避免发送方使用不安全路径发送数据,提高数据的安全性。
  8. 公证机制:公证机制对应抗否认性服务。公证机制的作用在于解决收发双方的纠纷问题,确保两方利益不受损害。类似于显示生活中,合同双方签署合同的同时,需要将合同的第三份交由第三方公证机构进行公证。

发布了36 篇原创文章 · 获赞 4 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/weixin_41205148/article/details/97534371