[要約] RFC 2574は、SNMPv3のためのユーザーベースのセキュリティモデル(USM)に関する規格です。その目的は、SNMPv3のセキュリティを向上させ、認証と暗号化を提供することです。
Network Working Group U. Blumenthal Request for Comments: 2574 IBM T. J. Watson Research Obsoletes: 2274 B. Wijnen Category: Standards Track IBM T. J. Watson Research April 1999
User-based Security Model (USM) for version 3 of the Simple Network Management Protocol (SNMPv3)
シンプルなネットワーク管理プロトコル(SNMPV3)のバージョン3のユーザーベースのセキュリティモデル(USM)
Status of this Memo
本文書の位置付け
This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited.
このドキュメントは、インターネットコミュニティのインターネット標準トラックプロトコルを指定し、改善のための議論と提案を要求します。このプロトコルの標準化状態とステータスについては、「インターネット公式プロトコル標準」(STD 1)の現在のエディションを参照してください。このメモの配布は無制限です。
Copyright Notice
著作権表示
Copyright (C) The Internet Society (1999). All Rights Reserved.
Copyright(c)The Internet Society(1999)。無断転載を禁じます。
Abstract
概要
This document describes the User-based Security Model (USM) for SNMP version 3 for use in the SNMP architecture [RFC2571]. It defines the Elements of Procedure for providing SNMP message level security. This document also includes a MIB for remotely monitoring/managing the configuration parameters for this Security Model.
このドキュメントでは、SNMPアーキテクチャで使用するSNMPバージョン3のユーザーベースのセキュリティモデル(USM)について説明します[RFC2571]。SNMPメッセージレベルのセキュリティを提供するための手順の要素を定義します。このドキュメントには、このセキュリティモデルの構成パラメーターをリモートで監視/管理するためのMIBも含まれています。
Table of Contents
目次
1. Introduction 3 1.1. Threats 4 1.2. Goals and Constraints 5 1.3. Security Services 6 1.4. Module Organization 7 1.4.1. Timeliness Module 7 1.4.2. Authentication Protocol 8 1.4.3. Privacy Protocol 8 1.5. Protection against Message Replay, Delay and Redirection 8 1.5.1. Authoritative SNMP engine 8 1.5.2. Mechanisms 9 1.6. Abstract Service Interfaces 10 1.6.1. User-based Security Model Primitives for Authentication 11 1.6.2. User-based Security Model Primitives for Privacy 11 2. Elements of the Model 12 2.1. User-based Security Model Users 12 2.2. Replay Protection 13 2.2.1. msgAuthoritativeEngineID 13 2.2.2. msgAuthoritativeEngineBoots and msgAuthoritativeEngineTime14 2.2.3. Time Window 15 2.3. Time Synchronization 15 2.4. SNMP Messages Using this Security Model 16 2.5. Services provided by the User-based Security Model 17 2.5.1. Services for Generating an Outgoing SNMP Message 17 2.5.2. Services for Processing an Incoming SNMP Message 19 2.6. Key Localization Algorithm. 21 3. Elements of Procedure 21 3.1. Generating an Outgoing SNMP Message 22 3.2. Processing an Incoming SNMP Message 25 4. Discovery 30 5. Definitions 31 6. HMAC-MD5-96 Authentication Protocol 50 6.1. Mechanisms 50 6.1.1. Digest Authentication Mechanism 50 6.2. Elements of the Digest Authentication Protocol 51 6.2.1. Users 51 6.2.2. msgAuthoritativeEngineID 51 6.2.3. SNMP Messages Using this Authentication Protocol 51 6.2.4. Services provided by the HMAC-MD5-96 Authentication Module52 6.2.4.1. Services for Generating an Outgoing SNMP Message 52 6.2.4.2. Services for Processing an Incoming SNMP Message 53 6.3. Elements of Procedure 53 6.3.1. Processing an Outgoing Message 54 6.3.2. Processing an Incoming Message 54 7. HMAC-SHA-96 Authentication Protocol 55 7.1. Mechanisms 55 7.1.1. Digest Authentication Mechanism 56 7.2. Elements of the HMAC-SHA-96 Authentication Protocol 56 7.2.1. Users 56 7.2.2. msgAuthoritativeEngineID 57 7.2.3. SNMP Messages Using this Authentication Protocol 57 7.2.4. Services provided by the HMAC-SHA-96 Authentication Module57 7.2.4.1. Services for Generating an Outgoing SNMP Message 57 7.2.4.2. Services for Processing an Incoming SNMP Message 58 7.3. Elements of Procedure 59 7.3.1. Processing an Outgoing Message 59 7.3.2. Processing an Incoming Message 60 8. CBC-DES Symmetric Encryption Protocol 61 8.1. Mechanisms 61 8.1.1. Symmetric Encryption Protocol 61 8.1.1.1. DES key and Initialization Vector. 62 8.1.1.2. Data Encryption. 63 8.1.1.3. Data Decryption 63 8.2. Elements of the DES Privacy Protocol 63 8.2.1. Users 63 8.2.2. msgAuthoritativeEngineID 64 8.2.3. SNMP Messages Using this Privacy Protocol 64 8.2.4. Services provided by the DES Privacy Module 64 8.2.4.1. Services for Encrypting Outgoing Data 64 8.2.4.2. Services for Decrypting Incoming Data 65 8.3. Elements of Procedure. 66 8.3.1. Processing an Outgoing Message 66 8.3.2. Processing an Incoming Message 66 9. Intellectual Property 67 10. Acknowledgements 67 11. Security Considerations 69 11.1. Recommended Practices 69 11.2. Defining Users 71 11.3. Conformance 72 11.4. Use of Reports 72 11.5. Access to the SNMP-USER-BASED-SM-MIB 72 12. References 73 13. Editors' Addresses 75 A.1. SNMP engine Installation Parameters 76 A.2. Password to Key Algorithm 78 A.2.1. Password to Key Sample Code for MD5 79 A.2.2. Password to Key Sample Code for SHA 80 A.3. Password to Key Sample Results 81 A.3.1. Password to Key Sample Results using MD5 81 A.3.2. Password to Key Sample Results using SHA 81 A.4. Sample encoding of msgSecurityParameters 82 A.5. Sample keyChange Results 83 A.5.1. Sample keyChange Results using MD5 83 A.5.2. Sample keyChange Results using SHA 84 B. Change Log 85 C. Full Copyright Statement 86
1. はじめに3 1.1。脅威4 1.2。目標と制約5 1.3。セキュリティサービス6 1.4。モジュール組織7 1.4.1。適時モジュール7 1.4.2。認証プロトコル8 1.4.3。プライバシープロトコル8 1.5。メッセージリプレイ、遅延、リダイレクトに対する保護8 1.5.1。権威あるSNMPエンジン8 1.5.2。メカニズム9 1.6。抽象サービスインターフェイス10 1.6.1。認証のためのユーザーベースのセキュリティモデルプリミティブ11 1.6.2。プライバシーのためのユーザーベースのセキュリティモデルプリミティブ11 2.モデルの要素12 2.1。ユーザーベースのセキュリティモデルユーザー12 2.2。リプレイ保護13 2.2.1。msgauthoritativeEngineID 13 2.2.2。msgauthoritativeEngineBootsおよびmsgauthoritativeEngineTime14 2.2.3。タイムウィンドウ15 2.3。時間同期15 2.4。このセキュリティモデル16 2.5を使用したSNMPメッセージ。ユーザーベースのセキュリティモデル17 2.5.1が提供するサービス。発信SNMPメッセージを生成するためのサービス17 2.5.2。着信SNMPメッセージを処理するためのサービス19 2.6。重要なローカリゼーションアルゴリズム。21 3.手順の要素21 3.1。発信SNMPメッセージの生成22 3.2。着信SNMPメッセージの処理25 4.ディスカバリー30 5.定義31 6. HMAC-MD5-96認証プロトコル50 6.1。メカニズム50 6.1.1。消化認証メカニズム50 6.2。Digest認証プロトコルの要素51 6.2.1。ユーザー51 6.2.2。msgauthoritativeEngineID 51 6.2.3。この認証プロトコル51 6.2.4を使用したSNMPメッセージ。HMAC-MD5-96認証module52 6.2.4.1が提供するサービス。発信SNMPメッセージを生成するためのサービス52 6.2.4.2。着信SNMPメッセージを処理するためのサービス53 6.3。手順の要素53 6.3.1。発信メッセージの処理54 6.3.2。受信メッセージの処理54 7. HMAC-SHA-96認証プロトコル55 7.1。メカニズム55 7.1.1。消化認証メカニズム56 7.2。HMAC-SHA-96認証プロトコル56 7.2.1の要素。ユーザー56 7.2.2。msgauthoritativeEngineID 57 7.2.3。この認証プロトコル57 7.2.4を使用したSNMPメッセージ。HMAC-SHA-96認証module57 7.2.4.1が提供するサービス。発信SNMPメッセージを生成するためのサービス57 7.2.4.2。着信SNMPメッセージを処理するためのサービス58 7.3。手順59 7.3.1の要素。発信メッセージの処理59 7.3.2。着信メッセージの処理60 8. CBC-DES対称暗号化プロトコル61 8.1。メカニズム61 8.1.1。対称暗号化プロトコル61 8.1.1.1。DESキーおよび初期化ベクトル。62 8.1.1.2。データ暗号化。63 8.1.1.3。データ復号化63 8.2。DESプライバシープロトコル63 8.2.1の要素。ユーザー63 8.2.2。msgauthoritativeEngineID 64 8.2.3。このプライバシープロトコル64 8.2.4を使用したSNMPメッセージ。DESプライバシーモジュール64 8.2.4.1が提供するサービス。発信データを暗号化するためのサービス64 8.2.4.2。着信データを復号化するためのサービス65 8.3。手順の要素。66 8.3.1。発信メッセージの処理66 8.3.2。受信メッセージの処理66 9.知的財産67 10.謝辞67 11.セキュリティ上の考慮事項69 11.1。推奨されるプラクティス69 11.2。ユーザーの定義71 11.3。適合72 11.4。レポートの使用72 11.5。SNMPユーザーベースのSM-MIB 72 12.参考文献73 13.編集者アドレス75 A.1。SNMPエンジンのインストールパラメーター76 A.2。キーアルゴリズムへのパスワード78 A.2.1。MD5のキーサンプルコードへのパスワード79 A.2.2。SHA 80 A.3のキーサンプルコードへのパスワード。キーサンプル結果のパスワード81 A.3.1。MD5 81 A.3.2を使用した主要なサンプル結果のパスワード。SHA 81 A.4を使用した主要なサンプル結果のパスワード。MSGSecurityParametersのサンプルエンコーディング82 A.5。サンプルキーチェンジ結果83 A.5.1。MD5 83 A.5.2を使用したキーチェンジ結果をサンプルします。SHA 84を使用したサンプルキーチェンジ結果B.ログ85 C.フル著作権ステートメント86
The Architecture for describing Internet Management Frameworks [RFC2571] describes that an SNMP engine is composed of:
インターネット管理フレームワーク[RFC2571]を説明するためのアーキテクチャは、SNMPエンジンが構成されていることを説明しています。
1) a Dispatcher 2) a Message Processing Subsystem, 3) a Security Subsystem, and 4) an Access Control Subsystem.
1) ディスパッチャー2)メッセージ処理サブシステム、3)セキュリティサブシステム、および4)アクセス制御サブシステム。
Applications make use of the services of these subsystems.
アプリケーションは、これらのサブシステムのサービスを利用しています。
It is important to understand the SNMP architecture and the terminology of the architecture to understand where the Security Model described in this document fits into the architecture and interacts with other subsystems within the architecture. The reader is expected to have read and understood the description of the SNMP architecture, as defined in [RFC2571].
このドキュメントで説明されているセキュリティモデルがアーキテクチャに適合し、アーキテクチャ内の他のサブシステムと対話する場所を理解するには、SNMPアーキテクチャとアーキテクチャの用語を理解することが重要です。読者は、[RFC2571]で定義されているように、SNMPアーキテクチャの説明を読んで理解することが期待されています。
This memo [RFC2274] describes the User-based Security Model as it is used within the SNMP Architecture. The main idea is that we use the traditional concept of a user (identified by a userName) with which to associate security information.
このメモ[RFC2274]は、SNMPアーキテクチャ内で使用されているユーザーベースのセキュリティモデルを説明しています。主なアイデアは、セキュリティ情報を関連付けるためにユーザーの従来の概念(ユーザー名で識別)を使用することです。
This memo describes the use of HMAC-MD5-96 and HMAC-SHA-96 as the authentication protocols and the use of CBC-DES as the privacy protocol. The User-based Security Model however allows for other such protocols to be used instead of or concurrent with these protocols. Therefore, the description of HMAC-MD5-96, HMAC-SHA-96 and CBC-DES are in separate sections to reflect their self-contained nature and to indicate that they can be replaced or supplemented in the future.
このメモでは、HMAC-MD5-96およびHMAC-SHA-96の認証プロトコルとしての使用と、プライバシープロトコルとしてのCBC-DESの使用について説明しています。ただし、ユーザーベースのセキュリティモデルでは、これらのプロトコルの代わりに、またはこれらのプロトコルと同時に使用する他のこのようなプロトコルを使用できます。したがって、HMAC-MD5-96、HMAC-SHA-96、およびCBC-DEの説明は、自己完結型の性質を反映し、将来交換または補充できることを示すために別々のセクションにあります。
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119].
「必須」、「そうしない」、「必須」、「必要」、「「しない」、「そうでない」、「そうではない」、「そうでない」、「推奨」、「5月」、および「オプション」は、[RFC2119]に記載されているように解釈される。
Several of the classical threats to network protocols are applicable to the network management problem and therefore would be applicable to any SNMP Security Model. Other threats are not applicable to the network management problem. This section discusses principal threats, secondary threats, and threats which are of lesser importance.
ネットワークプロトコルに対する古典的な脅威のいくつかは、ネットワーク管理の問題に適用されるため、SNMPセキュリティモデルに適用できます。他の脅威は、ネットワーク管理の問題には適用されません。このセクションでは、主要な脅威、二次的な脅威、およびそれほど重要ではない脅威について説明します。
The principal threats against which this SNMP Security Model should provide protection are:
このSNMPセキュリティモデルが保護を提供すべき主要な脅威は、次のとおりです。
- Modification of Information The modification threat is the danger that some unauthorized entity may alter in-transit SNMP messages generated on behalf of an authorized principal in such a way as to effect unauthorized management operations, including falsifying the value of an object.
- 情報の変更修正の脅威は、一部の不正なエンティティが、オブジェクトの価値を偽造することを含む不正な管理操作を実施するような方法で認可されたプリンシパルに代わって生成された輸送中のSNMPメッセージを変更する可能性がある危険です。
- Masquerade The masquerade threat is the danger that management operations not authorized for some user may be attempted by assuming the identity of another user that has the appropriate authorizations.
- 仮面舞踏会の脅威は、適切な承認を持っている別のユーザーの身元を仮定することにより、一部のユーザーに対して許可されていない管理操作が試みられる可能性があるという危険です。
Two secondary threats are also identified. The Security Model defined in this memo provides limited protection against:
2つの二次的な脅威も特定されています。このメモで定義されているセキュリティモデルは、以下に対する限定的な保護を提供します。
- Disclosure The disclosure threat is the danger of eavesdropping on the exchanges between managed agents and a management station. Protecting against this threat may be required as a matter of local policy.
- 開示開示の脅威は、マネージドエージェントと管理ステーションの間の交換を盗聴する危険です。この脅威から保護することは、現地の政策の問題として必要になる場合があります。
- Message Stream Modification The SNMP protocol is typically based upon a connection-less transport service which may operate over any sub-network service. The re-ordering, delay or replay of messages can and does occur through the natural operation of many such sub-network services. The message stream modification threat is the danger that messages may be maliciously re-ordered, delayed or replayed to an extent which is greater than can occur through the natural operation of a sub-network service, in order to effect unauthorized management operations.
- メッセージストリームの変更SNMPプロトコルは、通常、サブネットワークサービスで動作する可能性のある接続のない輸送サービスに基づいています。メッセージの再注文、遅延、またはリプレイは、そのような多くのサブネットワークサービスの自然操作を通じて発生する可能性があります。メッセージストリームの変更の脅威は、許可されていない管理操作を実施するために、サブネットワークサービスの自然操作を通じて発生するよりも大きい範囲で、メッセージが悪意を持って再注文、遅延、または再生される危険です。
There are at least two threats that an SNMP Security Model need not protect against. The security protocols defined in this memo do not provide protection against:
SNMPセキュリティモデルが保護する必要がない少なくとも2つの脅威があります。このメモで定義されているセキュリティプロトコルは、以下に対して保護を提供しません。
- Denial of Service This SNMP Security Model does not attempt to address the broad range of attacks by which service on behalf of authorized users is denied. Indeed, such denial-of-service attacks are in many cases indistinguishable from the type of network failures with which any viable network management protocol must cope as a matter of course. - Traffic Analysis This SNMP Security Model does not attempt to address traffic analysis attacks. Indeed, many traffic patterns are predictable - devices may be managed on a regular basis by a relatively small number of management applications - and therefore there is no significant advantage afforded by protecting against traffic analysis.
- サービスの拒否実際、このようなサービス拒否攻撃は、多くの場合、実行可能なネットワーク管理プロトコルが当然のことながら対処しなければならないネットワーク障害のタイプと区別できません。 - トラフィック分析このSNMPセキュリティモデルは、トラフィック分析攻撃に対処しようとしません。実際、多くのトラフィックパターンは予測可能です - デバイスは、比較的少数の管理アプリケーションによって定期的に管理される場合があります - したがって、トラフィック分析から保護することで得られる重要な利点はありません。
Based on the foregoing account of threats in the SNMP network management environment, the goals of this SNMP Security Model are as follows.
SNMPネットワーク管理環境における脅威の前述の説明に基づいて、このSNMPセキュリティモデルの目標は次のとおりです。
1) Provide for verification that each received SNMP message has not been modified during its transmission through the network.
1) 受信した各SNMPメッセージがネットワークを介した送信中に変更されていないことを確認します。
2) Provide for verification of the identity of the user on whose behalf a received SNMP message claims to have been generated.
2) 受信したSNMPメッセージが生成されたと主張するユーザーの身元の確認を提供します。
3) Provide for detection of received SNMP messages, which request or contain management information, whose time of generation was not recent.
3) 世代の時間が最近ではなかった管理情報を要求または封じ込めた受信したSNMPメッセージの検出を提供します。
4) Provide, when necessary, that the contents of each received SNMP message are protected from disclosure.
4) 必要に応じて、受信した各SNMPメッセージの内容が開示から保護されていることを提供します。
In addition to the principal goal of supporting secure network management, the design of this SNMP Security Model is also influenced by the following constraints:
安全なネットワーク管理をサポートするという主要な目標に加えて、このSNMPセキュリティモデルの設計は、次の制約の影響を受けます。
1) When the requirements of effective management in times of network stress are inconsistent with those of security, the design should prefer the former.
1) ネットワークストレスの時点での効果的な管理の要件がセキュリティの要件と矛盾する場合、設計は前者を好むはずです。
2) Neither the security protocol nor its underlying security mechanisms should depend upon the ready availability of other network services (e.g., Network Time Protocol (NTP) or key management protocols).
2) セキュリティプロトコルもその基礎となるセキュリティメカニズムも、他のネットワークサービス(ネットワークタイムプロトコル(NTP)またはキー管理プロトコルなどの準備が整った可用性に依存する必要はありません。
3) A security mechanism should entail no changes to the basic SNMP network management philosophy.
3) セキュリティメカニズムは、基本的なSNMPネットワーク管理哲学に変更を伴わないはずです。
The security services necessary to support the goals of this SNMP Security Model are as follows:
このSNMPセキュリティモデルの目標をサポートするために必要なセキュリティサービスは次のとおりです。
- Data Integrity is the provision of the property that data has not been altered or destroyed in an unauthorized manner, nor have data sequences been altered to an extent greater than can occur non-maliciously.
- データの整合性とは、データが不正に変更または破壊されていないプロパティの提供であり、データシーケンスが非悪意に発生するよりも大きい程度に変更されていないことです。
- Data Origin Authentication is the provision of the property that the claimed identity of the user on whose behalf received data was originated is corroborated.
- データ起源の認証とは、データを受け取ったデータが発信されたユーザーの請求されたアイデンティティが裏付けられているというプロパティの提供です。
- Data Confidentiality is the provision of the property that information is not made available or disclosed to unauthorized individuals, entities, or processes.
- データの機密性は、情報が利用可能になったり、不正な個人、エンティティ、またはプロセスに開示されたりしないというプロパティの提供です。
- Message timeliness and limited replay protection is the provision of the property that a message whose generation time is outside of a specified time window is not accepted. Note that message reordering is not dealt with and can occur in normal conditions too.
- メッセージの適時性と限られたリプレイ保護とは、指定されたタイムウィンドウの外側に生成時間があるメッセージが受け入れられないというプロパティの提供です。メッセージの並べ替えは処理されず、通常の条件でも発生する可能性があることに注意してください。
For the protocols specified in this memo, it is not possible to assure the specific originator of a received SNMP message; rather, it is the user on whose behalf the message was originated that is authenticated.
このメモで指定されたプロトコルの場合、受信したSNMPメッセージの特定のオリジネーターを保証することはできません。むしろ、認証されているのはメッセージが生まれたのはユーザーです。
For these protocols, it not possible to obtain data integrity without data origin authentication, nor is it possible to obtain data origin authentication without data integrity. Further, there is no provision for data confidentiality without both data integrity and data origin authentication.
これらのプロトコルでは、データの起源認証なしでデータの整合性を取得することはできません。また、データの整合性なしにデータ起源認証を取得することもできません。さらに、データの整合性とデータ起源の認証の両方がなければ、データの機密性の規定はありません。
The security protocols used in this memo are considered acceptably secure at the time of writing. However, the procedures allow for new authentication and privacy methods to be specified at a future time if the need arises.
このメモで使用されているセキュリティプロトコルは、執筆時点で許容できるほど安全であると考えられています。ただし、この手順により、必要性が発生した場合、将来的に新しい認証方法とプライバシー方法を指定することができます。
The security protocols defined in this memo are split in three different modules and each has its specific responsibilities such that together they realize the goals and security services described above:
このメモで定義されているセキュリティプロトコルは、3つの異なるモジュールに分割されており、それぞれが上記の目標とセキュリティサービスを実現するように特定の責任を持っています。
- The authentication module MUST provide for:
- 認証モジュールが提供する必要があります。
- Data Integrity,
- データの整合性、
- Data Origin Authentication
- データ起源認証
- The timeliness module MUST provide for:
- 適時モジュールが提供する必要があります。
- Protection against message delay or replay (to an extent greater than can occur through normal operation)
- メッセージの遅延またはリプレイに対する保護(通常の操作によって発生するよりも大きい場合)
- The privacy module MUST provide for
- プライバシーモジュールを提供する必要があります
- Protection against disclosure of the message payload.
- メッセージペイロードの開示に対する保護。
The timeliness module is fixed for the User-based Security Model while there is provision for multiple authentication and/or privacy modules, each of which implements a specific authentication or privacy protocol respectively.
適時性モジュールは、ユーザーベースのセキュリティモデルに固定されていますが、複数の認証および/またはプライバシーモジュールの規定があり、それぞれがそれぞれ特定の認証またはプライバシープロトコルを実装します。
Section 3 (Elements of Procedure) uses the timeliness values in an SNMP message to do timeliness checking. The timeliness check is only performed if authentication is applied to the message. Since the complete message is checked for integrity, we can assume that the timeliness values in a message that passes the authentication module are trustworthy.
セクション3(プロシージャの要素)では、SNMPメッセージの適時値を使用して、適時チェックを行います。適時チェックは、メッセージに認証が適用される場合にのみ実行されます。完全なメッセージの整合性が確認されているため、認証モジュールに合格するメッセージ内の適時値が信頼できると仮定できます。
Section 6 describes the HMAC-MD5-96 authentication protocol which is the first authentication protocol that MUST be supported with the User-based Security Model. Section 7 describes the HMAC-SHA-96 authentication protocol which is another authentication protocol that SHOULD be supported with the User-based Security Model. In the future additional or replacement authentication protocols may be defined as new needs arise.
セクション6では、ユーザーベースのセキュリティモデルでサポートする必要がある最初の認証プロトコルであるHMAC-MD5-96認証プロトコルについて説明します。セクション7では、ユーザーベースのセキュリティモデルでサポートする必要がある別の認証プロトコルであるHMAC-SHA-96認証プロトコルについて説明します。将来、新しいニーズが生じるときに追加または交換の認証プロトコルが定義される場合があります。
The User-based Security Model prescribes that, if authentication is used, then the complete message is checked for integrity in the authentication module.
ユーザーベースのセキュリティモデルは、認証が使用されている場合、完全なメッセージが認証モジュールの整合性をチェックされることを規定しています。
For a message to be authenticated, it needs to pass authentication check by the authentication module and the timeliness check which is a fixed part of this User-based Security model.
メッセージを認証するには、認証モジュールと、このユーザーベースのセキュリティモデルの固定部分である適時性チェックによって認証チェックを渡す必要があります。
Section 8 describes the CBC-DES Symmetric Encryption Protocol which is the first privacy protocol to be used with the User-based Security Model. In the future additional or replacement privacy protocols may be defined as new needs arise.
セクション8では、ユーザーベースのセキュリティモデルで使用される最初のプライバシープロトコルであるCBC-DES対称暗号化プロトコルについて説明します。将来的には、新しいニーズが生じたときに追加または交換のプライバシープロトコルが定義される場合があります。
The User-based Security Model prescribes that the scopedPDU is protected from disclosure when a message is sent with privacy.
ユーザーベースのセキュリティモデルは、プライバシーでメッセージが送信されたときにScopedPDUが開示から保護されていることを規定しています。
The User-based Security Model also prescribes that a message needs to be authenticated if privacy is in use.
また、ユーザーベースのセキュリティモデルは、プライバシーが使用されている場合、メッセージを認証する必要があることも規定しています。
In order to protect against message replay, delay and redirection, one of the SNMP engines involved in each communication is designated to be the authoritative SNMP engine. When an SNMP message contains a payload which expects a response (those messages that contain a Confirmed Class PDU [RFC2571]), then the receiver of such messages is authoritative. When an SNMP message contains a payload which does not expect a response (those messages that contain an Unconfirmed Class PDU [RFC2571]), then the sender of such a message is authoritative.
メッセージリプレイ、遅延、およびリダイレクトから保護するために、各通信に関与するSNMPエンジンの1つが権威あるSNMPエンジンに指定されています。SNMPメッセージに、応答(確認されたクラスPDU [RFC2571]を含むメッセージ)を期待するペイロードが含まれている場合、そのようなメッセージの受信者は権威があります。SNMPメッセージに、応答(未確認のクラスPDU [RFC2571]を含むメッセージ)が期待されていないペイロードが含まれている場合、そのようなメッセージの送信者は権威があります。
The following mechanisms are used:
次のメカニズムが使用されます。
1) To protect against the threat of message delay or replay (to an extent greater than can occur through normal operation), a set of timeliness indicators (for the authoritative SNMP engine) are included in each message generated. An SNMP engine evaluates the timeliness indicators to determine if a received message is recent. An SNMP engine may evaluate the timeliness indicators to ensure that a received message is at least as recent as the last message it received from the same source. A non-authoritative SNMP engine uses received authentic messages to advance its notion of the timeliness indicators at the remote authoritative source.
1) メッセージの遅延またはリプレイの脅威から保護するために(通常の操作により発生するよりも大きい場合)、生成された各メッセージには、適時性インジケーターのセットが含まれています。SNMPエンジンは、適時インジケーターを評価して、受信したメッセージが最近かどうかを判断します。SNMPエンジンは、適時インジケーターを評価して、受信したメッセージが少なくとも同じソースから受け取った最後のメッセージと同じくらい最近であることを確認できます。非承認のSNMPエンジンは、認められた本物のメッセージを使用して、リモートの権威あるソースでの適時性指標の概念を進めます。
An SNMP engine MUST also use a mechanism to match incoming Responses to outstanding Requests and it MUST drop any Responses that do not match an outstanding request. For example, a msgID can be inserted in every message to cater for this functionality.
SNMPエンジンは、メカニズムを使用して着信応答を未解決のリクエストに一致させる必要があり、未解決のリクエストと一致しない応答をドロップする必要があります。たとえば、MSGIDをすべてのメッセージに挿入して、この機能に応えることができます。
These mechanisms provide for the detection of authenticated messages whose time of generation was not recent.
これらのメカニズムは、生成時間が最近ではなかった認証されたメッセージの検出を提供します。
This protection against the threat of message delay or replay does not imply nor provide any protection against unauthorized deletion or suppression of messages. Also, an SNMP engine may not be able to detect message reordering if all the messages involved are sent within the Time Window interval. Other mechanisms defined independently of the security protocol can also be used to detect the re-ordering replay, deletion, or suppression of messages containing Set operations (e.g., the MIB variable snmpSetSerialNo [RFC1907]).
メッセージの遅延またはリプレイの脅威に対するこの保護は、メッセージの不正な削除または抑制に対する保護を意味するものではありません。また、SNMPエンジンは、関係するすべてのメッセージが時間ウィンドウ間隔内で送信された場合、メッセージの並べ替えを検出できない場合があります。セキュリティプロトコルとは独立して定義された他のメカニズムは、設定操作を含むメッセージの再注文、削除、または抑制を検出するためにも使用できます(たとえば、MIB変数SNMPSETSERIALNO [RFC1907])。
2) Verification that a message sent to/from one authoritative SNMP engine cannot be replayed to/as-if-from another authoritative SNMP engine.
2) ある権威あるSNMPエンジンに送信されたメッセージを別の権威あるSNMPエンジンから/as-if-fromにリプレイできないことを確認します。
Included in each message is an identifier unique to the authoritative SNMP engine associated with the sender or intended recipient of the message.
各メッセージには、送信者に関連付けられた権威あるSNMPエンジンに固有の識別子またはメッセージの受信者が含まれています。
A message containing an Unconfirmed Class PDU sent by an authoritative SNMP engine to one non-authoritative SNMP engine can potentially be replayed to another non-authoritative SNMP engine. The latter non-authoritative SNMP engine might (if it knows about the same userName with the same secrets at the authoritative SNMP engine) as a result update its notion of timeliness indicators of the authoritative SNMP engine, but that is not considered a threat. In this case, A Report or Response message will be discarded by the Message Processing Model, because there should not be an outstanding Request message. A Trap will possibly be accepted. Again, that is not considered a threat, because the communication was authenticated and timely. It is as if the authoritative SNMP engine was configured to start sending Traps to the second SNMP engine, which theoretically can happen without the knowledge of the second SNMP engine anyway. Anyway, the second SNMP engine may not expect to receive this Trap, but is allowed to see the management information contained in it.
権威あるSNMPエンジンから1つの非権威あるSNMPエンジンに送信された未確認のクラスPDUを含むメッセージは、別の非権威あるSNMPエンジンに再生される可能性があります。結果として、後者の非承認型SNMPエンジンは(権威あるSNMPエンジンで同じ秘密を持つ同じユーザー名について知っている場合)、権威あるSNMPエンジンの適時性指標の概念を更新する可能性がありますが、脅威とは見なされません。この場合、未解決のリクエストメッセージがあるべきではないため、メッセージ処理モデルによってレポートまたは応答メッセージが破棄されます。トラップが受け入れられる可能性があります。繰り返しますが、それは脅威とは見なされません。なぜなら、コミュニケーションは認証されたタイムリーだったからです。まるで権威あるSNMPエンジンが2番目のSNMPエンジンにトラップの送信を開始するように構成されているかのようです。とにかく、2番目のSNMPエンジンはこのトラップを受け取ることを期待していないかもしれませんが、そこに含まれる管理情報を見ることができます。
3) Detection of messages which were not recently generated.
3) 最近生成されなかったメッセージの検出。
A set of time indicators are included in the message, indicating the time of generation. Messages without recent time indicators are not considered authentic. In addition, an SNMP engine MUST drop any Responses that do not match an outstanding request. This however is the responsibility of the Message Processing Model.
一連の時間インジケーターがメッセージに含まれており、生成時間を示しています。最近の時間指標のないメッセージは、本物とは見なされません。さらに、SNMPエンジンは、未解決のリクエストと一致しない応答をドロップする必要があります。ただし、これはメッセージ処理モデルの責任です。
This memo allows the same user to be defined on multiple SNMP engines. Each SNMP engine maintains a value, snmpEngineID, which uniquely identifies the SNMP engine. This value is included in each message sent to/from the SNMP engine that is authoritative (see section 1.5.1). On receipt of a message, an authoritative SNMP engine checks the value to ensure that it is the intended recipient, and a non-authoritative SNMP engine uses the value to ensure that the message is processed using the correct state information.
このメモにより、同じユーザーを複数のSNMPエンジンで定義できます。各SNMPエンジンは、SNMPエンジンを独自に識別する値であるSNMPENGINEIDを維持しています。この値は、信頼できるSNMPエンジンに送信される各メッセージに含まれています(セクション1.5.1を参照)。メッセージを受け取ると、権威あるSNMPエンジンが値をチェックして、それが意図した受信者であることを確認し、非著作的なSNMPエンジンは値を使用して、正しい状態情報を使用してメッセージが処理されることを確認します。
Each SNMP engine maintains two values, snmpEngineBoots and snmpEngineTime, which taken together provide an indication of time at that SNMP engine. Both of these values are included in an authenticated message sent to/received from that SNMP engine. On receipt, the values are checked to ensure that the indicated timeliness value is within a Time Window of the current time. The Time Window represents an administrative upper bound on acceptable delivery delay for protocol messages.
各SNMPエンジンは、SNMPENGINEBOOTSとSNMPENGINETIMEの2つの値を維持します。これらの値は両方とも、そのSNMPエンジンから送信/受信された認証メッセージに含まれています。受領時に、値がチェックされて、指定された適時値が現在の時間枠内にあることを確認します。タイムウィンドウは、プロトコルメッセージの許容可能な配信遅延に関する管理上の上限を表します。
For an SNMP engine to generate a message which an authoritative SNMP engine will accept as authentic, and to verify that a message received from that authoritative SNMP engine is authentic, such an SNMP engine must first achieve timeliness synchronization with the authoritative SNMP engine. See section 2.3.
SNMPエンジンが権威あるSNMPエンジンが本物として受け入れるメッセージを生成し、その権威あるSNMPエンジンから受信したメッセージが本物であることを確認するために、そのようなSNMPエンジンは最初に権威あるSNMPエンジンとの適時性同期を達成する必要があります。セクション2.3を参照してください。
Abstract service interfaces have been defined to describe the conceptual interfaces between the various subsystems within an SNMP entity. Similarly a set of abstract service interfaces have been defined within the User-based Security Model (USM) to describe the conceptual interfaces between the generic USM services and the self-contained authentication and privacy services.
SNMPエンティティ内のさまざまなサブシステム間の概念的インターフェイスを記述するために、抽象サービスインターフェイスが定義されています。同様に、一般的なUSMサービスと自己完結型の認証およびプライバシーサービスとの概念的インターフェイスを記述するために、ユーザーベースのセキュリティモデル(USM)内で一連の抽象サービスインターフェイスが定義されています。
These abstract service interfaces are defined by a set of primitives that define the services provided and the abstract data elements that must be passed when the services are invoked. This section lists the primitives that have been defined for the User-based Security Model.
これらの抽象サービスインターフェイスは、提供されるサービスを定義する一連のプリミティブと、サービスが呼び出されたときに合格する必要がある抽象データ要素によって定義されます。このセクションには、ユーザーベースのセキュリティモデル用に定義されているプリミティブをリストします。
The User-based Security Model provides the following internal primitives to pass data back and forth between the Security Model itself and the authentication service:
ユーザーベースのセキュリティモデルは、セキュリティモデル自体と認証サービスの間でデータをやり取りするための次の内部プリミティブを提供します。
statusInformation = authenticateOutgoingMsg( IN authKey -- secret key for authentication IN wholeMsg -- unauthenticated complete message OUT authenticatedWholeMsg -- complete authenticated message )
statusInformation = authenticateIncomingMsg( IN authKey -- secret key for authentication IN authParameters -- as received on the wire IN wholeMsg -- as received on the wire OUT authenticatedWholeMsg -- complete authenticated message )
The User-based Security Model provides the following internal primitives to pass data back and forth between the Security Model itself and the privacy service:
ユーザーベースのセキュリティモデルは、セキュリティモデル自体とプライバシーサービス間でデータをやり取りするための次の内部プリミティブを提供します。
statusInformation = encryptData( IN encryptKey -- secret key for encryption IN dataToEncrypt -- data to encrypt (scopedPDU) OUT encryptedData -- encrypted data (encryptedPDU) OUT privParameters -- filled in by service provider )
statusInformation = decryptData( IN decryptKey -- secret key for decrypting IN privParameters -- as received on the wire IN encryptedData -- encrypted data (encryptedPDU) OUT decryptedData -- decrypted data (scopedPDU) )
This section contains definitions required to realize the security model defined by this memo.
このセクションには、このメモで定義されたセキュリティモデルを実現するために必要な定義が含まれています。
Management operations using this Security Model make use of a defined set of user identities. For any user on whose behalf management operations are authorized at a particular SNMP engine, that SNMP engine must have knowledge of that user. An SNMP engine that wishes to communicate with another SNMP engine must also have knowledge of a user known to that engine, including knowledge of the applicable attributes of that user.
このセキュリティモデルを使用した管理操作は、定義されたユーザーIDセットを使用します。特定のSNMPエンジンで管理操作が認可されているユーザーの場合、そのSNMPエンジンはそのユーザーの知識を持っている必要があります。別のSNMPエンジンと通信したいSNMPエンジンは、そのユーザーの該当する属性の知識を含む、そのエンジンに知られているユーザーの知識も必要です。
A user and its attributes are defined as follows:
ユーザーとその属性は、次のように定義されます。
userName A string representing the name of the user.
ユーザー名ユーザーの名前を表す文字列。
securityName A human-readable string representing the user in a format that is Security Model independent.
SecurityNameユーザーを表す人間の読み取り可能な文字列は、セキュリティモデルに依存しない形式です。
authProtocol An indication of whether messages sent on behalf of this user can be authenticated, and if so, the type of authentication protocol which is used. Two such protocols are defined in this memo:
authprotocolこのユーザーに代わって送信されたメッセージを認証できるかどうかを示しています。もしそうなら、使用される認証プロトコルのタイプ。このメモでは、このような2つのプロトコルが定義されています。
- the HMAC-MD5-96 authentication protocol. - the HMAC-SHA-96 authentication protocol.
- HMAC-MD5-96認証プロトコル。-HMAC-SHA-96認証プロトコル。
authKey If messages sent on behalf of this user can be authenticated, the (private) authentication key for use with the authentication protocol. Note that a user's authentication key will normally be different at different authoritative SNMP engines. The authKey is not accessible via SNMP. The length requirements of the authKey are defined by the authProtocol in use.
AuthKeyこのユーザーに代わって送信されたメッセージを認証できる場合、認証プロトコルで使用する(プライベート)認証キー。ユーザーの認証キーは、通常、権威あるSNMPエンジンが異なる場合に異なることに注意してください。AuthKeyはSNMPを介してアクセスできません。AuthKeyの長さ要件は、使用中のAuthProtocolによって定義されます。
authKeyChange and authOwnKeyChange The only way to remotely update the authentication key. Does that in a secure manner, so that the update can be completed without the need to employ privacy protection.
AuthKeyChangeおよびAuthOwnKeyChange認証キーをリモートで更新する唯一の方法。プライバシー保護を採用する必要なく更新を完了できるように、安全な方法でそれを行います。
privProtocol An indication of whether messages sent on behalf of this user can be protected from disclosure, and if so, the type of privacy protocol which is used. One such protocol is defined in this memo: the CBC-DES Symmetric Encryption Protocol.
PrivProtocolこのユーザーに代わって送信されたメッセージを開示から保護できるかどうか、およびもしそうなら、使用されるプライバシープロトコルの種類を示しています。そのようなプロトコルの1つは、このメモで定義されています:CBC-DES対称暗号化プロトコル。
privKey If messages sent on behalf of this user can be en/decrypted, the (private) privacy key for use with the privacy protocol. Note that a user's privacy key will normally be different at different authoritative SNMP engines. The privKey is not accessible via SNMP. The length requirements of the privKey are defined by the privProtocol in use.
このユーザーに代わって送信されたメッセージをEN/Decrypted、プライバシープロトコルで使用する(プライベート)プライバシーキーを使用できる場合。ユーザーのプライバシーキーは、通常、権威あるSNMPエンジンによって異なることに注意してください。PrivkeyにはSNMPを介してアクセスできません。Privkeyの長さ要件は、使用中のPrivProtocolによって定義されます。
privKeyChange and privOwnKeyChange The only way to remotely update the encryption key. Does that in a secure manner, so that the update can be completed without the need to employ privacy protection.
priveChangeとprivownKeyChange暗号化キーをリモートで更新する唯一の方法。プライバシー保護を採用する必要なく更新を完了できるように、安全な方法でそれを行います。
Each SNMP engine maintains three objects:
各SNMPエンジンは3つのオブジェクトを維持します。
- snmpEngineID, which (at least within an administrative domain) uniquely and unambiguously identifies an SNMP engine.
- (少なくとも管理領域内で)SNMPエンジンを独自に識別しているSnmpengineid。
- snmpEngineBoots, which is a count of the number of times the SNMP engine has re-booted/re-initialized since snmpEngineID was last configured; and,
- SNMPENGINEIDが最後に構成されて以来、SNMPエンジンが再起動/再発明化された回数の数のカウントであるSNMPengineBoots。そして、
- snmpEngineTime, which is the number of seconds since the snmpEngineBoots counter was last incremented.
- snmpengineTimeは、snmpenginebootsカウンターが最後に増加してから秒数です。
Each SNMP engine is always authoritative with respect to these objects in its own SNMP entity. It is the responsibility of a non-authoritative SNMP engine to synchronize with the authoritative SNMP engine, as appropriate.
各SNMPエンジンは、独自のSNMPエンティティ内のこれらのオブジェクトに関して常に権威あるものです。必要に応じて、権威あるSNMPエンジンと同期することは、非承認のSNMPエンジンの責任です。
An authoritative SNMP engine is required to maintain the values of its snmpEngineID and snmpEngineBoots in non-volatile storage.
非揮発性ストレージでSNMPengineIDとSNMPENGINEBOUTSの値を維持するには、権威あるSNMPエンジンが必要です。
The msgAuthoritativeEngineID value contained in an authenticated message is used to defeat attacks in which messages from one SNMP engine to another SNMP engine are replayed to a different SNMP engine. It represents the snmpEngineID at the authoritative SNMP engine involved in the exchange of the message.
認証されたメッセージに含まれるMSGAuthoritativeEngineID値は、あるSNMPエンジンから別のSNMPエンジンへのメッセージが別のSNMPエンジンにリプレイされる攻撃を打ち負かすために使用されます。これは、メッセージの交換に関与する権威あるSNMPエンジンのSNMPengineIDを表します。
When an authoritative SNMP engine is first installed, it sets its local value of snmpEngineID according to a enterprise-specific algorithm (see the definition of the Textual Convention for SnmpEngineID in the SNMP Architecture document [RFC2571]).
権威あるSNMPエンジンが最初にインストールされると、エンタープライズ固有のアルゴリズムに従ってSNMPengineIDのローカル値を設定します(SNMPアーキテクチャドキュメント[RFC2571]のSNMPengineIDのテキスト条約の定義を参照)。
The msgAuthoritativeEngineBoots and msgAuthoritativeEngineTime values contained in an authenticated message are used to defeat attacks in which messages are replayed when they are no longer valid. They represent the snmpEngineBoots and snmpEngineTime values at the authoritative SNMP engine involved in the exchange of the message.
認証されたメッセージに含まれるMSGAuthoritativeEngineBootとMSGAUTHORITATIANTITATIANTIME値は、有効でないときにメッセージが再生される攻撃を打ち負かすために使用されます。それらは、メッセージの交換に関与する権威あるSNMPエンジンでのsnmpenginebootとsnmpenginetime値を表します。
Through use of snmpEngineBoots and snmpEngineTime, there is no requirement for an SNMP engine to have a non-volatile clock which ticks (i.e., increases with the passage of time) even when the SNMP engine is powered off. Rather, each time an SNMP engine re-boots, it retrieves, increments, and then stores snmpEngineBoots in non-volatile storage, and resets snmpEngineTime to zero.
SNMPENGINEBOUTSとSNMPENGINETIMEを使用することにより、SNMPエンジンが電源が切れた場合でも、SNMPエンジンがカチカチ音を立てる(つまり、時間の経過とともに増加する)不揮発性クロックを持つ必要はありません。むしろ、SNMPエンジンが再起動するたびに、SNMPENGINEBOOTSを取得、増分、および不揮発性ストレージに保存し、SNMPENGINETIMEをゼロにリセットします。
When an SNMP engine is first installed, it sets its local values of snmpEngineBoots and snmpEngineTime to zero. If snmpEngineTime ever reaches its maximum value (2147483647), then snmpEngineBoots is incremented as if the SNMP engine has re-booted and snmpEngineTime is reset to zero and starts incrementing again.
SNMPエンジンが最初にインストールされると、snmpenginebootsとsnmpengineTimeのローカル値をゼロに設定します。SNMPENGINETIMEが最大値(2147483647)に達した場合、SNMPエンジンが再起動し、SNMPENGINETIMEがゼロにリセットされ、再び増加を開始するかのようにSNMPENGINEBOUTSが増加します。
Each time an authoritative SNMP engine re-boots, any SNMP engines holding that authoritative SNMP engine's values of snmpEngineBoots and snmpEngineTime need to re-synchronize prior to sending correctly authenticated messages to that authoritative SNMP engine (see Section 2.3 for (re-)synchronization procedures). Note, however, that the procedures do provide for a notification to be accepted as authentic by a receiving SNMP engine, when sent by an authoritative SNMP engine which has re-booted since the receiving SNMP engine last (re-)synchronized.
権威あるSNMPエンジンが再起動するたびに、SNMPエンジンのSNMPENGINEBOOTSの値とSNMPENGINETIMEの値を保持するSNMPエンジンは、その権威あるSNMPエンジンに正しく認証されたメッセージを送信する前に再同期する必要があります((再)同期処理のセクション2.3を参照)。ただし、手順は、受信SNMPエンジンが最後に同期してから再起動した権威あるSNMPエンジンによって送信された場合、受信SNMPエンジンによって本物として受け入れられる通知を提供することに注意してください。
If an authoritative SNMP engine is ever unable to determine its latest snmpEngineBoots value, then it must set its snmpEngineBoots value to 2147483647.
権威あるSNMPエンジンが最新のSNMPENGINEBOOTS値を決定できない場合、SNMPENGINEBOUTS値を2147483647に設定する必要があります。
Whenever the local value of snmpEngineBoots has the value 2147483647 it latches at that value and an authenticated message always causes an notInTimeWindow authentication failure.
Snmpenginebootsのローカル値が値2147483647を持っている場合はいつでも、その値でラッチし、認証されたメッセージは常にnotintimewindow認証障害を引き起こします。
In order to reset an SNMP engine whose snmpEngineBoots value has reached the value 2147483647, manual intervention is required. The engine must be physically visited and re-configured, either with a new snmpEngineID value, or with new secret values for the authentication and privacy protocols of all users known to that SNMP engine. Note that even if an SNMP engine re-boots once a second that it would still take approximately 68 years before the max value of 2147483647 would be reached.
SNMPENGINEBOOTS値が値2147483647に達したSNMPエンジンをリセットするには、手動介入が必要です。エンジンは、新しいSNMPENGINEID値のいずれかで、またはそのSNMPエンジンに知られているすべてのユーザーの認証およびプライバシープロトコルの新しい秘密値を使用して、物理的に訪問して再構成する必要があります。SNMPエンジンが1秒に1回再起動しても、最大値の2147483647に到達するまでに約68年かかることに注意してください。
The Time Window is a value that specifies the window of time in which a message generated on behalf of any user is valid. This memo specifies that the same value of the Time Window, 150 seconds, is used for all users.
タイムウィンドウは、ユーザーに代わって生成されたメッセージが有効である時間のウィンドウを指定する値です。このメモは、タイムウィンドウの同じ値(150秒)がすべてのユーザーに使用されることを指定しています。
Time synchronization, required by a non-authoritative SNMP engine in order to proceed with authentic communications, has occurred when the non-authoritative SNMP engine has obtained a local notion of the authoritative SNMP engine's values of snmpEngineBoots and snmpEngineTime from the authoritative SNMP engine. These values must be (and remain) within the authoritative SNMP engine's Time Window. So the local notion of the authoritative SNMP engine's values must be kept loosely synchronized with the values stored at the authoritative SNMP engine. In addition to keeping a local copy of snmpEngineBoots and snmpEngineTime from the authoritative SNMP engine, a non-authoritative SNMP engine must also keep one local variable, latestReceivedEngineTime. This value records the highest value of snmpEngineTime that was received by the non-authoritative SNMP engine from the authoritative SNMP engine and is used to eliminate the possibility of replaying messages that would prevent the non-authoritative SNMP engine's notion of the snmpEngineTime from advancing.
非承認のSNMPエンジンが本物の通信を進めるために必要とされる時間同期は、非著作権SNMPエンジンが、権威あるSNMPエンジンのSNMPENGINEBOOTSの値とSNMPENGINETIMEの権威あるSNMPエンジンの局所概念を取得したときに発生しました。これらの値は、権威あるSNMPエンジンのタイムウィンドウ内にある(および残る)必要があります。したがって、権威あるSNMPエンジンの値のローカル概念は、権威あるSNMPエンジンに保存されている値とゆるく同期しておく必要があります。SNMPENGINEBOOTSのローカルコピーとSNMPENGINETIMEの権威あるSNMPエンジンを保持することに加えて、非認証的なSNMPエンジンは、1つのローカル変数である最新の測定値を維持する必要があります。この値は、権威あるSNMPエンジンから非権威あるSNMPエンジンによって受信されたSnmpengineTimeの最高値を記録し、非承認型SNMPエンジンのSNMPengineTimeの概念が進歩からの概念を妨げるメッセージを再生する可能性を排除するために使用されます。
A non-authoritative SNMP engine must keep local notions of these values (snmpEngineBoots, snmpEngineTime and latestReceivedEngineTime) for each authoritative SNMP engine with which it wishes to communicate. Since each authoritative SNMP engine is uniquely and unambiguously identified by its value of snmpEngineID, the non-authoritative SNMP engine may use this value as a key in order to cache its local notions of these values.
非承認型SNMPエンジンは、通信したい各権威あるSNMPエンジンのこれらの値(SNMPENGINEBOOTS、SNMPENGINETIME、および最新の受信数)のローカル概念を保持する必要があります。各権威あるSNMPエンジンは、SNMPengineIDの値によって独自に独自に明確に識別されているため、非承認のSNMPエンジンは、これらの値のローカル概念をキャッシュするために、この値をキーとして使用する場合があります。
Time synchronization occurs as part of the procedures of receiving an SNMP message (Section 3.2, step 7b). As such, no explicit time synchronization procedure is required by a non-authoritative SNMP engine. Note, that whenever the local value of snmpEngineID is changed (e.g., through discovery) or when secure communications are first established with an authoritative SNMP engine, the local values of snmpEngineBoots and latestReceivedEngineTime should be set to zero. This will cause the time synchronization to occur when the next authentic message is received.
時間同期は、SNMPメッセージを受信する手順の一部として発生します(セクション3.2、ステップ7b)。そのため、非権威あるSNMPエンジンでは、明示的な時間同期手順は必要ありません。SNMPengineIDのローカル価値が変更された場合(例:発見を通じて)、または安全な通信が権威あるSNMPエンジンで最初に確立される場合、SNMPengineBoutsのローカル値と最新のReceivedEngineTimeをゼロに設定する必要があります。これにより、次の本物のメッセージが受信されたときに時間同期が発生します。
The syntax of an SNMP message using this Security Model adheres to the message format defined in the version-specific Message Processing Model document (for example [RFC2572]).
このセキュリティモデルを使用したSNMPメッセージの構文は、バージョン固有のメッセージ処理モデルドキュメント([RFC2572]など)で定義されているメッセージ形式に準拠しています。
The field msgSecurityParameters in SNMPv3 messages has a data type of OCTET STRING. Its value is the BER serialization of the following ASN.1 sequence:
SNMPV3メッセージのフィールドMSGSECURITYPARAMETERSには、Octet文字列のデータ型があります。その値は、次のASN.1シーケンスのBERシリアル化です。
USMSecurityParametersSyntax DEFINITIONS IMPLICIT TAGS ::= BEGIN
UsmSecurityParameters ::= SEQUENCE { -- global User-based security parameters msgAuthoritativeEngineID OCTET STRING, msgAuthoritativeEngineBoots INTEGER (0..2147483647), msgAuthoritativeEngineTime INTEGER (0..2147483647), msgUserName OCTET STRING (SIZE(0..32)), -- authentication protocol specific parameters msgAuthenticationParameters OCTET STRING, -- privacy protocol specific parameters msgPrivacyParameters OCTET STRING } END
The fields of this sequence are:
このシーケンスのフィールドは次のとおりです。
- The msgAuthoritativeEngineID specifies the snmpEngineID of the authoritative SNMP engine involved in the exchange of the message.
- MSGAuthoritativeEngineIDは、メッセージの交換に関与する権威あるSNMPエンジンのsnmpengineidを指定します。
- The msgAuthoritativeEngineBoots specifies the snmpEngineBoots value at the authoritative SNMP engine involved in the exchange of the message.
- MSGAuthoritativeEngineBootは、メッセージの交換に関与する権威あるSNMPエンジンでSNMPENGINEBOOTS値を指定します。
- The msgAuthoritativeEngineTime specifies the snmpEngineTime value at the authoritative SNMP engine involved in the exchange of the message.
- MSGAuthoritativeEngineTimeは、メッセージの交換に関与する権威あるSNMPエンジンでSNMPENGINETIME値を指定します。
- The msgUserName specifies the user (principal) on whose behalf the message is being exchanged. Note that a zero-length userName will not match any user, but it can be used for snmpEngineID discovery.
- MSGusernameは、メッセージが交換されているユーザー(プリンシパル)を指定します。ゼロの長さのユーザー名はユーザーと一致しないことに注意してくださいが、SNMPengineIDの発見には使用できます。
- The msgAuthenticationParameters are defined by the authentication protocol in use for the message, as defined by the usmUserAuthProtocol column in the user's entry in the usmUserTable.
- MSGAuthenticationParametersは、UsmusertableのユーザーのエントリにあるUsmuserauthProtocol列で定義されているように、メッセージに使用される認証プロトコルによって定義されます。
- The msgPrivacyParameters are defined by the privacy protocol in use for the message, as defined by the usmUserPrivProtocol column in the user's entry in the usmUserTable).
- MSGPrivacyparametersは、UsmusertableのユーザーのエントリにあるUSMUSERPRIVPROTOCOL列で定義されているように、メッセージに使用されるプライバシープロトコルによって定義されます)。
See appendix A.4 for an example of the BER encoding of field msgSecurityParameters.
Appendix A.4を参照してください。フィールドMSGSeCurityParametersのBERエンコードの例。
This section describes the services provided by the User-based Security Model with their inputs and outputs.
このセクションでは、ユーザーベースのセキュリティモデルが入力と出力を備えたサービスについて説明します。
The services are described as primitives of an abstract service interface and the inputs and outputs are described as abstract data elements as they are passed in these abstract service primitives.
サービスは、抽象サービスインターフェイスのプリミティブとして説明されており、入力と出力は、これらの抽象サービスプリミティブで渡されるため、抽象データ要素として説明されます。
When the Message Processing (MP) Subsystem invokes the User-based Security module to secure an outgoing SNMP message, it must use the appropriate service as provided by the Security module. These two services are provided:
メッセージ処理(MP)サブシステムがユーザーベースのセキュリティモジュールを呼び出して発信SNMPメッセージを保護する場合、セキュリティモジュールが提供する適切なサービスを使用する必要があります。これらの2つのサービスが提供されます:
1) A service to generate a Request message. The abstract service primitive is:
1) リクエストメッセージを生成するためのサービス。抽象サービスプリミティブは次のとおりです。
statusInformation = -- success or errorIndication generateRequestMsg( IN messageProcessingModel -- typically, SNMP version IN globalData -- message header, admin data IN maxMessageSize -- of the sending SNMP entity IN securityModel -- for the outgoing message IN securityEngineID -- authoritative SNMP entity IN securityName -- on behalf of this principal IN securityLevel -- Level of Security requested IN scopedPDU -- message (plaintext) payload OUT securityParameters -- filled in by Security Module OUT wholeMsg -- complete generated message OUT wholeMsgLength -- length of generated message )
2) A service to generate a Response message. The abstract service primitive is: statusInformation = -- success or errorIndication generateResponseMsg( IN messageProcessingModel -- typically, SNMP version IN globalData -- message header, admin data IN maxMessageSize -- of the sending SNMP entity IN securityModel -- for the outgoing message IN securityEngineID -- authoritative SNMP entity IN securityName -- on behalf of this principal IN securityLevel -- Level of Security requested IN scopedPDU -- message (plaintext) payload IN securityStateReference -- reference to security state -- information from original -- request OUT securityParameters -- filled in by Security Module OUT wholeMsg -- complete generated message OUT wholeMsgLength -- length of generated message )
The abstract data elements passed as parameters in the abstract service primitives are as follows:
抽象サービスのプリミティブのパラメーターとして渡される抽象データ要素は次のとおりです。
statusInformation An indication of whether the encoding and securing of the message was successful. If not it is an indication of the problem. messageProcessingModel The SNMP version number for the message to be generated. This data is not used by the User-based Security module. globalData The message header (i.e., its administrative information). This data is not used by the User-based Security module. maxMessageSize The maximum message size as included in the message. This data is not used by the User-based Security module. securityParameters These are the security parameters. They will be filled in by the User-based Security module.
ステータス情報メッセージのエンコーディングとセキュリティが成功したかどうかを示しています。そうでない場合は、問題の兆候です。MessageProcessingModelは、生成されるメッセージのSNMPバージョン番号。このデータは、ユーザーベースのセキュリティモジュールでは使用されません。GlobalDataメッセージヘッダー(つまり、その管理情報)。このデータは、ユーザーベースのセキュリティモジュールでは使用されません。MaxMessagesは、メッセージに含まれる最大メッセージサイズを変更します。このデータは、ユーザーベースのセキュリティモジュールでは使用されません。SecurityParametersこれらはセキュリティパラメーターです。ユーザーベースのセキュリティモジュールによって記入されます。
securityModel The securityModel in use. Should be User-based Security Model. This data is not used by the User-based Security module. securityName Together with the snmpEngineID it identifies a row in the usmUserTable that is to be used for securing the message. The securityName has a format that is independent of the Security Model. In case of a response this parameter is ignored and the value from the cache is used.
SecurityModel使用中のSecurityModel。ユーザーベースのセキュリティモデルである必要があります。このデータは、ユーザーベースのセキュリティモジュールでは使用されません。securityNameとsnmpengineidは、メッセージを保護するために使用されるUsmusertableの行を識別します。SecurityNameには、セキュリティモデルから独立した形式があります。応答の場合、このパラメーターは無視され、キャッシュからの値が使用されます。
securityLevel The Level of Security from which the User-based Security module determines if the message needs to be protected from disclosure and if the message needs to be authenticated. securityEngineID The snmpEngineID of the authoritative SNMP engine to which a Request message is to be sent. In case of a response it is implied to be the processing SNMP engine's snmpEngineID and so if it is specified, then it is ignored. scopedPDU The message payload. The data is opaque as far as the User-based Security Model is concerned. securityStateReference A handle/reference to cachedSecurityData to be used when securing an outgoing Response message. This is the exact same handle/reference as it was generated by the User-based Security module when processing the incoming Request message to which this is the Response message. wholeMsg The fully encoded and secured message ready for sending on the wire. wholeMsgLength The length of the encoded and secured message (wholeMsg).
SecurityLevelユーザーベースのセキュリティモジュールが、メッセージを開示から保護する必要があるかどうか、メッセージを認証する必要があるかどうかを決定するセキュリティのレベル。SecurityEngineID要求メッセージを送信する権威あるSNMPエンジンのSNMPengineID。応答の場合、SNMPエンジンのSNMPENGINEIDの処理であることが暗示されているため、指定されている場合は無視されます。scopedpduメッセージペイロード。ユーザーベースのセキュリティモデルに関する限り、データは不透明です。SecurityStatereference発信応答メッセージを保護するときに使用するCachedSecurityDataへのハンドル/参照。これは、これが応答メッセージである着信要求メッセージを処理する際に、ユーザーベースのセキュリティモジュールによって生成されたのとまったく同じハンドル/リファレンスです。完全にエンコードされ、セキュリティで固定されたメッセージを、ワイヤーを送信する準備ができています。wholemsglengthエンコードされたセキュリティメッセージ(wholemsg)の長さ。
Upon completion of the process, the User-based Security module returns statusInformation. If the process was successful, the completed message with privacy and authentication applied if such was requested by the specified securityLevel is returned. If the process was not successful, then an errorIndication is returned.
プロセスが完了すると、ユーザーベースのセキュリティモジュールはStatusInformationを返します。プロセスが成功した場合、指定されたセキュリティレベルによって要求された場合、プライバシーと認証の完了したメッセージが適用されます。プロセスが成功しなかった場合、エラーインジケーションが返されます。
When the Message Processing (MP) Subsystem invokes the User-based Security module to verify proper security of an incoming message, it must use the service provided for an incoming message. The abstract service primitive is:
メッセージ処理(MP)サブシステムがユーザーベースのセキュリティモジュールを呼び出して、着信メッセージの適切なセキュリティを検証する場合、着信メッセージに提供されるサービスを使用する必要があります。抽象サービスプリミティブは次のとおりです。
statusInformation = -- errorIndication or success -- error counter OID/value if error processIncomingMsg( IN messageProcessingModel -- typically, SNMP version IN maxMessageSize -- of the sending SNMP entity IN securityParameters -- for the received message IN securityModel -- for the received message IN securityLevel -- Level of Security IN wholeMsg -- as received on the wire IN wholeMsgLength -- length as received on the wire OUT securityEngineID -- authoritative SNMP entity OUT securityName -- identification of the principal OUT scopedPDU, -- message (plaintext) payload OUT maxSizeResponseScopedPDU -- maximum size of the Response PDU OUT securityStateReference -- reference to security state ) -- information, needed for response
The abstract data elements passed as parameters in the abstract service primitives are as follows:
抽象サービスのプリミティブのパラメーターとして渡される抽象データ要素は次のとおりです。
statusInformation An indication of whether the process was successful or not. If not, then the statusInformation includes the OID and the value of the error counter that was incremented. messageProcessingModel The SNMP version number as received in the message. This data is not used by the User-based Security module. maxMessageSize The maximum message size as included in the message. The User-based Security module uses this value to calculate the maxSizeResponseScopedPDU. securityParameters These are the security parameters as received in the message. securityModel The securityModel in use. Should be the User-based Security Model. This data is not used by the User-based Security module. securityLevel The Level of Security from which the User-based Security module determines if the message needs to be protected from disclosure and if the message needs to be authenticated. wholeMsg The whole message as it was received. wholeMsgLength The length of the message as it was received (wholeMsg). securityEngineID The snmpEngineID that was extracted from the field msgAuthoritativeEngineID and that was used to lookup the secrets in the usmUserTable. securityName The security name representing the user on whose behalf the message was received. The securityName has a format that is independent of the Security Model. scopedPDU The message payload. The data is opaque as far as the User-based Security Model is concerned.
ステータス情報プロセスが成功したかどうかを示しています。そうでない場合は、ステータス情報にはOIDと増分されたエラーカウンターの値が含まれます。MessageProcessingModelメッセージで受信したSNMPバージョン番号。このデータは、ユーザーベースのセキュリティモジュールでは使用されません。MaxMessagesは、メッセージに含まれる最大メッセージサイズを変更します。ユーザーベースのセキュリティモジュールは、この値を使用して、MaxSizerEsponsEsCopedPDUを計算します。SecurityParametersこれらは、メッセージで受信したセキュリティパラメーターです。SecurityModel使用中のSecurityModel。ユーザーベースのセキュリティモデルである必要があります。このデータは、ユーザーベースのセキュリティモジュールでは使用されません。SecurityLevelユーザーベースのセキュリティモジュールが、メッセージを開示から保護する必要があるかどうか、メッセージを認証する必要があるかどうかを決定するセキュリティのレベル。メッセージ全体が受信されたときにwholemsg。メッセージの長さは、受信したメッセージの長さ(wholemsg)です。SecurityEngineIDフィールドMSGAuthoritativeEngineIDから抽出されたSnmPengineIDで、UsMusertableの秘密を検索するために使用されました。SecurityNameメッセージを受信したユーザーを表すセキュリティ名。SecurityNameには、セキュリティモデルから独立した形式があります。scopedpduメッセージペイロード。ユーザーベースのセキュリティモデルに関する限り、データは不透明です。
maxSizeResponseScopedPDU The maximum size of a scopedPDU to be included in a possible Response message. The User-based Security module calculates this size based on the msgMaxSize (as received in the message) and the space required for the message header (including the securityParameters) for such a Response message. securityStateReference A handle/reference to cachedSecurityData to be used when securing an outgoing Response message. When the Message Processing Subsystem calls the User-based Security module to generate a response to this incoming message it must pass this handle/reference.
MaxSizerSeSponsESCOPEDPDU ScopedPDUの最大サイズは、可能な応答メッセージに含まれます。ユーザーベースのセキュリティモジュールは、MSGMAXSIZE(メッセージで受信された)と、そのような応答メッセージのメッセージヘッダー(SecurityParametersを含む)に必要なスペースに基づいてこのサイズを計算します。SecurityStatereference発信応答メッセージを保護するときに使用するCachedSecurityDataへのハンドル/参照。メッセージ処理サブシステムがユーザーベースのセキュリティモジュールを呼び出してこの着信メッセージへの応答を生成すると、このハンドル/参照を渡す必要があります。
Upon completion of the process, the User-based Security module returns statusInformation and, if the process was successful, the additional data elements for further processing of the message. If the process was not successful, then an errorIndication, possibly with a OID and value pair of an error counter that was incremented.
プロセスが完了すると、ユーザーベースのセキュリティモジュールはStatusInformationを返し、プロセスが成功した場合、メッセージをさらに処理するための追加のデータ要素を返します。プロセスが成功しなかった場合、エラーインジケーションは、おそらく増分されたエラーカウンターのOIDと値ペアを使用します。
2.6. Key Localization Algorithm.
2.6. 重要なローカリゼーションアルゴリズム。
A localized key is a secret key shared between a user U and one authoritative SNMP engine E. Even though a user may have only one password and therefore one key for the whole network, the actual secrets shared between the user and each authoritative SNMP engine will be different. This is achieved by key localization [Localized-key].
ローカライズされたキーは、ユーザーUと1つの権威あるSNMPエンジンEの間で共有されるシークレットキーです。ユーザーにはパスワードが1つしかない可能性があり、したがって、ネットワーク全体に1つのキー、ユーザーと各権威あるSNMPエンジンの間で共有される実際の秘密があります。異なる。これは、重要なローカリゼーション[ローカライズキー]によって達成されます。
First, if a user uses a password, then the user's password is converted into a key Ku using one of the two algorithms described in Appendices A.2.1 and A.2.2.
まず、ユーザーがパスワードを使用する場合、ユーザーのパスワードは、付録A.2.1およびA.2.2で説明されている2つのアルゴリズムのいずれかを使用してキーKUに変換されます。
To convert key Ku into a localized key Kul of user U at the authoritative SNMP engine E, one appends the snmpEngineID of the authoritative SNMP engine to the key Ku and then appends the key Ku to the result, thus enveloping the snmpEngineID within the two copies of user's key Ku. Then one runs a secure hash function (which one depends on the authentication protocol defined for this user U at authoritative SNMP engine E; this document defines two authentication protocols with their associated algorithms based on MD5 and SHA). The output of the hash-function is the localized key Kul for user U at the authoritative SNMP engine E.
キーKUを権威あるSNMPエンジンEでユーザーuのローカライズされたキーKULに変換するには、権威あるSNMPエンジンのSNMPENGINEIDをキーKUに追加し、キーKUを結果に追加します。ユーザーのキーKUの。次に、安全なハッシュ関数を実行します(これは、権威あるSNMPエンジンEでこのユーザーUに対して定義された認証プロトコルに依存します。このドキュメントは、MD5とSHAに基づく関連するアルゴリズムを持つ2つの認証プロトコルを定義します)。ハッシュ機能の出力は、権威あるSNMPエンジンEのユーザーuのローカライズされたキーKULです。
This section describes the security related procedures followed by an SNMP engine when processing SNMP messages according to the User-based Security Model.
このセクションでは、ユーザーベースのセキュリティモデルに従ってSNMPメッセージを処理する際のSNMPエンジンが続くセキュリティ関連の手順について説明します。
This section describes the procedure followed by an SNMP engine whenever it generates a message containing a management operation (like a request, a response, a notification, or a report) on behalf of a user, with a particular securityLevel.
このセクションでは、特定のSecurityLevelを使用して、ユーザーに代わって管理操作(リクエスト、応答、通知、レポートなど)を含むメッセージを生成するたびに、SNMPエンジンが続く手順について説明します。
1) a) If any securityStateReference is passed (Response or Report message), then information concerning the user is extracted from the cachedSecurityData. The cachedSecurityData can now be discarded. The securityEngineID is set to the local snmpEngineID. The securityLevel is set to the value specified by the calling module.
1) a)SecurityStateReferenceが渡される場合(応答またはレポートメッセージ)、ユーザーに関する情報はCachedSecurityDataから抽出されます。CachedSecurityDataを破棄することができます。SecurityEngineIDは、ローカルSNMPENGINEIDに設定されています。SecurityLevelは、呼び出しモジュールによって指定された値に設定されています。
Otherwise,
さもないと、
b) based on the securityName, information concerning the user at the destination snmpEngineID, specified by the securityEngineID, is extracted from the Local Configuration Datastore (LCD, usmUserTable). If information about the user is absent from the LCD, then an error indication (unknownSecurityName) is returned to the calling module.
b) SecurityNameに基づいて、SecurityEngineIDによって指定された宛先SNMPengineIDのユーザーに関する情報は、ローカル構成DataStore(LCD、USMUSERTABLE)から抽出されます。ユーザーに関する情報がLCDに存在しない場合、エラー表示(UnknownSecurityName)が呼び出しモジュールに返されます。
2) If the securityLevel specifies that the message is to be protected from disclosure, but the user does not support both an authentication and a privacy protocol then the message cannot be sent. An error indication (unsupportedSecurityLevel) is returned to the calling module.
2) SecurityLevelがメッセージが開示から保護されることを指定しますが、ユーザーが認証とプライバシープロトコルの両方をサポートしていない場合、メッセージは送信できません。エラー表示(サポートされていないセキュリティレベル)が呼び出しモジュールに返されます。
3) If the securityLevel specifies that the message is to be authenticated, but the user does not support an authentication protocol, then the message cannot be sent. An error indication (unsupportedSecurityLevel) is returned to the calling module.
3) SecurtyLevelがメッセージを認証することを指定しているが、ユーザーが認証プロトコルをサポートしていない場合、メッセージは送信できません。エラー表示(サポートされていないセキュリティレベル)が呼び出しモジュールに返されます。
4) a) If the securityLevel specifies that the message is to be protected from disclosure, then the octet sequence representing the serialized scopedPDU is encrypted according to the user's privacy protocol. To do so a call is made to the privacy module that implements the user's privacy protocol according to the abstract primitive:
4) a)セキュリティレベルがメッセージが開示から保護されることを指定する場合、シリアル化されたscopedPDUを表すオクテットシーケンスは、ユーザーのプライバシープロトコルに従って暗号化されます。そのためには、抽象的な原始に従ってユーザーのプライバシープロトコルを実装するプライバシーモジュールに通話が行われます。
statusInformation = -- success or failure encryptData( IN encryptKey -- user's localized privKey IN dataToEncrypt -- serialized scopedPDU OUT encryptedData -- serialized encryptedPDU OUT privParameters -- serialized privacy parameters )
statusInformation indicates if the encryption process was successful or not. encryptKey the user's localized private privKey is the secret key that can be used by the encryption algorithm. dataToEncrypt the serialized scopedPDU is the data to be encrypted. encryptedData the encryptedPDU represents the encrypted scopedPDU, encoded as an OCTET STRING. privParameters the privacy parameters, encoded as an OCTET STRING.
StatusInformationは、暗号化プロセスが成功したかどうかを示します。EncryptKeyユーザーのローカライズされたプライベートプライベートは、暗号化アルゴリズムで使用できる秘密の鍵です。datatoencryptシリアル化されたscopedpduは、暗号化されるデータです。暗号化されたdata暗号化されたpduは、オクテット文字列としてエンコードされた暗号化されたscopedpduを表します。PrivParametersオクテット文字列としてエンコードされたプライバシーパラメーター。
If the privacy module returns failure, then the message cannot be sent and an error indication (encryptionError) is returned to the calling module.
プライバシーモジュールが障害を返す場合、メッセージを送信できず、エラー表示(encryptionError)が呼び出しモジュールに返されます。
If the privacy module returns success, then the returned privParameters are put into the msgPrivacyParameters field of the securityParameters and the encryptedPDU serves as the payload of the message being prepared.
プライバシーモジュールが成功を返す場合、返されたprivparametersは、SecurityParametersのMSGPRIVACYPARAMETERSフィールドに配置され、暗号化されたメッセージが準備されているメッセージのペイロードとして機能します。
Otherwise,
さもないと、
b) If the securityLevel specifies that the message is not to be be protected from disclosure, then a zero-length OCTET STRING is encoded into the msgPrivacyParameters field of the securityParameters and the plaintext scopedPDU serves as the payload of the message being prepared.
b) SecurityLevelがメッセージを開示から保護しないことを指定した場合、ゼロ長さのオクテット文字列がセキュリティパラメーターのMSGPRIVACYPARAMETERSフィールドにエンコードされ、プレーンテキストScopedPDUが準備されているメッセージのペイロードとして機能します。
5) The securityEngineID is encoded as an OCTET STRING into the msgAuthoritativeEngineID field of the securityParameters. Note that an empty (zero length) securityEngineID is OK for a Request message, because that will cause the remote (authoritative) SNMP engine to return a Report PDU with the proper securityEngineID included in the msgAuthoritativeEngineID in the securityParameters of that returned Report PDU.
5) SecurityEngineIDは、SecurityParametersのMSGAuthoritativeEngineIDフィールドにオクテット文字列としてエンコードされています。空の(ゼロの長さ)SecurityEngineIDはリクエストメッセージに対してOKであることに注意してください。これにより、リモート(権威ある)SNMPエンジンは、返されたレポートPDUのセキュリティパラメーターにあるMSGAuthoritativeEngineIDに含まれる適切なSecurityEngineIDを使用してレポートPDUを返します。
6) a) If the securityLevel specifies that the message is to be authenticated, then the current values of snmpEngineBoots and snmpEngineTime corresponding to the securityEngineID from the LCD are used.
6) a)SecurityLevelがメッセージを認証することを指定する場合、LCDのSecultingEngineIDに対応するSNMPENGINEBOOTSとSNMPENGINETIMEの現在の値が使用されます。
Otherwise,
さもないと、
b) If this is a Response or Report message, then the current value of snmpEngineBoots and snmpEngineTime corresponding to the local snmpEngineID from the LCD are used.
b) これが応答またはレポートメッセージである場合、LCDのローカルSNMPENGINEIDに対応するSNMPENGINEBOOTSとSNMPENGINETIMEの現在の値が使用されます。
Otherwise,
さもないと、
c) If this is a Request message, then a zero value is used for both snmpEngineBoots and snmpEngineTime. This zero value gets used if snmpEngineID is empty.
c) これがリクエストメッセージの場合、snmpenginebootsとsnmpengineTimeの両方にゼロ値が使用されます。snmpengineidが空である場合、このゼロ値が使用されます。
The values are encoded as INTEGER respectively into the msgAuthoritativeEngineBoots and msgAuthoritativeEngineTime fields of the securityParameters.
値は、それぞれ整数として、SecurityParametersのMSGAuthoritativeEngineBootおよびMSGAuthoritativeEngineTimeフィールドにエンコードされます。
7) The userName is encoded as an OCTET STRING into the msgUserName field of the securityParameters.
7) ユーザー名は、securityparametersのmsgusernameフィールドにオクテット文字列としてエンコードされます。
8) a) If the securityLevel specifies that the message is to be authenticated, the message is authenticated according to the user's authentication protocol. To do so a call is made to the authentication module that implements the user's authentication protocol according to the abstract service primitive:
8) a)SecurityLevelがメッセージを認証することを指定した場合、メッセージはユーザーの認証プロトコルに従って認証されます。そのためには、抽象サービスPrimitiveに従ってユーザーの認証プロトコルを実装する認証モジュールに通話が行われます。
statusInformation = authenticateOutgoingMsg( IN authKey -- the user's localized authKey IN wholeMsg -- unauthenticated message OUT authenticatedWholeMsg -- authenticated complete message )
StatusInformation = AuthenticateOutvermsg(authkey -in -userのローカライズされたauthkey in wholemsg -unauthenticatedメッセージ認証wholemsg-認証された完全なメッセージ)
statusInformation indicates if authentication was successful or not. authKey the user's localized private authKey is the secret key that can be used by the authentication algorithm. wholeMsg the complete serialized message to be authenticated. authenticatedWholeMsg the same as the input given to the authenticateOutgoingMsg service, but with msgAuthenticationParameters properly filled in.
StatusInformationは、認証が成功したかどうかを示します。AuthKeyユーザーのローカライズされたプライベートAuthKeyは、認証アルゴリズムで使用できる秘密キーです。完全なシリアル化されたメッセージを認証する。AuthenticatedWholemsg AuthentipateOutoverMsGサービスに与えられた入力と同じですが、MSGAuthenticationParametersを適切に記入します。
If the authentication module returns failure, then the message cannot be sent and an error indication (authenticationFailure) is returned to the calling module.
認証モジュールが障害を返す場合、メッセージを送信することはできず、エラー表示(AuthenticationFailure)が呼び出しモジュールに返されます。
If the authentication module returns success, then the msgAuthenticationParameters field is put into the securityParameters and the authenticatedWholeMsg represents the serialization of the authenticated message being prepared.
認証モジュールが成功を返す場合、MSGAuthenticationParametersフィールドはSecurityParametersに配置され、認証されたWholemsgは準備されている認証メッセージのシリアル化を表します。
Otherwise,
さもないと、
b) If the securityLevel specifies that the message is not to be authenticated then a zero-length OCTET STRING is encoded into the msgAuthenticationParameters field of the securityParameters. The wholeMsg is now serialized and then represents the unauthenticated message being prepared.
b) SecurityLevelがメッセージを認証しないことを指定する場合、ゼロ長のOctet文字列がSecurityParametersのMSGAuthenticationParametersフィールドにエンコードされます。現在、wholemsgはシリアル化されており、準備されている認定メッセージを表します。
9) The completed message with its length is returned to the calling module with the statusInformation set to success.
9) その長さの完了したメッセージは、StatusInformationが成功に設定された状態で呼び出しモジュールに返されます。
This section describes the procedure followed by an SNMP engine whenever it receives a message containing a management operation on behalf of a user, with a particular securityLevel.
このセクションでは、特定のSecurityLevelを使用して、ユーザーに代わって管理操作を含むメッセージを受信するたびにSNMPエンジンが続く手順について説明します。
To simplify the elements of procedure, the release of state information is not always explicitly specified. As a general rule, if state information is available when a message gets discarded, the state information should also be released. Also, an error indication can return an OID and value for an incremented counter and optionally a value for securityLevel, and values for contextEngineID or contextName for the counter. In addition, the securityStateReference data is returned if any such information is available at the point where the error is detected.
手順の要素を簡素化するために、状態情報のリリースが必ずしも明示的に指定されているとは限りません。一般的なルールとして、メッセージが破棄されたときに状態情報が利用可能な場合、州情報もリリースされるべきです。また、エラーの表示により、OIDと値を増やしたカウンターの値、およびオプションでSecurityLevelの値、およびContextEngineIDまたはContextNameの値の値をオプションで返すことができます。さらに、エラーが検出された時点でそのような情報が利用可能な場合、SecurityStatereferenceデータが返されます。
1) If the received securityParameters is not the serialization (according to the conventions of [RFC1906]) of an OCTET STRING formatted according to the UsmSecurityParameters defined in section 2.4, then the snmpInASNParseErrs counter [RFC1907] is incremented, and an error indication (parseError) is returned to the calling module. Note that we return without the OID and value of the incremented counter, because in this case there is not enough information to generate a Report PDU.
1) 受信したSecurityParametersがセクション2.4で定義されたUSMSセキュリティパラメーターに従ってフォーマットされたOctet Stringのシリアル化([RFC1906]の条約による)ではない場合、Snmpinasnparseerrsカウンター[RFC1907]は増分され、誤差は(Parseeror)が増加します。呼び出しモジュールに戻りました。この場合、Report PDUを生成するのに十分な情報がないため、OIDとIncremented Counterの値なしで戻ることに注意してください。
2) The values of the security parameter fields are extracted from the securityParameters. The securityEngineID to be returned to the caller is the value of the msgAuthoritativeEngineID field. The cachedSecurityData is prepared and a securityStateReference is prepared to reference this data. Values to be cached are:
2) セキュリティパラメーターフィールドの値は、SecurityParametersから抽出されます。発信者に返されるSecurityEngineIDは、MSGAuthoritativeEngineIDフィールドの価値です。CachedSecurityDataが準備され、このデータを参照するためにSecurityStateReferenceが準備されています。キャッシュされる値は次のとおりです。
msgUserName
msgusername
3) If the value of the msgAuthoritativeEngineID field in the securityParameters is unknown then: a) a non-authoritative SNMP engine that performs discovery may optionally create a new entry in its Local Configuration Datastore (LCD) and continue processing;
3) SecurityParametersのMSGAuthoritativeEngineIDフィールドの値が不明な場合:a)発見を実行する非承認のSNMPエンジンは、オプションでローカル構成データストア(LCD)に新しいエントリを作成し、処理を継続する場合があります。
or
または又はそれとも若しくは乃至或るいは
b) the usmStatsUnknownEngineIDs counter is incremented, and an error indication (unknownEngineID) together with the OID and value of the incremented counter is returned to the calling module.
b) USMSTATSUNUNCNOWNENGINEIDSカウンターが増加し、OIDと増分カウンターの値とともにエラー表示(UnknownEngineID)が呼び出しモジュールに返されます。
Note in the event that a zero-length, or other illegally sized msgAuthoritativeEngineID is received, b) should be chosen to facilitate engineID discovery. Otherwise the choice between a) and b) is an implementation issue.
ゼロ長さ、またはその他の違法サイズのMSGAuthoritativeEngineIDを受信した場合は、b)EngineIDの発見を促進するために選択する必要があることに注意してください。それ以外の場合、a)とb)の選択は実装の問題です。
4) Information about the value of the msgUserName and msgAuthoritativeEngineID fields is extracted from the Local Configuration Datastore (LCD, usmUserTable). If no information is available for the user, then the usmStatsUnknownUserNames counter is incremented and an error indication (unknownSecurityName) together with the OID and value of the incremented counter is returned to the calling module.
4) MSGusernameおよびMSGAuthoritativeEngineIDフィールドの値に関する情報は、ローカル構成データストア(LCD、USMUSERTABLE)から抽出されます。ユーザーが利用できる情報がない場合、USMSTATSUNUNCNOWNUSNAMESカウンターがインクリメントされ、インクリメントカウンターのOIDと値が呼び出しモジュールに返され、エラー表示(不明なセキュリティ名)が返されます。
5) If the information about the user indicates that it does not support the securityLevel requested by the caller, then the usmStatsUnsupportedSecLevels counter is incremented and an error indication (unsupportedSecurityLevel) together with the OID and value of the incremented counter is returned to the calling module.
5) ユーザーに関する情報が、発信者が要求したセキュリティレベルをサポートしていないことを示している場合、USMSTATSUNSUPTEDSECLEVELSカウンターが増加し、エラー表示(サポートされていないセキュリティレベル)が、課題カウンターのOIDと値が呼び出しモジュールに返されます。
6) If the securityLevel specifies that the message is to be authenticated, then the message is authenticated according to the user's authentication protocol. To do so a call is made to the authentication module that implements the user's authentication protocol according to the abstract service primitive:
6) SecurityLevelがメッセージを認証することを指定した場合、メッセージはユーザーの認証プロトコルに従って認証されます。そのためには、抽象サービスPrimitiveに従ってユーザーの認証プロトコルを実装する認証モジュールに通話が行われます。
statusInformation = -- success or failure authenticateIncomingMsg( IN authKey -- the user's localized authKey IN authParameters -- as received on the wire IN wholeMsg -- as received on the wire OUT authenticatedWholeMsg -- checked for authentication )
statusInformation indicates if authentication was successful or not. authKey the user's localized private authKey is the secret key that can be used by the authentication algorithm. wholeMsg the complete serialized message to be authenticated. authenticatedWholeMsg the same as the input given to the authenticateIncomingMsg service, but after authentication has been checked.
StatusInformationは、認証が成功したかどうかを示します。AuthKeyユーザーのローカライズされたプライベートAuthKeyは、認証アルゴリズムで使用できる秘密キーです。完全なシリアル化されたメッセージを認証する。AuthenticatedWholemsg AuthingIncomingMingSGサービスに与えられた入力と同じですが、認証がチェックされた後。
If the authentication module returns failure, then the message cannot be trusted, so the usmStatsWrongDigests counter is incremented and an error indication (authenticationFailure) together with the OID and value of the incremented counter is returned to the calling module.
認証モジュールが障害を返す場合、メッセージを信頼できないため、USMSTATSWRONGDIGESTSカウンターが増加し、oidとincrementedカウンターの値が呼び出しモジュールに返されます。
If the authentication module returns success, then the message is authentic and can be trusted so processing continues.
認証モジュールが成功を返す場合、メッセージは本物であり、処理が続くように信頼できるようになります。
7) If the securityLevel indicates an authenticated message, then the local values of snmpEngineBoots, snmpEngineTime and latestReceivedEngineTime corresponding to the value of the msgAuthoritativeEngineID field are extracted from the Local Configuration Datastore.
7) SecurityLevelが認証されたメッセージを示している場合、MSGAuthoritativeEngineIDフィールドの値に対応するSNMPENGINEBOOTS、SNMPENGINETIME、および最新のレイビーテンジングタイムのローカル値がローカル構成データストアから抽出されます。
a) If the extracted value of msgAuthoritativeEngineID is the same as the value of snmpEngineID of the processing SNMP engine (meaning this is the authoritative SNMP engine), then if any of the following conditions is true, then the message is considered to be outside of the Time Window:
a) MSGAuthoritativeEngineIDの抽出された値が、処理SNMPエンジンのSNMPENGINEIDの値と同じである場合(これは権威あるSNMPエンジンです)、次の条件のいずれかが真である場合、メッセージは時間外にあると見なされます。窓:
- the local value of snmpEngineBoots is 2147483647;
- snmpenginebootsのローカル価値は2147483647です。
- the value of the msgAuthoritativeEngineBoots field differs from the local value of snmpEngineBoots; or,
- MSGAuthoritativeEngineBootsフィールドの値は、snmpenginebootsのローカル値とは異なります。または、
- the value of the msgAuthoritativeEngineTime field differs from the local notion of snmpEngineTime by more than +/- 150 seconds.
- MSGAuthoritativeEngineTimeフィールドの値は、SnmpengineTimeのローカル概念とは /-150秒以上異なります。
If the message is considered to be outside of the Time Window then the usmStatsNotInTimeWindows counter is incremented and an error indication (notInTimeWindow) together with the OID, the value of the incremented counter, and an indication that the error must be reported with a securityLevel of authNoPriv, is returned to the calling module
メッセージがタイムウィンドウの外側にあると見なされる場合、USMSTATSNOTINTIMEWINDOWSカウンターは増加し、OIDとともにエラー表示(notIntimewindow)、インクリメントカウンターの値、およびエラーがセキュリティレベルで報告されなければならないことを示すことを示しています。authnoprivは、呼び出しモジュールに返されます
b) If the extracted value of msgAuthoritativeEngineID is not the same as the value snmpEngineID of the processing SNMP engine (meaning this is not the authoritative SNMP engine), then:
b) MSGAuthoritativeEngineIDの抽出された値が、処理SNMPエンジンの値SNMPENGINEID(これは権威あるSNMPエンジンではない)と同じでない場合、次のとおりです。
1) if at least one of the following conditions is true:
1) 次の条件の少なくとも1つが真実である場合:
- the extracted value of the msgAuthoritativeEngineBoots field is greater than the local notion of the value of snmpEngineBoots; or,
- MSGAuthoritativeEngineBootsフィールドの抽出された値は、SNMPENGINEBOOTSの値のローカル概念よりも大きいです。または、
- the extracted value of the msgAuthoritativeEngineBoots field is equal to the local notion of the value of snmpEngineBoots, and the extracted value of msgAuthoritativeEngineTime field is greater than the value of latestReceivedEngineTime,
- MSGAuthoritativeEngineBootsフィールドの抽出された値は、snmpenginebotsの値のローカル概念に等しく、msgauthoritativeEnginetimeフィールドの抽出された値は、最新のレリメニネットの値よりも大きく、
then the LCD entry corresponding to the extracted value of the msgAuthoritativeEngineID field is updated, by setting:
次に、MSGAuthoritativeEngineIDフィールドの抽出された値に対応するLCDエントリが更新されます。
- the local notion of the value of snmpEngineBoots to the value of the msgAuthoritativeEngineBoots field, - the local notion of the value of snmpEngineTime to the value of the msgAuthoritativeEngineTime field, and - the latestReceivedEngineTime to the value of the value of the msgAuthoritativeEngineTime field.
- MSGAuthoritativeEngineBootsフィールドの価値に対するSnmpengineboutsの価値のローカル概念 - SnmpengineTimeの値のローカル概念は、MSGAuthoritativeEngineTimeフィールドの価値に対する概念、およびMSGAOTHORITATITITITITITITITITITITITITITITITITITIMEフィールドの値の最新の摂取
2) if any of the following conditions is true, then the message is considered to be outside of the Time Window:
2) 次の条件のいずれかが当てはまる場合、メッセージは時間ウィンドウの外側にあると見なされます。
- the local notion of the value of snmpEngineBoots is 2147483647;
- snmpenginebootsの価値のローカル概念は2147483647です。
- the value of the msgAuthoritativeEngineBoots field is less than the local notion of the value of snmpEngineBoots; or,
- MSGAuthoritativeEngineBootsフィールドの値は、snmpenginebootsの価値のローカル概念よりも少ないです。または、
- the value of the msgAuthoritativeEngineBoots field is equal to the local notion of the value of snmpEngineBoots and the value of the msgAuthoritativeEngineTime field is more than 150 seconds less than the local notion of the value of snmpEngineTime.
- MSGAuthoritativeEngineBootsフィールドの値は、SNMPENGINEBOOTSの値のローカル概念に等しく、MSGAUTHORITATIANTENGINETIMEフィールドの値は、SNMPENGINETIMEの値のローカル概念よりも150秒以上低いです。
If the message is considered to be outside of the Time Window then an error indication (notInTimeWindow) is returned to the calling module.
メッセージがタイムウィンドウの外側にあると見なされる場合、エラー表示(notintimewindow)が呼び出しモジュールに返されます。
Note that this means that a too old (possibly replayed) message has been detected and is deemed unauthentic.
これは、古すぎる(おそらく再生された)メッセージが検出されており、不正であるとみなされることを意味することに注意してください。
Note that this procedure allows for the value of msgAuthoritativeEngineBoots in the message to be greater than the local notion of the value of snmpEngineBoots to allow for received messages to be accepted as authentic when received from an authoritative SNMP engine that has re-booted since the receiving SNMP engine last (re-)synchronized.
この手順により、メッセージ内のMSGAuthoritativeEngineBootの値が、SNMPENGINEBOOTSの値のローカル概念よりも大きくなることができることに注意してください。SNMPエンジンLast(Re)同期。
8) a) If the securityLevel indicates that the message was protected from disclosure, then the OCTET STRING representing the encryptedPDU is decrypted according to the user's privacy protocol to obtain an unencrypted serialized scopedPDU value. To do so a call is made to the privacy module that implements the user's privacy protocol according to the abstract primitive:
8) a)セキュリティレベルがメッセージが開示から保護されていることを示した場合、暗号化されたシリアル化されたScopedPDU値を取得するために、ユーザーのプライバシープロトコルに従って暗号化されたPrivacy Protocolに従って復号化されます。そのためには、抽象的な原始に従ってユーザーのプライバシープロトコルを実装するプライバシーモジュールに通話が行われます。
statusInformation = -- success or failure decryptData( IN decryptKey -- the user's localized privKey IN privParameters -- as received on the wire IN encryptedData -- encryptedPDU as received OUT decryptedData -- serialized decrypted scopedPDU )
statusInformation indicates if the decryption process was successful or not. decryptKey the user's localized private privKey is the secret key that can be used by the decryption algorithm. privParameters the msgPrivacyParameters, encoded as an OCTET STRING. encryptedData the encryptedPDU represents the encrypted scopedPDU, encoded as an OCTET STRING. decryptedData the serialized scopedPDU if decryption is successful.
StatusInformationは、復号化プロセスが成功したかどうかを示します。DecryptKeyユーザーのローカライズされたプライベートプライベートは、復号化アルゴリズムで使用できる秘密の鍵です。PrivParameters octet stringとしてエンコードされたmsgprivacyparameters。暗号化されたdata暗号化されたpduは、オクテット文字列としてエンコードされた暗号化されたscopedpduを表します。復号化が成功した場合、シリアル化されたscopedpduをdecryptedData。
If the privacy module returns failure, then the message can not be processed, so the usmStatsDecryptionErrors counter is incremented and an error indication (decryptionError) together with the OID and value of the incremented counter is returned to the calling module.
プライバシーモジュールが障害を返す場合、メッセージを処理できないため、USMSTATSDECRYPTERRORSカウンターが増分され、エラー表示(DecryptionError)がOIDと増分カウンターの値が呼び出しモジュールに返されます。
If the privacy module returns success, then the decrypted scopedPDU is the message payload to be returned to the calling module.
プライバシーモジュールが成功を返す場合、復号化されたscopedPDUは、呼び出しモジュールに返されるメッセージペイロードです。
Otherwise,
さもないと、
b) The scopedPDU component is assumed to be in plain text and is the message payload to be returned to the calling module.
b) ScopedPDUコンポーネントはプレーンテキストにあると想定されており、呼び出しモジュールに返されるメッセージペイロードです。
9) The maxSizeResponseScopedPDU is calculated. This is the maximum size allowed for a scopedPDU for a possible Response message. Provision is made for a message header that allows the same securityLevel as the received Request.
9) MaxSizerEsponsEsCopedPDUが計算されます。これは、可能な応答メッセージのためにScopedPDUが許可される最大サイズです。受信したリクエストと同じセキュリティレベルを許可するメッセージヘッダーのプロビジョニングが行われます。
10) The securityName for the user is retrieved from the usmUserTable.
10)ユーザーのSecurityNameは、USMusertableから取得されます。
11) The security data is cached as cachedSecurityData, so that a possible response to this message can and will use the same authentication and privacy secrets. Information to be saved/cached is as follows:
11)セキュリティデータはCachedSecurityDataとしてキャッシュされているため、このメッセージに対する可能な応答は、同じ認証とプライバシーの秘密を使用できます。保存する/キャッシュされる情報は次のとおりです。
msgUserName, usmUserAuthProtocol, usmUserAuthKey usmUserPrivProtocol, usmUserPrivKey
MSGusername、UsmuserauthProtocol、usmuserauthkey usmuserprivprotocol、usmuserprivkey
12) The statusInformation is set to success and a return is made to the calling module passing back the OUT parameters as specified in the processIncomingMsg primitive.
12)ステータス情報は成功に設定されており、ProcessIncomingMSGプリミティブで指定されているように、呼び出しモジュールがOUTパラメーターを渡すことに戻ります。
The User-based Security Model requires that a discovery process obtains sufficient information about other SNMP engines in order to communicate with them. Discovery requires an non-authoritative SNMP engine to learn the authoritative SNMP engine's snmpEngineID value before communication may proceed. This may be accomplished by generating a Request message with a securityLevel of noAuthNoPriv, a msgUserName of zero-length, a msgAuthoritativeEngineID value of zero length, and the varBindList left empty. The response to this message will be a Report message containing the snmpEngineID of the authoritative SNMP engine as the value of the msgAuthoritativeEngineID field within the msgSecurityParameters field. It contains a Report PDU with the usmStatsUnknownEngineIDs counter in the varBindList.
ユーザーベースのセキュリティモデルでは、発見プロセスが他のSNMPエンジンと通信するために十分な情報を取得する必要があります。発見では、通信が進行する前に、権威あるSNMPエンジンのSNMPENGINEID値を学習するために、非認知的SNMPエンジンが必要です。これは、ゼロ長さのmsgusernameであるnoauthnoprivのセキュリティレベルでリクエストメッセージを生成することで達成できます。このメッセージへの応答は、MSGSeCurityParametersフィールド内のMSGAuthoritativeEngineIDフィールドの値として、権威あるSNMPエンジンのSNMPENGINEIDを含むレポートメッセージになります。varbindListにUSMStatsunnengineidsカウンターを備えたレポートPDUが含まれています。
If authenticated communication is required, then the discovery process should also establish time synchronization with the authoritative SNMP engine. This may be accomplished by sending an authenticated Request message with the value of msgAuthoritativeEngineID set to the newly learned snmpEngineID and with the values of msgAuthoritativeEngineBoots and msgAuthoritativeEngineTime set to zero. For an authenticated Request message, a valid userName must be used in the msgUserName field. The response to this authenticated message will be a Report message containing the up to date values of the authoritative SNMP engine's snmpEngineBoots and snmpEngineTime as the value of the msgAuthoritativeEngineBoots and msgAuthoritativeEngineTime fields respectively. It also contains the usmStatsNotInTimeWindows counter in the varBindList of the Report PDU. The time synchronization then happens automatically as part of the procedures in section 3.2 step 7b. See also section 2.3.
認証された通信が必要な場合、発見プロセスは、権威あるSNMPエンジンとの時間同期も確立する必要があります。これは、新しく学習したSNMPENGINEIDに設定されたMSGAuthoritativeEngineIDの値と、MSGAuthoritativeEngineBootsの値とMSGAuthoritativeEngineTimeセットの値でゼロに設定された認証されたリクエストメッセージを送信することで実現できます。認証されたリクエストメッセージの場合、MSGusernameフィールドで有効なユーザー名を使用する必要があります。この認証されたメッセージへの応答は、それぞれMSGAuthoritativeEngineBootsとMSGAuthoritativeEngineTimeフィールドの値として、権威あるSNMPエンジンのSNMPENGINEBOOTSおよびSNMPENGINETIMEの最新値を含むレポートメッセージになります。また、レポートPDUのvarbindListにusmstatsnotintimewindowsカウンターも含まれています。時間同期は、セクション3.2ステップ7bの手順の一部として自動的に発生します。セクション2.3も参照してください。
SNMP-USER-BASED-SM-MIB DEFINITIONS ::= BEGIN
IMPORTS MODULE-IDENTITY, OBJECT-TYPE, OBJECT-IDENTITY, snmpModules, Counter32 FROM SNMPv2-SMI TEXTUAL-CONVENTION, TestAndIncr, RowStatus, RowPointer, StorageType, AutonomousType FROM SNMPv2-TC MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF SnmpAdminString, SnmpEngineID, snmpAuthProtocols, snmpPrivProtocols FROM SNMP-FRAMEWORK-MIB;
snmpUsmMIB MODULE-IDENTITY LAST-UPDATED "9901200000Z" -- 20 Jan 1999, midnight ORGANIZATION "SNMPv3 Working Group" CONTACT-INFO "WG-email: snmpv3@lists.tislabs.com Subscribe: majordomo@lists.tislabs.com In msg body: subscribe snmpv3
SNMPUSMMIBモジュールIDINTITY最終的には「9901200000Z」 - 1999年1月20日、ミッドナイト組織「SNMPV3ワーキンググループ」wg-email:snmpv3@lists.tislabs.com購読:majordomo@lists.tislabs.com:snmpv3を購読します
Chair: Russ Mundy Trusted Information Systems postal: 3060 Washington Rd Glenwood MD 21738 USA email: mundy@tislabs.com phone: +1-301-854-6889
議長:Russ Mundy Trusted Information Systems Postal:3060 Washington Rd Glenwood MD 21738 USAメール:mundy@tislabs.com電話:1-301-854-6889
Co-editor Uri Blumenthal
共同編集者ウリブルーメンタール
IBM T. J. Watson Research postal: 30 Saw Mill River Pkwy, Hawthorne, NY 10532 USA email: uri@watson.ibm.com phone: +1-914-784-7964
IBM T. J. Watson Research Postal:30 Saw Mill River Pkwy、Hawthorne、NY 10532 USAメール:uri@watson.ibm.com電話:1-914-784-7964
Co-editor: Bert Wijnen IBM T. J. Watson Research postal: Schagen 33 3461 GL Linschoten Netherlands email: wijnen@vnet.ibm.com phone: +31-348-432-794 " DESCRIPTION "The management information definitions for the SNMP User-based Security Model. " -- Revision history
共同編集者:Bert Wijnen Ibm T. J. Watson Research Postal:Schagen 33 3461 GL Linschoten Otherlandsメール:wijnen@vnet.ibm.com電話:31-348-432-794 "SNMPユーザーベースのセキュリティの管理情報の定義の説明「説明モデル。" - 改訂履歴
REVISION "9901200000Z" -- 20 Jan 1999, midnight DESCRIPTION "Clarifications, published as RFC2574"
リビジョン「9901200000Z」 - 1999年1月20日、真夜中の説明「明確化、RFC2574」として公開
REVISION "9711200000Z" -- 20 Nov 1997, midnight DESCRIPTION "Initial version, published as RFC2274"
リビジョン「9711200000Z」 - 1997年11月20日、真夜中の説明「初期バージョン、RFC2274」として公開
::= { snmpModules 15 }
-- Administrative assignments ****************************************
usmMIBObjects OBJECT IDENTIFIER ::= { snmpUsmMIB 1 } usmMIBConformance OBJECT IDENTIFIER ::= { snmpUsmMIB 2 }
-- Identification of Authentication and Privacy Protocols ************
usmNoAuthProtocol OBJECT-IDENTITY STATUS current DESCRIPTION "No Authentication Protocol." ::= { snmpAuthProtocols 1 }
usmHMACMD5AuthProtocol OBJECT-IDENTITY STATUS current DESCRIPTION "The HMAC-MD5-96 Digest Authentication Protocol." REFERENCE "- H. Krawczyk, M. Bellare, R. Canetti HMAC: Keyed-Hashing for Message Authentication, RFC2104, Feb 1997. - Rivest, R., Message Digest Algorithm MD5, RFC1321. "
USMHMACMD5AUTHPROTOCOLオブジェクトアイデンティティステータス現在の説明「HMAC-MD5-96ダイジェスト認証プロトコル」リファレンス "-H。Krawczyk、M。Bellare、R。CanettiHMAC:メッセージ認証のためのキー付きハッシング、RFC2104、1997年2月。
::= { snmpAuthProtocols 2 }
usmHMACSHAAuthProtocol OBJECT-IDENTITY STATUS current DESCRIPTION "The HMAC-SHA-96 Digest Authentication Protocol." REFERENCE "- H. Krawczyk, M. Bellare, R. Canetti, HMAC: Keyed-Hashing for Message Authentication, RFC2104, Feb 1997. - Secure Hash Algorithm. NIST FIPS 180-1. " ::= { snmpAuthProtocols 3 }
usmNoPrivProtocol OBJECT-IDENTITY STATUS current DESCRIPTION "No Privacy Protocol." ::= { snmpPrivProtocols 1 }
usmDESPrivProtocol OBJECT-IDENTITY STATUS current DESCRIPTION "The CBC-DES Symmetric Encryption Protocol." REFERENCE "- Data Encryption Standard, National Institute of Standards and Technology. Federal Information Processing Standard (FIPS) Publication 46-1. Supersedes FIPS Publication 46, (January, 1977; reaffirmed January, 1988).
USMDESPRIVPROTOCOLオブジェクトアイデンティティステータス現在の説明「CBC-DES対称暗号化プロトコル。」参照 " - データ暗号化標準、国立標準技術研究所。連邦情報処理標準(FIPS)出版46-1。SupersedesFipsPublication 46、(1977年1月; 1988年1月の再確認)。
- Data Encryption Algorithm, American National Standards Institute. ANSI X3.92-1981, (December, 1980).
- データ暗号化アルゴリズム、American National Standards Institute。ANSI X3.92-1981、(1980年12月)。
- DES Modes of Operation, National Institute of Standards and Technology. Federal Information Processing Standard (FIPS) Publication 81, (December, 1980).
- DESモードオブオペレーション、国立標準技術研究所。連邦情報処理標準(FIPS)出版81、(1980年12月)。
- Data Encryption Algorithm - Modes of Operation, American National Standards Institute. ANSI X3.106-1983, (May 1983). " ::= { snmpPrivProtocols 2 }
-- Textual Conventions ***********************************************
KeyChange ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION
"Every definition of an object with this syntax must identify a protocol P, a secret key K, and a hash algorithm H that produces output of L octets.
「この構文を使用したオブジェクトのすべての定義は、プロトコルP、シークレットキーK、およびLオクテットの出力を生成するハッシュアルゴリズムHを識別する必要があります。
The object's value is a manager-generated, partially-random value which, when modified, causes the value of the secret key K, to be modified via a one-way function.
オブジェクトの値は、マネージャーが生成した部分的にランダムの値であり、変更すると秘密キーKの値を引き起こし、一方向関数を介して変更されます。
The value of an instance of this object is the concatenation of two components: first a 'random' component and then a 'delta' component.
このオブジェクトのインスタンスの値は、2つのコンポーネントの連結です。最初は「ランダム」コンポーネント、次に「デルタ」コンポーネントです。
The lengths of the random and delta components are given by the corresponding value of the protocol P; if P requires K to be a fixed length, the length of both the random and delta components is that fixed length; if P allows the length of K to be variable up to a particular maximum length, the length of the random component is that maximum length and the length of the delta component is any length less than or equal to that maximum length. For example, usmHMACMD5AuthProtocol requires K to be a fixed length of 16 octets and L - of 16 octets. usmHMACSHAAuthProtocol requires K to be a fixed length of 20 octets and L - of 20 octets. Other protocols may define other sizes, as deemed appropriate.
ランダムコンポーネントとデルタコンポーネントの長さは、プロトコルPの対応する値によって与えられます。pが固定長であることを要求する場合、ランダムコンポーネントとデルタコンポーネントの両方の長さはその固定長です。pを使用すると、kの長さが特定の最大長まで可変になると、ランダムコンポーネントの長さは最大長とデルタコンポーネントの長さがその最大長以下であるということです。たとえば、USMHMACMD5AUTHPROTOCOLでは、Kが16オクテットの固定長であり、16オクテットのL-を必要とします。USMHMACSHAAUTHPROTOCOLでは、Kが20オクテットの固定長であり、20オクテットのL-を必要とします。他のプロトコルは、適切と見なされる他のサイズを定義する場合があります。
When a requester wants to change the old key K to a new key keyNew on a remote entity, the 'random' component is obtained from either a true random generator, or from a pseudorandom generator, and the 'delta' component is computed as follows:
要求者が古いキーKをリモートエンティティ上の新しいキーネーに変更したい場合、「ランダム」コンポーネントは、真のランダムジェネレーター、または擬似ランダムジェネレーターから取得され、「デルタ」コンポーネントは次のように計算されます。:
- a temporary variable is initialized to the existing value of K; - if the length of the keyNew is greater than L octets, then: - the random component is appended to the value of the temporary variable, and the result is input to the the hash algorithm H to produce a digest value, and the temporary variable is set to this digest value; - the value of the temporary variable is XOR-ed with the first (next) L-octets (16 octets in case of MD5) of the keyNew to produce the first (next) L-octets (16 octets in case of MD5) of the 'delta' component. - the above two steps are repeated until the unused portion of the keyNew component is L octets or less, - the random component is appended to the value of the temporary variable, and the result is input to the hash algorithm H to produce a digest value; - this digest value, truncated if necessary to be the same length as the unused portion of the keyNew, is XOR-ed with the unused portion of the keyNew to produce the (final portion of the) 'delta' component.
- 一時的な変数は、kの既存の値に初期化されます。 - KeyNewの長さがLオクテットより大きい場合、次の場合: - ランダムコンポーネントは一時変数の値に追加され、結果はハッシュアルゴリズムhに入力してダイジェスト値を生成し、一時変数は一時的な変数を生成しますこのダイジェスト値に設定されています。 - 一時変数の値は、keyNewの最初の(次の)l-octets(md5の場合は16オクテット)でxor-edです。「デルタ」コンポーネント。 - 上記の2つのステップは、Keynewコンポーネントの未使用部分がLオクテット以下になるまで繰り返されます。ランダムコンポーネントは一時変数の値に追加され、結果はハッシュアルゴリズムhに入力して消化値を生成します。; - 必要に応じてキーネーの未使用部分と同じ長さであるために切り捨てられたこのダイジェスト値は、キーネーの未使用部分でXOR-edであり、(デルタ」コンポーネント()コンポーネントを生成します。
For example, using MD5 as the hash algorithm H:
たとえば、MD5をハッシュアルゴリズムhとして使用します。
iterations = (lenOfDelta - 1)/16; /* integer division */ temp = keyOld; for (i = 0; i < iterations; i++) { temp = MD5 (temp || random); delta[i*16 .. (i*16)+15] = temp XOR keyNew[i*16 .. (i*16)+15]; } temp = MD5 (temp || random); delta[i*16 .. lenOfDelta-1] = temp XOR keyNew[i*16 .. lenOfDelta-1];
The 'random' and 'delta' components are then concatenated as described above, and the resulting octet string is sent to the recipient as the new value of an instance of this object.
次に、「ランダム」および「デルタ」コンポーネントが上記のように連結され、結果のOctet文字列はこのオブジェクトのインスタンスの新しい値として受信者に送信されます。
At the receiver side, when an instance of this object is set to a new value, then a new value of K is computed as follows:
受信側では、このオブジェクトのインスタンスが新しい値に設定されると、kの新しい値が次のように計算されます。
- a temporary variable is initialized to the existing value of K; - if the length of the delta component is greater than L octets, then: - the random component is appended to the value of the temporary variable, and the result is input to the hash algorithm H to produce a digest value, and the temporary variable is set to this digest value; - the value of the temporary variable is XOR-ed with the first (next) L-octets (16 octets in case of MD5) of the delta component to produce the first (next) L-octets (16 octets in case of MD5) of the new value of K. - the above two steps are repeated until the unused portion of the delta component is L octets or less, - the random component is appended to the value of the temporary variable, and the result is input to the hash algorithm H to produce a digest value; - this digest value, truncated if necessary to be the same length as the unused portion of the delta component, is XOR-ed with the unused portion of the delta component to produce the (final portion of the) new value of K.
- 一時的な変数は、kの既存の値に初期化されます。 - デルタコンポーネントの長さがlオクテットより大きい場合、次の場合: - ランダムコンポーネントは一時変数の値に追加され、結果はハッシュアルゴリズムhに入力してダイジェスト値を生成し、一時変数はこのダイジェスト値に設定されています。 - 一時変数の値は、デルタコンポーネントの最初の(次の)Lオクテット(MD5の場合は16オクテット)でXOR-EDであり、最初の(次の)L-OCTET(MD5の場合は16オクテット)を生成しますKの新しい値のうち - 上記の2つのステップは、デルタコンポーネントの未使用部分がLオクテット以下になるまで繰り返されます。ランダムコンポーネントは一時変数の値に追加され、結果はハッシュに入力されます。ダイジェスト値を生成するアルゴリズムh。-Deltaコンポーネントの未使用部分と同じ長さであるために切り捨てられたこのダイジェスト値は、kの(最終部分の)新しい値を生成するために、デルタコンポーネントの未使用部分でXOR-EDです。
For example, using MD5 as the hash algorithm H:
たとえば、MD5をハッシュアルゴリズムhとして使用します。
iterations = (lenOfDelta - 1)/16; /* integer division */ temp = keyOld; for (i = 0; i < iterations; i++) { temp = MD5 (temp || random); keyNew[i*16 .. (i*16)+15] = temp XOR delta[i*16 .. (i*16)+15]; } temp = MD5 (temp || random); keyNew[i*16 .. lenOfDelta-1] = temp XOR delta[i*16 .. lenOfDelta-1];
The value of an object with this syntax, whenever it is retrieved by the management protocol, is always the zero length string.
この構文を使用したオブジェクトの値は、管理プロトコルによって取得されるたびに、常にゼロの長さの文字列です。
Note that the keyOld and keyNew are the localized keys.
KeyOldとKeynewはローカライズされたキーであることに注意してください。
Note that it is probably wise that when an SNMP entity sends a SetRequest to change a key, that it keeps a copy of the old key until it has confirmed that the key change actually succeeded. " SYNTAX OCTET STRING
SNMPエンティティがキーを変更するためにSetRequestを送信した場合、キーの変更が実際に成功したことが確認されるまで古いキーのコピーを保持することはおそらく賢明であることに注意してください。「構文オクテット文字列
-- Statistics for the User-based Security Model **********************
usmStats OBJECT IDENTIFIER ::= { usmMIBObjects 1 }
usmStatsUnsupportedSecLevels OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The total number of packets received by the SNMP engine which were dropped because they requested a securityLevel that was unknown to the SNMP engine or otherwise unavailable. " ::= { usmStats 1 }
usmStatsNotInTimeWindows OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The total number of packets received by the SNMP engine which were dropped because they appeared outside of the authoritative SNMP engine's window. " ::= { usmStats 2 }
usmStatsUnknownUserNames OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The total number of packets received by the SNMP engine which were dropped because they referenced a user that was not known to the SNMP engine. " ::= { usmStats 3 }
usmStatsUnknownEngineIDs OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The total number of packets received by the SNMP engine which were dropped because they referenced an snmpEngineID that was not known to the SNMP engine. " ::= { usmStats 4 }
usmStatsWrongDigests OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The total number of packets received by the SNMP engine which were dropped because they didn't contain the expected digest value. " ::= { usmStats 5 }
usmStatsDecryptionErrors OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The total number of packets received by the SNMP engine which were dropped because they could not be decrypted. " ::= { usmStats 6 }
-- The usmUser Group ************************************************ usmUser OBJECT IDENTIFIER ::= { usmMIBObjects 2 }
usmUserSpinLock OBJECT-TYPE SYNTAX TestAndIncr MAX-ACCESS read-write STATUS current DESCRIPTION "An advisory lock used to allow several cooperating Command Generator Applications to coordinate their use of facilities to alter secrets in the usmUserTable. " ::= { usmUser 1 }
-- The table of valid users for the User-based Security Model ********
usmUserTable OBJECT-TYPE SYNTAX SEQUENCE OF UsmUserEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The table of users configured in the SNMP engine's Local Configuration Datastore (LCD).
USMUSERENTRY MAX-ACCESSのUSMUSERTABLEオブジェクトタイプの構文シーケンスはアクセス不可能なステータス現在説明 "SNMPエンジンのローカル構成データストア(LCD)で構成されたユーザーのテーブル。
To create a new user (i.e., to instantiate a new conceptual row in this table), it is recommended to follow this procedure:
新しいユーザーを作成するには(つまり、この表に新しい概念的行をインスタンス化するために)、この手順に従うことをお勧めします。
1) GET(usmUserSpinLock.0) and save in sValue. 2) SET(usmUserSpinLock.0=sValue, usmUserCloneFrom=templateUser, usmUserStatus=createAndWait) You should use a template user to clone from which has the proper auth/priv protocol defined.
1) get(usmuserspinlock.0)を取得し、svalueで保存します。2)set(usmuserspinlock.0 = svalue、usmuserclonefrom = templateuser、usmuserstatus = createandwait)テンプレートユーザーを使用して、適切なAUTH/PRIVプロトコルが定義されているクローンを使用する必要があります。
If the new user is to use privacy:
新しいユーザーがプライバシーを使用する場合:
3) generate the keyChange value based on the secret privKey of the clone-from user and the secret key to be used for the new user. Let us call this pkcValue. 4) GET(usmUserSpinLock.0) and save in sValue. 5) SET(usmUserSpinLock.0=sValue, usmUserPrivKeyChange=pkcValue usmUserPublic=randomValue1) 6) GET(usmUserPulic) and check it has randomValue1. If not, repeat steps 4-6.
3) Clone-Fromユーザーの秘密のプラットキーと、新しいユーザーに使用されるシークレットキーに基づいて、キーチェンジ値を生成します。これをPKCValueと呼びましょう。4)(usmuserspinlock.0)を取得し、svalueで保存します。5)set(usmuserspinlock.0 = svalue、usmuserprivkeychange = pkcvalue usmuserpublic = randomvalue1)6)get(usmuserpulic)をget(usmuserpulic)とrandomvalue1を確認します。そうでない場合は、手順4-6を繰り返します。
If the new user will never use privacy:
新しいユーザーがプライバシーを使用しない場合:
7) SET(usmUserPrivProtocol=usmNoPrivProtocol)
7) set(usmuserprivprotocol = usmnoprivprotocol)
If the new user is to use authentication:
新しいユーザーが認証を使用する場合:
8) generate the keyChange value based on the secret authKey of the clone-from user and the secret key to be used for the new user. Let us call this akcValue. 9) GET(usmUserSpinLock.0) and save in sValue. 10) SET(usmUserSpinLock.0=sValue, usmUserAuthKeyChange=akcValue usmUserPublic=randomValue2) 11) GET(usmUserPulic) and check it has randomValue2. If not, repeat steps 9-11.
8) Clone-FromユーザーのSecret AuthKeyと、新しいユーザーに使用されるシークレットキーに基づいて、キーチェンジ値を生成します。これをAkcValueと呼びましょう。9)(usmuserspinlock.0)を取得し、svalueで保存します。10)set(usmuserspinlock.0 = svalue、usmuserauthkeychange = akcvalue usmuserpublic = randomvalue2)11)get(usmuserpulic)を取得し、ランダムバリュー2を確認します。そうでない場合は、ステップ9-11を繰り返します。
If the new user will never use authentication:
新しいユーザーが認証を使用しない場合:
12) SET(usmUserAuthProtocol=usmNoAuthProtocol)
12)set(usmuserauthprotocol = usmnoauthprotocol)
Finally, activate the new user:
最後に、新しいユーザーをアクティブにします。
13) SET(usmUserStatus=active)
13)set(usmuserstatus = active)
The new user should now be available and ready to be used for SNMPv3 communication. Note however that access to MIB data must be provided via configuration of the SNMP-VIEW-BASED-ACM-MIB.
これで、新しいユーザーが利用可能になり、SNMPV3通信に使用できるようになりました。ただし、MIBデータへのアクセスは、SNMP-ViewベースのACM-MIBの構成を介して提供する必要があることに注意してください。
The use of usmUserSpinlock is to avoid conflicts with another SNMP command responder application which may also be acting on the usmUserTable. " ::= { usmUser 2 }
usmUserEntry OBJECT-TYPE SYNTAX UsmUserEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A user configured in the SNMP engine's Local Configuration Datastore (LCD) for the User-based Security Model. " INDEX { usmUserEngineID, usmUserName } ::= { usmUserTable 1 }
UsmUserEntry ::= SEQUENCE
{ usmUserEngineID SnmpEngineID, usmUserName SnmpAdminString, usmUserSecurityName SnmpAdminString, usmUserCloneFrom RowPointer, usmUserAuthProtocol AutonomousType, usmUserAuthKeyChange KeyChange, usmUserOwnAuthKeyChange KeyChange, usmUserPrivProtocol AutonomousType, usmUserPrivKeyChange KeyChange, usmUserOwnPrivKeyChange KeyChange, usmUserPublic OCTET STRING, usmUserStorageType StorageType, usmUserStatus RowStatus }
usmUserEngineID OBJECT-TYPE SYNTAX SnmpEngineID MAX-ACCESS not-accessible STATUS current DESCRIPTION "An SNMP engine's administratively-unique identifier.
usmuserengineid object-type sntax snmpengineid max-access not-accessable current current説明 "SNMPエンジンの管理上識別子。
In a simple agent, this value is always that agent's own snmpEngineID value.
単純なエージェントでは、この値は常にそのエージェント自身のSNMPengineID値です。
The value can also take the value of the snmpEngineID of a remote SNMP engine with which this user can communicate. " ::= { usmUserEntry 1 }
usmUserName OBJECT-TYPE SYNTAX SnmpAdminString (SIZE(1..32)) MAX-ACCESS not-accessible STATUS current DESCRIPTION "A human readable string representing the name of the user.
usmusername object-type sntax snmpadminstring(size(1..32))max-access not-accessable current current current "ユーザーの名前を表す人間の読み取り可能な文字列。
This is the (User-based Security) Model dependent security ID. " ::= { usmUserEntry 2 }
usmUserSecurityName OBJECT-TYPE SYNTAX SnmpAdminString MAX-ACCESS read-only STATUS current DESCRIPTION "A human readable string representing the user in
usmusersecurityName object-type sntax snmpadminstring max-access読み取り専用ステータス現在の説明 "ユーザーを表す人間の読み取り可能な文字列
Security Model independent format.
セキュリティモデル独立形式。
The default transformation of the User-based Security Model dependent security ID to the securityName and vice versa is the identity function so that the securityName is the same as the userName. " ::= { usmUserEntry 3 }
usmUserCloneFrom OBJECT-TYPE SYNTAX RowPointer MAX-ACCESS read-create STATUS current DESCRIPTION "A pointer to another conceptual row in this usmUserTable. The user in this other conceptual row is called the clone-from user.
usmuserclonefrom object-type rowpointer max-access read-create create current current current "このusmusertableの別の概念的行へのポインター。
When a new user is created (i.e., a new conceptual row is instantiated in this table), the privacy and authentication parameters of the new user must be cloned from its clone-from user. These parameters are: - authentication protocol (usmUserAuthProtocol) - privacy protocol (usmUserPrivProtocol) They will be copied regardless of what the current value is.
新しいユーザーが作成される場合(つまり、この表に新しい概念行がインスタンス化されます)、新しいユーザーのプライバシーと認証パラメーターは、クローンからのユーザーからクローン化する必要があります。これらのパラメーターは次のとおりです。 -Authentication Protocol(UsmuserauthProtocol) - プライバシープロトコル(usmuserprivprotocol)は、現在の値に関係なくコピーされます。
Cloning also causes the initial values of the secret authentication key (authKey) and the secret encryption key (privKey) of the new user to be set to the same value as the corresponding secret of the clone-from user.
クローン化により、Secret Authentication Key(AuthKey)の初期値と、新しいユーザーのSecret暗号化キー(Privkey)が、クローンフロムユーザーの対応する秘密と同じ値に設定されます。
The first time an instance of this object is set by a management operation (either at or after its instantiation), the cloning process is invoked. Subsequent writes are successful but invoke no action to be taken by the receiver. The cloning process fails with an 'inconsistentName' error if the conceptual row representing the clone-from user does not exist or is not in an active state when the cloning process is invoked.
このオブジェクトのインスタンスが管理操作によって(インスタンス化後またはインスタンス化後)に設定されるとき、クローニングプロセスが呼び出されます。その後の書き込みは成功しましたが、受信者が採用するアクションはありません。クローンからクローンからの概念的行が存在しない場合、またはクローンプロセスが呼び出されたときにアクティブな状態にない場合、「一貫性のない名前」エラーでクローンプロセスが失敗します。
When this object is read, the ZeroDotZero OID is returned. " ::= { usmUserEntry 4 }
usmUserAuthProtocol OBJECT-TYPE
usmuserauthprotocolオブジェクトタイプ
SYNTAX AutonomousType MAX-ACCESS read-create STATUS current DESCRIPTION "An indication of whether messages sent on behalf of this user to/from the SNMP engine identified by usmUserEngineID, can be authenticated, and if so, the type of authentication protocol which is used.
構文AutonomousType Max-Access Read-Createステータス現在の説明 "UsmuserEngineIDによって識別されたSNMPエンジンにこのユーザーに代わって送信されたメッセージが認証されるかどうかを示しています。
An instance of this object is created concurrently with the creation of any other object instance for the same user (i.e., as part of the processing of the set operation which creates the first object instance in the same conceptual row).
このオブジェクトのインスタンスは、同じユーザーの他のオブジェクトインスタンスの作成と同時に作成されます(つまり、同じ概念行で最初のオブジェクトインスタンスを作成するセット操作の処理の一部として)。
If an initial set operation (i.e. at row creation time) tries to set a value for an unknown or unsupported protocol, then a 'wrongValue' error must be returned.
初期セット操作(つまり、行の作成時)が不明またはサポートされていないプロトコルの値を設定しようとする場合、「間違った値」エラーを返す必要があります。
The value will be overwritten/set when a set operation is performed on the corresponding instance of usmUserCloneFrom.
UsmuserClonefromの対応するインスタンスでセット操作が実行されると、値は上書き/設定されます。
Once instantiated, the value of such an instance of this object can only be changed via a set operation to the value of the usmNoAuthProtocol.
インスタンス化されると、このオブジェクトのこのようなインスタンスの値は、設定操作を介してUSMNoAuthProtocolの値にのみ変更できます。
If a set operation tries to change the value of an existing instance of this object to any value other than usmNoAuthProtocol, then an 'inconsistentValue' error must be returned.
セット操作が、このオブジェクトの既存のインスタンスの値をusmnoauthprotocol以外の値に変更しようとする場合、「矛盾する値」エラーを返す必要があります。
If a set operation tries to set the value to the usmNoAuthProtocol while the usmUserPrivProtocol value in the same row is not equal to usmNoPrivProtocol, then an 'inconsistentValue' error must be returned. That means that an SNMP command generator application must first ensure that the usmUserPrivProtocol is set to the usmNoPrivProtocol value before it can set the usmUserAuthProtocol value to usmNoAuthProtocol. " DEFVAL { usmNoAuthProtocol } ::= { usmUserEntry 5 }
usmUserAuthKeyChange OBJECT-TYPE SYNTAX KeyChange -- typically (SIZE (0 | 32)) for HMACMD5 -- typically (SIZE (0 | 40)) for HMACSHA MAX-ACCESS read-create STATUS current DESCRIPTION "An object, which when modified, causes the secret authentication key used for messages sent on behalf of this user to/from the SNMP engine identified by usmUserEngineID, to be modified via a one-way function.
usmuserauthkeychangeオブジェクトタイプの構文チェンジ - 通常はhmacmd5の(サイズ(0 | 32)) - 通常、hmacsha max-access read-createステータス現在の説明 "の場合(サイズ(0 | 40))。このユーザーに代わって送信されたメッセージに使用された秘密認証キーは、USMUSERENGINEIDによって識別されたSNMPエンジンに、および一元配置関数を介して変更されます。
The associated protocol is the usmUserAuthProtocol. The associated secret key is the user's secret authentication key (authKey). The associated hash algorithm is the algorithm used by the user's usmUserAuthProtocol.
関連するプロトコルはUsmuserauthprotocolです。関連するシークレットキーは、ユーザーの秘密認証キー(AuthKey)です。関連するハッシュアルゴリズムは、ユーザーのUsmuserauthProtocolで使用されるアルゴリズムです。
When creating a new user, it is an 'inconsistentName' error for a set operation to refer to this object unless it is previously or concurrently initialized through a set operation on the corresponding instance of usmUserCloneFrom.
新しいユーザーを作成する場合、UsmuserClonefromの対応するインスタンスでのセット操作を介して以前または同時に初期化されていない限り、このオブジェクトを参照するのは、セット操作の「一貫性のない」エラーです。
When the value of the corresponding usmUserAuthProtocol is usmNoAuthProtocol, then a set is successful, but effectively is a no-op.
対応するusmuserauthprotocolの値がusmnoauthprotocolである場合、セットは成功しますが、事実上はopです。
When this object is read, the zero-length (empty) string is returned.
このオブジェクトが読み取られると、ゼロ長(空)文字列が返されます。
The recommended way to do a key change is as follows:
重要な変更を行うための推奨される方法は次のとおりです。
1) GET(usmUserSpinLock.0) and save in sValue. 2) generate the keyChange value based on the old (existing) secret key and the new secret key, let us call this kcValue.
1) get(usmuserspinlock.0)を取得し、svalueで保存します。2)古い(既存の)シークレットキーと新しいシークレットキーに基づいてキーチェンジ値を生成して、このKCValueと呼びましょう。
If you do the key change on behalf of another user:
別のユーザーに代わって重要な変更を行う場合:
3) SET(usmUserSpinLock.0=sValue, usmUserAuthKeyChange=kcValue usmUserPublic=randomValue)
3) set(usmuserspinlock.0 = svalue、usmuserauthkeychange = kcvalue usmuserpublic = randomvalue)
If you do the key change for yourself:
自分で重要な変更を行う場合:
4) SET(usmUserSpinLock.0=sValue, usmUserOwnAuthKeyChange=kcValue usmUserPublic=randomValue)
4) set(usmuserspinlock.0 = svalue、usmuserownauthkeychange = kcvalue usmuserpublic = randomvalue)
If you get a response with error-status of noError, then the SET succeeded and the new key is active. If you do not get a response, then you can issue a GET(usmUserPublic) and check if the value is equal to the randomValue you did send in the SET. If so, then the key change succeeded and the new key is active (probably the response got lost). If not, then the SET request probably never reached the target and so you can start over with the procedure above. " DEFVAL { ''H } -- the empty string ::= { usmUserEntry 6 }
usmUserOwnAuthKeyChange OBJECT-TYPE SYNTAX KeyChange -- typically (SIZE (0 | 32)) for HMACMD5 -- typically (SIZE (0 | 40)) for HMACSHA MAX-ACCESS read-create STATUS current DESCRIPTION "Behaves exactly as usmUserAuthKeyChange, with one notable difference: in order for the set operation to succeed, the usmUserName of the operation requester must match the usmUserName that indexes the row which is targeted by this operation. In addition, the USM security model must be used for this operation.
usmuserownauthkeychangeオブジェクトタイプの構文チェンジ - 通常はhmacmd5の(サイズ(0 | 32)) - 通常(サイズ(0 | 32))hmacsha max-access read-createステータス現在の説明 "はusmuserauthkeychangeの正確に動作します。違い:セット操作が成功するためには、操作要求者のusmusernameは、この操作のターゲットを絞る行にインデックスを付けるusmusernameと一致する必要があります。さらに、この操作にはUSMセキュリティモデルを使用する必要があります。
The idea here is that access to this column can be public, since it will only allow a user to change his own secret authentication key (authKey). Note that this can only be done once the row is active.
ここでのアイデアは、ユーザーが独自の秘密認証キー(AuthKey)を変更できるようになるため、このコラムへのアクセスが公開される可能性があるということです。これは、行がアクティブになったら実行できることに注意してください。
When a set is received and the usmUserName of the requester is not the same as the umsUserName that indexes the row which is targeted by this operation, then a 'noAccess' error must be returned.
セットが受信され、リクエスターのusmusernameがこの操作のターゲットをターゲットにする行をインデックス作成するumsususernameと同じではない場合、「noaccess」エラーを返す必要があります。
When a set is received and the security model in use is not USM, then a 'noAccess' error must be returned. " DEFVAL { ''H } -- the empty string ::= { usmUserEntry 7 }
usmUserPrivProtocol OBJECT-TYPE SYNTAX AutonomousType MAX-ACCESS read-create STATUS current DESCRIPTION "An indication of whether messages sent on behalf of this user to/from the SNMP engine identified by usmUserEngineID, can be protected from disclosure, and if so, the type of privacy protocol which is used.
USMUSERPRIVPROTOCOLオブジェクトタイプの構文自律型MAX-ACCESS READ-CREATEステータス現在の説明 "このユーザーに代わって送信されたメッセージがUSMUSERENGINEIDによって識別されたSNMPエンジンに送信されたメッセージが開示から保護されるかどうかを示しています。使用されるプライバシープロトコル。
An instance of this object is created concurrently with the creation of any other object instance for the same user (i.e., as part of the processing of the set operation which creates the first object instance in the same conceptual row).
このオブジェクトのインスタンスは、同じユーザーの他のオブジェクトインスタンスの作成と同時に作成されます(つまり、同じ概念行で最初のオブジェクトインスタンスを作成するセット操作の処理の一部として)。
If an initial set operation (i.e. at row creation time) tries to set a value for an unknown or unsupported protocol, then a 'wrongValue' error must be returned.
初期セット操作(つまり、行の作成時)が不明またはサポートされていないプロトコルの値を設定しようとする場合、「間違った値」エラーを返す必要があります。
The value will be overwritten/set when a set operation is performed on the corresponding instance of usmUserCloneFrom.
UsmuserClonefromの対応するインスタンスでセット操作が実行されると、値は上書き/設定されます。
Once instantiated, the value of such an instance of this object can only be changed via a set operation to the value of the usmNoPrivProtocol.
一度インスタンス化されると、このオブジェクトのこのようなインスタンスの値は、設定操作を介してUSMNOPRIVPROTOCOLの値にのみ変更できます。
If a set operation tries to change the value of an existing instance of this object to any value other than usmNoPrivProtocol, then an 'inconsistentValue' error must be returned.
セット操作が、このオブジェクトの既存のインスタンスの値をusmnoprivprotocol以外の値に変更しようとする場合、「矛盾する値」エラーを返す必要があります。
Note that if any privacy protocol is used, then you must also use an authentication protocol. In other words, if usmUserPrivProtocol is set to anything else than usmNoPrivProtocol, then the corresponding instance of usmUserAuthProtocol cannot have a value of usmNoAuthProtocol. If it does, then an 'inconsistentValue' error must be returned. " DEFVAL { usmNoPrivProtocol } ::= { usmUserEntry 8 }
usmUserPrivKeyChange OBJECT-TYPE SYNTAX KeyChange -- typically (SIZE (0 | 32)) for DES MAX-ACCESS read-create STATUS current DESCRIPTION "An object, which when modified, causes the secret encryption key used for messages sent on behalf of this user to/from the SNMP engine identified by usmUserEngineID, to be modified via a one-way function.
usmuserprivkeychangeオブジェクトタイプの構文チェンジ - 通常(サイズ(0 | 32))des max-access read-createステータス現在の説明 "オブジェクト。usmuserengineidによって識別されたSNMPエンジンに/から、片道関数を介して変更されます。
The associated protocol is the usmUserPrivProtocol. The associated secret key is the user's secret privacy key (privKey). The associated hash algorithm is the algorithm used by the user's usmUserAuthProtocol.
関連するプロトコルはUSMUSERPRIVPROTOCOLです。関連する秘密の鍵は、ユーザーの秘密プライバシーキー(Privkey)です。関連するハッシュアルゴリズムは、ユーザーのUsmuserauthProtocolで使用されるアルゴリズムです。
When creating a new user, it is an 'inconsistentName' error for a set operation to refer to this object unless it is previously or concurrently initialized through a set operation on the corresponding instance of usmUserCloneFrom.
新しいユーザーを作成する場合、UsmuserClonefromの対応するインスタンスでのセット操作を介して以前または同時に初期化されていない限り、このオブジェクトを参照するのは、セット操作の「一貫性のない」エラーです。
When the value of the corresponding usmUserPrivProtocol is usmNoPrivProtocol, then a set is successful, but effectively is a no-op.
対応するusmuserprivprotocolの値がusmnoprivprotocolである場合、セットは成功しますが、事実上はopです。
When this object is read, the zero-length (empty) string is returned. See the description clause of usmUserAuthKeyChange for a recommended procedure to do a key change. " DEFVAL { ''H } -- the empty string ::= { usmUserEntry 9 }
usmUserOwnPrivKeyChange OBJECT-TYPE SYNTAX KeyChange -- typically (SIZE (0 | 32)) for DES MAX-ACCESS read-create STATUS current DESCRIPTION "Behaves exactly as usmUserPrivKeyChange, with one notable difference: in order for the Set operation to succeed, the usmUserName of the operation requester must match the usmUserName that indexes the row which is targeted by this operation. In addition, the USM security model must be used for this operation.
usmuserownownprivkeychangeオブジェクトタイプの構文チェンジ - 通常(サイズ(0 | 32))des max-access read-createステータス現在の説明 "usmuserprivkeychangeとして正確に動作します。操作要求者のうち、この操作のターゲットを絞る行にインデックスを付けるUSMUSERNAMEと一致する必要があります。さらに、この操作にはUSMセキュリティモデルを使用する必要があります。
The idea here is that access to this column can be public, since it will only allow a user to change his own secret privacy key (privKey). Note that this can only be done once the row is active.
ここでのアイデアは、ユーザーが独自の秘密プライバシーキー(Privkey)を変更できるようになるため、このコラムへのアクセスが公開される可能性があるということです。これは、行がアクティブになったら実行できることに注意してください。
When a set is received and the usmUserName of the requester is not the same as the umsUserName that indexes the row which is targeted by this operation, then a 'noAccess' error must be returned.
セットが受信され、リクエスターのusmusernameがこの操作のターゲットをターゲットにする行をインデックス作成するumsususernameと同じではない場合、「noaccess」エラーを返す必要があります。
When a set is received and the security model in use is not USM, then a 'noAccess' error must be returned. " DEFVAL { ''H } -- the empty string ::= { usmUserEntry 10 }
usmUserPublic OBJECT-TYPE SYNTAX OCTET STRING (SIZE(0..32)) MAX-ACCESS read-create STATUS current DESCRIPTION "A publicly-readable value which can be written as part of the procedure for changing a user's secret authentication and/or privacy key, and later read to determine whether the change of the secret was effected. " DEFVAL { ''H } -- the empty string ::= { usmUserEntry 11 }
usmUserStorageType OBJECT-TYPE SYNTAX StorageType MAX-ACCESS read-create STATUS current DESCRIPTION "The storage type for this conceptual row.
usmuserstorageTypeオブジェクトタイプ構文storageType max-access read-createステータス現在の説明 "この概念行のストレージタイプ。
Conceptual rows having the value 'permanent' must allow write-access at a minimum to:
値「永続的」を持つ概念行は、最低限の書き込みアクセスを許可する必要があります。
- usmUserAuthKeyChange, usmUserOwnAuthKeyChange and usmUserPublic for a user who employs authentication, and - usmUserPrivKeyChange, usmUserOwnPrivKeyChange and usmUserPublic for a user who employs privacy.
- UsmuserauthkeyChange、UsmuserownouthkeyChange、およびUsmuserpublic認証を採用しているユーザー、および-usmuserprivkeychange、usmuserownprivkeychange、およびusmuserpublicがプライバシーを採用しているユーザー。
Note that any user who employs authentication or privacy must allow its secret(s) to be updated and thus cannot be 'readOnly'.
認証またはプライバシーを採用しているユーザーは、その秘密を更新することを許可する必要があるため、「読み取る」ことはできないことに注意してください。
If an initial set operation tries to set the value to 'readOnly' for a user who employs authentication or privacy, then an 'inconsistentValue' error must be returned. Note that if the value has been previously set (implicit or explicit) to any value, then the rules as defined in the StorageType Textual Convention apply.
初期セット操作が、認証またはプライバシーを採用しているユーザーの値を「読み取り」に設定しようとする場合、「一貫性のない値」エラーを返す必要があります。値が以前に(暗黙的または明示的)任意の値に設定されている場合、StorageTypeテキスト条約で定義されているルールが適用されることに注意してください。
It is an implementation issue to decide if a SET for a readOnly or permanent row is accepted at all. In some contexts this may make sense, in others it may not. If a SET for a readOnly or permanent row is not accepted at all, then a 'wrongValue' error must be returned. " DEFVAL { nonVolatile } ::= { usmUserEntry 12 }
usmUserStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "The status of this conceptual row.
usmuserstatus object-type構文rowstatus max-access read-createステータス現在の説明 "この概念的行のステータス。
Until instances of all corresponding columns are appropriately configured, the value of the corresponding instance of the usmUserStatus column is 'notReady'.
対応するすべての列のインスタンスが適切に構成されるまで、Usmuserstatus列の対応するインスタンスの値は「準備ができていない」です。
In particular, a newly created row for a user who employs authentication, cannot be made active until the corresponding usmUserCloneFrom and usmUserAuthKeyChange have been set.
特に、認証を採用するユーザー向けに新しく作成された行は、対応するUsmuserclonefromとUsmuserauthkeyChangeが設定されるまでアクティブにすることはできません。
Further, a newly created row for a user who also employs privacy, cannot be made active until the usmUserPrivKeyChange has been set.
さらに、プライバシーを採用しているユーザー向けに新しく作成された行は、UsmuserPrivkeyChangeが設定されるまでアクティブにすることはできません。
The RowStatus TC [RFC2579] requires that this DESCRIPTION clause states under which circumstances other objects in this row can be modified:
RowStatus TC [RFC2579]では、この説明条項が、この行の他のオブジェクトを変更できる状況に基づいて、次のように述べていることが必要です。
The value of this object has no effect on whether other objects in this conceptual row can be modified, except for usmUserOwnAuthKeyChange and usmUserOwnPrivKeyChange. For these 2 objects, the value of usmUserStatus MUST be active. " ::= { usmUserEntry 13 }
-- Conformance Information *******************************************
usmMIBCompliances OBJECT IDENTIFIER ::= { usmMIBConformance 1 } usmMIBGroups OBJECT IDENTIFIER ::= { usmMIBConformance 2 }
-- Compliance statements
- コンプライアンスステートメント
usmMIBCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "The compliance statement for SNMP engines which implement the SNMP-USER-BASED-SM-MIB. "
usmmibcomplianceモジュールコンプライアンスステータス現在の説明「SNMPユーザーベースのSM-MIBを実装するSNMPエンジンのコンプライアンスステートメント。」
MODULE -- this module MANDATORY-GROUPS { usmMIBBasicGroup } OBJECT usmUserAuthProtocol MIN-ACCESS read-only DESCRIPTION "Write access is not required."
モジュール - このモジュールの必須グループ{usmmibbasicgroup}オブジェクトusmuserauthprotocol min-access読み取り専用説明「書き込みアクセスは不要です。」
OBJECT usmUserPrivProtocol MIN-ACCESS read-only DESCRIPTION "Write access is not required."
オブジェクトUSMUSERPRIVPROTOCOL MIN-ACCESS読み取り専用説明「書き込みアクセスは不要です。」
::= { usmMIBCompliances 1 }
-- Units of compliance usmMIBBasicGroup OBJECT-GROUP OBJECTS { usmStatsUnsupportedSecLevels, usmStatsNotInTimeWindows, usmStatsUnknownUserNames, usmStatsUnknownEngineIDs, usmStatsWrongDigests, usmStatsDecryptionErrors, usmUserSpinLock, usmUserSecurityName, usmUserCloneFrom, usmUserAuthProtocol, usmUserAuthKeyChange, usmUserOwnAuthKeyChange, usmUserPrivProtocol, usmUserPrivKeyChange, usmUserOwnPrivKeyChange, usmUserPublic, usmUserStorageType, usmUserStatus } STATUS current DESCRIPTION "A collection of objects providing for configuration of an SNMP engine which implements the SNMP User-based Security Model. " ::= { usmMIBGroups 1 }
END6. HMAC-MD5-96 Authentication Protocol
終了6。HMAC-MD5-96認証プロトコル
This section describes the HMAC-MD5-96 authentication protocol. This authentication protocol is the first defined for the User-based Security Model. It uses MD5 hash-function which is described in [MD5], in HMAC mode described in [RFC2104], truncating the output to 96 bits.
このセクションでは、HMAC-MD5-96認証プロトコルについて説明します。この認証プロトコルは、ユーザーベースのセキュリティモデルに対して最初に定義されています。[RFC2104]で説明されているHMACモードで[MD5]で説明されているMD5ハッシュ機能を使用し、出力を96ビットに切り捨てます。
This protocol is identified by usmHMACMD5AuthProtocol.
このプロトコルは、USMHMACMD5AUTHPROTOCOLによって識別されます。
Over time, other authentication protocols may be defined either as a replacement of this protocol or in addition to this protocol.
時間が経つにつれて、他の認証プロトコルは、このプロトコルの置換として、またはこのプロトコルに加えて定義される場合があります。
- In support of data integrity, a message digest algorithm is required. A digest is calculated over an appropriate portion of an SNMP message and included as part of the message sent to the recipient.
- データの整合性をサポートするには、メッセージダイジェストアルゴリズムが必要です。ダイジェストは、SNMPメッセージの適切な部分で計算され、受信者に送信されたメッセージの一部として含まれます。
- In support of data origin authentication and data integrity, a secret value is prepended to SNMP message prior to computing the digest; the calculated digest is partially inserted into the SNMP message prior to transmission, and the prepended value is not transmitted. The secret value is shared by all SNMP engines authorized to originate messages on behalf of the appropriate user.
- データ起源の認証とデータの整合性をサポートするために、秘密の値は、ダイジェストを計算する前にSNMPメッセージに加えられます。計算されたダイジェストは、送信前にSNMPメッセージに部分的に挿入され、準備された値は送信されません。Secret Valueは、適切なユーザーに代わってメッセージを発信することが許可されたすべてのSNMPエンジンによって共有されます。
The Digest Authentication Mechanism defined in this memo provides for:
このメモで定義されているダイジェスト認証メカニズムは、次のことを提供します。
- verification of the integrity of a received message, i.e., the message received is the message sent.
- 受信したメッセージの完全性の検証、つまり、受信したメッセージは送信されたメッセージです。
The integrity of the message is protected by computing a digest over an appropriate portion of the message. The digest is computed by the originator of the message, transmitted with the message, and verified by the recipient of the message.
メッセージの整合性は、メッセージの適切な部分でダイジェストを計算することにより保護されます。ダイジェストは、メッセージの発信者によって計算され、メッセージが送信され、メッセージの受信者によって検証されます。
- verification of the user on whose behalf the message was generated.
- メッセージが生成されたユーザーの検証。
A secret value known only to SNMP engines authorized to generate messages on behalf of a user is used in HMAC mode (see [RFC2104]). It also recommends the hash-function output used as Message Authentication Code, to be truncated.
ユーザーに代わってメッセージを生成することを許可されたSNMPエンジンのみに知られている秘密の値は、HMACモードで使用されます([RFC2104]を参照)。また、メッセージ認証コードとして使用されるハッシュ関数出力を切り捨てることも推奨しています。
This protocol uses the MD5 [MD5] message digest algorithm. A 128-bit MD5 digest is calculated in a special (HMAC) way over the designated portion of an SNMP message and the first 96 bits of this digest is included as part of the message sent to the recipient. The size of the digest carried in a message is 12 octets. The size of the private authentication key (the secret) is 16 octets. For the details see section 6.3.
このプロトコルでは、MD5 [MD5]メッセージダイジェストアルゴリズムを使用します。128ビットのMD5ダイジェストは、SNMPメッセージの指定部分上の特別な(HMAC)方法で計算され、このダイジェストの最初の96ビットは、受信者に送信されたメッセージの一部として含まれています。メッセージに含まれるダイジェストのサイズは12オクテットです。プライベート認証キー(秘密)のサイズは16オクテットです。詳細については、セクション6.3を参照してください。
This section contains definitions required to realize the authentication module defined in this section of this memo.
このセクションには、このメモのこのセクションで定義されている認証モジュールを実現するために必要な定義が含まれています。
Authentication using this authentication protocol makes use of a defined set of userNames. For any user on whose behalf a message must be authenticated at a particular SNMP engine, that SNMP engine must have knowledge of that user. An SNMP engine that wishes to communicate with another SNMP engine must also have knowledge of a user known to that engine, including knowledge of the applicable attributes of that user.
この認証プロトコルを使用した認証は、定義されたユーザー名のセットを使用します。メッセージを特定のSNMPエンジンで認証する必要があるユーザーの場合、そのSNMPエンジンはそのユーザーの知識を持っている必要があります。別のSNMPエンジンと通信したいSNMPエンジンは、そのユーザーの該当する属性の知識を含む、そのエンジンに知られているユーザーの知識も必要です。
A user and its attributes are defined as follows:
ユーザーとその属性は、次のように定義されます。
<userName> A string representing the name of the user. <authKey> A user's secret key to be used when calculating a digest. It MUST be 16 octets long for MD5.
<username>ユーザーの名前を表す文字列。<AuthKey>ダイジェストを計算するときに使用されるユーザーの秘密の鍵。MD5では16オクテットの長さでなければなりません。
The msgAuthoritativeEngineID value contained in an authenticated message specifies the authoritative SNMP engine for that particular message (see the definition of SnmpEngineID in the SNMP Architecture document [RFC2571]).
認証されたメッセージに含まれるMSGAuthoritativeEngineID値は、その特定のメッセージの権威あるSNMPエンジンを指定します(SNMPアーキテクチャドキュメント[RFC2571]のSNMPENGINEIDの定義を参照)。
The user's (private) authentication key is normally different at each authoritative SNMP engine and so the snmpEngineID is used to select the proper key for the authentication process.
ユーザーの(プライベート)認証キーは通常、各権威あるSNMPエンジンで異なるため、SNMPengineIDは認証プロセスの適切なキーを選択するために使用されます。
Messages using this authentication protocol carry a msgAuthenticationParameters field as part of the msgSecurityParameters. For this protocol, the msgAuthenticationParameters field is the serialized OCTET STRING representing the first 12 octets of the HMAC-MD5-96 output done over the wholeMsg.
この認証プロトコルを使用したメッセージは、MSGSecurityParametersの一部としてMSGAuthenticationParametersフィールドを保持します。このプロトコルでは、MSGAuthenticationParametersフィールドは、wholemsgで行われたHMAC-MD5-96出力の最初の12オクテットを表すシリアル化されたオクテット文字列です。
The digest is calculated over the wholeMsg so if a message is authenticated, that also means that all the fields in the message are intact and have not been tampered with.
ダイジェストはwholemsgを介して計算されるため、メッセージが認証されている場合、メッセージ内のすべてのフィールドが無傷であり、改ざんされていないことも意味します。
This section describes the inputs and outputs that the HMAC-MD5-96 Authentication module expects and produces when the User-based Security module calls the HMAC-MD5-96 Authentication module for services.
このセクションでは、ユーザーベースのセキュリティモジュールがサービス用のHMAC-MD5-96認証モジュールを呼び出すときにHMAC-MD5-96認証モジュールが予想および生成する入力と出力について説明します。
The HMAC-MD5-96 authentication protocol assumes that the selection of the authKey is done by the caller and that the caller passes the secret key to be used.
HMAC-MD5-96認証プロトコルは、AuthKeyの選択が発信者によって行われ、発信者が使用されるシークレットキーを通過することを前提としています。
Upon completion the authentication module returns statusInformation and, if the message digest was correctly calculated, the wholeMsg with the digest inserted at the proper place. The abstract service primitive is:
完了すると、認証モジュールがStatusInformationを返し、メッセージが正しく計算された場合、ダイジェストが適切な場所に挿入されたwholemsgが挿入されます。抽象サービスプリミティブは次のとおりです。
statusInformation = -- success or failure authenticateOutgoingMsg( IN authKey -- secret key for authentication IN wholeMsg -- unauthenticated complete message OUT authenticatedWholeMsg -- complete authenticated message )
The abstract data elements are:
抽象データ要素は次のとおりです。
statusInformation An indication of whether the authentication process was successful. If not it is an indication of the problem. authKey The secret key to be used by the authentication algorithm. The length of this key MUST be 16 octets. wholeMsg The message to be authenticated. authenticatedWholeMsg The authenticated message (including inserted digest) on output.
ステータス情報認証プロセスが成功したかどうかを示しています。そうでない場合は、問題の兆候です。認証アルゴリズムで使用される秘密の鍵。このキーの長さは16オクテットでなければなりません。認証されるメッセージをwholemsg。AuthenticatedWholeMSG出力で認証されたメッセージ(挿入されたダイジェストを含む)。
Note, that authParameters field is filled by the authentication module and this module and this field should be already present in the wholeMsg before the Message Authentication Code (MAC) is generated.
AuthParametersフィールドは認証モジュールとこのモジュールによって満たされており、このフィールドはメッセージ認証コード(MAC)が生成される前に既にwholemsgに存在する必要があります。
The HMAC-MD5-96 authentication protocol assumes that the selection of the authKey is done by the caller and that the caller passes the secret key to be used.
HMAC-MD5-96認証プロトコルは、AuthKeyの選択が発信者によって行われ、発信者が使用されるシークレットキーを通過することを前提としています。
Upon completion the authentication module returns statusInformation and, if the message digest was correctly calculated, the wholeMsg as it was processed. The abstract service primitive is:
完了すると、認証モジュールはStatusInformationを返し、メッセージが正しく計算された場合、処理されたときのwholemsg。抽象サービスプリミティブは次のとおりです。
statusInformation = -- success or failure authenticateIncomingMsg( IN authKey -- secret key for authentication IN authParameters -- as received on the wire IN wholeMsg -- as received on the wire OUT authenticatedWholeMsg -- complete authenticated message )
The abstract data elements are:
抽象データ要素は次のとおりです。
statusInformation An indication of whether the authentication process was successful. If not it is an indication of the problem. authKey The secret key to be used by the authentication algorithm. The length of this key MUST be 16 octets. authParameters The authParameters from the incoming message. wholeMsg The message to be authenticated on input and the authenticated message on output. authenticatedWholeMsg The whole message after the authentication check is complete.
ステータス情報認証プロセスが成功したかどうかを示しています。そうでない場合は、問題の兆候です。認証アルゴリズムで使用される秘密の鍵。このキーの長さは16オクテットでなければなりません。AuthParameters authparametersは、着信メッセージから。入力で認証されるメッセージと出力で認証されたメッセージをwholemsgします。認証チェックが完了した後、メッセージ全体を認証しました。
This section describes the procedures for the HMAC-MD5-96 authentication protocol.
このセクションでは、HMAC-MD5-96認証プロトコルの手順について説明します。
This section describes the procedure followed by an SNMP engine whenever it must authenticate an outgoing message using the usmHMACMD5AuthProtocol.
このセクションでは、USMHMACMD5AUTHPROTOCOLを使用して発信メッセージを認証する必要がある場合はいつでも、SNMPエンジンが続く手順について説明します。
1) The msgAuthenticationParameters field is set to the serialization, according to the rules in [RFC1906], of an OCTET STRING containing 12 zero octets.
1) MSGAuthenticationParametersフィールドは、12ゼロオクテットを含むオクテット文字列の[RFC1906]のルールに従って、シリアル化に設定されています。
2) From the secret authKey, two keys K1 and K2 are derived:
2) Secret AuthKeyから、2つのキーK1とK2が導出されます。
a) extend the authKey to 64 octets by appending 48 zero octets; save it as extendedAuthKey b) obtain IPAD by replicating the octet 0x36 64 times; c) obtain K1 by XORing extendedAuthKey with IPAD; d) obtain OPAD by replicating the octet 0x5C 64 times; e) obtain K2 by XORing extendedAuthKey with OPAD.
3) Prepend K1 to the wholeMsg and calculate MD5 digest over it according to [MD5].
3) [MD5]に従って、K1をwholemsgにプリフェンドし、その上にMD5ダイジェストを計算します。
4) Prepend K2 to the result of the step 4 and calculate MD5 digest over it according to [MD5]. Take the first 12 octets of the final digest - this is Message Authentication Code (MAC).
4) [MD5]に従って、ステップ4の結果にK2をステップ4の結果に加え、その上にMD5ダイジェストを計算します。最終ダイジェストの最初の12オクテットを取ります - これはメッセージ認証コード(MAC)です。
5) Replace the msgAuthenticationParameters field with MAC obtained in the step 4.
5) MSGAuthenticationParametersフィールドを、ステップ4で取得したMACに置き換えます。
6) The authenticatedWholeMsg is then returned to the caller together with statusInformation indicating success.
6) その後、認証されたwholemsgは、成功を示すステータス情報と一緒に発信者に返されます。
This section describes the procedure followed by an SNMP engine whenever it must authenticate an incoming message using the usmHMACMD5AuthProtocol.
このセクションでは、USMHMACMD5AUTHPROTOCOLを使用して着信メッセージを認証する必要がある場合はいつでも、SNMPエンジンが続く手順について説明します。
1) If the digest received in the msgAuthenticationParameters field is not 12 octets long, then an failure and an errorIndication (authenticationError) is returned to the calling module.
1) MSGAuthenticationParametersフィールドで受信したダイジェストが12オクテットの長さでない場合、障害とエラーインド(AuthenticationError)が呼び出しモジュールに返されます。
2) The MAC received in the msgAuthenticationParameters field is saved.
2) MSGAuthenticationParametersフィールドで受信したMacは保存されます。
3) The digest in the msgAuthenticationParameters field is replaced by the 12 zero octets.
3) MSGAuthenticationParametersフィールドのダイジェストは、12ゼロオクテットに置き換えられます。
4) From the secret authKey, two keys K1 and K2 are derived:
4) Secret AuthKeyから、2つのキーK1とK2が導出されます。
a) extend the authKey to 64 octets by appending 48 zero octets; save it as extendedAuthKey b) obtain IPAD by replicating the octet 0x36 64 times; c) obtain K1 by XORing extendedAuthKey with IPAD; d) obtain OPAD by replicating the octet 0x5C 64 times; e) obtain K2 by XORing extendedAuthKey with OPAD.
5) The MAC is calculated over the wholeMsg:
5) Macは、wholemsgを介して計算されます。
a) prepend K1 to the wholeMsg and calculate the MD5 digest over it; b) prepend K2 to the result of step 5.a and calculate the MD5 digest over it; c) first 12 octets of the result of step 5.b is the MAC.
a) k1をwholemsgにプリデンドし、その上にMD5ダイジェストを計算します。b)k2をステップ5.aの結果にプリデントし、その上にMD5ダイジェストを計算します。c)ステップ5.bの結果の最初の12オクテットはMacです。
The msgAuthenticationParameters field is replaced with the MAC value that was saved in step 2.
MSGAuthenticationParametersフィールドは、ステップ2で保存されたMac値に置き換えられます。
6) Then the newly calculated MAC is compared with the MAC saved in step 2. If they do not match, then an failure and an errorIndication (authenticationFailure) is returned to the calling module.
6) 次に、新しく計算されたMACがステップ2で保存されたMACと比較されます。それらが一致しない場合、障害とエラーインド(AuthenticationFailure)が呼び出しモジュールに返されます。
7) The authenticatedWholeMsg and statusInformation indicating success are then returned to the caller.
7) その後、成功を示す認証されたwholemsgとステータス情報が発信者に返されます。
This section describes the HMAC-SHA-96 authentication protocol. This protocol uses the SHA hash-function which is described in [SHA-NIST], in HMAC mode described in [RFC2104], truncating the output to 96 bits.
このセクションでは、HMAC-SHA-96認証プロトコルについて説明します。このプロトコルは、[RFC2104]で説明されているHMACモードで[sha-nist]で説明されているshaハッシュ機能を使用し、出力を96ビットに切り捨てます。
This protocol is identified by usmHMACSHAAuthProtocol.
このプロトコルは、usmhmacshaauthprotocolによって識別されます。
Over time, other authentication protocols may be defined either as a replacement of this protocol or in addition to this protocol.
時間が経つにつれて、他の認証プロトコルは、このプロトコルの置換として、またはこのプロトコルに加えて定義される場合があります。
- In support of data integrity, a message digest algorithm is required. A digest is calculated over an appropriate portion of an SNMP message and included as part of the message sent to the recipient.
- データの整合性をサポートするには、メッセージダイジェストアルゴリズムが必要です。ダイジェストは、SNMPメッセージの適切な部分で計算され、受信者に送信されたメッセージの一部として含まれます。
- In support of data origin authentication and data integrity, a secret value is prepended to the SNMP message prior to computing the digest; the calculated digest is then partially inserted into the message prior to transmission. The prepended secret is not transmitted. The secret value is shared by all SNMP engines authorized to originate messages on behalf of the appropriate user.
- データ起源の認証とデータの整合性をサポートするために、秘密の値は、ダイジェストを計算する前にSNMPメッセージに加えられます。計算されたダイジェストは、送信前にメッセージに部分的に挿入されます。準備された秘密は送信されません。Secret Valueは、適切なユーザーに代わってメッセージを発信することが許可されたすべてのSNMPエンジンによって共有されます。
The Digest Authentication Mechanism defined in this memo provides for:
このメモで定義されているダイジェスト認証メカニズムは、次のことを提供します。
- verification of the integrity of a received message, i.e., the the message received is the message sent.
- 受信したメッセージの完全性の検証、つまり、受信したメッセージは送信されたメッセージです。
The integrity of the message is protected by computing a digest over an appropriate portion of the message. The digest is computed by the originator of the message, transmitted with the message, and verified by the recipient of the message.
メッセージの整合性は、メッセージの適切な部分でダイジェストを計算することにより保護されます。ダイジェストは、メッセージの発信者によって計算され、メッセージが送信され、メッセージの受信者によって検証されます。
- verification of the user on whose behalf the message was generated.
- メッセージが生成されたユーザーの検証。
A secret value known only to SNMP engines authorized to generate messages on behalf of a user is used in HMAC mode (see [RFC2104]). It also recommends the hash-function output used as Message Authentication Code, to be truncated.
ユーザーに代わってメッセージを生成することを許可されたSNMPエンジンのみに知られている秘密の値は、HMACモードで使用されます([RFC2104]を参照)。また、メッセージ認証コードとして使用されるハッシュ関数出力を切り捨てることも推奨しています。
This mechanism uses the SHA [SHA-NIST] message digest algorithm. A 160-bit SHA digest is calculated in a special (HMAC) way over the designated portion of an SNMP message and the first 96 bits of this digest is included as part of the message sent to the recipient. The size of the digest carried in a message is 12 octets. The size of the private authentication key (the secret) is 20 octets. For the details see section 7.3.
このメカニズムは、Sha [sha-nist]メッセージダイジェストアルゴリズムを使用します。160ビットのSHAダイジェストは、SNMPメッセージの指定部分上の特別な(HMAC)方法で計算され、このダイジェストの最初の96ビットは、受信者に送信されたメッセージの一部として含まれています。メッセージに含まれるダイジェストのサイズは12オクテットです。プライベート認証キー(秘密)のサイズは20オクテットです。詳細については、セクション7.3を参照してください。
This section contains definitions required to realize the authentication module defined in this section of this memo.
このセクションには、このメモのこのセクションで定義されている認証モジュールを実現するために必要な定義が含まれています。
Authentication using this authentication protocol makes use of a defined set of userNames. For any user on whose behalf a message must be authenticated at a particular SNMP engine, that SNMP engine must have knowledge of that user. An SNMP engine that wishes to communicate with another SNMP engine must also have knowledge of a user known to that engine, including knowledge of the applicable attributes of that user.
この認証プロトコルを使用した認証は、定義されたユーザー名のセットを使用します。メッセージを特定のSNMPエンジンで認証する必要があるユーザーの場合、そのSNMPエンジンはそのユーザーの知識を持っている必要があります。別のSNMPエンジンと通信したいSNMPエンジンは、そのユーザーの該当する属性の知識を含む、そのエンジンに知られているユーザーの知識も必要です。
A user and its attributes are defined as follows:
ユーザーとその属性は、次のように定義されます。
<userName> A string representing the name of the user. <authKey> A user's secret key to be used when calculating a digest. It MUST be 20 octets long for SHA.
<username>ユーザーの名前を表す文字列。<AuthKey>ダイジェストを計算するときに使用されるユーザーの秘密の鍵。Shaにとっては20オクテットの長さでなければなりません。
The msgAuthoritativeEngineID value contained in an authenticated message specifies the authoritative SNMP engine for that particular message (see the definition of SnmpEngineID in the SNMP Architecture document [RFC2571]).
認証されたメッセージに含まれるMSGAuthoritativeEngineID値は、その特定のメッセージの権威あるSNMPエンジンを指定します(SNMPアーキテクチャドキュメント[RFC2571]のSNMPENGINEIDの定義を参照)。
The user's (private) authentication key is normally different at each authoritative SNMP engine and so the snmpEngineID is used to select the proper key for the authentication process.
ユーザーの(プライベート)認証キーは通常、各権威あるSNMPエンジンで異なるため、SNMPengineIDは認証プロセスの適切なキーを選択するために使用されます。
Messages using this authentication protocol carry a msgAuthenticationParameters field as part of the msgSecurityParameters. For this protocol, the msgAuthenticationParameters field is the serialized OCTET STRING representing the first 12 octets of HMAC-SHA-96 output done over the wholeMsg.
この認証プロトコルを使用したメッセージは、MSGSecurityParametersの一部としてMSGAuthenticationParametersフィールドを保持します。このプロトコルでは、MSGAuthenticationParametersフィールドは、wholemsgで行われたHMAC-SHA-96出力の最初の12オクテットを表すシリアル化されたオクテット文字列です。
The digest is calculated over the wholeMsg so if a message is authenticated, that also means that all the fields in the message are intact and have not been tampered with.
ダイジェストはwholemsgを介して計算されるため、メッセージが認証されている場合、メッセージ内のすべてのフィールドが無傷であり、改ざんされていないことも意味します。
This section describes the inputs and outputs that the HMAC-SHA-96 Authentication module expects and produces when the User-based Security module calls the HMAC-SHA-96 Authentication module for services.
このセクションでは、ユーザーベースのセキュリティモジュールがサービス用のHMAC-SHA-96認証モジュールを呼び出すときにHMAC-SHA-96認証モジュールが期待および生成する入力と出力について説明します。
HMAC-SHA-96 authentication protocol assumes that the selection of the authKey is done by the caller and that the caller passes the secret key to be used.
HMAC-SHA-96認証プロトコルは、AuthKeyの選択が発信者によって行われ、発信者が使用される秘密の鍵を通過することを想定しています。
Upon completion the authentication module returns statusInformation and, if the message digest was correctly calculated, the wholeMsg with the digest inserted at the proper place. The abstract service primitive is:
完了すると、認証モジュールがStatusInformationを返し、メッセージが正しく計算された場合、ダイジェストが適切な場所に挿入されたwholemsgが挿入されます。抽象サービスプリミティブは次のとおりです。
statusInformation = -- success or failure authenticateOutgoingMsg( IN authKey -- secret key for authentication IN wholeMsg -- unauthenticated complete message OUT authenticatedWholeMsg -- complete authenticated message )
The abstract data elements are:
抽象データ要素は次のとおりです。
statusInformation An indication of whether the authentication process was successful. If not it is an indication of the problem. authKey The secret key to be used by the authentication algorithm. The length of this key MUST be 20 octets. wholeMsg The message to be authenticated. authenticatedWholeMsg The authenticated message (including inserted digest) on output.
ステータス情報認証プロセスが成功したかどうかを示しています。そうでない場合は、問題の兆候です。認証アルゴリズムで使用される秘密の鍵。このキーの長さは20オクテットでなければなりません。認証されるメッセージをwholemsg。AuthenticatedWholeMSG出力で認証されたメッセージ(挿入されたダイジェストを含む)。
Note, that authParameters field is filled by the authentication module and this field should be already present in the wholeMsg before the Message Authentication Code (MAC) is generated.
AuthParametersフィールドは認証モジュールによって満たされており、メッセージ認証コード(MAC)が生成される前に、このフィールドはすでにwholemsgに存在する必要があります。
HMAC-SHA-96 authentication protocol assumes that the selection of the authKey is done by the caller and that the caller passes the secret key to be used.
HMAC-SHA-96認証プロトコルは、AuthKeyの選択が発信者によって行われ、発信者が使用される秘密の鍵を通過することを想定しています。
Upon completion the authentication module returns statusInformation and, if the message digest was correctly calculated, the wholeMsg as it was processed. The abstract service primitive is:
完了すると、認証モジュールはStatusInformationを返し、メッセージが正しく計算された場合、処理されたときのwholemsg。抽象サービスプリミティブは次のとおりです。
statusInformation = -- success or failure authenticateIncomingMsg( IN authKey -- secret key for authentication IN authParameters -- as received on the wire IN wholeMsg -- as received on the wire OUT authenticatedWholeMsg -- complete authenticated message )
The abstract data elements are:
抽象データ要素は次のとおりです。
statusInformation An indication of whether the authentication process was successful. If not it is an indication of the problem. authKey The secret key to be used by the authentication algorithm. The length of this key MUST be 20 octets. authParameters The authParameters from the incoming message. wholeMsg The message to be authenticated on input and the authenticated message on output. authenticatedWholeMsg The whole message after the authentication check is complete.
ステータス情報認証プロセスが成功したかどうかを示しています。そうでない場合は、問題の兆候です。認証アルゴリズムで使用される秘密の鍵。このキーの長さは20オクテットでなければなりません。AuthParameters authparametersは、着信メッセージから。入力で認証されるメッセージと出力で認証されたメッセージをwholemsgします。認証チェックが完了した後、メッセージ全体を認証しました。
This section describes the procedures for the HMAC-SHA-96 authentication protocol.
このセクションでは、HMAC-SHA-96認証プロトコルの手順について説明します。
This section describes the procedure followed by an SNMP engine whenever it must authenticate an outgoing message using the usmHMACSHAAuthProtocol.
このセクションでは、USMHMACSHAAUTHPROTOCOLを使用して発信メッセージを認証する必要がある場合はいつでも、SNMPエンジンが続く手順について説明します。
1) The msgAuthenticationParameters field is set to the serialization, according to the rules in [RFC1906], of an OCTET STRING containing 12 zero octets.
1) MSGAuthenticationParametersフィールドは、12ゼロオクテットを含むオクテット文字列の[RFC1906]のルールに従って、シリアル化に設定されています。
2) From the secret authKey, two keys K1 and K2 are derived:
2) Secret AuthKeyから、2つのキーK1とK2が導出されます。
a) extend the authKey to 64 octets by appending 44 zero octets; save it as extendedAuthKey b) obtain IPAD by replicating the octet 0x36 64 times; c) obtain K1 by XORing extendedAuthKey with IPAD; d) obtain OPAD by replicating the octet 0x5C 64 times; e) obtain K2 by XORing extendedAuthKey with OPAD.
3) Prepend K1 to the wholeMsg and calculate the SHA digest over it according to [SHA-NIST].
3) k1をwholemsgに加え、[sha-nist]に従ってその上のshaダイジェストを計算します。
4) Prepend K2 to the result of the step 4 and calculate SHA digest over it according to [SHA-NIST]. Take the first 12 octets of the final digest - this is Message Authentication Code (MAC).
4) ステップ4の結果にk2をプレイティングし、[sha-nist]に従ってその上にShaダイジェストを計算します。最終ダイジェストの最初の12オクテットを取ります - これはメッセージ認証コード(MAC)です。
5) Replace the msgAuthenticationParameters field with MAC obtained in the step 5.
5) MSGAuthenticationParametersフィールドを、ステップ5で取得したMACに置き換えます。
6) The authenticatedWholeMsg is then returned to the caller together with statusInformation indicating success.
6) その後、認証されたwholemsgは、成功を示すステータス情報と一緒に発信者に返されます。
This section describes the procedure followed by an SNMP engine whenever it must authenticate an incoming message using the usmHMACSHAAuthProtocol.
このセクションでは、USMHMACSHAAUTHPROTOCOLを使用して着信メッセージを認証する必要がある場合はいつでも、SNMPエンジンが続く手順について説明します。
1) If the digest received in the msgAuthenticationParameters field is not 12 octets long, then an failure and an errorIndication (authenticationError) is returned to the calling module.
1) MSGAuthenticationParametersフィールドで受信したダイジェストが12オクテットの長さでない場合、障害とエラーインド(AuthenticationError)が呼び出しモジュールに返されます。
2) The MAC received in the msgAuthenticationParameters field is saved.
2) MSGAuthenticationParametersフィールドで受信したMacは保存されます。
3) The digest in the msgAuthenticationParameters field is replaced by the 12 zero octets.
3) MSGAuthenticationParametersフィールドのダイジェストは、12ゼロオクテットに置き換えられます。
4) From the secret authKey, two keys K1 and K2 are derived:
4) Secret AuthKeyから、2つのキーK1とK2が導出されます。
a) extend the authKey to 64 octets by appending 44 zero octets; save it as extendedAuthKey b) obtain IPAD by replicating the octet 0x36 64 times; c) obtain K1 by XORing extendedAuthKey with IPAD; d) obtain OPAD by replicating the octet 0x5C 64 times; e) obtain K2 by XORing extendedAuthKey with OPAD.
5) The MAC is calculated over the wholeMsg:
5) Macは、wholemsgを介して計算されます。
a) prepend K1 to the wholeMsg and calculate the SHA digest over it; b) prepend K2 to the result of step 5.a and calculate the SHA digest over it; c) first 12 octets of the result of step 5.b is the MAC.
a) k1をwholemsgにプリデンドし、その上にshaダイジェストを計算します。b)ステップ5.aの結果にk2をプレイエンドし、その上のshaダイジェストを計算します。c)ステップ5.bの結果の最初の12オクテットはMacです。
The msgAuthenticationParameters field is replaced with the MAC value that was saved in step 2.
MSGAuthenticationParametersフィールドは、ステップ2で保存されたMac値に置き換えられます。
6) The the newly calculated MAC is compared with the MAC saved in step 2. If they do not match, then a failure and an errorIndication (authenticationFailure) are returned to the calling module.
6) 新しく計算されたMacは、ステップ2で保存されたMacと比較されます。それらが一致しない場合、障害とエラーインド(AuthenticationFailure)が呼び出しモジュールに返されます。
7) The authenticatedWholeMsg and statusInformation indicating success are then returned to the caller.
7) その後、成功を示す認証されたwholemsgとステータス情報が発信者に返されます。
This section describes the CBC-DES Symmetric Encryption Protocol. This protocol is the first privacy protocol defined for the User-based Security Model.
このセクションでは、CBC-DES対称暗号化プロトコルについて説明します。このプロトコルは、ユーザーベースのセキュリティモデルに対して定義された最初のプライバシープロトコルです。
This protocol is identified by usmDESPrivProtocol.
このプロトコルは、usmdesprivprotocolによって識別されます。
Over time, other privacy protocols may be defined either as a replacement of this protocol or in addition to this protocol.
時間が経つにつれて、他のプライバシープロトコルは、このプロトコルの置き換えとして、またはこのプロトコルに加えて定義される場合があります。
- In support of data confidentiality, an encryption algorithm is required. An appropriate portion of the message is encrypted prior to being transmitted. The User-based Security Model specifies that the scopedPDU is the portion of the message that needs to be encrypted.
- データの機密性をサポートするには、暗号化アルゴリズムが必要です。メッセージの適切な部分は、送信される前に暗号化されます。ユーザーベースのセキュリティモデルは、ScopedPDUが暗号化する必要があるメッセージの部分であることを指定します。
- A secret value in combination with a timeliness value is used to create the en/decryption key and the initialization vector. The secret value is shared by all SNMP engines authorized to originate messages on behalf of the appropriate user.
- 適時値と組み合わせた秘密の値を使用して、EN/復号化キーと初期化ベクトルを作成します。Secret Valueは、適切なユーザーに代わってメッセージを発信することが許可されたすべてのSNMPエンジンによって共有されます。
The Symmetric Encryption Protocol defined in this memo provides support for data confidentiality. The designated portion of an SNMP message is encrypted and included as part of the message sent to the recipient.
このメモで定義されている対称暗号化プロトコルは、データの機密性をサポートします。SNMPメッセージの指定部分は暗号化され、受信者に送信されたメッセージの一部として含まれています。
Two organizations have published specifications defining the DES: the National Institute of Standards and Technology (NIST) [DES-NIST] and the American National Standards Institute [DES-ANSI]. There is a companion Modes of Operation specification for each definition ([DESO-NIST] and [DESO-ANSI], respectively).
2つの組織がDESを定義する仕様を発表しています。国立標準技術研究所(NIST)[DES-NIST]とAmerican National Standards Institute [Des-Ansi]。各定義([Deso-Nist]と[Deso-Ansi])には、操作仕様のコンパニオンモードがあります。
The NIST has published three additional documents that implementors may find useful.
NISTは、実装者が有用であると思われる3つの追加のドキュメントを公開しています。
- There is a document with guidelines for implementing and using the DES, including functional specifications for the DES and its modes of operation [DESG-NIST].
- DESおよびその操作モードの機能仕様[DESG-Nist]など、DESを実装および使用するためのガイドラインを備えたドキュメントがあります。
- There is a specification of a validation test suite for the DES [DEST-NIST]. The suite is designed to test all aspects of the DES and is useful for pinpointing specific problems.
- DES [Dest-Nist]の検証テストスイートの仕様があります。スイートは、DESのすべての側面をテストするように設計されており、特定の問題を特定するのに役立ちます。
- There is a specification of a maintenance test for the DES [DESM-NIST]. The test utilizes a minimal amount of data and processing to test all components of the DES. It provides a simple yes-or-no indication of correct operation and is useful to run as part of an initialization step, e.g., when a computer re-boots.
- DES [DESM-NIST]のメンテナンステストの仕様があります。このテストでは、最小限のデータと処理を利用して、DESのすべてのコンポーネントをテストします。正しい操作の単純なYESまたはNO-NOの表示を提供し、コンピューターが再起動したときの初期化ステップの一部として実行するのに役立ちます。
8.1.1.1. DES key and Initialization Vector.
8.1.1.1. DESキーおよび初期化ベクトル。
The first 8 octets of the 16-octet secret (private privacy key) are used as a DES key. Since DES uses only 56 bits, the Least Significant Bit in each octet is disregarded.
16オクテットの秘密(プライベートプライバシーキー)の最初の8オクテットは、DESキーとして使用されます。DESは56ビットしか使用していないため、各オクテットで最も有意なビットは無視されます。
The Initialization Vector for encryption is obtained using the following procedure.
暗号化の初期化ベクトルは、次の手順を使用して取得されます。
The last 8 octets of the 16-octet secret (private privacy key) are used as pre-IV.
16オクテットの秘密(プライベートプライバシーキー)の最後の8オクテットは、IV以前として使用されます。
In order to ensure that the IV for two different packets encrypted by the same key, are not the same (i.e., the IV does not repeat) we need to "salt" the pre-IV with something unique per packet. An 8-octet string is used as the "salt". The concatenation of the generating SNMP engine's 32-bit snmpEngineBoots and a local 32-bit integer, that the encryption engine maintains, is input to the "salt". The 32-bit integer is initialized to an arbitrary value at boot time.
同じキーによって暗号化された2つの異なるパケットのIVが同じではないことを確認するために(つまり、IVは繰り返されません)、パケットごとにユニークなものでPre-IVを「塩」する必要があります。8-OCTET文字列は「塩」として使用されます。暗号化エンジンが維持する生成SNMPエンジンの32ビットSNMPENGINEBOUTSとローカル32ビット整数の連結は、「塩」に入力されます。32ビット整数は、ブート時に任意の値に初期化されます。
The 32-bit snmpEngineBoots is converted to the first 4 octets (Most Significant Byte first) of our "salt". The 32-bit integer is then converted to the last 4 octet (Most Significant Byte first) of our "salt". The resulting "salt" is then XOR-ed with the pre-IV to obtain the IV. The 8-octet "salt" is then put into the privParameters field encoded as an OCTET STRING. The "salt" integer is then modified. We recommend that it be incremented by one and wrap when it reaches the maximum value.
32ビットSNMPENGINEBOOTSは、「塩」の最初の4オクテット(最も重要なバイト)に変換されます。32ビット整数は、「塩」の最後の4オクテット(最も重要なバイト)に変換されます。結果として得られる「塩」は、IVを取得するためにPre-IVでXor-edされます。8オクテットの「塩」は、オクテット弦としてエンコードされたprivparametersフィールドに入れられます。次に、「塩」整数が変更されます。最大値に達したら、1つずつ増加してラップすることをお勧めします。
How exactly the value of the "salt" (and thus of the IV) varies, is an implementation issue, as long as the measures are taken to avoid producing a duplicate IV.
「塩」(したがってIVの)の価値がどの程度異なるかは、重複IVの生成を避けるための対策が講じられている限り、実装の問題です。
The "salt" must be placed in the privParameters field to enable the receiving entity to compute the correct IV and to decrypt the message.
「塩」をPrivParametersフィールドに配置して、受信エンティティが正しいIVを計算し、メッセージを解読できるようにする必要があります。
8.1.1.2. Data Encryption.
8.1.1.2. データ暗号化。
The data to be encrypted is treated as sequence of octets. Its length should be an integral multiple of 8 - and if it is not, the data is padded at the end as necessary. The actual pad value is irrelevant.
暗号化されるデータは、オクテットのシーケンスとして扱われます。その長さは8の積分倍でなければなりません - そして、そうでない場合、データは必要に応じて最後にパッドにされます。実際のパッド値は無関係です。
The data is encrypted in Cipher Block Chaining mode.
データは、暗号ブロックチェーンモードで暗号化されます。
The plaintext is divided into 64-bit blocks.
平文は64ビットブロックに分割されます。
The plaintext for each block is XOR-ed with the ciphertext of the previous block, the result is encrypted and the output of the encryption is the ciphertext for the block. This procedure is repeated until there are no more plaintext blocks.
各ブロックのプレーンテキストは、前のブロックの暗号文でXOR-EDであり、結果は暗号化され、暗号化の出力はブロックの暗号文です。この手順は、プレーンテキストブロックがなくなるまで繰り返されます。
For the very first block, the Initialization Vector is used instead of the ciphertext of the previous block.
最初のブロックでは、前のブロックの暗号文の代わりに初期化ベクトルが使用されます。
Before decryption, the encrypted data length is verified. If the length of the OCTET STRING to be decrypted is not an integral multiple of 8 octets, the decryption process is halted and an appropriate exception noted. When decrypting, the padding is ignored.
復号化の前に、暗号化されたデータ長が検証されます。復号化されるオクテット文字列の長さが8オクテットの積分倍ではない場合、復号化プロセスが停止し、適切な例外が記載されています。復号化すると、パディングは無視されます。
The first ciphertext block is decrypted, the decryption output is XOR-ed with the Initialization Vector, and the result is the first plaintext block.
最初の暗号文ブロックは復号化され、復号化出力は初期化ベクトルでXOR-EDで、結果は最初のプレーンテキストブロックです。
For each subsequent block, the ciphertext block is decrypted, the decryption output is XOR-ed with the previous ciphertext block and the result is the plaintext block.
後続のブロックごとに、暗号文ブロックが復号化され、復号化出力は前の暗号文ブロックでXOR-EDで、結果はプレーンテキストブロックです。
This section contains definitions required to realize the privacy module defined by this memo.
このセクションには、このメモで定義されたプライバシーモジュールを実現するために必要な定義が含まれています。
Data en/decryption using this Symmetric Encryption Protocol makes use of a defined set of userNames. For any user on whose behalf a message must be en/decrypted at a particular SNMP engine, that SNMP engine must have knowledge of that user. An SNMP engine that wishes to communicate with another SNMP engine must also have knowledge of a user known to that SNMP engine, including knowledge of the applicable attributes of that user.
この対称暗号化プロトコルを使用したデータEN/復号化により、定義されたユーザー名セットが使用されます。メッセージを特定のSNMPエンジンでen/decryptedする必要があるユーザーの場合、そのSNMPエンジンにはそのユーザーの知識が必要です。別のSNMPエンジンと通信したいSNMPエンジンは、そのユーザーの該当する属性の知識を含む、そのSNMPエンジンに知られているユーザーの知識も必要です。
A user and its attributes are defined as follows:
ユーザーとその属性は、次のように定義されます。
<userName> An octet string representing the name of the user.
<username>ユーザーの名前を表すオクテット文字列。
<privKey> A user's secret key to be used as input for the DES key and IV. The length of this key MUST be 16 octets.
<Privkey> DESキーとIVの入力として使用されるユーザーの秘密の鍵。このキーの長さは16オクテットでなければなりません。
The msgAuthoritativeEngineID value contained in an authenticated message specifies the authoritative SNMP engine for that particular message (see the definition of SnmpEngineID in the SNMP Architecture document [RFC2571]).
認証されたメッセージに含まれるMSGAuthoritativeEngineID値は、その特定のメッセージの権威あるSNMPエンジンを指定します(SNMPアーキテクチャドキュメント[RFC2571]のSNMPENGINEIDの定義を参照)。
The user's (private) privacy key is normally different at each authoritative SNMP engine and so the snmpEngineID is used to select the proper key for the en/decryption process.
ユーザーの(プライベート)プライバシーキーは通常、各権威あるSNMPエンジンで異なるため、SNMPengineIDはEN/復号化プロセスの適切なキーを選択するために使用されます。
Messages using this privacy protocol carry a msgPrivacyParameters field as part of the msgSecurityParameters. For this protocol, the msgPrivacyParameters field is the serialized OCTET STRING representing the "salt" that was used to create the IV.
このプライバシープロトコルを使用したメッセージは、MSGSecurityParametersの一部としてMSGPRIVACYPARAMETERSフィールドを保持します。このプロトコルでは、MSGPRIVACYPARAMETERSフィールドは、IVを作成するために使用された「塩」を表すシリアル化されたオクテット文字列です。
This section describes the inputs and outputs that the DES Privacy module expects and produces when the User-based Security module invokes the DES Privacy module for services.
このセクションでは、ユーザーベースのセキュリティモジュールがサービス用のDESプライバシーモジュールを呼び出すときにDESプライバシーモジュールが期待および生成する入力と出力について説明します。
This DES privacy protocol assumes that the selection of the privKey is done by the caller and that the caller passes the secret key to be used.
このDES Privacy Protocolは、Privkeyの選択が発信者によって行われ、発信者が使用される秘密の鍵を通過することを前提としています。
Upon completion the privacy module returns statusInformation and, if the encryption process was successful, the encryptedPDU and the msgPrivacyParameters encoded as an OCTET STRING. The abstract service primitive is:
完了すると、プライバシーモジュールはStatusInformationを返し、暗号化プロセスが成功した場合、暗号化されたPDUとMSGPRIVACYPARAMETERSがOctet Stringとしてエンコードされます。抽象サービスプリミティブは次のとおりです。
statusInformation = -- success of failure encryptData( IN encryptKey -- secret key for encryption IN dataToEncrypt -- data to encrypt (scopedPDU) OUT encryptedData -- encrypted data (encryptedPDU) OUT privParameters -- filled in by service provider )
The abstract data elements are:
抽象データ要素は次のとおりです。
statusInformation An indication of the success or failure of the encryption process. In case of failure, it is an indication of the error. encryptKey The secret key to be used by the encryption algorithm. The length of this key MUST be 16 octets. dataToEncrypt The data that must be encrypted. encryptedData The encrypted data upon successful completion. privParameters The privParameters encoded as an OCTET STRING.
ステータス情報暗号化プロセスの成功または失敗の兆候。障害の場合、それはエラーの兆候です。暗号化アルゴリズムで使用される秘密の鍵をencryptkey。このキーの長さは16オクテットでなければなりません。DatatoEncryptで暗号化する必要があるデータを使用します。暗号化されたデータは、正常に完了すると暗号化されたデータを暗号化しました。privParametersオクテット文字列としてエンコードされたprivparameters。
This DES privacy protocol assumes that the selection of the privKey is done by the caller and that the caller passes the secret key to be used.
このDES Privacy Protocolは、Privkeyの選択が発信者によって行われ、発信者が使用される秘密の鍵を通過することを前提としています。
Upon completion the privacy module returns statusInformation and, if the decryption process was successful, the scopedPDU in plain text. The abstract service primitive is:
完了すると、プライバシーモジュールはStatusInformationを返し、復号化プロセスが成功した場合、ScopedPDUはプレーンテキストになります。抽象サービスプリミティブは次のとおりです。
statusInformation = decryptData( IN decryptKey -- secret key for decryption IN privParameters -- as received on the wire IN encryptedData -- encrypted data (encryptedPDU) OUT decryptedData -- decrypted data (scopedPDU) )
The abstract data elements are:
抽象データ要素は次のとおりです。
statusInformation An indication whether the data was successfully decrypted and if not an indication of the error. decryptKey The secret key to be used by the decryption algorithm. The length of this key MUST be 16 octets. privParameters The "salt" to be used to calculate the IV.
StatusInformationデータが正常に復号化されたかどうか、およびエラーの兆候ではない場合は、表示されます。DecryptKey復号化アルゴリズムで使用する秘密の鍵。このキーの長さは16オクテットでなければなりません。privParameterは、IVを計算するために使用される「塩」を使用します。
encryptedData The data to be decrypted. decryptedData The decrypted data.
暗号化されるデータを復号化するデータ。DecryptedData復号化されたデータ。
8.3. Elements of Procedure.
8.3. 手順の要素。
This section describes the procedures for the DES privacy protocol.
このセクションでは、DESプライバシープロトコルの手順について説明します。
This section describes the procedure followed by an SNMP engine whenever it must encrypt part of an outgoing message using the usmDESPrivProtocol.
このセクションでは、USMDesprivProtocolを使用して発信メッセージの一部を暗号化する必要がある場合は、SNMPエンジンが続く手順について説明します。
1) The secret cryptKey is used to construct the DES encryption key, the "salt" and the DES pre-IV (from which the IV is computed as described in section 8.1.1.1).
1) Secret Cryptkeyは、DES暗号化キー、「塩」、およびDES PRE-IV(セクション8.1.1.1で説明されているように計算されます)を構築するために使用されます。
2) The privParameters field is set to the serialization according to the rules in [RFC1906] of an OCTET STRING representing the the "salt" string.
2) PrivParametersフィールドは、「塩」ストリングを表すオクテット文字列の[RFC1906]のルールに従ってシリアル化に設定されています。
3) The scopedPDU is encrypted (as described in section 8.1.1.2) and the encrypted data is serialized according to the rules in [RFC1906] as an OCTET STRING.
3) ScopedPDUは暗号化され(セクション8.1.1.2で説明されているように)、暗号化されたデータは、[RFC1906]のルールに従ってオクテット文字列としてシリアル化されます。
4) The serialized OCTET STRING representing the encrypted scopedPDU together with the privParameters and statusInformation indicating success is returned to the calling module.
4) 暗号化されたScopedPDUを表すシリアル化されたOctet文字列と、成功を示すPrivParametersとステータス情報が呼び出しモジュールに返されます。
This section describes the procedure followed by an SNMP engine whenever it must decrypt part of an incoming message using the usmDESPrivProtocol.
このセクションでは、USMDESPRIVProtoColを使用して着信メッセージの一部を解読する必要がある場合は、SNMPエンジンが続く手順について説明します。
1) If the privParameters field is not an 8-octet OCTET STRING, then an error indication (decryptionError) is returned to the calling module.
1) PrivParametersフィールドが8オクテットのOctet文字列でない場合、エラー表示(DecryptionError)が呼び出しモジュールに返されます。
2) The "salt" is extracted from the privParameters field.
2) 「塩」は、PrivParametersフィールドから抽出されます。
3) The secret cryptKey and the "salt" are then used to construct the DES decryption key and pre-IV (from which the IV is computed as described in section 8.1.1.1).
3) 秘密の暗号と「塩」を使用して、DES復号化キーとPre-IV(セクション8.1.1.1で説明されているようにIVが計算されます)を構築します。
4) The encryptedPDU is then decrypted (as described in section 8.1.1.3).
4) 次に、暗号化されたPDUが復号化されます(セクション8.1.1.3で説明されています)。
5) If the encryptedPDU cannot be decrypted, then an error indication (decryptionError) is returned to the calling module.
5) 暗号化されたPDUを解読できない場合、エラー表示(DecryptionError)が呼び出しモジュールに返されます。
6) The decrypted scopedPDU and statusInformation indicating success are returned to the calling module.
6) 成功を示す復号化されたscopedPDUとステータスインフォーマンは、呼び出しモジュールに返されます。
The IETF takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on the IETF's procedures with respect to rights in standards-track and standards-related documentation can be found in BCP-11. Copies of claims of rights made available for publication and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementors or users of this specification can be obtained from the IETF Secretariat.
IETFは、知的財産またはその他の権利の有効性または範囲に関して、この文書に記載されているテクノロジーの実装または使用に関連すると主張される可能性のある他の権利、またはそのような権利に基づくライセンスがどの程度であるかについての程度に関連する可能性があるという立場はありません。利用可能;また、そのような権利を特定するために努力したことも表明していません。標準トラックおよび標準関連のドキュメントの権利に関するIETFの手順に関する情報は、BCP-11に記載されています。出版のために利用可能にされた権利の請求のコピーと、利用可能になるライセンスの保証、またはこの仕様の実装者またはユーザーによるそのような独自の権利の使用のための一般的なライセンスまたは許可を取得しようとする試みの結果を得ることができますIETF事務局から。
The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights which may cover technology that may be required to practice this standard. Please address the information to the IETF Executive Director.
IETFは、関心のある当事者に、この基準を実践するために必要な技術をカバーする可能性のある著作権、特許、または特許出願、またはその他の独自の権利を注意深く招待するよう招待しています。情報をIETFエグゼクティブディレクターに宛ててください。
This document is the result of the efforts of the SNMPv3 Working Group. Some special thanks are in order to the following SNMPv3 WG members:
このドキュメントは、SNMPV3ワーキンググループの努力の結果です。次のSNMPV3 WGメンバーに特別な感謝をお勧めします。
Harald Tveit Alvestrand (Maxware) Dave Battle (SNMP Research, Inc.) Alan Beard (Disney Worldwide Services) Paul Berrevoets (SWI Systemware/Halcyon Inc.) Martin Bjorklund (Ericsson) Uri Blumenthal (IBM T.J. Watson Research Center) Jeff Case (SNMP Research, Inc.) John Curran (BBN) Mike Daniele (Compaq Computer Corporation)) T. Max Devlin (Eltrax Systems) John Flick (Hewlett Packard) Rob Frye (MCI) Wes Hardaker (U.C.Davis, Information Technology - D.C.A.S.) David Harrington (Cabletron Systems Inc.) Lauren Heintz (BMC Software, Inc.) N.C. Hien (IBM T.J. Watson Research Center) Michael Kirkham (InterWorking Labs, Inc.) Dave Levi (SNMP Research, Inc.) Louis A Mamakos (UUNET Technologies Inc.) Joe Marzot (Nortel Networks) Paul Meyer (Secure Computing Corporation) Keith McCloghrie (Cisco Systems) Bob Moore (IBM) Russ Mundy (TIS Labs at Network Associates) Bob Natale (ACE*COMM Corporation) Mike O'Dell (UUNET Technologies Inc.) Dave Perkins (DeskTalk) Peter Polkinghorne (Brunel University) Randy Presuhn (BMC Software, Inc.) David Reeder (TIS Labs at Network Associates) David Reid (SNMP Research, Inc.) Aleksey Romanov (Quality Quorum) Shawn Routhier (Epilogue) Juergen Schoenwaelder (TU Braunschweig) Bob Stewart (Cisco Systems) Mike Thatcher (Independent Consultant) Bert Wijnen (IBM T.J. Watson Research Center)
Harald Tveit Alvestrand(Maxware)Dave Battle(SNMP Research、Inc。)Alan Beard(Disney Worldwide Services)Paul Berrevoets(SWI Systemware/Halcyon Inc.)Martin Bjorklund(Ericsson)Uri Blumenthal(IBM T.J. Watson Research Center)Jeff(SNMPResearch、Inc。)John Curran(BBN)Mike Daniele(Compaq Computer Corporation))T。Max Devlin(Eltrax Systems)John Flick(Hewlett Packard)Rob Frye(MCI)Wes Hardaker(U.C.Davis、Information Technology -D.C.A.S。)David Harrington(Cabletron Systems Inc.)Lauren Heintz(BMC Software、Inc。)N.C。Hien(IBM T.J. Watson Research Center)Michael Kirkham(Interworking Labs、Inc。)Dave Levi(SNMP Research、Inc。)Louii a Mamakos(Uunet Technologies Inc.)Joe Marzot(Nortel Networks)Paul Meyer(Secure Computing Corporation)Keith McCloghrie(Cisco Systems)Bob Moore(IBM)Russ Mundy(Network AssociatesのTISラボ)Bob Natale(Ace*Comm Corporation)。)Dave Perkins(Desktalk)Peter Polkinghorne(Brunel University)Randy Presuhn(BMC Software、Inc。)David Reeder(TIS Labs at Network Associates)David Reid(SNMP Research、Inc。)Aleksey Romanov(Quality Quorum)Shawn Routhier(Epilogue)Juergen Schoenwaelder(Tu Braunschweig)Bob Stewart(Cisco Systems)Mike Satcher(独立コンサルタント)Bert Wijnen(IBM T.J.ワトソン研究センター)
The document is based on recommendations of the IETF Security and Administrative Framework Evolution for SNMP Advisory Team. Members of that Advisory Team were:
このドキュメントは、SNMPアドバイザリーチームのIETFセキュリティおよび管理フレームワークの進化の推奨事項に基づいています。そのアドバイザリーチームのメンバーは次のとおりです。
David Harrington (Cabletron Systems Inc.) Jeff Johnson (Cisco Systems) David Levi (SNMP Research Inc.) John Linn (Openvision) Russ Mundy (Trusted Information Systems) chair Shawn Routhier (Epilogue) Glenn Waters (Nortel) Bert Wijnen (IBM T. J. Watson Research Center)
David Harrington(Cabletron Systems Inc.)Jeff Johnson(Cisco Systems)David Levi(SNMP Research Inc.)John Linn(OpenVision)Russ Mundy(信頼できる情報システム)議長Shawn Routhier(Epilogue)Glenn Waters(Nortel)Bert Wijnen(IBM T. J.ワトソン研究センター)
As recommended by the Advisory Team and the SNMPv3 Working Group Charter, the design incorporates as much as practical from previous RFCs and drafts. As a result, special thanks are due to the authors of previous designs known as SNMPv2u and SNMPv2*:
アドバイザリーチームとSNMPV3ワーキンググループチャーターが推奨しているように、この設計には以前のRFCとドラフトから実用的なものが組み込まれています。その結果、SNMPV2UおよびSNMPV2*として知られる以前のデザインの著者による特別な感謝のおかげです。
Jeff Case (SNMP Research, Inc.) David Harrington (Cabletron Systems Inc.) David Levi (SNMP Research, Inc.) Keith McCloghrie (Cisco Systems) Brian O'Keefe (Hewlett Packard) Marshall T. Rose (Dover Beach Consulting) Jon Saperia (BGS Systems Inc.) Steve Waldbusser (International Network Services) Glenn W. Waters (Bell-Northern Research Ltd.)
ジェフケース(SNMP Research、Inc。)David Harrington(Cabletron Systems Inc.)David Levi(SNMP Research、Inc。)Keith McCloghrie(Cisco Systems)Brian O'Keefe(Hewlett Packard)Marshall T. Rose(Dover Beach Consulting)JonSaperia(BGS Systems Inc.)Steve Waldbusser(International Network Services)Glenn W. Waters(Bell-Northern Research Ltd.)
This section describes practices that contribute to the secure, effective operation of the mechanisms defined in this memo.
このセクションでは、このメモで定義されているメカニズムの安全で効果的な操作に貢献するプラクティスについて説明します。
- An SNMP engine must discard SNMP Response messages that do not correspond to any currently outstanding Request message. It is the responsibility of the Message Processing module to take care of this. For example it can use a msgID for that.
- SNMPエンジンは、現在未解決のリクエストメッセージに対応していないSNMP応答メッセージを破棄する必要があります。これを処理することは、メッセージ処理モジュールの責任です。たとえば、そのためにMSGIDを使用できます。
An SNMP Command Generator Application must discard any Response Class PDU for which there is no currently outstanding Confirmed Class PDU; for example for SNMPv2 [RFC1905] PDUs, the request-id component in the PDU can be used to correlate Responses to outstanding Requests.
SNMPコマンドジェネレーターアプリケーションは、現在未解決の確認クラスPDUがない応答クラスPDUを破棄する必要があります。たとえば、SNMPV2 [RFC1905] PDUの場合、PDUのリクエストIDコンポーネントを使用して、未解決のリクエストに対する応答を相関させることができます。
Although it would be typical for an SNMP engine and an SNMP Command Generator Application to do this as a matter of course, when using these security protocols it is significant due to the possibility of message duplication (malicious or otherwise).
SNMPエンジンとSNMPコマンドジェネレーターアプリケーションが当然のことながらこれを行うのが典型的ですが、これらのセキュリティプロトコルを使用する場合、メッセージの複製(悪意またはその他)の可能性があるために重要です。
- If an SNMP engine uses a msgID for correlating Response messages to outstanding Request messages, then it MUST use different msgIDs in all such Request messages that it sends out during a Time Window (150 seconds) period.
- SNMPエンジンがMSGIDを使用して応答メッセージを未解決のリクエストメッセージに相関させる場合、タイムウィンドウ(150秒)に送信するすべてのそのような要求メッセージで異なるMSGIDを使用する必要があります。
A Command Generator or Notification Originator Application MUST use different request-ids in all Request PDUs that it sends out during a TimeWindow (150 seconds) period.
コマンドジェネレーターまたは通知オリジネーターアプリケーションは、TimeWindow(150秒)に送信するすべてのリクエストPDUで異なる要求IDを使用する必要があります。
This must be done to protect against the possibility of message duplication (malicious or otherwise).
これは、メッセージの複製(悪意またはその他)の可能性から保護するために行わなければなりません。
For example, starting operations with a msgID and/or request-id value of zero is not a good idea. Initializing them with an unpredictable number (so they do not start out the same after each reboot) and then incrementing by one would be acceptable.
たとえば、ゼロのMSGIDおよび/またはリクエストID値で操作を開始することは良い考えではありません。予測不可能な数字でそれらを初期化する(したがって、再起動するたびに同じものを開始しません)、そして1つで増分することは許容されます。
- An SNMP engine should perform time synchronization using authenticated messages in order to protect against the possibility of message duplication (malicious or otherwise).
- SNMPエンジンは、メッセージの複製(悪意またはその他)の可能性から保護するために、認証されたメッセージを使用して時間同期を実行する必要があります。
- When sending state altering messages to a managed authoritative SNMP engine, a Command Generator Application should delay sending successive messages to that managed SNMP engine until a positive acknowledgement is received for the previous message or until the previous message expires.
- 管理された権威あるSNMPエンジンに州の変更メッセージを送信する場合、コマンドジェネレーターアプリケーションは、前のメッセージまたは前のメッセージが切れるまで肯定的な確認が受信されるまで、その管理されたSNMPエンジンに連続メッセージの送信を遅らせる必要があります。
No message ordering is imposed by the SNMP. Messages may be received in any order relative to their time of generation and each will be processed in the ordered received. Note that when an authenticated message is sent to a managed SNMP engine, it will be valid for a period of time of approximately 150 seconds under normal circumstances, and is subject to replay during this period. Indeed, an SNMP engine and SNMP Command Generator Applications must cope with the loss and re-ordering of messages resulting from anomalies in the network as a matter of course.
SNMPによってメッセージの注文は課されません。メッセージは、生成時間に比べて任意の順序で受信される場合があり、それぞれが順序付けられた受信で処理されます。認証されたメッセージが管理されたSNMPエンジンに送信されると、通常の状況では約150秒の期間有効であり、この期間中に再生される可能性があることに注意してください。実際、SNMPエンジンとSNMPコマンドジェネレーターアプリケーションは、当然のことながら、ネットワークの異常に起因するメッセージの損失と再注文に対処する必要があります。
However, a managed object, snmpSetSerialNo [RFC1907], is specifically defined for use with SNMP Set operations in order to provide a mechanism to ensure that the processing of SNMP messages occurs in a specific order.
ただし、管理されたオブジェクトであるSnmpsetserialno [RFC1907]は、SNMPメッセージの処理が特定の順序で発生することを保証するメカニズムを提供するために、SNMPセット操作で使用するために特異的に定義されています。
- The frequency with which the secrets of a User-based Security Model user should be changed is indirectly related to the frequency of their use.
- ユーザーベースのセキュリティモデルユーザーの秘密を変更する頻度は、その使用頻度に間接的に関連しています。
Protecting the secrets from disclosure is critical to the overall security of the protocols. Frequent use of a secret provides a continued source of data that may be useful to a cryptanalyst in exploiting known or perceived weaknesses in an algorithm. Frequent changes to the secret avoid this vulnerability.
秘密を開示から保護することは、プロトコルの全体的なセキュリティにとって重要です。秘密を頻繁に使用すると、アルゴリズムの既知または知覚された弱点を利用する際に、暗号分析医に役立つ可能性のある継続的なデータソースが提供されます。秘密への頻繁な変更は、この脆弱性を避けます。
Changing a secret after each use is generally regarded as the most secure practice, but a significant amount of overhead may be associated with that approach.
各使用後に秘密を変えることは一般に最も安全な慣行と見なされますが、かなりの量のオーバーヘッドがそのアプローチに関連している可能性があります。
Note, too, in a local environment the threat of disclosure may be less significant, and as such the changing of secrets may be less frequent. However, when public data networks are used as the communication paths, more caution is prudent.
また、地元の環境でも、開示の脅威はそれほど重要ではない可能性があり、そのため、秘密の変化はそれほど頻繁ではない可能性があります。ただし、パブリックデータネットワークが通信パスとして使用される場合、より注意が慎重です。
The mechanisms defined in this document employ the notion of users on whose behalf messages are sent. How "users" are defined is subject to the security policy of the network administration. For example, users could be individuals (e.g., "joe" or "jane"), or a particular role (e.g., "operator" or "administrator"), or a combination (e.g., "joe-operator", "jane-operator" or "joe-admin"). Furthermore, a user may be a logical entity, such as an SNMP Application or a set of SNMP Applications, acting on behalf of an individual or role, or set of individuals, or set of roles, including combinations.
このドキュメントで定義されているメカニズムは、メッセージが送信されるユーザーの概念を採用しています。「ユーザー」の定義方法は、ネットワーク管理のセキュリティポリシーの対象となります。たとえば、ユーザーは個人(「Joe」または「Jane」など)、特定の役割(「オペレーター」または「管理者」など)、または組み合わせ(「Joe-Operator」、「Jane-」である可能性があります。オペレーター "または" joe-admin ")。さらに、ユーザーは、SNMPアプリケーションまたはSNMPアプリケーションのセットなどの論理的エンティティであり、個人または役割、または個人のセット、または組み合わせを含むロールのセットに代わって行動する場合があります。
Appendix A describes an algorithm for mapping a user "password" to a 16/20 octet value for use as either a user's authentication key or privacy key (or both). Note however, that using the same password (and therefore the same key) for both authentication and privacy is very poor security practice and should be strongly discouraged. Passwords are often generated, remembered, and input by a human. Human-generated passwords may be less than the 16/20 octets required by the authentication and privacy protocols, and brute force attacks can be quite easy on a relatively short ASCII character set. Therefore, the algorithm is Appendix A performs a transformation on the password. If the Appendix A algorithm is used, SNMP implementations (and SNMP configuration applications) must ensure that passwords are at least 8 characters in length. Please note that longer passwords with repetitive strings may result in exactly the same key. For example, a password 'bertbert' will result in exactly the same key as password 'bertbertbert'.
付録Aでは、ユーザーの認証キーまたはプライバシーキー(またはその両方)として使用するために、ユーザーの「パスワード」を16/20オクテット値にマッピングするためのアルゴリズムについて説明します。ただし、認証とプライバシーの両方に同じパスワード(したがって同じキー)を使用することは、セキュリティの実践が非常に低いため、強く落胆する必要があることに注意してください。多くの場合、パスワードは生成、記憶され、人間によって入力されます。人間で生成されたパスワードは、認証とプライバシーのプロトコルに必要な16/20オクテットよりも少ない場合があり、Brute Force攻撃は、比較的短いASCII文字セットで非常に簡単になります。したがって、アルゴリズムは付録Aで、パスワードの変換を実行します。付録Aアルゴリズムを使用する場合、SNMP実装(およびSNMP構成アプリケーション)は、パスワードの長さが少なくとも8文字であることを確認する必要があります。繰り返し文字列を備えた長いパスワードは、まったく同じキーになる可能性があることに注意してください。たとえば、パスワード「Bertbert」は、パスワード「Bertbertbert」とまったく同じキーになります。
Because the Appendix A algorithm uses such passwords (nearly) directly, it is very important that they not be easily guessed. It is suggested that they be composed of mixed-case alphanumeric and punctuation characters that don't form words or phrases that might be found in a dictionary. Longer passwords improve the security of the system. Users may wish to input multiword phrases to make their password string longer while ensuring that it is memorable.
付録Aアルゴリズムはそのようなパスワードを直接(ほぼ)使用しているため、簡単に推測しないことが非常に重要です。それらは、辞書に見られる可能性のある単語やフレーズを形成しない混合ケースの英数字と句読点のキャラクターで構成されていることが示唆されています。パスワードが長くなると、システムのセキュリティが向上します。ユーザーは、記憶に残ることを確認しながら、パスワード文字列を長くするためにマルチワードフレーズを入力したい場合があります。
Since it is infeasible for human users to maintain different passwords for every SNMP engine, but security requirements strongly discourage having the same key for more than one SNMP engine, the User-based Security Model employs a compromise proposed in [Localized-key]. It derives the user keys for the SNMP engines from user's password in such a way that it is practically impossible to either determine the user's password, or user's key for another SNMP engine from any combination of user's keys on SNMP engines.
人間のユーザーがSNMPエンジンごとに異なるパスワードを維持することは実行不可能であるため、セキュリティ要件は複数のSNMPエンジンに対して同じキーを持つことを強く阻止するため、ユーザーベースのセキュリティモデルは[ローカライズされたキー]で提案されている妥協点を採用しています。SNMPエンジン上のユーザーのキーの組み合わせから、ユーザーのパスワードを決定すること、またはユーザーのキーを別のSNMPエンジンのユーザーのキーを決定することが実際に不可能であるため、ユーザーのパスワードからSNMPエンジンのユーザーキーを導き出します。
Note however, that if user's password is disclosed, then key localization will not help and network security may be compromised in this case. Therefore a user's password or non-localized key MUST NOT be stored on a managed device/node. Instead the localized key SHALL be stored (if at all) , so that, in case a device does get compromised, no other managed or managing devices get compromised.
ただし、ユーザーのパスワードが開示されている場合、重要なローカリゼーションは役に立たず、この場合はネットワークセキュリティが損なわれる可能性があることに注意してください。したがって、ユーザーのパスワードまたは非ローカライズされたキーは、管理されたデバイス/ノードに保存してはなりません。代わりに、ローカライズされたキーは(まったくあれば)保存されます。そのため、デバイスが侵害された場合に備えて、他の管理または管理デバイスが侵害されません。
To be termed a "Secure SNMP implementation" based on the User-based Security Model, an SNMP implementation MUST:
ユーザーベースのセキュリティモデルに基づいた「Secure SNMP実装」と呼ばれるには、SNMPの実装は以下を行う必要があります。
- implement one or more Authentication Protocol(s). The HMAC-MD5-96 and HMAC-SHA-96 Authentication Protocols defined in this memo are examples of such protocols.
- 1つ以上の認証プロトコルを実装します。このメモで定義されているHMAC-MD5-96およびHMAC-SHA-96認証プロトコルは、そのようなプロトコルの例です。
- to the maximum extent possible, prohibit access to the secret(s) of each user about which it maintains information in a Local Configuration Datastore (LCD) under all circumstances except as required to generate and/or validate SNMP messages with respect to that user.
- 可能な限り、そのユーザーに関するSNMPメッセージを生成および/または検証するために必要な場合を除き、あらゆる状況下でローカル構成データストア(LCD)に情報を維持する各ユーザーの秘密へのアクセスを禁止します。
- implement the key-localization mechanism.
- キーローカリゼーションメカニズムを実装します。
- implement the SNMP-USER-BASED-SM-MIB.
- SNMPユーザーベースのSM-MIBを実装します。
In addition, an authoritative SNMP engine SHOULD provide initial configuration in accordance with Appendix A.1.
さらに、権威あるSNMPエンジンは、付録A.1に従って初期構成を提供する必要があります。
Implementation of a Privacy Protocol (the DES Symmetric Encryption Protocol defined in this memo is one such protocol) is optional.
プライバシープロトコルの実装(このメモで定義されているDES対称暗号化プロトコルは、そのようなプロトコルの1つです)はオプションです。
The use of unsecure reports (i.e. sending them with a securityLevel of noAuthNoPriv) potentially exposes a non-authoritative SNMP engine to some form of attacks. Some people consider these denial of service attacks, others don't. An installation should evaluate the risk involved before deploying unsecure Report PDUs.
不安定なレポートの使用(つまり、それらをNoauthnoprivのセキュリティレベルで送信する)は、潜在的に非認知的SNMPエンジンを何らかの形の攻撃にさらします。これらのサービス拒否攻撃を考慮している人もいれば、そうでない人もいます。インストールでは、安全でないレポートPDUを展開する前に、関与するリスクを評価する必要があります。
The objects in this MIB may be considered sensitive in many environments. Specifically the objects in the usmUserTable contain information about users and their authentication and privacy protocols. It is important to closely control (both read and write) access to these MIB objects by using appropriately configured Access Control models (for example the View-based Access Control Model as specified in [RFC2575]).
このMIBのオブジェクトは、多くの環境で敏感であると見なされる場合があります。具体的には、Usmusertableのオブジェクトには、ユーザーとその認証およびプライバシープロトコルに関する情報が含まれています。適切に構成されたアクセス制御モデル([RFC2575]で指定されているビューベースのアクセス制御モデル)を使用して、これらのMIBオブジェクトへのアクセス(読み取りと書き込みの両方)を厳密に制御することが重要です。
[RFC1321] Rivest, R., "Message Digest Algorithm MD5", RFC 1321, April 1992.
[RFC1321] Rivest、R。、「Message Digest Algorithm MD5」、RFC 1321、1992年4月。
[RFC2579] McCloghrie, K., Perkins, D. and J. Schoenwaelder, "Textual Conventions for SMIv2", STD 58, RFC 2579, April 1999.
[RFC2579] McCloghrie、K.、Perkins、D。、およびJ. Schoenwaelder、「SMIV2のテキストコンベンション」、STD 58、RFC 2579、1999年4月。
[RFC1905] Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, "Protocol Operations for Version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1905, January 1996.
[RFC1905] Case、J.、McCloghrie、K.、Rose、M。、およびS. Waldbusser、「Simple Network Management Protocol(SNMPV2)のバージョン2のプロトコル操作」、RFC 1905、1996年1月。
[RFC1906] Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, "Transport Mappings for Version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1906, January 1996.
[RFC1906] Case、J.、McCloghrie、K.、Rose、M。、およびS. Waldbusser、「Simple Network Management Protocol(SNMPV2)のバージョン2の輸送マッピング」、RFC 1906、1996年1月。
[RFC1907] Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, "Management Information Base for Version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1907 January 1996.
[RFC1907] Case、J.、McCloghrie、K.、Rose、M。、およびS. Waldbusser、「Simple Network Management Protocol(SNMPV2)のバージョン2の管理情報ベース」、RFC 1907 1996年1月。
[RFC2104] Krawczyk, H., Bellare, M. and R. Canetti, "HMAC: Keyed-Hashing for Message Authentication", RFC 2104, February 1997.
[RFC2104] Krawczyk、H.、Bellare、M。、およびR. CaNetti、「HMAC:メッセージ認証のためのキー付きハッシング」、RFC 2104、1997年2月。
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2119] Bradner、S。、「要件レベルを示すためにRFCで使用するためのキーワード」、BCP 14、RFC 2119、1997年3月。
[RFC2571] Harrington, D., Presuhn, R. and B. Wijnen, "An Architecture for describing SNMP Management Frameworks", RFC 2571, April 1999.
[RFC2571] Harrington、D.、Presuhn、R。およびB. Wijnen、「SNMP管理フレームワークを説明するためのアーキテクチャ」、RFC 2571、1999年4月。
[RFC2572] Case, J., Harrington, D., Presuhn, R. and B. Wijnen, "Message Processing and Dispatching for the Simple Network Management Protocol (SNMP)", RFC 2572, April 1999.
[RFC2572] Case、J.、Harrington、D.、Presuhn、R。、およびB. Wijnen、「シンプルネットワーク管理プロトコル(SNMP)のメッセージ処理とディスパッチ」、RFC 2572、1999年4月。
[RF2575] Wijnen, B., Presuhn, R. and K. McCloghrie, "View-based Access Control Model for the Simple Network Management Protocol (SNMP)", RFC 2575, April 1999.
[RF2575] Wijnen、B.、Presuhn、R。、およびK. McCloghrie、「Simple Network Management Protocol(SNMP)のビューベースのアクセス制御モデル」、RFC 2575、1999年4月。
[Localized-Key] U. Blumenthal, N. C. Hien, B. Wijnen "Key Derivation for Network Management Applications" IEEE Network Magazine, April/May issue, 1997.
[ローカライズキー] U. Blumenthal、N。C。Hien、B。Wijnen「ネットワーク管理アプリケーションの重要な派生」IEEE Network Magazine、1997年4月/5月号。
[DES-NIST] Data Encryption Standard, National Institute of Standards and Technology. Federal Information Processing Standard (FIPS) Publication 46-1. Supersedes FIPS Publication 46, (January, 1977; reaffirmed January, 1988).
[des-nist]データ暗号化標準、国立標準技術研究所。連邦情報処理標準(FIPS)出版物46-1。Supersedes Fips Publication 46、(1977年1月、1988年1月の再確認)。
[DES-ANSI] Data Encryption Algorithm, American National Standards Institute. ANSI X3.92-1981, (December, 1980).
[Des-Ansi]データ暗号化アルゴリズム、American National Standards Institute。ANSI X3.92-1981、(1980年12月)。
[DESO-NIST] DES Modes of Operation, National Institute of Standards and Technology. Federal Information Processing Standard (FIPS) Publication 81, (December, 1980).
[Deso-Nist] DES Modes of Operation、国立標準技術研究所。連邦情報処理標準(FIPS)出版81、(1980年12月)。
[DESO-ANSI] Data Encryption Algorithm - Modes of Operation, American National Standards Institute. ANSI X3.106- 1983, (May 1983).
[Deso -Ansi]データ暗号化アルゴリズム - 運用モード、American National Standards Institute。ANSI X3.106- 1983、(1983年5月)。
[DESG-NIST] Guidelines for Implementing and Using the NBS Data Encryption Standard, National Institute of Standards and Technology. Federal Information Processing Standard (FIPS) Publication 74, (April, 1981).
[DESG-NIST] NBSデータ暗号化標準、国立標準技術研究所を実装および使用するためのガイドライン。連邦情報処理標準(FIPS)出版74、(1981年4月)。
[DEST-NIST] Validating the Correctness of Hardware Implementations of the NBS Data Encryption Standard, National Institute of Standards and Technology. Special Publication 500-20.
[Dest-Nist] NBSデータ暗号化標準のハードウェア実装の正確性、国立標準技術研究所の検証。特別出版500-20。
[DESM-NIST] Maintenance Testing for the Data Encryption Standard, National Institute of Standards and Technology. Special Publication 500-61, (August, 1980).
[DESM-NIST]国立標準技術研究所、データ暗号化標準のメンテナンステスト。特別出版500-61(1980年8月)。
[SHA-NIST] Secure Hash Algorithm. NIST FIPS 180-1, (April, 1995) http://csrc.nist.gov/fips/fip180-1.txt (ASCII) http://csrc.nist.gov/fips/fip180-1.ps (Postscript)
[sha-nist]安全なハッシュアルゴリズム。NIST FIPS 180-1、(1995年4月)http://csrc.nist.gov/fips/fip180-1.txt(ascii)http://csrc.nist.gov/fips/fip180-1.ps(postscript))
Uri Blumenthal IBM T. J. Watson Research 30 Saw Mill River Pkwy, Hawthorne, NY 10532 USA
Uri Blumenthal IBM T. J. Watson Research 30 Saw Mill River Pkwy、Hawthorne、NY 10532 USA
Phone: +1-914-784-7064 EMail: uri@watson.ibm.com
Bert Wijnen IBM T. J. Watson Research Schagen 33 3461 GL Linschoten Netherlands
Bert Wijnen Ibm T. J. Watson Research Schagen 33 3461 GL Linschotenオランダ
Phone: +31-348-432-794 EMail: wijnen@vnet.ibm.com
APPENDIX A - Installation
付録A-インストール
During installation, an authoritative SNMP engine SHOULD (in the meaning as defined in [RFC2119]) be configured with several initial parameters. These include:
インストール中、権威あるSNMPエンジンは([RFC2119]で定義されている意味で)いくつかの初期パラメーターで構成する必要があります。これらには以下が含まれます:
1) A security posture
1) セキュリティ姿勢
The choice of security posture determines if initial configuration is implemented and if so how. One of three possible choices is selected:
セキュリティの姿勢の選択により、初期構成が実装されているかどうか、そしてそうであれば、どのようにしますか。可能な3つの選択肢の1つが選択されます。
minimum-secure, semi-secure, very-secure (i.e., no-initial-configuration)
最小セキュア、セミセキュア、非常にセクチャー(つまり、独創的な構成なし)
In the case of a very-secure posture, there is no initial configuration, and so the following steps are irrelevant.
非常に安全な姿勢の場合、初期構成はないため、次の手順は無関係です。
2) one or more secrets
2) 1つ以上の秘密
These are the authentication/privacy secrets for the first user to be configured.
これらは、最初のユーザーが構成されるための認証/プライバシーの秘密です。
One way to accomplish this is to have the installer enter a "password" for each required secret. The password is then algorithmically converted into the required secret by:
これを達成する1つの方法は、インストーラーに必要な秘密ごとに「パスワード」を入力させることです。パスワードは、以下によって必要な秘密にアルゴリズム的に変換されます。
- forming a string of length 1,048,576 octets by repeating the value of the password as often as necessary, truncating accordingly, and using the resulting string as the input to the MD5 algorithm [MD5]. The resulting digest, termed "digest1", is used in the next step.
- 必要に応じてパスワードの値を繰り返し、それに応じて切り捨て、結果の文字列をMD5アルゴリズム[MD5]として使用することにより、長さ1,048,576オクテットの文字列を形成します。「Digest1」と呼ばれる結果のダイジェストは、次のステップで使用されます。
- a second string is formed by concatenating digest1, the SNMP engine's snmpEngineID value, and digest1. This string is used as input to the MD5 algorithm [MD5].
- 2番目の文字列は、SNMPエンジンのSNMPENGINEID値、およびDIGEST1であるDigest1を連結することによって形成されます。この文字列は、MD5アルゴリズム[MD5]への入力として使用されます。
The resulting digest is the required secret (see Appendix A.2).
結果のダイジェストは必要な秘密です(付録A.2を参照)。
With these configured parameters, the SNMP engine instantiates the following usmUserEntry in the usmUserTable:
これらの構成されたパラメーターを使用して、SNMPエンジンはUsmusertableで次のUsmuserentryをインスタンス化します。
no privacy support privacy support ------------------ --------------- usmUserEngineID localEngineID localEngineID usmUserName "initial" "initial" usmUserSecurityName "initial" "initial" usmUserCloneFrom ZeroDotZero ZeroDotZero usmUserAuthProtocol usmHMACMD5AuthProtocol usmHMACMD5AuthProtocol usmUserAuthKeyChange "" "" usmUserOwnAuthKeyChange "" "" usmUserPrivProtocol none usmDESPrivProtocol usmUserPrivKeyChange "" "" usmUserOwnPrivKeyChange "" "" usmUserPublic "" "" usmUserStorageType anyValidStorageType anyValidStorageType usmUserStatus active active
It is recommended to also instantiate a set of template usmUserEntries which can be used as clone-from users for newly created usmUserEntries. These are the two suggested entries:
また、新しく作成されたUsmuserentriesのクローンから使用できるテンプレートUsmuserentriesのセットをインスタンス化することをお勧めします。これらは2つの提案されたエントリです。
no privacy support privacy support ------------------ --------------- usmUserEngineID localEngineID localEngineID usmUserName "templateMD5" "templateMD5" usmUserSecurityName "templateMD5" "templateMD5" usmUserCloneFrom ZeroDotZero ZeroDotZero usmUserAuthProtocol usmHMACMD5AuthProtocol usmHMACMD5AuthProtocol usmUserAuthKeyChange "" "" usmUserOwnAuthKeyChange "" "" usmUserPrivProtocol none usmDESPrivProtocol usmUserPrivKeyChange "" "" usmUserOwnPrivKeyChange "" "" usmUserPublic "" "" usmUserStorageType permanent permanent usmUserStatus active active
no privacy support privacy support ------------------ --------------- usmUserEngineID localEngineID localEngineID usmUserName "templateSHA" "templateSHA" usmUserSecurityName "templateSHA" "templateSHA" usmUserCloneFrom ZeroDotZero ZeroDotZero usmUserAuthProtocol usmHMACSHAAuthProtocol usmHMACSHAAuthProtocol usmUserAuthKeyChange "" "" usmUserOwnAuthKeyChange "" "" usmUserPrivProtocol none usmDESPrivProtocol usmUserPrivKeyChange "" "" usmUserOwnPrivKeyChange "" "" usmUserPublic "" "" usmUserStorageType permanent permanent usmUserStatus active active
A sample code fragment (section A.2.1) demonstrates the password to key algorithm which can be used when mapping a password to an authentication or privacy key using MD5. The reference source code of MD5 is available in [RFC1321].
サンプルコードフラグメント(セクションA.2.1)は、MD5を使用して認証またはプライバシーキーにパスワードをマッピングするときに使用できるキーアルゴリズムのパスワードを示しています。MD5の参照ソースコードは[RFC1321]で利用できます。
Another sample code fragment (section A.2.2) demonstrates the password to key algorithm which can be used when mapping a password to an authentication or privacy key using SHA (documented in SHA-NIST).
別のサンプルコードフラグメント(セクションA.2.2)は、SHAを使用して認証またはプライバシーキーにパスワードをマッピングするときに使用できるキーアルゴリズムのパスワードを示しています(Sha-Nistで文書化)。
An example of the results of a correct implementation is provided (section A.3) which an implementor can use to check if his implementation produces the same result.
正しい実装の結果の例が提供されます(セクションA.3)。実装者が同じ結果を生成するかどうかを確認するために使用できる。
void password_to_key_md5( u_char *password, /* IN */ u_int passwordlen, /* IN */ u_char *engineID, /* IN - pointer to snmpEngineID */ u_int engineLength,/* IN - length of snmpEngineID */ u_char *key) /* OUT - pointer to caller 16-octet buffer */ { MD5_CTX MD; u_char *cp, password_buf[64]; u_long password_index = 0; u_long count = 0, i;
MD5Init (&MD); /* initialize MD5 */
/**********************************************/ /* Use while loop until we've done 1 Megabyte */ /**********************************************/ while (count < 1048576) { cp = password_buf; for (i = 0; i < 64; i++) { /*************************************************/ /* Take the next octet of the password, wrapping */ /* to the beginning of the password as necessary.*/ /*************************************************/ *cp++ = password[password_index++ % passwordlen]; } MD5Update (&MD, password_buf, 64); count += 64; } MD5Final (key, &MD); /* tell MD5 we're done */
/*****************************************************/ /* Now localize the key with the engineID and pass */ /* through MD5 to produce final key */ /* May want to ensure that engineLength <= 32, */ /* otherwise need to use a buffer larger than 64 */ /*****************************************************/ memcpy(password_buf, key, 16); memcpy(password_buf+16, engineID, engineLength); memcpy(password_buf+16+engineLength, key, 16);
MD5Init(&MD); MD5Update(&MD, password_buf, 32+engineLength); MD5Final(key, &MD); return; } A.2.2. Password to Key Sample Code for SHA
void password_to_key_sha( u_char *password, /* IN */ u_int passwordlen, /* IN */ u_char *engineID, /* IN - pointer to snmpEngineID */ u_int engineLength,/* IN - length of snmpEngineID */ u_char *key) /* OUT - pointer to caller 20-octet buffer */ { SHA_CTX SH; u_char *cp, password_buf[72]; u_long password_index = 0; u_long count = 0, i;
SHAInit (&SH); /* initialize SHA */
/**********************************************/ /* Use while loop until we've done 1 Megabyte */ /**********************************************/ while (count < 1048576) { cp = password_buf; for (i = 0; i < 64; i++) { /*************************************************/ /* Take the next octet of the password, wrapping */ /* to the beginning of the password as necessary.*/ /*************************************************/ *cp++ = password[password_index++ % passwordlen]; } SHAUpdate (&SH, password_buf, 64); count += 64; } SHAFinal (key, &SH); /* tell SHA we're done */
/*****************************************************/ /* Now localize the key with the engineID and pass */ /* through SHA to produce final key */ /* May want to ensure that engineLength <= 32, */ /* otherwise need to use a buffer larger than 72 */ /*****************************************************/ memcpy(password_buf, key, 20); memcpy(password_buf+20, engineID, engineLength); memcpy(password_buf+20+engineLength, key, 20);
SHAInit(&SH); SHAUpdate(&SH, password_buf, 40+engineLength); SHAFinal(key, &SH); return; } A.3. Password to Key Sample Results
The following shows a sample output of the password to key algorithm for a 16-octet key using MD5.
以下は、MD5を使用した16オクテットキーのキーアルゴリズムへのパスワードのサンプル出力を示しています。
With a password of "maplesyrup" the output of the password to key algorithm before the key is localized with the SNMP engine's snmpEngineID is:
「Maplesyrup」のパスワードを使用すると、キーがSNMPエンジンのSNMPengineIDでローカライズされる前にキーアルゴリズムへのパスワードの出力を次のとおりです。
'9f af 32 83 88 4e 92 83 4e bc 98 47 d8 ed d9 63'H
'9F AF 32 83 88 4E 92 83 4E BC 98 47 D8 ED D9 63'H
After the intermediate key (shown above) is localized with the snmpEngineID value of:
中間キー(上記を参照)の後、次のsnmpengineid値でローカライズされます。
'00 00 00 00 00 00 00 00 00 00 00 02'H
'00 00 00 00 00 00 00 00 00 00 00 02'H
the final output of the password to key algorithm is:
キーアルゴリズムへのパスワードの最終出力は次のとおりです。
'52 6f 5e ed 9f cc e2 6f 89 64 c2 93 07 87 d8 2b'H
'52 6F 5E ED 9F CC E2 6F 89 64 C2 93 07 87 D8 2B'H
The following shows a sample output of the password to key algorithm for a 20-octet key using SHA.
以下は、SHAを使用した20オクテットキーのキーアルゴリズムへのパスワードのサンプル出力を示しています。
With a password of "maplesyrup" the output of the password to key algorithm before the key is localized with the SNMP engine's snmpEngineID is:
「Maplesyrup」のパスワードを使用すると、キーがSNMPエンジンのSNMPengineIDでローカライズされる前にキーアルゴリズムへのパスワードの出力を次のとおりです。
'9f b5 cc 03 81 49 7b 37 93 52 89 39 ff 78 8d 5d 79 14 52 11'H
'9F B5 CC 03 81 49 7B 37 93 52 89 39 FF 78 8D 5D 79 14 52 11'H
After the intermediate key (shown above) is localized with the snmpEngineID value of:
中間キー(上記を参照)の後、次のsnmpengineid値でローカライズされます。
'00 00 00 00 00 00 00 00 00 00 00 02'H
'00 00 00 00 00 00 00 00 00 00 00 02'H
the final output of the password to key algorithm is:
キーアルゴリズムへのパスワードの最終出力は次のとおりです。
'66 95 fe bc 92 88 e3 62 82 23 5f c7 15 1f 12 84 97 b3 8f 3f'H
'66 95 FE BC 92 88 E3 62 82 23 5F C7 15 1F 12 84 97 B3 8F 3F'H
The msgSecurityParameters in an SNMP message are represented as an OCTET STRING. This OCTET STRING should be considered opaque outside a specific Security Model.
SNMPメッセージのmsgsecurityparametersは、オクテット文字列として表されます。このオクテット文字列は、特定のセキュリティモデルの外側の不透明と見なす必要があります。
The User-based Security Model defines the contents of the OCTET STRING as a SEQUENCE (see section 2.4).
ユーザーベースのセキュリティモデルは、Octet文字列の内容をシーケンスとして定義します(セクション2.4を参照)。
Given these two properties, the following is an example of the msgSecurityParameters for the User-based Security Model, encoded as an OCTET STRING:
これらの2つのプロパティを考えると、以下は、オクテット文字列としてエンコードされたユーザーベースのセキュリティモデルのMSGSecurityParametersの例です。
04 <length> 30 <length> 04 <length> <msgAuthoritativeEngineID> 02 <length> <msgAuthoritativeEngineBoots> 02 <length> <msgAuthoritativeEngineTime> 04 <length> <msgUserName> 04 0c <HMAC-MD5-96-digest> 04 08 <salt>
Here is the example once more, but now with real values (except for the digest in msgAuthenticationParameters and the salt in msgPrivacyParameters, which depend on variable data that we have not defined here):
ここにもう一度例がありますが、実際の値があります(MSGAuthenticationParametersのダイジェストとMSGPrivacyparametersの塩を除く。これは、ここで定義していない変数データに依存します):
Hex Data Description -------------- ----------------------------------------------- 04 39 OCTET STRING, length 57 30 37 SEQUENCE, length 55 04 0c 80000002 msgAuthoritativeEngineID: IBM 01 IPv4 address 09840301 9.132.3.1 02 01 01 msgAuthoritativeEngineBoots: 1 02 02 0101 msgAuthoritativeEngineTime: 257 04 04 62657274 msgUserName: bert 04 0c 01234567 msgAuthenticationParameters: sample value 89abcdef fedcba98 04 08 01234567 msgPrivacyParameters: sample value 89abcdef
Let us assume that a user has a current password of "maplesyrup" as in section A.3.1. and let us also assume the snmpEngineID of 12 octets:
セクションA.3.1のように、ユーザーが「Maplesyrup」の現在のパスワードを持っていると仮定しましょう。また、12オクテットのsnmpengineidを想定しましょう。
'00 00 00 00 00 00 00 00 00 00 00 02'H
'00 00 00 00 00 00 00 00 00 00 00 02'H
If we now want to change the password to "newsyrup", then we first calculate the key for the new password. It is as follows:
パスワードを「NewsYrup」に変更するようになった場合、最初に新しいパスワードのキーを計算します。次のとおりです。
'01 ad d2 73 10 7c 4e 59 6b 4b 00 f8 2b 1d 42 a7'H
'01 AD D2 73 10 7C 4E 59 6B 4B 00 F8 2B 1D 42 A7'H
If we localize it for the above snmpEngineID, then the localized new key becomes:
上記のsnmpengineidにローカライズすると、ローカライズされた新しいキーが次のようになります。
'87 02 1d 7b d9 d1 01 ba 05 ea 6e 3b f9 d9 bd 4a'H
'87 02 1d 7B D9 D1 01 BA 05 EA 6E 3B F9 D9 BD 4A'H
If we then use a (not so good, but easy to test) random value of:
(あまり良くないがテストしやすい)ランダム値を使用する場合:
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'H
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'H
Then the value we must send for keyChange is:
次に、キーチェンジに送信する必要がある値は次のとおりです。
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 88 05 61 51 41 67 6c c9 19 61 74 e7 42 a3 25 51'H
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 88 05 61 51 41 67 6C C9 19 61 74 E7 42 A3 25 51'H
If this were for the privacy key, then it would be exactly the same.
これがプライバシーキーの場合、まったく同じです。
Let us assume that a user has a current password of "maplesyrup" as in section A.3.2. and let us also assume the snmpEngineID of 12 octets:
セクションA.3.2のように、ユーザーが「Maplesyrup」の現在のパスワードを持っていると仮定しましょう。また、12オクテットのsnmpengineidを想定しましょう。
'00 00 00 00 00 00 00 00 00 00 00 02'H
'00 00 00 00 00 00 00 00 00 00 00 02'H
If we now want to change the password to "newsyrup", then we first calculate the key for the new password. It is as follows:
パスワードを「NewsYrup」に変更するようになった場合、最初に新しいパスワードのキーを計算します。次のとおりです。
'3a 51 a6 d7 36 aa 34 7b 83 dc 4a 87 e3 e5 5e e4 d6 98 ac 71'H
'3a 51 A6 D7 36 AA 34 7B 83 DC 4A 87 E3 E5 5E E4 D6 98 AC 71'H
If we localize it for the above snmpEngineID, then the localized new key becomes:
上記のsnmpengineidにローカライズすると、ローカライズされた新しいキーが次のようになります。
'78 e2 dc ce 79 d5 94 03 b5 8c 1b ba a5 bf f4 63 91 f1 cd 25'H
'78 E2 DC CE 79 D5 94 03 B5 8C 1B BA A5 BF F4 63 91 F1 CD 25'H
If we then use a (not so good, but easy to test) random value of:
(あまり良くないがテストしやすい)ランダム値を使用する場合:
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'H
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'H
Then the value we must send for keyChange is:
次に、キーチェンジに送信する必要がある値は次のとおりです。
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 9c 10 17 f4 fd 48 3d 2d e8 d5 fa db f8 43 92 cb 06 45 70 51'
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 9C 10 17 F4 FD 48 3D 2D E8 D5 FA DB F8 43 92 CB 06 45 70 51 '
For the key used for privacy, the new nonlocalized key would be:
プライバシーに使用されるキーの場合、新しい非ローカライズされたキーは次のとおりです。
'3a 51 a6 d7 36 aa 34 7b 83 dc 4a 87 e3 e5 5e e4 d6 98 ac 71'H
'3a 51 A6 D7 36 AA 34 7B 83 DC 4A 87 E3 E5 5E E4 D6 98 AC 71'H
For the key used for privacy, the new localized key would be (note that they localized key gets truncated to 16 octets for DES):
プライバシーに使用されるキーの場合、新しいローカライズされたキーは(それらがローカライズされたキーがDESの16オクテットに切り捨てられることに注意してください):
'78 e2 dc ce 79 d5 94 03 b5 8c 1b ba a5 bf f4 63'H
'78 E2 DC CE 79 D5 94 03 B5 8C 1B BA A5 BF F4 63'H
If we then use a (not so good, but easy to test) random value of:
(あまり良くないがテストしやすい)ランダム値を使用する場合:
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'H
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'H
Then the value we must send for keyChange for the privacy key is:
次に、プライバシーキーのキーチェンジに送信する必要がある値は次のとおりです。
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 '7e f8 d8 a4 c9 cd b2 6b 47 59 1c d8 52 ff 88 b5'H
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 '7E F8 D8 A4 C9 CD B2 6B 47 59 1C D8 52 FF 88 B5'H
B. Change Log
B.ログを変更します
Changes made since RFC2274: - Fixed msgUserName to allow size of zero and explain that this can be used for snmpEngineID discovery. - Clarified section 3.1 steps 4.b, 5, 6 and 8.b. - Clarified section 3.2 paragraph 2. - Clarified section 3.2 step 7.a last paragraph, step 7.b.1 second bullet and step 7.b.2 third bullet. - Clarified section 4 to indicate that discovery can use a userName of zero length in unAuthenticated messages, whereas a valid userName must be used in authenticated messages. - Added REVISION clauses to MODULE-IDENTITY - Clarified KeyChange TC by adding a note that localized keys must be used when calculating a KeyChange value. - Added clarifying text to the DESCRIPTION clause of usmUserTable. Added text describes a recommended procedure for adding a new user. - Clarified the use of usmUserCloneFrom object. - Clarified how and under which conditions the usmUserAuthProtocol and usmUserPrivProtocol can be initialized and/or changed. - Added comment on typical sizes for usmUserAuthKeyChange and usmUserPrivKeyChange. Also for usmUserOwnAuthKeyChange and usmUserOwnPrivKeyChange. - Added clarifications to the DESCRIPTION clauses of usmUserAuthKeyChange, usmUserOwnAuthKeychange, usmUserPrivKeyChange and usmUserOwnPrivKeychange. - Added clarification to DESCRIPTION clause of usmUserStorageType. - Added clarification to DESCRIPTION clause of usmUserStatus. - Clarified IV generation procedure in section 8.1.1.1 and in addition clarified section 8.3.1 step 1 and section 8.3.2. step 3. - Clarified section 11.2 and added a warning that different size passwords with repetitive strings may result in same key. - Added template users to appendix A for cloning process. - Fixed C-code examples in Appendix A. - Fixed examples of generated keys in Appendix A. - Added examples of KeyChange values to Appendix A. - Used PDU Classes instead of RFC1905 PDU types. - Added text in the security section about Reports and Access Control to the MIB - Removed a incorrect note at the end of section 3.2 step 7. - Added a note in section 3.2 step 3. - Corrected various spelling errors and typos. - Corrected procedure for 3.2 step 2.a) - various clarifications. - Fixed references to new/revised documents - Change to no longer cache data that is not used
RFC2274以降の変更:-MSGusernameを修正してゼロのサイズを許可し、これをSNMPengineID発見に使用できることを説明します。 - セクション3.1ステップ4.b、5、6、および8.bを明確にしました。 - 明確なセクション3.2パラグラフ2。-明確にされたセクション3.2ステップ7.a最後の段落、ステップ7.B.1 2番目の弾丸、ステップ7.B.2 3番目の弾丸。 - 発見が認証されたメッセージで有効なユーザー名を使用する必要があるのに対し、発見がゼロの長さのユーザー名を使用できることを示すために、セクション4を明確にしました。 - モジュールアイデンティティにリビジョン句を追加しました - キーチェンジ値を計算するときにローカライズされたキーを使用する必要があるというメモを追加することにより、キーチェンジTCを明確にしました。-Usmusertableの説明条項に明確なテキストを追加しました。追加されたテキストは、新しいユーザーを追加するための推奨手順を説明しています。-UsmuserClonefromオブジェクトの使用を明確にしました。 - UsmuserauthprotocolとUsmuserPrivprotocolを初期化および/または変更する方法とどのような条件下で明確にしました。-usmuserauthkeychangeおよびusmuserprivkeychangeの典型的なサイズに関するコメントを追加しました。また、usmuserownauthkeychangeおよびusmuserownprivkeychange用。-usmuserauthkeychange、usmuserownauthkeychange、usmuserprivkeychange、usmuserownownprivkeychangeの説明条項に説明を追加しました。-UsmuserstorageTypeの説明条項に説明を追加しました。-Usmuserstatusの説明条項に説明を追加しました。 - セクション8.1.1.1のIV生成手順を明確にし、さらに明確にしたセクション8.3.1ステップ1およびセクション8.3.2。ステップ3. - セクション11.2を明確にし、繰り返し文字列を備えた異なるサイズのパスワードが同じキーになる可能性があるという警告を追加しました。 - クローニングプロセスについては、テンプレートユーザーを付録Aに追加しました。 - 付録AのCコードの例を修正しました。-付録Aの生成されたキーの修正例A付録Aにキーチェンジ値の例を追加しました。-MIBへのレポートとアクセス制御に関するセキュリティセクションにテキストを追加 - セクション3.2ステップ7の最後に誤ったメモを削除しました。-セクション3.2ステップ3にメモを追加しました - さまざまなスペルエラーとタイプミスを修正しました。-3.2ステップ2.a)の修正手順2. A) - さまざまな説明。 - 新規/改訂されたドキュメントへの参照を修正 - 使用されていないデータをキャッシュしないように変更
C. Full Copyright Statement
C.完全な著作権声明
Copyright (C) The Internet Society (1999). All Rights Reserved.
Copyright(c)The Internet Society(1999)。無断転載を禁じます。
This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English.
このドキュメントと翻訳は他の人にコピーされて提供される場合があります。また、それについてコメントまたは説明する派生作品、またはその実装を支援することは、いかなる種類の制限なしに、準備、コピー、公開、および部分的に配布される場合があります。、上記の著作権通知とこの段落がそのようなすべてのコピーとデリバティブ作品に含まれている場合。ただし、このドキュメント自体は、インターネット協会や他のインターネット組織への著作権通知や参照を削除するなど、いかなる方法でも変更できない場合があります。インターネット標準プロセスに従うか、英語以外の言語に翻訳するために必要な場合に従う必要があります。
The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns.
上記の限られた許可は永続的であり、インターネット社会またはその後継者または譲受人によって取り消されることはありません。
This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
この文書と本書に含まれる情報は、「現状」に基づいて提供されており、インターネット社会とインターネットエンジニアリングタスクフォースは、ここにある情報の使用が行われないという保証を含むがこれらに限定されないすべての保証を否認します。特定の目的に対する商品性または適合性の権利または黙示的な保証を侵害します。
Acknowledgement
謝辞
Funding for the RFC Editor function is currently provided by the Internet Society.
RFCエディター機能の資金は現在、インターネット協会によって提供されています。