PKCS #6: Extended- Certificate Syntax Standard (PKCS #6: 扩展证书语法标准)

总结证书扩展和证书分类 自签名证书 签发后的CA证书可以进行扩展,分为私有扩展和标准扩展,私有扩展针对的是自签名证书,即由用户自己签发的证书,而非CA机构签发的,一般浏览器也不会集成有字签名证书的根证书,所以访问这类网站时,浏览器会提示给证书是不安全的,可能是伪造的。当然用户也可以选择信任该证书,然后继续TLS/SSL的握手过程,完成握手后,TLS/SSL仍然提供数据加密等完整性保护。自签名证书通常是内部使用,或者用在... 阅读详情
PKCS #6: 扩展证书语法标准
版本 V1.5


范围:
这个规范描述了一个扩展证书的的语法。一个外部证书由一个X.509公钥证书和一个属性集合组成,由签发者和X.509的公钥证书一起签名。因此,属性和相关的X.509公钥证书可以使用单独的公钥操作验签,并且如果需要,可以从中提取一个普通的X.509证书,例如为了PEM(安全增强电子邮件)。
目的是包含更多的属性来扩展验证过程,而不仅仅是验证给定实体的公钥。PKCS#9给出了非详尽的列表。
对这个规范的初步应用包含在PKCS#7中,但也期望有其它的应用被开发出来。
引用:
PKCS#1
PKCS#7
PKCS#9
RFC1422 PEM相关
X.208 ASN.1相关
X.209 BER相关
X.500 目录概述
X.501 目录模型
X.509 目录认证


定义
基于本文档的目的,使用如下的定义:
AlgorithmIdentifier: 算法标识符,以及与之相关的参数。这个类型在X.509中定义。
Attribute: 包含一个或者多个属性类型值的类型。这个类型在X.501中定义。
ASN.1:抽象语法标识符,在X.208中定义。
BER:基本编码规则,在X.209中定义。
Certificate:一个用数字签名将实体的可辨别名称与公钥绑定起来的类型。这个类型在X.509中定义。这个类型也包含了证书签发者的可辨别名称,一个发行者特定的序列号,发行者签名算法标识符,和一个有效期。附录A给出了更多的信息。
DER:确定编码规则,在X.509中定义。
Name:在X.509目录中唯一的或者可辨别的对象类型。这个类型在X.501中定义。在X.509证书中,名字标识了证书发行者和被证明的公钥实体。
PEM:互联网安全增强电子邮件,定义在RFC 1422及相关的文档中。


符号和缩写
这个规范没有定义符号和缩写。


概览
下一章指定了扩展证书的语法,附录回顾了X.509证书的意义。
这个规范导出了一个类型:ExtendedCertificate。


扩展证书语法
这章给出了扩展证书的语法。
一个扩展证书由3部分组成:“扩展证书信息“,签名算法标识符,“扩展证书信息”的数字签名。扩展证书信息由一个X.509证书(已经由发行者签名),提供实体其它信息的属性的集合。对扩展证书签名的发行者和对X.509证书签名的发行者为同一个。
组成一个扩展证书的流程包括如下几个步骤:
1.证书发行者将一个X.509证书和一些属性的集合链接起来,组成ExtendedCertificateInfo值。
2.证书发行者使用私钥对ExtendedCertificateInfo签名。
3.ExtendedCertificateInfo,签名算法标识符,和签名整理到一起形成以下定义的ExtendedCertificate值。
这章被分为两部分,第一部分描述了扩展证书信息ExtendedCertificateInfo,第二部分描述了顶级类型ExtendedCertificate。


注意
在哪些X.509证书和扩展证书都支持的应用中,建议使用以下的语法:
ExtendedCertificateOrCertificate ::= CHOICE {
certificate Certificate, -- X.509
extendedCertificate [0] IMPLICIT ExtendedCertificate
}
证书编码采用和X.509证书相同的BER编码,并且两种证书可以通过版本区分,因为扩展证书的版本为0。
扩展证书在X.509证书基础上扩展而不是直接替代,有至少四种原因:
1.切换到X.509证书语法是非常容易的。
2.X.509证书可以导出以兼容更多的规范(比如PEM)。
3.X.509和扩展证书可以使用同一个公钥验签,因为它们根本上就是同一个发行者签名的。
4.有一点点的冗余,扩展证书中增加的信息包含了X.509证书中已经包含的属性,比如发行者名字,主题。


ExtendedCertificateInfo
ExtendedCertificateInfo的ASN.1描述如下:
ExtendedCertificateInfo ::= SEQUENCE {
version Version,
certificate Certificate,
attributes Attributes 
}


Version ::= INTEGER
Attributes ::= SET OF Attribute


ExtendedCertificateInfo的属性有如下意义:
version 版本号,为了兼容未来的版本,此规范的版本为0。
certificate 证书,X.509证书。
attributes 属性的集合,这些属性是证书主题的附加信息。此处可能用到的一些属性在PKCS#9中定义。


ExtendedCertificate
ExtendedCertificate的ASN.1描述如下:
ExtendedCertificate ::= SEQUENCE {
extendedCertificateInfo ExtendedCertificateInfo,
signatureAlgorithm SignatureAlgorithmIdentifier,
signature Signature 
}

SignatureAlgorithmIdentifier ::= AlgorithmIdentifier
Signature ::= BIT STRING

ExtendedCertificate属性有如下的意义:
extendedCertificateInfo 扩展证书信息,是需要签名的值。
signatureAlgorithm 标识了扩展证书信息签名用到的签名算法(以及关联的参数)。例如PKCS#1中定义的md2WithRSAEncryption或者md5WithRSAEncryption。
signature 是证书发行者使用私钥对扩展证书信息的的签名结果。


签名过程包含两个步骤:
1.extendedCertificateInfo信息属性的值是DER编码为字节串。
2.步骤1的结果使用证书发行者私钥和特定的签名算法签名,生成特定字节串。


注意
ExtendedCertificate的标识也可以使用X.509定义的宏SIGNED来描述:
ExtendedCertificate ::= SIGNED ExtendedCertificateInfo


附录A. X.509公钥证书
类似X.509的公钥证书确定了特定公钥系统的互信体系。通过对一个证书签名,证书签发机构将实体的名称和实体的公钥等信息绑定到一起。通过验证证书的签名,信任证书颁发机构的用户可以进而相信实体的公钥。
因为证书是公钥体系互操作性最重要的部分,PKCS已经通过了使用X.509证书。这显著的提高了和其它使用X.509证书系列应用的兼容性,比如PEM。
这个附录描述了X.509证书的语法,以作为参考的目的。确切的说,它描述了RFC 1422中描述的语法的修正版本,回写到1988的X.509标准。
一个X.509证书由3部分组成:“证书信息”,签名算法标识符,对证书信息的签名。证书信息又实体的可辨认名称,实体的公钥,证书发行者的可辨识名称,以及一个发行者定义的序号,一个签名算法标识符,和有效期组成。
证书的构建包括如下的步骤:
1.证书发行者组建包含证书信息的CertificateInfo值。
2.使用证书发行者的私钥签名CertificateInfo信息。
3.CertificateInfo值,签名算法标识符,和证书发行者的签名整理到一起成为如下定义的Certificate值。
以下的讨论分成两个部分。第一部分描述了证书信息CertificateInfo,第二部分描述了顶级的Certificate。


CertificateInfo
CertificateInfo的ASN.1结构如下:
CertificateInfo ::= SEQUENCE {
version [0] Version DEFAULT v1988,
serialNumber CertificateSerialNumber,
signature AlgorithmIdentifier,
issuer Name,
validity Validity,
subject Name,
subjectPublicKeyInfo SubjectPublicKeyInfo 
}
Version ::= INTEGER { v1988(0) }
CertificateSerialNumber ::= INTEGER
Validity ::= SEQUENCE {
notBefore UTCTime,
notAfter UTCTime 
}
SubjectPublicKeyInfo ::= SEQUENCE {
algorithm AlgorithmIdentifier,
subjectPublicKey BIT STRING 
}
AlgorithmIdentifier ::= SEQUENCE {
algorithm OBJECT IDENTIFIER,
parameters ANY DEFINED BY ALGORITHM OPTIONAL 
}
CertificateInfo的属性有如下意义:
1.version 版本号,默认值为0
2.serialNumber 发行者定义的证书串行号。特定证书发行者发行的每个证书,串行号都不相同。
3.signature 标明了发行者使用的签名算法。
4.issuer 表明了发行者的可分辨的名字。
5.validity 表明了证书的有效期。
6.subject 标识了证书主题的可分辨名字。
7.subjectPublicKeyInfo 包含了被认证的公钥信息。信息标识标识了实体的公钥算法,比如:X.509中的rsa,以及PKCS#1的rsaEcryption。信息也包含实体公钥的比特串表示。对刚才提到的所有公钥算法,比特串包含了X.509/PKCS#1类型的公钥的BER编码。


