rfc4043.Internet X.509 Public Key Infrastructure Permanent Identifier
Http状态码大全(404、500、505等)(转载)

Http状态码⼤全(404、500、505等)(转载)基本涵盖了所有问题HTTP 400 – 请求⽆效HTTP 401.1 – 未授权:登录失败HTTP 401.2 – 未授权:服务器配置问题导致登录失败HTTP 401.3 – ACL 禁⽌访问资源HTTP 401.4 – 未授权:授权被筛选器拒绝HTTP 401.5 – 未授权:ISAPI 或 CGI 授权失败HTTP 403 – 禁⽌访问HTTP 403 – 对 Internet 服务管理器的访问仅限于 LocalhostHTTP 403.1 禁⽌访问:禁⽌可执⾏访问HTTP 403.2 – 禁⽌访问:禁⽌读访问HTTP 403.3 – 禁⽌访问:禁⽌写访问HTTP 403.4 – 禁⽌访问:要求 SSLHTTP 403.5 – 禁⽌访问:要求 SSL 128HTTP 403.6 – 禁⽌访问:IP 地址被拒绝HTTP 403.7 – 禁⽌访问:要求客户证书HTTP 403.8 – 禁⽌访问:禁⽌站点访问HTTP 403.9 – 禁⽌访问:连接的⽤户过多HTTP 403.10 – 禁⽌访问:配置⽆效HTTP 403.11 – 禁⽌访问:密码更改HTTP 403.12 – 禁⽌访问:映射器拒绝访问HTTP 403.13 – 禁⽌访问:客户证书已被吊销HTTP 403.15 – 禁⽌访问:客户访问许可过多HTTP 403.16 – 禁⽌访问:客户证书不可信或者⽆效HTTP 403.17 – 禁⽌访问:客户证书已经到期或者尚未⽣效 HTTP 404.1 -⽆法找到 Web 站点HTTP 404- ⽆法找到⽂件HTTP 405 – 资源被禁⽌HTTP 406 – ⽆法接受HTTP 407 – 要求代理⾝份验证HTTP 410 – 永远不可⽤HTTP 412 – 先决条件失败HTTP 414 – 请求 – URI 太长HTTP 500 – 内部服务器错误HTTP 500.100 – 内部服务器错误 – ASP 错误HTTP 500-11 服务器关闭HTTP 500-12 应⽤程序重新启动HTTP 500-13 – 服务器太忙HTTP 500-14 – 应⽤程序⽆效HTTP 500-15 – 不允许请求 global.asaError 501 – 未实现HTTP 502 – ⽹关错误⽤户试图通过 HTTP 或⽂件传输协议 (FTP) 访问⼀台正在运⾏ Internet 信息服务 (IIS) 的服务器上的内容时,IIS 返回⼀个表⽰该请求的状态的数字代码。
HTTP协议中常用相应的状态码总结

HTTP协议中常⽤相应的状态码总结HTTP协议与我们的⽣活息息相关,尤其对于我们后端开发⼈员,⼯作之余我整理了⼀些HTTP协议响应的⼀些常见的状态码,希望能帮助⼤家 HTTP状态码列表消息(1字头)服务器收到请求,需要请求者继续执⾏操作状态码状态码英⽂名称中⽂描述100Continue继续。
客户端应继续其请求101Switching Protocols切换协议。
服务器根据客户端的请求切换协议。
只能切换到更⾼级的协议,例如,切换到HTTP的新版本协议102Processing由WebDAV(RFC 2518)扩展的状态码,代表处理将被继续执⾏。
成功(2字头)操作被成功接收并处理状态码状态码英⽂名称中⽂描述200OK请求成功。
⼀般⽤于GET与POST请求201Created已创建。
成功请求并创建了新的资源202Accepted已接受。
已经接受请求,但未处理完成203Non-Authoritative Information⾮授权信息。
请求成功。
但返回的meta信息不在原始的服务器,⽽是⼀个副本204No Content⽆内容。
服务器成功处理,但未返回内容。
在未更新⽹页的情况下,可确保浏览器继续显⽰当前⽂档205Reset Content重置内容。
服务器处理成功,⽤户终端(例如:浏览器)应重置⽂档视图。
可通过此返回码清除浏览器的表单域206Partial Content部分内容。
服务器成功处理了部分GET请求207Multi-Status由WebDAV(RFC 2518)扩展的状态码,代表之后的消息体将是⼀个XML消息,并且可能依照之前⼦请求数量的不同,包含⼀系列独⽴的响应代码。
重定向(3字头)需要进⼀步的操作以完成请求状态码状态码英⽂名称中⽂描述300Multiple Choices多种选择。
请求的资源可包括多个位置,相应可返回⼀个资源特征与地址的列表⽤于⽤户终端(例如:浏览器)选择301Moved Permanently永久移动。
常见http状态码分析及正确设置404页方法

常见http状态码分析及正确设置404页方法公司新来的一位SEO向我质疑说404页面不能跳转到首页,说这样会导致首页会被K 掉,还言之凿凿的说,夫唯也这么说过。
落叶给他的建议是,遇到问题要多思考,SEO这个本来误传比较多,弄清楚404的原理,及一些状态码的含义,什么情况下会导致被误判或弊端,思考清楚这些,谁怎么说已经不重要了。
本文中分析一下各种常见的HTTP返回状态含义及对应的网站的出错情况,同时也介绍一下,IIS服务器、apache服务器及一般虚拟主机上设置404错误页的正确方法。
站长常需要关注的HTTP状态及含义:200 :页面正常访问时的返回HTTP状态。
当一个页面返回200状态码时,则表示告诉浏览器或者搜索引擎,该页面是可以正常到达的。
404 :页面找不到时,返回的HTTP状态。
SEO处理中如果想自定义404页面,需要做到的是确保访问错误页时返回状态为404,这样搜索引擎才知道,这个页面是找不到了。
而通常很多站长朋友们之所以对文章开头提到的认为“404页面自动跳转到首页会有问题”,原因通常是因为404页面跳转时设置不当,返回了200状态码又没有发现,结果搜索引擎抓取错误页时看到的是200状态,就认定网站上出现了大量的与首页相同页面,这种情况,被降权是显然的了。
有些站长图省事,直接在IDC提供的虚拟主机后台设置404页面,并在页面上放置了类似或者js方式的windwo.location跳转,结果是返回200状态。
301 :页面永久重定向时返回的HTTP状态。
目前公认的最正确的跳转方法,并且可以起到权重传递作用。
一般在程序作跳转时先发送301状态即可。
如PHP中发送:header (“HTTP/1.1 301 Moved Permanently”); ASP中发送Response.Status=“301 Moved Permanently”302 :页面临时跳转时返回的状态。
现在普遍认为使用302跳转容易被搜索引擎视为作弊,据传是早期302跳转被滥用而留下的后遗症。
Linux服务器安装JDK、MySQL和Tomcat,发布web项目解决404问题

Linux服务器安装JDK、MySQL和Tomcat,发布web项⽬解决404问题你是否也遇到这样的问题Linux⾥安装了JDK、Tomcat和MySQL,但是⽆法访问Tomcat下webapps中的项⽬,404。
⾸先你要确保环境没有问题,其次就是项⽬代码的问题。
在本机上能运⾏,现在怎会404呢?解决思路:连接数据库的四要素有问题,数据库不在同⼀个地⽅,有可能名字也变了。
还有就是useUnicode=true&characterEncoding=UTF-8,解决中⽂检索不到数据的问题。
仔细阅读前提说明:安装包全部在window环境下载好,必须以.tar.gz结尾,才能在Linux环境使⽤。
使⽤ Xftp 上传到虚拟机上/home/mytest/⽬录下。
JDK的下载、安装下载JDK解压缩 tar.gz⽂件:tar -zxvf jdk-8u121-linux-x64.tar.gz -C /usr/local/,其中 -C /usr/local 是指定解压后的⽂件存放位置Linux使⽤默认JDK环境,需要在/etc⽬录下的profile⽂件最后加上:export JAVA_HOME=/usr/local/jdk1.8.0_121export PATH=$JAVA_HOME/bin:$PATHexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jarprofile⽂件修改成,执⾏ source /etc/profile 让上⾯的配置⽣效执⾏java -version检查是否配置成功Tomcat下载安装tomcat官⽹:国内镜像:解压缩:tar -zxvf apache-tomcat-8.5.16.tar.gz -C /usr/local/启动:在tomcat安装⽬录/bin下执⾏./startup.sh关闭:./shutdown.sh⽇志⽂件:在tomcat安装⽬录/logs下⽣成⽇志⽂件,如果项⽬运⾏出现问题,在这⾥查看⽇志⽂件。
rfc5652.Cryptographic Message Syntax (CMS)

