Java中相关的安全技术

通信技术相关 09/01 阅读 1100 views次 人气 0
摘要:

Java对安全技术提供了相关的API,分别是:Java密码术扩展(Java Cryptography Extension (JCE)),Java安全套接字扩展(Java Secure Sockets Extension (JSSE)),Java认证和授权服务(Java Authentication and Authorization Service (JAAS))。

安全技术概念:

消息摘要 -> 这是一种与消息认证码结合使用以确保消息完整性的技术。

私钥加密 -> 被设计用来确保消息机密性的技术。

公钥加密 -> 允许通信双方不必事先协商秘钥即可共享秘密消息的技术。

数字签名 -> 证明另一方的消息确定来自正确通信方的位模式。

数字证书 -> 通过让第三方认证机构认证消息,向数字签名添加另一级别安全性的技术。

代码签名 -> 由可信的实体将签名嵌入被传递的代码中的概念。

SSL/TLS -> 在客户机和服务器之间建立安全通信通道的协议。传输层安全性(TLS)是安全套接字层(SSL)的替代品。 


什么是消息摘要?

消息摘要.png

消息摘要验证发布文件(数据)的完成性,一致性。

消息摘要2.png

消息摘要不能验证文件的真伪。


私钥加密技术:

私钥加密.png

1、Alice和 Bob 各有一个只有他们两人知道的共享密钥,并且约定使用一种公用密码算法或密码。他们保持密钥的私有性。

2、Alice给Bob发送消息时,她加密原始消息(称为明文)以创建密文,然后将密文发送给Bob。

3、Bob接收了来自Alice的密文并用自己的私钥对它解密,以重新创建原始明文消息。

4、如果窃听者Eve侦听该通信,她仅得到密文,因此消息的机密性得以保持。


公钥加密技术:

公钥加密.png

1、私钥密码术受到一个主要缺点的困扰:

一开始怎样将私钥交给Alice和Bob呢?如果Alice生成了私钥,则必须将它发送给Bob,但私钥是敏感信息,所以应该加密。但是,还没有交换密钥来执行加密。

2、公钥密码术是上世纪 70 年代发明的,它解决在没有事先约定密钥的通信双方之间加密消息的问题。

在公钥密码术中,Alice和Bob不仅有不同的密钥,而且每人有两个密钥。一个是私有的,不应与任何人共享。另一个是公共的,可以与任何人共享。

当Alice想给Bob发送安全消息时,她用Bob的公钥加密消息并将结果发送给Bob。Bob使用他的私钥解密消息。当Bob想给Alice发送安全消息时,他用Alice的公钥加密消息并将结果发送给Alice。Alice使用她的私钥解密消息。Eve可以窃听公钥和已加密的消息,但她不能解密消息,因为她没有任何一个私钥。


数字签名技术:

1、数字签名是确定交换消息的通信方身份的第一个级别。

2、公钥消息交换的缺陷: Bob怎么能够证实该消息确实是来自于Alice呢?

3、Eve可以用她的公钥替代Alice的公钥,然后Bob就会与Eve交换消息,并以为她就是Alice。这被称为中间人(Man-in-the-Middle)攻击。

4、可以通过使用数字签名解决该问题,数字签名是证实消息来自特定通信方的位模式。

5、实现数字签名的方法之一是逆用公钥过程。

1)不是用公钥加密和用私钥解密,而是由发送方用私钥来对消息签名,然后接收方用发送方的公钥来解密消息。因为只有发送方才知道私钥,所以接收方可以确保消息确实是来自接收方。

2)实际上,消息摘要是用私钥签名的位流。因此,如果Alice想发送一条签名的消息给Bob,她就生成该消息的消息摘要,然后用私钥对它签名。她将消息(以明文形式)和签名的消息摘要发送给Bob。Bob用Alice 的公钥解密签名的消息摘要,然后计算明文消息的消息摘要并检查两个摘要是否匹配。如果它们匹配,则 Bob 可以确认消息来自于 Alice。

3)数字签名不提供消息加密,所以如果您还需要机密性,则必须将加密技术与签名结合使用。可以将RSA算法用于数字签名和加密。名为 DSA(数字签名算法 (Digital Signature Algorithm))的美国标准可以用于数字签名,但不可以用于加密。


数字证书技术:

1、数字签名方式有一个问题。

2、它证实消息是由特定的发送方发送的,但我们怎么才能知道发送方确实是她所说的那个人呢?

3、如果某人实际上是Amanda,却自称 Alice,并对一条消息进行了签名,那会怎么样呢?

4、我们可以通过使用数字证书来改进安全性,它将一个身份标识连同公钥一起进行封装,并由称为认证中心或CA的第三方进行数字签名。

5、从实际意义上来说,认证中心是验证某个实体的身份并用 CA 私钥对该实体的公钥和身份进行签名的组织。消息接收方可以获取发送方的数字证书并用CA的公钥验证(或解密)该证书。这可以证实证书是否有效,并允许接收方抽取发送方的公钥来验证其签名或向他发送加密的消息。


认证机构CA:

CA.png

1、认证机构CA(Certificate Authority),在业界通常把它称为认证中心。

2、它是一种具有权威性、可信任性和公正性的第三方机构。

3、认证机构CA的建设要根据国家市场准入政策由国家主管部门批准,具有权威性。

4、CA机构本身的建设应具备条件、采用的密码算法及技术保障是高度安全的,具有可信任性。 

5、CA是不参与交易双方利益的第三方机构,具有公正性。CA认证机构在《电子签名法》中被称做“电子认证服务提供者”。

6、数字证书简称证书,由认证机构服务者签发,它是数字签名的技术基础保障。 

7、符合X.509标准,是网上实体身份的证明,证明某一实体的身份以及其公钥的合法性及该实体与公钥二者之间的匹配关系。

8、证书是公钥的载体,证书上的公钥惟一与实体身份相绑定。


SSL/TLS技术:

SSL/TLS安全系列协议工作原理:http://www.what21.com/a/it_2_1468924728314.html

1、当使用 SSL/TLS(通常使用 https://URL)向站点进行请求时,从服务器向客户机发送一个证书。客户机使用已安装的公共CA证书通过这个证书验证服务器的身份,然后检查IP名称(机器名)与客户机连接的机器是否匹配。

2、客户机生成一些可以用来生成对话的私钥(称为会话密钥)的随机信息,然后用服务器的公钥对它加密并将它发送到服务器。服务器用自己的私钥解密消息,然后用该随机信息派生出和客户机一样的私有会话密钥。通常在这个阶段使用RSA公钥算法。

3、然后,客户机和服务器使用私有会话密钥和私钥算法(通常是RC4)进行通信,使用另一个密钥的消息认证码来确保消息的完整性。


评论

该文章不支持评论!

分享到: