RFC1507 日本語訳
1507 DASS - Distributed Authentication Security Service. C. Kaufman. September 1993. (Format: TXT=287809 bytes) (Status: EXPERIMENTAL)
プログラムでの自動翻訳です。
RFC一覧
英語原文
Network Working Group C. Kaufman Request for Comments: 1507 Digital Equipment Corporation September 1993
コメントを求めるワーキンググループC.コーフマン要求をネットワークでつないでください: 1507 DEC1993年9月
DASS Distributed Authentication Security Service
ダスは認証セキュリティー・サービスを広げました。
Status of this Memo
このMemoの状態
This memo defines an Experimental Protocol for the Internet community. It does not specify an Internet standard. Discussion and suggestions for improvement are requested. Please refer to the current edition of the "Internet Official Protocol Standards" for the standardization state and status of this protocol. Distribution of this memo is unlimited.
このメモはインターネットコミュニティのためにExperimentalプロトコルを定義します。 それはインターネット標準を指定しません。 議論と改善提案は要求されています。 このプロトコルの標準化状態と状態への「インターネット公式プロトコル標準」の現行版を参照してください。 このメモの分配は無制限です。
Table of Contents
目次
1. Introduction ................................................ 2 1.1 What is DASS? .......................................... 2 1.2 Central Concepts ....................................... 4 1.3 What This Document Won't Tell You ..................... 11 1.4 The Relationship between DASS and ISO Standards ....... 17 1.5 An Authentication Walkthrough ......................... 20 2. Services Used .............................................. 25 2.1 Time Service .......................................... 25 2.2 Random Numbers ........................................ 26 2.3 Naming Service ........................................ 26 3. Services Provided .......................................... 37 3.1 Certificate Contents .................................. 38 3.2 Encrypted Private Key Structure ....................... 40 3.3 Authentication Tokens ................................. 40 3.4 Credentials ........................................... 43 3.5 CA State .............................................. 47 3.6 Data types used in the routines ....................... 47 3.7 Error conditions ...................................... 49 3.8 Certificate Maintenance Functions ..................... 49 3.9 Credential Maintenance Functions ...................... 55 3.10 Authentication Procedures ............................. 63 3.11 DASSlessness Determination Functions .................. 87 4. Certificate and message formats ............................ 89 4.1 ASN.1 encodings ....................................... 89 4.2 Encoding Rules ........................................ 96 4.3 Version numbers and forward compatibility ............. 96 4.4 Cryptographic Encodings ............................... 97 Annex A - Typical Usage ........................................ 101 A.1 Creating a CA ........................................ 101
1. 序論… 2 1.1 ダスは者ですか? .......................................... 2 1.2の主要な概念… 4 1.3 これが記録することはあなたに言わないでしょう… 11 1.4 ダスとISO規格との関係… 17 1.5 認証ウォークスルー… 20 2. 利用されたサービス… 25 2.1時間指定サービス… 25 2.2 無作為の数… 26 2.3名前付けサービス… 26 3. サービスは提供されました… 37 3.1 コンテンツを証明してください… 38 3.2 秘密鍵構造を暗号化します… 40 3.3 認証トークン… 40 3.4の資格証明書… 43 3.5 カリフォルニア州… 47 ルーチンに使用される3.6のデータ型… 47 3.7のエラー条件… 49 3.8 メインテナンス機能を証明してください… 49 3.9 資格証明メインテナンスは機能します… 55 3.10 認証手順… 63 3.11に、DASSlessness決断は機能します… 87 4. 証明書とメッセージ形式… 89 4.1 ASN.1encodings… 89 4.2 コード化は統治されます… 96 4.3 バージョン番号と前進の互換性… 96 4.4 暗号のEncodings… 97はAを付加します--典型的な用法。 カリフォルニアを作成する101A.1… 101
Kaufman [Page 1] RFC 1507 DASS September 1993
コーフマン[1ページ]RFC1507ダス1993年9月
A.2 Creating a User Principal ............................ 102 A.3 Creating a Server Principal .......................... 103 A.4 Booting a Server Principal ........................... 103 A.5 A user logs on to the network ........................ 103 A.6 An Rlogin (TCP/IP) connection is made ................ 104 A.7 A Transport-Independent Connection ................... 104 Annex B - Support of the GSSAPI ................................ 104 B.1 Summary of GSSAPI .................................... 105 B.2 Implementation of GSSAPI over DASS ................... 106 B.3 Syntax ............................................... 110 Annex C - Imported ASN.1 definitions ........................... 112 Glossary ....................................................... 114 Security Considerations ......................................... 119 Author's Address ................................................ 119 Figures Figure 1 - Authentication Exchange Overview .................... 24
ユーザ元本を創造するA.2… サーバ元本を創造する102A.3… サーバ元本をブートする103A.4… ユーザがネットワークにログオンする103A.5… Rlogin(TCP/IP)接続が作られている103A.6… 104 A.7のA輸送から独立している接続… 104はBを付加します--GSSAPIのサポート。 GSSAPIの104B.1概要… ダスの上のGSSAPIの105B.2実装… 106B.3構文… 110はCを付加します--ASN.1定義であるとインポートされます… 112用語集… 114 セキュリティ問題… 119作者のアドレス… 119の数字が1について計算します--認証交換概要。 24
1. Introduction
1. 序論
1.1 What is DASS?
1.1 ダスは者ですか?
Authentication is a security service. The goal of authentication is to reliably learn the name of the originator of a message or request. The classic way by which people authenticate to computers (and by which computers authenticate to one another) is by supplying a password. There are a number of problems with existing password based schemes which DASS attempts to solve. The goal of DASS is to provide authentication services in a distributed environment which are both more secure (more difficult for a bad guy to impersonate a good guy) and easier to use than existing mechanisms.
認証はセキュリティー・サービスです。 認証の目標はメッセージか要求の創始者の名前を確かに学ぶことです。 古典的な方法で、人々がコンピュータ(そしてコンピュータがお互いに認証するもので)に認証するものが、パスワードを提供することによって、あります。 ダスが解決するのを試みる既存のパスワードに基づいている体系に関する多くの問題があります。 ダスの目標は分散環境で、より安全で、かつ(悪者がいい人をまねるより難しい)既存のメカニズムより使用に簡単な認証サービスを提供することです。
In a distributed environment, authentication is particularly challenging. Users do not simply log on to one machine and use resources there. Users start processes on one machine which may request services on another. In some cases, the second system must request services from a third system on behalf of the user. Further, given current network technology, it is fairly easy to eavesdrop on conversations between computers and pick up any passwords that might be going by.
分散環境で、認証は特にやりがいがあります。 ユーザはそこに1台のマシンと使用にリソースを絶対に登録しません。 ユーザは別のものでサービスを要求するかもしれない1台のマシンにプロセスを始めます。 いくつかの場合、2番目のシステムはユーザを代表して3番目のシステムからサービスを要求しなければなりません。 現在のネットワーク技術を考えて、さらに、コンピュータでの会話を立ち聞きして、過ぎているどんなパスワードも受信するのはかなり簡単です。
DASS uses cryptographic mechanisms to provide "strong, mutual" authentication. Mutual authentication means that the two parties communicating each reliably learn the name of the other. Strong authentication means that in the exchange neither obtains any information that it could use to impersonate the other to a third party. This can't be done with passwords alone. Mutual authentication can be done with passwords by having a "sign" and a "counter-sign" which the two parties must utter to assure one another
ダスは、「強く、互い」の認証を提供するのに暗号のメカニズムを使用します。 互いの認証は、それぞれを伝える2回のパーティーがもう片方の名前を確かに学ぶことを意味します。 強い認証は、交換におけるそれがどちらも、それが第三者にもう片方をまねるのに使用できた少しの情報も得ないことを意味します。 パスワードが単独の状態でこれができません。 互いの認証は、パスワードで「サイン」を持っていることによってしていて2回のパーティーがお互いを保証するために発声しなければならない「副署」であることができます。
Kaufman [Page 2] RFC 1507 DASS September 1993
コーフマン[2ページ]RFC1507ダス1993年9月
of their identities. But whichever party speaks first reveals information which can be used by the second (unauthenticated) party to impersonate it. Longer sequences (often seen in spy movies) cannot solve the problem in general. Further, anyone who can eavesdrop on the conversation can impersonate either party in a subsequent conversation (unless passwords are only good once). Cryptography provides a means whereby one can prove knowledge of a secret without revealing it. People cannot execute cryptographic algorithms in their heads, and thus cannot strongly authenticate to computers directly. DASS lays the groundwork for "smart cards": microcomputers sealed in credit cards which when activated by a PIN will strongly authenticate to a computer. Until smart cards are available, the first link from a user to a DASS node remains vulnerable to eavesdropping. DASS mechanisms are constructed so that after the initial authentication, smart card or password based authentication looks the same.
彼らのアイデンティティについて。 しかし、最初に話すどのパーティーがそれをまねる秒で中古(非認証される)のパーティーであるかもしれない情報を明らかにするか。 より長い系列(スパイ映画でしばしば見られる)は一般に、問題を解決できません。 さらに、会話を立ち聞きできるだれでもその後の会話における何れの当事者をまねることができます(パスワードがかつて良いだけではないなら)。 暗号は1つがそれを明らかにしないで秘密に関する知識を立証できる手段を提供します。 その結果、人々は彼らの頭で暗号アルゴリズムを実行できません。強く、直接コンピュータに認証できません。 ダスは「スマートカード」のために土台を作ります: 暗証番号によって動かされると強くそうするクレジットカードで密封されたマイクロコンピュータはコンピュータに認証します。 スマートカードが利用可能になるまで、ユーザからダスノードへの最初のリンクは盗聴に被害を受け易いままで残っています。 ダスメカニズムが構成されるので、ベースの認証は初期の認証、スマートカードまたはパスワードの後に同じに見えます。
Today, systems are constructed to think of user identities in terms of accounts on individual computers. If I have accounts on ten machines, there is no way a priori to see that those ten accounts all belong to the same individual. If I want to be able to access a resource through any of the ten machines, I must tell the resource about all ten accounts. I must also tell the resource when I get an eleventh account.
今日、システムは、アカウントに関して個々のコンピュータでユーザアイデンティティを考えるために構成されます。 私が10台のマシンの上にアカウントを持っているなら、それらの10のアカウントがすべて、同じ個人のものであることを確認するために先験的などんな道もありません。 10台のマシンのどれかを通してリソースにアクセスできるようになりたいなら、私はすべての10のアカウントに関するリソースを言わなければなりません。 また、私は、いつ11番目のアカウントを得るかをリソースに言わなければなりません。
DASS supports the concept of global identity and network login. A user is assigned a name from a global namespace and that name will be recognized by any node in the network. (In some cases, a resource may be configured as accessible only by a particular user acting through a particular node. That is an access control decision, and it is supported by DASS, but the user is still known by his global identity). From a practical point of view, this means that a user can have a single password (or smart card) which can be used on all systems which allow him access and access control mechanisms can conveniently give access to a user through any computer the user happens to be logged into. Because a single user secret is good on all systems, it should never be necessary for a user to enter a password other than at initial login. Because cryptographic mechanisms are used, the password should never appear on the network beyond the initial login node.
ダスはグローバルなアイデンティティとネットワークログインの概念をサポートします。 名前はグローバルな名前空間からユーザに割り当てられます、そして、その名前はネットワークにおけるどんなノードによっても認識されるでしょう。 (いくつかの場合、リソースは単に特定のノードを通して行動している特定のユーザがアクセスしやすいとして構成されるかもしれません。 それはアクセス制御決定です、そして、それはダスによってサポートされますが、ユーザは彼のグローバルなアイデンティティによってまだ知られています。). 実用的な観点、ユーザが制御機構が便利に与えることができるアクセスとアクセスを彼に許すすべてのシステムの上で使用できるただ一つのパスワード(または、スマートカード)にユーザにアクセスさせることができるこの手段からどんなコンピュータまでも、ユーザはたまたまログインされます。 シングルユーザー秘密がすべてのシステムの上で良いので、ユーザが初期のログイン以外のパスワードを入力するのは決して必要であるべきではありません。 暗号のメカニズムが使用されているので、パスワードは初期のログインノードを超えたネットワークに決して現れるべきではありません。
DASS was designed as a component of the Distributed System Security Architecture (DSSA) (see "The Digital Distributed System Security Architecture" by M. Gasser, A. Goldstein, C. Kaufman, and B. Lampson, 1989 National Computer Security Conference). It is a goal of DSSA that access control on all systems be based on users' global names and the concept of "accounts" on computers eventually be replaced with unnamed rights to execute processes on those computers. Until
ダスはDistributed System Security Architecture(DSSA)の部品として設計されました。(M.ガッサー、A.ゴールドスティーン、C.コーフマン、およびB.ランプソンのそばで「デジタル分散システムセキュリティー体系」を見てください、1989年のNationalコンピュータSecurityコンファレンス). 結局、それは、すべてのシステムにおけるアクセスコントロールがユーザのグローバル名に基づいているDSSAの目標、そして、コンピュータの「アカウント」の概念です。それらのコンピュータでプロセスを実行する無名権利に取り替えます。 until
Kaufman [Page 3] RFC 1507 DASS September 1993
コーフマン[3ページ]RFC1507ダス1993年9月
this happens, computers will continue to support the concept of "local accounts" and access controls on resources on those systems will still be based on those accounts. There is today within the Berkeley rtools running over the Internet Protocol suite the concept of a ".rhosts database" which gives access to local accounts from remote accounts. We envision that those databases will be extended to support granting access to local accounts based on DASS global names as a bridge between the past and the future. DASS should greatly simplify the administration of those databases for the (presumably common) case where a user should be granted access to an account ignoring his choice of intermediate systems.
これは起こります、そして、コンピュータは、「ローカルのアカウント」の概念をサポートし続けるでしょう、そして、それでも、それらのシステムに関するリソースに関するアクセス制御はそれらのアカウントに基づくでしょう。 バークレーの中にインターネットプロトコルスイートの上でリモートアカウントからローカルのアカウントへのアクセスを与える「.rhostsデータベース」の概念を実行するrtoolsが今日、あります。 私たちはそれを思い描きます。それらのデータベースは、過去と未来の間で与えるのがブリッジとしてダスグローバル名に基づくローカルのアカウントへのアクセスであるとサポートするために拡張されているでしょう。 ダスは彼の中間システムの選択を無視するアカウントへのユーザのアクセスが承諾されるべきである(おそらく一般的)のケースのためのそれらのデータベースの管理を大いに簡素化するべきです。
1.2 Central Concepts
1.2 主要な概念
1.2.1 Strong Authentication with Public Keys
1.2.1 公開鍵との強い認証
DASS makes heavy use of the RSA Public Key cryptosystem. The important properties of the RSA algorithms for purposes of this discussion are:
ダスはRSA Public Key暗号系の重い使用をします。 この議論の目的のためのRSAアルゴリズムの重要な特性は以下の通りです。
- It supports the creation of a public/private key pair, where operations with one key of the pair reverse the operations of the other, but it is computationally infeasible to derive the private key from the public key.
- それは1公衆/秘密鍵組の創設をサポートします。(組の1個のキーによる操作はもう片方の操作を逆にしますが、そこでは、公開鍵から秘密鍵を得るのは計算上実行不可能です)。
- It supports the "signing" of a message with the private key, after which anyone knowing the public key can "verify" the signature and know that it was constructed with knowledge of the private key and that the message was not subsequently altered.
- それは秘密鍵でメッセージの「署名」をサポートします。(その時、公開鍵を知っているだれでも、署名について「確かめ」て、それが秘密鍵に関する知識で組み立てられて、メッセージが次に変更されなかったのを知ることができました後)。
- It supports the "enciphering" of a message by anyone knowing the public key such that only someone with knowledge of the private key can recover the message.
- それは秘密鍵に関する知識をもっているだれかだけがメッセージを回復できるように公開鍵を知っているだれによるもメッセージの「暗号化」をサポートします。
With access to the RSA algorithms, it is easy to see how one could construct a "strong" authentication mechanism. Each "principal" (user or computer) would construct a public/private key pair, publish the public key, and keep secret the private key. To authenticate to you, I would write a message, sign it with my private key, and send it to you. You would verify the message using my public key and know the message came from me. If mutual authentication were desired, you could create an acknowledgment and sign it with your private key; I could verify it with your public key and I would know you received my message.
RSAアルゴリズムへのアクセスでは、1つがどう「強い」認証機構を構成するかもしれないかを見るのは簡単です。 各「主体」(ユーザかコンピュータ)は、公衆/秘密鍵組を構成して、公開鍵を発行して、秘密鍵を秘密にするでしょう。 認証する、Iは伝言を書いて、私の秘密鍵をそれと契約してください、そして、それを送ってください。 あなたは、私の公開鍵を使用することでメッセージについて確かめて、メッセージが私から来たのを知っているでしょう。 互いの認証が望まれているなら、あなたは、承認を作成して、秘密鍵をそれと契約できるでしょうに。 私はあなたの公開鍵でそれについて確かめることができました、そして、あなたが私のメッセージを受け取ったのを知っているでしょう。
The authentication algorithms used by DASS are considerably more complex than those described in the paragraph above in order to deal
ダスによって使用された認証アルゴリズムが上のパラグラフで説明されたものよりかなり複雑である、取引
Kaufman [Page 4] RFC 1507 DASS September 1993
コーフマン[4ページ]RFC1507ダス1993年9月
with a large number of practical concerns including subtle security threats. Some of these are discussed below.
多くの実用的な関心が微妙な軍事的脅威を含んでいて。 以下でこれらの或るものについて議論します。
1.2.2 Timestamps vs. Challenge/Response
1.2.2 タイムスタンプ対挑戦/応答
Cryptosystems give you the ability to sign messages so that the receiver has assurance that the signer of the message knew some cryptographic secret. Free-standing public key based authentication is sufficiently expensive that it is unlikely that anyone would want to sign every message of an interactive communication, and even if they did they would still face the threat of someone rearranging the messages or playing them multiple times. Authentication generally takes place in the context of establishing some sort of "connection," where a conversation will ensue under the auspices of the single peer-entity authentication. This connection might be cryptographically protected against modification or reordering of the messages, but any such protection would be largely independent of the authentication which occurred at the start of the connection. DASS provides as a side effect of authentication the provision of a shared key which may be used for this purpose.
暗号系がメッセージに署名する能力をあなたに与えるので、受信機には、メッセージの署名者が何らかの暗号の秘密を知っていたという保証があります。 無料の地位の公開鍵に基づいている認証は十分高価です。だれでもインタラクティブコミュニケーションに関するあらゆるメッセージに署名したがっていて、そうしたとしても彼らがメッセージを再配列するか、または複数の回それらをプレーしながらまだだれかの脅威に直面しているのは、ありそうもないです。 一般に、認証は会話がただ一つの同輩実体認証の前兆で続くある種の「接続」を設立することの文脈で行われます。 この接続は、暗号で変更に対して保護されるか、またはメッセージを再命令しているかもしれませんが、そのようなどんな保護も接続の始めに起こった認証から主に独立しているでしょう。 ダスは認証の副作用としてこのために使用されるかもしれない共有されたキーの設備を提供します。
If in our simple minded authentication above, I signed the message "It's really me!" with my private key and sent it to you, you could verify the signature and know the message came from me and give the connection in which this message arrived access to my resources. Anyone watching this message over the network, however, could replay it to any server (just like a password!) and impersonate me. It is important that the message I send you only be accepted by you and only once. I can prevent the message from being useful at any other server by including your name in the message. You will only accept the message if you see your name in it. Keeping you from accepting the message twice is harder.
私が上で私たちの簡単な気にされた認証では、私の秘密鍵で「それは本当に私です!」というメッセージに署名して、それをあなたに送るなら、あなたは、署名について確かめて、メッセージがこのメッセージが到達した接続に私のリソースへのアクセスを与えに私から来たのを知ることができるでしょうに。 しかしながら、ネットワークの上でこのメッセージを見ているだれでも、どんなサーバ(まさしくパスワードのような!)にもそれを再演して、私をまねることができました。 私があなたに送るメッセージが一度だけあなたによって受け入れられるだけであるのは、重要です。 私は、メッセージがいかなる他のサーバでもメッセージにあなたの名前を含んでいることによって役に立つのを防ぐことができます。 それであなたの名前を見る場合にだけ、あなたはメッセージを受け入れるでしょう。 あなたが二度メッセージを受け入れるのを妨げるのは、より困難です。
There are two "standard" ways of providing this replay protection. One is called challenge/response and the other is called timestamp- based. In a challenge response type scheme, I tell you I want to authenticate, you generate a "challenge" (generally a number), and I include the challenge in the message I sign. You will only accept a message if it contains the recently generated challenge and you will make sure you never issue the same challenge to me twice (either by using a sequence number, a timestamp, or a random number big enough that the probability of a duplicate is negligible). In the timestamp-based scheme, I include the current time in my message. You have a rule that you will not accept messages more than - say - five minutes old and you keep track of all messages you've seen in the last five minutes. If someone replays the message within five minutes, you will reject it because you will remember you've seen it before; if someone replays it after five minutes, you will reject it
この反復操作による保護を提供する2つの「標準」の方法があります。 1は挑戦/応答と呼ばれます、そして、もう片方が基づくタイムスタンプと呼ばれます。 チャレンジレスポンスタイプ体系では、私はあなたに言います。認証したいと思う、あなたは、「挑戦」が(一般に数)であると生成して、私は署名するメッセージで挑戦を入れます。 あなたは、二度(写しの確率が取るにたらないほど大きい一連番号を使用するか、タイムスタンプ、または乱数で)それが最近発生している挑戦を含んでいるか、そして、あなたが作るメッセージがあなたが私への同じ挑戦を決して発行しないのを確信していると受け入れるだけでしょう。 タイムスタンプベースの体系では、私はメッセージで現在の時間を入れます。 あなたがメッセージをさらに受け入れないという規則がある、--言ってください--5分の老人とあなたはここ5個の議事録で見たすべてのメッセージの動向をおさえます。 だれかが5分以内にメッセージを再演すると、以前それを見たことがあるのを覚えているので、あなたはそれを拒絶するでしょう。 だれかが5分後にそれを再演すると、あなたはそれを拒絶するでしょう。
Kaufman [Page 5] RFC 1507 DASS September 1993
コーフマン[5ページ]RFC1507ダス1993年9月
as timed out.
外で調節されているように。
The disadvantage of the challenge/response based scheme is that it requires extra messages. While one-way authentication could otherwise be done with a single message and mutual authentication with one message in each direction, the challenge/response scheme always requires at least three messages.
挑戦/応答に基づいている体系の不都合は付加的なメッセージを必要とするということです。 そうでなければ、一方向認証は各方向による1つのメッセージがあるただ一つのメッセージでされて互いの認証であるかもしれませんが、挑戦/応答体系はいつも少なくとも3つのメッセージを必要とします。
The disadvantage of the timestamp-based scheme is that it requires secure synchronized time. If our clocks drift apart by more than five minutes, you will reject all of my attempts to authenticate. If a network time service spoofer can convince you to turn back your clock and then subsequently replays an expired message, you will accept it again. The multicast nature of existing distributed time services and the likelihood of detection make this an unlikely threat, but it must be considered in any analysis of the security of the scheme. The timestamp scheme also requires the server to keep state about all messages seen in the clock skew interval. To be secure, this must be kept on stable storage (unless rebooting takes longer than the permitted clock skew interval).
タイムスタンプベースの体系の不都合は安全な連動している時間を必要とするということです。 私たちの時計が5分以上別れると、あなたは認証する私の試みのすべてを拒絶するでしょう。 ネットワーク時間指定サービスspooferがあなたの時計を折り返すようにあなたを説得できて、次に、次に満期のメッセージを再演すると、あなたは再びそれを受け入れるでしょう。 既存の分配された時間指定サービスのマルチキャスト本質と検出の見込みはこれをありそうもない脅威にしますが、体系のセキュリティのどんな分析でもそれを考えなければなりません。 また、タイムスタンプ体系は、時計斜行間隔で見られたすべてのメッセージに関して状態を維持するためにサーバを必要とします。 安全に、なるように、これを安定貯蔵に保たなければなりません(リブートに受入れられた時計斜行間隔ほど時間がかからない場合)。
DASS uses the timestamp-based scheme. The primary motivations behind this decision were so that authentication messages could be "piggybacked" on existing connection establishment messages and so that DASS would fit within the same "form factor" (number and direction of messages) as Kerberos.
ダスはタイムスタンプベースの体系を使用します。 この決定の後ろのプライマリ動機は、既存のコネクション確立メッセージで認証メッセージを「便乗でき」て、ダスがケルベロスと同じ「形状因子」(メッセージの数と方向)の中で合うためのそうです。
1.2.3 Delegation
1.2.3 委譲
In a distributed environment, authentication alone is not enough. When I log onto a computer, not only do I want to prove my identity to that computer, I want to use that computer to access network resources (e.g., file systems, database systems) on my behalf. My files should (normally) be protected so that I can access them through any node I log in through. DASS allows them to be so protected without allowing all of the systems that I might ever use to access those files in my absence. In the process of logging in, my password gives my login node access to my RSA secret. It can use that secret to "impersonate" me on any requests it makes on my behalf. It should forget all secrets associated with me when I log off. This limits the trust placed in computer systems. If someone takes control of a computer, they can impersonate all people who use that computer after it is taken over but no others.
分散環境で、認証だけが十分ではありません。 私であるときにはコンピュータにログオンしてください、そして、そのコンピュータへの私のアイデンティティを立証したいと思うだけではなく、私に代わってネットワーク資源(例えば、システムをファイルしてください、データベース・システム)にアクセスするのにそのコンピュータを使用したいと思います。 (通常、)私のファイルは、私が私がログインするどんなノードを通してもそれらにアクセスできるように、保護されるべきです。 ダスは、私が私の留守中にそれらのファイルをアクセスに使用できるようにそれらがシステムのすべてを許容しないで保護されるのを許します。 ログインすることの途中に、私のパスワードは私のRSAへの私のログインノードアクセスを秘密に与えます。 それは、それが私に代わってするどんな要求のときにも私を「まねること」にその秘密を使用できます。 私がログオフするとき、それは私に関連しているすべての秘密を忘れるべきです。 これはコンピュータ・システムに置かれた信頼を制限します。だれかがコンピュータを制御するなら、それが持って行かれた後にそのコンピュータを使用するすべての人々をまねますが、それらはどんな他のものもまねることができません。
Normally when I access a network service, I want to strongly authenticate to it. That is, I want to prove my identity to that service, but I don't want to allow that service to learn anything that would allow it to impersonate me. This allows me to use a
通常、私であるときにはサービス、Iが強くそれに認証したがっているネットワークにアクセスしてください。 すなわち、そのサービスへの私のアイデンティティを立証したいと思いますが、そのサービスがそれが私をまねることができる何も学ぶのを許したいと思いません。 これで、私はaを使用できます。
Kaufman [Page 6] RFC 1507 DASS September 1993
コーフマン[6ページ]RFC1507ダス1993年9月
service without trusting it for more than the service it is delivering. When using some services, for example remote login services, I may want that service to act on my behalf in calling additional services. DASS provides a mechanism whereby I can pass secrets to such services that allow them to impersonate me.
それが提供しているサービス以上でそれを信じることのないサービス。 いくつかのサービス、例えばリモート・ログインサービスを利用するとき、私は、追加サービスと呼ぶ際にそのサービスに私の代理に影響して欲しいと思うかもしれません。 ダスは私がそれらが私をまねることができるそのようなサービスに秘密を通過できるメカニズムを提供します。
Future versions of this architecture may allow "limited delegation" so that a user may delegate to a server only those rights the server needs to carry out the user's wishes. This version can limit delegation only in terms of time. The information a user gives a server (other than the initial login node) can be used to impersonate the user but only for a limited period of time. Smart cards will permit that time limitation to apply to the initial login node as well.
このアーキテクチャの将来のバージョンは、ユーザがサーバがユーザの願望を行うために必要とするそれらの権利をサーバだけへ代表として派遣することができるように、「限られた委譲」を許容するかもしれません。 このバージョンは時間だけに関して委譲を制限できます。 ユーザをまねるのに使用されますが、ユーザがサーバ(初期のログインノードを除いた)を与える情報は時間の限定期間だけの間そうすることができます。 スマートカードは、その時、制限がまた、初期のログインノードに適用されることを許可するでしょう。
1.2.4 Certification Authorities
1.2.4 証明当局
A flaw in the strong authentication mechanism described above is that it assumes that every "principal" (user and node) knows the public key of every other principal it wants to authenticate. If I can fool a server into thinking my public key is actually your public key, I can impersonate you by signing a message, saying it is from you, and having the server verify the message with what it thinks is your public key.
上で説明された強い認証機構の欠点はあらゆる「主体」(ユーザとノード)がそれが認証したがっている他のあらゆる主体の公開鍵を知っていると仮定するということです。 サーバが、私の公開鍵が実際にあなたの公開鍵であると思うようにだますことができるなら、私はメッセージに署名することによって、あなたをまねることができます、それがあなたの公開鍵であると考えるものでそれがあなたから来ていると言って、サーバにメッセージについて確かめさせて。
To avoid the need to securely install the public key of every principal in the database of every other principal, the concept of a "Certification Authority" was invented. A certification authority is a principal trusted to act as an introduction service. Each principal goes to the certification authority, presents its public key, and proves it has a particular name (the exact mechanisms for this vary with the type of principal and the level of security to be provided). The CA then creates a "certificate" which is a message containing the name and public key of the principal, an expiration date, and bookkeeping information signed by the CA's private key. All "subscribers" to a particular CA can then be authenticated to one another by presenting their certificates and proving knowledge of the corresponding secret. CAs need only act when new principals are being named and new private keys created, so that can be maintained under tight physical security.
しっかりと他のあらゆる主体に関するデータベースにあらゆる主体の公開鍵をインストールする必要性を避けるために、「認証局」の概念は発明されました。 証明権威は序論サービスとして機能すると信じられた元本です。 各校長は、証明権威に行って、公開鍵を提示して、それには特定の名前があると立証します(主体のタイプと提供されるセキュリティのレベルに従って、これのための正確なメカニズムは異なります)。 そして、カリフォルニアはCAの秘密鍵によって署名される主体、有効期限、および簿記情報の名前と公開鍵を含むメッセージである「証明書」を作成します。 そして、彼らの証明書を提示して、対応する秘密に関する知識を立証することによって、特定のカリフォルニアへのすべての「加入者」をお互いに認証できます。 CAsが、新しい主体が命名されているときの行為だけと新しい秘密鍵を作成する必要があるので、きつい物理的なセキュリティの下でそれを主張できます。
The two problems with the scheme as described so far are "revocation" and "scaleability".
今までのところ説明される体系に関する2つの問題が、「取消し」と"scaleability"です。
1.2.4.1 Certificate Revocation
1.2.4.1 証明書取消し
Revocation is the process of announcing that a key has (or may have) fallen into the wrong hands and should no longer be accepted as proof
取消しはキーが間違った手になって(または、そうしたかもしれません)、もう証拠として認められるべきでないと発表するプロセスです。
Kaufman [Page 7] RFC 1507 DASS September 1993
コーフマン[7ページ]RFC1507ダス1993年9月
of some particular identity. With certificates as described above, someone who learns your secret and your certificate can impersonate you indefinitely - even after you have learned of the compromise. It lacks the ability corresponding to changing your password. DASS supports two independent mechanisms for revoking certificates. In the future, a third may be added.
何らかの特定のアイデンティティについて。 上で説明される証明書で、あなたが感染を知った後にさえあなたの秘密とあなたの証明書を学ぶだれかがあなたを無期限にまねることができます。 それはあなたのパスワードを変えると対応する能力を欠いています。 ダスは、証明書を取り消すために2つの独立しているメカニズムをサポートします。 将来、3分の1は加えられるかもしれません。
One method for revocation is using timeouts and renewals of certificates. Part of the signed message which is a certificate may be a time after which the certificate should not be believed. Periodically, the CA would renew certificates by signing one with a later timeout. If a key were compromised, a new key would be generated and a new certificate signed. The old certificate would only be valid until its timeout. Timeouts are not perfect revocation mechanisms because they provide only slow revocation (timeouts are typically measured in months for the load on the CA and communication with users to be kept manageable) and they depend on servers having an accurate source of the current time. Someone who can trick a server into turning back its clock can use expired certificates.
取消しのための1つのメソッドは証明書のタイムアウトと更新を使用することです。 証明書である署名しているメッセージの一部が証明書が信じられるべきでない時であるかもしれません。 定期的に、カリフォルニアは、後のタイムアウトを1つと契約することによって、証明書を更新するでしょう。 キーが感染されるなら、新しいキーは生成されるでしょうに、そして、新しい証明書は署名しました。 古い証明書はタイムアウトまで有効であるだけでしょう。 遅い取消しだけを提供するので(タイムアウトはカリフォルニアの負荷とユーザとのコミュニケーションが処理しやすく保たれるために何カ月も通常測定されます)、タイムアウトは完全な取消しメカニズムではありません、そして、彼らは現在の時間の正確な源を持っているサーバによります。 時計が使用できるターン後部にサーバをだますことができるだれかが証明書を吐き出しました。
The second method is by listing all non-revoked certificates in the naming service and believing only certificates found there. The advantage of this method is that it is almost immediate (the only delay is for name service "skulking" and caching delays). The disadvantages are: (1) the availability of authentication is only as good as the availability of the naming service and (2) the security of revocation is only as good as the security of the naming service.
名前付けサービスですべての非取り消された証明書をリストアップして、2番目のメソッドはそこで見つけられた証明書だけを信じていることです。 このメソッドの利点はそれがほとんど即座であるという(唯一の遅れが「忍び歩い」て、遅れをキャッシュする名前サービスのためのものです)ことです。 損失は以下の通りです。 (1) (2) 認証の有用性が単に名前付けサービスの有用性と同じくらい良く、取消しのセキュリティは単に名前付けサービスのセキュリティと同じくらい良いです。
A third method for revocation - not currently supported by DASS - is for certification authorities to periodically issue "revocation lists" which list certificates which should no longer be accepted.
取消し(現在、ダスによってサポートされない)のための3番目のメソッドは証明当局が定期的にもう受け入れられるべきでない証明書をリストアップする「取消しリスト」を発行することです。
1.2.4.2 Certification Authority Hierarchy
1.2.4.2 認証局階層構造
While using a certification authority as an introduction service scales much better than having every principal learn the public key of every other principal by some out of band means, it has the problem that it creates a central point of trust. The certification authority can impersonate any principal by inventing a new key and creating a certificate stating that the new key represents the principal. In a large organization, there may be no individual who is sufficiently trusted to operate the CA. Even if there were, in a large organization it would be impractical to have every individual authenticate to that single person. Replicating the CA solves the availability problem but makes the trust problem worse. When authentication is to be used in a global context - between companies - the concept of a single CA is untenable.
序論サービスがあらゆる校長にいくつかでバンド手段から他のあらゆる主体の公開鍵を学ばせるよりはるかによく比例しながら証明権威を使用している間、それには、信頼の主要なポイントを作成するという問題があります。 証明権威は、新しいキーを発明して、新しいキーが主体を表すと述べる証明書を作成することによって、どんな主体もまねることができます。 大きな組織には、カリフォルニアを操作すると十分信じられる個人が全くいないかもしれません。 あったとしても、大きな組織では、すべての個人に独身の人をそれに認証させるのは、非実用的でしょうに。 カリフォルニアを模写するのに、有用性問題を解決しますが、信用問題は、より悪くなります。 認証が会社の間の世界状況で使用されることであるときに、単一のカリフォルニアの概念は支持できません。
Kaufman [Page 8] RFC 1507 DASS September 1993
コーフマン[8ページ]RFC1507ダス1993年9月
DASS addresses this problem by creating a hierarchy of CAs. The CA hierarchy is tied to the naming hierarchy. For each directory in the namespace, there is a single CA responsible for certifying the public keys of its members. That CA will also certify the public keys of the CAs of all child directories and of the CA of the parent directory. With this cross-certification, it is possible knowing the public key of any CA to verify the public keys of a series of intermediate CAs and finally to verify the public key of any principal.
ダスは、CAsの階層構造を作成することによって、このその問題を訴えます。 カリフォルニア階層構造は命名階層構造に結ばれます。 名前空間における各ディレクトリのために、メンバーの公開鍵を公認するのに責任がある単一のカリフォルニアがあります。 また、そのカリフォルニアはすべての子供ディレクトリのCAsと親ディレクトリのカリフォルニアの公開鍵を公認するでしょう。 この相互認証では、どんな主体の公開鍵についても確かめるために最終的に一連の中間的CAsの公開鍵について確かめるためにどんなカリフォルニアの公開鍵も知っているのは可能です。
Because the CA hierarchy is tied to the naming hierarchy, the trust placed in any individual CA is limited. If a CA is compromised, it can impersonate any of the principals listed in its directory, but it cannot impersonate arbitrary principals.
カリフォルニア階層構造が命名階層構造に結ばれるので、どんな個々のカリフォルニアにも置かれた信頼は限られています。 カリフォルニアが感染されるなら、ディレクトリに記載された主体のどれかをまねることができますが、それは任意の主体をまねることができません。
DASS provides mechanisms for every principal to know the public key of its "parent" CA - the CA controlling the directory in which it is named. The result is the following rules for the implications of a compromised CA:
ダスは「親」カリフォルニアの公開鍵を知るためにあらゆる主体にメカニズムを提供します--それが命名されるディレクトリを制御するカリフォルニア。 結果は感染しているカリフォルニアの含意のための以下の規則です:
a) A CA can impersonate any principal named in its directory.
a) カリフォルニアはディレクトリで指定されたどんな主体もまねることができます。
b) A CA can impersonate any principal to a server named in its directory.
b) カリフォルニアはディレクトリで指定されたサーバにどんな主体もまねることができます。
c) A CA can impersonate any principal named in a subdirectory to any server not named in the same subdirectory.
c) カリフォルニアはサブディレクトリで同じサブディレクトリで指定されなかったどんなサーバともいうどんな主体もまねることができます。
d) A CA can impersonate to any server in a subdirectory any principal not named in the same subdirectory.
d) カリフォルニアはサブディレクトリで同じサブディレクトリで指定されなかったどんな主体もどんなサーバにもまねることができます。
The implication is that a compromise low in the naming tree will compromise all principals below that directory while a compromise high in the naming tree will compromise only the authentication of principals far apart in the naming hierarchy. In particular, when multiple organizations share a namespace (as they do in the case of X.500), the compromise of a CA in one organization can not result in false authentication within another organization.
含意は高さ命名木の感染が命名階層構造でかけ離れている主体の認証だけに感染する間命名木の感染安値がそのディレクトリの下におけるすべての主体に感染するということです。 複数の組織が名前空間を共有するとき(X.500の場合でするように)、特に、1つの組織におけるカリフォルニアの感染は別の組織の中で誤った認証をもたらすことができません。
DASS uses the X.500 directory hierarchy for principal naming. At the top of the hierarchy are names of countries. National authorities are not expected to establish certification authorities (at least initially), so an alternative mechanism must be used to authenticate entities "distant" in the naming hierarchy. The mechanism for this in DASS is the "cross-certificate" where a CA certifies the public key for some CA or principal not its parent or child. By limiting the chains of certificates they will use to parent certificates followed by a single "cross certificate" followed by child
ダスは主要な命名にX.500ディレクトリ階層構造を使用します。 階層構造の最上部に、国の名前があります。 国内当局が証明当局(少なくとも初めは)を設立しないと予想されて、命名階層構造における「遠方」の実体を認証するのに代替のメカニズムを使用しなければなりません。 ダスのこれのためのメカニズムはカリフォルニアが何らかのカリフォルニアか主体のための公開鍵がその親でなくて、また子供でもないことを公認する「交差している証明書」です。 それらが子供によって後をつけられた単一の「交差している証明書」があとに続いた親証明書に使用する証明書のチェーンを制限することによって
Kaufman [Page 9] RFC 1507 DASS September 1993
コーフマン[9ページ]RFC1507ダス1993年9月
certificates, a DASS implementation can avoid the need to have CAs near the root of the tree or can avoid the requirement to trust them even if they do exist. A special case can also be supported whereby a global authority whose name is not the root can certify the local roots of independent "islands".
証明書、ダス実装は木の根の近くにCAsを持つ必要性を避けることができるか、または彼らが存在しても、彼らを信じるという要件を避けることができます。 また、名前が根でないグローバルな権威が独立している「島」の地方のルーツを公認できる特別なケースを支えることができます。
1.2.5 User vs. Node Authentication
1.2.5 ユーザ対ノード認証
In concept, DASS mechanisms support the mutual authentication of two principals regardless of whether those principals are people, computers, or applications. Those mechanisms have been extended, however, to deal with a common case of a pair of principals acting together (a user and a node) authenticating to a single principal (a remote server). This is done by having optionally in each credentials structure two sets of secrets - one for the user and one for the node. When authentication is done using such credentials, both secrets sign the request so the receiving party can verify that both principals are present.
概念では、ダスメカニズムはそれらの主体が人々、コンピュータ、またはアプリケーションであることにかかわらず2つの主体の互いの認証をサポートします。 しかしながら、1組の主体が一緒に行動するよくある例(ユーザとノード)に対処するために(リモートサーバ)をただ一つの元本に認証しながら、それらのメカニズムを広げてあります。 それぞれの資格証明書構造に任意に2セットの秘密を持っていることによって、これをします--ユーザのためのものとノードのためのもの。 認証がそのような資格証明書を使用し終わっていると、受領者が、両方の主体が存在していることを確かめることができるように、両方の秘密は要求に署名します。
This setup has a number of advantages. It permits access controls to be enforced based on both the identity of the user and the identity of the originating node. It also makes it possible to define users of systems who have no network wide identities who can access network resources on the basis of node credentials alone. The security of such a setup is less because a node can impersonate all of its users even when they are not logged in, but it offers an easier transition from existing global identities for all users.
このセットアップには、多くの利点があります。 それは、アクセス制御がユーザのアイデンティティと起因するノードのアイデンティティの両方に基づいて励行されることを許可します。 また、それで、いいえにノード資格証明書に基づいて単独でネットワーク資源にアクセスできる広いアイデンティティをネットワークでつながせるシステムのユーザを定義するのは可能になります。 彼らがログインさえされないとき、ノードがユーザのすべてをまねることができるので、そのようなセットアップのセキュリティは、より少ないのですが、それはすべてのユーザのために存在するのからの、より簡単な変遷にグローバルなアイデンティティを提供します。
1.2.6 Protection of User Keys
1.2.6 ユーザキーの保護
DASS mechanisms generally deal with authentication between principals each knowing a private key. For principals who are people, special mechanisms are provided for maintaining that private key. In particular, it many cases it will be most convenient to keep passwords as secrets rather than private keys. This architecture specifies a means of storing private keys encrypted under passwords. This would provide security as good as hiding a private key were it not that people tend to choose passwords from a small space (like words in a dictionary) such that a password can be more easily guessed than a private key. To address this potential weakness, DASS specifies a protocol between a login node and a login agent whereby the login agent can audit and limit the rate of password guesses. Use of these features is optional. A user with a smart card could store a private key directly and bypass all of these mechanisms. If users can be forced to choose "good" passwords, the login agent could be eliminated and encrypted credentials could be stored directly in the naming service.
一般に、ダスメカニズムは、それぞれ秘密鍵を知りながら、主体の間で認証に対処します。 そうする主体において、人々であり、特別なメカニズムは、その秘密鍵を維持しながら、備えられます。 特にそれ、大部分が秘密鍵よりむしろ秘密としてパスワードを保つのに便利であったならそれがそうする多くのケース。 このアーキテクチャはパスワードの下で暗号化された秘密鍵を保存する手段を指定します。 これは、パスワードが秘密鍵より容易に推測されているように、それがそれでなかったなら秘密鍵を隠して、人々が、パスワードを選ぶ傾向があるのと小さいスペースから同じくらい良いセキュリティ(辞書の単語のような)を提供するでしょう。 この潜在的弱点を扱うために、ダスはログインノードとログインエージェントの間のログインエージェントがパスワード推測の速度を監査して、制限できるプロトコルを指定します。 これらの特徴の使用は任意です。 スマートカードをもっているユーザは、直接秘密鍵を保存して、これらのメカニズムのすべてを迂回させることができました。ユーザがやむを得ず「良い」パスワードを選ぶことができるなら、ログインエージェントを排除したかもしれません、そして、直接名前付けサービスで暗号化された資格証明書は保存できました。
Kaufman [Page 10] RFC 1507 DASS September 1993
コーフマン[10ページ]RFC1507ダス1993年9月
Another way in which user keys are protected is that the architecture does not require that they be available except briefly at login. This reduces the threat of a user walking away from a logged on workstation and having someone take over the workstation and extract his key. It also makes the use of RSA based smart cards practical; the card could keep the user's private key and execute one signature operation at login time to authenticate an entire session.
アーキテクチャが、それらが利用可能であることを必要としないということであり、ユーザキーが保護される別の方法は簡潔にログインでそうです。 これはユーザが、ログオンされたワークステーションから無傷で助かって、だれかがワークステーションを持って行って、彼のキーを抽出するのを持つ脅威を抑えます。 また、それはRSAの使用をベースのスマートカードに実用的にします。 カードは、全体のセッションを認証するログイン時にユーザの秘密鍵を保って、1つの署名操作を実行するかもしれません。
1.3 What This Document Won't Tell You
1.3 このドキュメントがあなたに言わないこと
Architecture documents are by their nature difficult to read. This one is no exception. The reason is that an architecture document contains the details sufficient to build interoperable implementations, but it is not a design specification. It goes out of its way to leave out any details which an implementation could choose without affecting interoperability. It also does not specify all the uses of the services provided because these services are properly regarded as general purpose tools.
アーキテクチャドキュメントは読むのが本質的に難しいです。 これは例外ではありません。 理由はアーキテクチャドキュメントが共同利用できる実装を築き上げることができるくらいの詳細を含んでいるということですが、それはデザイン仕様ではありません。 それはわざわざ、実装が相互運用性に影響しないで選ぶことができたどんな詳細も省きます。 また、それはすべてのこれらのサービスが適切に汎用のツールと見なされるので提供されたサービスの用途を指定するというわけではありません。
The remainder of this section includes information which is not properly part of the authentication architecture, but which may be useful in understanding why the architecture is the way it is.
このセクションの残りは認証アーキテクチャを適切に離れさせないことですが、アーキテクチャがなぜ道であるかを理解する際に役に立つかもしれない情報を含んでいます。
1.3.1 How DASS is Embedded in an Operating System
1.3.1 ダスはどうOperating SystemのEmbeddedであるか。
While architecturally DASS does not require any operating system support in order to be used by an application (other than the services listed in Section 2), it is expected that actual implementations of DASS will be closely tied to the operating systems of host computers. This is done both for security and for convenience.
建築上、ダスがアプリケーション(セクション2に記載されたサービスを除いた)で使用されるために少しのオペレーティングシステムサポートも必要としていない間、ダスの実際の実装が密接にホストコンピュータのオペレーティングシステムに結ばれると予想されます。 セキュリティと便宜のためにこれをします。
In particular, it is expected that when a user logs into a node, a set of credentials will be created for that user and then associated by the operating system with all processes initiated by or on behalf of the user. When a user delegates to a service, the remote operating system is expected to accept the delegation and start up the remote process with the delegated credentials. Most nodes are expected to have credentials of their own and support the concept of user accounts. When user credentials are created, the node is expected to verify them in its own context, determine the appropriate user account, and add node credentials to the created credentials set.
特に、ユーザがノードにログインするとき、1セットの資格証明書がユーザかユーザを代表して開始されるすべてのプロセスにそのユーザのために作成されて、次に、オペレーティングシステムで関連づけられると予想されます。 サービスへのユーザ代表であるときに、リモートオペレーティングシステムは、代表として派遣された資格証明書で委譲を受け入れて、リモートプロセスを立ち上げると予想されます。 ほとんどのノードが、それら自身の資格証明書を持って、ユーザアカウントの概念をサポートすると予想されます。 ユーザ資格証明書が作成されるとき、ノードは、それ自身の文脈でそれらについて確かめて、適切なユーザアカウントを決定して、作成された資格証明書へのノード資格証明書がセットしたと言い足すと予想されます。
1.3.2 Forms of Credentials
1.3.2 資格証明書のフォーム
In the DASS architecture, there is a single data structure called "Credentials" with a large number of optional parts. In an
ダスアーキテクチャには、多くのオプショナル・パーツがある「資格証明書」と呼ばれるただ一つのデータ構造があります。 in
Kaufman [Page 11] RFC 1507 DASS September 1993
コーフマン[11ページ]RFC1507ダス1993年9月
implementation, it is possible that not all of the architecturally allowed subsets will be supported and credentials structures with different subsets of the data may be implemented quite differently.
実装、建築上、許容された部分集合のすべてがサポートされるというわけではなくて、データの異なった部分集合がある資格証明書構造が全く異なって実装されるのは、可能です。
The major categories of credentials likely to be supported in an implementation are:
実装でサポートしそうな資格証明書の大範疇は以下の通りです。
- Claimant credentials - these are the credentials which would normally be associated with a user process in order that it be able to create authentication tokens. It would contain the user's name, login ticket, session private key, and (at least logically) local node credentials and cached outgoing contexts.
- 主張者資格証明書、--、これらが通常、ユーザ・プロセスに関連している資格証明書であるそれ、認証トークンを作成できてください。 それは、ユーザの名前、ログインチケット、セッション秘密鍵、および(少なくとも論理的に)ローカルのノード資格証明書を含んで、送信する関係をキャッシュしました。
- Verifier credentials - these are the credentials which would normally be associated with a server which must verify tokens and produce mutual authentication response tokens. Since servers may be started by a node on demand, some representation of verifier credentials must exist independent of a process. If an operating system wishes to authenticate a request before starting a server process, the credentials must exist in usable form. An implementation may choose to have all services on a "node" share a verifier credentials structure, or it may choose to have each service have its own.
- 検証資格証明書--これらは通常、トークンについて確かめて、互いの認証応答トークンを生産しなければならないサーバに関連している資格証明書です。 サーバがオンデマンドのノードによって始められるかもしれないので、検証資格証明書の何らかの表現がプロセスの如何にかかわらず存在しなければなりません。 オペレーティングシステムであるなら、サーバプロセス、資格証明書を始める前に要求を認証するという願望は使用可能なフォームに存在しなければなりません。 実装が、「ノード」におけるすべてのサービスに検証資格証明書構造を共有させるのを選ぶかもしれませんか、またはそれは、各サービスにそれ自身のものを持たせるのを選ぶかもしれません。
- Combined credentials - architecturally, a server may have a structure which is both claimant credentials and verifier credentials combined so that the server may act in either role using a single structure. There is some overlap in the contents. There is no requirement, however, that an implementation support such a structure.
- 結合した資格証明書--建築上、サーバには、サーバがどちらの役割でもただ一つの構造を使用することで行動できるように結合された主張者資格証明書と検証資格証明書の両方である構造があるかもしれません。 コンテンツには何らかのオーバラップがあります。 しかしながら、要件が全くなくて、それはそのようなaが構造化する実装サポートです。
- Stub credentials - In the architecture, a credentials structure is created whenever a token is accepted. If delegation took place, these are claimant credentials usable by their possessor to create additional tokens. If no delegation took place, this structure exists as an architectural place holder against which an implementation may attempt to authenticate user and node names. An implementation might choose to implement stub credentials with a different mechanism than claimant or verifier credentials. In particular, it might do whatever user and node authentication is useful itself and not support this structure at all.
- スタッブ資格証明書--アーキテクチャでは、トークンを受け入れるときはいつも、資格証明書構造は作成されます。 委譲が行われたなら、これらは追加トークンを作成する彼らの所有者が使用可能な主張者資格証明書です。 委譲が全く行われなかったなら、この構造は実装がユーザとノード名を認証するのを試みるかもしれない建築場所所有者として存在しています。 実装は、主張者か検証資格証明書より異なったメカニズムでスタッブ資格証明書を実装するのを選ぶかもしれません。 特に、それは、それ自体でどんな役に立つユーザとノード認証もして、この構造を全く支えないかもしれません。
Kaufman [Page 12] RFC 1507 DASS September 1993
コーフマン[12ページ]RFC1507ダス1993年9月
1.3.3 Support for Alternative Certification Authority Implementations
1.3.3 代替の認証局実装のサポート
A motivating factor in much of the design of DASS is the need to protect certification authorities from compromise. CAs are only used to create certificates for new principals and to renew them on expiration (expiration intervals are likely to be measured in months). They therefore do not need to be highly available. For maximum security, CAs could be implemented on standalone PCs where the hardware, software, and keys can be locked in a safe when the CA is not in use. The certificates the CA generates must be delivered to the naming service to be registered, and a possible mechanism for this is for the CA to have an RS232 line to an on-line component which can pass certificates and related information but not login sessions. The intent would be to make it implausible to mount a network attack against the CA. Alternatively, certificates could be carried to the network on a floppy disk.
ダスのデザインの多くの動機づけている要素は感染から証明当局を保護する必要性です。 CAsは、新しい主体のための証明書を作成して、満了のときにそれらを更新するのに使用されるだけです(満了間隔は何カ月も測定されそうです)。 したがって、それらは非常に利用可能である必要はありません。 カリフォルニアが使用中でないときに、最大のセキュリティのために、ハードウェア、ソフトウェア、およびキーに金庫を閉じ込めることができるところでスタンドアロンPCの上でCAsを実装することができました。 登録されるためにカリフォルニアが作る証明書を名前付けサービスに提供しなければなりません、そして、これのための可能なメカニズムはカリフォルニアがログインセッションではなく、証明書と関連する情報を渡すことができるオンラインコンポーネントにRS232系列を持つことです。 意図はカリフォルニアに対してネットワーク攻撃を仕掛けるのを信じがたくするだろうことです。 あるいはまた、フロッピーディスクの上のネットワークまで証明書を運ぶことができました。
For CAs to be secure, a whole host of design details must be done right. The most important of these is the design of user and system manager interfaces that make it difficult to "trick" a user or system manager into doing the wrong thing and certifying an impostor or revealing a key. Mechanisms for generating keys must also be carefully protected to assure that the generated key cannot be guessed (because of lack of randomness) and is not recorded where a penetrator can get it. Because a certificate contains relatively little human intelligible information (its most important components are UIDs and public keys), it will be a challenge to design a user interface that assures the human operator only authorizes the signing of intented certificates. Such considerations are beyond the scope of the architecture (since they do not affect interoperability), but they did affect the design in subtle ways. In particular, it does not assume uniform security throughout the CA hierarchy and is designed to assure that the compromise of a CA in one part of the hierarchy does not have global implications.
CAsが安全であるように、まさしく多くのデザインの詳細をしなければなりません。 これらで最も重要であるのは、ユーザとユーザかシステム・マネージャが間違ったことをして、詐欺師を公認するか、またはキーを明らかにするのに「だます」であることを難しくするシステム・マネージャインタフェースのデザインです。 キーを生成するのはまた、発生しているキーを推測できないことを(偶発性の不足のために)保証するために慎重に保護しなければならなくて、あるので、メカニズムは、針入度計がどこでそれを得ることができるかを記録しませんでした。 証明書が比較的少ない人間の明瞭な情報を含んでいるので(最も重要なコンポーネントは、UIDsと公開鍵です)、それはそれが「不-テント」の証明書の署名を認可するだけであることを人間のオペレータに知らせるユーザーインタフェースを設計するために挑戦になるでしょう。 そのような問題はアーキテクチャの範囲を超えていましたが(相互運用性に影響しないので)、それらはそれとなくデザインに影響しました。 それは、特に、カリフォルニア階層構造中で一定のセキュリティを仮定しないで、階層構造の一部のカリフォルニアの感染にはグローバルな意味がないことを保証するように設計されています。
The architecture does not require that CAs be off-line. The CA could be software that can run on any node when the proper secret is installed. Administrative convenience can be gained by integrating the CA with account registration utilities and naming service maintenance. As such, the CA would have to be on-line when in use in order to register certificates in the naming service. The CA key could be unlocked with a password and the password could be entered on each use both to authenticate the CA operator and to assure that compromise of the host node while the CA is not in use will not compromise the CA. This design would be subject to attacks based on planting Trojan horses in the CA software, but is entirely interoperable with a more secure implementation. Realistic tradeoffs
アーキテクチャは、CAsがオフラインであることを必要としません。 カリフォルニアは適切な秘密がインストールされるときどんなノードでも動くことができるソフトウェアであるかもしれません。 アカウント登録ユーティリティと名前付けサービスメインテナンスとカリフォルニアを統合することによって、管理便利を獲得できます。 使用中であるときに、そういうものとして、カリフォルニアは、名前付けサービスで証明書を登録するためにオンラインでなければならないでしょう。 カリフォルニアキーの錠がパスワードで開くことができて、各使用のときにともにカリフォルニアのオペレータを認証して、カリフォルニアが使用中でない間ホストノードの感染がカリフォルニアに感染しないことを保証するためにパスワードは入力できました。 このデザインは、カリフォルニアソフトウェアにトロイの木馬を植えることに基づいて攻撃を受けることがあるでしょうが、より安全な実装で完全に共同利用できます。 現実的な見返り
Kaufman [Page 13] RFC 1507 DASS September 1993
コーフマン[13ページ]RFC1507ダス1993年9月
must be made between security, cost, and administrative convenience bearing in mind that a system is only as secure as its weakest link and that there is no benefit in making the CA substantially more secure than the other components of the system.
システムが単に最も弱いリンクと同じくらい安全であり、カリフォルニアをシステムの他の部品より実質的に安全にするのにおいて利益が全くないのを覚えておきながら、セキュリティと、費用と、管理便利の間で作らなければなりません。
1.3.4 Services Provided vs. Application Program Interface
1.3.4 適用業務プログラム・インタフェースに対して提供されたサービス
Section 3 of this document specifies "abstract interfaces" to the services provided by DASS. This means it tells what services are provided, what parameters are supplied by the caller, and what data is returned. It does not specify the calling interfaces. Calling interfaces may be platform, operating system, and language dependent. They do not affect interoperability; different implementations which implement completely different calling interfaces can still interoperate over a network. They do, however, affect portability. A program which runs on one platform can only run on another which implements an identical API.
このドキュメントのセクション3は「抽象的なインタフェース」をダスによって提供されたサービスに指定します。 これは、どんなサービスを提供するか、そして、訪問者がどんなパラメタを提供するか、そして、どんなデータを返すかを言うことを意味します。 それは呼ぶインタフェースを指定しません。 インタフェースと呼ぶのはプラットホーム、オペレーティングシステム、および言語に依存しているかもしれません。 それらは相互運用性に影響しません。 完全に異なった呼ぶのにインタフェースを実装する異なった実装はネットワークの上にまだ共同利用できます。 しかしながら、それらは移植性に影響します。 1個のプラットホームで動くプログラムは同じAPIを実装する別のもので動くことができるだけです。
In order to support portability of applications - not just between implementations of DASS but between implementations of DASS and implementations of Kerberos - a "Generic Security Service API" has been designed and is outlined in Annex B. This API could be the only "published" interface to DASS services. This interface does not, however, give access to all the functions provided by DASS and it provides some non-DASS services. It does not give access to the "login" service, for example, so the login function cannot be implemented in a portable way. Clearly an implementation must provide some implementation of the login function, though perhaps only to one system program and the implementation need not be portable. Similarly, the Generic API provides no access to node authentication information, so applications which use these services may not be portable.
ダスの実装だけではなく、ダスの実装とケルベロスの実装の間のアプリケーションの移植性をサポートするために、「ジェネリックセキュリティー・サービスAPI」は、設計されていて、ダスへの唯一の「発行された」インタフェースがサービスであったかもしれないならAnnex B.This APIに概説されます。 しかしながら、このインタフェースはダスによって提供されたすべての機能へのアクセスを与えません、そして、それはいくつかの非ダスのサービスを提供します。 それが「ログイン」サービスへのアクセスを与えないので、例えば、携帯用の方法でログイン機能を実装することができません。 明確に、実装はログイン機能の何らかの実装を提供しなければなりません、システムプログラムと実装は恐らく1つだけに携帯用である必要はありませんが。 同様に、Generic APIがノード認証情報へのアクセスを全く提供しないので、これらのサービスを利用するアプリケーションは携帯用でないかもしれません。
The Generic API provides services for encryption of user data for integrity and possibly privacy. These services are not specified as a part of the DASS architecture. This is because we envisioned that such services would be provided by the communications network and not in applications. These services are provided by the Generic API because these services are provided by Kerberos, there exist applications which use these services, and they are desired in the context of the IETF-CAT work. The DASS architecture includes a Key Distribution service so that the encryption functions of the Generic API can be supported and integrated. Annex B specifies how those services can be implemented using DASS services.
Generic APIは保全とことによるとプライバシーのための利用者データの暗号化のためのサービスを提供します。 これらのサービスはダスアーキテクチャの一部として指定されません。 これは私たちがサービスがアプリケーションではなく、通信網によって提供されるそのそのようなものを思い描いたからです。 Generic APIは、ケルベロスでこれらのサービスを提供して、これらのサービスを利用する利用が存在していて、IETF-CAT仕事の文脈でそれらを望んでいるので、これらのサービスを提供します。 ダスアーキテクチャは、Generic APIの暗号化機能をサポートして、統合できるようにKey Distributionサービスを含んでいます。 別館Bはダスのサービスを利用することでどうそれらのサービスを実装することができるかを指定します。
The Services Provided also differ from the GSSAPI because there are important extensions envisioned to the API for future applications and it was important to assure that architecturally those services
また、将来のアプリケーションのためにAPIに思い描かれた重要な拡大があるので、Services ProvidedはGSSAPIと異なっています、そして、そんなに建築上、それらのサービスを保証するのは重要でした。
Kaufman [Page 14] RFC 1507 DASS September 1993
コーフマン[14ページ]RFC1507ダス1993年9月
were available. In particular, DASS provides the ability for a principal to have multiple aliases and for the receiver of an authentication token to verify any one of them. We want DASS to support the case where a server only learns the name it is trying to validate in the course of evaluating an ACL. This may be long after a connection is accepted. The Services Provided section therefore separates the Accept_token function from the Verify Principal Name. The other motivation behind a different interface is that DASS provides node authentication - the ability to authenticate the node from which a request originates as well as the user. Because Kerberos provides no such mechanism, the capability is missing from the GSSAPI, but we expect some applications will want to make use of it.
利用可能。 特に、ダスは元本には複数の別名があって、認証トークンの受信機がそれらのどれかについて確かめる能力を提供します。 私たちは、ダスにサーバがACLを評価することの間にそれが有効にしようとしている名前を学ぶだけであるケースを支えて欲しいと思います。 接続を受け入れるずっと後にこれはそうです。 したがって、Services Provided部はVerifyプリンシパルNameとAccept_トークン機能を切り離します。 異なったインタフェースの後ろのもう片方の動機はダスはノード認証を提供します--要求がユーザと同様に起因するノードを認証する能力ということです。 ケルベロスがどんなそのようなメカニズムも提供しないので、能力はGSSAPIからなくなりますが、私たちは、いくつかのアプリケーションがそれを利用したくなると予想します。
1.3.5 Use of a Naming Service
1.3.5 名前付けサービスの使用
With the exception of the syntactical representation of names, which is tied to X.500, the DASS architecture is designed to be independent of the particular underlying naming service. While the intention is that certificates be stored in an X.500 naming service in the fields architecturally reserved for this purpose in the standard, this specification allows for the possibility of different forms of certificate stores. The SPX implementation of DASS implements its own certificate distribution service because we did not want to introduce a dependency on an X.500 naming service.
名前の構文の表現を除いて、ダスアーキテクチャは、特定の基本的な名前付けサービスから独立しているように設計されています。(それは、X.500に結ばれます)。 意志は証明書が建築上、このために規格で予約された分野のX.500名前付けサービスで保存されるということですが、この仕様は異なった形式の証明書店の可能性を考慮します。 私たちがX.500名前付けサービスで依存を導入したくなかったので、ダスのSPX実装は、それ自身の証明書が配布サービスであると実装します。
1.3.6 Key Hiding - Credentials
1.3.6 主要な隠れること--資格証明書
The abstract interfaces described in section 3 specify that "credentials" and "keys" are the inputs and outputs of various routines. Credentials structures in particular contain secret information which should not be made available to the calling application. In most cases, keeping this information from applications is simply a matter of prudence - a misbehaving application can do nearly as much damage using the credentials as it can by using the secrets directly. Having access to the keys themselves may allow an application to bypass auditing or leak a key to an accomplice who can use it on another node where a large amount of activity is less likely to be noticed. In some cases, most dramatically where a "node key" is present in user credentials, it is vital that the contents of the credentials be kept out of the hands of applications.
セクション3で説明された抽象的なインタフェースは、「資格証明書」と「キー」が様々なルーチンの入力と出力であると指定します。 資格証明書構造は呼ぶアプリケーションが入手するべきでない秘密の情報を特に含んでいます。 多くの場合、アプリケーションからこの情報を妨げるのは、単に思慮の問題です--ふらちな事するアプリケーションは、それが直接秘密を使用することによって与えることができるように資格証明書を使用することでほとんど同じくらい多くの損害を与えることができます。 キー自体に近づく手段を持っているのは、アプリケーションに監査を迂回させるか、または別のノードで上多量の活動が、より気付かれそうにないそれを使用できる共犯のキーを漏らさせるかもしれません。 いくつかの場合、「ノードキー」がユーザ資格証明書で存在しているところでアプリケーションの手が資格証明書のコンテンツに入れないようにされるのは、最も劇的に、重大です。
To accomplish this, a concrete interface is expected to create "credentials handles" that are passed in and out of DASS routines. The credentials themselves would be kept in some portion of memory where unprivileged code can't get at them.
これを達成するために、具体的なインタフェースがダスのルーチンについて内外に通過される「資格証明書ハンドル」を作成すると予想されます。 資格証明書自体は「非-特権を与え」させられたコードがそれらに達することができないメモリの何らかの部分に保たれるでしょう。
Kaufman [Page 15] RFC 1507 DASS September 1993
コーフマン[15ページ]RFC1507ダス1993年9月
There is another aspect of the way credentials are used which is important to the design of real implementations. In normal use, a user will create a set of credentials in the process of logging on to a system and then use them from many processes or jobs. When many processes share a set of credentials, it is important for the sake of performance that they share one set of credentials rather than having a copy of the credentials made for each. This is because information is cached in credentials as a side effect of some requests and for good performance those caches should be shared.
資格証明書が使用されている本当の実装のデザインに重要な方法のもう一つの側面があります。 通常の使用で、多くのプロセスか仕事からシステムと次に、使用にそれらを登録することの途中にユーザは1セットの資格証明書を作成するでしょう。 多くのプロセスが1セットの資格証明書を共有するとき、性能のために、それぞれのために資格証明書のコピーを作らせるよりむしろ1セットの資格証明書を共有するのは、重要です。 これはいくつかの副作用が要求するように情報が資格証明書でキャッシュされて、それらのキャッシュが望ましい市場成果において共有されるべきであるからです。
As an example, consider a system executing a series of copy commands moving files from one system to another. The credentials of the user will have been established when the user logged on. The first time a copy is requested, a new process will start up, open a connection to the destination system, and create a token to authenticate itself. Creating that token will be an expensive operation, but information will be computed and "cached" in the credentials structure which will allow any subsequent tokens on behalf of that user to that server to be computed cheaply. After the copy completes, the connection is closed and the process terminates. In response to a second copy request, another new process will be created and a new token computed. For this operation to get a performance benefit from the caching, the information computed by the first process must somehow make it to the second.
例と、1台のシステムから別のものへファイルを移す一連のコピーコマンドを実行するシステムを考えてください。 ユーザがログオンしたとき、ユーザの資格証明書は確立していてしまうでしょう。 コピーが初めて要求されるとき、ニュープロセスは、始動して、目的地システムに接続を開いて、それ自体を認証するためにトークンを作成するでしょう。 そのトークンを作成するのが、高価な操作ですが、情報は、計算されて、そのサーバへのそのユーザを代表したどんなその後のトークンも安く計算されるのを許容する資格証明書構造で「キャッシュされるでしょう」。 コピーが完成した後、接続は閉じられて、プロセスは終わります。 2番目のコピー要求に対応して、別のニュープロセスは、作成されていて計算された新しいトークンになるでしょう。 この操作がキャッシュから性能利益を得るように、最初のプロセスによって計算された情報はどうにか2番目に行かなければなりません。
A model for how this caching might work can be seen in the way Kerberos caches credentials. Kerberos keeps credentials in a file whose name can be computed from the name of the local user. This file is initialized as part of the login process and its protection is set so that only processes running under the UID of the user may read and write the file. Processes cache information there; all processes running on behalf of the user share the file.
ケルベロスが資格証明書をキャッシュする方法でこのキャッシュがどう働くことができるようにモデルを見ることができるか。 ケルベロスは地元のユーザの名前から名前を計算できるファイルの資格証明書を保ちます。 ユーザのUIDで実行されるプロセスだけがファイルを読み書きできるようにログインプロセスとその保護の一部が設定されるとき、このファイルは初期化されます。 プロセスはそこで情報をキャッシュします。 ユーザを代表して稼働するすべてのプロセスがファイルを共有します。
There are two problems with this scheme: first, on a diskless node putting information in a file exposes it to eavesdroppers on the network; second, it does not accomplish the "key hiding" function described earlier in this section. In a more secure implementation, the kernel or a privileged process would manage some "pool" of credentials for all processes on a node and would grant access to them only through the DASS calls. Credentials structures are complex and varying length; DASS may organize them as a set of pools rather than as contiguous blocks of data. All such design issues are "beyond the scope of the architecture". Implementations must decide how to control access to credentials. They could copy the Kerberos scheme of having credentials available to processes with the UID of the login session which created them and to privileged processes or there may be a more elaborate mechanism for "passing" credentials handles from process to process. This design should probably follow
この体系に関する2つの問題があります: まず最初に、ファイルはネットワークで情報を入れるディスクレスノードの上では、立ち聞きする者にそれを暴露します。 2番目に、それは、より早くこのセクションで説明された「主要な隠れること」機能を達成しません。 より安全な実装では、カーネルか特権があるプロセスが、ノードの上のすべてのプロセスのために資格証明書のいくつかの「プール」を管理して、単にダスの呼び出しでそれらへのアクセスを承諾するでしょう。 資格証明書構造は複雑で異なった長さです。 ダスは隣接のブロックのデータとしてというよりむしろ1セットのプールとしてそれらを組織化するかもしれません。 そのようなすべてのデザイン問題が「アーキテクチャの範囲」にあります。 実装は資格証明書へのアクセスを制御する方法を決めなければなりません。 彼らがそれらを作成したログインセッションのUIDと、そして、特権があるプロセスにプロセスに利用可能な有資格証明書のケルベロス体系をコピーするかもしれませんか、または資格証明書ハンドルのプロセスからプロセスまで「通過」であるための、より入念なメカニズムがあるかもしれません。 このデザインはたぶん従うべきです。
Kaufman [Page 16] RFC 1507 DASS September 1993
コーフマン[16ページ]RFC1507ダス1993年9月
the operating system mechanisms for passing around local privileges.
地方の特権を回すためのオペレーティングシステムメカニズム。
1.3.7 Key Hiding - Contexts
1.3.7 主要な隠れること--文脈
The "GSSAPI" has a concept of a security context which has some of the same key hiding problems as a credentials structure. Security contexts are used in calls to cryptographically protect user data (from modification or from disclosure and modification) using keys established during authentication. The "services provided" specification says that create_ and accept_token return a "shared key" and "instance identifier". The GSSAPI says that a context handle is returned which is an integer. A secure implementation would keep the key and instance identifier in protected memory and only allow access to them through provided interfaces.
"GSSAPI"には、資格証明書構造として同じ主要な隠れること問題のいくつかを持っているセキュリティ文脈の概念があります。 セキュリティ文脈は認証の間に設立されたキーを使用することで暗号で、利用者データ(変更か公開と変更からの)を保護するという要求に使用されます。 「サービスは提供した」という仕様が、それが_を作成して、トークンが「共有されたキー」と「インスタンス識別子」を返す_を受け入れると言います。 GSSAPIは、整数である文脈ハンドルが返されると言います。 安全な実装は、保護されたメモリのキーとインスタンス識別子を保って、提供されたインタフェースにそれらへのアクセスの通ることを許すだけでしょう。
Unlike credentials, there is probably no need to provide mechanisms for contexts to be shared between processes. Contexts will normally be associated with some notion of a communications "connection" and ends of a connection are not normally shared. If an implementation chooses to provide additional services to applications like message sequencing or duplicate detection, contexts will have to contain additional fields. These can be created and maintained without any additional authentication services.
資格証明書と異なって、文脈がプロセスの間で共有されるためにメカニズムを提供する必要はたぶん全くありません。 通常、文脈は「接続」というコミュニケーションの何らかの概念に関連するでしょう、そして、通常、接続の終わりは共有されません。 実装が、メッセージ配列や写し検出のようなアプリケーションに対する追加サービスを提供するのを選ぶと、文脈は追加分野を含まなければならないでしょう。 少しも追加認証サービスなしでこれらを作成して、維持できます。
1.4 The Relationship between DASS and ISO Standards
1.4 ダスとISO規格との関係
This section provides an introduction to DASS authentication in terms of the ISO Authentication Framework (DP10181-2). The purpose of this introduction is to give the reader an intuitive understanding of the way DASS works and how its mechanisms and terminology relate to standards. Important details have been omitted here but are spelled out in section 3.
このセクションはISO Authentication Framework(DP10181-2)に関してダスの認証に序論を提供します。 この序論の目的はダスが働く方法とそのメカニズムと用語がどう規格に関連するかに関する直感的な理解を読者に与えることです。 重要な詳細は、ここで省略されましたが、セクション3でスペルアウトされます。
1.4.1 Concepts
1.4.1 概念
The primary goal of authentication is to prevent impersonation, that is, the pretense to a false identity. Authentication always involves identification in some form. Without authentication, anyone could claim to be whomever they wished and get away with it.
認証のプライマリ目標はものまね、すなわち、見せかけるのを偽名に防ぐことです。 認証はいつも何らかのフォームに識別にかかわります。 認証がなければ、だれでも、彼らが願っていた人なら誰でもであるか、そして、それをうまくやると主張できました。
If it didn't matter with whom one was communicating, elaborate procedures for authentication would be unnecessary. However, in most systems, and in timesharing and distributed processing environments in particular, the rights of individuals are often circumscribed by security policy. In particular, authorization (identity based access control) and accountability (audit) provisions could be circumvented if masquerading attempts were impossible to prevent or detect.
あるものがだれを伝えていたかと共に重要でないなら、認証のための入念な手順は不要でしょうに。 しかしながら、特にほとんどのシステム、時分割、および分散処理環境で、個人の権利は安全保障政策でしばしば外接しています。 仮装試みは防ぐか、または検出するのが不可能であるなら、特に、承認(アイデンティティはアクセスコントロールを基礎づけた)と責任(監査する)条項を回避できるでしょうに。
Kaufman [Page 17] RFC 1507 DASS September 1993
コーフマン[17ページ]RFC1507ダス1993年9月
Almost all practical authentication mechanisms suitable for use in distributed environments rely on knowledge of some secret information. Most differences lie in how one presents evidence that they know the secret. Some schemes, in particular the familiar simple use of passwords, are quite susceptible to attack. Generally, the threats to authentication may be classified as:
分散環境における使用に適したほとんどすべての実用的な認証機構が何らかの秘密の情報に関する知識を当てにします。 ほとんどの違いが1つがどう、彼らが秘密を知っているという証拠を提示するかであります。 いくつかの体系(特にパスワードの身近な簡単な使用)が攻撃するのにおいて十分影響されやすいです。 一般に、認証への脅威は以下として分類されるかもしれません。
- forgery, attempting to guess or otherwise fabricate evidence;
- 証拠を推測するか、またはそうでなければ、作るのを試みる偽造
- replay, where one can eavesdrop upon another's authentication exchange and learn enough to impersonate them; and
- 人が別のものの認証交換を盗み聞いて、それらをまねることができるくらい学ぶことができるところで再演してください。 そして
- interception, where one slips between the communicants and is able to modify the communications channel unnoticed.
- 1つが聖餐拝受者の間を滑って、目だたない状態でコミュニケーションチャンネルを変更できるところでの妨害。
Most such attacks can be countered by using what is known as strong authentication. Strong authentication refers to techniques that permit one to provide evidence that they know a particular secret without revealing even a hint about the secret. Thus neither the entity to whom one is authenticating, nor an eavesdropper on the conversation can further their ability to impersonate the authenticating principal at some future time as the result of an authentication exchange.
強い認証として知られていることを使用することによって、そのようなほとんどの攻撃に対抗できます。 強い認証は1つが彼らが秘密に関してヒントさえ明らかにしないで特定の秘密を知っているという証拠を提供することを許可するテクニックを示します。 したがって、1つが認証である実体も会話での立ち聞きする者も何らかの将来の時間に認証交換の結果として認証主体をまねる彼らの能力を促進できません。
Strong authentication mechanisms, in particular those used here, rely on cryptographic techniques. In particular, DASS uses public key cryptography. Note that interception attacks cannot be countered by strong authentication alone, but generally need additional security mechanisms to secure the communication channel, such as data encryption.
強い認証機構(特にここで使用されたもの)は暗号のテクニックを当てにします。 特に、ダスは公開鍵暗号を使用します。 一般に、通信チャネルを保証するために追加担保メカニズムを必要とするのを除いて、データ暗号化などのように強い認証で妨害攻撃に単独で対抗できないことに注意してください。
1.4.2 Principals and Their Roles
1.4.2 主体とそれらの役割
All authentication is on behalf of principals. In DASS the following types of principals are recognized:
すべての認証が主体を代表しています。 ダスでは、以下のタイプの主体は認識されます:
- user principals, normally people with accounts who are responsible for performing particular tasks. Generally it is users that are authorized to do things by virtue of having been granted access rights, or who are to be held accountable for specific actions subject to being audited.
- ユーザ主体、通常アカウントをもっている特定のタスクを実行するのに責任がある人々。 一般にそれはアクセス権を与えたことによってことをするのに権限を与えられることになっているか、または監査されることを条件として特定の動作について責任があるように主張されることになっているユーザです。
- server principals, which are accessed by users.
- サーバ主体。(その主体はユーザによってアクセスされます)。
- node principals, corresponding to locations where users and servers, or more accurately, processes acting on behalf of principals can reside.
- 位置に対応するノード主体、どこ、正確に、主体を代表して行動するプロセスがそうすることができるユーザとサーバか、その他、住んでくださいか。
Kaufman [Page 18] RFC 1507 DASS September 1993
コーフマン[18ページ]RFC1507ダス1993年9月
Principals can act in one of two capacities:
主体は2つの人収容の1つで行動できます:
- the claimant is the active entity seeking to authenticate itself, and
- そして主張者がそれ自体を認証しようとするアクティブな実体である。
- the verifier is the passive entity to whom the claimant is authenticating.
- 検証は主張者が認証している受け身の実体です。
Users normally are claimants, whereas servers are usually verifiers, although sometimes servers can also be claimants.
また、時々サーバは主張者であるかもしれませんが、サーバは通常検証ですが、通常、ユーザは主張者です。
There is another kind of principal:
もう1種類の主体があります:
- certification authorities (CA's) issue certificates which attest to another principal's public key.
- 証明当局(CAのもの)は別の主体の公開鍵を証明する証明書を発行します。
1.4.3 Representation, Delegation and Representation Transfer
1.4.3 表現、委譲、および表現は移されます。
Of course, although it is users that are responsible for what the computer does, human beings are physically unable to directly do anything within a computer system. In point of fact, it is a process executing on behalf of a user that actually performs useful work. From the point of view of performing security controlled functions, the process is the agent, or representative, of the user, and is authorized by that user to do things on his behalf. In the terms used in the ISO Authentication Framework, the user is said to have a representation in the process.
もちろん、それはコンピュータがすることに責任があるユーザですが、人間はコンピュータ・システムの中で物理的に直接何もできません。 事実上、実際に実質的な仕事を実行するのは、ユーザを代表して実行されるプロセスです。 セキュリティの制御機能を実行する観点から、プロセスは、ユーザのエージェント、または代表であり、そのユーザによって彼に代わってことをするのが認可されます。 ISO Authentication Frameworkで使用される用語で、ユーザはプロセスに表現を持っていると言われています。
The representation has to come into existence somehow. Delegation refers to the act of creating a representation. A user is said to create a representation for themselves by delegating to a process. If the user creates another process, say by doing an rlogin on a different computer, a representation may be needed there as well. This may be accomplished automatically by a process known as representation transfer. DASS uses the term delegation to also mean the act of creating additional representations on a remote systems.
表現はどうにか生まれなければなりません。 委譲は表現を作成する行為を示します。 ユーザはプロセスに委任することによって自分たちの表現を作成すると言われています。 ユーザが別のプロセスを作成するなら、することによって、異なったコンピュータの上のrloginであり、また、表現がそこで必要であるかもしれないと言ってください。 これは表現転送として知られているプロセスによって自動的に達成されるかもしれません。 ダスは、また、追加表現をリモートシステムに作成する行為を意味するのに委譲という用語を使用します。
A representation is instantiated in DASS as credentials. Credentials include the identity of the principal as well as the cryptographic "state" needed to engage in strong authentication procedures. Claimant information in credentials enable principals to authenticate themselves to others, whereas verifier information in credentials permit principals to verify the claims of others. Credentials intended primarily for use by a claimant will be referred to as claimant credentials in the text which follows. Credentials intended primarily for use in verification will be referred to as verifier credentials. A particular set of credentials may or may not contain
表現は資格証明書としてダスに例示されます。 資格証明書は強い認証手順に従事するのに必要である暗号の「状態」と同様に主体のアイデンティティを含んでいます。 資格証明書における主張者情報は、校長が他のものに自分たちを認証するのを可能にしますが、資格証明書における検証情報は、校長が他のもののクレームについて確かめることを許可します。 主として使用のために主張者によって意図された資格証明書は従うテキストの主張者資格証明書と呼ばれるでしょう。 主として検証における使用のために意図する資格証明書は検証資格証明書と呼ばれるでしょう。 特定のセットの資格証明書は含むかもしれません。
Kaufman [Page 19] RFC 1507 DASS September 1993
コーフマン[19ページ]RFC1507ダス1993年9月
all of the data necessary to be used in both roles. That will depend on the mechanisms by which the credentials were created.
両方の役割で使用されているのに必要なデータのすべて。 それは資格証明書が作成されたメカニズムによるでしょう。
In some contexts, but not here, the concept of representation and/or delegation is sometimes referred to as proxy. This term is used in ECMA TR/46. We avoid use of the term because of possible confusion with an unrelated use of the term in the context of DECnet.
いくつかの文脈では、表現、そして/または、委譲の概念はここに呼ばれるのではなく、時々プロキシと呼ばれます。 今期はECMA TR/46で使用されます。 私たちはDECnetの文脈における用語の関係ない使用への可能な混乱で用語の使用を避けます。
1.4.4 Key Distribution, Replay, Mutual Authentication and Trust
1.4.4 主要な分配、再生、互いの認証、および信頼
Strong authentication uses cryptographic techniques. The particular mechanisms used in DASS result in the distribution of cryptographic keys as a side effect. These keys are suitable for use for providing a data origin authentication service and/or a data confidentiality service between a pair of authenticated principals.
強い認証は暗号のテクニックを使用します。 ダスで使用される特定のメカニズムは副作用として暗号化キーの分配をもたらします。 これらのキーはデータ発生源認証サービス、そして/または、データの機密性サービスを1組の認証された主体の間に提供する使用に適しています。
Replay detection is provided using timestamps on relevant authentication messages, combined with remembering previously accepted messages until they become "stale". This is in contrast to other techniques, such as challenge and response exchanges.
「聞き古したである」なるまで以前に受け入れられたメッセージを覚えていると結合された関連認証メッセージに関するタイムスタンプを使用することで再生検出を提供します。 これは挑戦や応答交換などの他のテクニックと対照的になっています。
Authentication can be one-way or mutual. One-way authentication is when only one party, in DASS the claimant, authenticates to the other. Mutual authentication provides, in addition, authentication of the verifier back to the claimant. In certain communications schemes, for example connectionless transfer, only one-way authentication is meaningful. DASS supports mutual authentication as a simple extension of one-way authentication for use in environments where it makes sense.
認証は、一方向である、または互いである場合があります。 一方向認証はいつです。パーティーが主張者のダスでもう片方に認証する1つだけ。 互いの認証はさらに、検証の認証を主張者に提供して戻します。 あるコミュニケーション体系、例えば、コネクションレスな転送では、一方向認証だけが重要です。 ダスはそれが理解できる環境における使用のための一方向認証の単純拡大として互いの認証をサポートします。
DASS potentially can allow many different "trust relationships" to exist. All principals trust one or more CA's to safeguard the certification process. Principals use certificates as the basis for authenticating identities, and trust that CA's which issue certificates act responsibly. Users expect CA's to make sure that certificates (and related secrets) are only made for principals that the CA knows or has properly authenticated on its own.
ダスは多くの異なった「信頼関係」を潜在的に存在させることができます。 すべての校長が1つを信じるか、安全装置への、より多くのCAが証明プロセスです。 校長はアイデンティティを認証する基礎として証明書を使用します、そして、問題証明書が責任をもって行動させるCAのそのものを信じてください。 ユーザは、CAのものが、証明書(そして、秘密について話す)がカリフォルニアが知っているか、またはそれ自身のところで適切に認証した主体のために作られているだけであるのを確実にすると予想します。
1.5 An Authentication Walkthrough
1.5 認証ウォークスルー
The OSI Authentication Framework characterizes authentication as occurring in six phases. This section attempts to describe DASS in these terms.
OSI Authentication Frameworkは六相で起こるとして認証を特徴付けます。 このセクションは、これらの用語でダスについて説明するのを試みます。
Kaufman [Page 20] RFC 1507 DASS September 1993
コーフマン[20ページ]RFC1507ダス1993年9月
1.5.1 Installation
1.5.1 インストール
In this phase, principal certificates are created, as is the additional information needed to create claimant and verifier credentials. OSI defines three sub-phases:
このフェーズでは、主要な証明書は主張者と検証資格証明書を創造するのに必要である追加情報のように作成されます。 OSIは3つのサブフェーズを定義します:
- Enrollment. In DASS, this is the definition of a principal in terms of a key, name and UID.
- 登録。 ダスと、これはキー、名前、およびUIDに関する元本の定義です。
- Validation, confirmation of identity to the satisfaction of the CA, after which the CA generates a certificate.
- 合法化、カリフォルニアが証明書を作るカリフォルニアの満足へのアイデンティティの確認。
- Confirmation. In DASS, this is the act of providing the user with the certificate and with the CA's own name, key and UID, followed up by the user creating a trusted authority for that CA. A trusted authority is a certificate for the CA signed by the user.
- 確認。 ダスでは、これはCAの証明書をユーザに提供する、自己の名前、キー、およびUIDとの信じられた権威をそのカリフォルニアに作成するユーザによって追求された行為です。 信じられた権威はユーザによって署名されたカリフォルニアのための証明書です。
Included in this step in DASS is the posting of the certificate so as to be available to principals wishing to verify the principal's identity. In addition, the user principal saves the trusted authority so as to be available when it creates credentials.
ダスのこのステップに含まれていて、主体のアイデンティティについて確かめることを願いながら主体に利用可能になるように、証明書は任命がありますか? さらに、ユーザ主体は、資格証明書を作成するとき、利用可能になるように信じられた権威を保存します。
1.5.2 Distribution
1.5.2 分配
DASS distributes certificates by placing them in the name service.
ダスは、サービスという名前にそれらを置くことによって、証明書を配布します。
1.5.3 Acquisition
1.5.3 獲得
Whenever principals wish to authenticate to one another, they access the Name Service to obtain whatever public key certificates they need and create the necessary credentials. In DASS, acquisition means obtaining credentials.
いつ、お互いに認証する主体願望、それらは彼らが必要とするどんな公開鍵証明書も入手して、必要な資格証明書を作成するためにName Serviceにアクセスするか。 ダスでは、獲得は、資格証明書を得ることを意味します。
Claimant credentials implement the representation of a principal in a process, or, more accurately, provide a representation of the principal for use by a process. In making this representation, the principal delegates to a temporary delegation key. In this fashion the claimant's long term principal key need not remain in the system.
主張者資格証明書は、プロセスで元本の表現を実装するか、またはプロセスで、より正確に主体の表現を使用に提供します。 この表現、主要な代表を一時的な委譲キーに作る際に。 こんなやり方で主張者の長期主体キーはシステムに残る必要はありません。
Claimant credentials are made by invoking the get credentials primitive. Claimant credentials are a DASS specific data structure containing:
主張者資格証明書が呼び出すことによって作られている、資格証明書を原始的にならせてください。 主張者資格証明書は以下を含むダス特有のデータ構造です。
- a name
- 名前
- a ticket, a data structure containing
- チケット、データ構造含有
Kaufman [Page 21] RFC 1507 DASS September 1993
コーフマン[21ページ]RFC1507ダス1993年9月
. a validity interval,
. 正当性間隔
. UID, and
そして. UID。
. (temporary) delegation public key, along with a
. aに伴う(一時的)の委譲公開鍵
. digital signature on the above made with the principal private key
. 主要な秘密鍵で作られた上記におけるデジタル署名
- the delegation private key
- 委譲秘密鍵
Optionally in addition, there may be credential information relating to the node on which the user is logged in and the account on that node. A detailed description of all the information found in credentials can be found in section 3. Verifier credentials are made with initialize_server. Verifier credentials consist of a principal (long term) private key. The rationale is that these credentials are usually needed by servers that must be able to run indefinitely without re-entry of any long term key.
任意に、そのノードの上にユーザがログインされるノードをアカウントに関連する資格証明情報があるかもしれません。 セクション3で資格証明書で見つけられたすべての情報の詳述を見つけることができます。 _サーバを初期化してください。検証資格証明書が作られている、検証資格証明書は主要な(長期)秘密鍵から成ります。 原理は通常、これらの資格証明書がどんな長期キーの再突入なしでも無期限に稼働できなければならないサーバによって必要とされるということです。
In addition, claimants and verifiers have a trusted authority, which consists of information about a trusted CA. That information is its:
さらに、主張者と検証には、信じられた権威があります。(それは、信じられたカリフォルニアの情報から成ります)。 その情報がそうである、それ、:
- name (this will appear in the "issuer" field in principal certificates),
- 名前(これは主要な証明書の「発行人」分野に現れるでしょう)
- public key (to use in verifying certificates issued by that CA), and
- そして公開鍵(そのカリフォルニアによって発行された証明書について確かめる際に使用する)。
- UID.
- UID。
Trusted authorities are used by principals to verify certificates for other principals' public keys. CAs are arranged in a hierarchy corresponding to the naming hierarchy, where each directory in the naming hierarchy is controlled by a single CA. Each CA certifies the CA of its parent directory, the CAs of each of its child directories, and optionally CAs elsewhere in the naming hierarchy (mainly to deal with the case where the directories up to a common ancestor lack CAs). Even though a principal has only a single CA as a trusted authority, it can securely obtain the public key of any principal in the namespace by "walking the CA hierarchy".
信じられた当局は主体によって使用されて、他の主体の公開鍵のための証明書について確かめます。 CAsは命名階層構造に対応する階層構造でアレンジされます。そこでは、命名階層構造の各ディレクトリが単一のカリフォルニアによって制御されます。 各カリフォルニアは任意に親ディレクトリのカリフォルニア、それぞれの子供ディレクトリのCAsを公認します。命名階層構造(主に一般的な先祖までのディレクトリがCAsを欠いているところでケースに対処する)におけるほかの場所のCAs。 元本には、信じられた権威として単一のカリフォルニアしかありませんが、それは「カリフォルニア階層構造を歩きます」でしっかりと名前空間におけるどんな主体の公開鍵も得ることができます。
1.5.4 Transfer
1.5.4 転送
The DASS exchange of authentication information is illustrated in Figure 1-1. During the transfer phase, the DASS claimant sends an authentication token to the verifier. Authentication tokens are made by invoking the create_token primitive. The authentication token is
認証情報のダスの交換は図1-1で例証されます。 転送段階の間、ダス主張者は認証トークンを検証に送ります。 認証トークンが呼び出すことによって作られている、原始的に_トークンを作成してください。 認証トークンはそうです。
Kaufman [Page 22] RFC 1507 DASS September 1993
コーフマン[22ページ]RFC1507ダス1993年9月
cryptographically protected and specified as a DASS data structure in ASN.1. The authentication token includes:
暗号で保護されていてASN.1のダスデータ構造として指定されています。 認証トークンは:
- a ticket,
- チケット
- a DES authenticating key encrypted using the intended verifier's public key
- 意図している検証の公開鍵を使用することで暗号化されたキーを認証するDES
- one of the following:
- 以下の1つ:
. if delegation is not being performed, a digital signature on the encrypted DES key using the delegation private key, or
または. 実行される暗号化されたDESにおけるデジタル署名が委譲であるなら委譲秘密鍵を使用することで主要でない。
. if delegation is being performed, sending the delegation private key, DES encrypted using the DES authenticating key
委譲秘密鍵、キーを認証しながらDESを使用することで暗号化されたDESを送って、委譲は実行されています。
- an authenticator, which is a cryptographic checksum made using the DES authenticating key over a buffer containing
- 固有識別文字。(その固有識別文字はバッファ含有の上で主要なDES認証を使用することで作られた暗号のチェックサムです)。
. a timestamp
. タイムスタンプ
. any application supplied "channel bindings". For example, addresses or other context information. The purpose of this field is to thwart substitution and replay attacks.
. どんなアプリケーションも「チャンネル結合」を供給しました。 例えば、アドレスか他の文脈情報。 この分野の目的は代替と反射攻撃を阻むことです。
- additional optional information concerning node authentication and context.
- ノード認証と文脈の追加任意の情報。
As a side effect, after init_authentication_context, the caller receives a local authentication context, a data structure containing:
副作用として、イニット_認証_文脈の後に、訪問者はローカルの認証関係、以下を含むデータ構造を受けます。
- the DES key, and
- そしてDESキー。
- if mutual authentication is being requested, the expected response.
- 互いの認証が要求されているなら、予想された応答です。
In order to construct an authentication token, the claimant needs to access the verifier's public key certificate from the Name Service (labeled CDC, for Certificate Distribution Center, in the figure).
認証トークンを構成するために、主張者は、Name Service(図のCertificate DistributionセンターのためにCDCとラベルされる)から検証の公開鍵証明書にアクセスする必要があります。
Note that while an authenticator can only be used once, it is permissible to re-establish the same local authentication context multiple times. That is, the ticket and DES key establishment components of the authentication token may have a relatively long lifetime. This permits a performance improvement in that repeated applications of public key operations can be alleviated if one caches authentication contexts, along with other components from a successfully used authentication token and the associated verified
一度固有識別文字を使用できるだけですが、同じローカルの認証関係を複数の回復職させるのが許されていることに注意してください。 すなわち、認証トークンのチケットとDESの主要な設立の部品には、比較的長い寿命があるかもしれません。 これは1つが認証文脈をキャッシュするなら公開鍵操作の繰り返された応用を軽減できるという点で性能改良を可能にします、首尾よく使用された認証トークンと関連から確かめられた他のコンポーネントと共に
Kaufman [Page 23] RFC 1507 DASS September 1993
コーフマン[23ページ]RFC1507ダス1993年9月
principal public key value. It is a relatively inexpensive operation to create (and verify) "fresh" authenticators based on cached authentication context.
主要な公開鍵値。 それが作成する比較的安価な操作である、(検証、)、「新鮮な」固有識別文字はキャッシュされた認証文脈を基礎づけました。
Claimant Actions | Communications | Verifier Actions | | verifier name | | | | | | | +---+| \------------------->| || trusted | | || authorities | |CDC|| | +-----------+ |certificate| || | | Verify |<-------------| || \--->|Certificate| | +---+| +-----------+ | | Claimant | | | credentials Verifier | | Verifier | Public Key | | Credentials | | | | | | V | | V | +-----------+ | Authentication | +-----------+ | | Make | | Token | | Check | Replay \--->| Token |-------------------->| Token |<-->Cache +-----------+ | | +-----------+ DES <---/ | | | | | \----->DES key | | | /Claimant key | | |/Public Key | | / | trusted | | Claimant /| V authorities | |+---+ Name / | +-----------+ | authentication || |<-------/ | | Verify |<----/ context || |certificate| |Certificate| | ||CDC|------------>| |-->accept/ | || | | +-----------+ reject | || | | | \ | |+---+ |authentication\ V | mutual | context V +-----------+ | authentication | | claimant /--| Accept | | response | +----------+credentials V | Mutual |<--------------------| Make |(delegation) accept/ +-----------+ | | | Response | reject | | +----------+ | |
主張者動作| コミュニケーション| 検証動作| | 検証名| | | | | | | +---+| \------------------->| || 信じられます。| | || 当局| |CDC|| | +-----------+ |証明書| || | | 確かめます。| <、-、-、-、-、-、-、-、-、-、-、-、--、| || \--->|証明書| | +---+| +-----------+ | | 主張者| | | 資格証明書Verifier| | 検証| 公開鍵| | 資格証明書| | | | | | V| | V| +-----------+ | 認証| +-----------+ | | 造| | トークン| | チェック| 再生\--->| トークン|、-、-、-、-、-、-、-、-、-、-、-、-、-、-、-、-、-、-、--、>| トークン| <-->キャッシュ+-----------+ | | +-----------+ デス<。---/ | | | | | \----->DESキー| | | /主張者キー| | |/公開鍵| | / | 信じられます。| | 主張者/| V当局| |+---+ 名前/| +-----------+ | 認証|| | <、-、-、-、-、-、--/ | | 確かめます。| <、-、-、--/文脈|| |証明書| |証明書| | ||CDC|、-、-、-、-、-、-、-、-、-、-、--、>| |-->は/を受け入れます。| || | | +-----------+ 廃棄物| || | | | \ | |+---+ |認証\V| 互い| 文脈V+-----------+ | 認証| | 主張者/--| 受け入れてください。| | 応答| +----------+ 資格証明書V| 互い| <、-、-、-、-、-、-、-、-、-、-、-、-、-、-、-、-、-、-、--、| 造|(委譲) /+を受け入れてください。-----------+ | | | 応答| 廃棄物| | +----------+ | |
Figure 1 - Authentication Exchange Overview
図1--認証交換概要
Kaufman [Page 24] RFC 1507 DASS September 1993
コーフマン[24ページ]RFC1507ダス1993年9月
1.5.5 Verification
1.5.5 検証
Upon receipt of an authentication token, the verifier extracts the DES key using its verifier credentials, accesses the Name Service (labeled CDC for Certificate Distribution Center) to obtain the certificates needed to perform cryptographic checks on the incoming information, and verifies all of the signatures on the received certificates and the authentication token. Verification can result in creation of new claimant credentials if delegation is performed.
認証トークンを受け取り次第、検証は、検証資格証明書を使用することでDESキーを抽出して、入って来る情報に暗号のチェックを実行するのが必要である証明書を入手するために、Name Service(Certificate DistributionセンターのためにCDCとラベルされる)にアクセスして、受け取られていている証明書と認証トークンで署名のすべてについて確かめます。 委譲が実行されるなら、検証は新しい主張者資格証明書の作成をもたらすことができます。
As part of this process, verified authenticators are retained for a suitable timeout period.
このプロセスの一部として、確かめられた固有識別文字は適当なタイムアウト時間の間、保有されます。
1.5.6 Unenrolment
1.5.6 Unenrolment
This is the removal of information from the Name Service. The only other form of revocation supported by DASS is certificate timeout. Every certificate contains an expiration time (expected in ordinary use to be about a year from its signing date). DASS does not currently support the revocation lists in X.509.
これはName Serviceからの情報の取り外しです。 ダスによってサポートされた他の唯一の形式の取消しは証明書タイムアウトです。 あらゆる証明書が満了時間(普通の使用で、署名日付からおよそ1年であると予想する)を含んでいます。 ダスは、現在、取消しがX.509のリストであるとサポートしません。
2. Services Used
2. 利用されたサービス
Aside from operating system services needed to maintain its internal state, DASS relies on a global distributed database in which to store its certificates, a reliable source of time, and a source of random numbers for creating cryptographic keys.
内部の状態を維持するのに必要であるオペレーティングシステムサービスは別として、ダスは暗号化キーを作成するために証明書、時間の信頼すべき筋、および乱数の源を保存するグローバルな分散データベースを当てにします。
2.1 Time Service
2.1 時間指定サービス
DASS requires access to the current time in several of its algorithms. Some of its uses of time are security critical. In others, network synchronization of clocks is required. DASS does not, however, depend on having a single source of time which is both secure and tightly synchronized.
ダスはいくつかのアルゴリズムで現在の時間へのアクセスを必要とします。時間の用途のいくつかがセキュリティ重要です。 他のものでは、時計のネットワーク同期が必要です。 しかしながら、ダスは両方である時間の単独の源を安全でしっかり連動するようにするのを当てにしません。
The requirements on system provided time are:
システムの提供された時の要件は以下の通りです。
- For purposes of validating certificates and tickets, the system needs access to know the date and time accurate to within a few hours with no particular synchronization requirements. If this time is inaccurate, then valid requests may be rejected and expired messages may be accepted. Certificate expiration is a backup revocation mechanism, so this can only cause a security compromise in the event of multiple failures. In theory, this could be provided by having a local clock on every node accurate to within a few hours over the life of the product to provide this function.
- 特定の同期要件なしで証明書、チケット、必要性が日付を知るためにアクセスするシステム、および数時間に正確な時間を有効にする目的のために。 今回が不正確であるなら、有効な要求を拒絶するかもしれません、そして、満期のメッセージを受け入れるかもしれません。 証明書満了がバックアップ取消しメカニズムであるので、これは複数の失敗の場合、セキュリティ感染を引き起こすだけである場合があります。 理論上、この機能を提供するために製品の寿命の上であらゆるノードの上の地方の時計を正確に数時間まですることによって、これを提供できるでしょう。
Kaufman [Page 25] RFC 1507 DASS September 1993
コーフマン[25ページ]RFC1507ダス1993年9月
If an insecure network time service is used to provide this time, there are theoretical security threats, but they are expected to be logistically impractical to exploit.
不安定なネットワーク時間指定サービスが今回提供するのに使用されるなら、理論上の軍事的脅威がありますが、利用するためにロジスティックに非実用的であると予想されます。
- For purposes of detecting replay of authentication tokens, the system needs access to a strictly monotonic time source which is reasonably synchronized across the network (within a few minutes) for the system to work, but inaccuracy does not present a security threat except as noted below. It may constitute an availability threat because valid requests may be rejected. In order to get strict monotonicity in the presence of a rapid series of requests, time must be returned with high precision. There is no requirement for a high degree of accuracy. Inaccurate time could present a security threat in the following scenario: if a client's clock is made sufficiently fast that its tokens are rejected, someone harvesting those tokens from the wire could replay them later and impersonate the client. In some environments, this might be an easier threat than harvesting tokens and preventing their delivery.
- 認証トークンの再生を検出する目的のために、システムはシステムが扱うネットワーク(数分以内の)の向こう側に合理的に同期する厳密に単調な時間ソースへのアクセスを必要としますが、以下に述べられる以外に、不正確は軍事的脅威を提示しません。 有効な要求が拒絶されるかもしれないので、それは有用性の脅威を構成するかもしれません。 急速なシリーズの要求があるとき厳しい単調を得るために、高い精度と共に時間を返さなければなりません。 高精度のための要件が全くありません。 不正確な時間は以下のシナリオにおける軍事的脅威を提示するかもしれません: クライアントの時計が十分速く作られるなら、だれかがワイヤからそれらのトークンを取り入れて、トークンが拒絶されるのが、後でそれらを再演して、クライアントをまねるかもしれません。 いくつかの環境で、これはトークンを取り入れて、彼らの配送を防ぐより簡単な脅威であるかもしれません。
- For purposes of aging stale entries from caches, DASS requires reasonably accurate timing of intervals. To the extent that intervals are reported as shorter than the actually were, revocation of certificates from the naming service may not be as timely as it should be.
- キャッシュから聞き古したエントリーの年をとる目的のために、ダスは間隔の合理的に正確なタイミングを必要とします。 間隔が、より短いとして報告されるという範囲、実際にあった、名前付けサービスからの証明書の取消しはそれであるべきであるほどタイムリーでないかもしれません。
2.2 Random Numbers
2.2 無作為の数
In order to generate keys, DASS needs a source of "cryptographic quality" random numbers. Cryptographic quality means that knowing any of the "random numbers" returned from a series and knowing all state information which is not protected, an attacker cannot predict any of the other numbers in the series. Hardware sources are ideal, but there are alternative techniques which may also be acceptable. A 56 bit "truly random" seed (say from a series of coin tosses) could be used as a DES key to encrypt an infinite length known text block in CBC mode to produce a pseudo-rand sequence provided the key and current point in the sequence were adequately protected. There is considerable controversy surrounding what constitutes cryptographic quality random numbers, and it is not a goal of this document to resolve it.
キーを生成するために、ダスは「暗号の品質」無作為の数の源を必要とします。 暗号の品質は、「乱数」のどれかがシリーズから戻ったのを知っていて、保護されないすべての州の情報を知っていて、攻撃者がシリーズにおける他の数のどれかを予測できないことを意味します。 ハードウェアソースは理想的ですが、また、許容できるかもしれない代替のテクニックがあります。 56の噛み付いている「本当に無作為」の種子(一連のコイントスから、言う)は無限の長さを暗号化するために主要なDESとして使用されて、系列で系列が主要で現在のポイントを提供した疑似底ならし革を作り出すCBCモードによる知られているテキストブロックが適切に保護されたということであるかもしれません。 暗号の上質の乱数を構成することを囲む大きな論争があります、そして、それはそれを決議するこのドキュメントの目標ではありません。
2.3 Naming Service
2.3 名前付けサービス
DASS stores creates and uses "certificates" associated with every principal in the system, and encrypted credentials associated with most. This information is stored in an on-line service
ダス店は、関連している暗号化されたあらゆる主体がシステムにある、大部分に関連している資格証明書で「証明書」を作成して、使用します。 この情報はパソコン通信で保存されます。
Kaufman [Page 26] RFC 1507 DASS September 1993
コーフマン[26ページ]RFC1507ダス1993年9月
associated with the principal being certified. The long term vision is for DASS to use an X.500 naming service, and DASS will from its inception authenticate X.500 names. To avoid a dependence on having an X.500 naming service available (and to gain the benefits of a "login agent" that controls password guessing), an alternative certificate distribution center protocol is also described.
公認される主体に関連しています。 長期ビジョンがダスがX.500名前付けサービスを使用することであり、ダスは始まりからX.500名を認証するでしょう。 また、利用可能な(パスワード推測を制御する「ログインエージェント」の利益を獲得するために)X.500名前付けサービスを持っていることへの依存を避けるために、代替の証明書配送センタープロトコルは説明されます。
The specific requirements DASS places on the naming service are:
名前付けサービスの決められた一定の要求ダス場所は以下の通りです。
- It must be highly available. A user's naming service entry must be available to any node where the user is to obtain services (or service will be denied). A server's naming service entry must be available from any node from which the service is to be invoked (or service will be denied).
- それは非常に利用可能でなければなりません。 ユーザの名前付けサービスエントリーはユーザがサービスを得ることになっている(サービスは否定されるでしょう)どんなノードにも利用可能であるに違いありません。 サーバの名前付けサービスエントリーは呼び出されるサービスがことであるどんなノードからも利用可能であるに違いありません(サービスは否定されるでしょう)。
- It must be timely. The presence of "stale" information in the naming service may cause some problems. When a password changes, the old password may remain valid (and the new password invalid) to the extent the naming service provides stale information. When a user or server is added to the network, it will not be able to participate in authentication until the information added to the naming service is available at the node doing the authentication. In the unusual circumstance that a key changes, the entity whose key has changed will not be able to use the new key until the new certificate is uniformly available.
- それはタイムリーであるに違いありません。 名前付けサービスにおける、「聞き古した」情報の存在はいくつかの問題を引き起こすかもしれません。パスワードが変化するとき、古いパスワードは名前付けサービスが聞き古した情報を提供するという範囲に有効なままで(そして、新しいパスワード病人)残るかもしれません。 ユーザかサーバがネットワークに追加されるとき、名前付けサービスに加えられた情報が認証しながらノードで利用可能になるまで、それは認証に参加できないでしょう。 キーが変える珍しい状況では、新しい証明書が一様に利用可能になるまで、キーが変化した実体は新しいキーを使用できないでしょう。
- It must be secure with regard to certain specific properties. In general, the security of DASS protected applications does not depend on the security of the naming service. It is expected that the availability needs of the naming service will prevent it from being as secure as some applications need to be. There are two aspects of DASS security which do depend on the security of the naming service: timely revocation of certificates and protection of user secrets against dictionary based password guessing. DASS depends on the removal of certificates from the naming service in order to revoke them more quickly than waiting for them to time out. For this mechanism to provide any actual security, it must not be possible for a network entity to "impersonate" the naming service and the naming service must be able to enforce access controls which prevent a revoked certificate from being reinstated by an unauthorized entity. In the long run, it is expected that DASS itself will be used to secure the naming service, which presents certain potential recursion problems (to be addressed in the naming service design). If the naming service is not authenticated (as is expected in early
- それはある特定の性質に関して安全であるに違いありません。 一般に、保護されたアプリケーションがするダスのセキュリティは名前付けサービスのセキュリティによりません。 名前付けサービスの有用性の必要性が、いくつかのアプリケーションが、必要があるのとそれが同じくらい安全であることを防ぐと予想されます。 名前付けサービスのセキュリティによるダスセキュリティの2つの局面があります: 証明書のタイムリーな取消しと辞書に対するユーザ秘密の保護はパスワード推測を基礎づけました。 ダスは、タイムアウトにそれらを待つよりはやくそれらを取り消すために名前付けサービスからの証明書の取り外しを当てにします。 このメカニズムがどんな実際のセキュリティも提供するように、ネットワーク実体が名前付けサービスと名前付けサービスを「まねること」が取り消された証明書が権限のない実体で復職するのを防ぐアクセス制御を実施できなければならないのは、可能であるはずがありません。 結局、ダス自身が、ある潜在的再帰問題(名前付けサービスデザインで扱われる)を提示する名前付けサービスを保証するのに使用されると予想されます。 名前付けサービスが認証されない、(早いところでは、予想されます。
Kaufman [Page 27] RFC 1507 DASS September 1993
コーフマン[27ページ]RFC1507ダス1993年9月
versions) attacks where a revoked certificate is "reinstated" through impersonation of the naming service are possible.
バージョン) 取り消された証明書が名前付けサービスのものまねで「復職するところ」で攻撃は可能です。
The specific functions DASS requests of the naming service are simple:
名前付けサービスの具体的な機能ダスの要求は簡単です:
- Given an X.500 name, store a set of certificates associated with that name.
- X.500名を考えて、その名前に関連している証明書のセットを保存してください。
- Given an X.500 name, retrieve the set of certificates associated with that name.
- X.500名を考えて、その名前に関連している証明書のセットを検索してください。
- Given an X.500 name, store a set of encrypted credentials associated with that name.
- X.500名を考えて、その名前に関連している暗号化された資格証明書のセットを保存してください。
- Given and X.500 name, retrieve a set of encrypted credentials associated with that name.
- 与えてX.500名義であり、その名前に関連している暗号化された資格証明書のセットを検索してください。
Implementation over a particular naming service may implement more specialized functions for reasons of efficiency. For example, the certificates associated with a name may be separated into several sets (child, parent, cross, self) so that only the relevant ones may be retrieved. In order that access to the naming service itself be secure, the protocols should be authenticated. Certificates should generally be readable without authentication in order to avoid recursion problems. Requests to read encrypted credentials should be specialized and should include proof of knowledge of the password in order that the naming service can audit and slow down false password guesses.
特定の名前付けサービスの上の実装は効率の理由で、より専門化している機能を実装するかもしれません。 例えば、名前に関連している証明書は、関連検索できないように数セット(子供、親は横断します、自己)に切り離されるかもしれません。 それ自体に名前付けサービスにアクセスしてください。安全にしてください、そして、プロトコルは認証されるべきです。 一般に、証明書は、再帰問題を避けるために認証なしで読み込み可能であるべきです。暗号化された資格証明書を読むという要求は、専門にされるべきであり、名前付けサービスが誤ったパスワード推測を監査して、減速させることができるように、パスワードに関する知識の証拠を含むべきです。
The following sections describe the interfaces to specific naming services:
以下のセクションは特定の名前付けサービスにインタフェースについて説明します:
2.3.1 Interface to X.500
2.3.1 X.500に連結してください。
Certificates associated with a particular name are stored as attributes of the entry as specified in X.509. X.509 defines attributes appropriate for parent and cross certificates (CrossCertificatePair, CACertificate) for some principals; we will have to define a DASSUserPrincipal object class including these attributes in order to properly use them with ordinary users. Retrieval is via normal X.500 protocols. Certificates should be world readable and modifiable only by appropriate authorities.
特定の名前に関連している証明書はX.509の指定されるとしてのエントリーの属性として保存されます。 X.509はいくつかの主体のための親にとって、適切な属性と交差している証明書(CrossCertificatePair、CACertificate)を定義します。 私たちは、一般ユーザと共にそれらを適切に使用するためにこれらの属性を含むDASSUserPrincipalオブジェクトのクラスを定義しなければならないでしょう。 検索が正常なX.500プロトコルであります。 証明書は単に適切な当局が読み込み可能で修正できる世界であるべきです。
Encrypted credentials are stored with the entry of the principal under a yet to be defined attribute. The credentials should be encoded as specified in section 4. In the absence of extensions to the X.500 protocol to control password guessing, the encrypted
暗号化された資格証明書はまだ定義されなかった属性の下で主体のエントリーで保存されます。 資格証明書はセクション4で指定されるようにコード化されるべきです。 制御用パスワード推測、暗号化へのX.500プロトコルへの拡大がないとき
Kaufman [Page 28] RFC 1507 DASS September 1993
コーフマン[28ページ]RFC1507ダス1993年9月
credentials should be world readable and updatable only by the named principal and other appropriate authorities.
資格証明書は世界の読み込み可能で命名された主体だけでアップデート可能であって他の適切な当局であるべきです。
2.3.2 Interface to CDC
2.3.2 CDCに連結してください。
The CDC (Certificate Distribution Center) is a special purpose name server created to service DASS until an X.500 service is available in all of the environments where DASS needs to operate. The CDC uses a special purpose protocol to communicate with DASS clients. The protocol was designed for efficiency, simplicity, and security. CDCs use DASS as an authentication mechanism and to protect encrypted credentials from unaudited password guessing.
CDC(証明書Distributionセンター)はX.500サービスがダスが作動する必要があるところで環境で全部で利用可能になるまでダスにサービスを提供するために作成された専用ネームサーバです。 CDCは、ダスクライアントとコミュニケートするのに専用プロトコルを使用します。 プロトコルは効率、簡単さ、およびセキュリティのために設計されました。 CDCは認証機構としてダスを使用します、そして、保護するのは非監査のパスワード推測から資格証明書を暗号化しました。
Each DASS client maintains a list of CDCs and the portion of the namespace served by that CDC. Each directory has a master replica which is the only one which will accept updates. The CDCs maintain consistency with one another using protocols beyond the scope of this document. When a DASS client wishes to make a request of a CDC, it opens a TCP or DECnet connection to the CDC and sends an ASN.1 (BER) encoded request and receives a corresponding ASN.1 (BER) encoded response. Clients are expected to learn the IP or DECnet address and port number of the CDC supporting a particular name from a local configuration file. To maximize performance, the requests bundle what would be several requests if made in terms of requests for individual certificates. It is intended that all certificates needed for an authentication operation be retrievable with at most two CDC requests/responses (one to the CDC of the client and one to the CDC of the server).
それぞれのダスクライアントはそのCDCによって役立たれるCDCのリストと名前空間の部分を維持します。 各ディレクトリには、アップデートを受け入れる唯一無二であるマスターレプリカがあります。 CDCはお互いがこのドキュメントの範囲を超えてプロトコルを使用している一貫性を維持します。 ダスクライアントがCDCの要求をしたがっているとき、それは、TCPかDECnet接続をCDCに開いて、ASN.1(BER)のコード化された要求を送って、対応するASN.1(BER)のコード化された応答を受けます。 クライアントがローカルの構成ファイルから特定の名前をサポートするCDCのIPかDECnetアドレスとポートナンバーを学ぶと予想されます。 性能を最大にするために、要求は個々の証明書に関する要求で作られるならいくつかの要求であることを添付します。 認証操作に必要であるすべての証明書が高々2つのCDC要求/応答(クライアントのCDCへの1とサーバのCDCへの1)で回収可能であることを意図します。
Documented here is the protocol a DASS client would use to retrieve certificates and credentials from a CDC and update a user password. This protocol does not provide for updates to the certificate and credential databases. Such updates must be supported for a practical system, but could be done either by extensions to this protocol or by local security mechanisms implemented on nodes supporting the CDC. Similarly, availability can be enhanced by replicating the CDC. Automating the replication of updates could be implemented by extensions to this protocol or by some other mechanism. This specification assumes that updates and replication are local matters solved by individual CA/CDC implementations.
ここに記録されているのは、ダスクライアントがCDCから証明書と資格証明書を検索して、ユーザパスワードをアップデートするのに使用するプロトコルです。 このプロトコルは証明書と資格証明データベースにアップデートに備えません。 そのようなアップデートが実用的なシステムのためにサポートしなければなりませんでしたが、このプロトコルへの拡大かCDCをサポートしながらノードの上で実装されたローカルのセキュリティー対策でできました。 同様に、CDCを模写することによって、有用性を高めることができます。 このプロトコルへの拡大かある他のメカニズムはアップデートの模写を自動化するのを実装することができました。 この仕様は、アップデートと模写が個々のカリフォルニア/CDC実装によって解決された地域にかかわる事柄であると仮定します。
Requests and responses are encoded as follows:
要求と応答は以下の通りコード化されます:
2.3.2.1 ReadPrinCertRequest
2.3.2.1 ReadPrinCertRequest
This request asks the CDC to return the child certificates and selected incoming cross certificates for the specified object. The format of the request is:
この要求は、指定されたオブジェクトのための子供証明書と選択された入って来る交差している証明書を返すようにCDCに頼みます。 要求の形式は以下の通りです。
Kaufman [Page 29] RFC 1507 DASS September 1993
コーフマン[29ページ]RFC1507ダス1993年9月
ReadPrinCertRequest ::= [4] IMPLICIT SEQUENCE { flags [0] BIT STRING DEFAULT {}, index [1] IMPLICIT INTEGER DEFAULT 0, resolveFrom [2] Name OPTIONAL, principal Name, crossCertIssuers ListOfIssuers OPTIONAL } ListOfIssuers ::= SEQUENCE OF Name
ReadPrinCertRequest:、:= [4] IMPLICIT SEQUENCE、旗[0]BIT STRING DEFAULT、インデックス[1]IMPLICIT INTEGER DEFAULT0、resolveFrom[2]はOPTIONALを命名します、主要なName、crossCertIssuers ListOfIssuers OPTIONAL、ListOfIssuers:、:= 名前の系列
The first 24 bits of flags, if present, contain a protocol version number. Clients following this spec should place the value 2.0.0 in the three bytes. Servers following this spec should accept any value of the form 1.x.x or 2.x.x. flags bits beyond the first 24 are reserved for future use (should not be supplied by clients and should be ignored by servers).
存在しているなら、旗の最初の24ビットはプロトコルバージョン番号を含んでいます。 この仕様の後をつけるクライアントは3バイトにおける値2.0の.0を置くべきです。 この仕様に続くサーバがフォーム1.x.xのどんな値も受け入れるべきですか、またはビット最初の24を超えた2.x.x.旗は今後の使用(クライアントが供給するべきでなくて、サーバは無視するべきである)のために予約されます。
index is only used if the response exceeds the size of a single message; in that case, the query is repeated with index set to the value that was returned by ReadPrinCertResponse. resolveFrom and principal imply a set of entities for which certificates should be retrieved. resolveFrom (if present) must be an ancestor of principal and child certificates will be retrieved for principal and all names which are ancestors of principal but descendants of resolveFrom. The encoding of names is per X.500 and is specified in more detail in section 4. The CDC returns the certificates in order of the object they came from, parents before children.
応答がただ一つのメッセージのサイズを超えている場合にだけ、インデックスは使用されます。 ReadPrinCertResponse. resolveFromと主体で返して、証明書が検索されるべきである1セットの実体を含意してください。その場合、質問はインデックスセットでresolveFrom(存在しているなら)が主体の先祖であるに違いないということであった値に繰り返されます、そして、子供証明書は主体の先祖にもかかわらず、resolveFromの子孫である主体とすべての名前のために検索されるでしょう。 名前のコード化は、X.500単位であって、さらに詳細にセクション4で指定されます。 CDCは、それらが来たオブジェクトの順に証明書を返して、以前、子供の親代わりとなります。
crossCertIssuers is a list of cross certifiers that would be believed in the context of this authentication. If supplied, the CDC may return a chain of certificates starting with one of the named crossCertIssuers and ending with the named principal. One of resolveFrom or crossCertIssuers must be present in any request; if both are present, the CDC may return either chain.
crossCertIssuersは交差しているこの認証の文脈が信じられている証明することのリストです。 供給するなら、命名された主体で命名されたcrossCertIssuersと結末の1つから始めて、CDCは証明書のチェーンを返すかもしれません。 resolveFromかcrossCertIssuersの1つはどんな要求にも存在していなければなりません。 両方が存在しているなら、CDCはチェーンを返すかもしれません。
2.3.2.2 ReadPrinCertResponse
2.3.2.2 ReadPrinCertResponse
This is the response a CDC sends to a ReadPrinCertRequest. Its syntax is:
これはCDCがReadPrinCertRequestに送る応答です。 構文は以下の通りです。
ReadPrinCertResponse ::= [5] IMPLICIT SEQUENCE { status [0] IMPLICIT CDCstatus DEFAULT success, index [1] INTEGER OPTIONAL, resolveTo [2] Name OPTIONAL, certSequence [3] IMPLICIT CertSequence, indexInvalidator [4] OCTET STRING (SIZE(8)) OPTIONAL, flags [5] BIT STRING OPTIONAL } CertSequence ::= SEQUENCE OF Certificate
ReadPrinCertResponse:、:= [5] IMPLICIT SEQUENCE、状態[0]IMPLICIT CDCstatus DEFAULT成功、インデックス[1]INTEGER OPTIONAL、resolveTo[2]はOPTIONALを命名します、certSequence[3]IMPLICIT CertSequence、indexInvalidator[4]OCTET STRING、(SIZE(8)) OPTIONAL、旗[5]BIT STRING OPTIONAL、CertSequence:、:= 証明書の系列
Kaufman [Page 30] RFC 1507 DASS September 1993
コーフマン[30ページ]RFC1507ダス1993年9月
status indicates success or the cause of the failure.
状態は失敗の成功か原因を示します。
index if present indicates that the request could not be fully satisfied in a single request because of size limitations. The request should be repeated with this index supplied in the request to get more.
プレゼントが、要望がサイズ制限のためにただ一つの要求で完全に応じることができたというわけではないのを示すなら、索引をつけてください。 要求は以上を得るという要求でこのインデックスを供給している状態で繰り返されるべきです。
resolveTo will be present if index is present and should be supplied in the request for more certificates. certSequence contains certificates found matching the search criteria.
インデックスを存在していて、より多くの証明書に関する要求で供給すると、resolveToは存在するでしょう。certSequenceは検索評価基準を合わせているのが見つけられた証明書を含んでいます。
indexInvalidator may be present and indicates the version of the database being read. If a set of certificates is being read in multiple requests (because there were too many to return in a single message), the reader should check that the value for indexInvalidator is the same on each request. If it is not, the server may have skipped or duplicated some certificates. This field must not be present if the version number in the request was missing or version 1.x.x.
indexInvalidatorは存在しているかもしれなくて、読まれるデータベースのバージョンを示します。 1セットの証明書が複数の要求で読まれているなら(ただ一つのメッセージで戻るために多く過ぎるのがあるので)、読者は、indexInvalidatorのための値が各要求のときに同じであることをチェックするべきです。 それがそうでないなら、サーバは、いくつかの証明書をスキップしたか、またはコピーしたかもしれません。 この分野は要求におけるバージョン番号が取り逃がすかバージョン1.x.xであったなら存在しているはずがありません。
The first 24 bits of flags, if present, indicate the protocol version number. Implementers of this version of the spec should supply 2.0.0 and should accept any version number of the form 1.x.x or 2.x.x.
存在しているなら、旗の最初の24ビットはプロトコルバージョン番号を示します。 そして、仕様のこのバージョンのImplementersが供給するはずである、2.0、.0、フォーム1.x.xか2.x.xのどんなバージョン番号も受け入れるべきです。
2.3.2.3 ReadOutgoingCertRequest
2.3.2.3 ReadOutgoingCertRequest
This requests from the CDC a list of all parent and outgoing cross certificates for a specified object. A CDC is capable of storing cross certificates either with the subject or the issuer of the cross certificate. In response to this request, the CDC will return all parent and cross certificates stored with the issuer for the named principal and all of its ancestors. Its syntax is:
これはCDCから指定されたオブジェクトのためのすべての親と送信する交差している証明書のリストを要求します。 CDCは交差している証明書の対象か発行人と共に交差している証明書を保存できます。 この要求に対応して、CDCは、先祖の命名された主体とすべてのためにすべての親を返して、発行人と共に保存された証明書に交差するでしょう。 構文は以下の通りです。
ReadOutgoingCertRequest ::= [6] IMPLICIT SEQUENCE { flags [0] BIT STRING DEFAULT {}, index [1] IMPLICIT INTEGER DEFAULT 0, principal Name }
ReadOutgoingCertRequest:、:= [6] 暗黙の系列旗[0]BIT STRING DEFAULT、[1] IMPLICIT INTEGER DEFAULT0、主要なNameに索引をつけてください。
The first 24 bits of flags is a protocol version number and should contain 2.0.0 for clients implementing this version of the spec. Servers implementing this version of the spec should accept any version number of the form 1.x.x or 2.x.x. The remaining bits are reserved for future use (they should not be supplied by clients and they should be ignored by servers).
旗の最初の24ビットがaプロトコルバージョン番号であり、含むはずである、2.0、.0、仕様のこのバージョンを実装するクライアントのために。 仕様のこのバージョンを実装するサーバはフォーム1.x.xか2.x.xのどんなバージョン番号も受け入れるべきです。 残っているビットは今後の使用のために予約されます(クライアントがそれらを供給するべきではありません、そして、サーバは彼らを無視するべきです)。
index is used for continuation (see ReadPrinCertRequest).
インデックスは継続に使用されます(ReadPrinCertRequestを見てください)。
Kaufman [Page 31] RFC 1507 DASS September 1993
コーフマン[31ページ]RFC1507ダス1993年9月
principal is the name for which certificates are requested.
主体は証明書が要求されている名前です。
2.3.2.4 ReadOutgoingCertResponse
2.3.2.4 ReadOutgoingCertResponse
This is the response to a ReadOutgoingCertRequest. Its syntax is:
これはReadOutgoingCertRequestへの応答です。 構文は以下の通りです。
ReadOutgoingCertResponse::= [7] IMPLICIT SEQUENCE { status [0] IMPLICIT CDCStatus DEFAULT success, index [1] INTEGER OPTIONAL, certSequence [2] IMPLICIT CertSequence, indexInvalidator [3] OCTET STRING (SIZE(8)) OPTIONAL, flags [4] BIT STRING OPTIONAL }
ReadOutgoingCertResponse:、:= [7] 暗黙の系列状態[0]IMPLICIT CDCStatus DEFAULT成功、インデックス[1]INTEGER OPTIONAL、certSequence[2]IMPLICIT CertSequence、indexInvalidator[3]OCTET STRING、(SIZE(8)) OPTIONAL、旗[4]BIT STRING OPTIONAL
CertSequence ::= SEQUENCE OF Certificate
CertSequence:、:= 証明書の系列
status indicates success of the cause of failure of the operation.
状態は操作の失敗の原因の成功を示します。
index is used for continuation; see ReadPrinCertRequest.
インデックスは継続に使用されます。 ReadPrinCertRequestを見てください。
certSequence is the list of parent and outgoing cross certificates.
certSequenceは親と送信する交差している証明書のリストです。
indexInvalidator is used for continuation; see ReadPrinCertResponse (the same rules apply with respect to version numbers).
indexInvalidatorは継続に使用されます。 ReadPrinCertResponseを見てください(同じ規則はバージョン番号に関して適用されます)。
The first 24 bits of flags, if present, contain the protocol version number. Clients implementing this version of the spec should supply the value 2.0.0. Servers should accept any values of the form 1.x.x or 2.x.x. The remaining bits are reserved for future use (they should not be supplied by clients and should be ignored by servers).
存在しているなら、旗の最初の24ビットはプロトコルバージョン番号を含んでいます。 仕様のこのバージョンを実装するクライアントは値2.0の.0を供給するべきです。 サーバはフォーム1.x.xか2.x.xのどんな値も受け入れるべきです。 残っているビットは今後の使用のために予約されます(それらをクライアントが供給するべきでなくて、サーバは無視するべきです)。
2.3.2.5 ReadCredentialRequest
2.3.2.5 ReadCredentialRequest
This request is made to retrieve an principal's encrypted credentials. To prevent unaudited password guessing, this structure includes an encrypted value that proves that the requester knows the password that will decrypt the structure. The syntax of the request is:
元本の暗号化された資格証明書を検索するのをこの要求をします。 非監査のパスワード推測を防ぐために、この構造はリクエスタが構造を解読するパスワードを知っていると立証する暗号化された値を含んでいます。 要求の構文は以下の通りです。
ReadCredentialRequest ::= [2] IMPLICIT SEQUENCE { flags [0] BIT STRING DEFAULT {} principal Name, logindata [2] BIT STRING DEFAULT {}, token [3] BIT STRING OPTIONAL }
ReadCredentialRequest:、:= [2] 暗黙の系列旗[0]BIT STRING DEFAULT、主要なName、logindata[2]BIT STRING DEFAULT、トークン[3]BIT STRING OPTIONAL
Kaufman [Page 32] RFC 1507 DASS September 1993
コーフマン[32ページ]RFC1507ダス1993年9月
The first 24 bits of flags contains the version number of the protocol. The value 2.0.0 should be supplied. Any value of the form 1.x.x or 2.x.x should be accepted. Any additional bits are reserved for future use (should not be supplied by clients and should be ignored by servers).
旗の最初の24ビットはプロトコルのバージョン番号を含んでいます。 値2.0の.0を供給するべきです。 フォーム1.x.xか2.x.xのどんな値も受け入れるべきです。 どんな追加ビットも今後の使用(クライアントが供給するべきでなくて、サーバは無視するべきである)のために予約されます。
principal is the name of the principal for whom encrypted credentials are desired.
主体は暗号化された資格証明書が望まれている主体の名前です。
logindata is an encrypted value. It may only be present if the version number is 2.0.0 or higher. It must be present to read credentials which are protected by the login agent functionality of the CDC. It is constructed as a single RSA block encrypted under the public key of the CDC. The public key of the CDC is learned by some local means. Possibilities include a local configuration file or by using DASS to read and verify a chain of certificates ending with the CDC [the CDC serving a directory should have its public key listed under a name consisting of the directory name with the RDN "CSS=X509"; the OID for the type CSS is 1.3.24.9.1]. The contents of the block are as follows:
logindataは暗号化された値です。 バージョン番号が存在している場合にだけ、存在しているかもしれません。2.0 .0以上。 CDCのログインエージェントの機能性によって保護される資格証明書を読むのは存在していなければなりません。 それはCDCの公開鍵の下で暗号化された1つのRSAブロックとして組み立てられます。 CDCの公開鍵はいくつかのローカルの手段によって学習されます。 ポシビリティーズは、ローカルの構成ファイルを含んでいるか、またはCDCで終わりながら証明書のチェーンを読んで、確かめるのにダスを使用することによって、そうします。タイプCSSのためのOIDはそうです。[ディレクトリに役立つCDCで、RDN"CSS=X509"と共にディレクトリ名から成る名前の下で公開鍵を記載するべきです;、1.3 .24 .9 .1]。 ブロックの内容は以下の通りです:
- The low order eight bytes contain a randomly generated DES key with the last byte of the DES key placed in the last byte of the RSA block. This DES key will be used by the CDC to encrypt the response. Key parity bits are ignored.
- 下位8バイトは主要なRSAブロックの最後のバイトに置かれているDESキーの最後のバイトで手当たりしだいに発生しているDESを含んでいます。 このDESキーはCDCによって使用されて、応答を暗号化するでしょう。 主要なパリティビットは無視されます。
- The next to last eight bytes contain a long Posix time with the integer time encoded as a byte string using big endian order.
- ベストエイトバイトへの次は、ビッグエンディアンオーダーを使用することで整数時間がバイトストリングとしてコード化されている長いPosix時間を含んでいます。
- The next eight bytes (from the end) contain a hash of the password. The algorithm for computing this hash is listed in section 4.4.2. The CDC never computes this hash; it simply compares the value it receives with the value associated with the credentials.
- 次の8バイト(終わりからの)はパスワードのハッシュを含んでいます。 このハッシュを計算するためのアルゴリズムはセクション4.4.2で記載されています。 CDCはこのハッシュを決して計算しません。 それは単に資格証明書に関連している値と受ける値を比べます。
- The next sixteen bytes (from the end) contain zero.
- 次の16バイト(終わりからの)はゼロを含んでいます。
- The remainder of the RSA block (which should be the same size as the public modulus of the CDC) contains a random number. The first byte should be chosen to be non-zero but so the value in the block does not exceed the RSA modulus. Servers should ignore these bits. This random number need not be of cryptographic strength, but should not be the same value for all encryptions. Repeating the DES key would be adequate.
- RSAブロック(CDCの公共の係数と同じサイズであるべきである)の残りは乱数を含んでいます。 最初のバイトは非ゼロになるように選ばれるべきですが、したがって、ブロックの値はRSA係数を超えていません。 サーバはこれらのビットを無視するべきです。 この乱数は、暗号の強さがある必要はありませんが、すべての暗号化のための同じ値であるべきではありません。 DESキーを繰り返すのは適切でしょう。
- The byte string thus constructed is encrypted using the RSA algorithm by treating the string of bytes as a "big endian"
- このようにして構成されたバイトストリングは、「ビッグエンディアン」としてバイトのストリングを扱うことによってRSAアルゴリズムを使用することで暗号化されています。
Kaufman [Page 33] RFC 1507 DASS September 1993
コーフマン[33ページ]RFC1507ダス1993年9月
integer and treating the integer result as "big endian" to make a string of bytes.
整数と整数を扱うのは、一連のバイトを作るために「ビッグエンディアン」として結果として生じます。
token will not be present in the initial implementation but a space is reserved in case some future implementation wants to authenticate and audit the node from which a user is logging in.
トークンは初期の実装では存在しないでしょうが、何らかの将来の実装がユーザがログインしているノードを認証して、監査したがっている場合でスペースは予約されます。
2.3.2.6 ReadCredentialProtectedResponse
2.3.2.6 ReadCredentialProtectedResponse
This is the second possible response to a ReadPrinLoginRequest. It is returned when the encrypted credentials are protected from password guessing by the CDC acting as a login agent. Its syntax is:
これはReadPrinLoginRequestへの2番目の可能な応答です。 ログインエージェントとして務めるCDCのそばでのパスワード推測から暗号化された資格証明書を保護するとき、それを返します。 構文は以下の通りです。
ReadCredentialProtectedResponse::=[16] IMPLICIT SEQUENCE { status [0] IMPLICIT CDCStatus DEFAULT success, encryptedCredential [1] BIT STRING, flags [2] BIT STRING OPTIONAL }
ReadCredentialProtectedResponse:、:=[16] 暗黙の系列状態[0]IMPLICIT CDCStatus DEFAULT成功(encryptedCredential[1]BIT STRING)は[2] BIT STRING OPTIONALに旗を揚げさせます。
status indicates that the request succeeded or the cause of the failure.
状態は、要求が成功したのを示します。または、失敗の原因。
encryptedCredential contains the DASSPrivateKey structure (defined in section 4.1) encrypted under a DES key computed from the user's name and password as specified in section 4.4.2 and then reencrypted under the DES key provided in the ReadPrinLoginRequest.
encryptedCredentialはセクション4.4.2における指定されるとしてのユーザの名前とパスワードから計算されたDESキーの下で暗号化されて、次にReadPrinLoginRequestに提供されたDESキーの下で再暗号化されたDASSPrivateKey構造(セクション4.1で、定義される)を含んでいます。
The first 24 bits of flags, if present, contains the version number of the protocol. Implementers of this version of the spec should supply 2.0.0 and should accept any version number of the form 2.x.x. Other bits are reserved for future use (they should not be supplied and they should be ignored).
存在しているなら、旗の最初の24ビットはプロトコルのバージョン番号を含んでいます。 そして、仕様のこのバージョンのImplementersが供給するはずである、2.0、.0、フォーム2.x.xのどんなバージョン番号も受け入れるべきです。 他のビットは今後の使用のために予約されます(それらを供給するべきではありません、そして、それらを無視するべきです)。
2.3.2.7 WriteCredentialRequest
2.3.2.7 WriteCredentialRequest
This is a request to update the encrypted credential structure. It is used when a user's key or password changes. The syntax of the request is:
これは暗号化された資格証明構造をアップデートするという要求です。 ユーザのキーかパスワードが変化するとき、それは使用されています。 要求の構文は以下の通りです。
WriteCredentialRequest ::= [17] IMPLICIT SEQUENCE { flags [0] BIT STRING DEFAULT {}, authtoken [2] BIT STRING OPTIONAL, principal [3] Name, logindata [4] BIT STRING DEFAULT {}, furtherSensitiveStuff [5] BIT STRING }
WriteCredentialRequest:、:= [17] 暗黙の系列旗[0]BIT STRING DEFAULT、authtoken[2]BIT STRING OPTIONAL、主体[3]名前、logindata[4]BIT STRING DEFAULT、furtherSensitiveStuff[5]BIT STRING
The first 24 bits of flags is a version number. Clients implementing
旗の最初の24ビットはバージョン番号です。 クライアントの実装すること
Kaufman [Page 34] RFC 1507 DASS September 1993
コーフマン[34ページ]RFC1507ダス1993年9月
this version of the spec should supply 2.0.0. Servers should accept any value of the form 2.x.x. Additional bits are reserved for future use (clients should not supply them and servers should ignore them).
仕様のこのバージョンは供給2.0.0がそうするべきです。 サーバはフォーム2.x.xのどんな値も受け入れるべきです。 追加ビットは今後の使用のために予約されます(クライアントが彼らを供給するべきではありません、そして、サーバはそれらを無視するべきです)。
token, if present, authenticates the entity making the request. A request will be accepted either from a principal proving knowledge of the password (see logindata below) or a principal presenting a token in this field and satisfying the authorization policy of the CDC. This field need not be present if logindata includes the hash2 of the password (anyone knowing the old password may set a new one).
存在しているなら、トークンは要求をする実体を認証します。 パスワード(以下のlogindataを見る)に関する主要な立証知識かこの分野にトークンを提示して、CDCの承認方針を満たす元本から要求を受け入れるでしょう。 logindataがパスワードのhash2を含んでいるなら(古いパスワードを知っているだれでも新しいものを設定するかもしれません)、この分野は存在している必要はありません。
principal is the name of the object for which encrypted credentials should be updated.
主体は暗号化された資格証明書がアップデートされるべきであるオブジェクトの名前です。
logindata is encrypted as in ReadPrinLoginRequest. It proves that the requester knows the old password of the principal to be updated (unless the token supplied is from the user's CA) and includes the key which encrypts furtherSensitiveStuff.
logindataはReadPrinLoginRequestのように暗号化されています。 それは、リクエスタが主体の古いパスワードをアップデートするのを(供給されたトークンがユーザのカリフォルニアから来ていない場合)知っていて、furtherSensitiveStuffを暗号化するキーを含んでいると立証します。
furtherSensitiveStuff is an encrypted field constructed as follows:
furtherSensitiveStuffは以下の通り構成された暗号化された分野です:
- The first eight bytes consist of the hash2 defined in section 4.4.2 with the last byte of the hash2 value stored first. The CDC stores this value and compares it with the values supplied in future requests of ReadCredentialRequest and WriteCredentialRequest.
- 最初の8バイトはhash2価値の最後のバイトが最初に保存されている状態でセクション4.4.2で定義されたhash2から成ります。 CDCは、この値を保存して、ReadCredentialRequestとWriteCredentialRequestの今後の要求で供給された値とそれを比べます。
- The next (variable number of) bytes contains a DASSPrivateKey structure (defined in section 4.1). This is the new credential structure that will be returned by the CDC on future ReadCredentialRequests.
- 次、(可変数、)、バイトはDASSPrivateKey構造(セクション4.1で、定義される)を含んでいます。 これは将来のReadCredentialRequestsの上のCDCによって返される新しい資格証明構造です。
- The result is padded with zero bytes to a multiple of eight bytes.
- 結果はどんなバイトでも8バイトの倍数に水増しされません。
- The entire padded string is encrypted using the key from logindata or token using DES in CBC mode with zero IV.
- 全体のそっと歩いているストリングは、logindataかトークンからどんなIVと共にもCBCモードでDESを使用しないことでキーを使用することで暗号化されています。
the new eight byte "hash2" defined in section 4.4.2 concatenated with the DASSPrivateKey structure encrypted under the new "hash1" all encrypted under the DES key included in logindata.
新しい8バイト、「DASSPrivateKey構造が新しさの下で暗号化されている状態で、セクション4.4.2で定義されたhash2"は「logindataにDESキーを含んでいる下ですべて暗号化されたhash1"」を連結しました。
2.3.2.8 HereIsStatus
2.3.2.8 HereIsStatus
This is the response message to ill-formed requests and requests that only return a status and no data. It's syntax is:
これは状態を返しますが、どんなデータも返すだけではない不適格な要求と要求への応答メッセージです。 構文があるということです:
Kaufman [Page 35] RFC 1507 DASS September 1993
コーフマン[35ページ]RFC1507ダス1993年9月
HereIsStatus ::= [1] IMPLICIT SEQUENCE { status [0] IMPLICIT CDCStatus DEFAULT success }
HereIsStatus:、:= [1] 暗黙の系列状態[0]IMPLICIT CDCStatus DEFAULT成功
status indicates success or the cause of the failure.
状態は失敗の成功か原因を示します。
2.3.2.9 Status Codes
2.3.2.9 ステータスコード
The following are the CDCStatus codes that can be returned by servers. Not all of these values are possible with all calls, and some of the status codes are not possible with any of the calls described in this document.
↓これはサーバで返すことができるCDCStatusコードです。 これらの値のすべてがすべての呼び出しで可能であるというわけではありません、そして、呼び出しのどれかが本書では説明されている状態で、ステータスコードのいくつかが可能ではありません。
CDCStatus ::= INTEGER {
CDCStatus:、:= 整数
success(0), accessDenied(1),
成功(0)、accessDenied(1)
wrongCDC(2), --this CDC does not store the --requested information
wrongCDC(2)、--、このCDCがどんな店もしない--、求められた情報
unrecognizedCA(3), unrecognizedPrincipal(4),
unrecognizedCA(3)、unrecognizedPrincipal(4)
decodeRequestError(5),--invalid BER illegalRequest(6), --request not recognised
decodeRequestError(5)--無効のBER illegalRequest(6)--認識されなかった要求
objectDoesNotExist(7), illegalAttribute(8),
objectDoesNotExist(7)、illegalAttribute(8)
notPrimaryCDC(9),--write requests not accepted --at this CDC replica
notPrimaryCDC(9)--このCDCレプリカで受け入れられなかった要求を書いてください。
authenticationFailure(11), incorrectPassword(12),
authenticationFailure(11)、incorrectPassword(12)
objectAlreadyExists(13), objectWouldBeOrphan(15),
objectAlreadyExists(13)、objectWouldBeOrphan(15)
objectIsPermanent(16),
objectIsPermanent(16)
objectIsTentative(17), parentIsTentative(18),
objectIsTentative(17)、parentIsTentative(18)
certificateNotFound(19), attributeNotFound(20),
certificateNotFound(19)、attributeNotFound(20)
ioErrorOnCertifDatabase(100),
ioErrorOnCertifDatabase(100)
Kaufman [Page 36] RFC 1507 DASS September 1993
コーフマン[36ページ]RFC1507ダス1993年9月
databaseFull(101),
databaseFull(101)
serverInternalError(102), serverFatalError(103),
serverInternalError(102)、serverFatalError(103)
insufficientResources(104) }
insufficientResources(104)
3. Services Provided
3. サービスは提供されました。
This section specifies the services provided by DASS in terms of abstract interfaces and a model implementation. A particular implementation may support only a subset of these services and may provide them through interfaces which combine functions and supply some parameters implicitly. The specific calling interfaces are in some cases language and operating system specific. An actual implementation may choose, for example, to structure interfaces so that security contexts are established and then passed implicitly in calls rather than explicitly including them in every call. It might also bundle keys into opaque structures to be used with supplied encryption and decryption routines in order to enhance security and modularity and better comply with export regulations. Annex B describes a Portable API designed so that applications using a limited subset of the capabilities of DASS can be easily ported between operating systems and between DASS and Kerberos based environments. The model implementation describes data structures which include cached values to enhance performance. Implementations may choose different contents or different caching strategies so long as the same sequence of calls would produce the same output for some caching policy.
このセクションは抽象的なインタフェースとモデル実装でダスによって提供されたサービスを指定します。 特定の実装は、これらのサービスの部分集合だけをサポートして、機能を結合するインタフェースを通してそれらを提供して、それとなくいくつかのパラメタを提供するかもしれません。 いくつかの場合、特定の呼ぶインタフェースは言語とオペレーティングシステム特有です。 例えば、実際の実装が、インタフェースを構造化するのを選ぶかもしれないので、セキュリティ文脈は、あらゆる呼び出しに明らかにそれらを含んでいるより呼び出しでそれとなくむしろ確立されて、次に、通過されます。 また、それは、セキュリティとモジュール方式を高めて、輸出規制に従うほうがよいために供給された暗号化と復号化ルーチンと共に使用されるために不明瞭な構造にキーを投げ込むかもしれません。 別館Bは容易にオペレーティングシステムの間と、そして、ダスとケルベロスに基づいている環境の間にダスの能力の限られた部分集合を使用するアプリケーションは移植できるように設計されたPortable APIについて説明します。 モデル実装は性能を高めるためにキャッシュされた値を含んでいるデータ構造について説明します。 呼び出しの同じ系列が何らかのキャッシング方針のための同じ出力を起こすだろう限り、実装は異なったコンテンツか異なったキャッシュ戦略を選ぶかもしれません。
DASS operates on four kinds of data structures: Certificates, Credentials, Tokens, and Certification Authority State. Certificates and Tokens are passed between implementations and thus their exact format must be architecturally specified. This detailed bit-for-bit specification is in section 4. Credentials generally exist only within a single node and their format is therefore not specified here. The contents of all of these data structures is listed below followed by the algorithms for manipulating them.
ダスは4種類のデータ構造を作動させます: 証明書、資格証明書、トークン、および認証局状態。 証明書とTokensは実装の間で渡されます、そして、その結果、建築上、それらの正確な形式を指定しなければなりません。 この詳細なビットビット仕様はセクション4にあります。 一般に、資格証明書はただ一つのノードだけの中に存在しています、そして、したがって、それらの形式はここで指定されません。 それらを操るためのアルゴリズムがあとに続いていて、これらのデータ構造のすべてのコンテンツは以下に記載されています。
There are three kinds of services provided by DASS: Certificate Maintenance, Credential Maintenance, and Authentication. The first two kinds exist only in support of the third. Certificate maintenance functions maintain the database of public keys in the naming service. These functions tend to be fairly specialized and may not be supported on all platforms. Before authentication can take place, both authenticating principals must have constructed credentials structures. These are built using the Credential Maintenance calls.
ダスによって提供された3種類のサービスがあります: メインテナンス、資格証明メインテナンス、および認証を証明してください。 最初の2種類は単に3番目を支持して存在しています。 証明書メインテナンス機能は名前付けサービスにおける公開鍵に関するデータベースを維持します。 これらの機能は、公正に専門にされる傾向があって、すべてのプラットホームでサポートされないかもしれません。ともに主体を認証すると、行われることができる前に資格証明書構造は構成されたに違いありません。 Credential Maintenance呼び出しを使用するのはこれらに建てられます。
Kaufman [Page 37] RFC 1507 DASS September 1993
コーフマン[37ページ]RFC1507ダス1993年9月
The Authentication functions use credential information and certificates, produce and consume authentication tokens and tell the two communicating parties one another's names.
Authentication機能は、資格証明情報と証明書を使用して、生産して、認証トークンを消費して、2回の交信パーティーにお互いの名前を言います。
3.1 Certificate Contents
3.1 証明書コンテンツ
For purposes of this architecture, a certificate is a data structure posted in the naming service which proclaims that knowledge of the private key associated with a stated public key authenticates a named principal. Certificates are "signed" by some authority, are readable by anyone, and can be verified by anyone knowing the public key of the authority. DASS organizes the CA trust hierarchy around the naming hierarchy. There exists a trusted authority associated with each directory in the naming hierarchy. Generally, each authority creates certificates stating the public keys of each of its children (in the naming hierarchy) and the public key of its parent (in the naming hierarchy). In this way, anyone knowing the public key of any authority can learn the public key of any other by "walking the tree". In order that principals may authenticate even when all of their ancestor directories do not participate in DASS, authorities may also create "cross-certificates" which certify the public key of a named entity which is not a descendent. Rules for finding and following these cross-certificates are described in the Get_Pub_Keys routines. Every principal is expected to know the public key of the CA of the directory in which it is named. This must be securely learned when the principal is initialized and may be maintained in some form of local storage or by having the principal sign a certificate listing the name and public key of its parent and posting that certificate in the naming service.
このアーキテクチャの目的のために、証明書は述べられた公開鍵に関連している秘密鍵に関する知識が命名された元本を認証すると宣言する名前付けサービスで掲示されたデータ構造です。 証明書について、何らかの権威で「署名し」て、だれでも読み込み可能であり、権威の公開鍵を知っているだれでも確かめることができます。 ダスは命名階層構造の周りでカリフォルニア信頼階層構造を組織化します。 命名階層構造で各ディレクトリに関連している信じられた権威は存在しています。 一般に、各権威は子供各人の公開鍵(命名階層構造の)と親の公開鍵(命名階層構造の)を述べる証明書を作成します。 このように、どんな権威の公開鍵も知っているだれでも「木を押して行きます」でいかなる他の公開鍵も学ぶことができます。 校長がいつさえ認証できるように、それらの先祖ディレクトリのすべてがダスに参加しないか、また、当局はa下降していない名前付の実体の公開鍵を公認する「交差している証明書」を作成するかもしれません。 これらの交差している証明書を見つけて、従うための規則はGet_Pub_キーズのルーチンで説明されます。 あらゆる主体がそれが命名されるディレクトリのカリフォルニアの公開鍵を知ると予想されます。 これは、主体が初期化されて、何らかの形式の地方のストレージか主体を親の名前と公開鍵を記載する証明書に署名させることによって維持されるかもしれないならしっかりと学習されていて、名前付けサービスでその証明書を掲示しなければなりません。
The syntax and content of DASS certificates are defined in terms of X.509 (Directory - Authentication Framework). While that standard prescribes a single syntax for certificates, DASS considers certificates to be of one of six types:
ダス証明書の構文と中身はX.509(ディレクトリ--認証Framework)に関して定義されます。 その規格はただ一つの構文を証明書に定めますが、ダスは、6つのタイプのひとりには証明書があると考えます:
- Normal Principal certificates are signed by a CA and certify the name and public key of a principal where the name of the CA is a prefix of the name of the principal and is one component shorter.
- 正常なプリンシパル証明書は、カリフォルニアの名前が主体の名前の接頭語であり、1つのコンポーネントより短いところでカリフォルニアによって署名されて、元本の名前と公開鍵を公認します。
- Trusted Authority certificates are signed by an ordinary principal and certify the name and public key of the principal's CA (i.e., the CA whose name is a prefix of the principal's name and is one component shorter).
- 信じられたAuthority証明書は、主体のカリフォルニアの名前と公開鍵が(すなわち、名前が主体の名前の接頭語であり、1つのコンポーネントより短いカリフォルニア)であると普通の元本によって署名されて、公認します。
- Child certificates are signed by a CA and certify the name and public key of a CA of a descendent directory (i.e., where the name of the issuing CA is a prefix of the name of the subject
- 子供証明書がカリフォルニアによって署名されて、下降のディレクトリのカリフォルニアの名前と公開鍵を公認する、(すなわち、発行カリフォルニアの名前が対象の名前の接頭語であるところ
Kaufman [Page 38] RFC 1507 DASS September 1993
コーフマン[38ページ]RFC1507ダス1993年9月
CA and is one component shorter).
カリフォルニア、1つのコンポーネントが、より短い、)
- Parent certificates are signed by a CA and certify the name and public key of the CA of its parent directory (i.e., whose name is a prefix of the name of the issuer and is one component shorter).
- 親証明書は、カリフォルニアによって署名されて、親ディレクトリ(すなわち、名前が発行人の名前の接頭語であり、1つのコンポーネントより短い)のカリフォルニアの名前と公開鍵を公認します。
- Cross certificates are signed by a CA and certify the name and public key of a CA of a directory where neither name is a prefix of the other.
- 交差している証明書は、カリフォルニアによって署名されて、どちらの名前ももう片方の接頭語でないディレクトリのカリフォルニアの名前と公開鍵を公認します。
- Self certificates are signed by a principal or a CA and the issuer and subject name are the same. They are not used in this version of the architecture but are defined as a convenient data structure in which in which implementations may insecurely pass public keys and they may be used in the future in certain key roll-over procedures.
- 自己証明書は元本かカリフォルニアによって署名されます、そして、発行人と対象の名前は同じです。 それらは、アーキテクチャのこのバージョンで使用されませんが、どれがどの実装に不安定に公開鍵を通過するかもしれないかに便利なデータ構造と定義されます、そして、将来、ある主要なロールオーバー手順で使用されるかもしれません。
It is intended that some future version of the architecture relax the restrictions above where prefixes must be one component shorter. Being able to handle certificates where prefixes are two or more components shorter complicates the logic of treewalking somewhat and is not immediately necessary, so such certificates are disallowed for now.
アーキテクチャの何らかの将来のバージョンがところでの上接頭語が1つのコンポーネントより短くなければならない規制を緩和することを意図します。 接頭語が2つ以上のコンポーネントより短い証明書を扱うことができるのはtreewalkingの論理をいくらか複雑にして、すぐに必要でないので、そのような証明書は当分禁じられます。
The syntax of certificates is defined in section 4. For purposes of the algorithms which follow, the following is the portion of the content which is used (names in brackets refer to the field names in the ASN.1 encoded structure):
証明書の構文はセクション4で定義されます。 従うアルゴリズムの目的のために、↓これは使用された内容の部分(括弧の名前はASN.1のコード化された構造のフィールド名を示す)です:
- UID of the issuer (optional)
- 発行人のUID(任意)です。
- Full name of the issuer (the authority or principal signing) [issuer]
- 発行人(権威か主要な署名)のフルネーム[発行人]
- UID of the subject (optional)
- 対象のUID(任意)です。
- Full name of the subject (the authority or principal whose key is being certified) [subject]
- 対象(キーが公認されている権威か主体)のフルネーム[対象]
- Public Key of the subject [subjectPublicKey]
- 対象の公共のKey[subjectPublicKey]
- Period of validity (effective date and expiration date) [valid]
- 正当性(発効日、有効期限)について以上[有効]です。
- Signature over the entire content of the certificate created using the private key of the issuer.
- 発行人の秘密鍵を使用することで作成された証明書の全体の中身の上の署名。
Kaufman [Page 39] RFC 1507 DASS September 1993
コーフマン[39ページ]RFC1507ダス1993年9月
When parsing a certificate, the reader compares the two name fields to determine what type of certificate it is. For Parent and Trusted Authority certificates, the names are ignored for purposes of all further processing. For Child and Normal Principal certificates, only the suffix by which the child's name is longer than the parent's is used for further processing. The reason for this is so that if a branch of the namespace is renamed, all of the certificates in the moved branch remain valid for purposes of DASS processing. The only purposes of having full names in these certificates are (1) to comply with X.509, (2) for possible interoperability with other architectures using different algorithms, and (3) to allow principals to securely store their own names in trusted authority certificates in the case where they do not have enough local storage to keep it.
証明書を分析するとき、読者は、どんなタイプの証明書を決定するかために2つの名前欄を比較します。 ParentとTrusted Authority証明書に関しては、名前はさらなるすべての処理の目的のために無視されます。 ChildとNormalプリンシパル証明書に関しては、子供の名前が親より長い接尾語だけがさらなる処理に使用されます。 この理由は、名前空間のブランチが改名されるなら、動くブランチにおける証明書のすべてがダスの処理の目的のために有効なままで残るためのそうです。 これらの証明書のフルネームを持つ唯一の目的がX.509に従う(1)です、他のアーキテクチャが校長がしっかりとそれらがそれを保つことができるくらいの地方のストレージを持っていないケースの中の信じられた権威証明書のそれら自身の名前を保存するのを許容するのに異なったアルゴリズム、および(3)を使用している可能な相互運用性のための(2)。
3.2 Encrypted Private Key Structure
3.2 暗号化された秘密鍵構造
In order that humans need only remember a password rather than a full set of credentials, and also to make installation of nodes and servers easier, there is a defined format for encrypting RSA secrets under a password and posting in the naming service. This structure need only exist when passwords are used to protect RSA secrets; for servers which keep their secrets in non-volatile memory or users who carry smart cards, they are unnecessary.
人間が資格証明書のフルセットよりむしろパスワードを覚えているだけでよくて、また、ノードとサーバのインストールをより簡単にするように名前付けサービスにはRSA秘密を暗号化するための定義された形式がパスワードと任命であるように。 パスワードがRSA秘密を保護するのに使用されるとき、この構造は存在するだけでよいです。 非揮発性メモリーかスマートカードを運ぶユーザで秘密を握るサーバにおいて、それらは不要です。
This structure includes the RSA private/public key pair encrypted under a DES key. The DES key is computed as a one-way hash of the password. This structure also optionally includes the UID of the principal. It is needed only if a single RSA key is shared by multiple principals (with multiple UIDs).
この構造はDESキーの下で暗号化されたRSA私設の/公開鍵組を含んでいます。 DESキーはパスワードの一方向ハッシュとして計算されます。 また、この構造は任意に主体のUIDを含んでいます。 複数の主体(複数のUIDsと)で単一のRSAキーが共有される場合にだけ、それが必要です。
Since this structure is posted in the name service and may be used by multiple implementations, its format must be architecturally defined. The exact encoding is listed in section 4.
この構造がサービスという名前で掲示されて、複数の実装によって使用されるかもしれないので、建築上、書式を定義しなければなりません。 正確なコード化はセクション4で記載されています。
3.3 Authentication Tokens
3.3 認証トークン
This section of the document defines the contents of the authentication tokens which are produced and consumed by Create_token and Accept_token. With DASS, the token passed from the client to the server is complex, with a large number of optional parts, while the token passed from server to client (in the case of mutual authentication only) is small and simple.
ドキュメントのこのセクションはCreate_トークンとAccept_トークンによって生産されて、消費される認証トークンのコンテンツを定義します。 ダスと共に、クライアントからサーバまで通過されたトークンは複雑です、多くのオプショナル・パーツで、サーバからクライアント(互いの認証だけの場合における)まで通過されたトークンが、ささやかであって、簡単ですが。
The authentication token potentially contains a large number of parts, most of which are optional depending on the type of authentication. The following defines the content and purpose of each of the parts, but does not describe the actual encoding (in the belief that such details would be distracting). The encoding is in
認証トークンは潜在的に多くの部品を含んでいます。認証のタイプに頼っていて、その大部分は任意です。 以下は、それぞれの部品の内容と目的を定義しますが、実際のコード化(そのような詳細がそらしているだろうという信念における)について説明しません。 中にコード化があります。
Kaufman [Page 40] RFC 1507 DASS September 1993
コーフマン[40ページ]RFC1507ダス1993年9月
section 4.
セクション4。
The authentication process begins when the initiator calls Create_token with the name of the target. This routine returns an authentication token, which is sent to the target. The target calls Accept_token passing it the token. Both routines produce a second "mutual authentication token". The target returns this to the initiator to prove that it received the token.
創始者が、目標の名前でCreateを_トークンと呼ぶとき、認証過程は始まります。 このルーチンは認証トークンを返します。(それは、目標に送られます)。 目標が、Acceptを_トークンパッシングと呼ぶ、それ、トークン。 両方のルーチンは2番目の「互いの認証トークン」を生産します。 目標は、トークンを受けたと立証するためにこれを創始者に返します。
3.3.1 Initial Authentication Token
3.3.1 初期の認証トークン
The components of the initial authentication token are (names in brackets refer to the field names within the ASN.1 encoded structures defined in section 4):
初期の認証トークンのコンポーネントはこと(括弧の名前はセクション4で定義されたASN.1のコード化された構造の中のフィールド名を示す)です:
a) Encrypted Shared Key - [authenticatingKey] - This is a Shared (DES) key encrypted under the public key of the target. Also included in the encrypted structure is a validity interval and a recognizable pattern so that the receiver can tell whether the decryption was successful.
a) 暗号化されたShared Key--[authenticatingKey]--これは目標の公開鍵の下で暗号化されたShared(DES)キーです。 また、暗号化に含まれていて、構造は、受信機が、復号化がうまくいったかどうか言うことができるための正当性間隔と認識可能なパターンです。
b) Login Ticket - [sourcePrincipal.userTicket] - This is a "delegation certificate" signed by a principal's long term private key delegating to a short term public key. Its "active ingredients" are:
b) ログインTicket--[sourcePrincipal.userTicket]--これは短期間公開鍵に委任する主体の長期秘密鍵によって署名される「委譲証明書」です。 「有効成分」は以下の通りです。
1) UID of delegating principal [subjectUID]
1) 代表として派遣する主体のUID[subjectUID]
2) Period of validity [validity]
2) 正当性について以上[正当性]
3) Delegation public key [delegatingPublicKey]
3) 委譲公開鍵[delegatingPublicKey]
4) Signature by private key of principal The existence of this signature is testimony that the private key corresponding to the delegation public key speaks for the user during the validity interval. This data structure is optional and will be missing if the authentication is only on behalf of a Local Username on a node (i.e., proxy) rather than on behalf of a real principal with a real key.
4) 署名、主体の秘密鍵で、この署名の存在は委譲公開鍵に対応する秘密鍵が正当性間隔の間ユーザを代弁するという証言です。 認証が実際のキーで単に本当の元本を代表してというよりむしろノード(すなわち、プロキシ)の上のLocal Usernameを代表していると、このデータ構造は、任意であり、なくなるでしょう。
c) Shared Key Ticket - [sourcePrincipal.sharedKeyTicketSignature] - This is a signature of the Encrypted Shared Key by the Delegation Public key in the Login Ticket. The existence of this signature is testimony that the DES key in the encrypted shared key speaks for the user.
c) 共有されたKey Ticket--[sourcePrincipal.sharedKeyTicketSignature]--これはLogin Ticketで主要なDelegation PublicによるEncrypted Shared Keyの署名です。 この署名の存在は暗号化された共有されたキーで主要なDESがユーザを代弁するという証言です。
This data structure is optional and will be missing if the
このデータ構造は、任意であり、なくなるでしょう。
Kaufman [Page 41] RFC 1507 DASS September 1993
コーフマン[41ページ]RFC1507ダス1993年9月
authentication is only on behalf of a Local Username on a node (i.e., proxy) rather than on behalf of a real principal with a real key. It will also be missing if delegation is taking place.
認証は実際のキーで単に本当の元本を代表してというよりむしろノード(すなわち、プロキシ)の上のLocal Usernameを代表しています。 また、委譲が行われていると、なくなるでしょう。
d) Node Ticket - [sourceNode.nodeTicketSignature] - This is a signature of the Encrypted Shared key and a "Local Username" on the host node by the node's private key. The existence of this signature is testimony by the node that the DES key in the encrypted shared key speaks for the named account on that node.
d) ノードTicket--[sourceNode.nodeTicketSignature]--これは、ノードの秘密鍵によるEncrypted Sharedキーの署名とホストノードに関する「ローカルのユーザ名」です。 この署名の存在はノードによる暗号化された共有されたキーで主要なDESがそのノードの上で命名されたアカウントを代弁するという証言です。
e) Delegator - [sourcePrincipal.delegator] - This data structure contains the private login key encrypted under the Shared key. It is optional and is present only if the initiator is delegating to the destination.
e) Delegator--[sourcePrincipal.delegator]--このデータ構造はSharedキーの下で暗号化された個人的なログインキーを含んでいます。 創始者が目的地に委任している場合にだけ、任意であり、存在しています。
f) Authenticator - [authenticatorData] - This data structure contains a timestamp and a message digest of the channel bindings signed by the Shared Key. It is always present.
f) 固有識別文字--[authenticatorData]--このデータ構造はShared Keyによって署名されたチャンネル結合のタイムスタンプとメッセージダイジェストを含んでいます。 それはいつも存在しています。
g) Principal name - [sourcePrincipal.userName] - This is the name of the initiating principal. It is optional and will be missing for strong proxy where bits on the wire are at a premium and where the destination is capable of independently constructing the name.
g) 主要な名前--[sourcePrincipal.userName]--これは開始主体の名前です。 それは、任意であり、プレミアムにはワイヤのビットがあって、目的地が独自に名前を構成できるところで強いプロキシにおいて、なくなるでしょう。
h) Node name - [sourceNode.nodeName] - This is the name of the initiating node. It is optional and will be missing for strong proxy where bits on the wire are at a premium and the name is present elsewhere in the message being passed.
h) ノード名--[sourceNode.nodeName]--これは開始ノードの名前です。 それは、任意であり、強いプロキシにおいて、通過されるメッセージのほかの場所の現在のプレミアムと存在という名前にはワイヤのビットがあるところでなくなるでしょう。
i) Local Username - [sourceNode.username] - This is the local user name on the initiating node. It is optional and will be missing for strong proxy where bits on the wire are at a premium and where the name is present elsewhere in the message being passed.
i) 地方のUsername--[sourceNode.username]--これは開始ノードの上のローカルのユーザ名です。 それは、任意であり、強いプロキシにおいて、通過されるメッセージでプレミアムにはワイヤのビットがあって、名前がほかの場所に存在しているところでなくなるでしょう。
3.3.2 Mutual Authentication Token
3.3.2 互いの認証トークン
The authentication buffer sent from the target to the initiator (in the case of mutual authentication) is much simpler. It contains only the timestamp taken from the authenticator encrypted under the Shared Key. It is ASN.1 encoded to allow for future extensions.
目標から創始者(互いの認証の場合における)に送られた認証バッファははるかに簡単です。 それはShared Keyの下で暗号化された固有識別文字から取られたタイムスタンプだけを含んでいます。 それは今後の拡大を考慮するためにコード化されたASN.1です。
Kaufman [Page 42] RFC 1507 DASS September 1993
コーフマン[42ページ]RFC1507ダス1993年9月
3.4 Credentials
3.4 資格証明書
DASS organizes its internal state with Credentials structures. There are many kinds of information which can be stored in credentials. Rather than making a different kind of data structure for each kind of data, DASS provides a single credentials structure where most of its fields are optional. Operating systems must provide some mechanism for having several processes share credentials. An example of a mechanism for doing this would be for credentials to be stored in a file and the name of the file is used as a "handle" by all processes which use those credentials. Some of the calls which follow cause credentials structures to be updated. It is important to the performance of a system that updates to credentials (such as occur during the routines Verify_Principal_Name and Verify_Node_Name, where the caches are updated) be visible to all processes sharing those credentials.
ダスはCredentials構造がある内部の状態を組織化します。 資格証明書で保存できる多くの種類の情報があります。 各種類のデータのための異種のデータ構造を作るよりむしろ、ダスは分野の大部分が任意である構造をただ一つの資格証明書に提供します。 オペレーティングシステムはいくつかのプロセスに資格証明書を共有させるのに何らかのメカニズムを提供しなければなりません。 これをするためのメカニズムに関する例が資格証明書がファイルに保存されるだろうことであり、ファイルの名前は「ハンドル」としてそれらの資格証明書を使用するすべてのプロセスによって使用されます。 続く呼び出しのいくつかが資格証明書構造をアップデートさせます。 システムの性能に、資格証明書(ルーチンのVerify_プリンシパル_NameとVerify_Node_Nameの間、キャッシュがアップデートされるところに起こる)へのアップデートがそれらの資格証明書を共有するすべてのプロセスに目に見えるのは、重要です。
In many of the calls which follow, the credentials passed may be labeled: claimant credentials, verifier credentials or some such. This indicates whose credentials are being passed rather than a type of credentials. DASS supports only one type of credentials, though the fields present in the credentials of one sort of principal may be quite different from those present in the credentials of another.
続く呼び出しの多くでは、通過された資格証明書はラベルされるかもしれません: 主張者資格証明書、検証資格証明書またはいくらかのそのようなもの。 これは、資格証明書が資格証明書のタイプよりむしろだれのものに通過されているかを示します。 ダスは1つのタイプの資格証明書だけをサポートします、1種類の主体の資格証明書における現在の分野が別のものの資格証明書で出席しているそれらと全く異なるかもしれませんが。
An implementation may choose to support multiple kinds of credentials structures each of which will support only a subset of the functions available if it is not implementing the full architecture. This would be the case, for example, if an implementation did not support the case where a server both received requests from other principals and made requests on its own behalf using a single set of credentials.
実装は、完全なアーキテクチャを実装していないならそれのそれぞれが利用可能な機能の部分集合だけをサポートする複数の種類の資格証明書構造を支えるのを選ぶかもしれません。 例えば、実装がサーバが他の主体から要求を受け取って、1セットの資格証明書を使用することでそれ自身に代わって要求をしたケースを支えないなら、これはそうでしょうに。
The following are a list of the fields that may be contained in a credentials structure. They are grouped according to common usage.
↓これは資格証明書構造に含まれるかもしれない分野のリストです。 一般的な用法によると、それらは分類されます。
3.4.1 Claimant information
3.4.1 主張者情報
This is the information used when the holder of these credentials is requesting something. It includes:
これはこれらの資格証明書の所有者が何かを要求しているとき使用される情報です。 それは:
a) Full X.500 name of the principal
a) 主体の完全なX.500名
b) Public Key of the principal
b) 主体の公共のKey
c) Login Ticket - a login ticket contains:
c) ログインTicket--ログインチケットは以下を含んでいます。
1) the UID of the principal
1) 主体のUID
Kaufman [Page 43] RFC 1507 DASS September 1993
コーフマン[43ページ]RFC1507ダス1993年9月
2) a period of validity (effective date & expiration date)
2) 期間の正当性(発効日、有効期限)
3) a delegation public key
3) 委譲公開鍵
4) a signature of the ticket contents by the principal's long term key
4) 主体の長期キーによるチケットコンテンツの署名
d) Delegation Private Key (corresponding to the public key in c3)
d) 委譲秘密鍵(c3の公開鍵に対応します)
e) Encrypted Shared Key (present only when credentials were created by accept_token; this information is needed to verify a node ticket after credentials are accepted)
e) 暗号化された共有されたキー(現在資格証明書が作成されて、_トークンを受け入れてください; この情報が資格証明書を受け入れた後にノードチケットについて確かめるのに必要であるということであった場合にだけ)です。
3.4.2 Verifier information
3.4.2 検証情報
This is the information needed by a server to decrypt incoming requests. It is also used by generate_server_ticket to generate a login ticket.
これは入って来る要求を解読するためにサーバによって必要とされた情報です。 それはそうです、また、使用されて、_サーバ_チケットを生成して、ログインチケットを生成してください。
a) RSA private key.
a) RSA秘密鍵。
3.4.3 Trusted Authority
3.4.3 信じられた権威
This is information used to seed the walk of the CA hierarchy to reliably find the public key(s) associated with a name. Normally, the trusted authority in a set of credentials will be the directory parent of the principal named in Claimant information. In some circumstances, it may instead be the directory parent of the node on which the credentials reside.
これは公開鍵が名前に関連しているのが確かにわかるためにカリフォルニア階層構造の散歩に種を蒔くのに使用される情報です。 通常、資格証明書のセットにおける信じられた権威はClaimant情報で指定された主体のディレクトリ親になるでしょう。 いくつかの事情では、それは代わりに資格証明書があるノードのディレクトリ親であるかもしれません。
a) Full X.500 name of a CA
a) カリフォルニアの完全なX.500名
b) Corresponding RSA Public Key
b) 対応するRSA公開鍵
c) Corresponding UID
c) 対応するUID
3.4.4 Remote node authentication
3.4.4 遠隔ノード認証
This information is present only for credentials generated by "Accept_token". It includes information about any remote node which vouched for the request.
この情報は「_トークンを受け入れてください」によって生成された資格証明書のためだけに存在しています。 それは要求を保証したどんな遠隔ノードの情報も含んでいます。
a) Full X.500 name of the node
a) ノードの完全なX.500名
b) Local Username on the node
b) ノードの上の地方のUsername
c) Node ticket.
c) ノードチケット。
Kaufman [Page 44] RFC 1507 DASS September 1993
コーフマン[44ページ]RFC1507ダス1993年9月
3.4.5 Local node credentials
3.4.5 地方のノード資格証明書
This information is added by Combine_credentials, and is used by Create_token to add a node signature to outbound requests.
この情報はCombine_資格証明書によって加えられて、Create_トークンによって使用されて、ノード署名を外国行きの要求に追加します。
a) Full X.500 name of the node
a) ノードの完全なX.500名
b) Local Username on the node
b) ノードの上の地方のUsername
c) RSA private key of the node
c) ノードのRSA秘密鍵
3.4.6 Cached outgoing contexts
3.4.6 キャッシュされた送信する関係
There may be one (or more) such structures for each server for which this principal has created authentication tokens. These represent a cache: they may be discarded at any time with no effect except on performance. For each association, the following information is kept:
この校長が認証トークンを作成した各サーバのためのそのような構造の(さらに)1つがあるかもしれません。 これらはキャッシュを表します: 性能を除いて、それらはいつでも、効果なしで捨てられるかもしれません。 各協会に関しては、以下の情報は保たれます:
a) Destination RSA Public Key (index)
a) 目的地RSA公開鍵(インデックス)
b) Encrypted Shared key
b) 暗号化されたSharedキー
c) Shared Key Ticket (optional, included if there has been a non-delegating connection)
c) 共有された主要なチケット(任意である、非代表として派遣している接続があったかどうかを含んでいる、)
d) Node Ticket
d) ノードチケット
e) Delegator (optional, included if there has been a delegating connection)
e) Delegator(任意である、接続を代表として派遣しながらaがあったかどうかを含んでいる、)
f) Validity interval
f) 正当性間隔
g) Shared Key
g) 共有されたキー
3.4.7 Cached Incoming Contexts
3.4.7 キャッシュされた入って来る文脈
There may be one such structure for each client from which this server has received an authentication token. These represent a cache: they may be discarded at any time with no effect except on performance. (An implementation may choose to keep one System-wide Cache (and list of incoming timestamps). While it is unlikely that the same Encrypted Shared Key will result from encryption of Shared keys generated by different clients or for different servers, an implementation must ensure that an entry made for one client/server can not be reused by another client/server. Similarly an implementation may choose to keep separate caches for the Shared Key/Validity Interval/Delegation Public Key, the Nodename/UID/key/username and the Principal name/UID/key.) For each association, the following information is kept:
このサーバが認証トークンを受けた各クライアントのためのそのような構造の1つがあるかもしれません。 これらはキャッシュを表します: 性能を除いて、それらはいつでも、効果なしで捨てられるかもしれません。 ( 実装は、1System全体のCache(そして、入って来るタイムスタンプのリスト)を保つのを選ぶかもしれません。同じEncrypted Shared Keyが異なったクライアントか異なったサーバのために生成されたSharedキーの暗号化から生じるのが、ありそうもない間、実装は、別のクライアント/サーバで1つのクライアント/サーバのためにされたエントリーを再利用できないのを確実にしなければなりません; 同様に、実装は、Shared Key/正当性のための別々のキャッシュがInterval/委譲Public Keyと、Nodename/UID/キー/ユーザ名とプリンシパル名前/UID/キーであることを保つのを選ぶかもしれません; ) 各協会に関しては、以下の情報は保たれます:
Kaufman [Page 45] RFC 1507 DASS September 1993
コーフマン[45ページ]RFC1507ダス1993年9月
a) Encrypted Shared key (index)
a) 暗号化されたSharedキー(インデックス)
b) Shared Key
b) 共有されたキー
c) Validity Interval
c) 正当性間隔
d) Full X.500 name of Client Principal
d) 完全なX.500名(Clientプリンシパル)
e) UID of Client Principal
e) クライアント主体のUID
f) Public Key of Client Principal
f) クライアント主体の公開鍵
g) Name of Client Node
g) クライアントノードの名前
h) UID of Client Node
h) クライアントノードのUID
i) Public Key of Client Node
i) クライアントノードの公開鍵
j) Local Username on Client node
j) Clientノードの上の地方のUsername
k) Delegation Public key of Client Principal's Login Ticket
k) ClientプリンシパルのLogin Ticketの委譲Publicキー
The Name, UID and Public key of the Principal are all entered together once the Login Ticket has been verified. Similarly the Node name, Node key and Username are entered together once the Node Ticket has been verified. These pieces of information are only present if they have been verified.
Login Ticketがいったん確かめられると、プリンシパルのName、UID、およびPublicキーはすべて一緒に入れられます。 同様に、Node Ticketがいったん確かめられると、Node名、Nodeキー、およびUsernameは一緒に入れられます。 それらが確かめられた場合にだけ、情報のこれらの断片は存在しています。
3.4.8 Received Authenticators
3.4.8 容認された固有識別文字
A record of all the authenticators received is kept. This is used to detect replayed messages. (This list must be common to all targets that could accept the same authenticator (channel bindings will prevent other targets from accepting the same authenticator). This includes different `servers' sharing the same key.) The entries in this list may be deleted when the timestamp is old enough that they would no longer be accepted. This list is kept separate from the Cached incoming context in order that the information in the cached incoming context can be discarded at any time. An implementation could choose to save these timestamps with the cached incoming context if it ensures that it can never purge entries from the cache before the timestamp has aged sufficiently. This list is accessed based on an extract from the signature from the Authenticator. The extract must be at least 64 bits, to ensure that it is very unlikely that 2 authenticators will be received with matching signatures.
固有識別文字が受けたすべてに関する記録はつけられます。 これは、再演されたメッセージを検出するのに使用されます。 このリストは同じ固有識別文字を受け入れることができたすべての目標に共通であるに違いありません(チャンネル結合は、他の目標が同じ固有識別文字を受け入れるのを防ぐでしょう)。(これは同じキーを共有しながら、異なった'サーバ'を含めます。) タイムスタンプがそれらがもう受け入れられないほど古いときに、このリストにおけるエントリーは削除されるかもしれません。 このリストは、いつでもキャッシュされた入って来る文脈の情報を捨てることができるようにCachedの入って来る文脈から別々に保たれます。 タイムスタンプが十分年をとる前にエントリーからキャッシュから決して追放できないのを確実にするなら、実現は、キャッシュされた入って来る文脈でこれらのタイムスタンプを保存するのを選ぶかもしれません。 このリストは署名からの抽出に基づいてAuthenticatorからアクセスされます。 抽出は、合っている署名で2つの固有識別文字を受け取るのが確実に非常にありそうもなくなるようにするためには少なくとも64ビットでなければなりません。
a) Extract from Signature from Authenticator
a) 固有識別文字からの署名からの抽出
Kaufman [Page 46] RFC 1507 DASS September 1993
コーフマン[46ページ]RFC1507ダス1993年9月
b) Timestamp
b) タイムスタンプ
If an implementation runs out of space to store additional authenticators, it may either reject the token which would have overflowed the table or it may temporarily narrow the allowed clock skew to allow it to free some of the space used to hold "old" authenticators. The first strategy will always falsely reject tokens; the second may cause false rejection of tokens if the allowed clock skew gets narrowed beyond the actual clock skew in the network.
実現が追加固有識別文字を格納するためにスペースを使い果たすなら、テーブルからはみ出させた象徴を拒絶するかもしれませんか、またはそれは、「古い」固有識別文字を保持するのに使用される何らかのスペースを解放するのを許容するために一時許容時計斜行を狭くするかもしれません。 最初の戦略はいつも間違って象徴を拒絶するでしょう。 実際の時計斜行を超えて許容時計斜行がネットワークで狭くされるなら、2番目は象徴の誤った拒絶を引き起こすかもしれません。
3.5 CA State
3.5 カリフォルニア州
The CA needs to maintain some internal state in order to generate certificates. This internal state must be protected at all times, and great care must be taken to prevent its being disclosed. A CA may choose to maintain additional state information in order to enhance security. In particular, it is the responsibility of the CA to assure that the same UID is not serially reused by two holders of a single name. In most cases, this can be done by creating the UID at the time the user is registered. To securely permit users to keep their UIDs when transferring from another CA, the CA must keep a record of any UIDs used by previous holders of the name. Since actions of a CA are so security sensitive, the CA should also maintain an audit trail of all certificates signed so that a history can be reconstructed in the event of a compromise. Finally, for the convenience of the CA operator, the CA should record a list of the directories for which it is responsible and their UIDs so that these need not be entered whenever the CA is to be used. The state includes at least the following information:
カリフォルニアは、証明書を作るために何らかの内部の状態を維持する必要があります。 いつもこの内部の状態を保護しなければなりません、そして、それがあるのを明らかにされた状態で防ぐために高度の注意を取らなければなりません。 カリフォルニアは、セキュリティを高めるために追加州の情報を保守するのを選ぶかもしれません。 同じUIDが順次ただ一つの名前の2個の所有者によって再利用されないことを保証するのは、特に、カリフォルニアの責任です。 多くの場合、ユーザが登録されているときUIDを作成することによって、これができます。 名前の前の所有者がどんなUIDsに関する記録も使用して、別のカリフォルニア(カリフォルニア)から移動するとき、ユーザが彼らのUIDsを保つことをしっかりと許可するのがおかなければなりません。 したがって、カリフォルニアの動作がセキュリティ敏感であるので、また、カリフォルニアは妥協の場合、歴史を復元できるようにサインされたすべての証明書の監査証跡を維持するべきです。 最終的に、カリフォルニアのオペレータの都合のために、カリフォルニアは、カリフォルニアが使用されていることになっているときはいつも、これらが入られる必要はないように、それが責任があるディレクトリとそれらのUIDsのリストを記録するべきです。 州は少なくとも以下の情報を含めます:
- Public Key of CA
- カリフォルニアの公開鍵
- Private Key of CA
- カリフォルニアの秘密鍵
- Serial number of next certificate to be issued
- 発行される次の証明書の通し番号
3.6 Data types used in the routines
3.6 ルーチンに使用されるデータ型
There are several abstract data types used as parameters to the routines described in this section. These are listed here
ルーチンへのパラメタがこのセクションで説明したように使用されるいくつかの抽象データ型があります。 これらはここに記載されています。
a) Integer
a) 整数
b) Name Names unless otherwise noted are always X.500 names. While most of the design of DASS is naming service independent, the syntax of certificates and tokens only permits X.500 names to be used. If DASS is to be used in an environment where some
b) 別の方法で注意されない場合、いつも名前NamesはX.500名です。 ダスのデザインの大部分がサービスを独立者と命名していることである間、証明書と象徴の構文は、X.500名が使用されることを許可するだけです。 ダスが環境で使用されるつもりである、どこ、いくつか
Kaufman [Page 47] RFC 1507 DASS September 1993
コーフマン[47ページ]RFC1507ダス1993年9月
other form of name is used, those names must be translated into something syntactically compliant with X.500 using some mechanism which is beyond the scope of this architecture. The only other form of name appearing in this architecture is a "local user name", which corresponds to the simple name of an "account" on a node. As a type, such names appear in parameter lists as "Strings".
他のフォームの名前が使用されている、シンタクス上この構造の範囲にある何らかのメカニズムを使用しているX.500で何か言いなりになっているものにそれらの名前を翻訳しなければなりません。 この構造の他の唯一のフォームの名前排臨はノードの「アカウント」の単純名に対応する「ローカルのユーザ名」です。 タイプとして、そのような名前は「ストリング」としてパラメータ・リストに現れます。
c) String A String is a sequence of printable characters.
c) ストリングA Stringは印刷可能なキャラクタの系列です。
d) Absolute Time A UTC time. The precision of these Times is not stated. A precision of the order of one second in all times is sufficient.
d) 絶対Time A UTC時間。 これらのタイムズの精度は述べられていません。 すべての回での1秒の注文の精度は十分です。
e) Time Interval A Time interval is composed of 2 times. A Start Time and an End Time, both of which are Absolute Times
e) 時間Interval A Time間隔は2回で構成されます。 Start TimeとEnd Time。それの両方がAbsoluteタイムズです。
f) Timestamp A Timestamp is a time in POSIX format. I.e., two 32 bit Integers. The first representing seconds, and the second representing nanoseconds.
f) タイムスタンプA TimestampはPOSIX形式において時間です。 すなわち、32ビットの2Integers。 最初の表す秒、および数ナノ秒を表す秒。
g) Duration A Duration is the length of a time interval.
g) 持続時間A Durationは時間間隔の長さです。
h) Octet String A sequence of bytes containing binary data
h) 2進のデータを含むバイトの八重奏String A系列
i) Boolean A value of either True or False
i) TrueかFalseのどちらかのブールA値
j) UID A UID is an bit string of 128 bits.
j) UID A UIDは128ビットのビット列です。
k) OID An OID is an ISO Object Identifier.
k) OID An OIDはISO Object Identifierです。
l) Shared key A Shared key is a DES key, a sequence of 8 bytes
l) 共有された主要なA SharedキーはDESキー、8バイトの系列です。
m) CA State A structure of the form described in '3.5
m) '3.5'で説明された形式のカリフォルニア州A構造
n) Credentials A structure of the form described in '3.4
n) '3.4'で説明された形式の信任状A構造
Kaufman [Page 48] RFC 1507 DASS September 1993
コーフマン[48ページ]RFC1507ダス1993年9月
o) Certificate An ASN.1 encoding of the structure described in '3.1
o) '3.1'で説明された構造の証明書An ASN.1コード化
p) Authentication Token An ASN.1 encoding of the structure described in '3.3.1
p) 構造の認証Token An ASN.1コード化は'3.3で.1について'説明しました。
q) Mutual Authentication Token An ASN.1 encoding of the structure described in '3.3.2
q) 構造の互いのAuthentication Token An ASN.1コード化は'3.3で.2について'説明しました。
r) Encrypted Credentials An ASN.1 encoding of the structure described in '3.2
r) '3.2'で説明された構造のコード化されたCredentials An ASN.1コード化
s) Public key A representation of an RSA Public key, including all the information needed to encode the public key in a certificate.
s) RSA Publicキーの公開鍵A表現、すべての情報を含んでいるのは証明書の公開鍵をコード化する必要がありました。
t) Set of Public key/UID pairs A set of Public key/UID pairs. This Data type is only used internally in DASS - it does not appear in any interface used to other architectures.
t) Aが設定したPublicキー/UIDのPublicキー/UID組のセットは対にされます。 このDataタイプはダスで内部的に使用されるだけです--それは他の構造に使用されるどんなインタフェースにも現れません。
3.7 Error conditions
3.7 エラー条件
These routines can return the following error conditions (an implementation may indicate errors with more or less precision):
これらのルーチンは以下のエラー条件を返すことができます(実現はだいたい精度で誤りを示すかもしれません):
a) Incomplete chain of trustworthy CAs
a) 信頼できるCAsの不完全なチェーン
b) Target has no keys which can be trusted.
b) 目標は信じることができないキーを全く持っています。
c) Invalid Authentication Token
c) 無効の認証象徴
d) Login Ticket Expired
d) ログインチケットは期限が切れました。
e) Invalid Password
e) 無効のパスワード
f) Invalid Credentials
f) 無効の信任状
g) Invalid Authenticator
g) 無効の固有識別文字
h) Duplicate Authenticator
h) 固有識別文字をコピーしてください。
3.8 Certificate Maintenance Functions
3.8 証明書維持機能
Authentication services depend on a set of data structures maintained in the naming service. There are two kinds of information: Certificates, which associate names and public keys and are signed by off-line Certification Authorities; and Encrypted Credentials, which
認証サービスは命名サービスで維持されたデータ構造のセットに依存します。 2種類の情報があります: 証明書、;(証明書は、名前と公開鍵を関連づけて、オフラインCertification Authoritiesによってサインされます)。 そして、Encrypted Credentials、どれ
Kaufman [Page 49] RFC 1507 DASS September 1993
コーフマン[49ページ]RFC1507ダス1993年9月
contain RSA Private Keys and certain context information encrypted under passwords. Encrypted Credentials are only necessary in environments where passwords are used. Credentials may alternatively be stored in some other secure manner (for example on a smart card).
RSA兵士のキーズとパスワードの下でコード化されたある文脈情報を含んでください。 コード化されたCredentialsがパスワードが使用されている環境だけで必要です。 あるいはまた、信任状はある他の安全な方法(例えば、スマートカードの)に格納されるかもしれません。
The certificate maintenance services are designed so that the most sensitive - the actual signing of certificates - may be done by an off-line authority. Once signed, certificates must be posted in the naming service to be believed. The precise mechanisms for moving certificates between off-line CAs and the on-line naming service are implementation dependent. For the off-line mechanisms to provide any actual security, the CAs must be told what to sign in some reliable manner. The mechanisms for doing this are implementation dependent. The abstract interface says that the CA is given all of the information that goes into a certificate and it produces the signed certificate. There are requirements surrounding the auditing of a CA's actions. The details of what actions are audited, where the audit trail is maintained, and what utilities exist to search that audit trail are not specified here. The functions a CA must provide are:
証明書保守サービスは、オフライン権威で、最も敏感(証明書の実際の調印)ができるように設計されています。 いったんサインされると、信じられるために命名サービスで証明書を掲示しなければなりません。 証明書をオフラインCAsとオンライン命名サービスの間に動かすための正確なメカニズムは実現に依存しています。 オフラインメカニズムがどんな実際のセキュリティも提供するように、何らかの信頼できる方法で何にサインしたらよいかをCAsを言わなければなりません。 これをするためのメカニズムは実現に依存しています。 抽象的なインタフェースは、証明書を調べる情報のすべてがカリフォルニアに与えられていると言います、そして、それは署名入りの証書を製作します。 CAの動作の監査を囲む要件があります。 どんな動作の詳細は監査されるか、そして、監査証跡がどこで維持されるか、そして、どんなユーティリティがその監査証跡を捜すために存在しているかはここで指定されません。 カリフォルニアが提供しなければならない機能は以下の通りです。
3.8.1 Install CA
3.8.1 カリフォルニアをインストールしてください。
Install_CA( keysize Integer, --inputs CA_state CA State, --outputs CA_Public_Key Public Key)
_カリフォルニアをインストールしてください。(_keysize Integer--入力カリフォルニア_州のカリフォルニア州--出力カリフォルニアPublic_Key Public Key)
This routine need only generate a public/private key pair of the requested size. Keysize is likely to be in implementation constant rather than a parameter. The value is likely to be either 512 or 640. Key sizes throughout will have to increase over time as factoring technology and CPU speeds improve. Both keys are stored as part of the CA_state; the public key is returned so that other CAs may cross-certify this one. The `Next Serial number' in the CA state is set to 1.
このルーチンは要求されたサイズの公衆/秘密鍵組を発生させるだけでよいです。 Keysizeする、おそらく、パラメタよりむしろ実現定数にはあることになっています。 値は512か640である傾向があります。 意志中の主要なサイズは時間がたつにつれて技術を因数分解するとして増加しなければなりません、そして、CPU速度は向上します。 両方のキーはカリフォルニア_状態の一部として収納されます。 他のCAsがこれを十字で公認できるように、公開鍵を返します。 カリフォルニア州の'次のSerial番号'は1に設定されます。
3.8.2 Create Certificate
3.8.2 証明書を作成してください。
Create_certificate( --inputs Renewal Boolean, Include_UID Boolean, Issuer_name Name, Issuer_UID UID, Effective_date Absolute Time, Expiration_date Absolute Time, Subject_name Name,
_証明書を作成してください、(--入力更新論理演算子、インクルード_UIDのブールの、そして、発行人_名前名義の発行人_UID UID、有効な_が絶対時間の日付を入れて、満了_が絶対時間、対象_名前名の日付を入れる
Kaufman [Page 50] RFC 1507 DASS September 1993
コーフマン[50ページ]RFC1507ダス1993年9月
Subject_UID UID, Subject_public_key Public Key, --updated CA_state CA State, --outputs Certificate Certificate)
対象_UID UID(対象の_公共の_主要な公開鍵(アップデートされたカリフォルニア_州のカリフォルニア州))が証明書証明書を出力する、)
This procedure creates and signs a certificate. Note that the various contents of the certificate must be communicated to the CA in some reliable fashion. The Issuer_name and UID are the name and UID of the directory on whose behalf the certificate is being signed.
この手順は、証明書を作成して、サインします。 何らかの信頼できるファッションで証明書の様々な中身をカリフォルニアに伝えなければならないことに注意してください。 Issuer_名前とUIDは証明書がに代わってサインされているディレクトリの名前とUIDです。
This routine formats and signs a certificate with the private key in CA_state. It audits the creation of the certificate and updates the sequence number which is part of CA_state. The Issuer and Subject names are X.500 names. If the CA state includes a history of what UIDs have previously been used by what names, this call will only succeed in the collision case if the Renewal boolean is set true. If the Include_UID boolean is set true, this routine will generate a 1992 format X.509 certificate; otherwise it will generate a 1988 format X.509 certificate.
このルーチンは、カリフォルニア_状態で秘密鍵で証明書をフォーマットして、サインします。 それは、証明書の創造を監査して、カリフォルニア_状態の一部である一連番号をアップデートします。 IssuerとSubject名はX.500名です。 カリフォルニア州が何に関する歴史を含めるかなら、UIDsは以前にどんな名前によって使用されるか、そして、Renewal論理演算子が本当に設定される場合にだけ、この呼び出しは衝突ケースに成功するでしょう。 Include_UID論理演算子が本当に設定されると、このルーチンは1992年の形式X.509証明書を作るでしょう。 さもなければ、それは1988年の形式X.509証明書を作るでしょう。
3.8.3 Create Principal
3.8.3 校長を創造してください。
Create_principal( --inputs Password String, keysize Integer, Principal_name Name, Principal_UID UID, Parent_Public_key Public Key, Parent_UID UID, --outputs Encrypted_Credentials Encrypted Credentials, Trusted_authority_certificate Certificate)
主要な状態で_を作成してください。(_出力Encrypted_Credentials Encrypted Credentials、--入力Password String、keysize Integer、プリンシパル_名前Name、プリンシパル_UID UID、Parent_Public_キーPublic Key、Parent_UID UID--Trusted_権威証明書Certificate)
This procedure creates a new principal by generating a new public/private key pair, encrypting the public and private keys under the password, and signing a trusted authority certificate for the parent CA. In an implementation not using passwords (e.g., smart cards), an alternative mechanism must be used for initially creating principals. If a principal has protected storage for trusted authority information, it is not necessary to create a trusted authority certificate and store it in the naming service. Some procedure analogous to this one must be executed, however, in which the principal learns the public key and UID of its CA and its own name.
この手順は新しい公衆/秘密鍵組を発生させることによって、新しい元本を創造します、パスワードの下で公衆と秘密鍵をコード化して、信じられた権威証明書に親カリフォルニアにサインして。 パスワード(例えば、スマートカード)を使用しない実現では、初めはに校長を創造しながら、代替のメカニズムを使用しなければなりません。 元本が信じられた権威情報のための格納を保護したなら、信じられた権威証明書を作成して、命名サービスにそれを格納するのは必要ではありません。 しかしながら、これへの類似の何らかの手順を実行しなければなりません、校長が、カリフォルニアとそれ自身の公開鍵とUIDが命名することを学ぶもので。
Kaufman [Page 51] RFC 1507 DASS September 1993
コーフマン[51ページ]RFC1507ダス1993年9月
This routine creates two output structures with the following steps:
このルーチンは以下のステップがある2つの出力構造を作成します:
a) Generate a public/private key pair using the indicated keysize. An implementation will likely fix the keysize as an implementation constant, most likely 512 or 640 bits, rather than accepting it as a parameter. Key sizes generally will have to increase over time as factoring technology and CPU speeds improve.
a) 表示を使用するとkeysizeされる公衆/秘密鍵組を発生させてください。 実現がおそらく修理される、実現定数(たぶんパラメタとしてそれを認めるよりむしろ512ビットか640ビット)として、keysizeします。 一般に、主要なサイズは時間がたつにつれて技術を因数分解するとして増加しなければならないでしょう、そして、CPU速度は向上します。
b) Form the encrypted credentials by using the public key, private key, and Principal_UID and encrypting them using a hash of the password as the key.
b) 公開鍵、秘密鍵、およびプリンシパル_UIDを使用して、キーとしてパスワードの細切れ肉料理を使用することでそれらをコード化することによって、コード化された信任状を形成してください。
c) Generate a trusted authority certificate (which is identical in format to a "parent" certificate) getting fields as follows:
c) 野原が以下の通りになって、信じられた権威証明書(形式が「親」証明書と同じである)を作ってください:
1) Certificate version is X.509 1992.
1) 証明書バージョンはX.509 1992です。
2) Issuer name is the Principal name (which is an X.500 name).
2) 発行人名はプリンシパル名(X.500名である)です。
3) Issuer UID is the Principal UID.
3) 発行人UIDはプリンシパルUIDです。
4) Validity is for all time.
4) 時間中に、正当性があります。
5) Subject name is constructed from the Principal name by removing the last simple name from the hierarchical name.
5) 対象の名前は、プリンシパル名から階層的な名前から最後の単純名を取り除くことによって、構成されます。
6) Subject UID is the CA_UID.
6) 対象のUIDはカリフォルニア_UIDです。
7) Subject Public Key is the CA_Public_Key
7) 対象のPublic Keyはカリフォルニア_Public_Keyです。
8) Sequence number is 1.
8) 一連番号は1です。
9) Sign the certificate with the newly generated private key of the principal.
9) 校長の新たに発生した秘密鍵を証明書と契約してください。
3.8.4 Change Password
3.8.4 変化パスワード
Change_password( --inputs Encrypted_credentials Encrypted Credentials, Old_password String, New_password String, --outputs Encrypted_credentials Encrypted Credentials)
変化_パスワード(--、入力、コード化された_信任状は信任状、古い_パスワードストリング、新しい_パスワードストリングをコード化しました--出力が信任状がコード化した_をコード化した、信任状)
If credentials are stored encrypted under a password, it is possible to change the password if the old one is known. Note that it is
信任状がパスワードの下でコード化されていた状態で格納されるなら、古い方が知られているなら、パスワードを変えるのは可能です。 注意
Kaufman [Page 52] RFC 1507 DASS September 1993
コーフマン[52ページ]RFC1507ダス1993年9月
insufficient to just change a user's password if the password has been disclosed. Anyone knowing the old password may have already learned the user's private key. If a password has been disclosed, the secure recovery procedure is to call create_principal again followed by create_certificate to certify the new key.
パスワードが明らかにされたならただユーザのパスワードを変えるために、不十分です。 古いパスワードを知っているだれでも既にユーザの秘密鍵を学んだかもしれません。 パスワードが明らかにされたなら、安全なリカバリ手順は呼ぶのが_再び続かれる校長を創造するということです。_証明書を作成して、新しいことがキーであることを公認してください。
Using DASS, it may not be appropriate for users to periodically change their passwords as a precaution unless they also change their private keys by the procedure above. The only likely use of the change_password procedure is to handle the case where an administrator has chosen a password for the user in the course of setting up the account and the user wishes to change it to something the user can remember. A future version of the architecture may smooth key roll-over by having the change_password command also generate a new key and sign a "self" certificate in which the old key certifies the new one. As a separate step, a CA which notices a self certificate posted in the naming service could certify the new key instead of the old one when the user's certificate is renewed. While this procedure is not as rapid or as reliable as having the user directly interact with the CA, it offers a reasonable tradeoff between security and convenience when there is no evidence of password compromise.
ダスを使用して、また、上の手順で自己の秘密鍵を変えないなら、ユーザが注意として定期的に彼らのパスワードを変えるのは、適切でないかもしれません。 ユーザは、変化_パスワード手順の唯一のありそうな使用がアカウントをセットアップすることの間に管理者がユーザのためにパスワードを選んだケースを扱うことであり、それをユーザが思い出すことができる何かに変えたがっています。 アーキテクチャの将来のバージョンは、また、変化_パスワードコマンドに新しいキーを生成させることによって主要なロールオーバーを整えて、古いキーが新しい方を公認する「自己」証明書に署名するかもしれません。 ユーザの証明書が更新されるとき、別々のステップとして、名前付けサービスで掲示された自己証明書に気付くカリフォルニアは古い方の代わりに新しいキーを公認できました。 この手順がユーザに直接カリフォルニアと対話させるほど急速でなく、また信頼できないので、パスワード感染に関する証拠が全くないとき、それはセキュリティと便利の間に手頃な見返りを提供します。
This routine simply decrypts the encrypted credentials structure supplied using the password supplied. It returns a bad status if the format of the decrypted information is bad (indicating an incorrect password). Otherwise, it creates a new encrypted credentials structure by encrypting the same data with the new password. It would be highly desirable for the user interface to this function to provide the capability to randomly generate passwords and prohibit easily guessed user chosen passwords using length, character set, and dictionary lookup rules, but such capabilities are beyond the scope of this document. If encrypted credentials are stored in some local secure storage, the above function is all that is necessary (in fact, if the storage is sufficiently secure, no password is needed; credentials could be stored unenciphered). If they are stored in a naming service, this function must be coupled with one which retrieves the old encrypted credentials from the naming service and stores the new. The full protocol is likely to include access control checks that require the principal to acquire credentials and produce tokens. For best security, the encrypted credentials should be accessible only through a login agent. The role of the login agent is to audit and limit the rate of password guessing. If passwords are well chosen, there is no significant threat from password guessing because searching the space is computationally infeasible. In the context of a login agent, change password will be implemented with a specialized protocol requiring knowledge of the password and (for best security) a trusted authority from which the
このルーチンは、暗号化された資格証明書が提供されたパスワードを使用することで供給された構造であると単に解読します。 解読された情報の形式が悪いなら(間違ったパスワードを示して)、それは悪い状態を返します。 さもなければ、それは、新しいパスワードで同じデータを暗号化することによって、新しい暗号化された資格証明書構造を作成します。 この機能へのユーザーインタフェースが長さ、文字集合、および辞書ルックアップ規則を使用することで手当たりしだいにパスワードを生成して、容易に推測されたユーザ選ばれたパスワードを禁止する能力を提供するのが、非常に望ましいでしょうが、そのような能力はこのドキュメントの範囲を超えています。 暗号化された資格証明書が何らかの地方の安全なストレージで保存されるなら、上の機能は必要なすべて(事実上、ストレージが十分安全であるなら、パスワードは全く必要ではありません; 非暗号化されていた状態で資格証明書を保存できた)です。 それらが名前付けサービスで保存されるなら、この機能は、名前付けサービスから古い暗号化された資格証明書を検索するものと結合しなければならなくて、新しさを保存します。 完全なプロトコルは資格証明書を取得して、トークンを生産するために主体を必要とするアクセス制御チェックを含んでいそうです。 最も良いセキュリティのために、暗号化された資格証明書はログインエージェントだけを通してアクセスしやすいはずです。 ログインエージェントの役割は、パスワード推測のレートを監査して、制限することです。 パスワードが適切であるなら、スペースを捜すのが計算上実行不可能であるので、パスワード推測からの多大なる脅威が全くありません。 ログインエージェントの文脈では、専門化しているプロトコルがパスワードに関する知識と(最も良いセキュリティのための)信じられた権威を必要とすることで変化パスワードが実装される、どれ
Kaufman [Page 53] RFC 1507 DASS September 1993
コーフマン[53ページ]RFC1507ダス1993年9月
public key of the login agent can be learned. See section 2.3.2 for the plans for the non-X.500 credential storage facility.
ログインエージェントの公開鍵について学習できます。 非X.500の資格証明貯蔵場所のためのプランに関してセクション2.3.2を見てください。
3.8.5 Change Name
3.8.5 変化名
Change_name( --inputs Claimant_Credentials Credentials, New_name Name, CA_Public_Key Public Key, CA_UID UID, --outputs Trusted_Authority_Certificate Certificate)
変化_名(--入力主張者_資格証明書資格証明書、新しい_名前名、カリフォルニアの_の公共の_主要な公開鍵、カリフォルニア_UID UID--出力の信じられた_権威_証明書証明書)
DASS permits a principal to have many current aliases, but only one current name. A principal can authenticate itself as any of its aliases but verifies the names of others relative to the name by which it knows itself. Aliases can be created simply by using the create_certificate function once for each alias. To change the name of a principal, however, requires that the principal securely learn the public key and UID of its new parent CA. As with create_principal, if a principal has secure private storage for its trusted authority information, it need not create a certificate, but some analogous procedure must be able to install new naming information.
ダスは、元本が多くの現在の別名を持っていて、1つの現在の名前しか持っていないことを許可します。 元本は、別名のどれかとしてそれ自体を認証できますが、それが己を知っている名前に比例して他のものの名前について確かめます。 単に使用することによって別名を作成できる、各別名のために一度_証明書機能を作成してください。 しかしながら、元本の名前を変えるのは、校長がしっかりと新しい親カリフォルニアの公開鍵とUIDを学ぶのを必要とします。 元本には信じられた権威情報のための安全な個人的なストレージがありますが、証明書を作成する必要はありませんが、何らかの類似の手順が新しい命名情報をインストールできなければならないなら、主要な状態で_を作成してください。
This routine produces a new Trusted Authority Certificate with contents as follows:
コンテンツは以下の通りでこのルーチンは新しいTrusted Authority Certificateを生産します:
a) Issuer name is New_name (an X.500 name)
a) 発行人名はNew_名前です。(X.500名)
b) Issuer_UID is Principal UID from Credentials.
b) 発行人_UIDはCredentialsからのプリンシパルUIDです。
c) Validity is for all time.
c) 時間中に、正当性があります。
d) Subject name is constructed from the Issuer name by removing the last simple name from the hierarchical name, and converting to an X.500 name.
d) 対象の名前は、Issuer名から階層的な名前から最後の単純名を移して、X.500名に変えることによって、構成されます。
e) Subject UID is CA_UID
e) 対象のUIDはカリフォルニア_UIDです。
f) Subject Public Key is CA_Public_Key
f) 対象のPublic Keyはカリフォルニア_Public_Keyです。
g) Sequence number is 1.
g) 一連番号は1です。
h) The certificate is signed with the private key of the principal from the credentials. Note that this call will only succeed if the principal's private key is in the credentials,
h) 証明書は資格証明書からの主体の秘密鍵を契約されます。 資格証明書に主体の秘密鍵がある場合にだけこの呼び出しが成功することに注意してください。
Kaufman [Page 54] RFC 1507 DASS September 1993
コーフマン[54ページ]RFC1507ダス1993年9月
which will only be true if the credentials were created by calling Create_server_credentials.
Create_サーバを_資格証明書と呼ぶことによって資格証明書が作成された場合にだけ、本当でしょう。
3.9 Credential Maintenance Functions
3.9 資格証明メインテナンス機能
DASS credentials can potentially have information about two principals. This functionality is included to support the case where a user on a node has two identities that might be recognized for purposes of managing access controls. First, there is the user's network identity; second, there is an identity as controlling a particular "account" or "username" on that node. There are two reasons for recognizing this second identity: first, access controls might be specified such that only a user is only permitted access to certain resources when coming through certain trusted nodes (e.g., files that can't be accessed from a terminal at home); and second, before the transition strategy to global identities is complete, as a way to refer to USER@NODE in a way analogous to existing mechanisms but with greater security.
ダス資格証明書は潜在的に2つの主体の情報を持つことができます。 この機能性は、ノードの上のユーザがアクセス制御を管理する目的として認識されるかもしれない2つのアイデンティティを持っているケースを支えるために含まれています。 まず最初に、ユーザのネットワークのアイデンティティがあります。 2番目に、そのノードに関する特定の「アカウント」か「ユーザ名」を制御するとしてアイデンティティがあります。 この2番目のアイデンティティを認識する2つの理由があります: まず最初にアクセス制御が指定されるかもしれないので、ある信じられたノード(例えばホームの端末からアクセスできないファイル)を通り抜けるときだけ、あるリソースへのアクセスはユーザだけに受入れられます。 そして、以前2番目に、グローバルなアイデンティティへの変遷戦略は完全です、ある意味でメカニズムにもかかわらず、よりすばらしいセキュリティで存在することへの類似の USER@NODE について言及する方法として。
The mapping of global usernames to local user names on a node is outside the scope of DASS. This is done via a "proxy database" or some analogous local mechanism. What DASS provides are mechanisms for adding node oriented credentials into a user's credentials structure, carrying the dual authentication information in authentication tokens, and extracting the information from the credentials structure created by Accept_token.
ダスの範囲の外にノードの上のローカルのユーザ名へのグローバルなユーザ名に関するマッピングがあります。 「プロキシデータベース」か何らかの類似の局所機構でこれをします。 ダスが提供するものはノードがユーザの資格証明書構造に資格証明書を適応させたと言い足すためのメカニズムです、認証トークンで二元的な認証情報を運んで、Accept_トークンによって作成された資格証明書構造から情報を抜粋して。
Some applications of DASS will not make use of the node authentication related extensions. In that case, they will never use the Combine_credentials, Create_credentials, Get_node_info, or Verify_node_name functions.
ダスのいくつかのアプリケーションはノード認証の使用を関連する拡大にしないでしょう。 その場合、彼らはCombine_資格証明書、Create_資格証明書、Get_ノード_インフォメーション、またはVerify_ノード_名前機能を決して使用しないでしょう。
The "normal" sequence of events surrounding a user logging into a node are as follows:
ノードにログインしているユーザを囲むイベントの「正常な」系列は以下の通りです:
a) When the user logs in, he types either a local user ID known to the node or a global name (the details of the user interface are implementation specific). Through some sort of local mapping, the node determines both a global name and a local account name. The user also enters a password corresponding to the global name.
a) ユーザがログインするとき、彼はノードかグローバル名に知られている地方のユーザIDをタイプします(ユーザーインタフェースの細部は実装特有です)。 ある種のローカルのマッピングを通して、ノードはグローバル名とローカルのアカウント名の両方を決定します。 また、ユーザはグローバル名に対応するパスワードを入力します。
b) The node calls network_login specifying the user's global name and the supplied password. The result is credentials which can be used to access network services but which have not yet been verified to be valid.
b) ノードは、ネットワーク_ログインをユーザのグローバル名と与えられたパスワードを指定すると呼びます。 結果はネットワーク・サービスにアクセスするのに使用できますが、有効になるようにまだ確かめられていない資格証明書です。
Kaufman [Page 55] RFC 1507 DASS September 1993
コーフマン[55ページ]RFC1507ダス1993年9月
c) The node calls verify_principal_name using its own credentials to verify the authenticity of the user's credentials (these node credentials must have previously been established by a call to initialize_server during node initialization).
c) ノード呼び出しは、ユーザの資格証明書の信憑性について確かめるのにそれ自身の資格証明書を使用することで_主体_名前について確かめます(ノード初期化の間に_サーバを初期化するという要求でこれらのノード資格証明書は以前に、確立されたに違いありません)。
d) If that test succeeds, the node adds its credentials to those of the user by calling combine_credentials.
d) そのテストが成功するなら、ノードは、呼ぶのによるユーザのものへの資格証明書が_資格証明書を結合すると言い足します。
The set of facilities for manipulating credentials follow:
資格証明書が続く操りのための施設のセット:
3.9.1 Network login
3.9.1 ネットワークログイン
Network_login( --inputs Name Name, password String, keysize Integer, expiration Time interval, TA_credentials Credentials,--optional --outputs Claimant_credentials Credentials)
ネットワーク_ログイン(--入力Name Name、パスワードString、keysize Integer、満了Time間隔、TA_資格証明書Credentials(任意である)がClaimant_資格証明書Credentialsを出力する)
This function creates credentials for a principal when the principal "logs into the network".
主体が「ネットワークにログインする」とき、この機能は元本のために資格証明書を作成します。
Name is the X.500 name of the principal.
名前は主体のX.500名です。
Password is a secret which authenticates the principal to the network.
パスワードはネットワークに主体を認証する秘密です。
Keysize specifies the size of the temporary "login" or "delegation" key. In a real implementation, it is expected to be an implementation constant (most likely 384 or 512 bits).
Keysizeする、一時的な「ログイン」か「委譲」キーのサイズを指定します。 本当の実装では、それは実装定数(たぶん384ビットか512ビット)であると予想されます。
Expiration sets a lifetime for the credentials created. For a normal login, this is likely to be an implementation constant on the order of 8-72 hours. Some mechanism for overriding it must be provided to make it possible (for example) to submit a background job that might run days or even months after they are submitted.
資格証明書のための寿命が創設した満了セット。 通常のログインにおいて、これは8〜72時間の注文での実装定数である傾向があります。 (例えば)それらを提出した何カ月も後に稼働さえするかもしれないバックグラウンドジョブを提出するのを可能にするようにそれをくつがえすための何らかのメカニズムを提供しなければなりません。
TA_credentials are used if the encrypted credentials are protected by a login agent. If they are missing, the password will be less well protected from guessing attacks.
暗号化された資格証明書がログインエージェントによって保護されるなら、TA_資格証明書は使用されています。 それらがなくなると、パスワードは攻撃を推測するのからそれほどよくない保護されないでしょう。
This routine does not (as one might expect) securely authenticate the principal to the calling procedure. Since the password is used to obtain the principal's private key, this call will normally fail if the principal supplies an invalid password. A penetrator who has
このルーチンはしっかりと呼ぶ手順に主体を認証しません(人が予想するかもしれないように)。 パスワードが主体の秘密鍵を得るのに使用されるので、主体が無効のパスワードを提供すると、通常、この呼び出しは失敗するでしょう。 そうした針入度計
Kaufman [Page 56] RFC 1507 DASS September 1993
コーフマン[56ページ]RFC1507ダス1993年9月
compromised the naming service could plant fake encrypted credentials under any name and impersonate that name as far as this call is concerned. A caller that wishes to authenticate the user in addition to obtaining credentials to be able to act on the user's behalf should call Verify_principal_name (below) with the created credentials and the credentials of the calling process.
感染されて、この呼び出しに関する限り、名前付けサービスは、どんな名前の下でもにせの暗号化された資格証明書を植えて、その名前をまねるかもしれません。 ユーザの代理に影響できるように資格証明書を得ることに加えてユーザを認証したがっている訪問者は、作成された資格証明書と呼び出しプロセスの資格証明書でVerify_を主体_名前(below)と呼ぶべきです。
This routine constructs a credentials structure from information found in the naming service encrypted using the supplied password.
このルーチンは与えられたパスワードを使用することで暗号化された名前付けサービスで見つけられた情報から資格証明書構造を構成します。
a) If the encrypted credentials structure is protected with a login agent, retrieve the public key of the login agent:
a) 暗号化された資格証明書構造がログインエージェントと共に保護されるなら、ログインエージェントの公開鍵を検索してください:
1) If TA_credentials are available, use them in a call to Get_Pub_Keys to get the public key of the login agent (whose name is derived from the name of the principal by truncating the last element of the RDN and adding CSS=X509).
1) TA_資格証明書が利用可能であるなら、呼び出しにGet_Pub_キーズにそれらを使用して、ログインエージェント(名前は主体の名前からRDNの最後の要素に先端を切らせて、CSS=X509を加えることによって、得られる)の公開鍵を得てください。
2) If TA_credentials are not available, look up the public key of the login agent in the naming service.
2) TA_資格証明書が利用可能でないなら、名前付けサービスでログインエージェントの公開鍵を見上げてください。
Login agents limit and audit password guesses, and are important when passwords may not be well chosen (as when users are allowed to choose their own). To fully prevent the password guessing threat, principals may only log onto nodes that already have TA_credentials which can be used to authenticate the login agent. To support nodes which have no credentials of their own and to allow this procedure to support node initialization, it is possible to network login without TA credentials.
ログインエージェントは、パスワード推測を制限して、監査して、パスワードが適切でないときに、重要です(ユーザがそれら自身のを選ぶことができる時として)。 パスワード推測の脅威を完全に防ぐために、校長は既に、ログインエージェントを認証するのに使用できるTA_資格証明書を持っているノードにログオンするだけであるかもしれません。 それら自身の資格証明書を全く持っていないノードをサポートして、この手順がノード初期化をサポートするのを許容するために、それはTA資格証明書なしでネットワークログインに可能です。
A principal who logs into a node that lacks TA credentials is subject to the following subtle security threat: A penetrator who impersonates the naming service could post his own public key and address as those of the login agent. This procedure would then in the process of logging in reveal the the penetrator enough information for the penetrator to mount an unaudited password guessing attack against the principal's credentials.
TA資格証明書を欠いているノードにログインする元本は以下の微妙な軍事的脅威を受けることがあります: 名前付けサービスをまねる針入度計はログインエージェントのものとして彼自身の公開鍵とアドレスを掲示するかもしれません。 そして、ログインすることの途中にこの手順は針入度計が主体の資格証明書に対して攻撃を推測しながら非監査のパスワードを取り付けることができるくらいの針入度計情報を明らかにするでしょう。
b) Retrieve the encrypted credentials from the naming service or login agent. In the case of the login agent, the password is one-way hashed to produce proof of knowledge of the password and the hashed value is supplied to the login agent encrypted under its public key as part of the request.
b) 名前付けサービスかログインエージェントから暗号化された資格証明書を検索してください。 ログインエージェントの場合では、パスワードはパスワードに関する知識の生産物証拠に論じ尽くされた状態で一方向です、そして、要求の一部として公開鍵の下で暗号化されたログインエージェントに論じ尽くされた値を与えます。
c) Decrypt the encrypted credentials structure using a the supplied password. Verify that the decryption was successful
c) aを使用する資格証明書が構造化する暗号化に与えられたパスワードを解読してください。 復号化がうまくいったことを確かめてください。
Kaufman [Page 57] RFC 1507 DASS September 1993
コーフマン[57ページ]RFC1507ダス1993年9月
by verifying that the resulting structure can be parsed according the the ASN.1 rules for Encrypted_Credentials and that the two included primes when multiplied together produce the included modulus. If the decryption was unsuccessful then the routine returns the `Invalid password' error status. The decryption results in both the Private Key and the Public Key.
ASN.1規則Encrypted_Credentialsのために結果として起こる構造を分析できて、一緒に掛けられると2が盛りを含んでいたことを確かめることによって、含まれている係数を生産してください。 復号化が失敗していたなら、ルーチンは'無効のパスワード'エラー状況を返します。 復号化は兵士のKeyとPublic Keyの両方をもたらします。
d) Generate a public/private key pair for the Delegation Key, using the indicated keysize. Key size is likely to be an implementation constant rather than a supplied parameter, with likely values being 384 and 512 bits. Key sizes generally will have to increase over time as factoring technology and CPU speeds improve. Delegation keys can be relatively shorter than long term keys because DASS is designed so that compromise of the delegation key after it has expired does not result in a security compromise. An important advantage of making key size an implementation constant is that nodes can generate key pairs in advance, thus speeding up this procedure. Key generation is the most CPU intensive RSA procedure and could make login annoyingly slow.
d) Delegation Keyのために公衆/秘密鍵組を生成してください、そして、表示を使用するのはkeysizeされます。 主要なサイズは供給されたパラメタよりむしろ実装定数である傾向があります、384と512ビットであるありそうな値で。 一般に、主要なサイズは時間がたつにつれて技術を因数分解するとして増加しなければならないでしょう、そして、CPU速度は向上します。 期限が切れた後に委譲キーの感染がセキュリティ感染をもたらさないようにダスが設計されているので、委譲キーは長期キーより比較的短い場合があります。 主要なサイズを実装定数にする重要な利点はノードがあらかじめ主要な組を生成することができるということです、その結果、この手順を早くします。 キー生成は、最も多くのCPUの徹底的なRSA手順であり、ログインをうるさく遅くすることができました。
e) Construct a Login Ticket by signing with the user's private key a combination of the public key, a validity period constructed from the current time and the expiration passed in the call, and the principal UID found in the encrypted-key structure.
e) 暗号化されて主要な構造の公開鍵の組み合わせ、現在の時間から組み立てられた有効期間、呼び出しで通過された満了、およびUIDが見つけた主体とユーザの秘密鍵を契約するのによるLogin Ticketを組み立ててください。
f) Forget the user's private key.
f) ユーザの秘密鍵を忘れてください。
g) Retrieve from the naming service any trusted authority certificates stored with the user's entry. Discard any that are not signed by the user's public key and UID. An implementation in which the login node has credentials of its own may choose its trusted authority information instead of retrieving and verifying trusted authority certificates from the naming service. This will have a subtle effect on the security of the resulting system.
g) 名前付けサービスから、ユーザのエントリーで保存されたあらゆる信じられた権威証明書を検索してください。 ユーザの公開鍵とUIDによって署名されないいずれも捨ててください。 名前付けサービスからの信じられた権威証明書を検索して、確かめることの代わりにログインノードがそれ自身の資格証明書を持っている実装は信じられた権威情報を選ぶかもしれません。 これは結果として起こるシステムのセキュリティに微妙な影響を与えるでしょう。
h) Construct a credentials structure from:
h) 以下から資格証明書構造を構成してください。
1) Claimant credentials:
1) 主張者資格証明書:
(i) Name of the principal from calling parameter (ii) Login Ticket as constructed in (e) (iii)Delegation Private key as constructed in (d) (iv) Public key from the encrypted credentials structure
(i) 暗号化された資格証明書構造から(d)(iv)公開鍵で組み立てられるように(e)(iii)Delegation兵士で組み立てられるパラメタ(ii)ログインTicketが主要であると言うのからの主体の名前
2) No verifier credentials
2) 検証資格証明書がありません。
Kaufman [Page 58] RFC 1507 DASS September 1993
コーフマン[58ページ]RFC1507ダス1993年9月
3) Trusted Authorities: for the most recently signed trusted authority certificate (There is normally only one Trusted Authority Certificate. If there is more than one then an implementation may choose to maintain a list of all the valid keys. They should all refer to the same CA (UID and name).):
3) 当局は信じました: 最も最近署名している信じられた権威証明書のために(通常、1Trusted Authority Certificateしかありません。 1つ以上があれば、実装は、すべての有効なキーのリストを維持するのを選ぶかもしれません。 彼らが皆、同じカリフォルニアについて言及するべきである、(UIDと名前).):
(i) Name of the CA from the subject field of the certificate (ii) Public Key of the CA from the subject public key field (iii)UID of the CA from the subject UID field
(i) 対象のUID分野からのカリフォルニアの対象の公開鍵分野(iii)UIDからのカリフォルニアの証明書(ii)の公共のKeyの対象の分野からのカリフォルニアの名前
4) no remote node credentials
4) 遠隔ノード資格証明書がありません。
5) no local node credentials
5) 地方のノード資格証明書がありません。
6) no cached outgoing associations
6) キャッシュされた出発している協会がありません。
7) no cached incoming associations
7) キャッシュされた入って来る協会がありません。
3.9.2 Create Credentials
3.9.2 資格証明書を作成してください。
Create_credentials( --outputs Claimant_credentials Credentials)
_資格証明書を作成してください。(--、出力主張者_資格証明書資格証明書)
This routine creates an "empty" credentials structure. It is needed in the case of a user logging into a node and obtaining node oriented credentials but no global username credentials. Because the "combine_credentials" call wants to modify a set of user credentials rather than create a new set, this call is needed to produce the "shell" for combine_credentials to fill in.
このルーチンは「空」の資格証明書構造を作成します。 それがノードにログインしているユーザの場合で必要でした、そして、ノードを得る場合、資格証明書が適応しましたが、どんなグローバルなユーザ名資格証明書も適応しませんでした。 「コンバイン_資格証明書」呼び出しが新しいセットを創設するよりむしろ1セットのユーザ資格証明書を変更したがっているので、この呼び出しがコンバイン_資格証明書が記入する「シェル」を生産するのに必要です。
It is unlikely that any real implementation would support this function, but rather would have some functions which combine network_login, create_credentials, and combine_credentials in whatever ways are supported by that node.
むしろネットワーク_ログインを結合して、_資格証明書を作成して、_資格証明書を結合するいくつかの機能を持っているだろうというのを除いて、どんな本当の実装もそのノードによってサポートされるどんな方法でもこの機能をサポートするのは、ありそうもないです。
3.9.3 Combine Credentials
3.9.3 資格証明書を結合してください。
Combine_credentials( --inputs node_credentials Credentials, localusername String, --updated user_credentials Credentials)
_資格証明書を結合してください。(--入力ノード_資格証明書Credentials、localusername String--アップデートされたユーザ_資格証明書Credentials)
This routine is provided by implementations which support the notion of local node credentials. After the node has verified to its own
地方のノード資格証明書の概念をサポートする実装はこのルーチンを提供します。 ノードはそれ自身に確かめました。
Kaufman [Page 59] RFC 1507 DASS September 1993
コーフマン[59ページ]RFC1507ダス1993年9月
satisfaction that the user_credentials are entitled to access to a particular local account, this call adds node credential information to the user_credential structure. This function may be applied to user_credentials created by network_login, create_credentials, or accept_token.
ユーザ_資格証明書が特定のローカルのアカウントにアクセスする権利を与えられる満足、この呼び出しはユーザ_資格証明書構造にノード資格証明書情報を追加します。 この機能は、資格証明書がネットワーク_ログインで作成したユーザ_に適用されるか、_資格証明書を作成するか、または_トークンを受け入れるかもしれません。
a) Fill in the local node credentials substructure of user_credentials as follows:
a) 以下のユーザ_資格証明書のローカルのノード資格証明書基礎に記入してください:
1) Full name of the node: from Full name of the Principal in node_credentials
1) ノードのフルネーム: Full名(ノード_資格証明書におけるプリンシパル)から
2) Local username on the node: from proxy lookup
2) ノードに関するローカルのユーザ名: プロキシルックアップから
3) RSA private key of the node: from verifier credentials in node_credentials
3) ノードのRSA秘密鍵: ノード_資格証明書における検証資格証明書から
b) Optionally, change the trusted authorities to match the trusted authorities from the node credentials. This is an implementation option, done most likely as a performance optimization. The only case where this option is required is where no trusted authorities existed in the user credentials (because they were created by create_credentials of accept_token). Server credentials should generally keep their own trusted authorities.
b) 任意に、信じられた当局を変えて、ノード資格証明書から信じられた当局を合わせてください。 これはたぶんパフォーマンスの最適化として行われた実装オプションです。 このオプションが必要である唯一のケースがどんな信じられた当局もユーザ資格証明書で存在しなかったところである、(それらが作成されたので_資格証明書を作成してください、受諾、_トークン) 一般に、サーバ資格証明書はそれら自身の信じられた当局を維持するべきです。
It is likely that an implementation will choose not to replicate its node credentials in every credentials structure that it supports, but rather will maintain some sort of pointer to a single copy. This algorithm is stated as it is only for ease of specification.
実装は、それが支えるあらゆる資格証明書構造でノード資格証明書を模写するというわけではないのを選びますが、むしろただ一つのコピーにある種の指針を維持しそうでしょう。 それが仕様の容易さのためだけのものであるときに、このアルゴリズムは述べられます。
3.9.4 Initialize_server
3.9.4 _サーバを初期化してください。
initialize_server( --inputs Name Name, password String, TA_credentials Credentials, --optional --outputs Server_credentials Credentials)
_サーバを初期化してください。(--入力Name Name、パスワードString、TA_資格証明書Credentials(任意である)がServer_資格証明書Credentialsを出力する)
Somehow a server must get access to its credentials. One way is for the credentials to be stored in the naming service like user credentials encrypted under a service password. The service then needs to gain at startup time access to a service password. This may be easier to manage and is not insecure so long as the service password is well chosen. Alternately, the service needs some mechanism to gain access directly to its credentials. The credentials
どうにか、サーバは資格証明書に近づく手段を得なければなりません。 1つの方法は資格証明書がサービスパスワードの下で暗号化されたユーザ資格証明書のように名前付けサービスで保存されることです。 そして、サービスは、サービスパスワードへの始動時間アクセスで獲得する必要があります。 サービスパスワードが適切である限り、これは、管理するのが、より簡単であるかもしれなく、不安定ではありません。 交互に、サービスは、直接資格証明書へのアクセスを得るために何らかのメカニズムを必要とします。 資格証明書
Kaufman [Page 60] RFC 1507 DASS September 1993
コーフマン[60ページ]RFC1507ダス1993年9月
created by this call are intended to be very long lived. They do not time out, so a node or server might store them in Non-Volatile memory after "initial installation" rather than calling this routine at each "boot". These credentials are shared between all servers which use the same key. This routine works as follows:
これによって作成されて、非常に長い間呼び出しが送られることを意図します。 彼らがどんなタイムアウトもしないので、ノードかサーバが「初度施設」の後に各「ブーツ」にこのルーチンを呼ぶよりNon-揮発性メモリーにむしろそれらを保存するかもしれません。 これらの資格証明書は同じキーを使用するすべてのサーバの間で共有されます。 このルーチンは以下の通り働いています:
a) Retrieve from the naming service or login agent the encrypted credentials structure corresponding to the supplied name. See Network_login for a discussion of the use of TA_credentials and login agents.
a) 名前付けサービスかログインエージェントから、供給された名前に対応する暗号化された資格証明書構造を検索してください。 Network_がTA_資格証明書とログインエージェントの使用の議論のためにログインするのを見てください。
b) Decrypt that structure using a one-way hash of the supplied password. Verify that the decryption was successful. Verify that the public key in the structure matches the private key.
b) 与えられたパスワードの一方向ハッシュを使用して、その構造を解読してください。 復号化がうまくいったことを確かめてください。 構造の公開鍵が秘密鍵に合っていることを確かめてください。
c) Retrieve from the naming service any trusted authority certificates stored under the supplied name. Discard any which do not contain the UID from the encrypted credentials structure or are not signed by the key in the encrypted credentials structure.
c) 名前付けサービスから、供給された名前の下で保存されたあらゆる信じられた権威証明書を検索してください。 暗号化された資格証明書構造からUIDを含んでいないか、または暗号化された資格証明書構造のキーによって署名されないいずれも捨ててください。
d) Construct a credentials structure from:
d) 以下から資格証明書構造を構成してください。
1) Claimant credentials: (i) Name of the principal from the calling parameter (ii) UID of the principal from the encrypted-key structure (iii) No login ticket (iv) No login secret key
1) 主張者資格証明書: (i) 呼ぶパラメタ(ii)からの主体の名前 暗号化されて主要な構造(iii)からの主体のUID ログインチケットがありません(iv)。 いいえログイン秘密主要です。
2) Verifier credentials: (i) Server secret key from the encrypted-key structure
2) 検証資格証明書: (i) 暗号化されて主要な構造からのサーバ秘密鍵
3) Trusted Authorities: from the most recently signed Trusted Authority Certificate: (i) Name of CA from the Subject Name field (ii) UID of the CA from the Subject UID field (iii) Public Key of the CA from the Subject Public Key field
3) 当局は信じました: 最も最近署名しているTrusted Authority Certificateから: (i) Subject Name分野(ii)からのカリフォルニアの名前 Subject UID分野(iii)からのカリフォルニアのUID Subject Public Key分野からのカリフォルニアの公共のKey
4) no node credentials
4) ノード資格証明書がありません。
5) no cached outgoing associations
5) キャッシュされた出発している協会がありません。
6) no cached incoming associations
6) キャッシュされた入って来る協会がありません。
Kaufman [Page 61] RFC 1507 DASS September 1993
コーフマン[61ページ]RFC1507ダス1993年9月
3.9.5 Generate Server Ticket
3.9.5 サーバチケットを生成してください。
generate_server_ticket( --inputs expiration Time interval, --updated Server_credentials Credentials)
_がサーバ_チケットであると生成してください。(--入力満了Time間隔--アップデートされたServer_資格証明書Credentials)
Server credentials created by initialize_server can be used to accept incoming authentication tokens and can act as node_credentials for outgoing authentications, but cannot create user_credentials of their own. If a server initiates connections on its own behalf, it must have a ticket just like any other user might have. That ticket has limited lifetime and the right to act on behalf of the server can be delegated. The server cannot, however, delegate the right to receive connections intended for it. An implementation must come up with a policy for the expiration of server tickets and how long before expiration they are renewed. A likely policy is for this procedure to be implicitly called by Create_token if there is no current ticket present in the credentials. If so, this interface need not be exposed.
作成されたサーバ資格証明書は、_ノードとしての入って来る認証トークンを受け入れるのにおいて中古、そして、缶の条例が外向的な認証のための資格証明書であったかもしれないなら_サーバを初期化しますが、それら自身のユーザ_資格証明書を作成できません。 サーバがそれ自身に代わって接続を開始するなら、それはいかなる他のユーザもまさしく持っていたかもしれないようにチケットを持たなければなりません。 そのチケットは生涯を制限しました、そして、サーバを代表して行動する権利を代表として派遣することができます。 しかしながら、サーバはそれのために意図する接続を受ける権利を代表として派遣することができません。 実装はサーバチケットと満了のずっと前にそれらがどう更新されるかに関する満了のための方針を思いつかなければなりません。 ありそうな方針は資格証明書における現在のどんな当日券もなければこの手順がCreate_トークンによってそれとなく呼ばれることです。 そうだとすれば、このインタフェースは暴露される必要はありません。
This routine is implemented as follows:
このルーチンは以下の通り実装されます:
a) Generate an RSA public/private key pair.
a) RSA公衆/秘密鍵組を生成してください。
b) Compute a validity interval from the current time and the expiration supplied.
b) 現在の時間と供給された満了からの正当性間隔を計算してください。
c) Construct a login ticket from the RSA public key (from a), validity interval (from b), the UID from the credentials, and signed with the server key in the credentials. (Discard previous Login Ticket if there was one).
c) RSA公開鍵からログインチケットを組み立ててください。(資格証明書における資格証明書の、そして、サーバで署名されたキーからのa)、正当性間隔(bからの)、UIDから。 (1つがあったなら、前のLogin Ticketを捨てます。)
d) Discard all information in the Cached Outgoing Contexts.
d) Cached Outgoing Contextsのすべての情報を捨ててください。
3.9.6 Delete Credentials
3.9.6 資格証明書を削除してください。
delete_credentials( --updated credentials Credentials)
_資格証明書を削除してください。(--、アップデートされた資格証明書Credentials)
Erases the secrets in the credentials structure and deallocates the storage.
資格証明書構造で秘密を消して、ストレージを「反-割り当て」ます。
Kaufman [Page 62] RFC 1507 DASS September 1993
コーフマン[62ページ]RFC1507ダス1993年9月
3.10 Authentication Procedures
3.10 認証手順
The guts of the authentication process takes place in the next two calls. When one principal wishes to authenticate to another, it calls Create_token and sends the token which results to the other. The recipient calls Accept_token and creates a new set of credentials. The other calls in this section manipulate the received credentials in order to retrieve its contents and verify the identity of the token creator.
認証過程の腸は次の2つの呼び出しで行われます。 1つの主体であるときに、別のものに認証する願望であり、それは、Createを_トークンと呼んで、もう片方に結果として生じるトークンを送ります。 受取人は、Acceptを_トークンと呼んで、新しいセットの資格証明書を作成します。 このセクションでの他の呼び出しは、コンテンツを検索するために容認された資格証明書を操って、トークンクリエイターのアイデンティティについて確かめます。
3.10.1 Create Token
3.10.1 トークンを作成してください。
Create_token( --inputs target_name Name, deleg_req_flag Boolean, mutual_req_flag Boolean, replay_det_req_flag Boolean, sequence_req_flag Boolean, chan_bindings Octet String, Include_principal_name Boolean, Include_node_name Boolean, Include_username Boolean, --updated claimant_credentials Credentials, --outputs authentication_token Authentication token, mutual_authentication_token Mutual Authentication token, Shared_key Shared Key, instance_identifier Timestamp)
_トークンを作成してください。(--入力目標_名のName(Include_主体_名のブールの、そして、Include_ノード_名のブールの、そして、Include_ユーザ名ブールのdeleg_req_旗のブールの、そして、互いの_req_旗のブールの、そして、再生_det_req_旗のブールの、そして、系列_req_旗のブールのchan_結合Octet String(アップデートされた主張者_資格証明書Credentials))は認証_トークンAuthenticationトークンを出力します、互いの_認証_トークンMutual Authenticationトークン、_の主要なShared Shared Key、インスタンス_識別子Timestamp)
This routine is used by the initiator of a connection to create an authentication token which will prove its identity. If the claimant credentials includes node/account information, the token will include node authentication.
このルーチンは、アイデンティティを立証する認証トークンを作成するのに接続の創始者によって使用されます。 主張者資格証明書がノード/会計情報を含んでいると、トークンはノード認証を含むでしょう。
target_name is the X.500 name of the intended recipient of the token. Only an entity with access to the private key associated with that name will be able to verify the created token and generate the mutual_authentication_token.
目標_名前はトークンの意図している受取人のX.500名です。 その名前に関連している秘密鍵へのアクセスがある実体だけが、作成されたトークンについて確かめて、互いの_認証_トークンを生成することができるでしょう。
deleg_req_flag indicates whether the caller wishes to delegate to the recipient of the token. If it is set, the delegated_credentials returned by Accept_token will be capable of generating tokens on behalf of the caller. Node based authentication information cannot be delegated. The mutual_req_flag, replay_det_req_flag , and sequence_req_flag are put in the authentication token and passed to
deleg_req_旗は、訪問者がトークンの受取人に委任したがっているかどうかを示します。 それが設定されると、Accept_トークンによって返された代表として派遣された_資格証明書は訪問者を代表してトークンを生成することができるでしょう。 ノードに基づいている認証情報を代表として派遣することができません。 互いの_req_旗、再生_det_req_旗、および系列_req_旗に認証トークンに入れられて、通過されます。
Kaufman [Page 63] RFC 1507 DASS September 1993
コーフマン[63ページ]RFC1507ダス1993年9月
the target. This information is included in the token to make it easier to implement the GSSAPI over DASS. DASS itself makes no use of this information.
目標。 この情報は、ダスの上でGSSAPIを実装するのをより簡単にするようにトークンに含まれています。 ダス自身はこの情報の無駄をします。
In most applications, the purpose of a token exchange is to authenticate the principals controlling the two ends of a communication channel. chan_bindings contains an identifier of the channel which is being authenticated, and thus its format and content should be tied to the underlying communication protocol. DASS only guarantees that the information has been communicated reliably to the named target. If DASS is used with a cryptographically protected channel (such as SP4), this data should contain a one-way hash of the key used to encrypt the channel. If that channel is multiplexed, the data should also include the ID of the subchannel. If the channel is not encrypted, the network must be trusted not to modify data on a connection. The source and target network addresses and a connection ID should be included in the chan_bindings at the source and checked at the target. A token exchange also results in the two ends sharing a key and an instance identifier. If that key and instance identifier are used to cryptographically protect subsequent communications, then chan_bindings need not have any cryptographic significance but may be used to differentiate multiple entities sharing the public keys of communicating principals. For example, if a service is replicated and all replicas share a public key, chan_bindings should include something that identifies a single instance of the service (such as current address) so that the token cannot be successfully presented to more than one of the servers.
ほとんどのアプリケーションでは、トークン交換の目的は通信チャネルchan_結合の2つの終わりを制御する校長を認証するのが認証されているチャンネルに関する識別子を含んでいて、その結果、その形式と内容が基本的な通信プロトコルに結ばれるべきであるということです。 ダスは、情報が命名された目標に確かに伝えられたのを保証するだけです。 暗号で保護されたチャンネル(SP4などの)でダスが使用されるなら、このデータはチャンネルを暗号化するのに使用されるキーの一方向ハッシュを含むべきです。 また、そのチャンネルを多重送信するなら、データはサブチャネルのIDを含むべきです。 チャンネルが暗号化されていないなら、接続に関するデータを変更しないとネットワークを信じなければなりません。 ソース、目標ネットワーク・アドレス、および接続IDは、ソースにchan_結合に含まれていて、目標でチェックされるべきです。 また、トークン交換は、キーとインスタンス識別子を共有しながら、2つの終わりをもたらします。 そのキーとインスタンス識別子が暗号でその後のコミュニケーションを保護するのに使用されるなら、chan_結合は、少しの暗号の意味も持つ必要はありませんが、交信主体の公開鍵を共有する複数の実体を差別化するのに使用されるかもしれません。 例えば、サービスが模写されて、すべてのレプリカが公開鍵を共有するなら、chan_結合は首尾よくサーバの1つ以上にトークンを提示できないようにただ一つのサービス(現在のアドレスなどの)のインスタンスを特定する何かを含むべきです。
include_principal_name, include_node_name, and include_username are flags which determine whether the principal name, node name, and/or username from the credentials structure are to be included in the token. This information is made optional in a token so that applications which communicate this information out of band can produce "compressed" tokens. If this information is included in the token, it will be used to populate the corresponding fields in the credentials structure created by Accept_token. claimant_credentials are the credentials of the calling procedure. The secrets contained therein are used to sign the token and the trusted authorities are used to securely learn the public key of the target. The cached outgoing contexts portion of the credentials may be updated as a side effect of this call.
インクルード_主体_名、インクルード_ノード_名、およびインクルード_ユーザ名が旗である、どれ、構造がある資格証明書からの主要な名前、ノード名、そして/または、ユーザ名が含まれているか否かに関係なく、トークンで決定するか。 バンドからこの情報を伝えるアプリケーションが「圧縮された」トークンを生産できるように、この情報をトークンで任意にします。 この情報がトークンに含まれていると、それは、Accept_トークンによって作成された資格証明書構造で対応する分野に居住するのに使用されるでしょう。主張者_資格証明書は呼ぶ手順の資格証明書です。 そこに含まれた秘密はトークンに署名するのに使用されます、そして、信じられた当局は、しっかりと目標の公開鍵を学ぶのに使用されます。 この呼び出しの副作用として資格証明書のキャッシュされた外向的な文脈部分をアップデートするかもしれません。
The major output of this routine is an authentication_token which can be passed to the target in order to authenticate the caller.
このルーチンの主要な出力は訪問者を認証するために目標に通過できる認証_トークンです。
In addition to returning an authentication token, this routine returns a mutual_authentication_token, a shared_key, and an instance_identifier. The mutual authentication token is the same as
認証トークンを返すことに加えて、このルーチンは互いの_認証_トークン、共有された_キー、およびインスタンス_識別子を返します。 トークンが同じである互いの認証
Kaufman [Page 64] RFC 1507 DASS September 1993
コーフマン[64ページ]RFC1507ダス1993年9月
the one generated by the Accept_token call at the target. If the protocol using DASS wishes mutual authentication, the target should return this token to the source. The source will compare it to the one returned by this routine using Compare_Mutual_Token (below) and know that the token was accepted at its proper destination.
the one generated by the Accept_token call at the target. If the protocol using DASS wishes mutual authentication, the target should return this token to the source. The source will compare it to the one returned by this routine using Compare_Mutual_Token (below) and know that the token was accepted at its proper destination.
The DES key and instance identifier can be used to encrypt or sign data to be sent to this target. The key and instance will be given to the target by Accept_token, and the key will only be known by the two parties to the authentication. If a single set of credentials is used to authenticate to the same target more than once, the same DES key is likely to be returned each time. If the parties wish to protect against the possibility of an outside agent mixing and matching messages from one authenticated session with those of another, they should include the instance identifier in the messages. The instance identifier is a timestamp and it is guaranteed that the DES key/instance identifier pair will be unique.
The DES key and instance identifier can be used to encrypt or sign data to be sent to this target. The key and instance will be given to the target by Accept_token, and the key will only be known by the two parties to the authentication. If a single set of credentials is used to authenticate to the same target more than once, the same DES key is likely to be returned each time. If the parties wish to protect against the possibility of an outside agent mixing and matching messages from one authenticated session with those of another, they should include the instance identifier in the messages. The instance identifier is a timestamp and it is guaranteed that the DES key/instance identifier pair will be unique.
An implementation may wish to "hide" the DES key from calling applications by placing it in system storage and providing calls which encrypt/decrypt/sign/verify using the key.
An implementation may wish to "hide" the DES key from calling applications by placing it in system storage and providing calls which encrypt/decrypt/sign/verify using the key.
The primary tasks of this routine are to create its output parameters. As a side effect, it may also update claimant_credentials It's algorithm is as follows:
The primary tasks of this routine are to create its output parameters. As a side effect, it may also update claimant_credentials It's algorithm is as follows:
a) The login ticket is checked. If it has passed the end of its lifetime an `Login Ticket Expired' error is returned. If there is a login ticket, but no corresponding private key then an `Invalid credentials' error is returned (this is the case if the credentials were created by an authentication-without- delegation operation). If there is no login ticket or an expired one and if the long term private key is present in the credentials, an implementation may choose to automatically call create_server_ticket to renew the ticket.
a) The login ticket is checked. If it has passed the end of its lifetime an `Login Ticket Expired' error is returned. If there is a login ticket, but no corresponding private key then an `Invalid credentials' error is returned (this is the case if the credentials were created by an authentication-without- delegation operation). If there is no login ticket or an expired one and if the long term private key is present in the credentials, an implementation may choose to automatically call create_server_ticket to renew the ticket.
b) Create new timestamp using the current time. (This timestamp must be unique for this Shared Key. The timestamp is a 64 bit POSIX time, with a resolution of 1 nanosecond An implemen tation must ensure that timestamps cannot be reused.)
b) Create new timestamp using the current time. (This timestamp must be unique for this Shared Key. The timestamp is a 64 bit POSIX time, with a resolution of 1 nanosecond An implemen tation must ensure that timestamps cannot be reused.)
c) The public key and UID of target_name are looked up by calling get_pub_keys, using the target_name and the Trusted Authority section of the claimant_credentials structure. If none is found, an error status is returned. Otherwise, the cached outbound connections portion of credentials are searched (indexed by target Public Key) for a cached Shared key with a validity interval which has not expired. If a suitable one is
c) The public key and UID of target_name are looked up by calling get_pub_keys, using the target_name and the Trusted Authority section of the claimant_credentials structure. If none is found, an error status is returned. Otherwise, the cached outbound connections portion of credentials are searched (indexed by target Public Key) for a cached Shared key with a validity interval which has not expired. If a suitable one is
Kaufman [Page 65] RFC 1507 DASS September 1993
Kaufman [Page 65] RFC 1507 DASS September 1993
found skip to step g, else create a cache entry as follows:
found skip to step g, else create a cache entry as follows:
d) Destination Public Key is the one found looking up the target. A Shared Key is generated at random. A validity interval is chosen according to node policy but not to exceed the validity interval of the ticket in the credentials (if any).
d) Destination Public Key is the one found looking up the target. A Shared Key is generated at random. A validity interval is chosen according to node policy but not to exceed the validity interval of the ticket in the credentials (if any).
e) Create the Encrypted Shared Key, using the public key of the Target, and place in the cache.
e) Create the Encrypted Shared Key, using the public key of the Target, and place in the cache.
f) If node authentication credentials are available in the credentials structure, create a "Node Ticket" signature using the node secret and include it in the cache.
f) If node authentication credentials are available in the credentials structure, create a "Node Ticket" signature using the node secret and include it in the cache.
g) If delegation is requested and no delegator is present in the cache, create one by encrypting the delegation private key under the Shared key. The delegation private key is represented as an ASN.1 data structure containing only one of the primes (p).
g) If delegation is requested and no delegator is present in the cache, create one by encrypting the delegation private key under the Shared key. The delegation private key is represented as an ASN.1 data structure containing only one of the primes (p).
h) If delegation is not requested and no Shared Key Ticket is in the cache, create one by signing the requisite information with the delegation private key.
h) If delegation is not requested and no Shared Key Ticket is in the cache, create one by signing the requisite information with the delegation private key.
i) Create the Authenticator. The contents of the Authenticator (including the channel bindings) are encoded into ASN.1, and the signature is computed. The Authenticator is then re-encoded, without including the Channel Bindings but using the same signature.
i) Create the Authenticator. The contents of the Authenticator (including the channel bindings) are encoded into ASN.1, and the signature is computed. The Authenticator is then re-encoded, without including the Channel Bindings but using the same signature.
j) Create output_token as follows: 1) Encrypted Shared Key from cache 2) Login Ticket from Claimant Credentials (if present) 3) Shared Key Ticket from cache (if no delegation and if present) 4) Node Ticket from cache (if present) 5) Delegator from cache (if delegation and if present) 6) Authenticator 7) Principal name from credentials (if present and parameter requests this) 8) Node name from credentials (if present and parameter request this) 9) Local Username from credentials (if present and parameter requests this)
j) Create output_token as follows: 1) Encrypted Shared Key from cache 2) Login Ticket from Claimant Credentials (if present) 3) Shared Key Ticket from cache (if no delegation and if present) 4) Node Ticket from cache (if present) 5) Delegator from cache (if delegation and if present) 6) Authenticator 7) Principal name from credentials (if present and parameter requests this) 8) Node name from credentials (if present and parameter request this) 9) Local Username from credentials (if present and parameter requests this)
k) Compute Mutual_authentication_token by encrypting the timestamp from the authenticator using the Shared key.
k) Compute Mutual_authentication_token by encrypting the timestamp from the authenticator using the Shared key.
Kaufman [Page 66] RFC 1507 DASS September 1993
Kaufman [Page 66] RFC 1507 DASS September 1993
l) The instance_identifier is the timestamp. This and the Shared key are returned for use by the caller for further encryption operations (if these are supported).
l) The instance_identifier is the timestamp. This and the Shared key are returned for use by the caller for further encryption operations (if these are supported).
3.10.2 Accept_token
3.10.2 Accept_token
Accept_token( --inputs authentication_token Authentication Token, chan_bindings Octet String, --updated verifying_credentials Credentials, --outputs accepted_credentials Credentials, deleg_req_flag Boolean, mutual_req_flag Boolean, replay_det_req_flag Boolean, sequence_req_flag Boolean, mutual_authentication_token Mutual authentication token shared_key Shared Key, instance_identifier Timestamp)
Accept_token( --inputs authentication_token Authentication Token, chan_bindings Octet String, --updated verifying_credentials Credentials, --outputs accepted_credentials Credentials, deleg_req_flag Boolean, mutual_req_flag Boolean, replay_det_req_flag Boolean, sequence_req_flag Boolean, mutual_authentication_token Mutual authentication token shared_key Shared Key, instance_identifier Timestamp)
This routine is used by the recipient of an authentication token to validate it. authentication_token is the token as received; chan_bindings is the identifier of the channel being authenticated. See the description of Create_token for information on the appropriate contents for chan_bindings. DASS does not enforce any particular content, but checks to assure that the same value is supplied to both Create_token and Accept_token.
This routine is used by the recipient of an authentication token to validate it. authentication_token is the token as received; chan_bindings is the identifier of the channel being authenticated. See the description of Create_token for information on the appropriate contents for chan_bindings. DASS does not enforce any particular content, but checks to assure that the same value is supplied to both Create_token and Accept_token.
Verifying_credentials are the credentials of the recipient of the token. They must include the private key of the entity named as the target in Create_token or the call will fail. The cached incoming contexts section of the verifying credentials may be modified as a side effect of this call.
Verifying_credentials are the credentials of the recipient of the token. They must include the private key of the entity named as the target in Create_token or the call will fail. The cached incoming contexts section of the verifying credentials may be modified as a side effect of this call.
Accepted_credentials will contain additional information about the token creator. If delegation was requested, these credentials can be used to make additional calls to Create_token on the creator's behalf. Whether or not delegation was requested, they can also be used in the calls which follow to gain additional information about the token creator.
Accepted_credentials will contain additional information about the token creator. If delegation was requested, these credentials can be used to make additional calls to Create_token on the creator's behalf. Whether or not delegation was requested, they can also be used in the calls which follow to gain additional information about the token creator.
The deleg_req_flag indicates whether the accepted_credentials include delegation which can be used by the recipient to act on behalf of the principal. Mutual_req_flag, replay_det_req_flag, and sequence_req_flag are passed through from Create_token in support of
The deleg_req_flag indicates whether the accepted_credentials include delegation which can be used by the recipient to act on behalf of the principal. Mutual_req_flag, replay_det_req_flag, and sequence_req_flag are passed through from Create_token in support of
Kaufman [Page 67] RFC 1507 DASS September 1993
Kaufman [Page 67] RFC 1507 DASS September 1993
the GSSAPI. DASS makes no use of these fields.
the GSSAPI. DASS makes no use of these fields.
The mutual_authentication_token can be returned to the token creator as proof of receipt. In many protocols, this will be used by a client to authenticate a server. Only the genuine server would be able to compute the mutual_authentication_token from the token.
The mutual_authentication_token can be returned to the token creator as proof of receipt. In many protocols, this will be used by a client to authenticate a server. Only the genuine server would be able to compute the mutual_authentication_token from the token.
The shared_key and instance_identifier can be used to encrypt or sign data between the two authenticating parties. See Create_token.
The shared_key and instance_identifier can be used to encrypt or sign data between the two authenticating parties. See Create_token.
This routine verifies the contents of the authentication token in the context of the verifying credentials (In particular, the Private Key of the server is used. Also, the Cached Incoming Contexts and Incoming Timestamp list is used.) and returns information about it. The algorithm updates a cache of information. This cache is not updated if the algorithm exits with an error. The algorithm is as follows:
This routine verifies the contents of the authentication token in the context of the verifying credentials (In particular, the Private Key of the server is used. Also, the Cached Incoming Contexts and Incoming Timestamp list is used.) and returns information about it. The algorithm updates a cache of information. This cache is not updated if the algorithm exits with an error. The algorithm is as follows:
a) If there is a Login Ticket, but no Shared Key Ticket or Delegator then exit with error `Invalid Authenticator'. If there is a Shared Key Ticket or Delegator, but no Login Ticket then exit with error `Invalid Authentication Token'.
a) If there is a Login Ticket, but no Shared Key Ticket or Delegator then exit with error `Invalid Authenticator'. If there is a Shared Key Ticket or Delegator, but no Login Ticket then exit with error `Invalid Authentication Token'.
Look up the Encrypted Shared key in the Cached Incoming Contexts of the credentials structure. (This cache entry is used during the execution of this routine. An implementation must ensure that references to the cache entry can not be affected by other users modifying the cache. One way is to use a copy of the cache entry, and update it at exit.) If it is not found then create a new cache entry as follows:
Look up the Encrypted Shared key in the Cached Incoming Contexts of the credentials structure. (This cache entry is used during the execution of this routine. An implementation must ensure that references to the cache entry can not be affected by other users modifying the cache. One way is to use a copy of the cache entry, and update it at exit.) If it is not found then create a new cache entry as follows:
1) Encrypted Shared Key, from the Authentication Token.
1) Encrypted Shared Key, from the Authentication Token.
2) Shared Key and Validity Interval, by decrypting the Encrypted Shared Key using the server private key in credentials. If the decryption fails then exit with error `Invalid Authentication Token'.
2) Shared Key and Validity Interval, by decrypting the Encrypted Shared Key using the server private key in credentials. If the decryption fails then exit with error `Invalid Authentication Token'.
b) Check that the Validity Interval (in the cache entry) includes the current time; return `Invalid Authentication Token' if not.
b) Check that the Validity Interval (in the cache entry) includes the current time; return `Invalid Authentication Token' if not.
Check the Timestamp is within max-clock-skew of the current time, return `invalid Authentication Token' if not.
Check the Timestamp is within max-clock-skew of the current time, return `invalid Authentication Token' if not.
Reconstruct the Authenticator including the Channel Bindings passed as a parameter.
Reconstruct the Authenticator including the Channel Bindings passed as a parameter.
Kaufman [Page 68] RFC 1507 DASS September 1993
Kaufman [Page 68] RFC 1507 DASS September 1993
Check that the reconstructed Authenticator is signed by the Shared key. If not then exit with error `Invalid Authentication Token'.
Check that the reconstructed Authenticator is signed by the Shared key. If not then exit with error `Invalid Authentication Token'.
Look up the Authenticator Signature in the Received Authenticators. If the same Signature is found in the list then exit with error `Duplicate Authenticator'. Otherwise add the Signature and timestamp to the list.
Look up the Authenticator Signature in the Received Authenticators. If the same Signature is found in the list then exit with error `Duplicate Authenticator'. Otherwise add the Signature and timestamp to the list.
If there is a Login Ticket and the Delegation Public key is in the cache entry, then check that the same key is specified in the Login Ticket, if not then exit with error `Invalid Authentication Token'. Place the Delegation Public key in the cache if it is not already there.
If there is a Login Ticket and the Delegation Public key is in the cache entry, then check that the same key is specified in the Login Ticket, if not then exit with error `Invalid Authentication Token'. Place the Delegation Public key in the cache if it is not already there.
If there is a Login Ticket, the Delegation Public key was not previously in the cache entry, and there is a Shared Key Ticket in the Authentication Token, then check that the Shared Key Ticket is signed by the Delegation Public Key in the Login Ticket. If not then exit with error `Invalid Authentication Token'.
If there is a Login Ticket, the Delegation Public key was not previously in the cache entry, and there is a Shared Key Ticket in the Authentication Token, then check that the Shared Key Ticket is signed by the Delegation Public Key in the Login Ticket. If not then exit with error `Invalid Authentication Token'.
If a delegator is present in the message then decrypt the delegator using the Shared key. If the private key does not match the Delegation Public key then exit with error `Invalid Authentication Token' (The prime in the delegator is used to find the other prime (from the modulus). The division must not have a remainder. Neither prime may be 1. The two primes are then used to reconstruct any other information needed to perform cryptographic operations.).
If a delegator is present in the message then decrypt the delegator using the Shared key. If the private key does not match the Delegation Public key then exit with error `Invalid Authentication Token' (The prime in the delegator is used to find the other prime (from the modulus). The division must not have a remainder. Neither prime may be 1. The two primes are then used to reconstruct any other information needed to perform cryptographic operations.).
Build the delegation credentials data structure as follows:
Build the delegation credentials data structure as follows:
1) Claimant credentials: (i) Login Ticket from the Authentication token (ii) Delegation Private key from the decrypted delegator if the token is delegating. (iii)Encrypted Shared Key from the Authentication token. 2) There are no verifier credentials. 3) Trusted authorities are copied from the verifying_credentials passed to this routine (If an implementation is able to obtain the original Trusted Authorities of the Principal then it may do so instead of using the server's Trusted Authorities.). 4) Remote node credentials (Node name, Username, Node Ticket) 5) There are no local node credentials. 6) There are no cached contexts.
1) Claimant credentials: (i) Login Ticket from the Authentication token (ii) Delegation Private key from the decrypted delegator if the token is delegating. (iii)Encrypted Shared Key from the Authentication token. 2) There are no verifier credentials. 3) Trusted authorities are copied from the verifying_credentials passed to this routine (If an implementation is able to obtain the original Trusted Authorities of the Principal then it may do so instead of using the server's Trusted Authorities.). 4) Remote node credentials (Node name, Username, Node Ticket) 5) There are no local node credentials. 6) There are no cached contexts.
Kaufman [Page 69] RFC 1507 DASS September 1993
Kaufman [Page 69] RFC 1507 DASS September 1993
c) The returned boolean values are obtained from the Authenticator.
c) The returned boolean values are obtained from the Authenticator.
d) Mutual_authentication_token is computed by encrypting the timestamp from the Authenticator with the Shared key from the cache.
d) Mutual_authentication_token is computed by encrypting the timestamp from the Authenticator with the Shared key from the cache.
e) Instance_identifier is the timestamp from the Authenticator. This and the Shared key are returned to the caller for further encryption operations (if these are supported).
e) Instance_identifier is the timestamp from the Authenticator. This and the Shared key are returned to the caller for further encryption operations (if these are supported).
3.10.3 Compare Mutual Token
3.10.3 Compare Mutual Token
Compare_mutual_token( --inputs Generated_token Mutual authentication token, Received_token Mutual authentication token, --outputs equality_flag Boolean)
Compare_mutual_token( --inputs Generated_token Mutual authentication token, Received_token Mutual authentication token, --outputs equality_flag Boolean)
This routine compares two mutual authentication tokens and tells whether they match. In the expected use, the first is the token generated by Create_token at the initiating end and the second is the token generated by Accept_token at the accepting end and returned to the initiating end. This routine can be implemented as a byte by byte comparison of the two parameters.
This routine compares two mutual authentication tokens and tells whether they match. In the expected use, the first is the token generated by Create_token at the initiating end and the second is the token generated by Accept_token at the accepting end and returned to the initiating end. This routine can be implemented as a byte by byte comparison of the two parameters.
3.10.4 Get Node Info
3.10.4 Get Node Info
get_node_info( --inputs accepted_credentials Credentials, --outputs nodename Name, username String)
get_node_info( --inputs accepted_credentials Credentials, --outputs nodename Name, username String)
This routine extracts from accepted credentials the name of the node from which the authentication token came and the named account on that node. Because this information is not cryptographically protected within the token, this information can only be regarded as a "hint" by the receiving application. It can, however, be verified using Verify_node_name in a cryptographically secure manner. This information will only be present if these are accepted credentials and it the caller of Create_token set the include_node_name and/or include_username flags.
このルーチンはそのノードで受け入れられた信任状から認証象徴が来たノードの名前と命名されたアカウントを抜粋します。 この情報が象徴の中に暗号で保護されないので、受信アプリケーションでこの情報を「ヒント」と見なすことができるだけです。 それは保証できて、しかしながら、確かめられた使用がaのVerify_ノード_名であったなら暗号で方法を保証してください。 この情報はこれらが受け入れられた信任状であり、それがインクルード_ノード_名、そして/または、インクルード_ユーザ名が旗を揚げさせるCreate_象徴セットの訪問者である場合にだけ存在するでしょう。
An actual implementation is not likely to have get_node_info and verify_node_name as separate calls. They are specified this way
実際の実現は_ノード_インフォメーションを得て、電話することを別々の_ノード_名前について確かめるのを持っていそうにはありません。 それらはこのように指定されます。
Kaufman [Page 70] RFC 1507 DASS September 1993
コーフマン[70ページ]RFC1507ダス1993年9月
because there are different ways this information might be used. For most applications, the nodename and username will be included in the token, and a single function might extract and verify them (it might in fact be part of accept token). For other applications, the nodename and username will not be in the token but rather will be computed from other information passed during connection initiation so a call would have to take these as inputs. Still other applications such as ACL evaluators that want to support the renaming and aliasing capabilities of DASS would defer verifying node information until they came upon an ACL which allowed access only from a particular node. They would then verify that the name on the ACL was an authenticatable alias for the node which created the token. All of these uses can be defined in terms of calls to get_node_info and verify_node_name.
異なった道があるので、この情報は使用されるかもしれません。 ほとんどのアプリケーションにおいて、nodenameとユーザ名が象徴に含まれて、ただ一つの機能がそれらを抽出して、確かめるかもしれない、(事実上、それが部分であるかもしれない、受諾、象徴) 他のアプリケーションにおいて、nodenameとユーザ名が象徴にありませんが、接続開始の間に通過された他の情報からむしろ計算されるので、呼び出しは入力としてこれらをみなさなければならないでしょう。 特定のノードだけからアクセスを許したACLに出くわすまでノード情報について確かめながらダスの能力が延期する改名とエイリアシングを支持したがっているACL評価者などのまだ他のアプリケーション。 そして、彼らは、ACLの上の名前が通称象徴を作成したノードのための認証可能であったことを確かめるでしょう。 _ノード_インフォメーションを得て、_ノード_名前について確かめるという要求でこれらの用途のすべてを定義できます。
3.10.5 Get Principal UID
3.10.5 UID校長を手に入れてください。
get_principal_uid( --inputs accepted_credentials Credentials, --outputs uid UID)
_校長_uidを手に入れてください。(--入力は_信任状Credentialsを受け入れました--uid UIDを出力する)
This routine extracts a principal UID from a set of credentials.
このルーチンは1セットの信任状からUID校長を抽出します。
As with Get_Node_Info, this interface is not likely to appear in an actual implementation, but rather will be bundled with other routines. It is specified this way because there might be a variety of algorithms by which credentials are evaluated and all of them can be defined in terms of these primitives.
Get_Node_Infoの場合、このインタフェースは、実際の実現では現れそうではありませんが、他のルーチンでむしろ束ねられるでしょう。 信任状を評価して、これらの基関数でそれらのすべてを定義できるさまざまなアルゴリズムがあるかもしれないので、それはこのように指定されます。
In DASS, it is possible for a principal to have many aliases. This can happen either because the principal was given multiple names to limit the number of CAs that need to be trusted when authenticating to different servers or because the principal's name has changed and the old name remains behind as an alias. Accept_token returns the name by which the principal identified itself when creating its credentials. A service may know the user by some alias. The normal way to handle this is for the service to know the principal's UID (which is constant over name changes) and to compare it with the UID in the token to identify a likely alias situation. It gets the UID from the token using this routine. It then confirms the alias by calling verify_principal_name.
ダスでは、元本には多くの別名があるのは、可能です。 異なったサーバに認証するとき、信じられる必要があるCAsの数を制限するために複数の名前を校長に与えたか、校長の名前が変化して、または旧名が別名として後ろにいるので、これは起こることができます。 象徴が信任状を作成するとき校長が身元を明らかにした名前を返す_を受け入れてください。 サービスは何らかの別名でユーザを知るかもしれません。 これを扱う正常な方法は、サービスが校長のUID(改名の上で一定である)を知って、ありそうな別名状況を特定するために象徴でUIDとそれを比べることです。 それは、象徴からこのルーチンを使用することでUIDを手に入れます。 そして、それは、呼ぶのによる別名が_校長_名前について確かめると確認します。
The UID is in a signed portion of accepted credentials, but the signature may not have been verified at the time this call is issued. The information returned by this routine must therefore be regarded as a hint. If a call to Verify_principal_name succeeds, however,
UIDが受け入れられた信任状のサインされた部分にありますが、この呼び出しが発行されるとき、署名は確かめられていないかもしれません。 したがって、このルーチンで返された情報をヒントと見なさなければなりません。 しかしながら、Verify_校長_名への呼び出しが成功するなら
Kaufman [Page 71] RFC 1507 DASS September 1993
コーフマン[71ページ]RFC1507ダス1993年9月
then the caller can securely know that the name given to that routine and the UID returned by this one are the authenticated source of the token.
そして、訪問者は、そのルーチンに与えられた名前とこれによって返されたUIDが象徴の認証された源であることをしっかりと知ることができます。
3.10.6 Get Principal Name
3.10.6 主要な名前を得てください。
get_principal_name( --inputs accepted_credentials Credentials, --outputs name Name)
_校長_名前を得てください。(--入力は_信任状Credentialsを受け入れました--出力がNameを命名する)
This routine extracts a principal name from a set of credentials. This name is the name most recently associated with the principal. It may be the name that the principal supplied when the credentials were created (in which case it may not have been verified yet) or it may be a different name that has been verified.
このルーチンは1セットの信任状から主要な名前を抜粋します。 この名前はごく最近という校長に関連している名前です。 確かめられたのは、信任状が作成されたか(その場合、それはまだ確かめられていないかもしれません)、それが異なった名前であるときに校長が提供した名前であるかもしれません。
As with Get_Node_Info and Get_Principal_UID, this routine is not likely to appear in an actual implementation, but will be bundled in some fashion with related procedures. The name returned by this procedure is not guaranteed to have been cryptographically verified. Verify_Principal_Name performs that function.
Get_Node_InfoとGet_プリンシパル_UIDの場合、このルーチンは、実際の実現では現れそうではありませんが、関連する手順で何らかのファッションで束ねられるでしょう。 この手順で返された名前は、暗号で確かめられたために保証されません。 _プリンシパルについて確かめてください。_Nameはその機能を実行します。
3.10.7 Get Lifetime
3.10.7 生涯を得てください。
get_lifetime( --inputs Claimant_credentials Credentials, --outputs lifetime Duration)
_生涯を得てください。(生涯Durationを出力します(入力Claimant_信任状Credentials))
This routine computes the life remaining in a set of credentials. Its most common use would be to know to renew credentials before they expire.
このルーチンは、信任状のセットに残りながら、人生を計算します。 最も一般的な使い方は期限が切れる前に信任状を更新するのを知るだろうことです。
Returns the remaining lifetime of the login ticket in the credentials. This can either be the done on the node where the original login took place, or at a server which has been delegated to. It indicates how much longer these credentials can be used for further delegations. This routine will return 0 if the login ticket has passed the end of its life, if there is no login ticket, or if the credentials do not contain the private key certified by the ticket (i.e., where they were created by an authentication-without- delegation operation).
信任状でログインチケットの残っている生涯を返します。 これはノードの上、または、オリジナルのログインが行われた委任されたサーバにおいてであることができます。 それは、一層の代表団にどれほど長い間これらの信任状を使用できるかを示します。 ログインチケットが末期を渡したなら、このルーチンは0を返すでしょう、信任状がチケットによって公認された秘密鍵を含んでいないならログインチケットが全くなければ(すなわち、それらが認証で作成されたところ、-、代表団操作、)
Kaufman [Page 72] RFC 1507 DASS September 1993
コーフマン[72ページ]RFC1507ダス1993年9月
3.10.8 Verify Node Name
3.10.8 ノード名について確かめてください。
Verify_node_name( --inputs nodename Name, username String, --updated verifying_credentials Credentials, accepted_credentials Credentials, --outputs Name matches Boolean)
_ノード_名前について確かめてください。(--入力nodename Name(ユーザ名String(_信任状Credentials、受け入れられた_信任状Credentialsについて確かめながら、アップデートする))がブールでNameマッチを出力する)
This routine tests whether the originating node of an authentication token can be authenticated as having the provided name. Like a principal, a node may have multiple aliases. One of them may be returned by Get_node_info, but this call allows a suspected alias to be verified. The verifying credentials supplied with this call must be the same credentials as were used in the Accept_token call. The procedure for completing this request is as follows:
提供された名前を持っていると認証象徴の由来しているノードを認証できるか否かに関係なく、このルーチンはテストされます。 元本のように、ノードには、複数の別名があるかもしれません。 Get_ノード_インフォメーションでそれらの1つを返すかもしれませんが、この呼び出しは、疑われた別名が確かめられるのを許容します。 この呼び出しが供給された検証信任状はAccept_象徴呼び出しに使用された同じ信任状であるに違いありません。 この要求を終了するための手順は以下の通りです:
a) If there is no Node Ticket in the claimant credentials then return False.
a) 主張者信任状にNode Ticketが全くなければ、Falseを返してください。
b) Search the incoming context cache of the verifying credentials for an entry containing the same encrypted shared key as the encrypted shared key subfield of the claimant information of the accepted credentials. In the steps which follow, references to "the cache" refer to this entry. If none is found, initialize such an entry as follows:
b) 受け入れられた信任状の主張者情報のコード化された共有された主要な部分体と同じコード化された共有されたキーを含むエントリーとして検証信任状の入って来る文脈キャッシュを捜してください。 従う方法では、「キャッシュ」の参照はこのエントリーについて言及します。 なにも見つけられないなら、以下のそのようなエントリーを初期化してください:
1) Encrypted shared key from the encrypted shared key subfield of the claimant information of the accepted credentials.
1) 受け入れられた信任状の主張者情報のコード化された共有された主要な部分体からのコード化された共有されたキー。
2) The shared key and validity interval are determined by decrypting the encrypted shared key using the RSA private key in the verifier information of the server credentials. If this procedure is called after a call to Accept_token using the same server credentials (as is required for correct use), the shared key and validity interval must correctly decrypt. If called in some other context, the results are undefined. The validity interval is not checked.
2) 共有されたキーと正当性間隔は、サーバ信任状の検証情報でRSA秘密鍵を使用しながら、コード化された共有されたキーを解読することによって、決定します。 この手順が呼び出しの後に同じサーバ信任状(正しい使用に必要であるように)、共有されたキー、および正当性間隔が正しく解読しなければならないAccept_象徴使用に呼ばれるなら。 ある他の文脈に呼ばれるなら、結果は未定義です。 正当性間隔はチェックされません。
3) Initialize all other entries in the cache to missing.
3) キャッシュにおける他のすべてのエントリーを取り逃がすのに初期化してください。
c) If there is a "local username on client node" in the cache and it does not match the username supplied as a parameter, return False.
c) キャッシュには「クライアントノードに関するローカルのユーザ名」があって、パラメタとして提供されたユーザ名を合わせないなら、Falseを返してください。
Kaufman [Page 73] RFC 1507 DASS September 1993
コーフマン[73ページ]RFC1507ダス1993年9月
d) If there is a "name of client node" in the cache and it matches the nodename supplied as a parameter:
d) キャッシュには「クライアントノードの名前」があって、パラメタとして供給されたnodenameを合わせるなら:
1) Set the "Full name of the node" subfield of the remote node authentication field of the accepted credentials to be the nodename supplied as a parameter.
1) 受け入れられた信任状の遠隔ノード認証分野の「ノードのフルネーム」部分体にパラメタとして供給されたnodenameであるように設定してください。
2) Set the "Local Username on the node" subfield of the remote node authentication field of the accepted credentials to be the username supplied as a parameter.
2) 受け入れられた信任状の遠隔ノード認証分野の「ノードの上の地方のUsername」部分体にパラメタとして提供されたユーザ名であるように設定してください。
3) return True.
3) Trueを返してください。
e) Call the Get_Pub_Keys subroutine with the server_credentials, the nodename supplied as a parameter, and Try_Hard=False.
e) サーバ_信任状、パラメタとして供給されたnodename、およびTry_Hard=があるGet_Pub_キーズサブルーチンが誤っていると言ってください。
f) If "Public Key of Client Node" is missing from the cache, check all of the Public keys returned to see if one verifies the node ticket. If one does, set the "Public Key of Client Node" and "UID of Client Node" fields in the cache to be the PK/UID pair that verified the ticket and set the "Local Username on Client node" field to be the username supplied as a parameter..
f) 「クライアントノードの公開鍵」がキャッシュからなくなるなら、キーが返したPublicのすべてをチェックして、人がノードチケットについて確かめるかどうか確認してください。 1がそうするなら、キャッシュにおける「クライアントノードの公開鍵」と「クライアントノードのUID」分野にチケットについて確かめたPK/UID組であり、「Clientノードの上の地方のUsername」分野にパラメタとして提供されたユーザ名であるように設定するように設定してください。
g) If any of the Public Key/UID pairs match the "Public Key of Client Node" and "UID of Client Node" fields in the cache, then:
g) Public Key/UIDのどれかが対にするなら、キャッシュにおける「クライアントノードの公開鍵」と「クライアントノードのUID」分野を合わせてください、そして:
1) Set the "name of client node" in the cache equal to the nodename supplied as a parameter.
1) パラメタとして供給されたnodenameと等しいキャッシュにおける「クライアントノードの名前」を設定してください。
2) Set the "Full name of the node" subfield of the remote node authentication field of the accepted credentials to be the nodename supplied as a parameter.
2) 受け入れられた信任状の遠隔ノード認証分野の「ノードのフルネーム」部分体にパラメタとして供給されたnodenameであるように設定してください。
3) Set the "Local Username on the node" subfield of the remote node authentication field of the accepted credentials to be the username supplied as a parameter.
3) 受け入れられた信任状の遠隔ノード認証分野の「ノードの上の地方のUsername」部分体にパラメタとして提供されたユーザ名であるように設定してください。
4) Return True.
4) 本当に戻ってください。
h) If none of them match, call Get_Pub_Keys again with Try_Hard=True and repeat steps 6 & 7. If Step 7 fails a second time, return False.
h) それらのいずれも合っていないなら、Try_Hard=が本当の状態でもう一度Get_をPub_キーズと呼んでください、そして、ステップ6と7を繰り返してください。 Step7がもう一度失敗するなら、Falseを返してください。
Kaufman [Page 74] RFC 1507 DASS September 1993
コーフマン[74ページ]RFC1507ダス1993年9月
3.10.9 Verify Principal Name
3.10.9 主要な名前について確かめてください。
Verify_principal_name( --inputs principal_name Name, --updated verifier_credentials Credentials, claimant_credentials Credentials, --outputs Name matches Boolean)
_校長_名前について確かめてください。(--入力_校長がName--アップデートされた検証_信任状Credentials、主張者_信任状Credentials--出力をNameマッチとブールで命名する)
This routine tests (in the context of the verifier credentials) whether the claimant credentials are authenticatable as being those of the named principal. This procedure is called with a set of accepted credentials to authenticate their source, or with a set of credentials produced by network_login to authenticate the creator of those credentials. If the claimant credentials were created by Accept_token, then the verifier credentials supplied in this call must be the same as those used in that call. The procedure for completing this request is as follows:
主張者信任状が命名された校長のものであるとして認証可能であるか否かに関係なく、このルーチンはテストされます(検証信任状の文脈で)。 この手順は、1セットの受け入れられた信任状で呼ばれて、彼らのソースを認証するか、またはそれらの信任状の創造者を認証するために1セットの信任状でネットワーク_ログインで作成されます。 主張者信任状がAccept_象徴によって作成されたなら、この呼び出しで供給された検証信任状はそれで使用されるものが呼ぶのと同じであるに違いありません。 この要求を終了するための手順は以下の通りです:
a) If there is no Login Ticket in the claimant credentials, then return False.
a) 主張者信任状にLogin Ticketが全くなければ、Falseを返してください。
b) If the current time is not within the validity interval of the Login Ticket, then return False.
b) 現在の時間がLogin Ticketの正当性間隔中にないなら、Falseを返してください。
c) If there is an Encrypted Shared Key present in the Claimant information field of the claimant credentials, then find or create a matching cache entry in the Cached Incoming Contexts of the verifier credentials. In the description which follows, references to "the cache" refer to this entry. If the cache entry must be created, its contents is set to be as follows:
c) 主張者信任状のClaimant情報フィールドの現在のEncrypted Shared Keyがあれば、検証信任状のCached Incoming Contextsで合っているキャッシュエントリーを見つけるか、または作成してください。 続く記述では、「キャッシュ」の参照はこのエントリーについて言及します。 キャッシュエントリーを作成しなければならないなら、コンテンツは以下の通りであるように設定されます:
1) Encrypted shared key from the encrypted shared key subfield of the claimant information of the accepted credentials.
1) 受け入れられた信任状の主張者情報のコード化された共有された主要な部分体からのコード化された共有されたキー。
2) The shared key and validity interval are determined by decrypting the encrypted shared key using the RSA private key in the verifier information of the server credentials. If this procedure is called after a call to Accept_token using the same server credentials (as is required for correct use), the shared key and validity interval must correctly decrypt. If called in some other context, the results are undefined. The validity interval is not checked.
2) 共有されたキーと正当性間隔は、サーバ信任状の検証情報でRSA秘密鍵を使用しながら、コード化された共有されたキーを解読することによって、決定します。 この手順が呼び出しの後に同じサーバ信任状(正しい使用に必要であるように)、共有されたキー、および正当性間隔が正しく解読しなければならないAccept_象徴使用に呼ばれるなら。 ある他の文脈に呼ばれるなら、結果は未定義です。 正当性間隔はチェックされません。
Kaufman [Page 75] RFC 1507 DASS September 1993
コーフマン[75ページ]RFC1507ダス1993年9月
3) Initialize all other entries in the cache to missing.
3) キャッシュにおける他のすべてのエントリーを取り逃がすのに初期化してください。
d) If there is a cache entry and if the "Public Key of Client Principal" field is present and if the "UID of Client Principal" field is present and matches the UID in the Login Ticket, then:
d) キャッシュエントリーがあって、「クライアント校長の公開鍵」分野が存在していて、「クライアント校長のUID」であるなら、分野は、存在していて、Login TicketでUIDに合っています、そして:
1) Set the Public Key of the principal field in the Claimant information to be the Public Key of Client Principal.
1) Claimant情報の主要分野のPublic KeyにClientプリンシパルのPublic Keyであるように設定してください。
2) If the "Full name of the principal" field is missing from the claimant information of the claimant credentials, then set it to the "Name of Client Principal" field from the cache.
2) 「校長のフルネーム」分野が主張者信任状の主張者情報からなくなるなら、キャッシュから「クライアント校長の名前」分野にそれを設定してください。
e) If there is a cache entry and if the "Name of Client Principal" field is present and if it matches the principal name supplied to this routine and if the UID in the cache matches the UID in the Login Ticket, return True.
e) キャッシュエントリーがあって、「クライアント校長の名前」分野が存在していて、供給という主要な名前をこのルーチンに合わせて、キャッシュにおけるUIDがLogin TicketでUIDに合っているなら、Trueを返してください。
f) Call the Get_Pub_Keys subroutine with the name and verifier credentials supplied to this routine and Try_Hard=FALSE. Ignore any keys retrieved where the corresponding UID does not match the UID in the claimant credentials.
f) Hard=FALSEにこのルーチンとTry_に名前と検証信任状を提供しているGet_Pub_キーズサブルーチンに電話をしてください。 対応するUIDが主張者信任状でUIDに合っていないところで検索されたあらゆるキーを無視してください。
g) If the Public Key of the principal is missing from the claimant information of the claimant credentials, then attempt to verify the signature on the login ticket with each public key returned by Get_Pub_Keys. If verification succeeds:
g) 校長のPublic Keyが主張者信任状の主張者情報からなくなるなら、各公開鍵がGet_Pub_キーズによって返されているログインチケットの上に署名について確かめるのを試みてください。 検証が成功するなら:
1) Set the Public Key of the principal in the claimant information of the claimant credentials to be the Public Key that verified the ticket.
1) 主張者信任状の主張者情報の校長のPublic Keyにチケットについて確かめたPublic Keyであるように設定してください。
2) If the Full name of the principal in the claimant information of the claimant credentials is missing, set it to the name supplied to this routine.
2) 主張者信任状の主張者情報の校長のFull名がなくなるなら、このルーチンに提供された名前にそれを設定してください。
3) If there is a cache entry, set the Name of Client Principal to be the name supplied to this routine, the UID of Client Principal to be the UID from the Login Ticket, and the Public Key of Client Principal to be the Public Key that verified the ticket.
3) キャッシュエントリーがあれば、チケットについて確かめたPublic KeyになるようにClientプリンシパルのNameにこのルーチンに提供された名前と、Login TicketからのUIDであるClientプリンシパルのUIDと、ClientプリンシパルのPublic Keyであるように設定してください。
4) Return True.
4) 本当に戻ってください。
h) If the Public Key of the principal is present in the claimant information of the claimant credentials, then see if it
h) 校長のPublic Keyが主張者信任状の主張者情報に存在しているなら、それであるなら見てください。
Kaufman [Page 76] RFC 1507 DASS September 1993
コーフマン[76ページ]RFC1507ダス1993年9月
matches any of the public keys returned by Get_Pub_Keys. If one of them matches:
公開鍵のいずれもGet_Pub_キーズで返したマッチ。 彼らのひとりが合っているなら:
1) If the Full name of the principal in the claimant information of the claimant credentials is missing, set it to the name supplied to this routine.
1) 主張者信任状の主張者情報の校長のFull名がなくなるなら、このルーチンに提供された名前にそれを設定してください。
2) If there is a cache entry, set the Name of Client Principal to be the name supplied to this routine, the UID of Client Principal to be the UID from the Login Ticket, and the Public Key of Client Principal to be the Public Key that verified the ticket.
2) キャッシュエントリーがあれば、チケットについて確かめたPublic KeyになるようにClientプリンシパルのNameにこのルーチンに提供された名前と、Login TicketからのUIDであるClientプリンシパルのUIDと、ClientプリンシパルのPublic Keyであるように設定してください。
3) Return True.
3) 本当に戻ってください。
i) If steps 7 & 8 fail, retry the call to Get_Pub_Keys with Try_Hard=TRUE, and retry steps 7 & 8. If they fail again, return false.
i) ステップ7と8が失敗するなら、Try_Hard=TRUEと共にGet_Pub_キーズに呼び出しを再試行してください、そして、ステップ7と8を再試行してください。 再び失敗するなら、虚偽で戻ってください。
3.10.10 Get Pub Keys
3.10.10 パブキーを手に入れてください。
Get_Pub_Keys( --inputs TA_credentials Credentials Try_Hard Boolean, Target Name Name, --outputs Pub_keys Set of Public key/UID pairs
_Pub_キーズを手に入れてください、(--ブールでTA_信任状Credentials Try_Hardを入力する、Target Name Name、--Publicキー/UIDの出力Pub_キーSetが対にする
This common subroutine is used in the execution of Create_Token, Verify_Principal_Name, and Verify_Node_Name. Given the name of a principal, it retrieves a set of public key/UID pairs which authenticate that principal (normally only one pair). It does this by retrieving from the naming service a series of certificates, verifying the signatures on those certificates, and verifying that the sequence of certificates constitute a valid "treewalk".
この一般的なサブルーチンはCreate_Token、Verify_プリンシパル_Name、およびVerify_Node_Nameの実行に使用されます。 元本の名前を考えて、それはその校長を認証する1セットの公開鍵/UID組(通常1組だけ)を救済します。 それは命名サービスから一連の証明書を検索することによって、これをします、それらの証明書の上に署名について確かめて、証明書の系列が有効な"treewalk"を構成することを確かめて。
The credentials structure passed into this procedure represent a starting point for the treewalk. Included in these credentials will be the public key, UID, and name of an authority that is trusted to authenticate all remote principals (directly or indirectly).
構造がこの手順に通過した信任状はtreewalkのために出発点を表します。 これらの信任状に含まれているのは、すべてのリモート校長(直接か間接的に)を認証すると信じられる権威の公開鍵と、UIDと、名前になるでしょう。
The "Try_Hard" bit is a specification anomaly resulting from the fact that caches maintained by this routine are not transparent to the calling routines. It tells this procedure to bypass caches when doing all name service lookups because the information in caches is believed to be stale. In general, a routine will call Get_Pub_Keys with Try_Hard set false and try to use the keys returned. If use of
「_一生懸命試みてください」ビットはこのルーチンで維持されたキャッシュが呼出しルーチンに透明でないという事実から生じる仕様異常です。 それは、キャッシュにおける情報が聞き古したである信じられているのですべての名前サービスルックアップをするときにはキャッシュを迂回させるようにこの手順に言います。 一般に、ルーチンは、Try_Hardがあるキーズが設定するGet_Pub_が偽であると言って、キーが返した使用に試みるでしょう。 使用です。
Kaufman [Page 77] RFC 1507 DASS September 1993
コーフマン[77ページ]RFC1507ダス1993年9月
those keys fails, the calling routine may call this routine again with Try_Hard set true in hopes of getting additional keys. Routinely calling this routine with Try_Hard set true is likely to have adverse performance implications but would not affect the correctness or the security of the operation.
それらのキーは失敗して、呼出しルーチンは再び追加キーを手に入れるという望みが本当にはめ込まれたTry_Hardと共にこのルーチンを呼ぶかもしれません。 きまりきってHardが本当に設定するTry_とのこのルーチンを呼ぶ場合、不利な性能意味が持たれていそうですが、操作の正当性かセキュリティが影響されないでしょう。
The name supplied is the full X.500 name of the principal for whom public keys are needed as part of some authentication process.
供給という名前は公開鍵が何らかの認証過程の一部として必要である校長の完全なX.500名です。
This procedure securely learns the public keys and UIDs of foreign principals by constructing a valid chain of certificates between its trusted TA and the certificate naming the foreign principal. In the simplest case, where the TA has signed a certificate for the foreign principal, the chain consists of a single certificate. Otherwise, the chain must consist of a series of certificates where the first is signed by the TA, the last is a certificate for the foreign principal, and the subject of each principal in the chain is the issuer of the next. What follows is first a definition of what constitutes a valid chain of certificates followed by a model algorithm which constructs all of (and only) the valid chains which exist between the TA and the target name.
この手順は、外国人の校長を任命しながら信じられたTAと証明書の間で証明書の有効なチェーンを組み立てることによって、しっかりと外国人の校長の公開鍵とUIDsを学びます。 最も簡単な場合では、チェーンはただ一つの証明書から成ります。そこでは、TAが外国人の校長のために証明書にサインしました。 さもなければ、チェーンは1番目がTAによってサインされる一連の証明書から成らなければなりません、そして、最終は外国人の校長への証明書です、そして、チェーンにおける、それぞれの校長の対象は次の発行人です。 続くことは最初に、TAと目標名の間に存在する(単に)有効なチェーンを皆、作るモデルアルゴリズムがあとに続いた証明書の有効なチェーンを構成することに関する定義です。
In order to limit the implications of the compromise of a single CA, and also to limit the complexity of the search of the certificate space, there are restrictions on what constitutes a valid chain of certificates from the TA to the Name provided. The only CAs whose compromise should be able to compromise an authentication are those controlling directories that are ancestors of one of the two names and that are not above a common ancestor. Therefore, only certificates signed by those CAs will be considered valid in a certificate chain. Normally, the CA for a directory is expected to certify a public key and UID for the CA of each child directory and one parent directory. A CA may also certify another CA for some remote part of the naming hierarchy, and such certificates are necessary if there are no CAs assigned to directories high in the naming hierarchy.
単一のカリフォルニアの妥協の含意を制限して、また、証明書スペースの検索の複雑さを制限するために、何がTAから提供されたNameまで証明書の有効なチェーンを構成するかに関する制限があります。 妥協が認証で妥協できるべきである唯一のCAsが2つの名前の1つの先祖であり、一般的な先祖の上にないディレクトリを制御するものです。 それらのCAsによってサインされた証明書だけが証明書チェーンで有効であると考えられるでしょう。 通常、ディレクトリのためのカリフォルニアがそれぞれの子供ディレクトリと1つの親ディレクトリのカリフォルニアに公開鍵とUIDを公認すると予想されます。 また、カリフォルニアは命名階層構造の何らかのリモート部分に別のカリフォルニアを公認するかもしれません、そして、高い命名階層構造でディレクトリに割り当てられたCAsが全くなければ、そのような証明書が必要です。
A certificate chain is considered valid if it meets the following criteria:
以下の評価基準を満たすなら、証明書チェーンは有効であると考えられます:
a) It must consist of zero or more parent certificates, followed by zero or one cross certificates, followed by zero or more child certificates.
a) それがゼロから成らなければならない、さもなければ、より多くの親証明書がゼロか、より多くの子供証明書で従いました、続いて、ゼロか1通の交差している証明書に従います。
b) The number of parent certificates may not exceed the number of levels in the naming hierarchy between the TA name and the name of the least common ancestor in the naming hierarchy between the TA name and the target name.
b) 親証明書の数はTA名と目標名の間の命名階層構造の最も一般的でない先祖のTA名と名前の間の命名階層構造のレベルの数を超えないかもしれません。
Kaufman [Page 78] RFC 1507 DASS September 1993
コーフマン[78ページ]RFC1507ダス1993年9月
c) Each parent certificate must be stored in the naming service under the entry of its issuer.
c) 命名サービスに発行人のエントリーでそれぞれの親証明書を格納しなければなりません。
d) The subject of the cross certificate (if any) must be an ancestor of the target name but must be a longer name than the least common ancestor of the TA name and the target name.
d) 交差している証明書(もしあれば)の対象は、TA名の最も一般的でない先祖と目標名より長い目標名の先祖でなければなりませんが、名前であるに違いありません。
e) The cross certificate (if any) must have been stored in the naming service under the entry of its issuer or there must have been an indication in the naming service that certificates signed by this issuer may be stored with their subjects.
e) 交差している証明書(もしあれば)が命名サービスに発行人のエントリーで格納されたに違いありませんか、またはこの発行人によってサインされた証明書がそれらの対象で格納されるかもしれないという命名サービスにおける指示があったに違いありません。
f) The issuer of each parent certificate does not have stored with it in the naming service a cross certificate with the same issuer whose subject is an ancestor of the target name.
f) 証明書がするそれぞれの親の発行人は対象が目標名の先祖であるのと同じ発行人と共に命名サービスにそれで交差している証明書を格納していません。
g) Each child certificate must be stored in the naming service under the entry of its subject.
g) 命名サービスに対象のエントリーでそれぞれの子供証明書を格納しなければなりません。
h) The subject of each child certificate does not have associated with it in the naming service a cross certificate with the same subject whose issuer is the same as the issuer of any of the parent certificates or the cross certificate of the chain.
h) 証明書がするそれぞれの子供の対象は発行人が親証明書のどれかかチェーンの交差している証明書の発行人と同じであるのと同じ対象で命名サービスで交差している証明書をそれに関連づけていません。
i) The subject of each certificate must be the issuer of the certificate that follows in the chain. The equality test can be met by either of two methods:
i) それぞれの証明書の対象はチェーンで従う証明書の発行人であるに違いありません。 2つの方法のどちらかは平等テストを迎えることができます:
1) The public key of the subject in the earlier certificate verifies the signature of the later and the subject UID in the earlier certificate is equal to the issuer UID in the later; or
1) 以前の証明書の対象の公開鍵は後の署名について確かめます、そして、以前の証明書の対象のUIDは後の発行人UIDと等しいです。 または
2) The public key of the subject in the earlier certificate verifies the signature of the later, the earlier lacks a subject UID and/or the later lacks an issuer UID and the name of the subject in the earlier certificate is equal to the name of the issuer in the later.
2) 以前の証明書の対象の公開鍵は後の署名について確かめます、そして、より早くに対象のUIDを欠いている、そして/または、発行人UIDが、より遅く、欠けて、以前の証明書の対象の名前は後の発行人の名前と等しいです。
j) The Public Key of the TA verifies the signature of the first certificate.
j) TAのPublic Keyは最初の証明書の署名について確かめます。
k) The UID of the TA equals the UID of the issuer of the first certificate or the UID is missing on one or both places and the name of the TA equals the name of the issuer of the first certificate.
k) TAのUIDが最初の証明書の発行人のUIDと等しいです、UIDが1でなくなるか、またはTAという両方の場所と名前は最初の証明書の発行人の名前と等しいです。
Kaufman [Page 79] RFC 1507 DASS September 1993
コーフマン[79ページ]RFC1507ダス1993年9月
l) All of the certificates are valid X.509 encodings and the current time is within all of their validity intervals.
l) 証明書のすべてが有効なX.509 encodingsです、そして、彼らの正当性間隔のすべて中に現在の時間があります。
If a chain is valid, the name which it authenticates can be constructed as follows:
チェーンが有効であるなら、以下の通り、それが認証する名前を構成できます:
a) If the chain contains a cross certificate, the name authenticated can be constructed by taking the subject name from the cross certificate and appending to it a relative name for each child certificate which follows. The relative name is the extension by which the subject name in the child certificate extends the issuer name.
a) チェーンが交差している証明書を含むなら、交差している証明書から対象の名前を取って、従うそれぞれの子供証明書のために相対的な名前をそれに追加することによって、認証という名前を構成できます。 相対的な名前は子供証明書の対象の名前が発行人名を広げる拡大です。
b) If the chain does not contain a cross certificate, the name authenticated can be constructed by taking the TA name, truncating from it the last n name components where n is the number of parent certificates in the chain, and appending to the result a relative name for each child certificate. The relative name is the extension by which the subject name in the child certificate extends the issuer name.
b) チェーンが交差している証明書を含まないなら、TA名を取ることによって、認証という名前を構成できます、チェーンでそれからのnが親証明書の数である最後のn名前コンポーネントに先端を切らせて、それぞれの子供証明書のために相対的な名前を結果に追加して。 相対的な名前は子供証明書の対象の名前が発行人名を広げる拡大です。
In the common case, the authenticated name will be the subject name in the last certificate. The authenticated name is constructed by the rules above to deal with namespace reorganization. If a branch of the namespace is renamed (due to, for example, a corporate acquisition or reorganization), only the certificates around the break point need to be regenerated. Certificates below the break will continue to contain the old names (until renewed), but the algorithms above assure the principals in that branch will be able to authenticate as their new names. Further, if the certificates at the branch point are maintained for both the old and new names for an interim period, principals in the moved branch will be able to authenticate as either their old or new names for that interim period without having duplicate certificates.
よくある例では、認証された名前は最後の証明書で対象の名前になるでしょう。 認証された名前は名前空間再編成に対処するためには上の規則で構成されます。 名前空間のブランチが改名されるなら(例えば、法人の獲得か再編成のため)、ブレークポイントの周りの証明書だけが、作り直される必要があります。 以下の中断がずっと含む老人が彼らの新しい名前として認証できるしかし、名前(更新されるまで)、上のアルゴリズムが、そのブランチの校長を保証する証明書。 有がなければ、ブランチポイントの証明書が暫時のための古くて新しい名前、動くブランチの校長がその暫時のための彼らの古いか新しい名前として認証できる両方のために維持されるなら、さらに、証明書をコピーしてください。
A final complication that the algorithm must deal with is the location of cross certificates. If a key is compromised or for some other reason it is important to revoke a certificate ahead of its expiration, it is removed from the naming service. This algorithm will only use certificates that it has recently retrieved from the naming service, so revocation is as effective as the mechanisms that prevent impersonation of the naming service. There are plans to eventually use DASS mechanisms to secure access to the naming service; until they are in place, name service impersonation is a theoretical threat to the security of revocation. Opinions differ as to whether it is a practical threat. Child certificates are always stored with the
アルゴリズムが対処しなければならない最終的な複雑さは交差している証明書の位置です。 キーが妥協するか、満了の前に証明書を取り消すのが重要であるある他の理由であるなら、命名サービスからそれを取り除きます。 このアルゴリズムがそれが最近命名サービスから検索した証明書を使用するだけであるので、取消しは命名サービスのものまねを防ぐメカニズムと同じくらい有効です。 結局命名サービスへのアクセスを保証するのにダスメカニズムを使用する計画があります。 彼らが適所にいるまで、名前サービスものまねは取消しのセキュリティへの理論上の脅威です。 意見はそれが実用的な脅威であるかどうかに関して異なります。 子供証明書はいつも格納されます。
Kaufman [Page 80] RFC 1507 DASS September 1993
コーフマン[80ページ]RFC1507ダス1993年9月
subject and will not be found unless stored in the name server of the subject. Parent certificates are always stored with the issuer and will not be found unless stored in the name server of the issuer. For best security, cross certificates should be stored with the issuer because the name server for the subject may not be adequately trustworthy to perform revocation. There are performance and availability penalties, however, in doing so. The architecture and the algorithm therefore support storing cross certificates with either the issuer or the subject. There must be some sort of flag in the name service associated with the issuer saying whether cross certificates from that issuer are permitted to be stored in the subject's name service entry, and if that flag is set such certificates will be found and used.
対象のネームサーバに格納されない場合備え付けないためにかけて、望んでください。 親証明書は、発行人と共にいつも格納されて、発行人のネームサーバに格納されないと、見つけられないでしょう。 最も良いセキュリティのために、対象のためのネームサーバが取消しを実行するために適切に信頼できないかもしれないので、交差している証明書は発行人と共に格納されるべきです。 しかしながら、そうするのにおいて性能と有用性刑罰があります。 したがって、構造とアルゴリズムは、発行人か対象のどちらかで交差している証明書を格納するのを支持します。 対象の名前サービスエントリーにその発行人からの交差している証明書が格納されることが許可されているか否かに関係なく、発行人ことわざに関連している名前サービスにはある種の旗があるに違いなくて、その旗が設定されると、そのような証明書は、見つけられて、使用されるでしょう。
In order to make revocation effective, DASS must assure that naming service caches do not become arbitrarily stale (the allowed age of a cache entry is included in the sum of times with together make up the revocation time). If DASS uses a naming service such as DNS that does not time out cache entries, it must bypass cache on all calls and (to achieve reasonable performance) maintain its own naming service cache. It may be advantageous to maintain a cache in any case so the that the fact that the certificates have been verified can be cached as well as the fact that they are current.
取消しを有効にするように、ダスは、命名サービスキャッシュが任意に聞き古したであるならないことを(キャッシュエントリーの時代が含まれている一緒にいるのがある回の合計が取消し時間にする許容)保証しなければなりません。 ダスがキャッシュエントリーをタイムアウトでないのにするDNSなどの命名サービスを利用するなら、それは、すべての呼び出しのときにキャッシュを迂回させて、それ自身の命名サービスキャッシュを維持しなければなりません(妥当な性能を達成する)。 どのような場合でも、aがそうをキャッシュすると主張するのが有利であるかもしれない、それらがよく見られるという事実と同様に証明書が確かめられたという事実をキャッシュできます。
3.10.10.1 Basic Algorithm
3.10.10.1 基本的なアルゴリズム
For ease of exposition, this first description will ignore the operation of any caches. Permissible modifications to take advantage of caches and enhance performance will be covered in the next section. This path will be followed if the Try_Hard bit is set True on the call.
博覧会の容易さのために、この最初の記述はどんなキャッシュの操作も無視するでしょう。 キャッシュを利用して、性能を高める許されている変更は次のセクションでカバーされているでしょう。 この経路はTry_Hardビットが呼び出しでのセットTrueであるなら続かれるでしょう。
Rather than trying construct all possible chains between the TA and the name to be authenticated (in the event of multiple certificates per principal, there could be exponentially many valid chains), this algorithm computes a set of PK/UID/Name triples that are valid for each principal on the path between the TA and the name to be authenticated. By doing so, it minimizes the processing of redundant information.
むしろ、このアルゴリズムはすべて可能な骨の折れる構造物が認証される(複数の1校長あたりの証明書の場合、指数関数的に多くの有効なチェーンがあるかもしれない)ためにTAと名前の間でチェーニングするより1セットのTAと名前の間の経路の各校長が認証されるために有効なPK/UID/名前三重を計算します。 そうすることによって、それは余分な情報の処理を最小にします。
a) Determining path and initialization
a) 経路と初期化を決定します。
Several state variables are manipulated during the tree walk. These are called:
いくつかの州の変数が木の散歩の間、操られます。 これらは呼ばれます:
Kaufman [Page 81] RFC 1507 DASS September 1993
コーフマン[81ページ]RFC1507ダス1993年9月
1) Current-directory-name This is the name indicating the current place in the tree walk. Initially, this is the name of the TA.
1) 現在のディレクトリ名Thisは木の散歩における現在の場所を示す名前です。 初めは、これはTAという名前です。
2) Least-Common-Ancestor-Name This is the portion of the names which is common to both the CA and the Target. This is computed at initialization and does not change during the treewalk.
2) 最も一般的でない先祖名のThisは名前のカリフォルニアとTargetの両方に共通の部分です。 これは、初期化で計算されて、treewalkの間、変化しません。
3) Trusted-Key-Set For each name which is an ancestor of either the TA or the Target but not of the Least-Common-Ancestor, a list of PK/UID/Name triples. This is initialized to a single triple from the TA information in the supplied credentials.
3) 信じられた主要なセットForはそれぞれどれがTAの先祖であるか、そして、Targetを命名しますが、Leastの一般的な先祖について命名するというわけではありません、PK/UID/名前三重のリスト。 これは供給された信任状のTA情報からシングルに3倍初期化されます。
4) Search-when-descending This is a list of PK/UID/Name triples of issuers that will be trusted when descending the tree. This set is initially empty.
4) 下るときの検索Thisは木を滑降させるとき信じられる発行人のPK/UID/名前三重のリストです。 このセットは初めは、空です。
5) Saved-RDNs This is a sequence of Relative Distinguished Names (RDNs) stripped off the right of the target name to form Least-common-ancestor-name. This "stack" is initially empty and is populated during Step 3.
5) 救われたRDNs Thisは目標名がLeastの一般的な先祖名を形成する権利で剥取られたRelative Distinguished Names(RDNs)の系列です。 この「スタック」は、初めは、空であり、Step3の間、居住されます。
b) Ascending the "TA side" of the tree
b) 木の「TA側」を昇ります。
While Current-directory-name is not identical to Common-point-Name the algorithm moves up the tree. At each step it does the following operations.
Current-ディレクトリ名はCommonポイント名と同じではありませんが、アルゴリズムは木を上げます。 各ステップでは、それは以下の操作をします。
1) Find all cross certificates stored in the naming service under Current-directory-name in which the subject is an ancestor of the principal to be authenticated or an indication that cross certificates from this issuer are stored in the subject entry. If there is an indication that such certificates are stored in the subject entry, copy all triples in Trusted-Key-Set for Current-directory-name into the "Search-when-descending" list. If any such certificates are found, filter them to include only those which meet the following criteria:
1) 認証されるために対象が校長の先祖であるCurrent-ディレクトリ名の下における命名サービスに格納された証明書かこの発行人からの交差している証明書が対象のエントリーに格納されるという指示をすべての十字に見つけてください。 そのような証明書が対象のエントリーに格納されるという指示があれば、Current-ディレクトリ名のために「下るときの検索」リストの中にTrustedの主要なセットにおけるすべての三重をコピーしてください。 何かそのような証明書が見つけられるなら、それらをフィルターにかけて、以下の評価基準を満たすものだけを含んでください:
(i) For some triple in the Trusted-Key-Set corresponding to the Current-directory-name, the public key in the triple verifies the signature on the certificate and either the UID in the triple matches the issuer UID in the certificate or the UID in the triple and/or the
そして/または(i) Current-ディレクトリ名に対応するTrusted主要なセットにおける何らかの三重のために、三重における公開鍵が証明書の上に署名について確かめて、三重におけるUIDが三重における証明書かUIDで発行人UIDを合わせる。
Kaufman [Page 82] RFC 1507 DASS September 1993
コーフマン[82ページ]RFC1507ダス1993年9月
certificate is missing and the name in the triple matches the issuer name in the certificate.
証明書はなくなります、そして、三重における名前は証明書の発行人名に合っています。
(ii) No certificates were found signed by this issuer in which the subject name is longer than the subject name in this certificate (i.e., if there are cross certificates to two different ancestors, accept only those which lead to the closest ancestor).
(ii)は対象の名前より長い間対象の名前がこの証明書にあるこの発行人でサインしました(すなわち、2人の異なった先祖への交差している証明書があれば、最も近い先祖に通じるものだけを受け入れてください)証明書が全く見つけられなかった。
(iii)The current time is within the validity interval of the certificate.
(iii) 証明書の正当性間隔中に、現在の時間があります。
2) If any cross certificates were found (whether or not they were all eliminated as part of the filtering process), set Current-directory-name to the longest name that was found in any certificate and construct a set of PK/UID/Name triples for that name from the certificates which pass the filter and place them in the Trusted Key Set associated with their subject. Exit the ascending tree loop at this point and proceed directly to step 3. Note that this means that if there are cross certificates to an ancestor of the target but they are all rejected (for example if they have expired), the treewalk will not construct a chain through the least common ancestor and will ultimately fail unless a crosslink from a lower ancestor is found stored with its subject. This is a security feature.
2) どれか交差している証明書が当たられて(それらがろ過過程の一部としてすべて排除されたか否かに関係なく)、どんな証明書でも見つけられた中で最も長い名前にCurrent-ディレクトリ名を設定して、PK/UID/名前の1セットを構成するなら、フィルタを渡して、それらをTrusted Key Setに置く証明書からのその名前のための三重はそれらの対象と交際しました。 ここに昇っている木の輪を出てください、そして、直接ステップ3に進んでください。 これがtreewalkが最も一般的でない先祖を通してチェーンを組み立てないで、目標の先祖への交差している証明書がありますが、それらがすべて拒絶されて(例えば、期限が切れたなら)、下側の先祖からのクロスリンクが対象で格納されているのがわからないと結局失敗することを意味することに注意してください。 これはセキュリティ機能です。
3) If no cross certificates are found, find all the parent directory certificates for the directory whose name is in the Current-directory-name. Filter these to find only those which meet the following criteria:
3) どんな交差している証明書も見つけられないなら、名前がCurrent-ディレクトリ名にあるディレクトリのためのすべての親ディレクトリ証明書を見つけてください。 これらをフィルターにかけて、以下の評価基準を満たすものだけを見つけてください:
(i) The current time is within the validity interval.
(i) 正当性間隔中に、現在の時間があります。
(ii) For some triple corresponding to the Current-directory-name, the public key in the triple verifies the signature on the certificate and either the UID in the triple matches the issuer UID in the certificate or the UID in the triple and/or the certificate is missing and the name in the triple matches the issuer name in the certificate.
3倍Current-ディレクトリ名に対応するいくつかのための(ii)、三重における公開鍵は証明書の上に署名について確かめます、そして、三重、そして/または、証明書のUIDはなくなります、そして、三重におけるUIDは証明書で発行人UIDに合っているか、または三重における名前が証明書の発行人名に合っています。
4) Construct PK/UID/Name triples from the remaining certificates for the directory whose name is constructed by stripping the rightmost simple name from the Current-directory-name and place them in the Trusted-Key-Set.
4) 名前がCurrent-ディレクトリ名から一番右の単純名を剥取ることによって構成されるディレクトリのための残っている証明書からPK/UID/名前三重を構成してください、そして、Trustedの主要なセットにそれらを置いてください。
Kaufman [Page 83] RFC 1507 DASS September 1993
コーフマン[83ページ]RFC1507ダス1993年9月
5) Strip the rightmost simple name of the Current-directory-name.
5) Current-ディレクトリ名を一番右の単純名から奪い取ってください。
6) Repeat from step (a) (testing to see if current-directory-name is the same as Common-point-Name).
6) ステップ(a)から、繰り返してください。 (Commonが名前を指すとき現在のディレクトリ名が同じであるかどうか確認するために、テストします。)
c) Searching the "target side" of the tree for a crosslink:
c) クロスリンクのために木の「目標側」を捜します:
1) Initialization: set Current-directory-name to the name supplied as input to this procedure.
1) 初期設定: この手順に入力されるようにCurrent-ディレクトリ名を供給という名前に設定してください。
2) Retrieve from the naming service all cross certificates associated with Current-directory-name. Filter to only those that meet the following criteria:
2) 命名サービスから、Current-ディレクトリ名に関連しているすべての交差している証明書を検索してください。 以下の評価基準を満たすものだけに以下をフィルターにかけてください。
(i) The current time is within their validity interval.
(i) 彼らの正当性間隔中に、現在の時間があります。
(ii) The subject name is equal to Current-directory-name.
(ii) 対象の名前はCurrent-ディレクトリ名と等しいです。
(iii)For some PK/UID/Name triple in the "Search-when-descending" list compiled while ascending the tree, the Public Key verifies the signature on the certificate and either the UID matches the issuer UID in the certificate or a UID is missing from the triple and/or the certificate and the Name in the triple matches the issuer name in the certificate.
木を昇っている間にコンパイルされた「下るときの検索」リストの何らかのPK/UID/名前三重のための(iii)、Public Keyは証明書の上に署名について確かめます、そして、UIDは三重、そして/または、証明書からなくなります、そして、UIDは証明書で発行人UIDに合っているか、または三重におけるNameが証明書の発行人名に合っています。
(iv) There are no certificates found meeting criteria (ii) and (iii) matching a PK/UID/Name triple in the Search-when-descending list whose subject is a directory lower in the naming hierarchy.
(iv) 3倍PK/UID/名前に合っている評価基準(ii)を満たしているのは見つけられなかった証明書と全く(iii)が対象がディレクトリである下るときの検索リストで命名階層構造で、より低くあります。
3) If any qualifying certificates are found, construct PK/UID/Name triples for each of them; these should replace rather than supplement any triples already in the Trusted-key-set for that directory.
3) 何か資格を得る証明書が見つけられるなら、構造物PK/UID/名はそれぞれのそれらのために3倍になります。 これらはそのディレクトリのために補うよりむしろ既にTrustedの主要なセットにおけるどんな三重も取り替えるべきです。
4) If after steps (b) and (c), there are no PK/UID/Name triples corresponding to Current-directory-name in Trusted-Key-Set, shorten Current-directory-name by one RDN (pushing it onto the Saved-RDNs stack) and repeat this process until Current-directory-name is equal to Least-common-ancestor-name or there is at least one triple in Trusted-key-set corresponding to Current-directory-name.
4) Trustedの主要なセットでCurrent-ディレクトリ名に対応するどんなPK/UID/名前三重もステップ(b)と(c)後になければ、1RDNでCurrent-ディレクトリ名を短くしてください、そして、(Saved-RDNsスタックにそれを押して)Current-ディレクトリ名がLeastの一般的な先祖名と等しいか、またはCurrent-ディレクトリ名へのTrustedの主要なセット対応における少なくとも1つの三重があるまで、この過程を繰り返してください。
d) Descending the tree
d) 木を滑降させます。
While the list Saved-RDNs is not Empty the algorithm moves
リストSaved-RDNsはアルゴリズムが動かすEmptyではありませんが
Kaufman [Page 84] RFC 1507 DASS September 1993
コーフマン[84ページ]RFC1507ダス1993年9月
down the tree. At each step it does the following operations.
木の下側に。 各ステップでは、それは以下の操作をします。
1) Remove the first RDN from Saved-RDNs and append it to the Current-directory-name.
1) Saved-RDNsから最初のRDNを取り外してください、そして、Current-ディレクトリ名にそれを追加してください。
2) Find all the child directory certificates for the directory whose name is in the current-directory-name.
2) 名前が現在のディレクトリ名にあるディレクトリのためのすべての子供ディレクトリ証明書を見つけてください。
3) Filter these certificates to find only those which meet the following criteria:
3) これらの証明書をフィルターにかけて、以下の評価基準を満たすものだけを見つけてください:
(i) The current time is within the validity interval.
(i) 正当性間隔中に、現在の時間があります。
(ii) For some PK/UID/Name triple in the Current-key-set for the parent directory, the Public Key verifies the signature on the certificate and either the UID matches the issuer UID of the certificate or the UID is missing from the triple and/or the certificate and the Name in the triple matches the issuer name in the certificate.
親ディレクトリのためのCurrentの主要なセットにおける何らかのPK/UID/名前三重のための(ii)、Public Keyは証明書の上に署名について確かめます、そして、UIDは三重、そして/または、証明書からなくなります、そして、UIDは証明書の発行人UIDに合っているか、または三重におけるNameが証明書の発行人名に合っています。
(iii)The issuer name in the certificate is a prefix of the subject name and the difference between the two names is the final RDN of Current-directory-name.
(iii) 証明書の発行人名は対象の名前の接頭語であり、2つの名前の違いはCurrent-ディレクトリ名の最終的なRDNです。
4) Take the key, UID, and name from each remaining certificate and form a new triple corresponding to Current-directory-name in Trusted-Key-Set. If this set is empty then the algorithm exits with the 'Incomplete-chain-of-trustworthy-CAs' error condition.
4) それぞれの残っている証明書からキー、UID、および名前を取ってください、そして、Trustedの主要なセットでCurrent-ディレクトリ名に対応する新しい三重を形成してください。 このセットが空であるなら、アルゴリズムは'信頼できるCAsの不完全なチェーン'エラー条件と共に出ます。
5) repeat from step (a), appending a new simple name to Current-directory-name.
5) ステップ(a)から、Current-ディレクトリ名に新しい単純名を追加して、繰り返してください。
e) Find public keys: If there are no triples in the Trusted-Key-Set for the named principal, then the algorithm exits with the `Target-has-no-keys-w error condition. Otherwise, the Public Key and UID are extracted from each pair, duplicates are eliminated, and this set is returned as the Pub_keys.
e) 公開鍵を見つけてください: Trustedの命名された校長にとって、主要なセットに三重が全くなければ、アルゴリズムは'目標にはキーwが全くないエラー条件'と共に出ます。 さもなければ、各組からPublic KeyとUIDを抽出します、そして、写しを排除します、そして、Pub_キーとしてこのセットを返します。
3.10.10.2 Allowed Variations - Caching
3.10.10.2 変化--キャッシュは許されました。
Some use of caches can be implemented without affecting the semantics of the Get_Pub_Keys routine. For example, a crypto-cache could remember the public key that verified a signature in the past and could avoid the verification operation if the same key was used to verify the same data structure again. In some cases, however, it is impossible (or at least inconvenient) for a cache implementation to
Get_Pub_キーズのルーチンの意味論に影響しないで、キャッシュの何らかの使用を実行できます。 例えば、暗号キャッシュは、過去に署名について確かめた公開鍵を覚えていることができて、同じキーが再び同じデータ構造について確かめるのに使用されるなら、検証操作を避けるかもしれないでしょうに。 いくつかの場合、aが実現をキャッシュするので、しかしながら、それは、不可能、そして、(少なくとも不便)です。
Kaufman [Page 85] RFC 1507 DASS September 1993
コーフマン[85ページ]RFC1507ダス1993年9月
be completely transparent.
完全に透明であってください。
In particular, for good performance it is important that certificates not be re-retrieved from the naming service on every authentication. This must be balanced against the need to have changes to the contents of the naming service be reflected in DASS calls on a timely basis. There are two cases of interest: changes which cause an authentication which previously would have succeeded to fail and changes which cause an authentication which previously would have failed to succeed. These two cases are subject to different time constraints.
望ましい市場成果に、証明書があらゆる認証のときに命名サービスから再検索されるというわけではないのは、特に、重要です。 これはタイムリーベースで命名サービスのコンテンツへの変化をダスの呼び出しに反映させる必要性に対してバランスをとらなければなりません。 興味がある2つのケースがあります: 以前に成功した認証が失敗される変化と以前に成功していない認証を引き起こす変化。 これらの2つのケースが異なった時間規制を受けることがあります。
In general, changes that cause authentication to succeed must be reflected quite quickly - on the order of minutes. If a user attempts an operation, it fails, the user tracks down a system manager and causes the appropriate updates to take place, and the user retries the operation, it is unacceptable for the operation to continue to fail for an extended period because of stale caches.
一般に、数分の注文ときに全くすぐに認証が成功する変化を反映しなければなりません。 ユーザが操作を試みて、失敗して、ユーザがシステム・マネージャを捜し出して、適切なアップデートを行われさせて、ユーザが操作を再試行するなら、操作が、聞き古したキャッシュで長期間の間、失敗し続けているのは、容認できません。
Changes that cause authentication to fail must be reflected reliably within a bounded period of time for security reasons. If a user leaves the company, it must be possible to revoke his ability to authenticate within a relatively short period of time - say hours.
境界がある期間以内に安全保障上の理由で認証が失敗される変化を確かに反映しなければなりません。 ユーザが退職するなら、比較的短い期間以内に認証する彼の能力を取り消すのは可能であるに違いありません--時間、言ってください。
These constraints mean that a naming service cache which contains arbitrarily old information is unacceptable. To meet the second constraint, naming service cache entries must be timed out within a reasonable period of time unless in implementation verifies that the certificate is still present (a crypto-cache which lasted longer would be legal; rather than deleting a name service cache entry, in implementation might instead verify that the entry was still present in the naming service. This would avoid repeating the cryptographic "verify").
これらの規制は、任意に古い情報を含む命名サービスキャッシュが容認できないことを意味します。 2番目の規制を満たすために、中ではなく適正な期間以内にエントリーを調節しなければならないサービスキャッシュを実現と命名するのは、証明書がまだ存在していることを確かめます。(より長い間続いた暗号キャッシュは法的でしょう。 名前を削除するとキャッシュエントリーが修理されるむしろ実現では、代わりにエントリーが命名サービスでまだ存在していたことを確かめるかもしれません。 これは、暗号の「検証」を繰り返すのを避けるでしょう。).
In order to assure that information cached for even a few hours not deny authentication for that extended period, it must be possible to bypass caches when the result would otherwise be a failure. Since the performance of authentication failures is not a serious concern, it is acceptable to expect that before an operation fails a retry will be made to the naming service to see if there are any new relevant certificates (or in certain obscure conditions, to see if any relevant certificates have been deleted).
そうでなければ、結果が失敗であるだろうというときに、数時間さえキャッシュされた情報がその長期間の間認証を否定しないことを保証するために、キャッシュを迂回させるのは可能でなければなりません。 認証失敗の性能が真剣な関心でないので、操作が再試行に失敗する前に何か新しい関連証明書があるかどうかを(ある、状態をあいまいにして、何か関連証明書が削除されたかどうかを見てください)見るのをそれを命名サービスにすると予想するのは許容できます。
If on a call to Get_Pub_Keys, the Try_Hard bit is True, then this procedure must return results based on the contents of the naming service no more than five minutes previous (this would normally be accomplished by ignoring name service caches and making all operations directly to the naming service). If the Try_Hard bit is
Get_Pub_キーズへの呼び出しのときにTry_HardビットがTrueであるなら、この手順は5分間未満命名サービスのコンテンツに前であることの状態で基づく結果を返さなければなりません(通常、これは名前サービスキャッシュを無視して、すべての操作を直接命名サービスにすることによって、達成されるでしょう)。 Try_Hardビットがそうなら
Kaufman [Page 86] RFC 1507 DASS September 1993
コーフマン[86ページ]RFC1507ダス1993年9月
False, this procedure may return results based on the contents of the naming service any time in the previous few hours, in the sense that it may ignore any certificate added in the previous few hours and may use any certificate deleted in the previous few hours. Procedures which call this routine with Try_Hard set to false must be prepared to call it again with Try_Hard True if their operation fails possibly from this result.
虚偽で、この手順は前の数時間でいつでも命名サービスのコンテンツに基づく結果を返すかもしれません、前の数時間で加えられたどんな証明書も無視して、前の数時間で削除されたどんな証明書も使用するかもしれないという意味で。 彼らの操作がことによるとこの結果から失敗するなら、Try_Hard Trueと共にそれにもう一度電話をするようにHardが誤っているのに設定するTry_とのこのルーチンを呼ぶ手順を準備しなければなりません。
The exact timer values for "five minutes" and "a few hours" are expected to be implementation constants.
「5分」と「数時間」の間の正確なタイマ値は実現定数であると予想されます。
In the envisioned implementation, the entire "ascending treewalk" is retrieved, verified, and its digested contents cached when a principal first establishes credentials. A mechanism should be provided to refresh this information periodically for principals whose sessions might be long lived, but it would probably be acceptable in the unlikely event of a user's ancestor's keys changing to require that the user log out and log back in. This is consistent with the observed behavior of existing security mechanisms.
思い描かれた実現では、全体の「上昇treewalk」は、検索されて、確かめられます、そして、元本であるときにキャッシュされた読みこなされたコンテンツは最初に、信任状を確立します。 メカニズムはセッションが長さが生きましたが、それがたぶんユーザの先祖のもののありそうもない出来事で許容できるだろうということであるかもしれない校長のために定期的にこの情報をリフレッシュするのが必要とするユーザが登録する変化を合わせるならアウトとログがコネを支持するということであるべきです。 これは既存のセキュリティー対策の観測された振舞いと一致しています。
The descending treewalk, on the other hand, is expected to be maintained as a more conventional cache, where entries are kept in a fixed amount of memory with a "least recently used" replacement policy and a watchdog timer that assures that stale information is not kept indefinitely. A call to Get_Pub_Keys with Try_Hard set false would first check that cache for relevant certificates and only if none were found there would it go out to the naming service. If there were newer certificates in the naming service, they might not be found and an authentication might therefore fail.
他方では、より従来のキャッシュとして下っているtreewalkが維持されると予想されます、エントリーが固定メモリー容量で「最も最近でない、中古」の交換方針で保たれて、その聞き古した情報を保証するウオッチドッグタイマーは無期限に保たれないところで。 Try_Hardがあるキーズが虚偽で設定するGet_Pub_への呼び出しは最初に関連証明書がないかどうかそのキャッシュをチェックするでしょう、そして、なにもそこで見つけられない場合にだけ、それは命名サービスに出かけるでしょうか? 命名サービスにより新しい証明書があれば、それらは見つけられないでしょうに、そして、したがって、認証は失敗するかもしれません。
When Try_Hard is false, an implementation may assume that certificates not in the cache do not exist so long as that assumption does not cause an authentication to falsely succeed. In that case, it may only make that assumption if the certificates have been verified to not exist within the revocation time (a few hours).
Try_Hardが偽であるときに、実現は、認証がその仮定で間違って成功しない限り、証明書がキャッシュで存在すると仮定するかもしれません。 その場合、それは証明書が取消し時間(数時間)中に存在しないように確かめられた場合にだけそれを仮定にするかもしれません。
3.11 DASSlessness Determination Functions
3.11に、DASSlessness決断は機能します。
In order to provide better interoperability with alternative authentication mechanisms and to provide backward compatibility with older (insecure) authentication mechanisms, it is sometimes important to be able to determine in a secure way what the appropriate authentication mechanism is for a particular named principal. For some applications, this will be done by a local mechanism, where either the person creating access control information must know and specify the mechanism for each principal or a system administrator on the node must maintain a database mapping names to mechanisms. Three applications come to mind where scaleability makes such mechanisms
代替の認証機構をより良い相互運用性に提供して、より古い(不安定な)認証機構を後方の互換性に提供するために、適切な認証機構が特定の命名された元本のための何であるかを安全な方法で決定できるのは時々重要です。 いくつかのアプリケーションにおいて、局所機構はこれをするでしょう。(そこでは、アクセス制御情報を作成する人が、各校長にメカニズムを知って、指定しなければなりませんか、またはノードの上のシステム管理者は名前をメカニズムに写像するデータベースを維持しなければなりません)。3つのアプリケーションがscaleabilityがそのようなメカニズムを作るところで気にするようになります。
Kaufman [Page 87] RFC 1507 DASS September 1993
コーフマン[87ページ]RFC1507ダス1993年9月
implausible:
信じがたい:
a) To transparently secure proxy-based applications (like rlogin) in an environment where some hosts have been upgraded to support DASS and some have not, a node must be willing to accept connections authenticated only by their network addresses but only if they can be assured that such nodes do not have DASS installed. Access to a resource becomes secure without administrative action when all nodes authorized to access it have been upgraded.
a) 環境における何人かのホストがダスをサポートするためにアップグレードして、何かがアップグレードしていなかった透過的に安全なプロキシベースのアプリケーション(rloginのような)と、ノードは、彼らのネットワーク・アドレスにもかかわらず、そのようなノードでダスをインストールしないことをそれらを保証できるだけであるかどうかによって認証された接続を受け入れても構わないと思っているに違いありません。 それにアクセスするのが認可されたすべてのノードがアップグレードしたとき、リソースへのアクセスは管理動作なしで安全になります。
In this scenario, the server node must be able to determine whether the client node is DASSless in a secure fashion.
このシナリオでは、サーバノードは、安全なファッションでクライアントノードがDASSlessであるかどうか決定できなければなりません。
b) Similarly, in a mixed environment where some servers are running DASS and some are not, it may be desirable for clients to authenticate servers if they can but it would be unacceptable for a client to stop being able to access a DASSless server once DASS is installed on the client. In such a situation where server authentication is desirable but not essential, the client would like to determine in a secure fashion whether the server can accept DASS authentication.
b) そうすることができるならいくつかのサーバが実行しているダスであり、何かがそのようなダスでない複雑な環境で、同様に、クライアントがサーバを認証するのが、望ましいかもしれませんが、クライアントが、ダスがいったんクライアントの上にインストールされるとDASSlessサーバにアクセスできるのを止めるのは、容認できないでしょう。 サーバ証明が望ましいのですが、不可欠でないそのような状況で、クライアントは、サーバがダスの認証を受け入れることができるかどうかと安全なファッションで決心したがっています。
c) In a DASS/Kerberos interoperability scenario, a server may decide that Kerberos authentication is "good enough" for principals that do not have DASS credentials without introducing trust in on-line authorities when DASS credentials are available. In parallel with case 1, we want it to be true that when the last principal with authority to access an object is upgraded to DASS, we automatically cease to trust PasswdEtc servers without administrative action on the part of the object owner. For this purpose, the authenticator must learn in a secure fashion that the principal is incapable of DASS authentication.
c) ダス/ケルベロス相互運用性シナリオでは、サーバは、ダス資格証明書が利用可能であるときにオンライン当局で信頼を導入しないでダス資格証明書を持っていない校長にとって、ケルベロス認証が「十分良い」と決めるかもしれません。 ケース1と平行して、私たちは、オブジェクトにアクセスする権威がある最後の主体であるときに、本当に、それがダスにアップグレードするということであって欲しいと思って、オブジェクト所有者側の管理動作なしでPasswdEtcサーバを信じるのを自動的にやめます。 このために、固有識別文字は、主体がダスの認証で不可能であることを安全なファッションで学ばなければなりません。
Reliably determining DASSlessness is optional for implementations of DASS and for applications. No other capabilities of DASS rely on this one.
ダスの実装とアプリケーションに、DASSlessnessを確かに決定するのは任意です。 ダスの他のどんな能力もこれを当てにしません。
The interface to the DASSlessness inquiry function is specified as a call independent of all others. This capability must be exposed to the calling application so that a server that receives a request and no token can ask whether the named principal should be believed without a token. It might improve performance and usability if in real interfaces DASSlessness were returned in addition to a bad status on the function that creates a token if the token is targeted toward a server incapable or processing it. An application could then decide whether to make the request without a token (and give up
DASSlessness問い合せ機能へのインタフェースはすべての他のものの如何にかかわらず呼び出しとして指定されます。 要求を受けますが、何かトークンは受けないサーバが、命名された主体がトークンなしで信じられるべきであるかどうか尋ねることができるように、呼ぶアプリケーションにこの能力を暴露しなければなりません。 本当のインタフェースでトークンがサーバに向かって不可能な状態で狙うか、またはそれを処理しているならトークンを作成する機能の悪い状態に加えてDASSlessnessを返すなら、それは性能とユーザビリティを向上させるでしょうに。 次に、アプリケーションが、トークンなしで要求をするかどうか決めるかもしれない、(あきらめてください。
Kaufman [Page 88] RFC 1507 DASS September 1993
コーフマン[88ページ]RFC1507ダス1993年9月
server authentication) or to abort the request.
サーバ証明、)、要求を中止するために。
3.11.1 Query DASSlessness
3.11.1 質問DASSlessness
Query_DASSlessness( --inputs verifying_credentials Credentials, principal_name Name, --outputs alternate_authentication Set of OIDs)
質問_DASSlessness(--_資格証明書Credentials、主体_名前Nameについて確かめる入力--出力はOIDsの_認証Setを交替します)
This function uses the verifying credentials to search for an alternative authentication mechanism certificate for the named principal or for any CA on the path between the verifying credentials and the named principal. Such a certificate is identical to an DASS X.509 certificate except that it lists a different algorithm identifier for the public key of the subject than that expected by DASS.
この機能は、命名された主体かどんなカリフォルニアのための検証資格証明書と命名された主体の間の経路の代替の認証機構証明書も検索するのに検証資格証明書を使用します。 対象の公開鍵のためのダスによって予想されたそれと異なったアルゴリズム識別子をリストアップするのを除いて、そのような証明書はDASS X.509証明書と同じです。
This function is implemented identically to Get_Pub_Keys except:
以下を除いて、この機能は同様にGet_Pub_キーズに実装されます。
a) If in any set of certificates found, no valid DASS certificate is found and one or more certificates are found that would otherwise be valid except for an invalid subject public key OID, the OID from that certificate or certificates is returned and the algorithm terminates.
a) どんなセットの証明書でも見つけられるなら、どんな有効なダス証明書も見つけられません、そして、1通以上のそうでなければその証明書か証明書からのOID、OIDを返して、アルゴリズムが終える無効の対象の公開鍵を除いて、有効な証明書が見つけられます。
b) On initial execution, Try_Hard=False. If the first execution fails to retrieve any valid PK/UID pairs but also fails to find any invalid OID certificates, repeat the execution with Try_Hard=True.
b) 初期の実行のときに、Try_Hardは偽と等しいです。 最初の実行がどんな有効なPK/UID組も救済しませんが、どんな無効のOID証明書もまた見つけないなら、Try_Hard=が本当の状態で実行を繰り返してください。
c) If the either execution finds PK/UID pairs or if neither finds and invalid OID certificates, fail by returning a null set.
c) 実行はPK/UID組に当たるか、またはどちらの掘り出し物と無効のOID証明書であるなら、零集合を返しながら、失敗してください。
4. Certificate and message formats
4. 証明書とメッセージ・フォーマット
4.1 ASN.1 encoding
4.1 ASN.1コード化
Some definitions are taken from X.501 and X.509.
X.501とX.509からいくつかの定義を取ります。
Dass DEFINITIONS ::=
ダスDEFINITIONS:、:=
BEGIN
始まってください。
--CCITT Definitions:
--CCITT定義:
joint-iso-ccitt OBJECT IDENTIFIER ::= {2}
共同iso-ccitt OBJECT IDENTIFIER:、:= {2}
Kaufman [Page 89] RFC 1507 DASS September 1993
コーフマン[89ページ]RFC1507ダス1993年9月
ds OBJECT IDENTIFIER ::= {joint-iso-ccitt 5} algorithm OBJECT IDENTIFIER ::= {ds 8} encryptionAlgorithm OBJECT IDENTIFIER ::= {algorithm 1} hashAlgorithm OBJECT IDENTIFIER ::= {algorithm 2} signatureAlgorithm OBJECT IDENTIFIER ::= {algorithm 3} rsa OBJECT IDENTIFIER ::= {encryptionAlgorithm 1}
ds OBJECT IDENTIFIER:、:= 共同iso-ccitt5アルゴリズムOBJECT IDENTIFIER:、:= ds8encryptionAlgorithmオブジェクト識別子:、:= アルゴリズム1hashAlgorithmオブジェクト識別子:、:= アルゴリズム2signatureAlgorithmオブジェクト識別子:、:= アルゴリズム3rsa OBJECT IDENTIFIER:、:= encryptionAlgorithm1
iso OBJECT IDENTIFIER ::= {1} identified-organization OBJECT IDENTIFIER ::= {iso 3} ecma OBJECT IDENTIFIER ::= {identified-organization 12} member-company OBJECT IDENTIFIER ::= {ecma 2} digital OBJECT IDENTIFIER ::= {member-company 1011}
iso OBJECT IDENTIFIER:、:= 1 特定された組織OBJECT IDENTIFIER:、:= iso3ecma OBJECT IDENTIFIER:、:= 特定された組織12連盟会社OBJECT IDENTIFIER:、:= ecma2のデジタルOBJECT IDENTIFIER:、:= 連盟会社1011
--1989 OSI Implementors Workshop "Stable" Agreements
--1989のOSI作成者ワークショップ「うまや」協定
oiw OBJECT IDENTIFIER ::= {identified-organization 14} dssig OBJECT IDENTIFIER ::= {oiw 7} oiwAlgorithm OBJECT IDENTIFIER ::= {dssig 2} oiwEncryptionAlgorithm OBJECT IDENTIFIER ::= {oiwAlgorithm 1} oiwHashAlgorithm OBJECT IDENTIFIER ::= {oiwAlgorithm 2} oiwSignatureAlgorithm OBJECT IDENTIFIER ::= {oiwAlgorithm 3} oiwMD2 OBJECT IDENTIFIER ::= {oiwHashAlgorithm 1} --null parameter oiwMD2withRSA OBJECT IDENTIFIER ::= {oiwSignatureAlgorithm 1} --null parameter
oiw OBJECT IDENTIFIER:、:= 特定された組織14、dssig OBJECT IDENTIFIER:、:= oiw7oiwAlgorithmオブジェクト識別子:、:= dssig2oiwEncryptionAlgorithmオブジェクト識別子:、:= oiwAlgorithm1oiwHashAlgorithmオブジェクト識別子:、:= oiwAlgorithm2oiwSignatureAlgorithmオブジェクト識別子:、:= oiwAlgorithm3oiwMD2オブジェクト識別子:、:= oiwHashAlgorithm1--ヌルパラメタoiwMD2withRSA OBJECT IDENTIFIER:、:= oiwSignatureAlgorithm1--ヌルパラメタ
--X.501 definitions
--X.501定義
AttributeType ::= OBJECT IDENTIFIER AttributeValue ::= ANY AttributeValueAssertion ::= SEQUENCE {AttributeType,AttributeValue}
AttributeType:、:= 識別子AttributeValueは反対します:、:= どんなAttributeValueAssertionも:、:= 系列AttributeType、AttributeValue
Name ::= CHOICE { --only one for now RDNSequence } RDNSequence ::= SEQUENCE OF RelativeDistinguishedName DistinguishedName ::= RDNSequence
以下を命名してください:= CHOICE、--、当分間の1だけ、RDNSequence、RDNSequence:、:= RelativeDistinguishedName DistinguishedNameの系列:、:= RDNSequence
RelativeDistinguishedName ::= SET OF AttributeValueAssertion
RelativeDistinguishedName:、:= AttributeValueAssertionのセット
--X.509 definitions (with proposed 1992 extensions presumed)
--X.509定義(1992の提案された拡大が推定されている)
ENCRYPTED MACRO ::= BEGIN TYPE NOTATION ::= type(ToBeEnciphered) VALUE NOTATION ::= value(VALUE BIT STRING) END -- of ENCRYPTED
暗号化されたマクロ:、:= タイプ記法を始めてください:、:= (ToBeEnciphered)値の記法をタイプしてください:、:= 暗号化されることの値(値のビット列)の終わり
Kaufman [Page 90] RFC 1507 DASS September 1993
コーフマン[90ページ]RFC1507ダス1993年9月
SIGNED MACRO ::= BEGIN TYPE NOTATION ::= type (ToBeSigned) VALUE NOTATION ::= value (VALUE SEQUENCE{ ToBeSigned, AlgorithmIdentifier, --of the algorithm used to --generate the signature ENCRYPTED OCTET STRING --where the octet string is the --result of the hashing of the --value of "ToBeSigned" } ) END -- of SIGNED
署名しているマクロ:、:= タイプ記法を始めてください:、:= (ToBeSigned)VALUE NOTATIONをタイプしてください:、:= 値、(VALUE SEQUENCE、ToBeSigned、アルゴリズムのAlgorithmIdentifierは以前はよくそうしていました--八重奏ストリングが生成するところで署名がENCRYPTED OCTET STRINGであると生成してください、--、論じ尽くすことが結果として生じる、--、"ToBeSigned"の値、)、SIGNEDのEND
SIGNATURE MACRO ::= BEGIN TYPE NOTATION ::= type (OfSignature) VALUE NOTATION ::= value (VALUE SEQUENCE { AlgorithmIdentifier, --of the algorithm used to compute ENCRYPTED OCTET STRING -- the signature where the octet -- string is a function (e.g., a -- compressed or hashed version) -- of the value 'OfSignature', -- which may include the -- identifier of the algorithm -- used to compute the signature } ) END -- of SIGNATURE
署名マクロ:、:= タイプ記法を始めてください:、:= (OfSignature)VALUE NOTATIONをタイプしてください:、:= 値、(VALUE SEQUENCE、ENCRYPTED OCTET STRINGを計算するのに使用されるアルゴリズムのAlgorithmIdentifier、署名、ストリングが機能(例えば、a--圧縮されたか論じ尽くされたバージョン)であるという値の'OfSignature'(そうするかもしれない)の八重奏が含むどこ、以前はよく署名を計算していたか、(アルゴリズムに関する識別子))、SIGNATUREのEND
Certificate ::= SIGNED SEQUENCE { version [0] Version DEFAULT v1988, serialNumber CertificateSerialNumber, signature AlgorithmIdentifier, issuer Name, valid Validity, subject Name, subjectPublicKey SubjectPublicKeyInfo, issuerUID [1] IMPLICIT UID OPTIONAL, -- v1992 subjectUID [2] IMPLICIT UID OPTIONAL -- v1992 }
以下を証明してください:= 系列であると署名されます。バージョン[0]バージョンDEFAULT v1988、serialNumber CertificateSerialNumber、署名AlgorithmIdentifier、発行人Name(有効なValidity)はName、subjectPublicKey SubjectPublicKeyInfo、issuerUID[1]IMPLICIT UID OPTIONAL--v1992 subjectUID[2]IMPLICIT UID OPTIONAL--v1992をかけます。
--The Algorithm Identifier for both the signature field
--両方の署名分野へのAlgorithm Identifier
Kaufman [Page 91] RFC 1507 DASS September 1993
コーフマン[91ページ]RFC1507ダス1993年9月
--and in the signature itself is: -- oiwMD2withRSA (1.3.14.7.2.3.1)
--コネ、署名自体は以下の通りです。 -- oiwMD2withRSA(1.3.14.7.2.3.1)
Version ::= INTEGER {v1988(0), v1992(1)}
バージョン:、:= 整数v1988(0)、v1992(1)
CertificateSerialNumber ::= INTEGER
CertificateSerialNumber:、:= 整数
Validity ::= SEQUENCE { NotBefore UTCTime, NotAfter UTCTime }
正当性:、:= 系列NotBefore UTCTime、NotAfter UTCTime
AlgorithmIdentifier ::= SEQUENCE { algorithm OBJECT IDENTIFIER, parameter ANY DEFINED BY algorithm OPTIONAL }
AlgorithmIdentifier:、:= 系列アルゴリズムOBJECT IDENTIFIER、パラメタANY DEFINED BYアルゴリズムOPTIONAL
--The algorithms we support in one context or another are: --oiwMD2withRSA (1.3.14.7.2.3.1) with parameter NULL --rsa (2.5.8.1.1) with parameter keysize INTEGER which is -- the keysize in bits --decDEA (1.3.12.1001.7.1.2) with optional parameter -- missing --decDEAMAC (1.3.12.2.1011.7.3.3) with optional parameter -- missing
--私たちが何らかの文脈でサポートするアルゴリズムは以下の通りです。 --oiwMD2withRSA、(1.3、.14、.7、.2、.3、パラメタNULL --rsaがある.1、)(2.5 .8 .1 .1) そうするパラメタkeysize INTEGERと共に--、ビット--decDEAでkeysizeする、(1.3 .12 .1001 .7 .1 .2) 任意のパラメタで--、なくなった--decDEAMAC、(1.3 .12 .2 .1011 .7 .3 .3) 任意のパラメタで--、なくなる。
SubjectPublicKeyInfo ::= SEQUENCE { algorithm AlgorithmIdentifier, -- rsa (2.5.8.1.1) subjectPublicKey BIT STRING -- the "bits" further decode into a DASS public key }
SubjectPublicKeyInfo:、:= 系列アルゴリズムAlgorithmIdentifier--rsaする、(2.5、.8、.1、.1)subjectPublicKey BIT STRING、--「ビット」がさらにダス公開鍵に解読する
UID ::= BIT STRING
UID:、:= ビット列
-- the following definitions are for Digital specified Algorithms
-- 以下の定義はDigitalの指定されたAlgorithmsのためのものです。
cryptoAlgorithm OBJECT IDENTIFIER ::= {digital 7}
cryptoAlgorithmオブジェクト識別子:、:= デジタル7
decEncryptionAlgorithm OBJECT IDENTIFIER ::= {cryptoAlgorithm 1} decHashAlgorithm OBJECT IDENTIFIER ::= {cryptoAlgorithm 2} decSignatureAlgorithm OBJECT IDENTIFIER ::= {cryptoAlgorithm 3} decDASSLessness OBJECT IDENTIFIER ::= {cryptoAlgorithm 6}
decEncryptionAlgorithmオブジェクト識別子:、:= cryptoAlgorithm1decHashAlgorithmオブジェクト識別子:、:= cryptoAlgorithm2decSignatureAlgorithmオブジェクト識別子:、:= cryptoAlgorithm3decDASSLessnessオブジェクト識別子:、:= cryptoAlgorithm6
decMD2withRSA OBJECT IDENTIFIER ::= {decSignatureAlgorithm 1} decMD4withRSA OBJECT IDENTIFIER ::= {decSignatureAlgorithm 2} decDEAMAC OBJECT IDENTIFIER ::= {decSignatureAlgorithm 3}
decMD2withRSAオブジェクト識別子:、:= decSignatureAlgorithm1decMD4withRSAオブジェクト識別子:、:= decSignatureAlgorithm2decDEAMACオブジェクト識別子:、:= decSignatureAlgorithm3
Kaufman [Page 92] RFC 1507 DASS September 1993
コーフマン[92ページ]RFC1507ダス1993年9月
decDEA OBJECT IDENTIFIER ::= {decEncryptionAlgorithm 2} decMD2 OBJECT IDENTIFIER ::= {decHashAlgorithm 1} decMD4 OBJECT IDENTIFIER ::= {decHashAlgorithm 2}
decDEAオブジェクト識別子:、:= decEncryptionAlgorithm2decMD2オブジェクト識別子:、:= decHashAlgorithm1decMD4オブジェクト識別子:、:= decHashAlgorithm2
ShortPosixTime ::= INTEGER -- number of seconds since base time
ShortPosixTime:、:= INTEGER--秒数は以来、時間を基礎づけます。
LongPosixTime ::= SEQUENCE { INTEGER, -- number of seconds since base time INTEGER -- number of nanoseconds since second }
LongPosixTime:、:= 系列INTEGER--ベース時間INTEGER以来の秒数--2番目以来の数ナノ秒の数
ShortPosixValidity ::= SEQUENCE { notBefore ShortPosixTime, notAfter ShortPosixTime }
ShortPosixValidity:、:= 系列notBefore ShortPosixTime、notAfter ShortPosixTime
-- Note: Annex C of X.509 prescribes the following format for the -- representation of a public key, but does not give the structure -- a name.
-- 以下に注意してください。 X.509の別館Cが以下の形式を定める、--構造を与えないのを除いた公開鍵の表現、名前。
DASSPublicKey ::= SEQUENCE { modulus INTEGER, exponent INTEGER }
DASSPublicKey:、:= 系列係数INTEGER、解説者INTEGER
DASSPrivateKey ::= SEQUENCE { p INTEGER , -- prime p q [0] IMPLICIT INTEGER OPTIONAL , -- prime q mod[1] IMPLICIT INTEGER OPTIONAL, -- modulus exp [2] IMPLICIT INTEGER OPTIONAL, -- public exponent dp [3] IMPLICIT INTEGER OPTIONAL , -- exponent mod p dq [4] IMPLICIT INTEGER OPTIONAL , -- exponent mod q cr [5] IMPLICIT INTEGER OPTIONAL , -- Chinese --remainder coefficient uid[6] IMPLICIT UID OPTIONAL, more[7] IMPLICIT BIT STRING OPTIONAL --Reserved for --future use }
DASSPrivateKey:、:= 系列{p INTEGER--予約されていた状態でp q[0]IMPLICIT INTEGER OPTIONAL([1] IMPLICIT INTEGER OPTIONAL--係数exp[2]IMPLICIT INTEGER OPTIONAL--公共の解説者dp[3]IMPLICIT INTEGER OPTIONAL--解説者モッズp dq[4]IMPLICIT INTEGER OPTIONAL--主要なqモッズ解説者モッズq cr[5]IMPLICIT INTEGER OPTIONAL--中国語--残り係数uid[6] IMPLICIT UID OPTIONAL、より多くの[7]IMPLICIT BIT STRING OPTIONAL)を用意してください--今後の使用}
LocalUserName ::= OCTET STRING ChannelId ::= OCTET STRING VersionNumber ::= OCTET STRING (SIZE(3)) -- first octet is major version -- second octet is minor version -- third octet is ECO rev. versionZero VersionNumber ::= '000000'H
LocalUserName:、:= 八重奏ストリングChannelId:、:= 八重奏ストリングVersionNumber:、:= OCTET STRING、(SIZE(3))--最初の八重奏は主要なバージョンです--2番目の八重奏はさ細なバージョンです--3番目の八重奏はECOが. versionZero VersionNumberを回転させるということです:、:= '000000'H
Kaufman [Page 93] RFC 1507 DASS September 1993
コーフマン[93ページ]RFC1507ダス1993年9月
Authenticator ::= SIGNED SEQUENCE { type BIT STRING, -- first bit `delegation required' -- second bit `Mutual Authentication Requested' whenSigned LongPosixTime , channelId [3] IMPLICIT ChannelId OPTIONAL -- channel bindings are included when doing the -- signature, but excluded when transmitting the -- Authenticator } -- uses decDEAMAC (1.3.12.2.1011.7.3.3)
固有識別文字:、:= するとき、{BIT STRINGをタイプしてください--'委譲が必要とした最初のビット'('互いのAuthentication Requested'whenSigned LongPosixTimeは2番目に噛み付きました、channelId[3]IMPLICIT ChannelId OPTIONAL)というSIGNED SEQUENCEチャンネル結合が含まれている、--、署名にもかかわらず、除かれる、伝えると--、固有識別文字、--、decDEAMACを使用します。(1.3.12.2.1011.7.3.3)
EncryptedKey ::= SEQUENCE { algorithm AlgorithmIdentifier, -- uses rsa (2.5.8.1.1) encryptedAuthKey BIT STRING -- as defined in section 4.4.5 }
EncryptedKey:、:= 系列アルゴリズムAlgorithmIdentifier、--、用途がrsaされる(2.5、.8、.1、定義されたコネセクション4.4.5としての.1)encryptedAuthKey BIT STRING
SignatureOnEncryptedKey ::= SIGNATURE EncryptedKey -- uses oiwMD2withRSA (1.3.14.7.2.3.1) -- Signature bits computed over EncryptedKey structure
SignatureOnEncryptedKey:、:= SIGNATURE EncryptedKey--、oiwMD2withRSAを使用する、(1.3、.14、.7、.2、.3、ビットがEncryptedKey構造で計算した.1)--署名
LoginTicket ::= SIGNED SEQUENCE { version [0] IMPLICIT VersionNumber DEFAULT versionZero, validity ShortPosixValidity , subjectUID UID , delegatingPublicKey SubjectPublicKeyInfo } -- uses oiwMD2withRSA (1.3.14.7.2.3.1)
LoginTicket:、:= SIGNED SEQUENCE、バージョン[0]IMPLICIT VersionNumber DEFAULT versionZero、正当性ShortPosixValidity、subjectUID UID、delegatingPublicKey SubjectPublicKeyInfo--、oiwMD2withRSAを使用します。(1.3.14.7.2.3.1)
Delegator ::= SEQUENCE { algorithm AlgorithmIdentifier -- decDEA encryption (1.3.12.1001.7.1.2) encryptedPrivKey ENCRYPTED DASSPrivateKey, -- (only p is included) }
Delegator:、:= 系列アルゴリズムAlgorithmIdentifier--、decDEA暗号化、(1.3 .12 .1001 .7 .1 .2)encryptedPrivKey ENCRYPTED DASSPrivateKey--、(pだけが含まれています)
UserClaimant ::= SEQUENCE { userTicket [0] IMPLICIT LoginTicket, evidence CHOICE { delegator [1] IMPLICIT Delegator , -- encrypted delegation private key -- under DES authenticating key -- present if delegating sharedKeyTicketSignature [2]
UserClaimant:、:= SEQUENCE、userTicket[0]IMPLICIT LoginTicket、証拠CHOICE、sharedKeyTicketSignatureを代表として派遣するなら、「反-遺贈者」[1]IMPLICIT Delegator(キーを認証するDESの下の暗号化された委譲秘密鍵)は提示します。[2]
Kaufman [Page 94] RFC 1507 DASS September 1993
コーフマン[94ページ]RFC1507ダス1993年9月
IMPLICIT SignatureOnEncryptedKey -- present if not delegating } , userName [3] IMPLICIT Name OPTIONAL -- name of user principal }
IMPLICIT SignatureOnEncryptedKey--そうでなければ、代表として派遣することを提示してください。 , ユーザ校長における名義のuserName[3]IMPLICIT Name OPTIONAL
EncryptedKeyandUserName ::= SEQUENCE { encryptedKey EncryptedKey , username LocalUserName }
EncryptedKeyandUserName:、:= 系列encryptedKey EncryptedKey、ユーザ名LocalUserName
SignatureOnEncryptedKeyandUserName ::= SIGNATURE EncryptedKeyandUserName -- uses oiwMD2withRSA (1.3.14.7.2.3.1) -- Signature bits computed over -- EncryptedKeyandUserName structure -- using node private key }
SignatureOnEncryptedKeyandUserName:、:= SIGNATURE EncryptedKeyandUserName--、oiwMD2withRSAを使用する、(1.3、.14、.7、ノード秘密鍵を使用して、.3.1(ビットが計算した署名))EncryptedKeyandUserNameが構造化する.2
NodeClaimant ::= SEQUENCE { nodeTicket Signature[0] IMPLICIT SignatureOnEncryptedKeyandUserName, nodeName [1] IMPLICIT Name OPTIONAL, username [2] IMPLICIT LocalUserName OPTIONAL }
NodeClaimant:、:= 系列nodeTicket Signature[0] IMPLICIT SignatureOnEncryptedKeyandUserName、nodeName[1]IMPLICIT Name OPTIONAL、ユーザ名[2]IMPLICIT LocalUserName OPTIONAL
AuthenticationToken ::= SEQUENCE { version [0] IMPLICIT VersionNumber DEFAULT versionZero, authenticator [1] IMPLICIT Authenticator , encryptedKey [2] IMPLICIT EncryptedKey OPTIONAL , -- required if initiating token userclaimant [3] IMPLICIT UserClaimant OPTIONAL , -- missing if only doing node authentication -- required if not doing node authentication nodeclaimant [4] IMPLICIT NodeClaimant OPTIONAL -- missing if only doing principal authentication -- required if not doing principal authentication }
AuthenticationToken:、:= 系列バージョン[0]IMPLICIT VersionNumber DEFAULT versionZero、必要である、または主要な認証をして、固有識別文字[1]IMPLICIT Authenticator(encryptedKey[2]IMPLICIT EncryptedKey OPTIONAL(象徴userclaimant[3]IMPLICIT UserClaimant OPTIONALを開始するなら、ノード認証をするだけであるなら消えて、必要である))はそうでなければ、主要な認証をするだけであるなら消えて、ノード認証nodeclaimant[4]IMPLICIT NodeClaimant OPTIONALをするのを必要としました。
MutualAuthenticationToken ::= CHOICE { v1Response [0] IMPLICIT OCTET STRING (SIZE(6)) -- Constructed as follows: A single DES block -- of eight octets is constructed from the two -- integers in the timestamp. First four bytes -- are the high order integer encoded MSB -- first; Last four bytes are the low order
MutualAuthenticationToken:、:= CHOICE、v1Response[0]IMPLICIT OCTET STRING、(8つの八重奏のSIZE(6))(以下の通り: 1DESブロックして組み立てられる)は2から組み立てられます--タイムスタンプの整数、最初の4バイト--高位整数であることはMSBをコード化しました--1番目、最後の4バイトは下位です。
Kaufman [Page 95] RFC 1507 DASS September 1993
コーフマン[95ページ]RFC1507ダス1993年9月
-- integer encoded MSB first. The block is -- encrypted using the shared DES key, and -- the first six bytes are the OCTET STRING. -- With the [0] type and 6-byte length, the -- MutualAuthenticationToken has a fixed -- length of eight bytes. } END
-- 整数は最初に、MSBをコード化しました。 そして、ブロックはそうです--共有されたDESキーを使用することでコード化される、--最初の6バイトはOCTET STRINGです。 -- [0]タイプと6バイトの長さで--MutualAuthenticationTokenは麻薬を注射します--8バイトの長さ } 終わり
4.2 Encoding Rules
4.2 規則をコード化すること。
Whenever a structure is to be signed it must always be constructed the same way. This is particularly important where a signed structure has to be reconstructed by the recipient before the signature is verified. The rules listed below are taken from X.509.
サインされる構造がことであるときはいつも、同じようにそれをいつも組み立てなければなりません。 署名が確かめられる前にこれはサインされた構造が受取人によって再建されなければならないところで特に重要です。 X.509から以下に記載された規則を取ります。
- the definite form of length encoding shall be used, encoded in the minimum number of octets;
- 長さのコード化の已然形は、八重奏の最小の数で中古で、コード化するようになるでしょう。
- for string types, the constructed form of encoding shall not be used;
- ストリングタイプのために、組み立てられたフォームのコード化を使用しないものとします。
- if the value of a type is its default value, it shall be absent;
- タイプの値がデフォルト値であるなら、欠けるでしょう。
- the components of a Set type shall be encoded in ascending order of their tag value;
- Setタイプの成分はそれらのタグ価値の昇順でコード化されるものとします。
- the components of a Set-of type shall be encoded in ascending order of their octet value;
- aのコンポーネント、Set、-、タイプはそれらの八重奏価値の昇順でコード化されるものとします。
- if the value of a Boolean type is true, the encoding shall have its contents octet set to `FF'16;
- ブールタイプの値が本当であるなら、コード化で、'FF16年'にコンテンツ八重奏を設定するものとします。
- each unused bits in the final octet of the encoding of a BitString value, if there are any, shall be set to zero;
- それぞれ、いずれかあれば、BitString価値のコード化の最終的な八重奏における未使用のビットはゼロに設定されるものとします。
- the encoding of a Real type shall be such that bases 8, 10 and 16 shall not be used, and the binary scaling factor shall be zero.
- ベース8、10、および16を使用しないものとして、2進のけた移動子がゼロになるようにレアルタイプのコード化はものになるでしょう。
4.3 Version numbers and forward compatibility
4.3 バージョン番号と下位互換
The LoginTicket and AuthenticationToken structures contain a three octet version identifier which is intended to ease transition to future revisions of this architecture. The default value, and the value which should always be supplied by implementations of this version of the architecture is 0.0.0
LoginTicketとAuthenticationToken構造はこの構造の今後の改正への変遷を緩和することを意図する3八重奏バージョン識別子を含んでいます。 デフォルト値、およびいつも供給して、構造のこのバージョンの実現が0.0であるということであるべきである値、.0
Kaufman [Page 96] RFC 1507 DASS September 1993
コーフマン[96ページ]RFC1507ダス1993年9月
(three zero octets). The first octet is the major version. An implementation of this version of the architecture should refuse to process data structures where it is other than zero, because changing it indicates that the interpretation of some subsidiary data structure has changed. The second octet is the minor version. An implementation of this version of the architecture should ignore the value of this octet. Some future version of the architecture may set a value other than zero and may specify some different processing of the remainder of the structure based on that different value. Such a change would be backward compatible and interoperable. The third octet is the ECO revision. No implementation should make any processing decisions based on the value of that octet. It may be logged, however, to help in debugging interoperability problems.
(3は八重奏のゼロに合っています。) 最初の八重奏は主要なバージョンです。 構造のこのバージョンの実現は、ゼロを除いて、それがあるデータ構造を処理するのを拒否するべきです、それを変えるのが、何らかの補助のデータ構造の解釈が変化したのを示すので。 2番目の八重奏はさ細なバージョンです。 構造のこのバージョンの実現はこの八重奏の値を無視するべきです。 構造の何らかの将来のバージョンが、ゼロ以外の値を設定して、その異価に基づく構造の残りの何らかの異なった処理を指定するかもしれません。 そのような変化は互換性があって共同利用できた状態で後方でしょう。 3番目の八重奏はECO改正です。 どんな実現もその八重奏の値に基づくどんな処理決定もするべきではありません。 しかしながら、それは、相互運用性問題をデバッグするのを手伝うために登録されるかもしれません。
In the CDC protocol, there is also a three octet version numbering scheme, where versions 1.0.0 and 2.0.0 have been defined. Implementations should follow the same rules above and reject major version numbers greater than 2.
そこでCDCでは、議定書を作ってください。3八重奏バージョンナンバリングスキームも、どこがバージョン1.0.0であるか、そして、2.0に、.0は定義されました。 実現は、上の同じ規則に従って、2以上のメジャーバージョン番号を拒絶するべきです。
ASN.1 is inherently extensible because it allows new fields to be added "onto the end" of existing data structures in an unambiguous way. Implementations of DASS are encouraged to ignore any such additional fields in order to enhance backwards compatibility with future versions of the architecture. Unfortunately, commonly available ASN.1 compilers lack this capability, so this behavior cannot reasonably be required and may limit options for future extensions.
新しい分野がそれで「終わり」に加えるので、ASN.1は本来既存のデータ構造で明白な方法で広げることができます。 ダスの実現が後方に構造の将来のバージョンとの互換性を高めるためにそのようなどんな追加分野も無視するよう奨励されます。 残念ながら、一般的に利用可能なASN.1コンパイラがこの能力を欠いているので、この振舞いは、合理的に必要であることができなく、今後の拡大のためのオプションを制限するかもしれません。
4.4 Cryptographic Encoding
4.4 暗号のコード化
Some of the substructures listed in the previous sections are specified as ENCRYPTED OCTET STRINGs containing encrypted information. DASS uses the DES, RSA, and MD2 cryptosystems Each of those cryptosystems specifies a function from octet string into another in the presence of a key (except MD2, which is keyless). This section describes how to form the octet strings on which the DES and RSA operations are performed.
前項で記載された基礎のいくつかがコード化された情報を含むENCRYPTED OCTET STRINGsとして指定されます。 ダス用途のDES、RSA、およびそれらの暗号系のMD2暗号系Eachはキー(キーがないMD2を除いた)があるとき八重奏ストリングから別のものに機能を指定します。 このセクションはDESとRSA操作が実行される八重奏ストリングを形成する方法を説明します。
4.4.1 Algorithm Independence vs. Key Parity
4.4.1 アルゴリズム独立対主要な同等
All of the defined encodings for DASS for secret key encryption are based on DES. It is intended, however, that other cryptosystems could be substituted without any other changes for formats or algorithms. The required "form factor" for such a cryptosystem is that it have a 64 bit key and operate on 64 bit blocks (this appears to be a common form factor for a cryptosystem). For this reason, DES keys are in all places
秘密鍵暗号化のためのダスのための定義されたencodingsのすべてがDESに基づいています。 しかしながら、変化なしでいかなる他のも形式かアルゴリズムに他の暗号系を代入できたことを意図します。そのような暗号系に、必要な「形状因子」は64ビットのキーを持って、64ビットのブロックを作動させるということ(これは暗号系のための一般的な形状因子であるように見える)です。 この理由で、DESキーがすべての場所にあります。
Kaufman [Page 97] RFC 1507 DASS September 1993
コーフマン[97ページ]RFC1507ダス1993年9月
treated as though they were 64 bits long rather than 56. Only in the operation of the algorithm itself are eight bits of the key dropped and key parity bits substituted. Choosing a key always involves picking a 64 bit random number.
まるでそれらが56よりむしろ長さ64ビットであるかのように、扱われます。 キーの8ビットはアルゴリズム自体の操作だけで落とされました、そして、主要なパリティビットは代理をしました。 キーを選ぶのは、いつも64の噛み付いている乱数を選ぶことを伴います。
4.4.2 Password Hashing
4.4.2 パスワードの論じ尽くすこと
Encrypted credentials are encrypted using DES as described in the next section. The key for that encryption is derived from the user's password and name by the following algorithm:
コード化された信任状は、次のセクションで説明されるようにDESを使用することでコード化されています。 ユーザのパスワードと名前から以下のアルゴリズムでその暗号化のためのキーを得ます:
a) Put the rightmost RDN of the user's name in canonical form according to BER and the X.509 encoding rules. For any string types that are case insensitive, map to upper case, and where matching is independent of number of spaces collapse all multiple spaces to a single space and delete leading and trailing spaces.
a) BERとX.509符号化規則に従って、ユーザの名前の一番右のRDNを標準形に置いてください。 大文字、およびどこへの地図が合っていて、大文字と小文字を区別しないタイプの如何にかかわらずあるどんなストリングのためにも、空間の数は、すべての複数の空間をシングルスペースまで潰して、主で引きずっている空間を削除します。
Note: the RDN is used to add "salt" to the hash calculation so that someone can't precompute the hash of all the words in a dictionary and then apply them against all names. Deriving the salt from the last RDN of the name is a compromise. If it were derived from the whole name, all encrypted keys would be obsoleted when a branch of the namespace was renamed. If it were independent of name, interaction with a login agent would take two extra messages to retrieve the salt. With this scheme, encrypted keys are obsoleted by a change in the last RDN and if a final RDN is common to a large number of users, dictionary attacks against them are easier; but the common case works as desired.
以下に注意してください。 RDNは、だれかが辞書のすべての単語の細切れ肉料理を前計算して、次に、すべての名前に対してそれらを適用できないように「塩」を細切れ肉料理計算に加えるのに使用されます。 名前の最後のRDNから塩を得るのは、妥協です。 名前空間のブランチを改名したとき、全部の名前からそれを得るなら、すべてのコード化されたキーを時代遅れにするでしょうに。 それが名前から独立しているなら、ログインエージェントとの相互作用は塩を検索する2つの余分な伝言を受け取るでしょうに。 この計画では、コード化されたキーは最後のRDNにおける変化によって時代遅れにされて、多くのユーザにとって、最終的なRDNが一般的であるなら、それらに対する辞書攻撃は、より簡単です。 しかし、よくある例は望まれているように働いています。
b) Compute TEMP as the MD2 message digest of the concatenation of the password and the RDN computed above.
b) パスワードとRDNの連結のMD2メッセージダイジェストが上で計算されたようにTEMPを計算してください。
c) Repeat the following 40 times: Use the first 64 bits of TEMP as a DES key to encrypt the second 64 bits; XOR the result with the first 64 bits of TEMP; and compute a new TEMP as MD2 of the 128 bit result.
c) 以下の40回繰り返してください: 2番目の64ビットをコード化するために主要なDESとしてTEMPの最初の64ビットを使用してください。 XOR、TEMPの最初の64ビットがある結果。 そして、128のもののMD2が結果に噛み付いたので、新しいTEMPを計算してください。
d) Use the final 64 bits of the result (called hash1) as the key to decrypt the encrypted credentials. Use the first 64 bits (called hash2) as the proof of knowledge of the password for presentation to a login agent (if any).
d) キーとして結果(hash1と呼ばれる)の最終的な64ビットを使用して、コード化された信任状を解読してください。 プレゼンテーションに、パスワードに関する知識の証拠として最初の64ビット(hash2と呼ばれる)をログインエージェント(もしあれば)に使用してください。
Kaufman [Page 98] RFC 1507 DASS September 1993
コーフマン[98ページ]RFC1507ダス1993年9月
4.4.3 Digital DEA encryption
4.4.3 デジタルDEA暗号化
DES encryption is used in the following places:
DES暗号化は以下の場所で使用されます:
- In the encryption of the encrypted credentials structure
- コード化された信任状構造の暗号化で
- To encrypt the delegator in authentication tokens
- 認証象徴で「反-遺贈者」をコード化するために
- To encrypt the time in the mutual authenticator
- 互いの固有識別文字で時間をコード化するために
In the first two cases, a varying length block of information coded in ASN.1 is encrypted. This is done by dividing the block of information into 8 octet blocks, padding the last block with zero bytes if necessary, and encrypting the result using the CBC mode of DES. A zero IV is used.
最初の2つの場合では、ASN.1でコード化された情報の異なったレングス・ブロックはコード化されています。 情報のブロックを8つの八重奏ブロックに分割することによって、これをします、必要なら、バイトのゼロを合わせて、DESのCBCモードを使用することで結果をコード化するのに最後のブロックを水増しして。 AゼロIVは使用されています。
In the third case, a fixed length (8 byte) quantity (a timestamp) is encrypted. The timestamp is mapped to a byte string using "big endian" order and the block is encrypted using the ECB mode of DES.
3番目の場合では、固定長(8バイト)量(タイムスタンプ)はコード化されています。 タイムスタンプは「ビッグエンディアン」オーダーを使用することでバイトストリングに写像されます、そして、ブロックは、DESのECBモードを使用することでコード化されています。
4.4.4 Digital MAC Signing
4.4.4 デジタルMAC調印
DES signing is used in the Authenticator. Here, the signature is computed over an ASN.1 structure. The signature is the CBC residue of the structure padded to a multiple of eight bytes with zeros. The CBC is computed with an IV of zero.
DES調印はAuthenticatorで使用されます。 ここで、署名はASN.1構造で計算されます。 署名はゼロに従った8バイトの倍数に水増しされた構造のCBCの残りです。 CBCはゼロのIVと共に計算されます。
4.4.5 RSA Encryption
4.4.5 RSA暗号化
RSA encryption is used in the Encrypted Shared Key. RSA encryption is best thought of as operating on blocks which are integers rather than octet strings and the results are also integers. Because an RSA encryption permutes the integers between zero and (modulus-1), it is generally thought of as acting on a block of size (keysizeinbits-1) and producing a block of size (keysizeinbits) where keysizeinbits is the smallest number of bits in which the modulus can be represented.
RSA暗号化はEncrypted Shared Keyで使用されます。 RSA暗号化は八重奏ストリングよりむしろ整数であるブロックを作動させると特に考えられます、そして、また、結果は整数です。 RSA暗号化がゼロと(係数-1)の間の整数を並べ替えるので、一般に、それはkeysizeinbitsが係数を表すことができるビットの最も少ない数であるところに1ブロックのサイズ(keysizeinbits-1)に影響して、1ブロックのサイズ(keysizeinbits)を生産すると考えられます。
DASS only supports key sizes which are a multiple of eight bits (This restriction is only required to support interoperation with certain existing implementations. If the key size is not a multiple of eight bits, the high order byte may not be able to hold values as large as the mandated '64'. This is not a problem so long as the two high order bytes together are non-zero, but certain early implementations check for the value '64' and will not interoperate with implementations that use some other value.).
ダスは8ビットの倍数である主要なサイズを支持するだけです。(この制限が、ある既存の実現でinteroperationを支持するのに必要であるだけです。 '主要なサイズが8ビットの倍数でないなら、高位バイトは一緒に2高位バイトが非ゼロですが、値のためのある早めの実現チェックが64年である限り、問題ではなく、強制された64年と同じくらい大きい値を保持できないかもしれなく'て、ある他の値を使用する実現で共同利用しないでしょう。).
The encrypted shared key structure is laid out as follows:
コード化された共有された主要な構造は以下の通り設計されます:
Kaufman [Page 99] RFC 1507 DASS September 1993
コーフマン[99ページ]RFC1507ダス1993年9月
- The DES key to be shared is placed in the last eight bytes
- 共有されているために主要なDESはベストエイトバイトに置かれます。
- The POSIX format creation time encoded in four bytes using big endian byte order is placed in the next four (from the end) bytes
- ビッグエンディアンバイトオーダーを使用しながら4バイトでコード化されたPOSIX形式創造時間は次の4(終わりからの)バイトに置かれます。
- The POSIX format expiration time encoded in four bytes using big endian byte order is placed in the next four (from the end) bytes
- ビッグエンディアンバイトオーダーを使用しながら4バイトでコード化されたPOSIX形式満了時間は次の4(終わりからの)バイトに置かれます。
- Four zero bytes are placed in the next four (from the end) bytes
- バイトが全く置かれない4 次の4(終わりからの)バイト
- The first byte contains the constant '64' (decimal)
- '最初のバイトは一定の64年を含んでいます'(小数)
- All remaining bytes are filled with random bytes (the security of the system does not depend on the cryptographic randomness of these bytes, but they should not be a frequently repeating or predictable value. Repeating the DES key from the last bytes would be good).
- すべての残っているバイトが無作為のバイトで満たされます。(システムのセキュリティはこれらのバイトの暗号の偶発性によりませんが、それらは頻繁に繰り返しているか、予測できる値であるべきではありません。 最後のバイトから主要なDESを繰り返すのは良いでしょう。).
The RSA algorithm is applied to the integer formed by treating the bytes above as an integer in big endian order and the resulting integer is converted to a BIT STRING by laying out the integer in 'big endian' order.
RSAアルゴリズムは上でビッグエンディアンオーダーにおける整数としてバイトを扱うことによって形成された整数に適用されます、そして、結果として起こる整数は、'ビッグエンディアン'オーダーにおける整数を広げることによって、BIT STRINGに変換されます。
On decryption, the process is reversed; the decryptor should verify the four explicitly zero bytes but should not verify the contents of the high order byte or the random bytes.
復号化では、過程は逆にされます。 decryptorは明らかに4について確かめるはずです。バイトのゼロを合わせますが、高位バイトか無作為のバイトのコンテンツについて確かめるべきではありません。
4.4.6 oiwMD2withRSA Signatures
4.4.6 oiwMD2withRSA署名
RSA-MD2 signatures are used on certificates, login tickets, shared key tickets, and node tickets. In all cases, a signature is computed on an ASN.1 encoded string using an RSA private key. This is done as follows:
RSA-MD2署名は証明書、ログインチケット、共有された主要なチケット、およびノードチケットの上に使用されます。 すべての場合では、署名は、ASN.1のコード化されたストリングの上にRSA秘密鍵を使用することで計算されます。 これは以下の通り完了しています:
- The MD2 algorithm is applied to the ASN.1 encoded string to produce a 128 bit message digest
- MD2アルゴリズムは、128ビットのメッセージダイジェストを作成するためにASN.1のコード化されたストリングに適用されます。
- The message digest is placed in the low order bytes of the RSA block (big endian)
- メッセージダイジェストはRSAブロックの下位バイトに置かれます。(ビッグエンディアン)
- The next two lowest order bytes are the ASN.1 'T' and 'L' for an OCTET STRING.
- 次の最も低い2オーダーバイトは、OCTET STRINGのためのASN.1'T'と'L'です。
- The remainder of the RSA block is filled with zeros
- RSAブロックの残りはゼロでいっぱいにされます。
Kaufman [Page 100] RFC 1507 DASS September 1993
コーフマン[100ページ]RFC1507ダス1993年9月
- The RSA operation is performed, and the resulting integer is converted to an octet string by laying out the bytes in big endian order.
- RSA操作は実行されます、そして、結果として起こる整数は、ビッグエンディアンオーダーにおけるバイトを広げることによって、八重奏ストリングに変換されます。
On verification, a value like the above or one where the message digest is present but the 'T' and 'L' are missing (zero) should be accepted for backwards compatibility with an earlier definition of this crypto algorithm.
検証のときに、この暗号アルゴリズムの以前の定義との遅れている互換性のために、上や1つのようなメッセージダイジェストが存在していますが、'T'と'L'がなくなる値(ゼロ)を受け入れるべきです。
4.4.7 decMD2withRSA Signatures
4.4.7 decMD2withRSA署名
This algorithm is the same as the oiwMD2withRSA algorithm as defined above. We allocated an algorithm object identifier from the Digital space in case the definition of that OID should change. It will not be used unless the meaning of oiwMD2withRSA becomes unstable.
このアルゴリズムは上で定義されるoiwMD2withRSAアルゴリズムと同じです。 そのOIDの定義が変化するといけないので、私たちはDigitalスペースからアルゴリズム物の識別子を割り当てました。 oiwMD2withRSAの意味が不安定にならないと、それは使用されないでしょう。
Annex A
別館A
Typical Usage
典型的な用法
This annex describes one way a system could use DASS services (as described in section 3) to provide security services. While this example provided motivation for some of the properties of DASS, it is not intended to represent the only way that DASS may be used. This goes through the steps that would be needed to install DASS "from scratch".
この別館は、セキュリティー・サービスを提供するためにシステムがダスのサービスを利用するかもしれない(セクション3で説明されるように)1つの方法を述べます。 この例はダスのいくつかの特性に関する動機を提供しましたが、ダスが使用されるかもしれないのが唯一の道を表すことを意図しません。 これは「最初から」ダスをインストールするのが必要である階段を通ります。
A.1 Creating a CA
カリフォルニアを作成するA.1
A CA is created by initializing its state. Each CA can sign certificates that will be placed in some directory in the name service. Before these certificates will be believed in a wider context than the sub-tree of the name space which is headed by that directory, the CA must be certified by a CA for the parent directory. The procedure below accomplishes this. For most secure operation, the CA should run on an off-line system and communicate with the rest of the network by interchanging files using a simple specialized mechanism such as an RS232 line or a floppy disk. It is assumed that access to the CA is controlled and that the CA will accept instructions from an operator.
カリフォルニアは、状態を初期化することによって、作成されます。 各カリフォルニアはサービスという名前で何らかのディレクトリに置かれる証明書に署名することができます。 これらの証明書はそのディレクトリによって率いられる名前スペースの下位木より広い関係を信じられる前に、カリフォルニアが親ディレクトリのためにカリフォルニアを公認しなければなりません。 以下の手順はこれを達成します。 最も安全な操作のために、カリフォルニアは、RS232系列かフロッピーディスクなどの簡単な専門化しているメカニズムを使用することでファイルを交換することによって、オフラインシステムで動いて、ネットワークの残りとコミュニケートするべきです。 カリフォルニアへのアクセスが制御されていて、カリフォルニアがオペレータから指示を受け入れると思われます。
- Call Install_CA to create the CA State. This state is saved within the CA system and is never disclosed.
- Install_カリフォルニアに電話をして、カリフォルニア州を創設してください。 この状態は、カリフォルニアシステムの中で節約されて、決して明らかにされません。
- If this is the first CA in the namespace and the CA is intended to certify only members of a single directory, we are done. Otherwise, the new CA must be linked into the CA
- これが名前空間で最初のカリフォルニアであり、カリフォルニアを単一ディレクトリの唯一のメンバーを公認するつもりであるなら、私たちをします。 さもなければ、新しいカリフォルニアをカリフォルニアにリンクしなければなりません。
Kaufman [Page 101] RFC 1507 DASS September 1993
コーフマン[101ページ]RFC1507ダス1993年9月
hierarchy by cross-certifying the parent and children of this CA. There is no requirement that CA hierarchies be created from the root down, but to simplify exposition, only this case will be described. The newly created CA must learn its name, its UID, the UID of its parent directory, and the public key of the parent directory CA by some out of band reliable means. Most likely, this would be done by looking up the information in the naming service and asking the CA operator to verify it. The CA then forms this information into a parent certificate and signs it using the Create_certificate function. It communicates the certificate to the network and posts it in the naming service.
このカリフォルニアの親と子供を十字で公認するのによる階層構造。 カリフォルニア階層構造が根から作成されて、ダウンしてくださいが、博覧会を簡素化するために、本件だけが説明されるということであるという要件が全くありません。 新たに作成されたカリフォルニアは名前、UID、親ディレクトリのUID、および信頼できるバンドからのいくつかによるカリフォルニアが意味する親ディレクトリの公開鍵を学ばなければなりません。 たぶん、名前付けサービスにおける情報を調べて、それについて確かめるようにカリフォルニアのオペレータに頼むことによって、これをするでしょう。 カリフォルニアは、次に、この情報で親証明書を作って、Create_証明書機能を使用することでそれに署名します。 それは、証明書をネットワークに伝えて、名前付けサービスでそれを掲示します。
- This name, UID, and public key of the new CA are taken to the CA of the parent directory, which verifies it (again by some unspecified out-of-band mechanism) and calls Create_Certificate to create a child certificate using its own Name and UID in the issuer fields. This certificate is also placed in the naming service.
- 新しいカリフォルニアのこの名前、UID、および公開鍵はそれについて確かめる親ディレクトリのカリフォルニアに持って行かれます、そして、(再び何らかの不特定のバンドで出ているメカニズムで)子供を創造するという呼び出しCreate_Certificateは発行人分野でそれ自身のNameを使用して、UIDを証明します。 また、この証明書は名前付けサービスに置かれます。
A CA can sign certificates for more than one directory. In this case it is possible that a single CA will take the role of both CAs in the example above. The above procedure can be simplified in this case, as no interchange of information is required.
カリフォルニアは1つ以上のディレクトリのための証明書に署名することができます。 この場合、単一のカリフォルニアが上記の例で両方のCAsの役割を果たすのは、可能です。 情報の置き換えは全く必要でないようにこの場合上の手順を簡素化できます。
A.2 Creating a User Principal
ユーザ元本を創造するA.2
A system manager may create a new user principal by invoking the Create_principal function supplying the principal's name, UID, and the public key/UID of the parent CA. The public key and UID must be obtained in a reliable out of band manner. This is probably by having knowledge of that information "wired into" the utility which creates new principals. At account creation time, the system manager must supply what will become the user's password. This might be done by having the user present and directly enter a password or by having the password selected by some random generator.
システム・マネージャは、親カリフォルニアの主体の名前、UID、および公開鍵/UIDを提供しながらCreate_主体機能を呼び出すことによって、新しいユーザ元本を創造するかもしれません。 バンド方法から信頼できるaで公開鍵とUIDを入手しなければなりません。 たぶん情報が「配線した」それに関する知識を持っていることによって、これは新しい主体を作成するユーティリティです。 アカウント作成時間に、システム・マネージャはユーザのパスワードになるものを供給しなければなりません。 ユーザがパスワードを提示して、直接入力するのを持っているか、またはある無作為のジェネレータにパスワードを選択させることによって、これをするかもしれません。
The trusted authority certificate and corresponding user public key generated by the Create_principal function are sent to the CA which verifies its contents (again by an out-of-band mechanism) and signs a corresponding certificate. The encrypted credentials, CA signed certificate, and trusted authority certificates are all placed in the naming service. The process by which the password is made known to the user must be protected by some out-of-band mechanism.
コンテンツ(再びバンドで出ているメカニズムによる)について確かめて、対応する証明書に署名するカリフォルニアにCreate_主体機能によって作られた信じられた権威証明書と対応するユーザ公開鍵を送ります。 暗号化された資格証明書、カリフォルニア署名入りの証書、および信じられた権威証明書は名前付けサービスにすべて置かれます。 何らかのバンドで出ているメカニズムでパスワードがユーザに明らかにされるプロセスを保護しなければなりません。
In some cases the principal may wish to generate its own key, and not use the Encrypted_Credentials. (e.g., if the Principal is represented by a Smart Card). This may be done using a procedure similar to the
いくつかの場合、校長は、使用ではなく、それ自身のキーがEncrypted_Credentialsであると生成したがっているかもしれません。 (例えば、プリンシパルがSmart Cardが代理をされるなら。) された使用しているa手順が同様であったなら、これはそうするかもしれません。
Kaufman [Page 102] RFC 1507 DASS September 1993
コーフマン[102ページ]RFC1507ダス1993年9月
one for creating a new CA.
新しいカリフォルニアを作成するためのもの。
A.3 Creating a Server Principal
サーバ元本を創造するA.3
A server also has a public/private key pair. Conceptually, the same procedure used to create a user principal can be used to create a server. In practice, the most important difference is likely to be how the password is protected when installing it on a server compared to giving it to a user.
また、サーバには、公衆/秘密鍵組があります。 概念的に、サーバを作成するのにユーザ元本を創造するのに用いられた同じ手順は用いることができます。それをユーザに与えると比べて、サーバにそれをインストールするとき、実際には、最も重要な違いはパスワードがどのように保護されるかということである傾向があります。
A server may wish to retrieve (and store) its Encrypted Credentials directly and never have them placed in the naming service. In this case some other mechanism can be used (e.g., passing the floppy disk containing the encrypted credentials to the server). This would require a variant of the Initialize_Server routine which does not fetch the Encrypted Credentials from the naming service.
サーバは、直接(そして、店)Encrypted Credentialsを検索して、彼らを名前付けサービスに決して置くかもしれなくて頂きたくはありません。 この場合、ある他のメカニズムを使用できます(例えば、暗号化された資格証明書をサーバに含むフロッピーディスクを渡します)。 これは名前付けサービスからEncrypted Credentialsをとって来ないInitialize_Serverルーチンの異形を必要とするでしょう。
A.4 Booting a Server Principal
サーバ元本をブートするA.4
When the server first boots it needs its name (unreliably) and password (reliably). It then calls Initialize_Server to obtain its credentials and trusted authority certificates (which it will later need in order to authenticate users). These credentials never time out, and are expected to be saved for a long time. In particular the associated Incoming Timestamp List must be preserved while there are any timestamps on it. It is desirable to preserve the Cached Incoming Contexts as long as there are any contexts likely to be reused.
サーバが最初にいつそれをブートするかがその名前(当てにならずに)とパスワード(確かである)を必要とします。 それは、次に、資格証明書を得るためにInitialize_Serverと呼んで、権威証明書(それが後でユーザを認証するために必要とする)を信じました。 これらの資格証明書、決してどんなタイムアウト、も長い間保存されるのは予想されません。 それに関するどんなタイムスタンプもある間、特に、関連Incoming Timestamp Listを保存しなければなりません。 再利用されそうなどんな文脈もある限り、Cached Incoming Contextsを保存するのは望ましいです。
If a server wants to initiate associations on its own behalf then it must call Generate_Server_Ticket. It must repeat this at intervals if the expiration period expires.
サーバがそれ自身に代わって協会を開始したいと思うなら、それは呼び出しGenerate_Server_Ticketがそうしなければなりません。 間隔を置いて、満了の期間が期限が切れるなら、それはこれを繰り返さなければなりません。
A node that wishes to do node authentication (or which acts as a server under its own name) must be created as a server.
サーバとしてノード認証(どれがサーバとしてそれ自身の名前の下で機能する)をしたがっているノードを作成しなければなりません。
A.5 A user logs on to the network
ユーザがネットワークにログオンするA.5
The system that the user logs onto finds the user's name and password. It then calls Network_Login to obtain credentials for the user. These credentials are saved until the user wants to make a network connection. The credentials have a time limit, so the user will have to obtain new credentials in order to make connections after the time limit. The credentials are then checked by calling Verify_Principal_Name, in order to check that the key specified in the encrypted credentials has been certified by the CA.
ユーザがログオンするシステムはユーザの名前とパスワードに当たります。 そして、それは、資格証明書をユーザに得るためにNetwork_Loginと呼びます。 ユーザがネットワーク接続を作りたがっているまで、これらの資格証明書は保存されます。 資格証明書にはタイムリミットがあるので、ユーザはタイムリミットの後に接続を作るために新しい資格証明書を得なければならないでしょう。 次に、Verify_をプリンシパル_Nameと呼ぶことによって、資格証明書はチェックされます、暗号化された資格証明書で指定されたキーがカリフォルニアによって公認されたのをチェックするために。
If the system does source node authentication it will call Combine_credentials, once the local username has been found. (This
システムがそれが呼ぶソースノード認証にCombine_資格証明書をするなら、一度、ローカルのユーザ名は見つけられたことがあります。 (これ
Kaufman [Page 103] RFC 1507 DASS September 1993
コーフマン[103ページ]RFC1507ダス1993年9月
can either be found by looking the principal's global name up in a file, or the user can be asked to give the local name directly. Alternatively the user can be asked to give his local username, which the system looks up to find the global name).
ファイルで主体のグローバル名を調べることによって見つけられるか、または直接地方名を与えることができますユーザに頼むことができる。 あるいはまた、ユーザによる地元のユーザ名と尋ねることができる、)。(システムは、グローバル名を見つけるためにユーザ名を調べます)。
A.6 An Rlogin (TCP/IP) connection is made
Rlogin(TCP/IP)接続が作られているA.6
When the user calls a modified version of the rlogin utility, it calls Create_token in order to create the Initial Authentication Token, which is passed to the other system as part of the rlogin protocol. The rlogind utility at the destination node calls Accept_token to verify it. It then looks up in a local rhosts-like database to determine whether this global user is allowed access to the requested destination account. It calls Verify_principal_name and/or Verify_node_name to confirm the identity of the requester. If access is allowed, the connection is accepted and the Mutual Authentication Token is returned in the response message.
それは、Initial Authentication Tokenを作成するためにCreate_トークンとユーザがrloginユーティリティの変更されたバージョンを呼ぶとき、どれがrloginプロトコルの一部としてもう片方のシステムに通過されるかと呼びます。 目的地ノードのrlogindユーティリティは、それについて確かめるためにAccept_トークンと呼びます。 そして、それは、要求された目的地アカウントへのアクセスがこのグローバルなユーザに許されているかどうか決定するためにローカルのrhostsのようなデータベースを調べます。 それは、主体_名前にVerify_を呼ぶ、そして/または、確認するVerify_ノード_名をリクエスタのアイデンティティと呼びます。 アクセスを許すなら、接続を受け入れます、そして、応答メッセージでMutual Authentication Tokenを返します。
The source receives the returned Mutual Authentication Token and uses it to confirm it communicating with the correct destination node.
情報筋は、正しい目的地ノードで交信しながらそれを確認するのに返されたMutual Authentication Tokenを受け取って、それを使用します。
Rlogind then calls Combine_credentials to combine its node/account information with the global user identification in the received credentials in case the user accesses any network resources from the destination system.
そして、Rlogindは、ユーザが目的地システムからどんなネットワーク資源にもアクセスするといけないので容認された資格証明書におけるグローバルなユーザ登録名にノード/会計情報を結合するためにCombine_資格証明書と呼びます。
A.7 A Transport-Independent Connection
A.7は輸送から独立している接続です。
As an alternative to the description in A.6, an application wishing to be portable between different underlying transports may call create_token to create an authentication token which it then sends to its peer. The peer can then call accept_token and verify_principal_name and learn the identity of the requester.
A.6の記述、異なった基本的な輸送の間で携帯用になりたがっているアプリケーションに代わる手段として、呼び出しが、次にそれが同輩に送る認証トークンを作成するために_トークンを作成しますように。 同輩が学ぶことができて、次に、呼び出しは、_トークンを受け入れて、_主体_名前について確かめて、リクエスタのアイデンティティを学びます。
Annex B
別館B
Support of the GSSAPI
GSSAPIのサポート
In order to support applications which need to be portable across a variety of underlying security mechanisms, a "Generic Security Service API" (or GSSAPI) was designed which gives access to a common core of security services expected to be provided by several mechanisms. The GSSAPI was designed with DASS, Kerberos V4, and Kerberos V5 in mind, and could be written as a front end to any or all of those systems. It is hoped that it could serve as an interface to other security systems as well.
さまざまな基本的なセキュリティー対策の向こう側に携帯用である必要があるアプリケーションをサポートするために、数個のメカニズムによって提供されると予想されたセキュリティー・サービスの一般的なコアへのアクセスを与える「ジェネリックセキュリティー・サービスAPI」(または、GSSAPI)は設計されました。GSSAPIをダス、ケルベロスV4、およびケルベロスV5で念頭に設計して、フロントエンドとしてそれらのシステムのいずれかすべてに書くことができました。それがインタフェースとしてまた、他のセキュリティシステムに機能できたことが望まれています。
Application portability requires that the security services supported
移植性が必要とするセキュリティー・サービスがサポートしたアプリケーション
Kaufman [Page 104] RFC 1507 DASS September 1993
コーフマン[104ページ]RFC1507ダス1993年9月
be comparable. Applications using the GSSAPI will not be able to access all of the features of the underlying security mechanisms. For example, the GSSAPI does not allow access to the "node authentication" features of DASS. To the extent the underlying security mechanisms do not support all the features of GSSAPI, applications using those features will not be portable to those security mechanisms. For example, Kerberos V4 does not support delegation, so applications using that feature of the GSSAPI will not be portable to Kerberos V4.
匹敵してください。 GSSAPIを使用するアプリケーションは基本的なセキュリティー対策の特徴のすべてにアクセスできないでしょう。例えば、GSSAPIはダスの「ノード認証」の特徴へのアクセスを許しません。 それらの特徴を使用するアプリケーションが基本的なセキュリティー対策がGSSAPIのすべての特徴をサポートするというわけではないという範囲に、それらのセキュリティー対策に携帯用にならないでしょう。例えば、ケルベロスV4は委譲をサポートしません、したがって、GSSAPIのその特徴を使用するアプリケーションがケルベロスV4に携帯用にならないでしょう。
This annex explains how the GSSAPI can be implemented using the primitive services provided by DASS.
この別館で、ダスによって提供された原始のサービスを利用することでどうGSSAPIを実装することができるかがわかります。
B.1 Summary of GSSAPI
GSSAPIのB.1概要
The latest draft of the GSSAPI specification is available as an internet draft. The following is a brief summary of that evolving document and should not be taken as definitive. Included here are only those aspects of GSSAPI whose implementation would be DASS specific.
GSSAPI仕様の最新の草稿はインターネット草稿として利用可能です。 以下をその発展ドキュメントの簡潔な概要であり、決定的であるとしてみなすべきではありません。 ここに含まれているのは、実装がダス特有であるGSSAPIのそれらの局面だけです。
The GSSAPI provides four classes of functions: Credential Management, Context-Level Calls, Per-message calls, and Support Calls; two types of objects: Credentials and Contexts; and two kinds of data structures to be transmitted as opaque byte strings: Tokens and Messages. Credentials hold keys and support information used in creating tokens. Contexts hold keys and support information used in signing and encrypting messages.
GSSAPIは4つのクラスの関数を提供します: 資格証明Management、Context-レベルCalls、Per-メッセージ呼び出し、およびSupport Calls。 2つのタイプのオブジェクト: 資格証明書と文脈。 そして、不透明なバイトとして伝えられるべきデータ構造の2種類は以下を結びます。 トークンとメッセージ。 資格証明書は、キーとサポート情報がトークンを作成する際に使用されるままにします。 文脈は、キーとサポート情報がメッセージに署名して、暗号化する際に使用されるままにします。
The Credential Management functions of GSSAPI are "incomplete" in the sense that one could not build a useful security implementation using only GSSAPI. Functions which create credentials based on passwords or smart cards are needed but not provided by GSSAPI. It is envisioned that such functions would be invoked by security mechanism specific functions at user login or via some separate utility rather than from within applications intended to be portable. The Credential Management functions available to portable applications are:
GSSAPIのCredential Management機能は人がGSSAPIだけを使用することで役に立つセキュリティ実装を築き上げることができないだろうという意味で「不完全です」。 パスワードかスマートカードに基づく資格証明書を作成する機能が、GSSAPIによって必要ですが、提供されません。 携帯用であることは、セキュリティー対策具体的な機能によってユーザログインで呼び出されるだろうか、またはアプリケーションからというよりむしろ何らかの別々のユーティリティで意図する思い描かれたそんなにそのような機能です。 携帯用のアプリケーションに利用可能なCredential Management機能は以下の通りです。
- GSS_Acquire_cred: get a handle to an existing credential structure based on a name or process default.
- GSS_は_信用を取得します: 名前に基づく既存の資格証明構造かプロセスデフォルトにハンドルを手に入れてください。
- GSS_Release_cred: release credentials after use.
- GSS_リリース_信用: 使用の後に資格証明書をリリースしてください。
The Context-Level Calls use credentials to establish contexts. Contexts are like connections: they are created in pairs and are generally used at the two ends of a connection to process messages associated with that connection. The Context-Level Calls of interest
Context平らなCallsは、文脈を証明するのに資格証明書を使用します。 文脈は接続に似ています: それらは、組で作成されて、一般に、接続の2つの終わりにその接続に関連しているメッセージを処理するのに使用されます。 興味があるContext平らなCalls
Kaufman [Page 105] RFC 1507 DASS September 1993
コーフマン[105ページ]RFC1507ダス1993年9月
are:
あります:
- GSS_Init_sec_context: given credentials and the name of a destination, create a new context and a token which will permit the destination to create a corresponding context.
- GSS_イニット_秒_文脈: 目的地の資格証明書と名前を考えて、目的地が対応する文脈を作成することを許可する新しい関係とトークンを作成してください。
- GSS_Accept_sec_context: given credentials and an incoming token, create a context corresponding to the one at the initiating end and provide information identifying the initiator.
- GSS_は_秒_文脈を受け入れます: 資格証明書と入って来るトークンを考えて、開始終わりのものに対応する文脈を作成してください、そして、創始者を特定する情報を提供してください。
- GSS_Delete_sec_context: delete a context after use.
- GSS_は_秒_文脈を削除します: 使用の後に文脈を削除してください。
The Per-Message Calls use contexts to sign, verify, encrypt, and decrypt messages between the holders of matching contexts. The Per- Message Calls are:
Per-メッセージCallsは、合っている文脈の所有者の間のメッセージに署名して、確かめて、暗号化して、解読するのに文脈を使用します。 PerメッセージCallsは以下の通りです。
- GSS_Sign: Given a context and a message, produces a string of bytes which constitute a signature on a provided message.
- GSS_サイン: 提供されたメッセージに文脈とメッセージを与えて、署名を構成する一連のバイトを生産します。
- GSS_Verify: Given a context, a message, and the bytes returned by GSS_Sign, verifies the message to be authentic (unaltered since it was signed by the corresponding context).
- GSS_は以下について確かめます。 文脈を考えて、メッセージ、およびGSS_Signによって返されたバイトは正統になるメッセージ(それが対応する文脈によって署名されたので、非変更した)について確かめます。
- GSS_Seal: Given a context and a message, produces a string of bytes which include the message and a signature; the message may optionally be encrypted.
- GSS_シール: 文脈とメッセージを与えて、メッセージと署名を含んでいる一連のバイトを生産します。 メッセージは任意に暗号化されるかもしれません。
- GSS_Unseal: Given a context and the string of bytes from GSS_Seal, returns the original message and a status indicating its authenticity.
- GSS_は開かれます: GSS_Sealからのバイト、リターンの文脈とストリングにオリジナルのメッセージを与えて、状態表示に信憑性を与えます。
The Support Calls provide utilities like translating names and status codes into printable strings.
Support Callsは名前とステータスコードを印刷可能なストリングに翻訳するようなユーティリティを提供します。
B.2 Implementation of GSSAPI over DASS
ダスの上のGSSAPIのB.2実装
B.2.1 Data Structures
B.2.1データ構造
The objects and data structures of the GSSAPI do not map neatly into the objects and data structures of the DASS architecture.
GSSAPIのオブジェクトとデータ構造はダスアーキテクチャのオブジェクトとデータ構造にどんな地図もきちんと翻訳しません。
This section describes how those data structures can be implemented using the DASS data structures and primitives
ダスデータ構造を使用して、基関数であるとどうそれらのデータ構造を実装することができるかをこのセクションは説明します。
Credential handles correspond to the credentials structures in DASS, where the portable API assumes that the credential structures themselves are kept from applications and handles are passed to and
そして資格証明ハンドルがダスの資格証明書構造に対応している。(そこでは、携帯用のAPIが資格証明構造自体がアプリケーションから妨げられて、ハンドルに移られると仮定します)。
Kaufman [Page 106] RFC 1507 DASS September 1993
コーフマン[106ページ]RFC1507ダス1993年9月
from the various subroutines.
様々なサブルーチンから。
Context initialization tokens correspond to the tokens of DASS. The GSSAPI prescribes a particular ASN.1 encoded form for tokens which includes a mechanism specific bit string within it. An implementation of GSSAPI should enclose the DASS token within the GSSAPI "wrapper".
文脈初期化トークンはダスのトークンに対応しています。 GSSAPIはトークンのためのそれの中にメカニズムの特定のビット列を含んでいる特定のASN.1のコード化されたフォームを定めます。 GSSAPIの実装はGSSAPI「ラッパー」の中にダストークンを同封するべきです。
Context handles have no corresponding structure in DASS. The Create_token and Accept_token calls of DASS return a shared key and instance identifier. An implementation of the GSSAPI must take those values along with some other status information and package it as a "context" opaque structure. These data structures must be allocated and freed with the appropriate calls.
文脈ハンドルはダスにどんな対応する構造も持っていません。 ダスのCreate_象徴とAccept_象徴呼び出しは共有されたキーと例の識別子を返します。 GSSAPIの実現は、ある他の状態情報と共にそれらの値を取って、「文脈」不明瞭な構造としてそれをパッケージしなければなりません。 適切な呼び出しでこれらのデータ構造を割り当てられて、解放しなければなりません。
Per-message tokens and sealed messages have no corresponding data structure within DASS. To fully support the GSSAPI functionality, DASS must be extended to include this functionality. These data structures are created by cryptographic routines given the keys and status information in context structures and the messages passed to them. While not properly part of the DASS architecture, the formats of these data structures are included in section C.3.
1メッセージあたりの象徴と密封されたメッセージはダスの中にどんな対応するデータ構造も持っていません。 GSSAPIの機能性を完全に支持するなら、この機能性を含むようにダスを広げなければなりません。 文脈構造のキーと状態情報とそれらに通過されたメッセージを考えて、これらのデータ構造は暗号のルーチンで作成されます。 ダス構造の一部、これらのデータ構造の形式はセクションC.3に適切でなく含まれていますが。
B.2.2 Procedures
B.2.2手順
This section explains how the functions of the GSSAPI can be provided in terms of the Services Provided by DASS. Not all of the DASS features are accessible through the GSSAPI.
このセクションはダスがServices Providedに関してどうGSSAPIの機能を提供できるかを説明します。 ダスの特徴のすべてがGSSAPIを通してアクセスしやすいというわけではありません。
B.2.2.1 GSS_Acquire_cred
B.2.2.1GSS_は_信用を取得します。
The GSSAPI does not provide a mechanism for logging in users or establishing server credentials. It assumes that some system specific mechanism created those credentials and that applications need some mechanism for getting at them. A model implementation might save all credentials in a node-global pool indexed by some sort of credential name. The credentials in the pool would be access controlled by some local policy which is not concern of portable applications. Those applications would simply call GSS_Acquire_cred and if they passed the access control check, they would get a handle to the credentials which could be used in subsequent calls.
GSSAPIはユーザにログインするか、またはサーバ信任状を確立するのにメカニズムを提供しません。 それは、何らかのシステムの特定のメカニズムがそれらの信任状を作成して、アプリケーションがそれらに達するのに何らかのメカニズムを必要とすると仮定します。 モデル実現はある種の信任している名前によって索引をつけられたノードグローバルなプールの中のすべての信任状を保存するかもしれません。 プールの中の信任状は携帯用のアプリケーションの関心でない何らかのローカルの方針で制御されたアクセスでしょう。 それらのアプリケーションは、単にGSS_をAcquire_信用と呼ぶでしょう、そして、彼らがアクセス管理チェックを通過するなら、その後の呼び出しに使用できた信任状にハンドルを手に入れるでしょうに。
B.2.2.2 GSS_Release_cred
B.2.2.2GSS_リリース_信用
This call corresponds to the "delete_credentials" call of DASS.
この呼び出しは「_信任状を削除してください」というダスの呼び出しに対応しています。
Kaufman [Page 107] RFC 1507 DASS September 1993
コーフマン[107ページ]RFC1507ダス1993年9月
B.2.2.3 GSS_Init_sec_context
B.2.2.3GSS_イニット_秒_文脈
In the course of a normal mutual authentication, this routine will be called twice. The procedure can determine whether this is the first or second call by seeing whether the "input_context_handle" is zero (it will be on the first call). On the first call, it will use the DASS Create_token service to create a token and it will also allocate and populate a "context" structure. That structure will hold the key, instance identifier, and mutual authentication token returned by Create_token and will in addition hold the flags which were passed into the Init_sec_context call. The token returned by Init_sec_context will be the DASS token included in the GSSAPI token "wrapper". The DASS token will include the optional principal name.
通常の互いの認証の間に、このルーチンは二度呼ばれるでしょう。 手順は、「入力_文脈_ハンドル」がゼロ(準備ラッパにはそれがある)であるかどうかわかることによって、これが1番目かそれとも2番目の電話することであるかを決定できます。 準備ラッパのときに、象徴を作成するのにダスのCreate_象徴サービスを利用して、また、それは、「文脈」構造を割り当てて、居住するでしょう。 その構造は、Create_象徴によって返されたキー、例の識別子、および互いの認証象徴を保持して、さらに、Init_秒_文脈呼び出しに渡された旗を保持するでしょう。 Init_秒_文脈によって返された象徴はGSSAPI象徴「包装紙」に含まれていたダス象徴になるでしょう。 ダス象徴は任意の主要な名前を含むでしょう。
If mutual authentication is not requested in the GSSAPI call, the mutual authentication token returned by DASS will be ignored and the initial call will return a COMPLETE status. If mutual authentication is requested, the mutual authentication token will be stored in the context information and a CONTINUE_NEEDED status returned.
互いの認証がGSSAPI呼び出しで要求されないと、ダスによって返された互いの認証象徴は無視されるでしょう、そして、初期の呼び出しはCOMPLETE状態を返すでしょう。 互いの認証が要求されると、互いの認証象徴は文脈情報と必要な状態が返したCONTINUE_に格納されるでしょう。
On the second call to GSS_Init_sec_context (with input_context_handle non-zero), the returned token will be compared to the one in the context information using the Compare_mutual_token procedure and a COMPLETE status will be returned if they match.
GSS_Init_秒_文脈(入力_文脈_ハンドルが非ゼロに合わせている)への2番目の呼び出しのときに、返された象徴はCompareの_の互いの_象徴手順を用いることで文脈情報のものと比較されるでしょう、そして、彼らが合っていると、COMPLETE状態は返されるでしょう。
B.2.2.4 GSS_Accept_sec_context
B.2.2.4GSS_は_秒_文脈を受け入れます。
This routine in GSSAPI accepts an incoming token and creates a context. It combines the effects of a series of DASS functions. It could be implemented as follows:
GSSAPIのこのルーチンは、入って来る象徴を受け入れて、文脈を作成します。 それは一連のダスの機能の効果を結合します。 以下の通りそれを実行できました:
- Remove the GSSAPI "wrapper" from the incoming token and pass the rest and the credentials to "Accept_token". Accept_token produces a mutual authentication token and a new credentials structure. If delegation was requested, the new credentials structure will be an output of GSS_Accept_sec_context. In any case, it will be used in the subsequent steps of this procedure.
- 入って来る象徴からGSSAPI「包装紙」を取り除いてください、そして、残りと信任状を通過して、「_象徴を受け入れてください」。 _互いの認証象徴とa新しい信任状が構造化する象徴生産物を受け入れてください。 代表団が要求されたなら、新しい信任状構造はGSS_Accept_秒_文脈の出力になるでしょう。 どのような場合でも、それはこの手順のその後のステップで使用されるでしょう。
- Use the DASS Get_principal_name function to extract the principal name from the credentials produced by Accept_token. This name is one of the outputs of "GSS_Accept_sec_context.
- 機能というダスGet_校長_名を使用して、Accept_象徴によって製作された信任状から主要な名前を抜粋してください。 この名前は「GSS_は_秒_文脈を受け入れる」出力の1つです。
- Apply the DASS Verify_principal_name to the new credentials and the retrieved name to authenticate the token as having come from the named principal.
- ダスVerify_校長_名を新しい信任状と検索された名前に適用して、命名された校長から来たと象徴を認証してください。
- Create and populate a context structure with the key and
- そしてキーで文脈構造を作成して、居住してください。
Kaufman [Page 108] RFC 1507 DASS September 1993
コーフマン[108ページ]RFC1507ダス1993年9月
timestamp returned by Accept_token and a status of COMPLETE. Return a handle to that context.
タイムスタンプはAccept_象徴とCOMPLETEの状態のそばで戻りました。 その文脈にハンドルを返してください。
- If delegation was requested, return the new credentials from GSS_Accept_sec_context. Otherwise, call Delete_credentials.
- 代表団が要求されたなら、GSS_Accept_秒_文脈から新しい信任状を返してください。 さもなければ、Delete_信任状に電話をしてください。
- If mutual authentication was requested, wrap the mutual authentication token from Accept_token in a GSSAPI "wrapper" and return it. Otherwise return a null string.
- 互いの認証が要求されたなら、GSSAPI「包装紙」でAccept_象徴から互いの認証象徴を包装してください、そして、それを返してください。 さもなければ、ヌルストリングを返してください。
B.2.2.5 GSS_Delete_sec_context
B.2.2.5GSS_は_秒_文脈を削除します。
This routine simply deletes the context state. No calls to DASS are required.
このルーチンは単に文脈状態を削除します。 ダスへの呼び出しは全く必要ではありません。
B.2.2.6 GSS_Sign
B.2.2.6GSS_サイン
This routine takes as input a context handle and a message. It creates a per_msg_token by computing a digital signature on the message using the key and timestamp in the context block. No DASS services are required. If additional cryptographic services were requested (replay detection or sequencing), a timestamp or sequence number must be prepended to the message and sent with the signature. The syntax for this message is listed in section C.3.
文脈ハンドルとメッセージを入力するとき、このルーチンは取ります。 それは、メッセージで文脈ブロックのキーとタイムスタンプを使用することでデジタル署名を計算することによって、_msg_象徴あたりのaを作成します。 ダスのサービスは全く必要ではありません。 追加暗号のサービスを要求したなら(検出か配列を再演してください)、タイムスタンプか一連番号をメッセージにprependedして、署名と共に送らなければなりません。 このメッセージのための構文はセクションC.3で記載されています。
B.2.2.7 GSS_Verify
_が確かめるB.2.2.7GSS
This routine repeats the calculation of the sign routine and verifies the signature provided. If replay detection or sequencing services are provided, the context must maintain as part of its state information containing the sequence numbers or timestamps of messages already received and this one must be checked for acceptability.
このルーチンは、サインルーチンの計算を繰り返して、提供された署名について確かめます。 再生検出か配列サービスを提供するなら、文脈は、州の情報の一部として受容性がないかどうか既に受け取られたメッセージとこの一連番号かタイムスタンプを含むのをチェックしなければならないと主張しなければなりません。
B.2.2.8 GSS_Seal
B.2.2.8GSS_シール
This routine performs the same functions as Sign but also optionally encrypts the message for privacy using the shared key and encapsulates the whole thing in a GSSAPI specified ASN.1 wrapper.
このルーチンは、Signと同じ機能を実行しますが、任意に、共有を使用するのが合わせて、要約するプライバシーとして、GSSAPIの全体のものがASN.1包装紙を指定したというメッセージをまたコード化します。
B.2.2.9 GSS_Unseal
B.2.2.9GSS_は開かれます。
This routine performs the same functions as GSS_Verify but also parses the data structure including the signature and message and decrypts the message if necessary.
このルーチンは、GSS_Verifyと同じ機能を実行しますが、署名とメッセージを含むデータ構造を分析して、必要なら、メッセージをまた解読します。
Kaufman [Page 109] RFC 1507 DASS September 1993
コーフマン[109ページ]RFC1507ダス1993年9月
B.3 Syntax
B.3構文
The GSSAPI specification recommends the following ASN.1 encoding for the tokens and messages generated through the GSSAPI:
GSSAPI仕様はGSSAPIを通して発生する象徴とメッセージのために以下をコード化する以下のASN.1を推薦します。
--optional top-level token definitions to frame -- different mechanisms
--縁どる任意のトップレベル象徴定義--異なったメカニズム
GSSAPI DEFINITIONS ::= BEGIN
GSSAPI定義:、:= 始まってください。
MechType ::= OBJECT IDENTIFIER -- data structure definitions ContextToken ::= -- option indication (delegation, etc.) indicated -- within mechanism-specific token [APPLICATION 0] IMPLICIT SEQUENCE { thisMech MechType, responseExpected BOOLEAN, innerContextToken ANY DEFINED BY MechType -- contents mechanism-specific }
MechType:、:= OBJECT IDENTIFIER--データ構造定義ContextToken:、:= -- メカニズム特有の象徴[APPLICATION0]IMPLICIT SEQUENCEの中の指示(代表団など)が示したオプションthisMech MechTypeの、そして、responseExpectedブールのinnerContextToken、どんなDEFINED BY MechTypeも--、コンテンツメカニズム詳細
PerMsgToken ::= -- as emitted by GSS_Sign and processed by -- GSS_Verify [APPLICATION 1] IMPLICIT SEQUENCE { thisMech MechType, innerMsgToken ANY DEFINED BY MechType -- contents mechanism-specific } SealedMessage ::= -- as emitted by GSS_Seal and processed by -- GSS_Unseal [APPLICATION 2] IMPLICIT SEQUENCE { sealingToken PERMSGTOKEN, confFlag BOOLEAN, userData OCTET STRING -- encrypted if confFlag TRUE }
PerMsgToken:、:= -- GSS_Signによって放たれていて、処理されるように--GSS_Verify[APPLICATION1]IMPLICIT SEQUENCE、thisMech MechType、innerMsgToken、どんなDEFINED BY MechTypeも--、コンテンツメカニズム詳細、SealedMessage:、:= -- GSS_Sealによって放たれていて、処理されるように--GSS_Unseal[APPLICATION2]IMPLICIT SEQUENCEsealingToken PERMSGTOKENで、confFlagブール、userData OCTET STRING--confFlag TRUEであるなら、コード化されます。
The object identifier for the DASS MechType is 1.3.12.2.1011.7.5.
ダスMechTypeのための物の識別子はそうです。1.3 .12 .2 .1011 .7 .5。
The innerContextToken of a token is a DASS token or mutual authentication token.
象徴のinnerContextTokenはダス象徴か互いの認証象徴です。
The innerMsgToken is a null string in the case where the message is encrypted and the token is included as part of a SealedMessage.
innerMsgTokenはメッセージがコード化されていて、象徴がSealedMessageの一部として含まれている場合でヌルストリングです。
Kaufman [Page 110] RFC 1507 DASS September 1993
コーフマン[110ページ]RFC1507ダス1993年9月
Otherwise, it is an eight octet sequence computed as the CBC residue computed using a key and string of bytes defined as follows:
さもなければ、それはCBCの残りが以下の通り定義されたバイトのキーとストリングを使用することで計算されたように計算された8八重奏系列です:
- Pad the message provided by the application with 1-8 bytes of pad to produce a string whose length is a multiple of 8 octets. Each pad byte has a value equal to the number of pad bytes.
- 長さが8つの八重奏の倍数であるストリングを作り出すためにアプリケーションで1-8 バイトのパッドに提供されたメッセージを水増ししてください。 それぞれのパッドバイトには、パッドバイトの数と等しい値があります。
- Compute the key by taking the timestamp of the association (two four byte integers laid out in big endian order with the most significant integer first), complementing the high order bit (to avoid aliasing with mutual authenticators), and encrypting the block in ECB mode with the shared key of the association.
- 協会(最初にビッグエンディアンオーダーで最も重要な整数で広げられた4バイトの2つの整数)に関するタイムスタンプを取ることによって、キーを計算してください、高位のビット(互いの固有識別文字でエイリアシングを避ける)の補足となって、協会の共有されたキーでECBモードによるブロックをコード化して。
The userData field of a SealedMessage is exactly the application provided byte string if confFlag=FALSE. Otherwise, it is the application supplied message encrypted as follows:
confFlag=FALSEであるなら、SealedMessageのuserData分野はまさにアプリケーションの提供されたバイトストリングです。 さもなければ、それは以下の通りコード化されたアプリケーションの供給されたメッセージです:
- Pad the message provided by the application with 1-8 bytes of pad to produce a string whose length = 4 (mod 8). Each pad byte has a value equal to the number of pad bytes.
- 長さのストリング=4(モッズ風の8)を生産するためにアプリケーションで1-8 バイトのパッドに提供されたメッセージを水増ししてください。 それぞれのパッドバイトには、パッドバイトの数と等しい値があります。
- Append a four byte CRC32 computed over the message + pad.
- メッセージ+パッドの上に計算された4バイトのCRC32を追加してください。
- Compute a key by taking the timestamp of the association (two four byte integers laid out in big endian order with the most significant integer first), complementing the high order bit (to avoid aliasing with mutual authenticators), and encrypting the block in ECB mode with the shared key of the association.
- 協会(最初にビッグエンディアンオーダーで最も重要な整数で広げられた4バイトの2つの整数)に関するタイムスタンプを取ることによって、キーを計算してください、高位のビット(互いの固有識別文字でエイリアシングを避ける)の補足となって、協会の共有されたキーでECBモードによるブロックをコード化して。
- Encrypt the message + pad + CRC32 using CBC and the key computed in the previous step.
- 前のステップで計算されたCBCとキーを使用して、+ メッセージ+パッドCRC32をコード化してください。
A note of the logic behind the above:
上記の後ろの論理の注意:
- Because the shared key of an association may be reused by many associations between the same pair of principals, it is necessary to bind the association timestamp into the messages somehow to prevent messages from a previous association being replayed into a new sequence. The technique above of generating an association key accomplishes this and has a side benefit. An implementation may with to keep the long term keys out of the hands of applications for purposes of confinement but may wish to put the encryption associated with an association in process context for reasons of performance. Defining an association key makes that possible.
- 協会の共有されたキーが同じ組の校長の間の多くの協会によって再利用されるかもしれないので、新しい系列に再演される前の協会からメッセージを防ぐためにどうにか協会タイムスタンプをメッセージに縛るのが必要です。 協会キーを発生させることにおける上のテクニックは、これを達成して、役得を持っています。 実現がそうするかもしれない、性能の理由で関係に関連している暗号化を過程文脈に入れることを願うかもしれないのを除いて、監禁の目的のためにアプリケーションの手から長期キーであることを保つために。 協会キーを定義するのに、それは可能になります。
Kaufman [Page 111] RFC 1507 DASS September 1993
コーフマン[111ページ]RFC1507ダス1993年9月
- The reason that the association specific key is not specified as the output of Create_token and Accept_token is that the DCE RPC security implementation requires that a series of associations between two principals always have the same key and we did not want to have to support a different interface in that application.
- 協会の特定のキーがCreate_象徴とAccept_象徴の出力として指定されない理由はDCE RPCセキュリティ実現が、2人の校長の間の一連の協会には同じキーがいつもあって、私たちが、そのアプリケーションにおける異なったインタフェースを支持しなければならなくて欲しいと思わなかったのを必要とするということです。
- The CRC32 after pad constitutes a cheap integrity check when data is encrypted. - The fact that padding is done differently for encrypted and signed messages means that there are no threats related to sending the same message encrypted and unencrypted and using the last block of the encrypted message as a signature on the unencrypted one.
- パッドが卑しい保全を構成した後にCRC32は、データがいつコード化されているかをチェックします。 - コード化されてサインされたメッセージのために異なって詰め物をするという事実は、コード化されて、非コード化されて、署名として非コード化されたもので暗号化メッセージの最後のブロックを使用することで同じメッセージを送ると関連する脅威が全くないことを意味します。
Annex C
別館C
Imported ASN.1 definitions
輸入されたASN.1定義
This annex contains extracts from the ASN.1 description of X.509 and X.500 definitions referenced by the DASS ASN.1 definitions.
この別館はDASS ASN.1定義で参照をつけられるX.509とX.500定義のASN.1記述からの抽出を含んでいます。
CCITT DEFINITIONS ::=
CCITT定義:、:=
BEGIN joint-iso-ccitt OBJECT IDENTIFIER ::= {2} ds OBJECT IDENTIFIER ::= {joint-iso-ccitt 5} algorithm OBJECT IDENTIFIER ::= {ds 8}
BEGINの共同iso-ccitt OBJECT IDENTIFIER:、:= 2ds OBJECT IDENTIFIER:、:= 共同iso-ccitt5アルゴリズムOBJECT IDENTIFIER:、:= ds8
iso OBJECT IDENTIFIER ::= {1} identified- organization OBJECT IDENTIFIER ::= {iso 3} ecma OBJECT IDENTIFIER ::= {identified-organization 12} digital OBJECT IDENTIFIER ::= { ecma 1011 }
iso OBJECT IDENTIFIER:、:= 1 組織OBJECT IDENTIFIERは特定しました:、:= iso3ecma OBJECT IDENTIFIER:、:= 特定された組織12、デジタルOBJECT IDENTIFIER:、:= ecma1011
-- X.501 definitions
-- X.501定義
AttributeType ::= OBJECT IDENTIFIER AttributeValue ::= ANY -- useful ones are -- OCTET STRING , -- PrintableString , -- NumericString , -- T61String , -- VisibleString
AttributeType:、:= 識別子AttributeValueは反対します:、:= いずれ--役に立つものは--OCTET STRING--PrintableString(NumericString)T61Stringです--、VisibleString
AttributeValueAssertion ::= SEQUENCE {AttributeType, AttributeValue}
AttributeValueAssertion:、:= 系列AttributeType、AttributeValue
Name ::= CHOICE {-- only one possibility for now -- RDNSequence}
以下を命名してください:= 選択--当分間の1つの可能性だけ--RDNSequence
Kaufman [Page 112] RFC 1507 DASS September 1993
コーフマン[112ページ]RFC1507ダス1993年9月
RDNSequence ::= SEQUENCE OF RelativeDistinguishedName DistinguishedName ::= RDNSequence
RDNSequence:、:= RelativeDistinguishedName DistinguishedNameの系列:、:= RDNSequence
RelativeDistinguishedName ::= SET OF AttributeValueAssertion
RelativeDistinguishedName:、:= AttributeValueAssertionのセット
-- X.509 definitions
-- X.509定義
Certificate ::= SIGNED SEQUENCE { version [0] Version DEFAULT 1988 , serialNumber SerialNumber , signature AlgorithmIdentifier , issuer Name, valid Validity, subject Name, subjectPublicKey SubjectPublicKeyInfo }
以下を証明してください:= サインされた系列バージョン[0] バージョンDEFAULT1988、serialNumber SerialNumber、署名AlgorithmIdentifier、発行人Name(有効なValidity)はNameをかけます、subjectPublicKey SubjectPublicKeyInfo
Version ::= INTEGER { 1988(0)} SerialNumber ::= INTEGER Validity ::= SEQUENCE{ notBefore UTCTime, notAfter UTCTime}
バージョン:、:= 整数1988(0)、SerialNumber:、:= 整数の正当性:、:= 系列notBefore UTCTime、notAfter UTCTime
SubjectPublicKeyInfo ::= SEQUENCE { algorithm AlgorithmIdentifier , subjectPublicKey BIT STRING }
SubjectPublicKeyInfo:、:= 系列アルゴリズムAlgorithmIdentifier、subjectPublicKey BIT STRING
AlgorithmIdentifier ::= SEQUENCE { algorithm OBJECT IDENTIFIER , parameters ANY DEFINED BY algorithm OPTIONAL}
AlgorithmIdentifier:、:= 系列アルゴリズムOBJECT IDENTIFIER、パラメタANY DEFINED BYアルゴリズムOPTIONAL
ALGORITHM MACRO BEGIN TYPE NOTATION ::= "PARAMETER" type VALUE NOTATION ::= value (VALUE OBJECT IDENTIFIER) END -- of ALGORITHM
アルゴリズムマクロはタイプ記法を始めます:、:= "PARAMETER"はVALUE NOTATIONをタイプします:、:= ALGORITHMの値(VALUE OBJECT IDENTIFIER)のEND
ENCRYPTED MACRO BEGIN TYPE NOTATION ::=type(ToBeEnciphered) VALUE NOTATION ::= value(VALUE BIT STRING) -- the value of the bit string is generated by -- taking the octets which form the complete -- encoding (using the ASN.1 Basic Encoding Rules) -- of the value of the ToBeEnciphered type and -- applying an encipherment procedure to those octets-- END
コード化されたマクロはタイプ記法を始めます:、:=(ToBeEnciphered)値の記法をタイプしてください:、:= コード化することによって(完全を形成する八重奏を取ります)ビット列の値が発生するという(ASN.1Basic Encoding Rulesを使用して)ToBeEncipheredタイプと--暗号文手順をそれらの八重奏に適用します--ENDの価値の値(VALUE BIT STRING)
SIGNED MACRO ::= BEGIN TYPE NOTATION ::= type (ToBeSigned) VALUE NOTATION ::= value(VALUE SEQUENCE{ ToBeSigned, AlgorithIdentifier, -- of the algorithm used to generate -- the signature ENCRYPTED OCTET STRING -- where the octet string is the result
サインされたマクロ:、:= タイプ記法を始めてください:、:= (ToBeSigned)VALUE NOTATIONをタイプしてください:、:= 値、(VALUE SEQUENCE、ToBeSigned、八重奏ストリングが結果である発生するのにおいて中古のアルゴリズムのAlgorithIdentifier(署名ENCRYPTED OCTET STRING)
Kaufman [Page 113] RFC 1507 DASS September 1993
コーフマン[113ページ]RFC1507ダス1993年9月
-- of the hashing of the value of "ToBeSigned" END -- of SIGNED
-- "ToBeSigned"END、SIGNEDの価値を論じ尽くすのについて
SIGNATURE MACRO ::= BEGIN TYPE NOTATION ::= type(OfSignature) VALUE NOTATION ::= value(VALUE SEQUENCE{ AlgorithmIdentifier, -- of the algorithm used to compute the signature ENCRYPTED OCTET STRING -- where the octet string is a function (e.g., a -- compressed or hashed version) of the value -- "OfSignature", which may include the identifier -- of the algorithm used to compute -- the signature--} ) END -- of SIGNATURE
署名マクロ:、:= タイプ記法を始めてください:、:= (OfSignature)値の記法をタイプしてください:、:= SIGNATUREの値(八重奏ストリングがアルゴリズムの価値識別子を含むかもしれない"OfSignature"の関数(例えば、a--圧縮されたか論じ尽くされたバージョン)である署名ENCRYPTED OCTET STRINGを計算するのに使用されるアルゴリズムのAlgorithmIdentifierが以前はよく計算していた(署名)VALUE SEQUENCE)のEND
-- X.509 Annex H (not part of the standard)
-- X.509別館H(規格の一部でない)
encryptionAlgorithm OBJECT IDENTIFIER ::= {algorithm 1} rsa ALGORITHM PARAMETER KeySize ::= {encryptionAlgorithm 1}
encryptionAlgorithmオブジェクト識別子:、:= アルゴリズム1rsa ALGORITHM PARAMETER KeySize:、:= encryptionAlgorithm1
KeySize ::= INTEGER
KeySize:、:= 整数
END
終わり
Glossary
用語集
authentication The process of determining the identity (usually the name) of the other party in some communication exchange.
認証、何らかのコミュニケーション交換における、相手のアイデンティティ(通常名前)を決定するプロセス。
authentication context Cached information used during a particular instance of authentication and including a shared symmetric (DES) key as well as components of the authentication token conveyed during establishment of this context.
この文脈の確立の間に伝えられた認証トークンのコンポーネントと同様に認証の特定のインスタンスの間、使用されて、共有された左右対称の(DES)キーを含む認証文脈Cached情報。
authentication token Information conveyed during a strong authentication exchange that can be used to authenticate its sender. An authentication token can, but is not necessarily limited to, include the claimant identity and ticket, as well as signed and encrypted secret key exchange messages conveying a secret key to be used in future cryptographic operations. An
送付者を認証するのに使用できる強い認証交換の間に伝えられた認証トークン情報。 認証トークン缶だけ、必ず有限であるというわけではないことで、主張者のアイデンティティとチケットを含めてください、今後の暗号の操作に使用されるために秘密鍵を運ぶ署名していて暗号化された秘密鍵交換メッセージと同様に。 1
Kaufman [Page 114] RFC 1507 DASS September 1993
コーフマン[114ページ]RFC1507ダス1993年9月
authentication token names a particular protocol data structure component.
認証トークンは特定のプロトコルデータ構造コンポーネントを命名します。
authorization The process of determining the rights associated with a particular principal.
権利を決定するプロセスが特定の元本に関連づけた承認。
certificate The public key of a particular principal, together with some other information relating to the names of the principal and the certifying authority, rendered unforgeable by encipherment with the private key of the certification authority that issued it.
それを発行した証明権威の秘密鍵がある暗号文によるレンダリングされた非鍛造可能という主体と公認権威の名前に関連するある他の情報と共に特定の元本の公開鍵を証明してください。
certification authority An authority trusted by one or more principals to create and assign certificates.
証明書を作成して、割り当てると1人以上の校長によって信じられた証明権威An権威。
claimant The party that initiates the authentication process. In the DASS architecture, claimants possess credentials which include their identity, authenticating private key and a ticket certifying their authenticating public key.
主張者、認証過程を開始するパーティー。 ダスアーキテクチャでは、主張者は彼らのアイデンティティを含んでいる資格証明書を持っています、彼らが公開鍵を認証するのを公認する秘密鍵とチケットを認証して。
credentials Information "state" required by principals in order to for them to authenticate. Credentials may contain information used to initiate the authentication process (claimant information), information used to respond to an authentication request (verifier information), and cached information useful in improving performance.
「状態」という資格証明書情報が、校長が、認証するのに必要です。 資格証明書は、認証過程を開始するのに使用される情報(主張者情報)、認証要求に応じるのに使用される情報(検証情報)を含んだかもしれなくて、性能を向上させる際に役に立つ情報をキャッシュしました。
cryptographic checksum Information which is derived by performing a cryptographic transformation on the data unit. This information can be used by the receiver to verify the authenticity of data passed in cleartext
暗号の変換をデータ単位に実行することによって引き出される暗号のチェックサム情報。 この情報は受信機によって使用されて、cleartextで通過されたデータの信憑性について確かめることができます。
decipher To reverse the effects of encipherment and render a message comprehensible by use of a cryptographic key.
暗号文の解読Toは暗号文の効果を逆にして、暗号化キーの使用でメッセージを分かりやすく伝えます。
delegation The granting of temporary credentials that allow a process to act on behalf of a principal.
委譲、プロセスが元本を代表して行動する一時的な資格証明書を与えること。
Kaufman [Page 115] RFC 1507 DASS September 1993
コーフマン[115ページ]RFC1507ダス1993年9月
delegation key A short term public/private key pair used by a claimant to act on behalf of a principal for a bounded period. The delegation public key appears in the ticket, whereas the delegation private key is used to sign secret key exchange messages.
境界がある期間の元本を代表して行動するのに主張者によって使用された委譲の主要なA短期間公衆/秘密鍵組。 委譲公開鍵はチケットの中に現れますが、委譲秘密鍵は、秘密鍵交換がメッセージであると署名するのに使用されます。
DES Data Encryption Standard: a symmetric (secret key) encryption algorithm used by DASS. An alternate encryption algorithm could be substituted with little or no disruption to the architecture.
DESデータ暗号化規格: ダスによって使用された左右対称の(秘密鍵)暗号化アルゴリズム。 アーキテクチャの分裂でまず代替の暗号化アルゴリズムを代入できませんでした。
DES key A 56-bit secret quantity used as a parameter to the DES encryption algorithm.
パラメタとしてDES暗号化アルゴリズムに使用されるDESの主要なA56ビットの秘密の量。
digital signature A value computed from a block of data and a key which could only be computed by someone knowing the key. A digital signature computed with a secret key can only be verified by someone knowing that secret key. A digital signature computed with a private key can be verified by anyone knowing the corresponding public key.
デジタル署名A価値はキーを知っているだれかが計算できただけである1ブロックのデータとキーから計算されました。 その秘密鍵を知っているだれかが秘密鍵で計算されたデジタル署名について確かめることができるだけです。 対応する公開鍵を知っているだれでも秘密鍵で計算されたデジタル署名について確かめることができます。
encipher To render incomprehensible except to the holder of a particular key. If you encipher with a secret key, only the holder of the same secret can decipher the message. If you encipher with a public key, only the holder of the corresponding private key can decipher it.
Toを暗号化してください。特定のキーの所有者を除いて、不可解にします。 あなたが秘密でキーを暗号化するなら、同じ秘密の所有者だけがメッセージを解読できます。 あなたが公開鍵、対応する秘密鍵缶の暗号文の解読の所有者だけをもってそれを暗号化するなら。
initial trust certificate A certificate signed by a principal for its own use which states the name and public key of a trusted authority.
初期の信託証券A証明書は信じられた権威の名前と公開鍵を述べるそれ自身の使用のために元本で署名しました。
global user name A hierarchical name for a user which is unique within the entire domain of discussion (typically the network).
グローバルなユーザは議論(通常ネットワーク)の全体のドメインの中でユーザのためのユニークな階層的な名前とAを命名します。
local user name A simple (non-hierarchical) name by which a user is known within a limited context such as on a single computer.
ユーザが単一のコンピュータなどの限られた文脈の中で知られているローカルのユーザ名Aの簡単な(非階層的な)名前。
Kaufman [Page 116] RFC 1507 DASS September 1993
コーフマン[116ページ]RFC1507ダス1993年9月
principal Abstract entity which can be authenticated by name. In DASS there are user principals and server principals.
名前で認証できる主要な抽象的な実体。 ダスに、ユーザ主体とサーバ主体があります。
private key Cryptographic key used in asymmetric (public key) cryptography to decrypt and/or sign messages. In asymmetric cryptography, knowing the encryption key is independent of knowing the decryption key. The decryption (or signing) private key cannot be derived from the encrypting (or verifying) public key.
秘密鍵Cryptographicキーは、メッセージに解読する、そして/または、署名するのに非対称の(公開鍵)に暗号を使用しました。 非対称の暗号では、暗号化キーを知っているのは復号化キーを知るのから独立しています。 暗号化(または、検証)公開鍵から復号化(または、署名する)秘密鍵を得ることができません。
proxy A mapping from an external name to a local account name for purposes of establishing a set of local access rights. Note that this differs from the definition in ECMA TR/46.
1セットの地方のアクセス権を確立する目的のための外部名からローカルのアカウント名までのプロキシAマッピング。 これがECMA TR/46との定義と異なっていることに注意してください。
public key Cryptographic key used in asymmetric cryptography to encrypt messages and/or verify signatures.
公開鍵Cryptographicキーは、メッセージを暗号化する、そして/または、署名について確かめるのに非対称で暗号を使用しました。
RSA The Rivest-Shamir-Adelman public key cryptosystem based on modular exponentiation where the modulus is the product of two large primes. When the term RSA key is used, it should be clear from context whether the public key, the private key, or the public/private pair is intended.
Rivestシャミル・エーデルマン公開鍵暗号方式が係数が大きい2盛りの製品であるところでモジュールの羃法を基礎づけたRSA。 主要であるという用語RSAが使用されているとき、公開鍵、秘密鍵、または公共の、または、私設の組が意図するかどうかが、文脈から明確であるはずです。
secret key Cryptographic key used in symmetric cryptography to encrypt, sign, decrypt and verify messages. In symmetric cryptography, knowledge of the decryption key implies knowledge of the encryption key, and vice-versa.
秘密鍵Cryptographicキーは、メッセージに暗号化して、署名して、解読して、確かめるのに左右対称で暗号を使用しました。 左右対称の暗号では、復号化キーに関する知識は暗号化キーに関する知識を含意します、そして、逆もまた同様です。
sign A process which takes a piece of data and a key and produces a digital signature which can only be calculated by someone with the key. The holder of a corresponding key can verify the signature.
Aが1つのデータとキーを取って、キーでだれかが計算できるだけであるデジタル署名を起こすプロセスであると署名してください。 対応するキーの所有者は署名について確かめることができます。
source The initiator of an authentication exchange.
認証の創始者が交換するソース。
strong authentication Authentication by means of cryptographically derived authentication tokens and credentials. The actual working definition is closer to that of "zero knowledge" proof:
暗号で派生している認証トークンと資格証明書による強い認証Authentication。 実際の仮の定義が「知識がありません」証拠のものの、より近くにあります:
Kaufman [Page 117] RFC 1507 DASS September 1993
コーフマン[117ページ]RFC1507ダス1993年9月
authentication so as to not reveal any information usable by either the verifier, or by an eavesdropping third party, to further their potential ability to impersonate the claimant.
認証、検証、または盗聴第三者は、主張者をまねる彼らの潜在能力を促進するためにどんな情報も使用可能であることを明らかにしません。
target The intended second party (other than the source) to an authentication exchange.
認証交換への2番目の意図しているパーティー(ソースを除いた)を狙ってください。
ticket A data structure certifying an authenticating (public) key by virtue of being signed by a user principal using their (long term) private key. The ticket also includes the UID of the principal.
ユーザ元本によってそれらの(長期)秘密鍵を使用することで署名されることによって認証(公共の)キーを公認するチケットAデータ構造。 また、チケットは主体のUIDを含んでいます。
trusted authority The public key, name and UID of a certification authority trusted in some context to certify the public keys of other principals.
証明権威の信じられた権威の公開鍵、名前、およびUIDは、他の主体の公開鍵を公認するために何らかの文脈を信じました。
UID A 128 bit unique identifier produced according to OSF standard specifications.
UID A128はOSFの標準の仕様通りに作り出されたユニークな識別子に噛み付きました。
user key A "long term" RSA key whose private portion authenticates its holder as having the access rights of a particular person.
個人的な部分が特定の人のアクセス権を持っていると所有者を認証するユーザの主要なA「長期」RSAキー。
verify To cryptographically process a piece of data and a digital signature to determine that the holder of a particular key signed the data.
Toについて確かめてください。暗号で1つのデータとデジタル署名を処理して、特定のキーの所有者がデータに署名したことを決定してください。
verifier The party who will perform the operations necessary to verify the claimed identity of a claimant.
検証、主張者の要求されたアイデンティティについて確かめるのに必要な操作を実行するパーティー。
Kaufman [Page 118] RFC 1507 DASS September 1993
コーフマン[118ページ]RFC1507ダス1993年9月
Security Considerations
セキュリティ問題
Security issues are discussed throughout this memo.
このメモ中で安全保障問題について議論します。
Author's Address
作者のアドレス
Charles Kaufman Digital Equipment Corporation ZKO3-3/U14 110 Spit Brook Road Nashua, NH 03062
チャールズコーフマンDEC ZKO3-3/U14 110はブルック・Roadナッシュア、ニューハンプシャー 03062に痰唾を吐きました。
Phone: (603) 881-1495 Email: kaufman@zk3.dec.com
以下に電話をしてください。 (603) 881-1495 メールしてください: kaufman@zk3.dec.com
General comments on this document should be sent to cat-ietf@mit.edu. Minor corrections should be sent to the author.
このドキュメントの概評を cat-ietf@mit.edu に送るべきです。 小さい方の修正を作者に送るべきです。
Kaufman [Page 119]
コーフマン[119ページ]
一覧
スポンサーリンク