Network Working Group R. Housley Request for Comments: 5652 Vigil Security Obsoletes: 3852 September 2009 Category: Standards TrackCryptographic Message Syntax (CMS)AbstractThis document describes the Cryptographic Message Syntax (CMS). This syntax is used to digitally sign, digest, authenticate, or encryptarbitrary message content.Status of This MemoThis document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions forimprovements. Please refer to the current edition of the "InternetOfficial Protocol Standards" (STD 1) for the standardization stateand status of this protocol. Distribution of this memo is unlimited. Copyright and License NoticeCopyright (c) 2009 IETF Trust and the persons identified as thedocument authors. All rights reserved.This document is subject to BCP 78 and the IETF Trust’s LegalProvisions Relating to IETF Documents(/license-info) in effect on the date ofpublication of this document. Please review these documentscarefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e ofthe Trust Legal Provisions and are provided without warranty asdescribed in the BSD License.This document may contain material from IETF Documents or IETFContributions published or made publicly available before November10, 2008. The person(s) controlling the copyright in some of thismaterial may not have granted the IETF Trust the right to allowmodifications of such material outside the IETF Standards Process.Without obtaining an adequate license from the person(s) controlling the copyright in such materials, this document may not be modifiedoutside the IETF Standards Process, and derivative works of it maynot be created outside the IETF Standards Process, except to formatit for publication as an RFC or to translate it into languages other than English.Housley Standards Track [Page 1]Table of Contents1. Introduction (3)1.1. Evolution of the CMS (4)1.1.1. Changes Since PKCS #7 Version 1.5 (4)1.1.2. Changes Since RFC 2630 (4)1.1.3. Changes Since RFC 3369 (5)1.1.4. Changes Since RFC 3852 (5)1.2. Terminology (5)1.3. Version Numbers (6)2. General Overview (6)3. General Syntax (7)4. Data Content Type (7)5. Signed-data Content Type (8)5.1. SignedData Type (9)5.2. EncapsulatedContentInfo Type (11)5.2.1. Compatibility with PKCS #7 (12)5.3. SignerInfo Type (13)5.4. Message Digest Calculation Process (16)5.5. Signature Generation Process (16)5.6. Signature Verification Process (17)6. Enveloped-Data Content Type (17)6.1. EnvelopedData Type (18)6.2. RecipientInfo Type (21)6.2.1. KeyTransRecipientInfo Type (22)6.2.2. KeyAgreeRecipientInfo Type (23)6.2.3. KEKRecipientInfo Type (25)6.2.4. PasswordRecipientInfo Type (26)6.2.5. OtherRecipientInfo Type (27)6.3. Content-encryption Process (27)6.4. Key-Encryption Process (28)7. Digested-Data Content Type (28)8. Encrypted-Data Content Type (29)9. Authenticated-Data Content Type (30)9.1. AuthenticatedData Type (31)9.2. MAC Generation (33)9.3. MAC Verification (34)10. Useful Types (34)10.1. Algorithm Identifier Types (35)10.1.1. DigestAlgorithmIdentifier (35)10.1.2. SignatureAlgorithmIdentifier (35)10.1.3. KeyEncryptionAlgorithmIdentifier (35)10.1.4. ContentEncryptionAlgorithmIdentifier (36)10.1.5. MessageAuthenticationCodeAlgorithm (36)10.1.6. KeyDerivationAlgorithmIdentifier (36)10.2. Other Useful Types (36)10.2.1. RevocationInfoChoices (36)10.2.2. CertificateChoices (37)Housley Standards Track [Page 2]10.2.3. CertificateSet (38)10.2.4. IssuerAndSerialNumber (38)10.2.5. CMSVersion (39)10.2.6. UserKeyingMaterial (39)10.2.7. OtherKeyAttribute (39)11. Useful Attributes (39)11.1. Content Type (40)11.2. Message Digest (40)11.3. Signing Time (41)11.4. Countersignature (42)12. ASN.1 Modules (43)12.1. CMS ASN.1 Module (44)12.2. Version 1 Attribute Certificate ASN.1 Module (51)13. References (52)13.1. Normative References (52)13.2. Informative References (53)14. Security Considerations (54)15. Acknowledgments (56)1. IntroductionThis document describes the Cryptographic Message Syntax (CMS). This syntax is used to digitally sign, digest, authenticate, or encryptarbitrary message content.The CMS describes an encapsulation syntax for data protection. Itsupports digital signatures and encryption. The syntax allowsmultiple encapsulations; one encapsulation envelope can be nestedinside another. Likewise, one party can digitally sign somepreviously encapsulated data. It also allows arbitrary attributes,such as signing time, to be signed along with the message content,and it provides for other attributes such as countersignatures to be associated with a signature.The CMS can support a variety of architectures for certificate-based key management, such as the one defined by the PKIX (Public KeyInfrastructure using X.509) working group [PROFILE].The CMS values are generated using ASN.1 [X.208-88], using BER-encoding (Basic Encoding Rules) [X.209-88]. Values are typicallyrepresented as octet strings. While many systems are capable oftransmitting arbitrary octet strings reliably, it is well known that many electronic mail systems are not. This document does not address mechanisms for encoding octet strings for reliable transmission insuch environments.Housley Standards Track [Page 3]1.1. Evolution of the CMSThe CMS is derived from PKCS #7 version 1.5, which is documented inRFC 2315 [PKCS#7]. PKCS #7 version 1.5 was developed outside of the IETF; it was originally published as an RSA Laboratories TechnicalNote in November 1993. Since that time, the IETF has takenresponsibility for the development and maintenance of the CMS.Today, several important IETF Standards-Track protocols make use ofthe CMS.This section describes that changes that the IETF has made to the CMS in each of the published versions.1.1.1. Changes Since PKCS #7 Version 1.5RFC 2630 [CMS1] was the first version of the CMS on the IETFStandards Track. Wherever possible, backward compatibility with PKCS #7 version 1.5 is preserved; however, changes were made toaccommodate version 1 attribute certificate transfer and to supportalgorithm-independent key management. PKCS #7 version 1.5 includedsupport only for key transport. RFC 2630 adds support for keyagreement and previously distributed symmetric key-encryption keytechniques.1.1.2. Changes Since RFC 2630RFC 3369 [CMS2] obsoletes RFC 2630 [CMS1] and RFC 3211 [PWRI].Password-based key management is included in the CMS specification,and an extension mechanism to support new key management schemeswithout further changes to the CMS is specified. Backwardcompatibility with RFC 2630 and RFC 3211 is preserved; however,version 2 attribute certificate transfer is added, and the use ofversion 1 attribute certificates is deprecated.Secure/Multipurpose Internet Mail Extensions (S/MIME) v2 signatures[MSG2], which are based on PKCS #7 version 1.5, are compatible withS/MIME v3 signatures [MSG3]and S/MIME v3.1 signatures [MSG3.1].However, there are some subtle compatibility issues with signaturesbased on PKCS #7 version 1.5. These issues are discussed in Section 5.2.1. These issues remain with the current version of the CMS.Specific cryptographic algorithms are not discussed in this document, but they were discussed in RFC 2630. The discussion of specificcryptographic algorithms has been moved to a separate document[CMSALG]. Separation of the protocol and algorithm specificationsallows the IETF to update each document independently. Thisspecification does not require the implementation of any particular Housley Standards Track [Page 4]algorithms. Rather, protocols that rely on the CMS are expected tochoose appropriate algorithms for their environment. The algorithms may be selected from [CMSALG] or elsewhere.1.1.3. Changes Since RFC 3369RFC 3852 [CMS3] obsoletes RFC 3369 [CMS2]. As discussed in theprevious section, RFC 3369 introduced an extension mechanism tosupport new key management schemes without further changes to theCMS. RFC 3852 introduces a similar extension mechanism to supportadditional certificate formats and revocation status informationformats without further changes to the CMS. These extensions areprimarily documented in Sections 10.2.1 and 10.2.2. Backwardcompatibility with earlier versions of the CMS is preserved.The use of version numbers is described in Section 1.3.Since the publication of RFC 3369, a few errata have been noted.These errata are posted on the RFC Editor web site. These errorshave been corrected in this document.The text in Section 11.4 that describes the counter signatureunsigned attribute is clarified. Hopefully, the revised text isclearer about the portion of the SignerInfo signature that is covered by a countersignature.1.1.4. Changes Since RFC 3852This document obsoletes RFC 3852 [CMS3]. The primary reason for the publication of this document is to advance the CMS along thestandards maturity ladder.This document includes the clarifications that were originallypublished in RFC 4853 [CMSMSIG] regarding the proper handling of the SignedData protected content type when more than one digitalsignature is present.Since the publication of RFC 3852, a few errata have been noted.These errata are posted on the RFC Editor web site. These errorshave been corrected in this document.1.2. TerminologyIn this document, the key words MUST, MUST NOT, REQUIRED, SHOULD,SHOULD NOT, RECOMMENDED, MAY, and OPTIONAL are to be interpreted asdescribed in [STDWORDS].Housley Standards Track [Page 5]1.3. Version NumbersEach of the major data structures includes a version number as thefirst item in the data structure. The version numbers are intendedto avoid ASN.1 decode errors. Some implementations do not check the version number prior to attempting a decode, and if a decode erroroccurs, then the version number is checked as part of the errorhandling routine. This is a reasonable approach; it places errorprocessing outside of the fast path. This approach is also forgiving when an incorrect version number is used by the sender.Most of the initial version numbers were assigned in PKCS #7 version 1.5. Others were assigned when the structure was initially created. Whenever a structure is updated, a higher version number is assigned. However, to ensure maximum interoperability, the higher versionnumber is only used when the new syntax feature is employed. Thatis, the lowest version number that supports the generated syntax isused.2. General OverviewThe CMS is general enough to support many different content types.This document defines one protection content, ContentInfo.ContentInfo encapsulates a single identified content type, and theidentified type may provide further encapsulation. This documentdefines six content types: data, signed-data, enveloped-data,digested-data, encrypted-data, and authenticated-data. Additionalcontent types can be defined outside this document.An implementation that conforms to this specification MUST implement the protection content, ContentInfo, and MUST implement the data,signed-data, and enveloped-data content types. The other contenttypes MAY be implemented.As a general design philosophy, each content type permits single pass processing using indefinite-length Basic Encoding Rules (BER)encoding. Single-pass operation is especially helpful if content is large, stored on tapes, or is "piped" from another process. Single- pass operation has one significant drawback: it is difficult toperform encode operations using the Distinguished Encoding Rules(DER) [X.509-88] encoding in a single pass since the lengths of thevarious components may not be known in advance. However, signedattributes within the signed-data content type and authenticatedattributes within the authenticated-data content type need to betransmitted in DER form to ensure that recipients can verify acontent that contains one or more unrecognized attributes. Signedattributes and authenticated attributes are the only data types used in the CMS that require DER encoding.Housley Standards Track [Page 6]3. General SyntaxThe following object identifier identifies the content informationtype:id-ct-contentInfo OBJECT IDENTIFIER ::= { iso(1) member-body(2)us(840) rsadsi(113549) pkcs(1) pkcs9(9) smime(16) ct(1) 6 }The CMS associates a content type identifier with a content. Thesyntax MUST have ASN.1 type ContentInfo:ContentInfo ::= SEQUENCE {contentType ContentType,content [0] EXPLICIT ANY DEFINED BY contentType }ContentType ::= OBJECT IDENTIFIERThe fields of ContentInfo have the following meanings:contentType indicates the type of the associated content. It isan object identifier; it is a unique string of integers assignedby an authority that defines the content type.content is the associated content. The type of content can bedetermined uniquely by contentType. Content types for data,signed-data, enveloped-data, digested-data, encrypted-data, andauthenticated-data are defined in this document. If additionalcontent types are defined in other documents, the ASN.1 typedefined SHOULD NOT be a CHOICE type.4. Data Content TypeThe following object identifier identifies the data content type:id-data OBJECT IDENTIFIER ::= { iso(1) member-body(2)us(840) rsadsi(113549) pkcs(1) pkcs7(7) 1 }The data content type is intended to refer to arbitrary octetstrings, such as ASCII text files; the interpretation is left to the application. Such strings need not have any internal structure(although they could have their own ASN.1 definition or otherstructure).S/MIME uses id-data to identify MIME-encoded content. The use ofthis content identifier is specified in RFC 2311 for S/MIME v2[MSG2], RFC 2633 for S/MIME v3 [MSG3], and RFC 3851 for S/MIME v3.1[MSG3.1].Housley Standards Track [Page 7]The data content type is generally encapsulated in the signed-data,enveloped-data, digested-data, encrypted-data, or authenticated-data content type.5. Signed-data Content TypeThe signed-data content type consists of a content of any type andzero or more signature values. Any number of signers in parallel can sign any type of content.The typical application of the signed-data content type representsone signer’s digital signature on content of the data content type.Another typical application disseminates certificates and certificate revocation lists (CRLs).The process by which signed-data is constructed involves thefollowing steps:1. For each signer, a message digest, or hash value, is computed on the content with a signer-specific message-digest algorithm. If the signer is signing any information other than the content, the message digest of the content and the other information aredigested with the signer’s message digest algorithm (see Section 5.4), and the result becomes the "message digest."2. For each signer, the message digest is digitally signed using the signer’s private key.3. For each signer, the signature value and other signer-specificinformation are collected into a SignerInfo value, as defined in Section 5.3. Certificates and CRLs for each signer, and thosenot corresponding to any signer, are collected in this step.4. The message digest algorithms for all the signers and theSignerInfo values for all the signers are collected together with the content into a SignedData value, as defined in Section 5.1.A recipient independently computes the message digest. This message digest and the signer’s public key are used to verify the signaturevalue. The signer’s public key is referenced in one of two ways. It can be referenced by an issuer distinguished name along with anissuer-specific serial number to uniquely identify the certificatethat contains the public key. Alternatively, it can be referenced by a subject key identifier, which accommodates both certified anduncertified public keys. While not required, the signer’scertificate can be included in the SignedData certificates field. Housley Standards Track [Page 8]When more than one signature is present, the successful validation of one signature associated with a given signer is usually treated as a successful signature by that signer. However, there are someapplication environments where other rules are needed. Anapplication that employs a rule other than one valid signature foreach signer must specify those rules. Also, where simple matching of the signer identifier is not sufficient to determine whether thesignatures were generated by the same signer, the applicationspecification must describe how to determine which signatures weregenerated by the same signer. Support of different communities ofrecipients is the primary reason that signers choose to include more than one signature. For example, the signed-data content type might include signatures generated with the RSA signature algorithm andwith the Elliptic Curve Digital Signature Algorithm (ECDSA) signature algorithm. This allows recipients to verify the signature associated with one algorithm or the other.This section is divided into six parts. The first part describes the top-level type SignedData, the second part describesEncapsulatedContentInfo, the third part describes the per-signerinformation type SignerInfo, and the fourth, fifth, and sixth partsdescribe the message digest calculation, signature generation, andsignature verification processes, respectively.5.1. SignedData TypeThe following object identifier identifies the signed-data contenttype:id-signedData OBJECT IDENTIFIER ::= { iso(1) member-body(2)us(840) rsadsi(113549) pkcs(1) pkcs7(7) 2 }The signed-data content type shall have ASN.1 type SignedData:SignedData ::= SEQUENCE {version CMSVersion,digestAlgorithms DigestAlgorithmIdentifiers,encapContentInfo EncapsulatedContentInfo,certificates [0] IMPLICIT CertificateSet OPTIONAL,crls [1] IMPLICIT RevocationInfoChoices OPTIONAL,signerInfos SignerInfos }DigestAlgorithmIdentifiers ::= SET OF DigestAlgorithmIdentifierSignerInfos ::= SET OF SignerInfoHousley Standards Track [Page 9]The fields of type SignedData have the following meanings:version is the syntax version number. The appropriate valuedepends on certificates, eContentType, and SignerInfo. Theversion MUST be assigned as follows:IF ((certificates is present) AND(any certificates with a type of other are present)) OR((crls is present) AND(any crls with a type of other are present))THEN version MUST be 5ELSEIF (certificates is present) AND(any version 2 attribute certificates are present)THEN version MUST be 4ELSEIF ((certificates is present) AND(any version 1 attribute certificates are present)) OR (any SignerInfo structures are version 3) OR(encapContentInfo eContentType is other than id-data) THEN version MUST be 3ELSE version MUST be 1digestAlgorithms is a collection of message digest algorithmidentifiers. There MAY be any number of elements in thecollection, including zero. Each element identifies the messagedigest algorithm, along with any associated parameters, used byone or more signer. The collection is intended to list themessage digest algorithms employed by all of the signers, in anyorder, to facilitate one-pass signature verification.Implementations MAY fail to validate signatures that use a digest algorithm that is not included in this set. The message digesting process is described in Section 5.4.encapContentInfo is the signed content, consisting of a contenttype identifier and the content itself. Details of theEncapsulatedContentInfo type are discussed in Section 5.2.certificates is a collection of certificates. It is intended that the set of certificates be sufficient to contain certificationpaths from a recognized "root" or "top-level certificationauthority" to all of the signers in the signerInfos field. There may be more certificates than necessary, and there may becertificates sufficient to contain certification paths from two or more independent top-level certification authorities. There mayalso be fewer certificates than necessary, if it is expected that recipients have an alternate means of obtaining necessaryHousley Standards Track [Page 10]certificates (e.g., from a previous set of certificates). Thesigner’s certificate MAY be included. The use of version 1attribute certificates is strongly discouraged.crls is a collection of revocation status information. It isintended that the collection contain information sufficient todetermine whether the certificates in the certificates field arevalid, but such correspondence is not necessary. Certificaterevocation lists (CRLs) are the primary source of revocationstatus information. There MAY be more CRLs than necessary, andthere MAY also be fewer CRLs than necessary.signerInfos is a collection of per-signer information. There MAY be any number of elements in the collection, including zero. When the collection represents more than one signature, the successful validation of one of signature from a given signer ought to betreated as a successful signature by that signer. However, there are some application environments where other rules are needed.The details of the SignerInfo type are discussed in Section 5.3.Since each signer can employ a different digital signaturetechnique, and future specifications could update the syntax, all implementations MUST gracefully handle unimplemented versions ofSignerInfo. Further, since all implementations will not supportevery possible signature algorithm, all implementations MUSTgracefully handle unimplemented signature algorithms when they are encountered.5.2. EncapsulatedContentInfo TypeThe content is represented in the type EncapsulatedContentInfo:EncapsulatedContentInfo ::= SEQUENCE {eContentType ContentType,eContent [0] EXPLICIT OCTET STRING OPTIONAL }ContentType ::= OBJECT IDENTIFIERThe fields of type EncapsulatedContentInfo have the followingmeanings:eContentType is an object identifier. The object identifieruniquely specifies the content type.eContent is the content itself, carried as an octet string. TheeContent need not be DER encoded.Housley Standards Track [Page 11]The optional omission of the eContent within theEncapsulatedContentInfo field makes it possible to construct"external signatures". In the case of external signatures, thecontent being signed is absent from the EncapsulatedContentInfo value included in the signed-data content type. If the eContent valuewithin EncapsulatedContentInfo is absent, then the signatureValue is calculated and the eContentType is assigned as though the eContentvalue was present.In the degenerate case where there are no signers, theEncapsulatedContentInfo value being "signed" is irrelevant. In this case, the content type within the EncapsulatedContentInfo value being "signed" MUST be id-data (as defined in Section 4), and the contentfield of the EncapsulatedContentInfo value MUST be omitted.5.2.1. Compatibility with PKCS #7This section contains a word of warning to implementers that wish to support both the CMS and PKCS #7 [PKCS#7] SignedData content types.Both the CMS and PKCS #7 identify the type of the encapsulatedcontent with an object identifier, but the ASN.1 type of the content itself is variable in PKCS #7 SignedData content type.PKCS #7 defines content as:content [0] EXPLICIT ANY DEFINED BY contentType OPTIONALThe CMS defines eContent as:eContent [0] EXPLICIT OCTET STRING OPTIONALThe CMS definition is much easier to use in most applications, and it is compatible with both S/MIME v2 and S/MIME v3. S/MIME signedmessages using the CMS and PKCS #7 are compatible because identicalsigned message formats are specified in RFC 2311 for S/MIME v2[MSG2], RFC 2633 for S/MIME v3 [MSG3], and RFC 3851 for S/MIME v3.1[MSG3.1]. S/MIME v2 encapsulates the MIME content in a Data type(that is, an OCTET STRING) carried in the SignedData contentInfocontent ANY field, and S/MIME v3 carries the MIME content in theSignedData encapContentInfo eContent OCTET STRING. Therefore, inS/MIME v2, S/MIME v3, and S/MIME v3.1, the MIME content is placed in an OCTET STRING and the message digest is computed over the identical portions of the content. That is, the message digest is computedover the octets comprising the value of the OCTET STRING, neither the tag nor length octets are included.Housley Standards Track [Page 12]There are incompatibilities between the CMS and PKCS #7 SignedDatatypes when the encapsulated content is not formatted using the Datatype. For example, when an RFC 2634 signed receipt [ESS] isencapsulated in the CMS SignedData type, then the Receipt SEQUENCE is encoded in the SignedData encapContentInfo eContent OCTET STRING and the message digest is computed using the entire Receipt SEQUENCEencoding (including tag, length and value octets). However, if anRFC 2634 signed receipt is encapsulated in the PKCS #7 SignedDatatype, then the Receipt SEQUENCE is DER encoded [X.509-88] in theSignedData contentInfo content ANY field (a SEQUENCE, not an OCTETSTRING). Therefore, the message digest is computed using only thevalue octets of the Receipt SEQUENCE encoding.The following strategy can be used to achieve backward compatibility with PKCS #7 when processing SignedData content types. If theimplementation is unable to ASN.1 decode the SignedData type usingthe CMS SignedData encapContentInfo eContent OCTET STRING syntax,then the implementation MAY attempt to decode the SignedData typeusing the PKCS #7 SignedData contentInfo content ANY syntax andcompute the message digest accordingly.The following strategy can be used to achieve backward compatibility with PKCS #7 when creating a SignedData content type in which theencapsulated content is not formatted using the Data type.Implementations MAY examine the value of the eContentType, and thenadjust the expected DER encoding of eContent based on the objectidentifier value. For example, to support Microsoft Authenticode[MSAC], the following information MAY be included:eContentType Object Identifier is set to { 1 3 6 1 4 1 311 2 1 4 } eContent contains DER-encoded Authenticode signing information5.3. SignerInfo TypePer-signer information is represented in the type SignerInfo:SignerInfo ::= SEQUENCE {version CMSVersion,sid SignerIdentifier,digestAlgorithm DigestAlgorithmIdentifier,signedAttrs [0] IMPLICIT SignedAttributes OPTIONAL,signatureAlgorithm SignatureAlgorithmIdentifier,signature SignatureValue,unsignedAttrs [1] IMPLICIT UnsignedAttributes OPTIONAL }Housley Standards Track [Page 13]。
RFC2560(x.509因特网公钥基础设施在线证书状态协议——OCSP )

