内网安全之证书服务基础知识

PKI公钥基础设施

PKI(Public Key Infrastructure)公钥基础设施,是提供公钥加密和数字签名服务的系统或平台,是一个包括硬件、软件、人员、策略和规程的集合,用来实现基于公钥密码体制的密钥和证书的产生、管理、存储、分发和撤销等功能。企业通过采用 PKI 框架管理密钥和证书可以建立一个安全的网络环境。
PKI 的基础技术包括:公钥加密、数字签名、数据完整性机制、数字信封(混合加密)、双重数字签名等。
PKI 体系能够实现的功能有:

  • 身份验证;
  • 数据完整性
  • 数据机密性
  • 操作的不可否认性

微软的活动目录证书服务 ADCS 就是对 PKI 的实现,活动目录证书服务能够跟现有的活动目录域服务(ADDS:Active Directory Domain Service)进行结合, 可以用于身份验证、公钥加密和数字签名等。ADCS 提供所有与 PKI 相关的组件作为角色服务。每个角色服务负责证书基础架构的特定部分,同时协同工作以形成完整的解决方案。
ADCS 允许你做如下的操作

  • 设置 Web 注册、网络设备注册服务和在线响应器服务。
  • 管理用户、计算机、服务和路由器等网络设备的证书的注册和吊销。
  • 使用组策略来分发和管理证书

CA证书颁发机构

CA(Certificate Authority,证书颁发机构)是 PKI 系统的核心。其作用包括处理证书申请、 证书发放、 证书更新、管理已颁发的证书、吊销证书和发布证书吊销列表(CRL)等。
Active Directory 证书服务中的 CA 有企业 CA 和独立 CA。企业 CA 必须是域成员,并且通常处于联机状态以颁发证书或证书策略。而独立 CA 可以是成员、 工作组或域。独立 CA 不需要 ADDS 活动目录域服务,并且可以在没有网络的情况下使用。但是在域中基本都是使用企业 CA,因为企业 CA 可以和活动目录域服务 ADDS 进行结合,其信息也存储在 Active Directory 数据库中。企业 CA 支持基于证书模块创建证书和自动注册证书。
image.png
在创建 CA 后,会自动创建 CA 的公私钥对:

  • 私钥只有 CA 知道,私钥用于对颁发的证书进行数字签名。
  • 公钥任何人都可以知道,公钥用于验证证书是否由 CA 颁发

然后 CA 使用自己的私钥签署新证书来生成自己的根 CA 证书,也就是说根 CA 证书是自签名的。ADCS 会将根 CA 证书的 Subject 和 Issuer 字段设置为 CA 的名称,将 Basic Constraints 设置为 Subject Type=CA,并将 NotBefore/NotAfter 字段设置为五年(默认情况下)。域内所有主机会将根 CA证书添加到受信任的根证书颁发机构中。此后,该 CA 签名发行的所有证书都会被域内主机所信任。
在我们根 CA 颁发的证书这里可以看到已经颁发的证书,以下证书应用的网站会被域内所有机器信任。
image.png
域外机器如何信任域内搭建的根CA颁发的证书呢
只需把域内搭建的根CA证书手动导入到系统中即可
访问ADCS证书服务器的/certsrv/certcarc.asp 路径,点击下载 CA 证书,然后将下载的 CA 证书导入系统“受信任的根证书颁发机构”内,并勾选始终信任
image.png

CA层次结构

常见的 CA 层次机构有两个级别,根和二级 CA,二级 CA 也叫子从属 CA。 根 CA 位于顶级,子从属 CA 在第二级。在这种层次机构下,根 CA 给子从属 CA 颁发证书认证,子从属 CA 给下面的应用颁发和管理证书,根 CA 不直接给应用颁发证书。
image.png
CA 的层次结构,有以下优点:

  • 管理层次分明,便于集中管理、政策制订和实施
  • 提高 CA 中心的总体性能、减少瓶颈;
  • 有充分的灵活性和可扩展性
  • 有利于保证 CA 中心的证书验证效率

CRL证书作废列表

CRL (Certificate Revocation List):证书作废列表,就是我们所称的“证书黑名单”,在证书的有效期期间,因为某种原因(如人员调动、私钥泄漏等等),导致相应的数字证书内容不再是真实可信。此时,进行证书撤销,说明该证书无效,CRL 中列出了被撤销的证书序列号。
image.png

证书

