- 浏览: 1529026 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (516)
- Java (49)
- Java/Struts 2.0 (25)
- Java/Spring、Spring MVC (11)
- Java/Quartz (3)
- Java/Lucene (6)
- Java/Hibernate (19)
- Java/openJPA (7)
- Java/DWR (7)
- Java/Security、Spring Security/OAuth2 (6)
- Java/Threading (9)
- Java/XML (22)
- java/design pattern (4)
- Android (2)
- JavaScript (46)
- jquery (3)
- DB/MySQL (23)
- DB/Oracle (16)
- PHP (25)
- CSS (20)
- Linux (38)
- C/C++、DLL、Makefile、VC++ (31)
- 正则 (9)
- Eclipse (4)
- 安全、网络等概念 (25)
- 集群 (7)
- 网页 (5)
- 视频\音频 (1)
- HTML (6)
- 计算机数学/算法 (3)
- Virtualbox (1)
- LDAP (2)
- 数据挖掘 (6)
- 工具破解 (1)
- 其他 (13)
- Mail (1)
- 药材 (3)
- 游戏 (2)
- hadoop (13)
- 压力测试 (3)
- 设计模式 (3)
- java/Swing (2)
- 缓存/Memcache (0)
- 缓存/Redis (1)
- OSGI (2)
- OSGI/Gemini (0)
- 文档写作 (0)
- java/Servlet (3)
- MQ/RabbitMQ (2)
- MQ/RocketMQ (0)
- MQ/Kafka (1)
- maven (0)
- SYS/linux (1)
- cache/redis (1)
- DB/Mongodb (2)
- nginx (1)
- postman (1)
- 操作系统/ubuntu (1)
- golang (1)
- dubbo (1)
- 技术管理岗位 (0)
- mybatis-plus (0)
最新评论
-
pgx89112:
大神,请赐我一份这个示例的项目代码吧,万分感谢,1530259 ...
spring的rabbitmq配置 -
string2020:
不使用增强器 怎么弄?
OpenJPA的增强器 -
孟江波:
学习了,楼主,能否提供一份源代码啊,学习一下,十分感谢!!!4 ...
spring的rabbitmq配置 -
eachgray:
...
spring-data-redis配置事务 -
qljoeli:
学习了,楼主,能否提供一份源代码啊,学习一下,十分感谢!!!1 ...
spring的rabbitmq配置
http://pepa.iteye.com/blog/250991
加密和认证
首先我们需要区分加密和认证这两个基本概念。
加密是将数据资料加密,使得非法用户即使取得加密过的资料,也无法获取正确的资料内容,所以数据加密可以保护数据,防止监听攻击。其重点在于数据的安全
性。身份认证是用来判断某个身份的真实性,确认身份后,系统才可以依不同的身份给予不同的权限。其重点在于用户的真实性。两者的侧重点是不同的。
公钥和私钥
公钥和私钥就是俗称的不对称加密方式,是从以前的对称加密(使用用户名与密码)方式的提高。
在现代密码体制中加密和解密是采用不同的密钥(公开密钥),也就是非对称密钥密码系统,每个通信方均需要两个密钥,即公钥和私钥,这两把密钥可以互为加解密。公钥是公开的,不需要保密,而私钥是由个人自己持有,并且必须妥善保管和注意保密。
公钥私钥的原则:
- 一个公钥对应一个私钥。
- 密钥对中,让大家都知道的是公钥,不告诉大家,只有自己知道的,是私钥。
- 如果用其中一个密钥加密数据,则只有对应的那个密钥才可以解密。
- 如果用其中一个密钥可以进行解密数据,则该数据必然是对应的那个密钥进行的加密。
用电子邮件的方式说明一下原理。
使用公钥与私钥的目的就是实现安全的电子邮件,必须实现如下目的:
1. 我发送给你的内容必须加密,在邮件的传输过程中不能被别人看到。
2. 必须保证是我发送的邮件,不是别人冒充我的。
要达到这样的目标必须发送邮件的两人都有公钥和私钥。
公钥,就是给大家用的,你可以通过电子邮件发布,可以通过网站让别人下载,公钥其实是用来加密/验章用的。私钥,就是自己的,必须非常小心保存,最好加上
密码,私钥是用来解密/签章,首先就Key的所有权来说,私钥只有个人拥有。公钥与私钥的作用是:用公钥加密的内容只能用私钥解密,用私钥加密的内容只能
用公钥解密。
比如说,我要给你发送一个加密的邮件。首先,我必须拥有你的公钥,你也必须拥有我的公钥。
首先,我用你的公钥给这个邮件加密,这样就保证这个邮件不被别人看到,而且保证这个邮件在传送过程中没有被修改。你收到邮件后,用你的私钥就可以解密,就能看到内容。
其次我用我的私钥给这个邮件加密,发送到你手里后,你可以用我的公钥解密。因为私钥只有我手里有,这样就保证了这个邮件是我发送的。
非对称密钥密码的主要应用就是公钥加密和公钥认证,而公钥加密的过程和公钥认证的过程是不一样的,下面我就详细讲解一下两者的区别。
基于公开密钥的加密过程
比如有两个用户Alice和Bob,Alice想把一段明文通过双钥加密的技术发送给Bob,Bob有一对公钥和私钥,那么加密解密的过程如下:
- Bob将他的公开密钥传送给Alice。
- Alice用Bob的公开密钥加密她的消息,然后传送给Bob。
- Bob用他的私人密钥解密Alice的消息。
Alice使用Bob的公钥进行加密,Bob用自己的私钥进行解密。
基于公开密钥的认证过程
身份认证和加密就不同了,主要用户鉴别用户的真伪。这里我们只要能够鉴别一个用户的私钥是正确的,就可以鉴别这个用户的真伪。
还是Alice和Bob这两个用户,Alice想让Bob知道自己是真实的Alice,而不是假冒的,因此Alice只要使用公钥密码学对文件 签名发送给Bob,Bob使用Alice的公钥对文件进行解密,如果可以解密成功,则证明Alice的私钥是正确的,因而就完成了对Alice的身份鉴 别。整个身份认证的过程如下:
- Alice用她的私人密钥对文件加密,从而对文件签名。
- Alice将签名的文件传送给Bob。
- Bob用Alice的公钥解密文件,从而验证签名。
Alice使用自己的私钥加密,Bob用Alice的公钥进行解密。
根证书
根证书是CA认证中心给自己颁 发的证书,是信任链的起始点。安装根证书意味着对这个CA认证中心的信任。
总结
根据非对称密码学的原理,每个证书持有人都有一对公钥和私钥,这两把密钥可以互为加解密。公钥是公开的,不需要保密,而私钥是由证书持人自己持有,并且必须妥善保管和注意保密。
数字证书则是由证书认证机构(CA)对证书申请者真实身份验证之后,用CA的根证书对申请人的一些基本信息以及申请人的公钥进行签名(相当于加盖发证书机 构的公章)后形成的一个数字文件。CA完成签发证书后,会将证书发布在CA的证书库(目录服务器)中,任何人都可以查询和下载,因此数字证书和公钥一样是 公开的。
可以这样说,数字证书就是经过CA认证过的公钥,而私钥一般情况都是由证书持有者在自己本地生成的,由证书持有者自己负责保管。具体使用时,签名操作是发 送方用私钥进行签名,接受方用发送方证书来验证签名;加密操作则是用接受方的证书进行加密,接受方用自己的私钥进行解密。
发表评论
-
客户端用https连接服务器的一点心得
2016-05-11 17:13 541转自:http://dannyyuan.blog.51ct ... -
解决PKIX:unable to find valid certification path to requested target 的问题
2016-05-11 17:11 922转自:http://blog.csdn.net/ ... -
cookie的secure、httponly属性设置
2014-03-04 16:19 17205转载自:http://www.cnblogs ... -
框架注入漏洞
2014-02-27 16:21 73232 详细描述 攻击者有可能注入含有恶 ... -
链接注入漏洞
2014-02-27 16:20 18728详细描述 “链接注入”是修改站点内容的行为,其方式为将外 ... -
XSS跨站脚本攻击在Java开发中防范的方法
2014-02-27 16:14 4218详细描述 跨站脚本攻击(也称为XSS)指利用网站漏洞从用 ... -
XSS跨站脚本攻击在Java开发中防范的方法
2014-02-27 09:48 7800转自:http://hi.baidu.com/hkr_tam ... -
HTTP 1.1状态代码及其含义
2011-10-20 10:16 1481下表显示了常见 ... -
使用X.509数字证书加密解密实务(三)-- 使用RSA证书结合对称加密技术加密长数据
2010-03-03 17:00 2269上一章节讨论了如何 ... -
使用X.509数字证书加密解密实务(二)-- 使用RSA证书加密敏感数据
2010-03-03 16:52 2831源自:http://www.cnblogs.com/chnk ... -
使用X.509数字证书加密解密实务(一)-- 证书的获得和管理
2010-03-03 16:40 3293源自:http://www.cnblogs.com/chnki ... -
X.509 数字证书结构和实例
2010-03-03 16:36 2973源自:http://www.cnblogs.com/chnki ... -
CA基本常识:X.509标准
2010-03-03 16:21 4686原文连接: http://www.cnblogs.com ... -
安全认证相关文档
2010-03-02 15:59 1086PKCS#11 中文手册 -
openssl使用手册
2009-08-04 10:28 7417OpenSSL有两种运行模式 ... -
JA-SIG(CAS)学习笔记1
2009-07-15 01:16 1361实验步骤: STEP 1,搭 ... -
公钥系统_数字签名_数字证书工作原理入门 (转)
2009-02-24 07:27 2147公钥系统 / 数字签名 / 数字证书工作原理入 ... -
CA系统、证书常识
2009-02-05 15:58 14951.什么是CA CA是Certi ... -
密钥库文件格式(Keystore)和证书文件格式(Certificate)
2009-02-05 15:56 3247密钥库文件格式【Keystore】 格式 : ... -
java 项目的安全学习地址
2009-02-01 16:07 1499java 项目的安全学习地址: http://www.ja-s ...
相关推荐
### 公钥私钥加密解密、数字证书与数字签名详解 #### 一、基础知识概述 在探讨公钥私钥加密解密、数字证书以及数字签名之前,我们需要先理解几个核心概念。 **1. 密钥对:** - 在非对称加密技术中,存在两种密钥...
### 公钥私钥加密详解 #### 一、公钥私钥加密原理 **公钥私钥加密**是一种非对称加密技术,它基于一对密钥:公钥和私钥。其中,公钥可以公开分享给任何需要的人,而私钥则由密钥所有者独自保管,不得泄露。这种...
数字证书是公钥加密系统中不可或缺的一部分,它用于身份验证、数据加密和数字签名。常见的数字证书格式有 X.509,它定义了两种证书:公钥证书和属性证书。 X.509 证书格式由以下部分组成: * 证书元数据...
- **数字签名**:私钥可以用于生成数字签名,公钥用于验证签名的合法性,确保数据未被篡改。 - **SSH连接**:在SSH协议中,公钥被放在远程服务器上,允许客户端使用相应的私钥进行安全登录。 **5. 其他OpenSSL命令*...
### 数字签名与数字证书详解 #### 一、数字签名概览 数字签名是一种用于验证电子文档完整性和来源的技术手段,常被应用于电子商务、电子政务以及其他需要确保信息安全传输的领域。数字签名通过加密技术实现,具体...
### 数字证书原理详解 #### 一、基础知识 在深入探讨数字证书之前,我们需要了解一些基本的概念和技术背景,包括公钥密码体制、对称加密算法、非对称加密算法、RSA算法及其应用。 ##### 1.1 公钥密码体制(Public...
1. **数字证书的生成**:鲍勃向CA申请数字证书,CA使用自己的私钥对鲍勃的公钥及个人信息进行加密,生成数字证书。 2. **数字证书的应用**:在发送加密消息时,鲍勃除了附带数字签名外,还会附上数字证书,以便苏珊...
本文将深入探讨Java中的数字证书概念,生成过程,以及相关的文档说明。 一、数字证书概述 数字证书是网络安全的基础,它类似于现实生活中的身份证,通过权威机构(称为证书颁发机构,或CA)进行签名,以证明持有者...
《数字证书格式详解与操作指南》 数字证书在网络安全中扮演着至关重要的角色,它用于确认网络实体的身份,确保信息传输的安全性。本文将深入探讨常见的数字证书格式、它们的区别以及相关的操作方法。 1. 数字证书...
### 个人数字证书与CA认证知识点详解 #### 一、数字证书的概念与作用 - **定义**:数字证书是一种用于在网络环境中验证用户身份的技术手段,它由一系列数据组成,包括用户的个人信息及其对应的数字签名。 - **功能...
【Java安全通信与数字证书详解】 在Java编程中,安全通信是确保数据在传输过程中不被篡改或窃取的关键。数字证书作为一种重要的安全机制,用于验证通信双方的身份,保证信息的真实性。本篇文章将深入探讨Java中如何...
- 私钥不应以明文形式存储,应采用安全方式如证书存储或加密后存储。 - 在传输过程中,公钥也需要保护,以防中间人攻击。 - 加密数据的长度有限制,通常小于RSA密钥长度的一半。 8. **应用场景**: RSA常用于...
**X.509数字证书详解** X.509是一种国际标准,定义了公钥证书的格式,用于在开放的网络环境中验证身份。这个标准由国际电信联盟电信标准部门(ITU-T)的X系列建议制定,编号为X.509。X.509证书是网络安全体系中的...
**X509数字证书详解** X509是一种国际标准,用于定义公钥基础设施(PKI)中数字证书的格式。这个标准由国际电信联盟(ITU)的T组(Telecommunication Standardization Sector)制定,具体是X.509v3版本。X509证书...
公钥和私钥是RSA的核心组成部分,其中公钥用于加密,私钥用于解密。PKCS#8(Public-Key Cryptography Standards #8)是RSA公钥加密标准的一个版本,它定义了私钥的存储格式。然而,C#的.NET框架默认支持XML格式的...
- 服务器端证书:证明服务器身份的数字证书,包含服务器的公钥和身份信息。 - 服务器端私钥:与服务器端证书的公钥配对,用于证明服务器持有证书。 - 客户端证书:证明客户端身份的数字证书,包含客户端的公钥和身份...
### Java数字证书详解 #### 一、加密算法概述 在探讨Java数字证书之前,我们首先需要理解加密算法的基础知识。加密算法是确保网络通信安全的关键技术之一,它通过将原始数据转换成一种不可读的形式来保护信息不被...
**IIS 6.0 服务器数字证书部署详解** 在互联网通信中,为了保障数据的安全传输,服务器证书扮演着至关重要的角色。特别是对于运行在Windows Server 2003上的IIS 6.0(Internet Information Services)应用程序...