组织:中国互动出版网(/)RFC文档中文翻译计划(/compters/emook/aboutemook.htm)E-mail:ouyang@译者:姚玥(yaoyue baboon@)译文发布时间:2001-6-8版权:本中文翻译文档版权归中国互动出版网所有。
可以用于非商业用途自由转载,但必须保留本文档的翻译及版权信息。
Network Working Group M. Myers Request for Comments: 2560 VeriSign Category: Standards Track R. AnkneyCertCoA. MalpaniValiCertS. GalperinMy CFOC. AdamsEntrust Technologies June 1999x.509因特网公钥基础设施在线证书状态协议——OCSP (RFC2560 X.509 Internet Public Key Infrastructure Online Certificate StatusProtocol – OCSP)本备忘录的状态本文档讲述了一种Internet社区的Internet标准跟踪协议,它需要进一步进行讨论和建议以得到改进。
请参考最新版的“Internet正式协议标准”(STD1)来获得本协议的标准化程度和状态。
本备忘录的发布不受任何限制。
版权声明Copyright (C) The Internet Society (1999). All Rights Reserved.1. 摘要本文档描述了无需证书撤消列表就可以决定一张数字证书当前状态的协议。
附加描述PKIX操作必要条件的机制在另外的文档中有详细说明。
第二章中有协议的概述。
功能必要条件在第三章中有详细描述。
第四章是具体协议。
第五章我们将讨论一些和协议有关的安全问题。
附录A定义了在HTTP之上的OCSP,附录B有ASN.1的语义元素,附录C详细描述了信息的mime类型。
SMTP协议RFC文档中文版