证书是 X.509 格式的数字签名文档,用户加密、消息签名或身份验证等功能 。证书通常具有多个字段,包括如下:

  • Subject:主题,可以标识证书的所有者
  • Public Key:公钥,用于将主题(Subject)与单独存储的私钥相关联
  • NotBefore and NotAfter dates:证书的有效期
  • Serial Number:CA 分配的证书标识符
  • Issuer:标识颁发证书的人(通常是 CA)
  • SubjectAlternativeName(SAN):主题备用名称,定义一个或多个可供主题(Subject)使用的可选名称
  • Basic Constraints:基本约束,标识证书是 CA 还是最终实体,以及在使用证书时是否存在任何约束
  • Extender key Usages(EKU):扩展密钥用法,描述证书将如何使用的对象标识符(OID) 。常见的 EKU OID 如下:
    • 代码签名(OID 1.3.6.1.5.5.7.3.3):证书用于签署可执行代码
    • 加密文件系统(OID 1.3.6.1.4.1.311.10.3.4):证书用于加密文件系统
    • 安全电子邮件(OID 1.3.6.1.5.5.7.3.4):证书用于加密电子邮件
    • 客户端身份验证(OID 1.3.6.1.5.5.7.3.2):证书用于身份验证到另一个服务器
    • 智能卡登录(OID 1.3.6.1.4.1.311.20.2.2):证书用于智能卡认证
    • 服务器认证(OID 1.3.6.1.5.5.7.3.1):证书用于识别服务器 (例如HTTPS 证书)
    • PKINIT 客户端身份验证,对应的 OID 为 1.3.6.1.5.2.3.4
    • 任何目的,对应的 OID 为 2.5.29.37.0
  • Signature Algorithm:签名算法,指定用于签署证书的算法
  • Signature:使用颁发者的私钥对证书进行签名

PKINIT Kerberos认证

ADCS 服务可以和 ADDS 紧密搭配使用,那么自然利用证书来进行 Kerberos 预身份认证
申请新证书
image.png
导出该证书,选择和私钥一起导出
image.png
设置密码为root
image.png
导出成功
image.png
使用 Rubeus 执行如下命令用证书 administrator.pfx 进行 Kerberos 认证

Rubeus.exe asktgt /user:Administrator /password:root /certificate:administrator.pfx /domain:tmac.com /dc:WIN-3EAQBB8A70H.tmac.com

在微软的官方文档中有这么一句话:为了支持连接到不支持 Kerberos 身份验证的网络服务的应用程序的 NTLM 身份验证,当使用 PKCA 时, KDC 将在 PAC 特权属性证书的 PAC_CREDENTIAL_INFO 缓冲区中返回用户的 NTLM Hash。也就是说当使用证书进行 Kerberos 认证时,返回的票据的 PAC 中是包含用户的 NTLM Hash 的
使用 kekeo 执行如下命令获得 administrator.pfx 证书对应的 administrator 用户的 NTLM Hash

tgt::pac /subject:administrator /castore:current_user /domain:tmac.com /user:administrator /cred

后续无论用户密码怎么更改,使用该功能获取用户的 NTLM Hash 都是最新的
在使用 kekeo 获取证书对应用户的 NTLM Hash 时,需要先将证书导入 到系统中。
能用于 Kerberos 认证的模版证书

  • 客户端身份验证,对应的 OID 为 1.3.6.1.5.5.7.3.2
  • PKINIT 客户端身份验证,对应的 OID 为 1.3.6.1.5.2.3.4
  • 智能卡登录,对应的 OID 为 1.3.6.1.4.1.311.20.2.2
  • 任何目的,对应的 OID 为 2.5.29.37.0
  • 子CA

活动目录数据库中的ADCS

安装完 ADCS 证书服务后,可以在活动目录数据库中找到相关数据,完整路径为:CN=Public Key Services,CN=Services,CN=Configuration,DC=tmac,DC=com
image.png

Certification Authorities

Certification Authorities 是 CA 认证机构类,里面的实例都是受信任的CA,AD将这些CA的证书下发到每台 Windows 计算机的受信任的根证书颁发机构证书存储区。为了使 AD 认为证书是可信的,证书的信任链最终必须以该容器中定义的根 CA 之一结束。
image.png
CA 证书类的 objectClass 属性为 certificationAuthority,cACertificate 属性为 CA 证书的二进制内容
image.png

Certificate Templates

Certification Authorities 是证书模板类,里面的实例都是证书模板
image.png
证书模板的 objectClass 属性为 pKICertificateTemplate
image.png

Enrollment Services

Enrollment Services 是企业 CA 类,里面的实例都是企业 CA
image.png
企业 CA 的 objectClass 属性为 pKIEnrollmentService、dNSHostName 属性是企业 CA 的主机名、cACertificate 属性值包含 CA 证书的二进制内容、 certificateTemplates 字段定义了启用的证书模板。证书模板是 CA 在创建证书时 使用的设置 “蓝图”,包括 EKU、注册权限、证书到期、颁发要求和加密设置等内容。
image.png

NTAuthCertificates

