密钥:
我理解是公钥+私钥的统称。
密钥对:
公钥(证书)和私钥成对存在。
通信双方各持有自己的私钥和对方的公钥。自己的私钥需密切保护,而公钥是公开给对方
的。在 windows 下,单独存在的公钥一般是后缀为.cer 的文件
A 用自己的私钥对数据加密,发给 B,B 用 A 提供的公钥解密。同理 B 用自己的私钥对数据
加密,发送给 A 后,A 用 B 的公钥解开。
公钥的两个用途:
1。验证对方身份:防止其他人假冒对方发送数据给你。
2。解密。
私钥的两个用途:
1。表明自己身份:除非第三方有你私钥,否则无法假冒你发送数据数据给对方。
2。加密。
jks(java key store):
java 用的存储密钥的容器。可以同时容纳 n 个公钥或私钥,后缀一般是.jks 或者.keystore
或.truststore 等,千奇百怪。
不管什么后缀,它就是一个容器,各个公司或机构叫法不同而已。比如把只包含 "受信任的
公钥"的容器存成.truststore 文件等。
用 jdkin 目录下的 keytool.exe 对其进行查看,导入,导出,删除,修改密码等各种操作。
可以对 jks 容器加密码,输入正确才可以操作此容器中密钥。
还有一个密码的概念与上者不同,是 jks 中存储着的私钥的密码,通常是绝密的。
pfx:
和 jks 功能相同但文件格式不同,pfx 是浏览器用的。
可以用一些工具程序把 pfx 转化成 jks 格式供 java 程序使用(如银行只提供了 pfx,但是我们
想用 h#pclient 模拟浏览器自动访问时)。
据说 IE 导出的 pfx 格式不标准,转化 jks 时往往报错,可以尝试用 Netscape Navigator 导入
再导出,然后再转化。碰到过这样的情况。
常见的几种 h#ps 系统的访问
经 h#ps 协议的数据经过加密传输,防止第三方监听,冒充和篡改。
1.不需要用户做任何操作,比如 h#ps://www.verisign.com/
这是因为此公钥是合法的(公钥是可信任的机构颁发,和实际域名吻合,而且没有到期)。
用 IE 访问时空白处点右键可以查看公钥信息。
2.h#ps 的页面会弹出公钥确认提示
公钥不合法(不是可信任的机构颁发,和实际域名不吻合,已到期),但用户点“是”即表示忽
略危险,继续访问。
3.需要往浏览器倒入一个文件才可访问的
一般是银行在线交易等特别需要安全的场合,站方(银行)需要验证访客身份(如要确认必须
是已注册的网银商户),需要在浏览器中导入含有访客私钥的 pfx 文件。
评论9