RFC821 简单邮件传输协议(SMTP)(RFC821 SIMPLE MAIL TRANSFER PROTOCOL)目录1. 介绍 22. SMTP模型 33. SMTP过程 43.1. MAIL 43.2. 转发 53.3. 确认和扩展 63.4. 发送信件(mailing)和获得信件(sending) 7 3.5. 打开和关闭73.6. 转发 83.7. 域93.8. 改变角色94. SMTP说明94.1. SMTP命令94.1.1. 命令语法94.1.2. COMMAND语法格式134.2. SMTP响应154.3. 命令和应答序列164.4. 状态图174.5. 详细内容184.5.1. 最小实现184.5.2. 透明性194.5.3. 大小19附录 A TCP传输服务19附录 B NCP传输服务20附录 C NITS 20附录 D X.25传输服务 20附录 E 应答码构成方法20附录 F 一些例子22参考资料361. 介绍简单邮件传输协议(SMTP)的目标是可靠高效地传送邮件,它独立于传送子系统而且仅要求一条可以保证传送数据单元顺序的通道。
附录A,B,C和D描述了不同传送服务下SMTP的使用。
在名词表中还定义了本文档中使用的术语。
SMTP的一个重要特点是它能够在传送中接力传送邮件,传送服务提供了进程间通信环境(IPCE),此环境可以包括一个网络,几个网络或一个网络的子网。
理解到传送系统(或IPCE)不是一对一的是很重要的。
进程可能直接和其它进程通过已知的IPCE通信。
邮件是一个应用程序或进程间通信。
邮件可以通过连接在不同IPCE上的进程跨网络进行邮件传送。
更特别的是,邮件可以通过不同网络上的主机接力式传送。
2. SMTP模型SMTP设计基于以下通信模型:针对用户的邮件请求,发送SMTP建立与接收SMTP之间建立一个双向传送通道。
接收SMTP可以是最终接收者也可以是中间传送者。
SMTP命令由发送SMTP发出,由接收SMTP接收,而应答则反方面传送。
HTTP 状态码的介绍,及其常见404错误码的解决方案