该容器定义了有资格颁发身份验证证书的 CA 证书。这个对象的 objectClass 属性值为 certificateAuthority,并且 cACertificate 属性定义了一个 可信 CA 证书的二进制数组。加入 AD 的 Windows 机器将这些 CA 证书下发到每 台机器上的中间证书颁发机构证书存储区。仅当 NTAuthCertificates 对象定义的 CA 签署了身份验证客户端的证书时,客户端应用程序才能使用证书向 AD 进行身份验证。
image.png

AIA(Authority Information Access)

该容器保存了中间 CA 证书的 AD 对象。中间 CA 是 PKI 树层次结构中根 CA 的 “子代”,因此,此容器的存在是为了帮助验证证书链。与 Certification Authorities 容器一样,每个 CA 在 AIA 容器中表示为一个 AD 对象,其中 objectClass 属性设置为 CertificationAuthority,并且 cACertificate 属性包含 CA 证书的二进制内容。当有新的 CA 安装时,它的证书则会自动放到 AIA 容器 中。这些 CAs 传播到每台机器上的中间证书颁发机构证书存储区。
image.png

不同后缀的证书文件

我们经常会看到不同后缀格式的证书,如下是不同后缀格式证书包含的内容:

  • pfx、.p12、.pkcs12 后缀:包含证书和私钥,最有用。会有密码保护,导出该类型证书时会要求你输入一个密码
  • .pem 后缀:含有证书和私钥
  • .cer/.crt 后缀:包含证书
  • .key后缀:只包含私钥
  • .csr 后缀:证书申请文件,既不包含公钥也不包含私钥
  • jks/.keystore/.keys:Java 密钥库,可能包含 Java 应用程序使用 的 certs +私钥

.pfx 格式的文件 可以转化成.pem 格式的文件
.pem 格式的文件中可以转化成.cer 证书文件 + .key 私钥

导出pfx证书文件

导出
image.png
勾选将私钥和证书一起导出
image.png
这里需要输入一个密码,我们输入的是root
image.png

从.pfx文件中提取出包含私钥和证书的.pem文件

openssl pkcs12 -in administrator.pfx -nodes -out administrator.pem

image.png
image.png

从.pem文件中提取出.cer证书文件

openssl x509 -in administrator.pem -out administrator.cer

定位证书服务器

域内

在域内的话,可以执行如下命令定位证书服务器

certutil.exe
#弹框
certutil -config - -ping

image.png
image.png

域外

在域外的话,可以利用certipy工具执行命令定位证书服务器
certipy安装方法

pip3 install certipy-ad
certipy find -u administrator@xie.com -p admin@123 -dc-ip 192.168.1.11 -dc-only

image.png
image.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/14510.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

element-plus:踩坑日记

el-table Q:有fixed属性时,无数据时,可能出现底部边框消失的bug 现象: 解决方法: .el-table__empty-block {border-bottom: 1px solid var(--el-table-border-color); } el-collapse 折叠面板 Q:标题上…

云平台的安全能力提升解决方案

提升云平台的安全能力是确保数据和服务安全的关键步骤。针对大型云平台所面临的云上安全建设问题,安全狗提供完整的一站式云安全解决方案,充分匹配云平台安全管理方的需求和云租户的安全需求。协助大型云平台建设全网安全态势感知、统一风险管理、统一资…

PCIE协议-4-物理层逻辑模块

4.1 简介 物理层将事务层和数据链路层与用于链路数据交换的信令技术隔离开来。物理层被划分为逻辑物理层和电气物理层子模块(见图4-1)。 4.2 逻辑物理层子模块 逻辑子模块有两个主要部分:一个发送部分,它准备从数据链路层传递过…

v-md-editor和SSE实现ChatGPT的打字机式输出

概述 不论是GPT还是文心一言,在回答的时候类似于打字机式的将答案呈现给我们,这样的交互一方面比较友好,另一方面,当答案比较多、生成比较慢的时候也能争取一些答案的生成时间。本文后端使用express和stream,使用SSE将…

Boosting Cache Performance by Access Time Measurements——论文泛读

TOC 2023 Paper 论文阅读笔记整理 问题 大多数现代系统利用缓存来减少平均数据访问时间并优化其性能。当缓存未命中的访问时间不同时,最大化缓存命中率与最小化平均访问时间不同。例如:系统使用多种不同存储介质时,不同存储介质访问时间不同…

【C++初阶】—— 类和对象 (上)

📝个人主页🌹:EterNity_TiMe_ ⏩收录专栏⏪:C “ 登神长阶 ” 🌹🌹期待您的关注 🌹🌹 类和对象 1. 初步认识C2. 类的引入3. 类的定义声明和定义全部放在类体中声明和定义分开存放 4.…

8个实用网站和软件,收藏起来一定不后悔~

