首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

写给开发人员实用密码学 - 数字证书

在数字签名部分,我们讲到数字签名可以起到“防抵赖”作用。然而,在开放互联网环境,通信双方通常是互不相识,数字签名并不能解决身份认证问题。比如在数字签名,私钥签名验证签名。...如果有人冒充淘宝给了你,对方持有假冒对应私钥,这种情况下签名、验签都没问题,但你是在一个假淘宝通信。...因此,李鬼就可以冒充淘宝,用自己私钥做成"数字签名",写信给你,而你则使用进行解密。 在现实生活,我们通常使用身份证或者护照来证明自己身份,而在虚拟网络世界,则需要使用数字证书。...数字证书可以建立与用户之间对应关系。数字证书实际上是一种特殊文件格式,包含用户身份信息、用户CA私钥数字签名。数字证书中只包含,并不包括私钥,可以公开。...在X.509证书中,使用编码方式是Distinguished Encoding Rules(DER),ASN.1DER关系类似于字符集编码关系。

1.1K10

05 X.509 证书格式标准

X.509是# 证书格式标准, 广泛用于TLS/SSL安全通信或者其他需要认证环境。X.509证书可以由# CA颁发,也可以自签名产生。...1 Overview {#1-overview} X.509证书中主要含有、身份信息、签名信息有效性信息等信息。这些信息用于构建一个验证体系,用来保证客户端得到正是它期望。... : 非对称密码证书目的就是为了在互联网上分发。 身份信息 : 对应私钥持有者信息,域名以及用途等。 签名信息 : 对公进行签名信息,提供验证链。...可以是CA签名或者是自签名,不同之处在于CA证书根证书大都内置于操作系统或者浏览器,而自签名证书验证链则需要自己维护(手动导入到操作系统或者再验证流程单独提供自签名根证书)。....pub : PEM格式文件。 .crt : PEM格式# 证书文件,也可能是DER。 .cer : DER格式# 证书文件,也可能是PEM。

2.9K50
您找到你想要的搜索结果了吗?
是的
没有找到

SM 国密算法踩坑指南

SM2 数字签名算法 SM2 签名算法还是比较复杂,这里只截取数字签名生成、验证算法原理。...SM2 签名一般有两种数据格式,国标(GM/T 0009-2012 SM2 密码算法使用规范)规定签名数据格式使用** ASN.1** 格式定义,具体格式如下: 通常使用硬件加密机加签产生数字数字签名将会使用这种格式...,长度固定为 256 位 SM2 加密数据一般有两种数据格式,国标(GM/T 0009-2012 SM2 密码算法使用规范)规定加密数据格式使用 ASN.1格式定义,具体格式如下: 通常使用硬件加密机加签产生加密数据将会使用这种格式...这个过程签名需要使用自身签名证书对应私钥,验签使用对手方签名证书包含。 加密使用对手方加密证书包含,解密需要使用自身加密证书对应私钥。...https://www.gmssl.cn/gmssl/index.jsp 下图选中就是证书中包含 SM2 数字签名问题 SM2 国标规定加签数据格式使用 ASN.1,所以部分硬件厂商加签输出格式就是这种

6.2K21

加密与安全_探索签名算法

概述 在非对称加密使用私钥加密、解密确实是可行,而且有着特定应用场景,即数字签名。 数字签名主要目的是确保消息完整性、真实性不可否认性。..." + valid); // 打印验证结果 } } 使用了JavaSignature类来进行数字签名验证。它生成了RSA私钥,并使用私钥对消息进行签名,然后使用验证签名有效性。...私钥推出:与RSA不同,ECDSA私钥可以推导出对应,这使得密钥管理更加灵活。 高效性能:ECDSA签名验证过程具有较高性能表现,尤其适用于资源受限环境。...BouncyCastle库提供了ECDSA完整实现,可以用于生成密钥对、签名验证操作。利用BouncyCastle,开发者可以轻松地在Java应用程序中使用ECDSA算法进行数字签名。...小结 数字签名是一种基于非对称加密算法技术,用于确保数据完整性、真实性不可否认性。发送方使用私钥对原始数据进行签名,而接收方使用发送方验证签名有效性。

4100

详解国密SM2加密和解密