Certificate
一个X.509证书有如下的格式:
Certificate ::= SEQUENCE {
certificateInfo CertificateInfo,
signatureAlgorithm AlgorithmIdentifier,
signature BIT STRING 
}
Certificate类型的属性有如下含义:
1.certificateInfo 是证书信息,它是被签名的值。
2.signatureAlgorithm 签名算法标识了证书信息签名需要的签名算法(和相关的参数)。比如PKCS#1中的md2WithRSAEncryption 和 md5WithRSAEncryption。这个属性应该和CertificateInfo中的signature相同。
3.signature 是证书发行者的私钥对证书信息的签名结果。
签名过程包含两个步骤:
1.certificateInfo属性的值是DER编码的字节串表示。
2.第一步的结果使用证书发行者的私钥和指定的签名算法生成的比特串标识的签名。


注意
Certificate的ASN.1格式也可以如下表示:
Certificate ::= SIGNED SEQUENCE {
version [0] Version DEFAULT v1988,
serialNumber CertificateSerialNumber,
signature AlgorithmIdentifier,
issuer Name,
validity Validity,
subject Name,
subjectPublicKeyInfo SubjectPublicKeyInfo 
}


版本历史
版本1.0 - 1.3
版本1.4
版本1.5


翻译
zoudeqiang1979@tsinghua.org.cn
X509证书的扩展(Extensions) 在数字安全领域,X.509证书扩展(Extensions)扮演着至关重要的角色,提供了证书定制化的可能性,以适应不同的安全需求和策略。本文将详细探讨X.509证书中的扩展功能、它们的种类及其在保证网络安全中的重要性。🔒🌟 阅读详情

相关推荐

pkcs标准文档分享

包含当前pkcs所有标准文档,且版本保持最新版本。 pkcs1-v2.2 pkcs3-v1.4 pkcs5-v2.1 pkcs6-v1.5 pkcs7-v1.5 pkcs8-v1.2 pkcs9-v2.0 pkcs10-v1.7 pkcs11-v2.4 pkcs12-v1.1 pkcs15-v1.1

PKCS规范

共9个:C_CreateObject、C_CopyObject、C_DestroyObject、C_GetObjectSize、C_GetAttributeValue、C_SetAttributeValue、C_FindObjectslnit、C_FindObjects、C_FindObjectsFinal;共6个:C_VerifyInit、C_Verify、C_VerifyUpdate、C_VerifyFinal、C_VeriryRecoverInit、C_VerifyRecover;

共勉 1836

PKCS 06.7z

PKCS#6 证书扩展语法标准 本标准描述了证书扩展语法。一个扩展证书由X.509 公钥证书和一系列被证书发行 者签名的属性组成。于是属性和内附的X.509 公钥证书能够被单独的一个公钥密码操作 验证,当需要时还能提取出普通的X.509 公钥证书。包含一系列属性的目的是使认证操 作得到扩充,能够通过公钥操作验证给定实体其它信息,如电子邮件地址。PKCS #9 中给出比较详细的属性列表。 本标准最初应用在PKCS #7 的密码报文中,其它的应用正在开发之中。

PKI