当搜索引擎蜘蛛在请求某个URL时得到“404”状态回应时,即知道该URL已经失效,便不再索引该网页,并向数据中心反馈将该URL表示的网页从索引数据库中删除,当然,删除过程有可能需要很长时间;而当搜索引擎得到“200”状态回应时,则会认为该url是有效的,便会去索引,并会将其收录到索引数据库,这样的结果便是这两个不同的url具有完全相同的内容:自定义404错误页面的内容,这会导致出现複製网页问题。对搜索引擎而言,特别是Google,不但很难获得信任指数TrustRank,也会大大降低Google对网站质量的评定。 (为什麽会出现返回“200”状态码的情况??请参看下面内容“自定义404错误页面的基本原则”)
因此,很多网站均使用自定义404错误的方式以提供用户体验避免用户流失。一般而言,自定义404页面通用的做法是在页面中放置网站快速导航链接、搜索框以及网站提供的特色服务,这样可以有效的帮助用户访问站点并获取需要的信息。
HTTP404对SEO的影响
自定义404错误页面是提供用户体验的很好的做法,但在应用过程中往往并未注意到对搜索引擎的影响,譬如:错误的服务器端配置导致返回“200”状态码或自定义404错误页面使用Meta Refresh导致返回“302”状态码。正确设置的自定义404错误页面,不仅应当能够正确地显示,同时,应该返回“404”错误代码,而不是“200”或“302”。虽然对访问的用户而言,HTTP状态码究竟是“404”还是“200”来说并没有什麽区别,但对搜索引擎而言,这则是相当重要的。
(二)自定义404错误页使用Meta Refresh返回“302”状态码
常常看到许多网站的自定义404错误页面採取类似这样的形式:首先显示一段错误信息,然后,通过Meta Refresh将页面跳转到网站首页、网页地图或其他类似页。根据具体实现方式不同,这类பைடு நூலகம்04页面可能返回“200”状态码,也可能返回“302”,但不论哪种,从SEO技术角度看,均不是一种合适的选择。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Network Working Group D. Pinkas Request for Comments: 4043 Bull Category: Standards Track T. Gindin IBM May 2005 Internet X.509 Public Key InfrastructurePermanent IdentifierStatus of This MemoThis document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions forimprovements. Please refer to the current edition of the "InternetOfficial Protocol Standards" (STD 1) for the standardization stateand status of this protocol. Distribution of this memo is unlimited. Copyright NoticeCopyright (C) The Internet Society (2005).AbstractThis document defines a new form of name, called permanentidentifier, that may be included in the subjectAltName extension of a public key certificate issued to an entity.The permanent identifier is an optional feature that may be used by a CA to indicate that two or more certificates relate to the sameentity, even if they contain different subject name (DNs) ordifferent names in the subjectAltName extension, or if the name orthe affiliation of that entity stored in the subject or another name form in the subjectAltName extension has changed.The subject name, carried in the subject field, is only unique foreach subject entity certified by the one CA as defined by the issuer name field. However, the new name form can carry a name that isunique for each subject entity certified by a CA.Pinkas & Gindin Standards Track [Page 1]Table of Contents1. Introduction (2)2. Definition of a Permanent Identifier (3)3. IANA Considerations (6)4. Security Considerations (6)5. References (7)5.1. Normative References (7)5.2. Informative References (8)Appendix A. ASN.1 Syntax (9)A.1. 1988 ASN.1 Module (9)A.2. 1993 ASN.1 Module (10)Appendix B. OID’s for organizations (11)B.1. Using IANA (Internet Assigned Numbers Authority) (11)B.2. Using an ISO Member Body (12)B.3. Using an ICD (International Code Designator) FromBritish Standards Institution to Specify a New oran Existing Identification Scheme (12)Authors’ Addresses (14)Full Copyright Statement (15)1. IntroductionThe key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT","SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119].This specification is based on [RFC3280], which defines underlyingcertificate formats and semantics needed for a full implementation of this standard.The subject field of a public key certificate identifies the entityassociated with the public key stored in the subject public keyfield. Names and identities of a subject may be carried in thesubject field and/or the subjectAltName extension. Where subjectfield is non-empty, it MUST contain an X.500 distinguished name (DN). The DN MUST be unique for each subject entity certified by a singleCA as defined by the issuer name field.The subject name changes whenever any of the components of that name gets changed. There are several reasons for such a change to happen. For employees of a company or organization, the person may get adifferent position within the same company and thus will move from one organization unit to another one. Including the organization unit in the name may however be very useful to allow the relyingparties (RP’s) using that certificate to identify the rightindividual.Pinkas & Gindin Standards Track [Page 2]For citizens, an individual may change their name by legalprocesses, especially as a result of marriage.Any certificate subject identified by geographical location mayrelocate and change at least some of the location attributes(e.g., country name, state or province, locality, or street).A permanent identifier consists of an identifier value assignedwithin a given naming space by the organization which isauthoritative for that naming space. The organization assigning the identifier value may be the CA that has issued the certificate or adifferent organization called an Assigner Authority.An Assigner Authority may be a government, a government agency, acorporation, or any other sort of organization. It MUST have aunique identifier to distinguish it from any other such authority.In this standard, that identifier MUST be an object identifier.A permanent identifier may be useful in three contexts: accesscontrol, non-repudiation and audit records.For access control, the permanent identifier may be used in an ACL (Access Control List) instead of the DN or any other form of name and would not need to be changed, even if the subject name of the entity changes. For non-repudiation, the permanent identifier may be used to link different transactions to the same entity, evenwhen the subject name of the entity changes.For audit records, the permanent identifier may be used to linkdifferent audit records to the same entity, even when the subject name of the entity changes.For two certificates which have been both verified to be validaccording to a given validation policy and which contain a permanent identifier, those certificates relate to the same entity if theirpermanent identifiers match, whatever the content of the DN or other subjectAltName components may be.Since the use of permanent identifiers may conflict with privacy, CAs SHOULD advertise to purchasers of certificates the use of permanentidentifiers in certificates.2. Definition of a Permanent IdentifierThis Permanent Identifier is a name defined as a form of otherNamefrom the GeneralName structure in SubjectAltName, as defined in[X.509] and [RFC3280].Pinkas & Gindin Standards Track [Page 3]A CA which includes a permanent identifier in a certificate iscertifying that any public key certificate containing the same values for that identifier refers to the same entity.The use of a permanent identifier is OPTIONAL. The permanentidentifier is defined as follows:id-on-permanentIdentifier OBJECT IDENTIFIER ::= { id-on 3 }PermanentIdentifier ::= SEQUENCE {identifierValue UTF8String OPTIONAL,-- if absent, use a serialNumber attribute,-- if there is such an attribute present-- in the subject DNassigner OBJECT IDENTIFIER OPTIONAL-- if absent, the assigner is-- the certificate issuer}The identifierValue field is optional.When the identifierValue field is present, then theidentifierValue supports one syntax: UTF8String.When the identifierValue field is absent, then the value of theserialNumber attribute (as defined in section 5.2.9 of [X.520])from the deepest RDN of the subject DN is the value to be takenfor the identifierValue. In such a case, there MUST be at leastone serialNumber attribute in the subject DN, otherwise thePermanentIdentifier SHALL NOT be used.The assigner field is optional.When the assigner field is present, then it is an OID whichidentifies a naming space, i.e., both an Assigner Authority andthe type of that field. Characteristically, the prefix of the OID identifies the Assigner Authority, and a suffix is used toidentify the type of permanent identifier.When the assigner field is absent, then the permanent identifieris locally unique to the CA.The various combinations are detailed below:1. Both the assigner and the identifierValue fields are present:The identifierValue is the value for that type of identifier. The assigner field identifies the Assigner Authority and the type ofpermanent identifier being identified.Pinkas & Gindin Standards Track [Page 4]such a case, two permanent identifiers of this type match if andonly if their assigner fields match and the contents of theidentifierValue field in the two permanent identifiers consist of the same Unicode code points presented in the same order.2. The assigner field is absent and the identifierValue field ispresent:The Assigner Authority is the CA that has issued the certificate. The identifierValue is given by the CA and the permanentidentifier is only local to the CA that has issued thecertificate.In such a case, two permanent identifiers of this type match ifand only if the issuer DN’s in the certificates which contain them match using the distinguishedNameMatch rule, as defined in X.501, and the two values of the identifierValue field consist of thesame Unicode code points presented in the same order.3. Both the assigner and the identifierValue fields are absent:If there are one or more RDNs containing a serialNumber attribute (alone or accompanied by other attributes), then the valuecontained in the serialNumber of the deepest such RDN SHALL beused as the identifierValue; otherwise, the Permanent Identifierdefinition is invalid and the Permanent Identifier SHALL NOT beused.The permanent identifier is only local to the CA that has issuedthe certificate. In such a case, two permanent identifiers ofthis type match if and only if the issuer DN’s in the certificates which contain them match and the serialNumber attributes withinthe subject DN’s of those same certificates also match using thecaseIgnoreMatch rule.4. The assigner field is present and the identifierValue field isabsent:If there are one or more RDNs containing a serialNumber attribute (alone or accompanied by other attributes), then the valuecontained in the serialNumber of the deepest such RDN SHALL beused as the identifierValue; otherwise, the Permanent Identifierdefinition is invalid and the Permanent Identifier SHALL NOT beused.The assigner field identifies the Assigner Authority and the type of permanent identifier being identified.Pinkas & Gindin Standards Track [Page 5]such a case, two permanent identifiers of this type match if andonly if their assigner fields match and the contents of theserialNumber attributes within the subject DN’s of those samecertificates match using the caseIgnoreMatch rule.Note: The full arc of the object identifier used to identify thepermanent identifier name form is derived using:id-pkix OBJECT IDENTIFIER ::= { iso(1) identified-organization(3) dod(6) internet(1) security(5) mechanisms(5) pkix(7) }id-on OBJECT IDENTIFIER ::= { id-pkix 8 } -- other name forms3. IANA ConsiderationsNo IANA actions are necessary. However, a Private Enterprise Number may be used to construct an OID for the assigner field (see AnnexB.1.).4. Security ConsiderationsA given entity may have at an instant of time or at differentinstants of time multiple forms of identities. If the permanentidentifier is locally unique to the CA (i.e., the assigner field isnot present), then two certificates from the same CA can be compared. When two certificates contain identical permanent identifiers, then a relying party may determine that they refer to the same entity.If the permanent identifier is globally unique among all CAs (i.e.,the assigner field is present), then two certificates from different CAs can be compared. When they contain two identical permanentidentifiers, then a relying party may determine that they refer tothe same entity. It is the responsibility of the CA to verify thatthe permanent identifier being included in the certificate refers to the subject being certified.The permanent identifier identifies the entity, irrespective of anyattribute extension. When a public key certificate containsattribute extensions, the permanent identifier, if present, shouldnot be used for access control purposes but only for audit purposes. The reason is that since these attributes may change, access could be granted on attributes that were originally present in a certificateissued to that entity but are no longer present in the currentcertificate.Pinkas & Gindin Standards Track [Page 6]Subject names in certificates are chosen by the issuing CA and aremandated to be unique for each CA; so there can be no name collision between subject names from the same CA. Such a name may be an end-entity name when the certificate is a leaf certificate, or a CA name, when it is a CA certificate.Since a name is only unique towards its superior CA, unless somenaming constraints are being used, a name would only be guaranteed to be globally unique when considered to include a sequence of all thenames of the superior CAs. Thus, two certificates that are issuedunder the same issuer DN and which contain the same permanentidentifier extension without an assigner field do not necessarilyrefer to the same entity.Additional checks need to be done, e.g., to check if the public keyvalues of the two CAs which have issued the certificates to becompared are identical or if the sequence of CA names in thecertification path from the trust anchor to the CA are identical.When the above checks fail, the permanent identifiers may still match if there has been a CA key rollover. In such a case the checking is more complicated.The certification of different CAs with the same DN by different CAs has other negative consequences in various parts of the PKI, notably rendering the IssuerAndSerialNumber structure in [RFC3852] section10.2.4 ambiguous.The permanent identifier allows organizations to create links between different certificates associated with an entity issued with orwithout overlapping validity periods. This ability to link different certificates may conflict with privacy. It is therefore importantthat a CA clearly disclose any plans to issue certificates whichinclude a permanent identifier to potential subjects of thosecertificates.5. References5.1. Normative References[RFC2119] Bradner, S., "Key words for use in RFCs to IndicateRequirement Levels", BCP 14, RFC 2119, March 1997.[RFC3280] Housley, R., Polk, W., Ford, W., and D. Solo, "InternetX.509 Public Key Infrastructure Certificate andCertificate Revocation List (CRL) Profile", RFC 3280,April 2002.Pinkas & Gindin Standards Track [Page 7][UTF-8] Yergeau, F., "UTF-8, a transformation format of ISO10646", STD 63, RFC 3629, November 2003.[X.501] ITU-T Rec X.501 | ISO 9594-2: 2001: Information technology - Open Systems Interconnection - The Directory: Models,February 2001.5.2. Informative References[RFC3852] Housley, R., "Cryptographic Message Syntax (CMS)", RFC3852, July 2004.[X.509] ITU-T Recommendation X.509 (1997 E): InformationTechnology - Open Systems Interconnection - The Directory: Authentication Framework, June 1997.[X.520] ITU-T Recommendation X.520: Information Technology - Open Systems Interconnection - The Directory: SelectedAttribute Types, June 1997.[X.660] ITU-T Recommendation X.660: Information Technology - Open Systems Interconnection - Procedures for the Operation of OSI Registration Authorities: General Procedures, 1992.[X.680] ITU-T Recommendation X.680: Information Technology -Abstract Syntax Notation One, 1997.Pinkas & Gindin Standards Track [Page 8]Appendix A. ASN.1 SyntaxAs in RFC 2459, ASN.1 modules are supplied in two different variants of the ASN.1 syntax.This section describes data objects used by conforming PKI components in an "ASN.1-like" syntax. This syntax is a hybrid of the 1988 and1993 ASN.1 syntaxes. The 1988 ASN.1 syntax is augmented with 1993the UNIVERSAL Type UTF8String.The ASN.1 syntax does not permit the inclusion of type statements in the ASN.1 module, and the 1993 ASN.1 standard does not permit use of the new UNIVERSAL types in modules using the 1988 syntax. As aresult, this module does not conform to either version of the ASN.1standard.Appendix A.1 may be parsed by an 1988 ASN.1-parser by replacing thedefinitions for the UNIVERSAL Types with the 1988 catch-all "ANY".Appendix A.2 may be parsed "as is" by an 1997-compliant ASN.1 parser. In case of discrepancies between these modules, the 1988 module isthe normative one.Appendix A.1. 1988 ASN.1 ModulePKIXpermanentidentifier88 {iso(1) identified-organization(3) dod(6)internet(1) security(5) mechanisms(5) pkix(7) id-mod(0)id-mod-perm-id-88(28) }DEFINITIONS EXPLICIT TAGS ::=BEGIN-- EXPORTS ALL --IMPORTS-- UTF8String, / move hyphens before slash if UTF8String does not-- resolve with your compiler-- The content of this type conforms to [UTF-8].id-pkixFROM PKIX1Explicit88 { iso(1) identified-organization(3) dod(6) internet(1) security(5) mechanisms(5) pkix(7)id-mod(0) id-pkix1-explicit(18) } ;-- from [RFC3280]Pinkas & Gindin Standards Track [Page 9]-- Permanent identifier Object Identifier and Syntaxid-on OBJECT IDENTIFIER ::= { id-pkix 8 }id-on-permanentIdentifier OBJECT IDENTIFIER ::= { id-on 3 }PermanentIdentifier ::= SEQUENCE {identifierValue UTF8String OPTIONAL,-- if absent, use the serialNumber attribute-- if there is a single such attribute present -- in the subject DNassigner OBJECT IDENTIFIER OPTIONAL-- if absent, the assigner is-- the certificate issuer}ENDAppendix A.2. 1993 ASN.1 ModulePKIXpermanentidentifier93 {iso(1) identified-organization(3) dod(6)internet(1) security(5) mechanisms(5) pkix(7) id-mod(0)id-mod-perm-id-93(29) }DEFINITIONS EXPLICIT TAGS ::=BEGIN-- EXPORTS ALL --IMPORTSid-pkixFROM PKIX1Explicit88 { iso(1) identified-organization(3)dod(6) internet(1) security(5) mechanisms(5) pkix(7)id-mod(0) id-pkix1-explicit(18) }-- from [RFC3280]ATTRIBUTEFROM InformationFramework {joint-iso-itu-t ds(5) module(1) informationFramework(1) 4};-- from [X.501]-- Permanent identifier Object Identifiersid-on OBJECT IDENTIFIER ::= { id-pkix 8 }id-on-permanentIdentifier OBJECT IDENTIFIER ::= { id-on 3 }Pinkas & Gindin Standards Track [Page 10]-- Permanent IdentifierpermanentIdentifier ATTRIBUTE ::= {WITH SYNTAX PermanentIdentifierID id-on-permanentIdentifier }PermanentIdentifier ::= SEQUENCE {identifierValue UTF8String OPTIONAL,-- if absent, use the serialNumber attribute-- if there is a single such attribute present-- in the subject DNassigner OBJECT IDENTIFIER OPTIONAL-- if absent, the assigner is-- the certificate issuer}ENDAppendix B. OID’s for OrganizationsIn order to construct an OID for the assigner field, organizationsneed first to have a registered OID for themselves. Such an OID must be obtained from a registration authority following [X.660]. In some cases, OID’s are provided for free. In other cases a one-time fee is required. The main difference lies in the nature of the information that is collected at the time of registration and how thisinformation is verified for its accuracy.Appendix B.1. Using IANA (Internet Assigned Numbers Authority)The application form for a Private Enterprise Number in the IANA’sOID list is: /cgi-bin/enterprise.pl.Currently, IANA assigns numbers for free. The IANA-registeredPrivate Enterprises prefix is:.dod.internet.private.enterprise (1.3.6.1.4.1)These numbers are used, among other things, for defining private SNMP MIBs.The official assignments under this OID are stored in the IANA file"enterprise-numbers" available at:/assignments/enterprise-numbersPinkas & Gindin Standards Track [Page 11]Appendix B.2. Using an ISO Member BodyISO has defined the OID structure in a such a way so that every ISOmember-body has its own unique OID. Then every ISO member-body isfree to allocate its own arc space below.Organizations and enterprises may contact the ISO member-body wheretheir organization or enterprise is established to obtain anorganization/enterprise OID.Currently, ISO members do not assign organization/enterprise OID’sfor free.Most of them do not publish registries of such OID’s which they have assigned, sometimes restricting the access to registeredorganizations or preferring to charge inquirers for the assignee ofan OID on a per-inquiry basis. The use of OID’s from an ISO memberorganization which does not publish such a registry may impose extra costs on the CA that needs to make sure that the OID corresponds tothe registered organization.As an example, AFNOR (Association Francaise de Normalisation - theFrench organization that is a member of ISO) has defined an arc toallocate OID’s for companies:{iso (1) member-body (2) fr (250) type-org (1) organisation (n)} Appendix B.3. Using an ICD (International Code Designator) From British Standards Institution to Specify a New or an ExistingIdentification SchemeThe International Code Designator (ICD) is used to uniquely identify an ISO 6523 compliant organization identification scheme. ISO 6523is a standard that defines the proper structure of an identifier and the registration procedure for an ICD. The conjunction of the ICDwith an identifier issued by the registration authority is worldwide unique.The basic structure of the code contains the following components:- the ICD value: The International Code Designator issued to theidentification scheme makes the identifier worldwide unique (up to 4 digits),- the Organization, usually a company or governmental body (up to 35 characters),Pinkas & Gindin Standards Track [Page 12]- an Organization Part (OPI - Organization Part Identifier). Anidentifier allocated to a particular Organization Part (optional, up to 35 characters)The ICD is also equivalent to an object identifier (OID) under thearc {1(iso). 3(identified organization)}.On behalf of ISO, British Standards Institution (BSI) is theRegistration Authority for organizations under the arc {iso (1)org(3)}. This means BSI registers code issuing authorities(organizations) by ICD values which are equivalent to OIDs of theform {iso (1) org(3) icd(xxxx)}. The corresponding IdentifierValueis the code value of the scheme identified by icd(xxxx).As an example, the ICD 0012 was allocated to European ComputerManufacturers Association: ECMA. Thus the OID for ECMA is {iso(1)org(3) ecma(12)}.For registration with BSI, a "Sponsoring Authority" has to vouch for the Applying organization. Registration is not free. Recognized"Sponsoring Authorities" are: ISO Technical Committees or(Sub)Committees, Member Bodies of ISO or International Organizations having a liaison status with ISO or with any of its Technical(Sub)Committees.An example of a Sponsoring Authority is the EDIRA Association (EDI/EC Registration Authority, web: ,email:info@).The numerical list of all ICDs that have been issued is posted on its webpage: /documents.htm#icd-ListNote: IANA owns ICD code 0090, but (presumably) it isn’t intending to use it for the present purpose.Pinkas & Gindin Standards Track [Page 13]Authors’ AddressesDenis PinkasBullRue Jean-Jaures BP 6878340 Les Clayes-sous-BoisFRANCEEMail: Denis.Pinkas@Thomas GindinIBM Corporation6710 Rockledge DriveBethesda, MD 20817USAEMail: tgindin@Pinkas & Gindin Standards Track [Page 14]Full Copyright StatementCopyright (C) The Internet Society (2005).This document is subject to the rights, licenses and restrictionscontained in BCP 78, and except as set forth therein, the authorsretain all their rights.This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNETENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THEINFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIEDWARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Intellectual PropertyThe IETF takes no position regarding the validity or scope of anyIntellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described inthis document or the extent to which any license under such rightsmight or might not be available; nor does it represent that it hasmade any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can befound in BCP 78 and BCP 79.Copies of IPR disclosures made to the IETF Secretariat and anyassurances of licenses to be made available, or the result of anattempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of thisspecification can be obtained from the IETF on-line IPR repository at /ipr.The IETF invites any interested party to bring to its attention anycopyrights, patents or patent applications, or other proprietaryrights that may cover technology that may be required to implementthis standard. Please address the information to the IETF at ietf-ipr@.AcknowledgementFunding for the RFC Editor function is currently provided by theInternet Society.Pinkas & Gindin Standards Track [Page 15]。