这对于ECDHE密钥协商ECDSA数字签名这两种用途而言确实是足够。现有的网络库,很少将ECC算法直接用于加密和解密。...但在实现ECC_SM4_SM3这个密码套件,在密钥交换过程,存在客户端将Pre-Master Secret使用 SM2 加密后传给服务器端步骤。所以我们需要实现 SM2 加密和解密。...如何使用 SM2 算法进行加密和解密,可以参考资料是《GMT 0003.4-2012 SM2椭圆曲线密码算法第4部分:加密算法》。...在A3步骤,刚开始看文档没明白 h 值是什么,后来才理解到这就是曲线参数 cofactor,而且这个步骤主要是验证PB有效性,略过也没问题。 在A5步骤,有个KDF函数需要实现。...在文档没有找到说明,但我研究了GmSSL源码,才弄明白要采用ASN.1 DER编码,这样接受方就可以通过DER解码,分别拿到x1、y1、C3、C2参数值。

5.4K40

pem、x509、asn1

X.509 X.509是密码学里证书格式标准。 X.509 证书己应用在包括TLS/SSL在内众多 Intenet协议里.同时它也用在很多非在线应用场景里,比如电子签名服务。...X.509证书里含有、身份信息(比如网络主机名,组织名称或个体名称等)签名信息(可以是证书签发机构CA签名,也可以是自签名)。...另外除了证书本身功能,X.509还附带了证书吊销列表用于从最终对证书进行签名证书签发机构直到最终可信点为止证书合法性验证算法。...X.509 v3 数字证书结构如下: 证书 版本号 序列号 签名算法 颁发者 证书有效期 此日期前无效 此日期后无效 主题 主题信息 算法 主题 颁发者唯一身份信息(可选项) 主题唯一身份信息...另外v2在Internet也没有多大范围使用。 v3引入了扩展。CA使用扩展来发布一份特定使用目的证书(比如说仅用于代码签名) 所有的版本,同一个CA颁发证书序列号都必须是唯一

93620

CA证书介绍与格式转换

更多加密标准 X.509 是密码学里证书格式标准。 X.509是常见通用证书格式。是ITU-T标准化部门基于他们之前ASN.1定义一套证书标准。...术语介绍 密钥对: 在非对称加密技术,有两种密钥,分为私钥用来给数据加密,用加密数据只能使用私钥解密,是密钥对持有者公布给他人。...因此拿自己持有的签名进行解密(密钥对一种密钥加密数据必定能使用另一种密钥解密。)...一般用来加密验证签名,私钥用来签名和解密。 加密(加解密): 加密,私钥解密;加密目的是保证信息保密传输,使只有具备资格一方才能解密。...认证(加验签): 私钥数字签名验证签名;加签目的是让收到消息一方确认该消息是由特定方发送

4.2K10

虾说区块链-48-《精通比特币》笔记三

解锁脚本锁定脚本匹配:在交易,执行组合验证脚本后bool值为true,说明hash值私钥匹配。...数字签名工作模式:数字签名本质上是一种数学方案:一部分使用私钥在交易创建时创建签名,另一部分允许任何人来验证签名算法、、给定消息。...签名序列化:DER:序列化格式包含9个元素:DER序列开始、序列长度、一个整数值、整数长度、R值、接下来一个整数、整数长度、S值、后缀值。...签名验证验证一个签名必须要有签名R,S值、序列化交易、。理解为:只有生成改私钥所有者,才允许在交易上产生该签名。...k临时私钥、R临时x坐标、dA签名私钥、m交易数据、p椭圆曲线顺序。验证签名生成函数倒数,使用R\S值来计算一个P:P=s-1*Hash(m)G+s-1*R*Qa。

96380

什么是X.509证书?X.509证书工作原理及应用?

X.509是基础设施(PKI)标准格式。X.509证书就是基于国际电信联盟(ITU)制定X.509标准数字证书。X.509证书主要用于识别互联网通信计算机网络身份,保护数据传输安全。...私钥能够用于加密和解密信息,验证发送者身份确保消息本身安全性。基于X.509PKI最常见用例是使用SSL证书让网站与用户之间实现HTTPS安全浏览。...利用ASN,X.509证书格式可以使用私钥来加密和解密信息。 一、PKI基础——加密算法 是由一串随机数组成,可用于加密信息。只有预期接收者使用关联私钥才能解密、读取信息。...六、PKI证书编码 那么证书内容是如何编码并存储在文件?这个问题在X.509标准还没有被界定下来。...如果没有受信任CA,发件人就不知道他们实际上使用到底是与收件人私钥相关联正确,还是与意图拦截敏感信息恶意行为者相关联

3.1K40

netty系列之:对聊天进行加密

而PKCS是美国RSA公司加密标准,包括了证书申请、证书更新、证书作废表发布、扩展证书内容以及数字签名、数字信封格式等方面的一系列相关协议。...PKCS#7 是消息请求语法,常用于数字签名与加密,PKCS#12是个人消息交换与打包语法主要用来生成私钥。PKCS#10是证书请求语法。...并且在windows系统,CER文件会被MS cryptoAPI命令识别,可以直接显示导入/或查看证书内容对话框。 KEY文件,主要用来保存PKCS#8标准私钥。...看这个类名字就是知道它是一个自签名证书类,并且会自动将证书文件私钥文件生成在系统temp文件夹,所以这个类在生产环境是不推荐使用。...当然,CA服务器也不是必须,客户端校验目的是查看证书中发送方是不是一致,那么对于不能联网环境,或者自签名环境,我们只需要在客户端校验证书中指纹是否一致即可。

98600

基于NettyIM聊天加密技术学习:一文理清常见加密概念、术语等

加了数字签名称为证书,一般简称证书。有了证书来认证,可以有效防御中间人攻击,随之带来了一系列非技术性工作。例如:谁来发证书?如何发证书?不同机构证书怎么互认?...而PKCS是美国RSA公司加密标准,包括了证书申请、证书更新、证书作废表发布、扩展证书内容以及数字签名、数字信封格式等方面的一系列相关协议。它定义了一系列从PKCS#1到PKCS#15标准。...OpenSSL实现了ASN.1证书密钥相关标准,提供了对证书、、私钥、证书请求以及CRL等数据对象DER、PEMBASE64编解码功能。...看这个类名字就是知道它是一个自签名证书类,并且会自动将证书文件私钥文件生成在系统temp文件夹,所以这个类在生产环境是不推荐使用。...当然:CA服务器也不是必须,客户端校验目的是查看证书中发送方是不是一致,那么对于不能联网环境,或者自签名环境,我们只需要在客户端校验证书中指纹是否一致即可。

97120

BIP66严格DER签名(Strict DER signatures)

综述: 该提案定义了比特币交易合法性规则变化,用来限制签名字段必须为严格DER编码。 动机: 当前比特币签名验证实现依赖于OpenSSL,这意味着OpenSSL隐式定义了比特币区块验证规则。...在/私钥对组,所有执行ECDSA验证操作,将从栈顶向后迭代。对于每个签名,如果没有通过下面IsValidSignatureEncoding()方法检查,则整个脚本执行立即失败。...如果签名时有效DER编码,但是没有通过ECDSA验证,操作继续像以前一样执行,操作码执行停止并向栈顶push false(但是不会立即使脚本失败),在一些案例,可能跳过一些签名(不使这些签名调用IsValidSignatureEncoding...(sig[lenR + 7] & 0x80)) return false; return true; } 示例 符号:p1 p2是有效,序列化后。...s1 s2是对应于p1与 p2有效签名。s1'与s2'是非DER编码,但是使用相同有效签名。F是所有无效DER兼容签名(包含0,这个空字符串)。F'是无效且非DER兼容签名

32120

密码学系列之:在线证书状态协议OCSP详解

它是为了替换CRL而出现。 本文将会详细介绍OCSP实现优点。 PKICRL 我们知道在PKI架构,CA证书是非常重要组件,客户端通过CA证书来验证服务可靠性。...所有的CRL都有过期时间,在这个过期时间之内,客户端可以根据CRL签名,去CA验证CRL有效性,从而防止CRL伪造。 CRL缺点 那么CRL有什么缺点呢?...如果发现不在,那么意味着A仍然是有效,OCSP responder将会发送一个签名OCSP response给B。...B通过使用CA服务器验证OCSP response有效性,从而确认A仍然有效 。 最后B使用AA进行通讯。....1是一个接口描述语言,通过ASN.1,我们可以很清晰描述数据格式信息。

3.4K21

c#与jsrsa加密互通

