实验09 传输安全Word文件下载.docx
- 文档编号:15071500
- 上传时间:2022-10-27
- 格式:DOCX
- 页数:24
- 大小:140.31KB
实验09 传输安全Word文件下载.docx
《实验09 传输安全Word文件下载.docx》由会员分享,可在线阅读,更多相关《实验09 传输安全Word文件下载.docx(24页珍藏版)》请在冰豆网上搜索。
图6-2置换加密算法
更安全的加密算法,对称加密和公钥加密,例如,对称加/解密算法的代表DES和公钥加/解密算法的代表RAS等。
2.Java中相关的内容
Java中体系结构提供了三类主要的安全解决方案分别是:
●Java认证和授权服务(JavaAuthenticationandAuthorizationService,JAAS),提供了灵活和可伸缩的机制来保证客户端或服务器端的Java程序。
JAAS已经整合进了Java2SDK1.4,作为标准的用户认证与授权模型。
●Java安全套接字扩展(JavaSecureSocketExtension,JSSE),JSSE是基于安全算法和握手机制之上的合成体。
SSL(SecureSocketsLayer)是JSSE中的重要的部分。
SSL是用的最广泛的实现网络的加密协议。
SSL用一个密码处理来提供网络安全通信。
SSL是基于标准的TCP/IPsocket协议的安全增加用于网络通信,所以SSL是位于传输层和应用程序层之间。
最普通的使用SSL的是HTTP(HypertextTransferProtocol),用于网络页面。
●Java加密扩展(JavaCryptographyExtension,JCE),它们提供用于加密、密钥生成和协商以及MessageAuthenticationCode(MAC)算法的框架和实现。
它提供对对称、不对称、块和流密码的加密支持,它还支持安全流和密封的对象。
Java加密扩展包JCE提供的是基于密钥的加密,它通过javax.crypto.Cipher类来实现数据加密合解密,加密解密的对象可以使程序中的数组对象,也可以是通过Java流接口读出或者写入的数据。
使用Cipher类加密可以选择多种加密算法、加密模式和填补机制。
加密算法JCE中提供了DES、多重DES、PBEWithMD5AndDES、RSA和Blowfish等多种加/解密算法。
Java中为安全框架提供类和接口,包含在类库包java.security和子类中,该API设计用于帮助开发人员在程序中同时使用低级和高级安全功能,该类说明如图6-3所示。
图6-3java.security类说明
该类中有一个重要的方法doFinal()用于执行加密和解密操作:
●Byte[]doFinal()结束多部分加密或解密操作,返回字节数组;
●Byte[]doFinal(byte[]
input)按单部分操作加密或解密数据,或者结束一个多部分操作,返回字节数组。
3.数字签名
在通信安全中存在两种方法:
数据加密,保证数据的机密性,防止窃听;
数据签名,保证数据的认证和完整性,防止伪装、修改、反拒认。
数字签名(DigitalSignature)就是附加在数据单元上的一些数据,或是对数据单元所作的密码变换。
这种数据或变换允许数据单元的接收者用以确认数据单元的来源和数据单元的完整性并保护数据,防止被人(例如接收者)进行伪造。
其主要的功能是:
保证信息传输的完整性、发送者的身份认证、防止交易中的抵赖发生。
数字签名技术是不对称加密算法的典型应用,典型的算法是RSA和DSA。
数字签名是个加密的过程,数字签名验证是个解密的过程。
数字签名技术是将摘要信息用发送者的私钥加密,与原文一起传送给接收者。
接收者只有用发送的公钥才能解密被加密的摘要信息,然后用HASH函数对收到的原文产生一个摘要信息,与解密的摘要信息对比。
如果相同,则说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改过,因此数字签名能够验证信息的完整性。
在JDK1.1中提供了DSA(DigitalSigntureAlgorithm)数字签名算法,使用公钥系统提供的数字签名。
位于Java.Security类库包中存在用于产生和使用数字签名的类:
●KeyPairGenerator类:
用于生成公私钥对;
●Signature类:
用于生成签名信息,如图6-4所示。
。
图6-4Signature类说明
4.SSL协议
SSL是位于运输层的加密协议,被广泛地用于WEB上的加密应用,保护网络传输地信息。
SSL实际是增强TCP/IPSocket协议,1994由NetScape开发,现由IETF(TheInternetEngineeringTaskForce)控制。
JSSE(JavaSecuritySocketExtension,Java安全套接字扩展)是Sun为了解决在Internet上的安全通讯而推出的解决方案。
它实现了SSL和TSL(传输层安全)协议。
在JSSE中包含了数据加密,服务器验证,消息完整性和客户端验证等技术。
通过使用JSSE,开发人员可以在客户机和服务器之间通过TCP/IP协议安全地传输数据.
默认的JSSE配置包括以下内容:
●X509Cerificate:
X509认证实体;
●HTTPsProtocol:
安全HTTP协议;
●Provider:
安全服务提供者;
●SSLSocketFactory:
安全套接字客户端工厂类;
●SSLServerSockerFactory:
安全套接字服务端工厂类;
●keyStore:
密钥库;
●keyStoreType:
密钥库类型;
在JAVA的安装目录下的bin目录中,提供了一个密钥和证书管理工具keytool.exe,它被用来管理私钥仓库(keystore)和与之相关的X.509证书链(用以验证与私钥对应的公钥),也可以用来管理其他信任实体。
它使用户能够管理自己的公钥/私钥对及相关证书,用于(通过数字签名)自我认证(用户向别的用户/服务认证自己)或数据完整性以及认证服务。
它还允许用户储存他们的通信对等者的公钥(以证书形式)。
通过执行keytool-genkey参数命令来生成密钥对(公钥和私钥),缺省的密钥对生成算法是“DSA”。
在生成DSA密钥对时,密钥大小的范围必须在512到1024位之间,且必须是64的倍数。
缺省的密钥大小为1024位。
keytool将密钥和证书储存在一个所谓的密钥仓库中。
缺省的密钥仓库实现将密钥仓库保存为一个文件,并且采用用口令来保护私钥。
每个keytool命令都有一个-keystore选项,用于指定keytool管理的密钥仓库的永久密钥仓库文件名称及其位置。
缺省情况下,密钥仓库储存在用户宿主目录(由系统属性的“user.home”决定)中名为.keystore的文件中。
在Solaris系统中“user.home”缺省为用户的宿主目录。
该类库中可能会出现的异常包括:
●SSLException:
SSL实体异常;
●SSLHandshakeException:
SSL握手连接异常;
●SSLKeyException:
SSL密钥实体异常;
●SSLPeerUnverifiedException:
SSL对验证异常;
●SSLProtocolException:
SSL协议异常。
三.类及方法
1.security常用方法
static
int
addProvider(Provider
provider)增加服务提供者
Set
getAlgorithms(String
serviceName)获得安全算法
String
getProperty(String
key)获得安全特性
Provider
getProvider(String
name)获得服务提供者
Provider[]
getProviders()获得所有的提供者
insertProviderAt(Provider
provider,int
position)在指定位置插入服务提供者
void
removeProvider(String
name)删除指定的服务提供者
setProperty(String
key,String
datum)设置安全属性
2.singature常用方法
protected
Signature(String
algorithm)
getAlgorithm()获得签名算法
Signature
getInstance(String
algorithm)获得签名算法实例
algorithm,String
provider)获得指定提供者的签名算法实例
AlgorithmParameters
getParameters()获得签名算法参数
getProvider()获得签名算法提供者
initSign(PrivateKey
privateKey)初始化签名算法
initVerify(PublicKey
publicKey)初始化验证算法
setParameter(AlgorithmParameterSpec
params)设置算法参数
byte[]
sign()执行签名操作
sign(byte[]
outbuf,int
offset,int
len)执行签名操作,返回指定返回的字节数组
update(byte[]
data)使用指定数组修改签名或验证数据
Updatesthedatatobesignedorverified,usingthespecifiedarrayofbytes.
data,int
off,int
len)修改指定数组长度的签名或验证数据
boolean
verify(byte[]
signature)执行验证签名
signature,int
length)验证指定长度数组的数据
4、知识填空
1.JAVA体系结构提供了三类主要的安全API包,分别是(Java扩展加密JCE)、(Java认证和授权服务JAAS)和(Java安全套接字扩展JSSE)。
2.JCA的英文全称是(JavaCryptoArchitecture),中文全称是(Java加密体系结构)。
3.JCE的英文全称是(JavaCryptoExtends),中文全称是(Java加密扩展包)。
JCE中提供了两个类库分别是(java.security)和(javax.crypto)。
4.数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验09 传输安全 实验 09 传输 安全