证书拓展域(1)
证书拓展定义了数字证书的标准拓展,每个拓展域GB/T 16264.8-200X中定义的一个OID相关。
这些OID都是id-ce的成员,其定义如下:
id-ce OBJECT IDENTIFIER ::= { joint-iso-ccitt(2) ds(5) 29 }
1.证书策略 certificatePolicies
1.1 定义
本项列出了由颁发CA认可的证书策略,这些策略适用于证书以及关于这些证书策略的任选的限定符信息。
证书策略拓展包含了一系列策略条目信息条目,每个条目都有一个oid和一个可选的限定条件。这个可选的限定条件不能改变策略的定义。
{id-ce 32} 2.5.29.32
1.2 结构定义
id-ce-certificatePolicies OBJECT IDENTIFIER ::= { id-ce 32 }anyPolicy OBJECT IDENTIFIER ::= { id-ce-certificatePolicies 0 }
certificatePolicies ::= SEQUENCE SIZE (1..MAX) OF PolicyInformationPolicyInformation ::= SEQUENCE {policyIdentifier CertPolicyId,policyQualifiers SEQUENCE SIZE (1..MAX) OFPolicyQualifierInfo OPTIONAL }
CertPolicyId ::= OBJECT IDENTIFIERPolicyQualifierInfo ::= SEQUENCE {policyQualifierId PolicyQualifierId,qualifier ANY DEFINED BY policyQualifierId }
qualifier 为枚举常量
id-qt OBJECT IDENTIFIER ::= { id-pkix 2 }
id-qt-cps OBJECT IDENTIFIER ::= { id-qt 1 }
id-qt-unotice OBJECT IDENTIFIER ::= { id-qt 2 }
PolicyQualifierId ::= OBJECT IDENTIFIER ( id-qt-cps | id-qt-unotice )
Qualifier ::= CHOICE {cPSuri CPSuri,userNotice UserNotice }CPSuri ::= IA5StringUserNotice ::= SEQUENCE {noticeRef NoticeReference OPTIONAL,explicitText DisplayText OPTIONAL }NoticeReference ::= SEQUENCE {organization DisplayText,noticeNumbers SEQUENCE OF INTEGER }DisplayText ::= CHOICE {ia5String IA5String (SIZE (1..200)),visibleString VisibleString (SIZE (1..200)),bmpString BMPString (SIZE (1..200)),utf8String UTF8String (SIZE (1..200)) }
2.策略映射 policyMappings
2.1 定义
本项只用于CA证书。它列出了一个多个OID对,每对包括一个issuerDomainPolicy和一个subjectDomaimPolicy。这种成对形式表明,颁发者CA认为其issuerDomainPolicy与主体CA的subjectDomainPolicy是等效的。颁发者CA的用户可以为某应用接受一个issuerDomainPolicy。策略映射告知颁发者CA的用户,哪些同CA有关的策略可以与它们接收到的策略是等效的。
2.2 结构定义
id-ce-policyMappings OBJECT IDENTIFIER ::= { id-ce 33 }PolicyMappings ::= SEQUENCE SIZE (1..MAX) OF SEQUENCE {issuerDomainPolicy CertPolicyId,subjectDomainPolicy CertPolicyId }
2.2说明
在证书策略与策略映射中定义的为证书制定者与适用者的策略映射,预计只在一个非常简单有限环境中使用。
3.颁发机构密钥标识符 authorityKeyIdentifier
3.1定义
颁发机构密钥标识符拓展提供了一种方式,以识别与证书签名是要响应的公钥。当颁发者由于有多个密钥共存或由于发生变化而具有多个签名密钥时使用该拓展。识别Ke基于颁发者证书中的主体密钥标识符或基于颁发者的名称和序列号。
3.2 结构定义
id-ce-authorityKeyIdentifier OBJECT IDENTIFIER ::= { id-ce 35 }AuthorityKeyIdentifier ::= SEQUENCE {keyIdentifier [0] KeyIdentifier OPTIONAL,authorityCertIssuer [1] GeneralNames OPTIONAL,authorityCertSerialNumber [2] CertificateSerialNumber OPTIONAL }KeyIdentifier ::= OCTET STRING
4.主体密钥标识符 subjectKeyIdentifier
4.1 定义
此拓展标识了被认证的公钥。他能够区分同一主题使用的不同密钥(CA密钥被更新时)。
4.3 结构定义
id-ce-subjectKeyIdentifier OBJECT IDENTIFIER ::= { id-ce 14 }SubjectKeyIdentifier ::= KeyIdentifier
5.密钥用法 keyUsage
5.1定义
此拓展定义了已认证的公开密钥用于何种用途。
5.2 结构定义
id-ce-keyUsage OBJECT IDENTIFIER ::= { id-ce 15 }KeyUsage ::= BIT STRING {digitalSignature (0),nonRepudiation (1), -- recent editions of X.509 have-- renamed this bit to contentCommitmentkeyEncipherment (2),dataEncipherment (3),keyAgreement (4),keyCertSign (5),cRLSign (6),encipherOnly (7),decipherOnly (8) }
5.3说明
KeyUsage类型中的用法如下:
a) digitalSignature:验证下列 b)、f)、g)所标识的用途之外的数字签名;
b) nonRepudiation:验证用来提供抗抵赖服务的数据签名,这种服务防止签名实体不实的拒绝某种行为(不包含f)或g)中的证书或CRL签名);
c) keyEncipherment:加密密钥或其他安全信息,例如用于密钥传输;
d) dataEncipherment:加密用户数据,但不包括上面c)中的密钥或其他安全信息;
e) keyAgreement:用作公开的密钥协商;
f) keyCertSign:验证证书的CA签名;
g) cRLSign:验证CRL的CA签名;
h) encipherOnly:当设置keyAgreement位一起使用,公开密钥协商密钥仅用于加密数据;
i) decipherOnly:当设置keyAgreement位一起使用,公开密钥协商密钥仅用于解密数据;
6.扩展密钥用途 extKeyUsage
6.1 定义
此拓展指明已验证的公开密钥可以用于一种或多种用途,他们可作为对密钥用法扩展项中指明的基本用途的补充或替代。
6.2 结构定义
id-ce-extKeyUsage OBJECT IDENTIFIER ::= { id-ce 37 }ExtKeyUsageSyntax ::= SEQUENCE SIZE (1..MAX) OF KeyPurposeIdKeyPurposeId ::= OBJECT IDENTIFIER
6.3 说明
anyExtendedKeyUsage OBJECT IDENTIFIER ::= { id-ce-extKeyUsage 0 }id-kp OBJECT IDENTIFIER ::= { id-pkix 3 }
对应的密钥用途定义如下:
id-kp-serverAuth OBJECT IDENTIFIER ::= { id-kp 1 }
TLS Web server 鉴别
Key Usage 可以设置为 digitalSignature keyEncipherment或keyAgreement
id-kp-clientAuth OBJECT IDENTIFIER ::= { id-kp 2 }
TLS Web client 鉴别
Key Usage 可以设置为 digitalSignature keyEncipherment或keyAgreement
id-kp-codeSigning OBJECT IDENTIFIER ::= { id-kp 3 }
可用作代码签名
Key Usage 可以设置为 digitalSignature
id-kp-emailProtection OBJECT IDENTIFIER ::= { id-kp 4 }
Email保护
Key Usage 可以设置为 digitalSignature nonRepudiation
id-kp-timeStamping OBJECT IDENTIFIER ::= { id-kp 8 }
将对象的散列值与同一时间源提供的时间绑定
Key Usage 可以设置为 digitalSignature nonRepudiation
id-kp-OCSPSigning OBJECT IDENTIFIER ::= { id-kp 9 }
将对象的散列值与同一时间源提供的时间绑定
Key Usage 可以设置为 digitalSignature nonRepudiation
7.私有密钥使用期 privateKeyUsagePeriod
7.1定义
此拓展指明与已验证的公开密钥对对应的私有密钥的使用期限。只能用于数字签名密钥。
7.2 结构定义
id-ce-privateKeyUsagePeriod OBJECT IDENTIFIER ::= { id-ce 16 }PrivateKeyUsagePeriod ::= SEQUENCE {notBefore [0] GeneralizedTime OPTIONAL,notAfter [1] GeneralizedTime OPTIONAL }-- either notBefore or notAfter MUST be present
8.主体替换名称 subjectAltName
8.1 定义
此拓展包含一个或多个替换名(可使用多种名称形式中的任一个)供实体使用,CA把该实体与认证的公开密钥绑定到一起。
主体替换名拓展允许把附加身份加载证书主体上。所定义的选项抱愧电子邮件地址、DNS名称、IP地址和统一资源标识符(URI)。
8.2 结构定义
id-ce-subjectAltName OBJECT IDENTIFIER ::= { id-ce 17 }SubjectAltName ::= GeneralNamesGeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralNameGeneralName ::= CHOICE {otherName [0] OtherName,rfc822Name [1] IA5String,dNSName [2] IA5String,x400Address [3] ORAddress,directoryName [4] Name,ediPartyName [5] EDIPartyName,uniformResourceIdentifier [6] IA5String,iPAddress [7] OCTET STRING,registeredID [8] OBJECT IDENTIFIER }OtherName ::= SEQUENCE {type-id OBJECT IDENTIFIER,value [0] EXPLICIT ANY DEFINED BY type-id }EDIPartyName ::= SEQUENCE {nameAssigner [0] DirectoryString OPTIONAL,partyName [1] DirectoryString }
8.3说明
该拓展多用于多域名的站点证书中。
相关文章:
证书拓展域(1)
证书拓展定义了数字证书的标准拓展,每个拓展域GB/T 16264.8-200X中定义的一个OID相关。 这些OID都是id-ce的成员,其定义如下: id-ce OBJECT IDENTIFIER :: { joint-iso-ccitt(2) ds(5) 29 }1.证书策略 certificatePolicies 1.1 定义 本…...
浅谈ChatGPT 和 对AI 的思考
新世纪以来,人工智能作为一个非常热门话题,一直收到大众的广泛的关注。从一开始的图像的分类,检测,到人脸的识别,到视频分析分类,到事件的监测,到基于图片的文本生成,到AI自动写小说…...
NCRE计算机等级考试Python真题(十二)
第十二套试题1、以下关于程序设计语言的描述,错误的选项是:A.Python语言是一种脚本编程语言B.汇编语言是直接操作计算机硬件的编程语言C.程序设计语言经历了机器语言、汇编语言、脚本语言三个阶段D.编译和解释的区别是一次性翻译程序还是每次执行时都要翻…...
Java并发类库提供的线程池有哪几种? 分别有什么特点?
第21讲 | Java并发类库提供的线程池有哪几种? 分别有什么特点? 我在专栏第 17 讲中介绍过线程是不能够重复启动的,创建或销毁线程存在一定的开销,所以利用线程池技术来提高系统资源利用效率,并简化线程管理,…...
企业微信如何群发消息到客户群?
为提升工作效率,工作中,企业常常会借助企业微信的群发功能一键发送多个客户。那么企业微信如何群发消息呢? 其中成员个人支持群发消息到客户群,企业也可以创建内容提醒成员进行执行群发。 管理员支持在管理端或在手机端创建企业…...
【信号与系统笔记】第一章 绪论
1.1信号传输系统 信息传输的任务 将带有信息的信号,通过某种系统由发送者传送给接收者。 通信系统的组成 转换器:把消息转换为电信号或者把电信号还原成消息信道:信号传输的通道,广义上来说。发射机和接收机也可以是信道的一部分…...
[神经网络]DETR目标检测网络
一、概述 相较于传统目标检测,DETR是一种纯端到端的网络。它不再需要NMS(非极大值抑制,用于去除多余的预测框)和生成anchor。 DETR提出了一个新的目标函数(二分图匹配),这个函数可以强制网络输出一个独一无二的预测值&…...
【服务器管理】connection refused问题解决
简述 在配置服务器的时候,遇到了这个问题。我当时明明已经搭建好了服务,但是我在客户端比如手机上,却怎么都连不上服务器。看日志的话显示的是connection refuesed timeout 这种情况,大概率是服务器的端口没有被打开。 我们只需…...
2023_华为OD机试真题_Python_047_整理扑克牌
整理扑克牌 题目描述 给定一组数字,表示扑克牌的牌面数字,忽略扑克牌的花色,请按如下规则对这一组扑克牌进行整理: 步骤1. 对扑克牌进行分组,形成组合牌,规则如下: 当牌面数字相同张数大于等于4时,组合牌为“炸弹”;3张相同牌面数字 + 2张相同牌面数字,且3张牌与2…...
吐血整理,自动化测试pytest测试框架,资深测试带你少走弯路......
目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 Pytest框架详解 py…...
SAP BASE64加密及解密
简介:BASE64是一种编码方法,它是一种基于用64个可打印字符来表示二进制数据的表示方法,主要应用于数据存储,传输,打印它是用64个可打印字符表示二进制所有数据方法。由于2的6次方等于64,所以可以用每6个位元…...
【页面无响应】Web页面经常无响应前端如何定位与优化(已解決)
【写在前面】客户现场应用我们的系统时候,发现用着用着就出现1个页面无响应现象,给客户带来极其不好的体验,尤其是当重要工作汇报演示时,就给我看无响应,浏览器崩溃?这样对产品的发展无疑是致命的伤&#x…...
隐私计算 FATE - 多分类神经网络算法测试
一、说明 本文分享基于 Fate 使用 横向联邦 神经网络算法 对 多分类 的数据进行 模型训练,并使用该模型对数据进行 多分类预测。 二分类算法:是指待预测的 label 标签的取值只有两种;直白来讲就是每个实例的可能类别只有两种 (0 或者 1)…...
Codeforces Round 853 (Div. 2)
Codeforces Round 853 (Div. 2) C. Serval and Toxels Arrays 思路: 求任意两个组合的元素个数。 注意到,其实每个元素都是独立的。他在任意组合的出现情况组成的贡献是可以分开讨论的。我们讨论元素x。假设x在m1个数组中出现了cnt次(一个…...
Ka频段需要更多带宽?
随着全球连接需求的增长,许多卫星通信(satcom)系统日益采用Ka频段,对数据速率的要求也水涨船高。目前,高性能信号链已经能支持数千兆瞬时带宽,一个系统中可能有成百上千个收发器,超高吞吐量数据速率已经成为现实。 另…...
初学pyinstaller打包过程中的一些问题
记录一下使用pyinstaller打包过程中的一些问题: 不安装虚拟环境打包,直接打包,一般不会出现什么问题,但是打包的exe很大,把所有模块和依赖库也一起打包了。 建议使用虚拟环境打包,安装必要的包࿰…...
第七章:Java常用类
第七章:Java常用类 7.1:字符串相关的类 String的特性 String表示是字符串,使用一对""引起来表示。 String声明为final的,不可被继承。 String实现了Serializable、Comparable接口,表示字符是支持序列化和…...
Apk加固后多渠道打包
之前一直使用360加固宝进行apk的加固打包,可以一键加固并打多渠道打包。但是,现在360加固宝收费了,在进行加固,多渠道打包,就得一步一步自己操作了,会很繁琐。所以,本文使用 360加固美团Wallet …...
K8S + ISTIO 金丝雀部署的例子
金丝雀发布(Canary):也是一种发布策略,和国内常说的灰度发布是同一类策略。蓝绿部署是准备两套系统,在两套系统之间进行切换,金丝雀策略是只有一套系统,逐渐替换这套系统。 Istio 提供一种简单的…...
python自带数据的模型合集
鸢尾花----聚类 Python鸢尾花数据集通常用于分类问题, 这些模型都可以通过Python中的Scikit-learn库进行实现。同时,也可以对这些模型进行参数调优以提高模型的准确性。 Logistic Regression(逻辑回归): 逻辑回归是一…...
黑马Mybatis
Mybatis 表现层:页面展示 业务层:逻辑处理 持久层:持久数据化保存 在这里插入图片描述 Mybatis快速入门 中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...
FFmpeg 低延迟同屏方案
引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...
全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...
深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...
SpringCloudGateway 自定义局部过滤器
场景: 将所有请求转化为同一路径请求(方便穿网配置)在请求头内标识原来路径,然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...
LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》
这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...
