⑴ 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
⑵ 什么是公钥证书
所谓的公钥认证,实际上是使用一对加密字符串,一个称为公钥(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),两者相同则认证成功
⑶ 公钥证书的介绍
公钥证书,通常简称为证书,是一种数字签名的声明,它将公钥的值绑定到持有对应私钥的个人、设备或服务的身份。大多数普通用途的证书基于 X.509v3 证书标准。要了解关于公钥加密的更多信息,请参阅资源:公用密钥结构。
⑷ ca如何产生公钥证书
CA是证书的签发机构,它是PKI的核心。CA是负责签发证书、认证证书、管理已颁发证书的机关。它要制定政策和具体步骤来验证、识别用户身份,并对用户证书进行签名,以确保证书持有者的身份和公钥的拥有权。。
CA 也拥有一个证书(内含公钥)和私钥。网上的公众用户通过验证 CA 的签字从而信任 CA ,任何人都可以得到 CA 的证书(含公钥),用以验证它所签发的证书。
如果用户想得到一份属于自己的证书,他应先向 CA 提出申请。在 CA 判明申请者的身份后,便为他分配一个公钥,并且 CA 将该公钥与申请者的身份信息绑在一起,并为之签字后,便形成证书发给申请者。
如果一个用户想鉴别另一个证书的真伪,他就用 CA 的公钥对那个证书上的签字进行验证,一旦验证通过,该证书就被认为是有效的。
证书
证书实际是由证书签证机关(CA)签发的对用户的公钥的认证。
证书的内容包括:电子签证机关的信息、公钥用户信息、公钥、权威机构的签字和有效期等等。目前,证书的格式和验证方法普遍遵循X.509 国际标准。
加密:
我们将文字转换成不能直接阅读的形式(即密文)的过程称为加密。
解密:
我们将密文转换成能够直接阅读的文字(即明文)的过程称为解密。
如何在电子文档上实现签名的目的呢?我们可以使用数字签名。RSA公钥体制可实现对数字信息的数字签名,方法如下:
信息发送者用其私钥对从所传报文中提取出的特征数据(或称数字指纹)进行RSA算法操作,以保证发信人无法抵赖曾发过该信息(即不可抵赖性),同时也确保信息报文在传递过程中未被篡改(即完整性)。当信息接收者收到报文后,就可以用发送者的公钥对数字签名进行验证。
在数字签名中有重要作用的数字指纹是通过一类特殊的散列函数(HASH函数) 生成的。对这些HASH函数的特殊要求是:
1.接受的输入报文数据没有长度限制;
2.对任何输入报文数据生成固定长度的摘要(数字指纹)输出;
3.从报文能方便地算出摘要;
4.难以对指定的摘要生成一个报文,而由该报文可以算出该指定的摘要;
5.难以生成两个不同的报文具有相同的摘要。
验证:
收方在收到信息后用如下的步骤验证您的签名:
1.使用自己的私钥将信息转为明文;
2.使用发信方的公钥从数字签名部分得到原摘要;
3.收方对您所发送的源信息进行hash运算,也产生一个摘要;
4.收方比较两个摘要,如果两者相同,则可以证明信息签名者的身份。
如果两摘要内容不符,会说明什么原因呢?
可能对摘要进行签名所用的私钥不是签名者的私钥,这就表明信息的签名者不可信;也可能收到的信息根本就不是签名者发送的信息,信息在传输过程中已经遭到破坏或篡改。
数字证书:
答: 数字证书为实现双方安全通信提供了电子认证。在因特网、公司内部网或外部网中,使用数字证书实现身份识别和电子信息加密。数字证书中含有密钥对(公钥和私钥)所有者的识别信息,通过验证识别信息的真伪实现对证书持有者身份的认证。
使用数字证书能做什么?
数字证书在用户公钥后附加了用户信息及CA的签名。公钥是密钥对的一部分,另一部分是私钥。公钥公之于众,谁都可以使用。私钥只有自己知道。由公钥加密的信息只能由与之相对应的私钥解密。为确保只有某个人才能阅读自己的信件,发送者要用收件人的公钥加密信件;收件人便可用自己的私钥解密信件。同样,为证实发件人的身份,发送者要用自己的私钥对信件进行签名;收件人可使用发送者的公钥对签名进行验证,以确认发送者的身份。
在线交易中您可使用数字证书验证对方身份。用数字证书加密信息,可以确保只有接收者才能解密、阅读原文,信息在传递过程中的保密性和完整性。有了数字证书网上安全才得以实现,电子邮件、在线交易和信用卡购物的安全才能得到保证。
认证、数字证书和PKI解决的几个问题?
保密性 - 只有收件人才能阅读信息。
认证性 - 确认信息发送者的身份。
完整性 - 信息在传递过程中不会被篡改。
不可抵赖性 - 发送者不能否认已发送的信息。
⑸ 公钥证书的证书
可以为各种功能颁发证书,例如 Web 用户身份验证、Web 服务器身份验证、安全电子邮件(安全/多用途 Internet 邮件扩展 (S/MIME))、Internet 协议安全 (IPSec)、传输层安全 (TLS)以及和代码签名。证书还可以从一个证书颁发机构(CA) 颁发给另一个证书颁发机构,以便创建证书层次结构。
接收证书的实体是证书的“主题”。证书的颁发者和签名者是证书颁发机构。
通常,证书包含以下信息:
主体的公钥值
主体标识符信息(如名称和电子邮件地址)
有效期(证书的有效时间)
颁发者标识符信息
颁发者的数字签名,用来证实主题的公钥和主题的标识符信息之间绑定关系的有效性
证书只有在指定的期限内才有效;每个证书都包含有效期的起止日期,它们是有效期的界限。一旦到了证书的有效期,到期证书的主题就必须申请一个新的证书。
某些情况下有必要撤消证书中所声明的绑定关系,这时,可以由颁发者吊销该证书。每个颁发者维护一个证书吊销列表,程序可以使用该列表检查任意给定证书的有效性。
证书的主要好处之一是主机不必再为单个主题维护一套密码,这些单个主题进行访问的先决条件的是需要通过身份验证。相反,主机只需在证书颁发者中建立信任。
当主机(如安全 Web 服务器)指派某个颁发者为受信任的根颁发机构时,主机实际上是信任该颁发者过去常用来建立所颁发证书的绑定关系的策略。事实上,主机信任颁发者已经验证了证书主体的身份。主机通过将包含颁发者公钥的颁发者自签名证书放到主机的受信任根证书颁发机构的证书存储区,将该颁发者指定为受信任的根颁发机构。中间的或从属的证书颁发机构受到信任的条件是,他们拥有受信任根证书颁发机构的有效证书路径。
有关证书的详细信息,请参阅理解证书。
⑹ 私钥、公钥、证书的区别和关系
私钥是要求你输入个人密码才可访问的,一般网上银行之类可用到。
公钥不要求设专置密码,是已属经默认了的,一般上一些安全性要求不高的网站或共享资源,如局域网。
证书是一种网站加密浏览方式,只有允许了才可访问,一般为安全性较高的网站,如网上银行;可以访止黑客盗取客户资料。
⑺ 公钥证书的证书存储区
在您的计算机上的证书存储区中所看到的证书有四个基本的来源:
该证书包含在 Windows XP 安装程序中并在附带的 Windows XP CD 中。
使用应用程序(例如 Internet 浏览器)来进行 SSL 会话,在此期间,当建立信任之后证书将存储在您的计算机上。
安装软件或者从他人那里接收经过加密或数字签名的电子邮件时,显式地选择以接受证书。
向证书颁发机构请求证书,例如需要用来访问特定的组织资源的证书。
经过一段时间,当您使用 Internet 并连接到将证书用于身份验证和其他目的的服务器时,您的计算机上的证书存储区将不断获得证书项。某些证书可能只有一个目的,例如服务器身份验证或客户端身份验证,同时其他证书可能服务于多个目的。颁发证书的证书颁发机构决定了证书可以服务的目的。
尽管 Internet Explorer 和 Windows 将证书存储在相同的证书存储区,但它们允许不同的证书存储视图。详细信息,请参阅 Internet Explorer 帮助中的查看安全证书和“证书”帮助中的设置证书管理单元的显示选项。要更好地理解证书管理单元显示证书存储区的方式,请参阅证书存储区。
通过使用“证书”管理单元,可以按逻辑存储或按目的来查看证书。如果按目的查看证书,那么在每个定义了证书所针对目的的文件夹中,将列出有多个目的的证书。
⑻ 公钥证书的证书使用
因为证书通常用来为实现安全的信息交换建立身份并创建信任,所以证书颁发机构 (CA) 可以把证书颁发给人员、设备(例如计算机)和计算机上运行的服务(例如 IPSec)。
某些情况下,计算机必须能够在高度信任涉及交易的其他设备、服务或个人的身份的情况下进行信息交换。某些情况下,人们需要在高度信任涉及交易的其他设备、服务或个人的身份的情况下进行信息交换。运行在计算机上的应用程序和服务也频繁地需要确认它们正在访问的信息来自可信任的信息源。
当两个实体(例如设备、个人、应用程序或服务)试图建立身份和信任时,如果两个实体都信任相同的证书颁发机构,就能够在它们之间实现身份和信任的结合。一旦证书主题已呈现由受信任的 CA 所颁发的证书,那么,通过将证书主题的证书存储在它自己的证书存储区中,并且(如果适用)使用包含在证书中的公钥来加密会话密钥以便所有与证书主题随后进行的通讯都是安全的,试图建立信任的实体就可以继续进行信息交换,。
例如,使用 Internet 进行联机银行业务时,知道您的 Web 浏览器正在与银行的 Web 服务器直接和安全地通讯就是很重要的。在发生安全的交易之前,您的 Web 浏览器必须能够签定 Web 服务器的身份。就是说,进行交易之前,Web 服务器必须能够向您的 Web 浏览器证明它的身份。Microsoft Internet Explorer 使用安全套接字层 (SSL) 来加密消息并在 Internet 上安全地传输它们,而大多数其他新式 Web 浏览器和 Web 服务器也使用该技术。
当您使用启用 SSL 的浏览器连接到联机银行的 Web 服务器时,如果该服务器拥有证书颁发机构(例如 Verisign)颁发的服务器证书,那么将发生如下事件:
您使用 Web 浏览器访问银行的安全联机银行登录网页。如果使用的是 Internet Explorer,一个锁形图标将出现在浏览器状态栏的右下角,以表示浏览器连接到的是安全 Web 站点。其他浏览器以其他方式表示安全连接。
银行的 Web 服务器将服务器证书自动地发送到您的 Web 浏览器。
为了验证 Web 服务器的身份,您的 Web 浏览器将检查您计算机中的证书存储区。如果向银行颁发证书的证书颁发机构是可信任的,则交易可以继续,并且将把银行证书存储在您的证书存储区中。
要加密与银行 Web 服务器的所有通讯,您的 Web 浏览器可创建唯一的会话密钥。您的 Web 浏览器用银行 Web 服务器证书来加密该会话密钥,以便只有银行 Web 服务器可以读取您的浏览器所发送的消息。(这些消息中的一部分将包含您的登录名和密码以及其他敏感信息,所以该等级的安全性是必需的。)
建立安全会话,并且在您的 Web 浏览器和银行的 Web 服务器之间以安全方式发送敏感信息。
详细信息,请参阅证书安全性
当您将软件代码从 Internet 下载、从公司 intranet 上安装、或者购买光盘并安装在计算机上时,还可以用证书来确认在这些软件代码的真实性。无签名软件(没有有效的软件发布商证书的软件)可以威胁到计算机和存储在计算机上的信息。
如果用信任的证书颁发机构所颁发的有效证书对软件进行了签名,您就知道软件代码没有被篡改,可以安全安装在计算机上。在软件安装期间,系统会提示您确认是否信任软件制造商(例如,Microsoft Corporation)。您还可以看到其他选项,问您是否始终信任来自特定软件制造商的软件内容。如果您选择信任该制造商的内容,那么他们的证书将存入您的证书存储区,并且它们的其他软件产品就可以在预定义的信任环境下安装到您的计算机。在预定义信任的环境中,您可以安装制造商的软件,而不会被提示是否信任它们,因为您的计算机上的证书已声明您信任该软件的制造商。
与其他证书一样,这些用来确认软件真实性和软件发布商身份的证书可还以用于其他目的。例如,如果把“证书”管理单元设置为按目的查看证书,则“代码签名”文件夹可能包含由 Microsoft Root Authority 颁发给 Microsoft Windows Hardware Compatibility 的证书。这个证书有三个目的:
确保软件来自该软件发布商
保护软件在发布之后不发生改变
提供 Windows 硬件驱动程序确认
⑼ 老师你好,在ssl证书中,cer是公钥证书,key是私钥证书,crt是证书链对吗
一、SSL证书文件
如图所示,就是一些SSL证书文件。上图带有root CA 字样的证书文件就是根证书, 然后带intermediate ca 字样的就是中间证书文件, 最后一个 ssl servercertificate 字样的证书即为证书文件。
了解认识SSL证书文件,才能更好的去安装SSL证书。虽然大部分时候直接安装证书文件,浏览器也会显示安全,但是由于一些浏览器会自动补齐证书链,但是证书链缺失的话,一些手机端或者部分浏览器可能会报不安全的提醒,所以在安装的时候建议安装完整的证书文件,补齐证书链。
二、SSL证书格式
在SSL证书源文件中你会发现有很多格式。不同的web服务器对于证书的格式是有要求的,接下来也带大家了解下不同格式的证书文件。
PEM:- Privacy Enhanced Mail,打开看文本格式,以”—–BEGIN…”开头, “—–END…”结尾,内容是BASE64编码.上述一般证书文件 ,中间证书和根证书,证书文件很多都是pem格式的。Apache和NIgnix服务器偏向于使用这种编码格式.
DER:这种格式也是常见的证书格式,跟pem类似,中间证书和根证书,证书文件很多都是DER的,Java和Windows服务器偏向于使用这种编码格式。
JKS :jks是Java密钥库(KeyStore)比较常见的一种格式。一般可用通过cer 或者pem 格式的证书以及私钥的进行转化为jks格式,有密码保护。所以它是带有私钥的证书文件,一般用户tomcat环境的安装
PFX:pfx格式的证书 也是由cer 或者pem格式的证书文件以及私钥转化而来,所以该证书文件也是带有私钥的证书文件,一般用于iis 环境的证书安装。
⑽ SSL中,公钥,私钥,证书的后缀名都是些啥
1_root_bundle.crt是根证书链(公钥)
2_ domainname.com.key为私钥
其中:证书公钥、私钥文件一般以域名命名;证书后缀名crt和cer