网络管理系统管理信息库(MIB)、应用程序数据结构、协议数据单元(PDU)都是用ASN.1定义。...格式 二进制格式 pem格式der格式数据用base64编码后,然后再在头尾加上一段“-----”开始标记 证书类型 X.509证书 X.509只包含,没有私钥,这种证书一般公开发布,可用于放在客服端使用...,用于加密、验签 PKCS#12证书 因为X.509证书只包含,但有些时候我们需要把私钥合并成一个证书,放在服务端使用,用于解密、签名。...因为一个X.509证书包含了、持有人信息、签名。为了验证其真实性,你需要签证其签名,而验证签名则需要签发CA机构证书。...同样原理,当你拿到CA机构证书后,你也需要验证该CA机构真实性,而验证该CA机构证书,你需要该CA上级机构CA证书...以此类推,你需要一直验证到根证书为止。

38920

GoLang:你真的了解 HTTPS 吗?

所以,数字证书同时包含了通信一端身份信息信息。 但是数字证书会在网络传输(由被要求验证身份一端通过网络传给另一端),这就意味着证书也可能会被窃取篡改。...X.509 证书里含有、身份信息(比如网络主机名,组织名称或个体名称等)签名信息(可以是证书签发机构 CA 签名,也可以是自签名)。...X.509 是 ITU-T 标准化部门基于他们之前 ASN.1 定义一套证书标准。 证书编码格式 X.509 标准证书文件具有不同编码格式:PEM DER。...-inform der -text -noout DER 格式也可以存储、私钥、证书签名请求等数据。...证书+密钥:可同时存放证书 RSA /.pem、.der、.p12 证书请求:并不是证书,而是证书签名请求。csr ---- IV.

1.2K20

openssl原理与操作

私钥:自己保留,只有通过私钥才能解密加密数据,对于私钥使用可以设置密码。 密钥证书管理是PKI一个重要组成部分,OpenSSL为之提供了丰富功能,支持多种标准。...首先,OpenSSL实现了ASN.1证书密钥相关标准,提供了对证书、、私钥、证书请求以及CRL等数据对象DER、PEMBASE64编解码功能。...证书: 证书就是将我们相关信息写入一个文件,CA用它们私钥对我们相关信息进行签名后,将签名信息也写入这个文件后生成一个文件。...证书格式(是一种标准): x509 这种证书只有,不包含私钥。 pcks#7 这种主要是用于签名或者加密。 pcks#12 这种含有私钥,同时也含有,但是有口令保护。...(s)] [-base64] [-hex] num 常用选项有: -base64:以base64编码格式输出; -hex:使用十六进制编码格式; -out FILE:将生成内容保存在指定文件; 5

51230

写给开发人员实用密码学 - 数字签名

使用 MAC 算法,能保证传递消息是经过验证,但不能对消息发送者身份进行验证,原因就在于消息发送方接收方拥有同样密钥,所以双方可以抵赖,否认消息是他发送。...在密码学,一个消息包含特殊指纹(数据),也可以起到现实世界指纹作用。具体做法是,私钥拥有者使用密钥签署一条消息,然后发送给任意接收方,接收方只要拥有私钥对应,就能成功反解签署消息。...需要注意是,虽然使用私钥加密,解密可以达到上述效果,但现有的签名技术采用算法和加解密时使用算法并不相同,这一点在实现算法时需要注意。...签名验证流程也很好理解: image.png 接收者接收到消息后,拆分出消息消息签名值A。 接收者使用对消息进行运算得到摘要值B。...Verification Successful 使用验签。

70730

PKI信息安全知识点详细解答包含HTTPS

签发证书一样,为了防止伪造篡改,CA需要对这个列表进行数字签名使用CRL验证证书有效性。验证CRL签名数字签名是否正确、当前是否处于有效期。 构造被撤销证书证书序列号列表。...了解ASN.1编码规则:BER、DER 基本编码规则(BER):对相同数据可以有多种编码格式,比如长字节型,短字节型,不定长型。...区分编码规则(DER):DER是BER子集,BER相比,它编码格式只有固定一种,比如boolean变量,在BER可以是0-255任意一个,在DER只能是1; 8....⑥ 如果服务器要求客户身份认证,服务器必须检查客户证书签名随机数合法性,具体合法验证过程包括:证书使用日期是否有有效,为客户提供证书CA是否可靠,发行CA能够正确解开客户证书发行CA数字签名...16.密钥不落地原理: ca向浏览器发加密证书私钥时候,私钥不能明文传输,需要用签名证书保护,私钥在km存储时候也不能明文,要用km主密钥保护所以加密机有个接口,把加密机主密钥,保护就是签名证书

1.6K70
领券