整理了8个日常生活中经常能用得到的网站和软件,收藏起来一定不会后悔~ 1.ZLibrary zh.zlibrary-be.se/这个网站收录了超千万的书籍和文章资源,国内外的各种电子书资源都可以在这里搜索,98%以上都可以在网站内找到,并且支持免费下…

linux中ansible整理笔记

一、工作模式 1. adhoc临时命令 语法: ansible 主机或者组列表 -m 模块 -a “参数” 2. playbook 语法: ansible-playbook xxx.yml 二、模块 1. ping 2.command:默认模块(不支持重定向,管道) 3.shell:类似com…

IP地址显示“不安全”怎么办|已解决

解决IP地址显示“不安全”的问题,通常需要确保网站或服务使用HTTPS协议进行加密通信,可以通过部署SSL证书来解决,以下是具体的解决步骤: 1 申请IP地址SSL证书:网站管理员应向证书颁发机构(CA)申…

网络拓扑—WEB-IIS服务搭建

文章目录 WEB-IIS服务搭建网络拓扑配置网络IISPC 安装IIS服务配置IIS服务(默认站点)PC机访问网页 配置IIS服务(新建站点)PC机访问网页 WEB-IIS服务搭建 网络拓扑 //交换机忽略不计 IIS服务IP:192.168.1.1 PC机IP&…

人类交互2 听觉处理和语言中枢

人类听觉概述 人类听觉是指通过耳朵接收声音并将其转化为神经信号,从而使我们能够感知和理解声音信息的能力。听觉是人类五种感觉之一,对我们的日常生活和交流至关重要。 听觉是人类交流和沟通的重要工具。通过听觉,我们能够听到他人的语言…

安装错误提示Please run MaterialLibrary2018.msi first或者其他MaterialLibrary版本

打开autoremove,系统检查,点击开始检查。检查完成修复。 可以解决部分该问题,如果没解决的请咨询

Linux中的文件描述符

1.系统调用接口和库函数的关系 函数:fopen fclose fread fwrite 都是c标准库当中的函数,也就是用户操作接口中ibc系统调用:open close read write 都是系统调用提供的接口 c语言中接口底层封装的都是系统调用接口 FILE* stdin stdout stderr…

Python模块、包和异常处理

大家好,在当今软件开发领域,Python作为一种简洁、易读且功能强大的编程语言,被广泛应用于各种领域。作为一名测试开发工程师,熟练掌握Python的模块、包和异常处理是提高代码可维护性和错误处理能力的关键。本文将和大家一起探讨Py…

SAP-MRP和采购申请

1、如果采购申请是手工创建的,跑MRP会不会被覆盖? 创建一个采购申请18089476,然后运行MRP-MD03,再用MD04查看下 从上图看,手工创建的采购申请被打上*号,没有被覆盖掉。 2、如果采购申请被审批了,会不会被覆盖掉? 首先创建一个独立需求MD61 然后库存消耗掉为0,运行M…

普源精电收购耐数电子——用“钞能力”拿下“量子”?

「量子市界」聚焦量子前沿,揭秘市场动态┃2024年4月30日,普源精电新增“量子科技”概念。 似乎一夜之间,新增“量子科技”概念的上市企业如雨后春笋般登场——普源精电就是其一。普源精电本就持有耐数电子32.26%股权,于4月2日发布…

c4d云渲染是工程文件会暴露吗?

在数字创意产业飞速发展的今天,C4D云渲染因其高效便捷而备受欢迎。然而,随着技术应用的深入,人们开始关注一个核心问题:在享受云渲染带来的便利的同时,C4D工程文件安全吗?是否会有暴露的风险?下…

【如何让论文中摘要后面的内容不出现在目录中】

首先选择摘要二字,设置为一级标题,然后选择摘要后面的内容设置为正文样式,再选择这一部分看一下是不是都是正文大纲级别,如果是那就可以了。 具体流程如下 1、选择摘要二字,设置为一级标题样式 2、选择摘要后面的文…

x264 码率控制原理:rate_estimate_qscale 函数

rate_estimate_qscale 函数 原理 函数功能:根据目前使用的实际比特数更新一帧的qscale;是一个复杂的决策过程,需要考虑多种因素,如帧类型、编码的复杂度、目标比特率、缓冲区大小等,以确保视频质量和文件大小之间的平衡。函数参数分析:x264_t *h :编码器上下文信息结构…

扩散模型学习1

DDPM 总体训练原理 https://www.bilibili.com/video/BV1nB4y1h7CN/?spm_id_from333.337.search-card.all.click&vd_sourcef745c116402814185ab0e8636c993d8f 讲得很好:每次都是输入t和noise-x的图像,预测noise之后得到和加入的noise比较&#xff1b…