1. SSL中,公钥,私钥,证书的后缀名都是些啥
Linux 下的抄工具们通常使用袭 base64 编码的文本格式,相关常用后缀如下:
* 证书:.crt, .pem
* 私钥:.key
* 证书请求:.csr
.cer 好像是二进制的证书。当然你也可以把证书和 key 放到同一个文件里边。这时候扩展名通常叫 .pem。Java 的 keystore 什么的都是二进制的,好像是自有格式。
其实在类 UNIX 系统上,关注文件名后缀的程序并不多的。而证书、密钥都是有明显的标识的,所以相关软件(如 openssl)可以处理,而不管你用的什么扩展名。当然乱用扩展名自己识别不便,桌面环境也不能将扩展名与默认操作、图标关联起来。
如果不知道一个文件是个啥,可以使用 file 命令识别试试。有经验的也可以直接拿文本编辑器打开看看。
这三种模式所用协议和最大数据传输率不同。最大传输速率PS/2 I/O Address 输入/输出地址
2. 私钥、公钥、证书的区别和关系
私钥是要求你输入个人密码才可访问的,一般网上银行之类可用到。
公钥不要求设专置密码,是已属经默认了的,一般上一些安全性要求不高的网站或共享资源,如局域网。
证书是一种网站加密浏览方式,只有允许了才可访问,一般为安全性较高的网站,如网上银行;可以访止黑客盗取客户资料。
3. 公开密钥密码体系的概念
公钥体系结构中的一些基本概念与结构组成。
密钥对在基于公钥体系的安全系统中,密钥是成对生成的,每对密钥由一个公钥和一个私钥组成。在实际应用中,私钥由拥有者自己保存,而公钥则需要公布于众。为了使基于公钥体系的业务(如电子商务等)能够广泛应用,一个基础性关键的问题就是公钥的分发与管理。
公钥本身并没有什么标记,仅从公钥本身不能判别公钥的主人是谁。
在很小的范围内,比如A和B这样的两人小集体,他们之间相互信任,交换公钥,在互联网上通讯,没有什么问题。这个集体再稍大一点,也许彼此信任也不成问题,但从法律角度讲这种信任也是有问题的。如再大一点,信任问题就成了一个大问题。 互联网络的用户群决不是几个人互相信任的小集体,在这个用户群中,从法律角度讲用户彼此之间都不能轻易信任。所以公钥加密体系采取了另一个办法,将公钥和公钥的主人名字联系在一起,再请一个大家都信得过有信誉的公正、权威机构确认,并加上这个权威机构的签名。这就形成了证书。
由于证书上有权威机构的签字,所以大家都认为证书上的内容是可信任的;又由于证书上有主人的名字等身份信息,别人就很容易地知道公钥的主人是谁。 前面提及的权威机构就是电子签证机关,即CA。CA(Certificate Authority)也拥有一个证书(内含公钥),当然,它也有自己的私钥,所以它有签字的能力。网上的公众用户通过验证CA(Certificate Authority)的签字从而信任CA(Certificate Authority),任何人都应该可以得到CA(Certificate Authority)的证书(含公钥),用以验证它所签发的证书。
如果用户想得到一份属于自己的证书,他应先向CA(Certificate Authority)提出申请。在CA(Certificate Authority)判明申请者的身份后,便为他分配一个公钥,并且CA(Certificate Authority)将该公钥与申请者的身份信息绑在一起,并为之签字后,便形成证书发给那个用户(申请者)。
如果一个用户想鉴别另一个证书的真伪,他就用CA的公钥对那个证书上的签字进行验证(如前所述,CA签字实际上是经过CA(Certificate Authority)私钥加密的信息,签字验证的过程还伴随使用CA(Certificate Authority)公钥解密的过程),一旦验证通过,该证书就被认为是有效的。
CA(Certificate Authority)除了签发证书之外,它的另一个重要作用是证书和密钥的管理。
由此可见,证书就是用户在网上的电子个人身份证,同日常生活中使用的个人身份证作用一样。CA(Certificate Authority)相当于网上公安局,专门发放、验证身份证。
4. https(SSL/TLS)数字证书中的公钥参数(Public Key parameters)0500是什么含义
微软详细:https://msdn.microsoft.com/en-us/library/windows/desktop/aa379059(v=vs.85).aspx
参数介绍:https://msdn.microsoft.com/en-us/library/windows/desktop/aa379057(v=vs.85).aspx
...
公钥算法:
算法ObjectId:1.2.840.113549.1.1.1 RSA(RSA_SIGN)
算法参数:
05 00
...
我想帮你分解你正在看的东西。
如果你拿你的base64字符串:
+ / / 3J + skZ6UtW +
然后将其解码为十六进制:
30 81 9F 30 0D 06 09 2A 86 48 86 F7 0D 01 01 01
05 00 03 81 8D 00 30 81 89 02 81 81 00 AA 18 AB
A4 3B 50 DE EF 38 59 8F AF 87 D2 AB 63 4E 45 71
C1 30 A9 BC A7 B8 78 26 74 14 FA AB 8B 47 1B D8
96 5F 5C 9F C3 81 84 85 EA F5 29 C2 62 46 F3 05
50 64 A8 DE 19 C8 C3 38 BE 54 96 CB AE B0 59 DC
0B 35 81 43 B4 4A 35 44 9E B2 64 11 31 21 A4 55
BD 7F DE 3F AC 91 9E 94 B5 6F B9 BB 4F 65 1C DB
23 EA D4 39 D6 CD 52 3E B0 81 91 E7 5B 35 FD 13
A7 41 9B 30 90 F2 47 87 BD 4F 4E 19 67 02 03 01
00 01
所以问题是:这是什么?那实际上是ASN.1编码的DER变体。ASN.1是一个可怕的怪物,但价值实际上是这样的:
30 81 9F ;30=SEQUENCE (0x9F = 159 bytes)
| 30 0D ;30=SEQUENCE (0x0D = 13 bytes)
| | 06 09 ;06=OBJECT_IDENTIFIER (0x09 = 9 bytes)
| | 2A 86 48 86 ;Hex encoding of 1.2.840.113549.1.1
| | F7 0D 01 01 01
| | 05 00 ;05=NULL (0 bytes)
| 03 81 8D 00 ;03=BIT STRING (0x8d = 141 bytes)
| | 30 81 89 ;30=SEQUENCE (0x89 = 137 bytes)
| | | 02 81 81 ;02=INTEGER (0x81 = 129 bytes) the molus
| | | 00 ;leading zero of INTEGER
| | | AA 18 AB A4 3B 50 DE EF 38 59 8F AF 87 D2 AB 63
| | | 4E 45 71 C1 30 A9 BC A7 B8 78 26 74 14 FA AB 8B
| | | 47 1B D8 96 5F 5C 9F C3 81 84 85 EA F5 29 C2 62
| | | 46 F3 05 50 64 A8 DE 19 C8 C3 38 BE 54 96 CB AE
| | | B0 59 DC 0B 35 81 43 B4 4A 35 44 9E B2 64 11 31
| | | 21 A4 55 BD 7F DE 3F AC 91 9E 94 B5 6F B9 BB 4F
| | | 65 1C DB 23 EA D4 39 D6 CD 52 3E B0 81 91 E7 5B
| | | 35 FD 13 A7 41 9B 30 90 F2 47 87 BD 4F 4E 19 67
| | 02 03 ;02=INTEGER (0x03 = 3 bytes) - the exponent
| | | 01 00 01 ;hex for 65537
所以编码在十六进制中有两个重要的数字:
指数:(65537 几乎每个人普遍使用65,537作为主要指数)
模数:00 AA 18 AB A4 3B 50 DE EF 38 59 8F AF 87 D2 AB 63 4E 45 71 C1 30 A9 BC A7 B8 78 26 74 14 FA AB 8B 47 1B D8 96 5F 5C 9F C3 81 84 85 EA F5 29 C2 62 46 F3 05 50 64 A8 DE 19 C8 C3 38 BE 54 96 CB AE B0 59 DC 0B 35 81 43 B4 4A 35 44 9E B2 64 11 31 21 A4 55 BD 7F DE 3F AC 91 9E 94 B5 6F B9 BB 4F 65 1C DB 23 EA D4 39 D6 CD 52 3E B0 81 91 E7 5B 35 FD 13 A7 41 9B 30 90 F2 47 87 BD 4F 4E 19 67
或者,在十进制中,你的模数是:
119,445,732,379,544,598,056,145,200,053,932,732,877,863,846,799,652,384,989,588,303,737,527,328,743,970,559,883,211,146,487,286,317,168,142,202,446,955,508,902,936,035,124,709,397,221,178,664,495,721,428,029,984,726,868,375,359,168,203,283,442,617,134,197,706,515,425,366,188,396,513,684,446,494,070,223,079,865,755,643,116,690,165,578,452,542,158,755,074,958,452,695,530,623,055,205,290,232,290,667,934,914,919
5. 什么是公钥证书
所谓的公钥认证,实际上是使用一对加密字符串,一个称为公钥(public key),任何人都可以看到其内容,用于加密;另一个称为密钥(private key),只有拥有者才能看到,用于解密。通过公钥加密过的密文使用密钥可以轻松解密,但根据公钥来猜测密钥却十分困难。
ssh 的公钥认证就是使用了这一特性。服务器和客户端都各自拥有自己的公钥和密钥。为了说明方便,以下将使用这些符号。
Ac 客户端公钥
Bc 客户端密钥
As 服务器公钥
Bs 服务器密钥
在认证之前,客户端需要通过某种方法将公钥 Ac 登录到服务器上。
认证过程分为两个步骤。
会话密钥(session key)生成
客户端请求连接服务器,服务器将 As 发送给客户端。
服务器生成会话ID(session id),设为 p,发送给客户端。
客户端生成会话密钥(session key),设为 q,并计算 r = p xor q。
客户端将 r 用 As 进行加密,结果发送给服务器。
服务器用 Bs 进行解密,获得 r。
服务器进行 r xor p 的运算,获得 q。
至此服务器和客户端都知道了会话密钥q,以后的传输都将被 q 加密。
认证
服务器生成随机数 x,并用 Ac 加密后生成结果 S(x),发送给客户端
客户端使用 Bc 解密 S(x) 得到 x
客户端计算 q + x 的 md5 值 n(q+x),q为上一步得到的会话密钥
服务器计算 q + x 的 md5 值 m(q+x)
客户端将 n(q+x) 发送给服务器
服务器比较 m(q+x) 和 n(q+x),两者相同则认证成功
6. 数字证书是什么,公钥加密和私钥签名
数字证书就是互联网通讯中标志通讯各方身份信息的一串数字,提供了一种在Internet上验证通信实体身份的方式,数字证书不是数字身份证,而是身份认证机构盖在数字身份证上的一个章或印(或者说加在数字身份证上的一个签名)。它是由权威机构——CA机构,又称为证书授权(Certificate Authority)中心发行的,人们可以在网上用它来识别对方的身份。
非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。 非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公用密钥向其它方公开;得到该公用密钥的乙方使用该密钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。
另一方面,甲方可以使用乙方的公钥对机密信息进行签名后再发送给乙方;乙方再用自己的私匙对数据进行验签。
甲方只能用其专用密钥解密由其公用密钥加密后的任何信息。 非对称加密算法的保密性比较好,它消除了最终用户交换密钥的需要。
非对称密码体制的特点:算法强度复杂、安全性依赖于算法与密钥但是由于其算法复杂,而使得加密解密速度没有对称加密解密的速度快。对称密码体制中只有一种密钥,并且是非公开的,如果要解密就得让对方知道密钥。所以保证其安全性就是保证密钥的安全,而非对称密钥体制有两种密钥,其中一个是公开的,这样就可以不需要像对称密码那样传输对方的密钥了。这样安全性就大了很多。
7. SSL中,公钥,私钥,证书的后缀名都是些啥
1_root_bundle.crt是根证书链(公钥)
2_ domainname.com.key为私钥
其中:证书公钥、私钥文件一般以域名命名;证书后缀名crt和cer
8. 公钥证书的颁发给个人的证书
您可以向商业证书颁发机构(例如 Verisign)购买证书,以便发送经过安全加密或数字签名以证明真实回性的个人电子答邮件。
一旦您购买了证书并且用它来数字签名电子邮件,则邮件收件人就可以确认邮件在传输过程中没有发生改变,并且邮件来自于您,当然,先要假设邮件收件人信任向您颁发证书的证书颁发机构。
如果您加密了电子邮件,则没有人可以在传输过程中阅读邮件,而只有邮件收件人可以解密和阅读邮件。
9. ssl证书的公钥私钥需要设置吗
需要设置的,具体设置方法可以咨询SSL证书提供商。
SSL证书的公钥内密码体制分为三个容部分,即公钥、私钥和加密解密算法,顾名思义,加密是通过加密算法和公钥对明文传输数据进行加密,得到密文,加密过程是需要用到公钥的。
解密是反过来,通过解密算法和私钥对密文进行解密,得到明文。解密过程需要用到解密算法和私钥。所以上文提到由公钥加密的内容,只能由对应的私钥进行解密,如果是公钥加密的内容,不知道私钥那是无法解密的,公钥和私钥保证了数据传输的安全性。
公钥和算法都是公开的,私钥是保密的,是需要自己手动设置的。大家都用公钥进行加密,但是只有私钥的持有者才能解密。在实际的使用中,有需要的人会生成一对公钥和私钥,把公钥发布出去给别人使用,自己保留私钥。
数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件。最简单的证书包含一个公开密钥、名称以及证书授权中心的数字签名。所以ssl证书中肯定包含唯一匹配的公钥和私钥。网站拥有者向CA机构申请ssl证书时,证书请求文件中只包含公钥,不包含私钥。证书私钥由网站保存,证书请求文件提交给CA机构进行认证和签名后对外公开。
10. 公钥证书的证书
可以为各种功能颁发证书,例如 Web 用户身份验证、Web 服务器身份验证、安全电子邮件(安全/多用途 Internet 邮件扩展 (S/MIME))、Internet 协议安全 (IPSec)、传输层安全 (TLS)以及和代码签名。证书还可以从一个证书颁发机构(CA) 颁发给另一个证书颁发机构,以便创建证书层次结构。
接收证书的实体是证书的“主题”。证书的颁发者和签名者是证书颁发机构。
通常,证书包含以下信息:
主体的公钥值
主体标识符信息(如名称和电子邮件地址)
有效期(证书的有效时间)
颁发者标识符信息
颁发者的数字签名,用来证实主题的公钥和主题的标识符信息之间绑定关系的有效性
证书只有在指定的期限内才有效;每个证书都包含有效期的起止日期,它们是有效期的界限。一旦到了证书的有效期,到期证书的主题就必须申请一个新的证书。
某些情况下有必要撤消证书中所声明的绑定关系,这时,可以由颁发者吊销该证书。每个颁发者维护一个证书吊销列表,程序可以使用该列表检查任意给定证书的有效性。
证书的主要好处之一是主机不必再为单个主题维护一套密码,这些单个主题进行访问的先决条件的是需要通过身份验证。相反,主机只需在证书颁发者中建立信任。
当主机(如安全 Web 服务器)指派某个颁发者为受信任的根颁发机构时,主机实际上是信任该颁发者过去常用来建立所颁发证书的绑定关系的策略。事实上,主机信任颁发者已经验证了证书主体的身份。主机通过将包含颁发者公钥的颁发者自签名证书放到主机的受信任根证书颁发机构的证书存储区,将该颁发者指定为受信任的根颁发机构。中间的或从属的证书颁发机构受到信任的条件是,他们拥有受信任根证书颁发机构的有效证书路径。
有关证书的详细信息,请参阅理解证书。