woc,明天就要考信息安全了,可是网上竟然没有PMI的资料。
共享一个。。。
以下摘自PPT。
权限管理基础设施PMI
PKI体系通过身份证书实现了对证书持有者的身份认证,但网络服务中的访问授权不仅依赖于用户的身份,还依赖于用户的权限,X.509 v4提出了权限管理基础设施(Privilege Management Infrastructure,PMI)来管理用户的权限属性,支持访问控制授权。
PMI使用属性证书来实现用户身份与权限属性的绑定,第三方属性权威机构(Attribute Authority,AA)负责属性证书的申请、签发、维护和撤销,管理着属性证书的整个生命周期。
证书字段
X.509 v4定义的PMI属性证书包含以下信息:
版本号:属性证书使用了哪个版本的X.509标准;
有效期:包括属性证书的生效时间和失效时间;
序列号:AA为该属性证书分配的唯一序列号,证书被撤消时该序列号将被放入CRL中;
签名算法标识符:AA所使用的签名算法;
发布者名称;
发布者的唯一标识符;
证书持有者标识:通常使用PKI证书序列号;
证书持有者的属性信息;
扩展信息;有关该证书或证书持有者的附加说明;
发布者的数字签名。
证书数据结构
AttributeCertificate ::= SEQUENCE {
acinfo AttributeCertificateInfo,
signatureAlgorithm AlgorithmIdentifier,
signatureValue BIT STRING
}
AttributeCertificateInfo ::= SEQUENCE {
version AttCertVersion, --version is v2,
holder Holder,
issuer AttCertIssuer,
signature AlgorithmIdentifier,
serialNumber CertificateSerialNumber,
attrCertValidityPeriod AttCertValidityPeriod,
attributes SEQUENCE OF Attribute,
issuerUniqueID UniqueIdentifier OPTIONAL,
extensions Extensions OPTIONAL
}
holder字段为证书拥有者标识,可选用3种不同的语法选项之一,定义如下:
Holder ::= SEQUENCE {
baseCertificateID [0] IssuerSerial OPTIONAL,
– 证书拥有者的PKI证书的发布者和序列号
entityName [1] GeneralNames OPTIONAL,
– 证书拥有者的实体或角色名
objectDigestInfo [2] ObjectDigestInfo OPTIONAL
– 用于认证证书拥有者的信息
holder字段选项:
若使用baseCertificateID选项,则holder字段值必须与该用户PKC中的发布者和证书序列号相同。
若使用entityName选项,则holder字段值必须与该用户PKC中的证书持有者的名称或subjectAltName扩展字段中的证书持有者别名相同。显然,这两种选项都是与用户的PKC相关联的,服务提供者可通过对应的PKC确定用户身份,无法实现匿名性。
若使用objectDigestInfo选项,则是通过在holder字段写入一个对象的Hash值,将该对象与AC关联起来,用于认证证书拥有者,这为AC与PKC之间的分离提供了可能。