PKI标准可以分为第一代和第二代标准[12]。 第一代PKI标准主要包括美国RSA公司的公钥加密标准(Public Key Cryptography Standards,PKCS)系列、国际电信联盟的ITU-T X.509、IETF组织的公钥基础设施X.509(Public Key Infrastructure X.509,PKIX)标准系列、无线应用协议(Wireless Applicati...

zhaosong 445

pki-pkcs9规范

可选属性类型。PKCS#9定义了PKCS#6扩展证书、PKCS#7数字签名消息、PKCS#8私钥信息和PKCS#10证书签名请求中要用到的可选属性类型。已定义的证书属性包括E-mail地址、无格式姓名、内容类型、消息摘要、签名时间、签名副本(counter signature)、质询口令字和扩展证书属性。

开源大模型本地部署实战:Llama、DeepSeek、Qwen选型与工程落地指南

大语言模型(LLM)本地部署已成为AI工程化核心环节,其本质不是比拼参数量或榜单分数,而是考察模型架构、推理引擎、量化支持、IDE集成与多模态扩展能力的系统性适配。Llama以纯净Transformer结构成为通用底座,依赖llama.cpp和GGUF量化实现跨平台轻量推理;DeepSeek深度优化代码与数学推理,通过原生OpenAPI、FlashAttention-2及tensor parallelism显著降低API延迟;Qwen则采用模块化设计,支持视觉编码器(Qwen-VL)、生物计算(Qwen-B

weixin_29952383的博客 396

SM2算法的加密签名消息语法规范(一)介绍

由于最近项目中需要根据国家密码局的规范(GM/T 0010)实现SM2密码算法加密签名消息数据的封装,花了些时间进行了下研究,现属文以记之~(^_−)☆ 接下来先介绍sm2算法的消息语法规范,至于具体如何通过gmssl库去实现消息数据的封装,小编将在之后的文章中逐一讲解。OK, 进入正题~ 首先我们知道PKCS#7中规定了6种数据内容:明文数据(Data)、签名数据(Signed-data),数字信封数据(Enveloped-data),带签名的数字信封数据(Signed-and-envelop...

lt4959的专栏 1万+

yolov5部署之七步完成tensorRT模型推理加速

目录前言step 1. 下载yolov5源码以及tensorrtx源码,并将yolov5s.pt转为.wts模型step 2. 确定并下载自己准备使用的CUDA版本。step 3. 根据自己的CUDA版本下载对应版本的cuDNN以及TensorRTstep 4. 根据自己使用的VS版本下载对应版本的OpenCVstep 5. 安装CUDAstep 6. 安装cuDNN、TensorRT以及验证TensorRT是否安装成功 前言     前段时间研究了Pytorch的环境配置,之后便从github上下载了yo

Christo的博客 4万+

ASN.1、BER和DER的PKCS相关子集入门介绍

此翻译文件对 ASN.1、BER 和DER 的PKCS相关子集进行介绍,目的是提供足够的背景知识以便让外行人都能够理解和实施 PKCS 系列标准。

Reflection_in_water的博客 3134

Yolov5自学笔记之一--从入门到入狱,功能强大不要乱用(实现yolov5的基本功能使用流程及训练自己的数据集)

零基础自学yolov5,学会简单使用和训练自己的数据集,在自己工作中使用

qq_41597915的博客 1万+

DeepSeek-OCR 本地部署使用教程(附完整环境配置与推理示例)

DeepSeek-OCR是由DeepSeek AI推出的开源OCR模型,支持高精度文档识别与结构化输出(如Markdown转换)。本文提供了详细的本地部署指南,包括系统要求(推荐Linux+A100 GPU)、环境配置(Python 3.12.9+PyTorch 2.6.0+CUDA 11.8)、模型下载及两种推理方式:高性能的vLLM(适合批量处理)和灵活的Transformers(适合调试)。支持多种分辨率模式和提示词模板,适用于合同识别、PDF转换等场景。常见问题包括显存优化和性能调优建议。

qq_58607032的博客 6721

pkcs7 - 2

PKCS #7:加密消息语法标准(Cryptographic MessageSyntax Standard) An RSA Laboratories Technical Note Version 1.5 Revised November 1, 1993* 1. 范围 这一标准描述了待加密数据的一般语法,比如数字签名和数字信封。该语法允许递归,如一个信封能够包含在另一个当中,或者一方能

4492

技术美术个人笔记(十三)——Houdini金属弯曲模拟

最近接收到使用Houdini自动解算破损/砸坏/扭曲汽车的需求,以此文记录制作金属弯曲自动解算工具时使用的部分节点解析;

小谁的博客 2148

PKCS的 15 个标准

a

nb1253587023的博客 3790

究竟什么是虚拟同步机???虚拟同步机巨简单理解

同步发电机定子铁芯的内圆均匀分布着定子槽,槽内按一定规律嵌放着对称的三相绕组U1-U2、V1-V2、W1-W2,如图1所示。工作原理转子铁芯上装有制成一定形状的成对磁极,磁极上绕有励磁绕组。励磁绕组上通直流电时,会在电机的气隙中形成极性相间的分布磁场,称为励磁磁场。当原动机拖动转子以恒定速度旋转时,励磁磁场随转轴一起旋转并顺次切割定子各相绕组。定子电枢绕组中将会感应出大小和方向周期性变化的三相对称正弦感应电动势。各相电动势大小相等,相位各差120°。

weixin_53126442的博客 2607

多目标进化算法——NSGA-II(python实现)

NSGA-II(python实现)--最全注释,痴呆能懂--

no___good的博客 5279

PKCS 各版本

RSA定义的 PKCS 各版本,用途各不相同; PKCS #1 定义私钥签名运算的填充方式, v1.5 是 PKCS1_PADDING, v2.1 是 PKCS1_PSS_PADING; PKCS#2:涉及了RSA的消息摘要加密,这已被并入PKCS#1中。 PKCS#3:Diffie-Hellman密钥协议标准。PKCS#3描述了一种实现Diffie- Hellman密钥协议的方法。 PKCS#4:最初是规定RSA密钥语法的,现已经被包含进PKCS#1中。 PKCS #5 基于口令的加密标准。P.

zhbpd的专栏 2703

android 9.0Settings休眠时间项(屏幕超时)添加永不休眠功能

在9.0的系统产品开发中,系统中默认息屏时间为1分钟,可以通过在Setting中的息屏时间选项设置对应的息屏时间,但是在开发平板类的产品中,需要实现永不休眠的功能,所以需要在Settings中的息屏时间中添加永不休眠时间这一项来实现这个功能,接下来看息屏时间的相关功能,来添加这个功能

安卓兼职framework和app工程师的博客 2056

获取证书扩展域信息

X509* cert = NULL; BIO* biox509 = NULL; char buf[200]; char* szExtInfo = new char[200]; int len=0; int k,iExt = 0; int Ext_count; char issuer_buffer[1024] = {0};     DWORD nNameSize = 1024; C

xuting559的博客 2749

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

PKCS #7: Cryptographic Message Syntax

Network Working Group B. Kaliski Request for Comments: 2315 RSA Laboratories, East Category: Informational

guolong1983811的专栏 1277

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

PKCS的简单介绍

PKCS:The Public-Key Cryptography Standards (简称PKCS)是由美国RSA数据安全公司及其合作伙伴制定的一组公钥密码学标准,其中包括证书申请、证书更新、证书作废表发布、扩展证书内容以及数字签名、数字信封的格式等方面的一系列相关协议。 到1999年底,PKCS已经公布了以下标准: PKCS#1:定义RSA公开密钥算法加密和签名机制,主要用于组织PKCS#7中所描述的数字签名和数字信封[22]。 PKCS#3:定义Diffie-Hellman密钥交换协议[23]。

happyqwz的专栏 2533

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

简单了解PKCS规范

发表于2020-02-24|分类于人工智能|没有评论 接触过密码学的童鞋可能都听说或接触过PKCS #1, PKCS #7, PKCS #8, PKCS #12等等,或许你早已了解PKCS就是指公钥密码标准(Public Key Cryptography Standards),而这篇博客将带你系统的了解一下整个PKCS规范。 概览 PKCS即公钥密码标准(Public Key Cryptography Standards),它是由美国RSA实验室与遍布全球的安全系统开发者一起合作指...

ayang1986的专栏 3904

pkcs#5和pkcs#7填充的区别

最近做到了关于加密和解密的部分。 使用算法AES的时候,涉及到数据填充的部分,数据的填充有很多种方案,用的比较多的有pkcs#5,pkcs#7, 下面的都是从网上转来的。结论就是在AES 的使用中,pkcs#5填充和pkcs#7填充没有任何区别。 PKCS #7 填充字符串由一个字节序列组成,每个字节填充该填充字节序列的长度。 假定块长度为 8,...

weixin_30800987的博客 1366

填充模式:PKCS#5/PKCS7

填充模式:PKCS#5/PKCS7

test1280 3万+

PKCS#7

1.名词解释 数字签名:在ISO7498-2标准中定义为:"附加在数据单元上的一些数据,或是对数据单元所作的密码变换,这种数据和变换允许数据单元的接收者用以确认数据单元来源和数据单元的完整性,并保护数据,防止被人(例如接收者)进行伪造"。 PKCS#7:也叫做加密消息的语法标准,由RSA安全体系在公钥加密系统中交换数字证书产生的一种加密标准。PKCS#7描述数字证书的语法和其他加密消息——尤其是...

weixin_30267697的博客 2702
上一篇: 生日悖论
下一篇: vim中空格缩进的配置
邹德强
博客等级 码龄24年 226粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值