将任意长度的输入转化为定长输出的算法。抗原像性、抗第二原像性、强抗碰撞性。指纹、摘要。
TLS 是一种密码学协议以保证双方会话安全。TLS 是在 TCP 协议之上、HTTP 协议之下–处于表示层。
TLS 主要分为两层,底层的是 TLS 记录协议,主要负责使用对称密码对消息进行加密。上层的是 TLS 握手协议,主要分为握手协议,密码规格变更协议和应用数据协议 4 个部分。
HTTPS 证书是一种文件。其内容遵循 RFC 5280 定义的格式。这些定义以 ASN.1 表示
证书是包含公钥、订阅人信息、证书颁发者数字签名的数字文件,是存储、传递、使用公钥的容器。
对称密钥,又称为共享密钥加密,对称密钥在加密和解密的进程中运用的密钥是相同的,常见的对称加密算法有DES、3DES、AES、RC5、RC6。对称密钥的优点是核算速度快,可是它也有缺点,密钥需求在通讯的两头同享,让互相知道密钥是什么对方才能正确解密,假如一切客户端都同享同一个密钥,那么这个密钥就像万能钥匙相同,能够凭借一个密钥破解一切人的密文了,假如每个客户端与服务端独自保护一个密钥,那么服务端需求办理的密钥将不计其数,这会给服务端带来噩梦。
又称为公开密钥加密。服务端会生成一对密钥,一个私钥保存在服务端,仅自己知道,另一个是公钥,公钥能够自由发布供任何人运用。客户端的明文通过公钥加密后的密文需求用私钥解密。非对称密钥在加密和解密的进程的运用的密钥是不同的密钥,加密和解密是不对称的,所以称之为非对称加密。与对称密钥加密相比,非对称加密无需在客户端和服务端之间同享密钥,只需私钥不发给任何用户,即便公钥在网上被截获,也无法被解密,仅有被盗取的公钥是没有任何用途的。常见的非对称加密有RSA,非对称加解密的进程:
数据在浏览器和服务器之间传输时,有可能在传输进程中被冒充的把内容替换了,那么怎么确保数据是在服务器发送的而不被调包呢,同时怎么确保传输的数据没有被人篡改呢?要处理这两个问题就必须用到数字签名,数字签名就如同日常中的签名相同,一旦在合同书上落下了你的签名,从法律意义上就断定是你自己签的字,这是任何人都没法仿制的,由于这是你专有的手迹,任何人是造不出来的。那么在核算机中的数字签名怎么回事呢?数字签名就是用于验证传输的内容是不是实在服务器发送的数据,发送的数据有没有被篡改过,它就干这两件事,是非对称加密的一种应用场景。不过他是反过来用私钥来加密,通过与之配对的公钥来解密。
BER 描述了如何将每个 ASN.1 类型的值表示或编码为八位八位字节的字符串
ASN.1 的可分辨编码规则,缩写为 DER,是 BER 的一个子集,并给出了一种将任何 ASN.1 值表示为八位字节字符串的方法。DER 适用于需要唯一八位字节字符串编码的应用程序,例如在 ASN.1 值上计算数字签名时的情况。DER 在 X.509 的第 8.7 节中定义。
ASN.1 的主要序列化格式是“可分辨编码规则”(DER)。它们是添加了规范化的“基本编码规则”(BER) 的变体。例如,如果类型包含 SET OF,则必须对成员进行排序以进行 DER 序列化。
以 DER 表示的证书通常会进一步编码为 PEM,它使用 base64 将任意字节编码为字母数字字符(以及“+”和“/”)并添加分隔线(“-----BEGIN CERTIFICATE----- " 和 “-----END CERTIFICATE-----")。PEM 很有用,因为它更容易复制粘贴。
ANSI(美国国家标准协会)是支持美国技术标准发展的主要组织。 ANSI 与行业团体合作,是国际标准化组织 (ISO) 和国际电工委员会 (IEC) 的美国成员。
ANSI 负责监督几个历史悠久的计算机标准的工作,包括美国信息交换标准代码 (ASCII) 和小型计算机系统接口 (SCSI)。
是一种描述抽象类型和值的符号。一种用于定义文件格式或(等效)数据结构的语言。
例如,在 C 中
struct point {
int x, y;
char label[10];
};
在 Go 中
type point struct {
x, y int
label string
}
在 ASN.1 中
Point ::= SEQUENCE {
x INTEGER,
y INTEGER,
label UTF8String
}
ANSI X9.62-2005: Public Key Cryptography for the Financial Services Industry, The Elliptic Curve Digital Signature Standard (ECDSA)
ANSI X9.62-2005:金融服务行业的公钥密码学,椭圆曲线数字签名标准( ECDSA )(未在线提供)。
ANSI X9.62-2005 是由金融服务认可标准委员会 X9为美国国家标准协会开发的。ANSI X9.62 定义了使用椭圆曲线数字签名算法 (ECDSA)生成和验证数字签名的方法。生成和验证数字签名期间使用的域参数的生成规范也包含在 ANSI X9.62 中。ECDSA 是DSA的椭圆曲线模拟。
ANSI X9.63-2011 (R2017) Public Key Cryptography For The Financial Services Industry - Key Agreement And Key Transport Using Elliptic Curve Cryptography
金融服务行业的公钥密码学 - 使用椭圆曲线密码学的密钥协议和密钥传输
X.509是密码学里公钥证书的格式标准。X.509证书已应用在包括TLS/SSL在内的众多网络协议里,同时它也用在很多非在线应用场景里,比如电子签名服务。X.509证书里含有公钥、身份信息(比如网络主机名,组织的名称或个体名称等)和签名信息(可以是证书签发机构CA的签名,也可以是自签名)。
X.509还附带了证书吊销列表和用于从最终对证书进行签名的证书签发机构直到最终可信点为止的证书合法性验证算法。X.509是ITU-T标准化部门基于他们之前的ASN.1定义的一套证书标准。