关于SSL证书和公钥的问题

baojian88888 2006-09-14 11:02:49
假设A和B通信,B是一个网站

步骤:
1. A--->B: Hello,所支持的算法列表
2. B--->A: 确定算法,B的证书(包含B的公钥)
3. A--->B: 生成一些算法的随机值,并用B的公钥加密

上述步骤应该大致没错吧
我想问的是,在第2步,B把自己的证书交给A,这个证书中的公钥是明文的,还是密文的?
也就是说A是否需要用根证书解密才能拿到B的公钥?
...全文
421 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
baojian88888 2006-09-16
  • 打赏
  • 举报
回复
谢谢各位,我已经找到答案了
证书中的公钥是明文的,签名是对摘要(MD5 or SHA)进行签名
cloudgamer 2006-09-16
  • 打赏
  • 举报
回复
这个不会
DentistryDoctor 2006-09-14
  • 打赏
  • 举报
回复
对于证书,需要验证CA的签名.
lianglp 2006-09-14
  • 打赏
  • 举报
回复
公钥人家看不看到无所谓,因为B那有密钥不被人家看到就OK,他是不对称加密.在交换动态对称密码时是用不对称形式加密,所以是安全的
caferd 2006-09-14
  • 打赏
  • 举报
回复
B把自己的证书交给A,这个证书中的公钥是明文的,还是密文的?
答:密文的,一般采用DES加密后的数据.
流行的做法是,在数据流头部存放的是DES加密后的密钥数据.
跟在其后的数据是实际包体,一般采用 RSA加密,你应该把头部的密钥数据用DES还原成明文,然后代入RSA算法解开包体
lianglp 2006-09-14
  • 打赏
  • 举报
回复
A拿到B的证书后,怎么确认这个证书是不是伪造的?
------------------------------------------
A在建立连接之前,先安装一个B的CA根证书,就可以了。这是A端单向认证
baojian88888 2006-09-14
  • 打赏
  • 举报
回复
感谢楼上的回答,我现在基本确定证书中B的公钥是明文的(通过抓包可以看到)

现在的问题是:
A拿到B的证书后,怎么确认这个证书是不是伪造的?

资料上说是通过根证书,B的证书是经过CA签名的,这个“签名”的具体过程是怎样的?

我的理解是这个所谓“签名”就是指用CA的私钥对证书加密,然后通信时A拿到B的证书后,用根证书中CA的公钥去解密,如果能够解开,就说明证书是真的。那么这样B的证书就应该是加密的呀,为什么我看到的B的公钥是明文的呢,难道签名是部分加密?
证书的体系架构当中,包括了四个基本的组件,分别是密钥与加密算法,证书证书颁发机构,证书申请、续订和吊销的通道,以及使用证书的应用程序 密钥与加密算法,就能够将明文信息,转化成为密文信息,以确保在网络当中传输时信息的安全,它主要分为两种类型,一种是对称加密算法,加密和解密时使用的都是同样的密钥和算法,一般用于加密数据,另外的一种是非对称加密算法,它包括了一对加密密钥,分别是公钥和私钥,如果公钥用于加密明文成为密文,那么私钥将用于解密密文到明文,公钥可以在网络当中进行传输,私钥不在网络当中传输 一般来说,如果两台计算机之间要传输数据,首先将由发送方计算机通过对称加密完成数据的加密过程,然后再由接收方计算机通过网络传输公钥给发送方,发送方再使用公钥加密对称加密的密钥,并且与加密的数据一起发送给接收方计算机,接收方计算机再使用私钥解密出对称加密的密钥,再使用密钥解密加密的数据,完成数据安全传输的过程 而反过来,如果接收方使用私钥加密一个文件,再通过网络将加密文件、公钥和明文一起发送给发送方,发送方使用公钥解密了文件,与一起接收的明文对比,如果相同,就能证明文件未进行修改,实现签名的功能 而证书,就是加密密钥和算法的载体,一张证书当中,包括了加密密钥,算法,签名等信息,并且对于证书申请、颁发、续订和吊销的整个生命周期,还包括了很多其它的一些属性,应用程序可以通过读取证书的这些信息,完成数据的加密解密,签名和身份验证等不同的应用场景 而证书颁发机构,将负责的证书的整个生命周期管理,证书颁发机构是一个层次化的体系结构,根证书颁发机构将只负责子证书颁发机构的证书颁发和吊销管理,子证书颁发机构将负责应用程序证书的申请请求和管理,根证书颁发机构可以放置在一个隔离的环境当中,进一步增强整个证书链的安全,而子证书颁发机构可以按照需求进行扩展,满足不同规模的应用要求 在我们的课程当中,将按照此最佳实践,完成证书服务当中,不同组件的安装和配置

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