Internet Engineering Task Force (IETF) S. Cheshire Request for Comments: 6281 Apple Inc. Category: Informational Z. Zhu ISSN: 2070-1721 UCLA R. Wakikawa Toyota ITC L. Zhang UCLA June 2011
Understanding Apple's Back to My Mac (BTMM) Service
Abstract
抽象
This document describes the implementation of Apple Inc.'s Back to My Mac (BTMM) service. BTMM provides network connectivity between devices so that a user can perform file sharing and screen sharing among multiple computers at home, at work, or on the road. The implementation of BTMM addresses the issues of single sign-on authentication, secure data communication, service discovery, and end-to-end connectivity in the face of Network Address Translators (NATs) and mobility of devices.
この文書では、どこでもMy Mac(BTMM)サービスにされたApple Inc.の背中の実装について説明します。ユーザーが仕事で、または道路上、自宅で複数のコンピュータ間でのファイル共有や画面共有を行うことができるようにBTMMは、デバイス間のネットワーク接続を提供します。 BTMMの実装では、シングルサインオン認証、セキュアなデータ通信、サービスの発見、およびエンドツーエンドの接続ネットワークの顔での問題は翻訳器(NAT)のアドレスアドレスとデバイスのモビリティ。
Status of This Memo
このメモのステータス
This document is not an Internet Standards Track specification; it is published for informational purposes.
このドキュメントはインターネット標準化過程仕様ではありません。それは、情報提供の目的のために公開されています。
This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Not all documents approved by the IESG are a candidate for any level of Internet Standard; see Section 2 of RFC 5741.
このドキュメントはインターネットエンジニアリングタスクフォース(IETF)の製品です。これは、IETFコミュニティの総意を表しています。これは、公開レビューを受けており、インターネットエンジニアリング運営グループ(IESG)によって公表のために承認されています。 IESGによって承認されていないすべての文書がインターネットStandardのどんなレベルの候補です。 RFC 5741のセクション2を参照してください。
Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at http://www.rfc-editor.org/info/rfc6281.
このドキュメントの現在の状態、任意の正誤表、そしてどのようにフィードバックを提供するための情報がhttp://www.rfc-editor.org/info/rfc6281で取得することができます。
Copyright Notice
著作権表示
Copyright (c) 2011 IETF Trust and the persons identified as the document authors. All rights reserved.
著作権(C)2011 IETF信託とドキュメントの作成者として特定の人物。全著作権所有。
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.
この文書では、BCP 78と、この文書の発行日に有効なIETFドキュメント(http://trustee.ietf.org/license-info)に関連IETFトラストの法律の規定に従うものとします。彼らは、この文書に関してあなたの権利と制限を説明するように、慎重にこれらの文書を確認してください。コードコンポーネントは、トラスト法規定のセクションで説明4.eおよび簡体BSDライセンスで説明したように、保証なしで提供されているよう簡体BSDライセンスのテキストを含める必要があり、この文書から抽出されました。
Table of Contents
目次
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2 2. An Overview of Back to My Mac . . . . . . . . . . . . . . . . 3 3. Encoding Host Information in DNS Resource Records . . . . . . 5 4. NAT Traversal . . . . . . . . . . . . . . . . . . . . . . . . 6 4.1. Introduction to NAT-PMP . . . . . . . . . . . . . . . . . 6 4.2. Requesting/Removing a Port Mapping . . . . . . . . . . . . 7 4.3. Obtaining NAT Box's Public IP Address . . . . . . . . . . 7 4.4. Unsupported Scenarios . . . . . . . . . . . . . . . . . . 8 5. Handling IP Address or Port Changes . . . . . . . . . . . . . 8 5.1. Updating Local Interfaces and Tunnels . . . . . . . . . . 8 5.2. Dynamically Updating Reachability Information . . . . . . 8 5.3. Getting Up-to-Date DNS Resource Records without Polling . 9 6. IPv6 ULA as Host ID . . . . . . . . . . . . . . . . . . . . . 11 6.1. The Need for a Host Identifier . . . . . . . . . . . . . . 11 6.2. What to Use as Host Identifiers . . . . . . . . . . . . . 11 6.3. IPv6 ULA Configuration . . . . . . . . . . . . . . . . . . 11 7. Securing Communication . . . . . . . . . . . . . . . . . . . . 12 7.1. Authentication for Connecting to Remote Host . . . . . . . 12 7.2. Authentication for DNS Exchanges . . . . . . . . . . . . . 12 7.3. IPsec for Secure End-to-End Data Communication . . . . . . 13 8. Security Considerations . . . . . . . . . . . . . . . . . . . 14 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 14 9.1. Normative Reference . . . . . . . . . . . . . . . . . . . 14 9.2. Informative References . . . . . . . . . . . . . . . . . . 15
Apple Inc.'s Back to My Mac (BTMM) service was first shipped with MAC OS X 10.5 release in October 2007; since then, it has been widely used. BTMM provides an integrated solution to host mobility support, NAT traversal, and secure end-to-end data delivery through a combination of several existing protocols and software tools instead of designing new protocols. Note that we generally refer to Network Address Port Translation (NAPT) as NAT in this document. This document describes the implementation of BTMM and describes how BTMM works in MAC OS X version 10.5.x; BTMM continues to evolve over time.
アップル社のBack to My Macの(BTMM)サービスは、最初に2007年10月MAC OS X 10.5のリリースに同梱されていました。それ以来、それが広く用いられています。 BTMMは、モビリティサポート、NATトラバーサル、代わりに新しいプロトコルを設計するいくつかの既存のプロトコルおよびソフトウェアツールの組み合わせによる安全なエンドツーエンドのデータ配信をホストする統合ソリューションを提供します。私たちは、一般的に、この文書でNATとポート変換(NAPT)のアドレスのネットワークを参照していることに注意してください。この文書では、BTMMの実装について説明し、BTMMは、MAC OS Xバージョン10.5.xでどのように機能するかを説明し、 BTMMは、時間をかけて進化し続けています。
BTMM provides secure transport connections among a set of devices that may be located over a dynamic and heterogeneous network environment. Independent from whether a user is traveling and accessing the Internet via airport WiFi or staying at home behind a NAT, BTMM allows the user to connect to any Mac hosts with a click, after which the user can share files with remote computers or control the remote host through screen sharing. When a user changes locations and thus also changes the IP address of his computer (e.g., roaming around with a laptop and receiving dynamically allocated IP address), BTMM provides a means for the roaming host to update its reachability information to keep it reachable by the user's other Mac devices. BTMM maintains end-to-end transport connections in the face of host IP address changes through the use of unique host identifiers. It also provides a means to reach devices behind a NAT.
BTMM動的異種ネットワーク環境上に配置することができるデバイスのセットの中の安全な輸送の接続を提供します。ユーザーが旅行や空港の無線LANを介してインターネットにアクセスするか、NATの背後にある自宅に滞在されているかどうかとは独立して、BTMMは、ユーザがリモートコンピュータとファイルを共有したり、リモートコントロールすることができた後クリックですべてのMacのホストに接続することができます画面共有を介してホスト。ユーザーが場所を変更し、したがってまた自分のコンピュータ(例えば、ラップトップの周りのローミングと動的に割り当てられたIPアドレスを受信)のIPアドレスを変更すると、BTMMはによって到達可能な、それを維持するために、その到達可能性情報を更新するために、ローミングホストするための手段を提供しますユーザーの他のMacデバイス。 BTMMは、一意のホスト識別子を使用してホストのIPアドレスが変更に直面して、エンドツーエンドの交通機関の接続を維持します。また、NATの背後にあるデバイスに到達するための手段を提供します。
BTMM achieves the above functions mainly by integrating a set of existing protocols and software tools. It uses DNS-based Service Discovery [DNS-SD] to announce host reachability information, dynamic DNS update [RFC2136] to refresh the DNS resource records (RRs) when a host detects network changes, and DNS Long-Lived Queries (LLQs) [DNS-LLQ] to notify hosts immediately when the answers to their earlier DNS queries have changed. BTMM uses the IPv6 Unique Local Address (ULA) [RFC4193] as the host identifier and employs the NAT Port Mapping Protocol (PMP) [NAT-PMP] to assist NAT traversal. It uses Kerberos [RFC4120] for end-to-end authentication and uses IPsec [RFC4301] to secure data communications between two end hosts.
BTMMは、主に既存のプロトコルおよびソフトウェアツールのセットを統合することにより、上記の機能を実現します。これは、ホストは、[ネットワークの変更を検出し、DNS長期性クエリ(のLLQ)ときDNSリソースレコード(RR)を更新するためにホスト到達可能性情報、ダイナミックDNSアップデート[RFC2136]を発表するDNSベースのサービス発見[DNS-SD]を使用しています彼らの以前のDNSクエリへの回答が変更されたとき、すぐにホストに通知するDNS-LLQ]。 BTMMは、ホスト識別子としてのIPv6ユニークローカルアドレス[RFC4193]を使用し、NATトラバーサルを支援するために、NATポートマッピングプロトコル(PMP)[NAT-PMP]を採用しています。これは、エンドツーエンド認証のためにケルベロス[RFC4120]を使用し、二つのエンドホスト間でデータ通信を確保するためにIPsec [RFC4301]を使用します。
To keep an established TCP connection running while either of the two end hosts may change its IP address requires that the connection use unique and stable identifiers that do not change with the addresses, and that a mapping service exists between these stable identifiers and dynamically changing IP addresses. BTMM uses DNS to provide this mapping service. Figure 1 provides a sketch of the basic components in the BTMM implementation.
2つのエンドホストのいずれかがそのIPアドレスを変更することがありながら、確立されたTCP接続の実行を継続するには、接続がアドレスを変更しないユニークかつ安定した識別子を使用することを必要とし、マッピングサービスは、これらの安定した識別子と動的に変化するIPの間に存在していることアドレス。 BTMMは、このマッピング・サービスを提供するために、DNSを使用しています。図1は、BTMM実装の基本的な構成要素のスケッチを提供します。
DDNS update +--------+ DDNS update +--------------->| |<-------+ | | DNS | | | LLQ | | LLQ | | +---------->| |<----+ | | | | | | | | | +--------+ | | | | | | +----------+ | V +---+--+----+ | | +-+-------+ | +-------| | |Endhost N| Tunnel | NAT +------>|Endhost M | | |<=====================================>| | +---------+ | | | | +-----------+ +----------+
Figure 1
図1
Apple Inc. operates a DNS domain called members.me.com and provides DNS name resolution services for all the subdomains underneath. Every BTMM user is assigned a DNS subdomain under members.me.com, e.g., alice.members.me.com. The user then assigns a DNS name for each of her computers, e.g., myMacPro.alice.members.me.com. The reachability information of each of the user's hosts is encoded in DNS resource records and published in the DNS. For example, if the host myMacPro.alice.members.me.com has a public IPv4 address P, P represents the reachability information to the host. On the other hand, if the host is behind a NAT, its reachability information is composed of the public IP address of the NAT box and the port number opened on the NAT to reach the internal host. In this case, both the public IP address of the NAT box and the port number are encoded into DNS using DNS SRV records [RFC2782], as we explain in the next section. When a user logs in from a host M, M starts updating the DNS server about its reachability information. If the user has multiple hosts, M also sets up LLQs with the DNS server for her other hosts, so that the DNS server can push any reachability changes of these other hosts to M immediately.
アップル社はmembers.me.comと呼ばれるDNSドメインを操作して、下にあるすべてのサブドメインのDNS名前解決サービスを提供します。すべてのBTMMユーザーはmembers.me.com、例えば、alice.members.me.com下のDNSサブドメインが割り当てられます。その後、ユーザは、例えば、彼女のコンピュータのそれぞれに対してmyMacPro.alice.members.me.com DNS名を割り当てます。ユーザーのホストのそれぞれの到達可能性情報は、DNSリソースレコードでエンコードし、DNSで公開されています。ホストmyMacPro.alice.members.me.comはパブリックIPv4アドレスPを有する場合、例えば、Pは、ホストへの到達可能性情報を表します。ホストがNATの背後にある場合一方、その到達可能性情報は、NATボックスのパブリックIPアドレスと内部ホストに到達するためにNATで開かれたポート番号で構成されています。我々は次のセクションで説明し、この場合、両方のNATボックスのパブリックIPアドレスとポート番号は、[RFC2782]のDNS SRVレコードを使用してDNSにエンコードされています。ユーザーがホストMからログインすると、Mは、その到達可能性情報に関するDNSサーバの更新を開始します。ユーザーが複数のホストを持っている場合、DNSサーバはすぐにMにこれらの他のホストの任意の到達可能性の変更をプッシュすることができるように、Mはまた、彼女の他のホストのDNSサーバとのLLQを設定します。
To obtain a unique identifier for each host, BTMM automatically generates an IPv6 ULA for each host as its identifier at machine boot time. This design choice allows BTMM to reuse all the existing code of applications and protocols that already support IPv6. To ensure end-to-end data security, BTMM leverages the existing IPsec to protect the communications and Kerberos to perform end-to-end authentication.
各ホストの一意の識別子を取得するには、BTMMは自動的にマシンの起動時にその識別子として、各ホストのIPv6 ULAを生成します。この設計上の選択はBTMMが既にIPv6をサポートするアプリケーションとプロトコルのすべての既存のコードを再利用することができます。エンドツーエンドのデータのセキュリティを確保するために、BTMMは、エンドツーエンドの認証を実行するために、通信およびKerberosを保護するために、既存のIPsecを利用しています。
BTMM provides an IPv6 socket interface to user applications. It then wraps the IPv6 packets with IPsec Encapsulating Security Payload (ESP) [RFC4303] and encapsulates the packets in a UDP/IP tunnel, as illustrated in Figure 2. Note that this is the case even when both ends have public IPv4 addresses.
BTMMユーザアプリケーションにIPv6ソケットインタフェースを提供します。その後のIPsecカプセル化セキュリティペイロード(ESP)[RFC4303]とIPv6パケットをラップし、これは両端がパブリックIPv4アドレスを持っている場合でもであることが図2注に示すように、UDP / IPトンネルにパケットをカプセル化します。
+-------------+------------+------------+---------------+ | IPv4 Header | UDP Header | IPsec ESP | IPv6 Packet | +-------------+------------+------------+---------------+
Figure 2
図2
The following sections describe each of the basic components in BTMM. Since this document is intended to be an informal description of the BTMM implementation, it does not include all the details (e.g., packet format, error code, etc) of each component.
以下のセクションでは、BTMMにおける基本的な構成要素のそれぞれを記述しています。この文書はBTMM実装の非公式の説明であることを意図されているので、各構成要素のすべての詳細を(例えば、パケットフォーマット、エラーコードなど)を含みません。
For each host, BTMM encodes into DNS both the host identifier and its current location information. BTMM stores the host identifier (IPv6 ULA) in a DNS AAAA RR and uses a DNS SRV RR [RFC2782] to represent the host's current location information. For hosts behind a NAT box, the use of a DNS SRV RR allows BTMM to store both the public IP address of the NAT box and also the port opened for the host.
各ホストのために、BTMMはDNSにホスト識別子と、その現在位置情報の両方を符号化します。 BTMMは、DNSのAAAA RRのホスト識別子(IPv6ユニークローカルアドレス)を格納し、ホストの現在の位置情報を表すためのDNS SRVのRR [RFC2782]を使用します。 NATボックスの背後にあるホストの場合、DNSのSRV RRの使用はBTMMがNATボックスのパブリックIPアドレスの両方を保存することができますし、また、ポートは、ホストのために開かれました。
The SRV RR consists of eight fields: _Service._Proto.Name, Time to Live (TTL), Class, Type, Priority, Weight, Port, and Target. BTMM uses SRV RRs in the following way.
_Service._Proto.Name、生存時間(TTL)、クラス、タイプ、優先度、体重、ポート、およびターゲット:SRV RRは8つのフィールドで構成されています。 BTMMは、以下の方法でのSRV RRを使用しています。
Service is the symbolic name of the desired service. In the BTMM case, the service is named "autotunnel", which means that the information contained in the SRV RR is used by BTMM to automatically set up a tunnel between two end hosts.
サービスは、目的のサービスのシンボリック名です。 BTMMの場合、サービスは、SRV RRの中に含まれる情報を自動的に二つのエンドホスト間のトンネルを設定するためにBTMMによって使用されることを意味し、「autotunnel」と命名されています。
Proto is the symbolic name of the desired protocol. In this document, the protocol is "_udp". BTMM uses "_udp" to tunnel packets between the two ends to achieve NAT traversal.
プロトは、所望のプロトコルの記号名です。この文書では、プロトコルは「_udp」です。 BTMMはNATトラバーサルを達成するために、二つの端部間のトンネルパケットに「_udp」を使用します。
Name is the domain this RR refers to. When a user subscribes to BTMM service with the username "alice", a domain name "alice.members.me.com" is assigned to her. The user assigns a name, such as "myMacPro", to each host that is appended to the assigned domain name. Hence, the first part of the SRV record would look like this: "_autotunnel._udp.myMacPro.alice.members.me.com".
名前は、このRRが参照するドメインです。ユーザーは、ユーザー名「アリス」とBTMMサービスに加入すると、ドメイン名「alice.members.me.comは」彼女に割り当てられています。ユーザーは、割り当てられたドメイン名に付加されている各ホストに、そのような「myMacPro」として、名前を割り当てます。したがって、SRVレコードの最初の部分は次のようになります。「_autotunnel._udp.myMacPro.alice.members.me.com」。
Priority and Weight are set to zero, since there is only one instance that provides autotunnel service for each name in BTMM.
BTMMで名前ごとにautotunnelサービスを提供してインスタンスが1つしかないので、優先度と重みは、ゼロに設定されています。
Port is the port opened on the target host of the service. In BTMM, most likely it is the external port a NAT opened for the host behind it. Knowing the port number is the basic requirement for NAT traversal via UDP encapsulation. If the host is not behind a NAT, the port opened on the host for autotunnel service is placed here.
ポートは、サービスのターゲットホスト上で開かれたポートです。 BTMMでは、最も可能性が高いことは、NATがその背後にあるホストのために開かれた外部ポートです。ポート番号を知ることは、UDPカプセル化を経由してNATトラバーサルのための基本的な要件です。ホストがNATの背後にされていない場合、ポートはここに置かれautotunnelサービスのホスト上で開かれました。
Target is the canonical hostname of the host that provides the service. In BTMM, it refers to a name constructed by appending the user's domain name to an autotunnel label, which identifies the host and is not generally user-visible. The autotunnel label is created by concatenating "AutoTunnel" with the IEEE EUI-64 identifier [EUI64] of the primary network interface. Hence, an example for the Target field would look like this: AutoTunnel-00-22-69-FF-FE-8E-34- 2A.alice.members.me.com. After obtaining the SRV RR, the remote host can query the A RR for the Target and get the external tunnel address for the BTMM client during the NAT Traversal.
ターゲットは、サービスを提供するホストの正式ホスト名です。 BTMMでは、ホストを識別し、一般ユーザが表示されていないautotunnelラベルにユーザのドメイン名を追加することによって構築名前を指します。 autotunnelラベルは、プライマリネットワークインタフェースのIEEE EUI64識別子[EUI64]で「AutoTunnel」を連結することによって作成されます。したがって、ターゲットフィールドの例は次のようになります。AutoTunnel-00-22-69-FF-FE-8E-34- 2A.alice.members.me.com。 SRV RRを取得した後、リモートホストがターゲットのA RRを照会し、NATトラバーサル中BTMMクライアント用の外部トンネルアドレスを取得することができます。
BTMM's NAT traversal function requires NAT router devices to support NAT-PMP or the Universal Plug and Play (UPnP) Internet Gateway Device (IGD). NAT-PMP is the alternative introduced by Apple Inc. to the more common IGD Standardized Device Control Protocol [IGD] as published in the UPnP Forum. Both NAT-PMP and IGD require the NAT devices to be able to open a port for inbound traffic to some host behind it and to inform the host about its public IP address. The differences between IGD and NAT-PMP can be found in [NAT-PMP]. This section focuses on NAT-PMP.
BTMMのNATトラバーサル機能は、NAT-PMPまたはユニバーサルプラグをサポートし、(UPnPの)インターネットゲートウェイデバイス(IGD)を再生するためにNATルータ装置が必要です。 NAT-PMPは、UPnPフォーラムに掲載されたように、より一般的なIGD標準化されたデバイス制御プロトコル[IGD]にされたApple Inc.によって導入代替手段です。 NAT-PMPとIGDの両方が、その背後にあるいくつかのホストへのインバウンドトラフィック用のポートを開くことができるように、そのパブリックIPアドレスについてホストに通知するためにNATデバイスが必要です。 IGDとNAT-PMPとの違いは、[NAT-PMP]で見つけることができます。このセクションでは、NAT-PMPに焦点を当てています。
NAT-PMP is a protocol that is designed specifically to handle the NAT traversal without manual configuration. When a host determines that its primary IPv4 address is in one of the private IP address ranges defined in "Address Allocation for Private Internets" [RFC1918], it invokes NAT-PMP to communicate with the NAT gateway to request the creation of inbound mappings on demand. Having created a NAT mapping to allow inbound traffic, the client host then publishes its NAT box's public IP address and external port number in a DNS server.
NAT-PMPが手動で設定することなく、NATトラバーサルを処理するように特別に設計されたプロトコルです。ホストは、その主要なIPv4アドレスは、「個人的なインターネットのための配分」[RFC1918]で定義されたプライベートIPアドレス範囲の一つである、それは上のインバウンドマッピングの作成を要求するNATゲートウェイと通信するためにNAT-PMPを起動すると判断した場合デマンド。インバウンドトラフィックを許可するNATマッピングを作成した、クライアントのホストは、DNSサーバにそのNATボックスのパブリックIPアドレスおよび外部ポート番号を発行しています。
A host sends its Port Mapping Protocol request to the default gateway, which means that by default, this protocol is designed for small home networks where the host's default gateway is the NAT router. If the host finds that NAT-PMP or UPnP IGD is not available on its network, it would proceed under the assumption that the network is a public network.
ホストは、デフォルトでは、このプロトコルは、ホストのデフォルトゲートウェイがNATルータである小規模なホームネットワーク用に設計されていることを意味し、デフォルトゲートウェイにそのポートマッピングプロトコル要求を送信します。ホストはNAT-PMPまたはUPnPのIGDが、そのネットワーク上で利用できないことを発見した場合、それは、ネットワークがパブリックネットワークであるという仮定の下で進行します。
To request a port mapping, the client host sends its request packet via UDP to port 5351 of its configured gateway address and waits 250 ms for a response [NAT-PMP]. If no response is received after 250 ms, the host repeats the process with exponential back-off.
ポートマッピングを要求するために、クライアントホストは、その構成ゲートウェイアドレスのポート5351にUDPを介してその要求パケットを送信し、レスポンス[NAT-PMP] 250ミリ秒待機します。応答が250ミリ秒後に受信されない場合、ホストは、指数バックオフを用いて処理を繰り返します。
While requesting the port mapping, the host can specify the desired external port (e.g., the port that is identical to the internal port opened on the host), but the NAT device is not obliged to allocate the desired one. If such a port is not available, the NAT device responds with another port. The primary reason for allowing the host to request a specific port is to help recovery from a NAT device crash by allowing the host to request the same port number used before the crash. This simple mechanism allows the end hosts (instead of the NAT box) to keep the mapping states, which turns hard state in the network into soft state, and enables automatic recovery whenever possible.
ポートマッピングを要求している間、ホストは所望の外部ポートを指定することができる(例えば、内部ポートと同一のポートは、ホストにオープン)が、NATデバイスは、所望のいずれかを割り当てる義務はありません。そのようなポートが利用できない場合、NATデバイスが別のポートで応答します。ホストが特定のポートを要求することを可能にするための主な理由は、ホストがクラッシュする前に使用したのと同じポート番号を要求できるようにすることで、NATデバイスのクラッシュからの回復を支援することです。この単純な機構は、柔らかい状態にネットワークハード状態をオンにマッピング状態を維持する(代わりにNATボックスの)エンドホストを可能にし、可能な限り自動回復を可能にします。
The default port-mapping lifetime is 3600 seconds. The host tries to renew the mapping every 1800 seconds. The renewal message sent by the client host, whether for the purpose of extending the lease or recreating mappings after the NAT device reboots, is the same as the message requesting a port mapping.
デフォルトのポートマッピングの寿命は3600秒です。ホストは、マッピングごとに1800秒を更新しようとします。クライアントホストによって送信された更新メッセージは、リースの延長またはNATデバイスが再起動後にマッピングを再作成する目的のためかどうか、ポートマッピングを要求するメッセージと同じです。
A mapping may be removed in a variety of ways. If a client host fails to renew a mapping, the mapping is automatically deleted when its lifetime expires. If the client host's DHCP address lease expires, the NAT device also automatically deletes the mapping. A client host can also send an explicit packet to request the deletion of a mapping that is no longer needed.
マッピングは、様々な方法で除去することができます。クライアントホストは、マッピングを更新するために失敗した場合はその寿命が満了したとき、マッピングは自動的に削除されます。クライアントホストのDHCPアドレスのリースが期限切れになった場合は、NATデバイスも自動的にマッピングを削除します。クライアントホストは、もはや必要とされているマッピングの削除を要求するために、明示的なパケットを送信することができます。
To determine the public IP address of the NAT, the client host also sends the query packet to port 5351 of the configured gateway address. The NAT device responds with a packet containing the public IP address of NAT.
NATのパブリックIPアドレスを決定するには、クライアントのホストも設定ゲートウェイアドレスのポート5351への問い合わせパケットを送信します。 NATデバイスは、NATのパブリックIPアドレスを含むパケットで応答します。
In case the public IP address of the NAT changes, the NAT gateway sends a gratuitous response to the link-local multicast address 224.0.0.1, port 5350 to notify the clients about the new IP address, and the host can then update its DNS SRV record to reflect its new reachability as we describe in the next section.
NAT変化のパブリックIPアドレスの場合には、NATゲートウェイは、リンクローカルマルチキャストアドレス224.0.0.1、新しいIPアドレスについてクライアントに通知するポート5350、およびホストへの無償応答は、そのDNSのSRVを更新することができ送ります我々は次のセクションで説明するように、その新しい到達可能性を反映するために、レコード。
There are a number of situations where NAT-PMP (and consequently BTMM) does not work.
NAT-PMP(およびその結果としてBTMM)が動作しない状況がいくつかあります。
Some people's primary IP address assigned by their ISPs may itself be a NAT address. In addition, some people may have a public IP address, but may put their hosts (perhaps unknowingly) behind multiple nested NAT boxes. NAT traversal cannot be achieved with NAT-PMP in such situations.
自分のISPによって割り当てられた一部の人のプライマリIPアドレスは、それ自体がNATアドレスであってもよいです。また、一部の人々は、パブリックIPアドレスを持っているかもしれませんが、複数のネストされたNAT箱の後ろに(おそらく無意識のうちに)自分のホストを置いてもよいです。 NATトラバーサルは、このような状況でNAT-PMPを達成することはできません。
In some cases, a site may run multiple subnets in the private network behind a NAT gateway. Such subnetting breaks the assumption of NAT-PMP protocol because a host's default router is not necessarily the device performing NAT.
いくつかのケースでは、サイトには、NATゲートウェイの背後にあるプライベートネットワーク内の複数のサブネットを実行することができます。ホストのデフォルトルータは、必ずしもNATを実行するデバイスではないため、このようなサブネットは、NAT-PMPプロトコルの仮定を破ります。
This section describes how BTMM handles IP address or port number changes, so that the hosts of the same user can find each other and keep ongoing TCP connections even after the changes happen at one or both ends.
このセクションでは、同じユーザのホストがお互いを見つけて、変更が一端または両端で発生した後も継続中のTCPコネクションを維持することができるようにBTMMは、IPアドレスやポート番号の変更を処理する方法について説明します。
After a BTMM client receives the notification about the network changes, it updates the list of active interfaces. Then, the client sends requests to the NAT device (if it is behind a NAT) in order to create a port mapping and obtain the new public IP address.
BTMMクライアントがネットワークの変更についての通知を受けた後、それがアクティブなインターフェイスのリストを更新します。次に、クライアントは、ポートマッピングを作成し、新しいパブリックIPアドレスを取得するために(それがNATの背後にある場合)、NATデバイスに要求を送信します。
Next, the BTMM client makes changes to the local autotunnel interface, i.e., configures the IPv6 interface for the inner address of the tunnel. If there are established tunnels, it scans to find those whose local inner/outer addresses have been changed since the tunnel was set up, and then puts in the current addresses.
次に、BTMMクライアントはローカルautotunnelインターフェースへの変更を行い、即ち、トンネルの内部アドレスのIPv6インタフェースを構成します。確立されたトンネルが存在する場合、それは、そのローカルの内部/外部アドレスはトンネルが設定された以降に変更され、その後、現在のアドレスに入れされているものを見つけるためにスキャンします。
With all these done, the BTMM client publishes the changes to DNS.
これらすべてが完了すると、BTMMクライアントは、DNSの変更を公開しています。
The mobile nature of BTMM clients implies that dynamic DNS updates are required if the location information of hosts are to be published via DNS.
BTMMクライアントのモバイル性質は、ホストの位置情報は、DNS経由で公開されることになっている場合、ダイナミックDNSの更新が必要とされていることを意味します。
However, a mobile host may have dynamically updated an RR but the updated value has not been propagated to the authoritative DNS server, leaving stale RRs in the server. Hence, Dynamic DNS Update Leases (DDULs) [DDUL] are employed by BTMM to minimize the chances of stale RRs. Note that DDUL controls the lifetime of dynamically updated RRs at the authoritative DNS servers, while the RRs' TTL values control the cache lifetime at caching resolvers.
しかし、モバイルホストは、動的RRを更新したかもしれませんが、更新された値は、サーバーに古くなったRRを残し、権威DNSサーバに伝播されていません。したがって、動的DNS更新リース(DDULs)DDUL]は、古くなったRRの可能性を最小限にするためにBTMMによって採用されています。 RRのTTL値がキャッシュリゾルバでキャッシュの有効期間を制御しながらDDULは、権威DNSサーバーで動的に更新RRの寿命を制御することに注意してください。
In case of network changes, the RRs of a host are updated immediately after local interfaces are properly configured, and after the port mapping and the public IP address of the NAT are obtained. Usually there are 4 types of RRs involved: a AAAA RR for updating the new host identifier of the host (possibly the same as the old one); an SRV RR for updating the autotunnel service information, which includes the new external port; an A RR for updating the new public IP address; and a TXT RR for describing the autotunnel device information. The name for the SRV RR is discussed in Section 3, and the names for the A, AAAA, and TXT RRs are specified in the Target field of the SRV RR. The host then constructs and sends an SRV query for the dynamic DNS server to which it should send updates. Following our example for alice, it queries the SRV RR for _dns-update-tls._udp.alice.members.me.com. Then, the updates are sent to the dynamic DNS server returned in the Target field of query response.
ネットワークの変更の場合には、ホストのRRはローカルインタフェースが適切に設定された直後に更新され、ポートマッピングおよびNATのパブリックIPアドレスの後に得られます。通常、関連するRRの4種類があります。ホストの新しいホスト識別子を更新するためのAAAA RRは(古いものとおそらく同じ)。新しい外部ポートを備えてautotunnelサービス情報を更新するためのSRV RR。新しいパブリックIPアドレスを更新するためのA RR。そしてautotunnelデバイス情報を説明するためのTXT RR。 SRV RRのための名前は、第3節で説明され、そしてA、AAAA、およびTXT資源レコードの名前は、SRV RRのターゲットフィールドに指定されています。ホストは、それが更新を送信する先のダイナミックDNSサーバーのSRVクエリーを構築し、送信します。アリスのための私達の例に続き、それは_dns-update-tls._udp.alice.members.me.comのSRV RRを照会します。その後、更新はクエリ応答のターゲットフィールドに返さダイナミックDNSサーバに送信されます。
In addition, periodic refreshes are also required by the DDUL even in the absence of any network changes. The update requests contain a signed 32-bit integer indicating the lease life in seconds. To reduce network and server load, a minimum lease of 30 minutes is required. On the other hand, to avoid stale information, a lease longer than 2 hours is not allowed in BTMM. The typical length is 90 minutes. The client host refreshes the RRs before the lease expires to prevent them from being deleted by the server.
また、定期的なリフレッシュもあっても、任意のネットワーク変更の不在下でDDULによって必要とされます。更新要求は、秒単位でリース寿命を示す符号付き32ビット整数を含みます。ネットワークおよびサーバーの負荷を軽減するために、30分の最低リース料が必要です。一方、古くなった情報を避けるために、2時間より長いリースはBTMMでは許可されていません。典型的な長さは90分です。リースがサーバーによって削除されることを防ぐために有効期限が切れる前に、クライアントのホストは、RRを更新します。
In dynamic environments, changes to DNS information can often be frequent. However, since a DNS query only retrieves the RR value available at that instance in time, one must continue to query DNS to learn the latest changes. This solution presents the dilemma of choosing a low polling rate that leaves the client with stale information or choosing a high polling rate that would have an adverse impact on the network and server.
動的な環境では、DNS情報の変更は、多くの場合、頻繁にすることができます。 DNSクエリが時間だけに、そのインスタンスで利用可能RR値を取得するので、一つは最新の変更を学ぶためにDNSを照会し続けなければなりません。このソリューションは、古い情報を使用してクライアントを残し、低ポーリングレートを選択するか、ネットワークとサーバ上の不利な影響を与える高ポーリングレートを選択するのジレンマを提示しています。
To let the hosts that care about particular DNS RRs learn the changes quickly and efficiently, BTMM uses DNS Long-Lived Queries (LLQs) [DNS-LLQ] to let the DNS server notify the client host once any changes are made to the concerned DNS data.
特定のDNS RRを気に迅速かつ効率的に変更を学ぶホストを聞かせするには、BTMMが使用するDNS長期性クエリ(のLLQ)[DNS-LLQ] DNSサーバは、一度すべての変更が関係DNSに対して行われたクライアントホストに通知できるようにするにはデータ。
To obtain the LLQ server information, the client issues an SRV query. So alice's host issues a query for _dns-llq-tls._udp.alice.members.me.com and obtains the server that provides LLQ service. LLQs are initiated by a client and are completed via a four-way handshake: Initial Request, Challenge, Challenge Response, and ACK + Answers. During the Challenge phase, the DNS server provides a unique identifier for the request, and the client is required to echo this identifier in the Challenge Response phase. This handshake provides resilience to packet loss, demonstrates client reachability, and reduces denial-of-service attack opportunities.
LLQサーバの情報を取得するには、クライアントは、SRVクエリーを発行します。だから、アリスのホストが_dns-llq-tls._udp.alice.members.me.comのクエリを発行し、LLQサービスを提供するサーバを取得します。 LLQは、クライアントによって開始され、4ウェイハンドシェイクを経て完成されている:最初のリクエスト、チャレンジ、チャレンジレスポンス、およびACK +回答。チャレンジ段階では、DNSサーバは、要求の一意の識別子を提供し、クライアントは、チャレンジ・レスポンス・フェーズでは、この識別子をエコーするために必要とされます。このハンドシェイクは、パケット損失に対する回復力を提供し、クライアントの到達可能性を実証し、サービス拒否攻撃の機会を減らします。
LLQ lease is negotiated during the handshake. In BTMM, the minimum lease is 15 minutes, and the maximum lease is 2 hours. Leases are refreshed before they expire.
LLQのリースは、ハンドシェーク時にネゴシエートされます。 BTMMにおいて、最小リースは15分であり、最大リースは2時間です。有効期限が切れる前にリースが更新されます。
When a change ("event") occurs to a name server's domain, the server checks if the new or deleted RRs answer any LLQs. If so, the RRs are sent to the LLQ issuers in the form of a gratuitous DNS response. The client acknowledges the reception of the notification; otherwise, the server resends the response. If a total of 3 transmissions (with exponential backoff) fail, the client is considered unreachable, and the LLQ is deleted.
変更(「イベント」)は、ネームサーバのドメインに発生すると、サーバーのチェックは、新規または削除RRはどんなのLLQに答える場合。そうであれば、RRは無償DNS応答の形でLLQ発行者に送信されます。クライアントは、通知の受信を認めます。そうでない場合は、サーバが応答を再送信します。 (指数バックオフで)3つの送信の合計が失敗した場合、クライアントは到達不可能とみなされ、およびLLQは削除されます。
A BTMM client then updates its tunnels according to the query answers. The callback function for automatically updating tunnels is depicted Figure 3.
BTMMクライアントは、クエリの回答に応じてそのトンネルを更新します。自動的に更新トンネルのコールバック関数は、図3に示されています。
1: Push Updated AAAA RR +------------+ <----------------------------------- | | 2: Query for autotunnel SRV RR | | +--------+ -----------------------------------> | | | | 3: Reply Updated SRV RR | DNS server | | client | <----------------------------------- | | | | 4: Query for Target in SRV RR | | +--------+ -----------------------------------> | | 5: Reply Updated A RR of Target | | <----------------------------------- | | +------------+
In Step 1: Client learns the inner IP address of the tunnel. In Step 3: Client learns the port opened for UDP NAT traversal. In Step 5: Client learns the public IP address of the remote NAT, i.e., the outer IP address of the tunnel.
ステップ1:クライアントは、トンネルの内部IPアドレスを学習します。ステップ3では:クライアントは、ポートはUDP NATトラバーサルのために開かれた学習します。ステップ5で:クライアントは、リモートのNAT、すなわち、トンネルの外側のIPアドレスをパブリックIPアドレスを学習します。
Figure 3
図3
BTMM needs to assign a topology-independent identifier to each client host for the following reasons. First, two end hosts may wish to have the established TCP connections survive network changes. Second, sometimes one needs a constant identifier to be associated with a key so that the Security Association can survive the location changes.
BTMMは、次のような理由から、各クライアントホストへのトポロジに依存しない識別子を割り当てる必要があります。まず、二つのエンドホストが確立されたTCP接続は、ネットワークの変更を生き残ることを望むことがあります。第二に、時には1は、セキュリティ協会は場所の変更を生き残ることができるように、キーに関連付けられる一定の識別子を必要とします。
The above needs for a host identifier impose very little constraint on the properties of the identifier. In particular, one notes that this identifier does not need to be a permanent one as long as its lifetime is no shorter than the lifetime of any TCP connection or any Security Association that runs on the host.
ホスト識別子のための上記のニーズは、識別子の特性にはほとんど制約を課します。具体的には、一つはこの識別子は限りその寿命は、ホスト上で動作する任意のTCP接続または任意のセキュリティ協会の寿命よりも短くなっていないよう恒久的である必要はないことを指摘しています。
Much effort has been put into the development of host identifiers. Possible candidates for host identifiers include DNS name and Host Identity Tag (HIT) in the Host Identity Protocol (HIP) [RFC4423]. However, because the current protocol stack used IP as identifiers in TCP, other transport protocols, and some applications, if one does not wish to rewrite all the transport protocol and application code, then DNS is ruled out as infeasible because DNS names have variable lengths.
多くの努力は、ホスト識別子の開発に置かれています。ホスト識別子のための可能な候補者は、DNS名とホスト識別プロトコル(HIP)[RFC4423]でホストアイデンティティタグ(HIT)が含まれます。 1は、すべてのトランスポートプロトコルおよびアプリケーションコードを書き直すしたくない場合は、現在のプロトコルスタックは、TCP内の識別子、他のトランスポートプロトコル、およびいくつかのアプリケーションとしてIPを使用しているためしかし、その後、DNSは、DNS名が変数の長さを持っているので、実行不可能として除外されます。
For HIP, although publickey-based HIT has the same length as an IPv6 address, we still lack a secure way to retrieve the public keys. Under this condition, using HIT would not bring us much benefit.
公開ベースのHITは、IPv6アドレスと同じ長さを有しているがHIPのために、我々はまだ公開鍵を取得するための安全な方法を欠いています。この状態で、HITを使用すると、私たちに多くの利益をもたらすことはないだろう。
BTMM chooses to use IPv6 ULA as the host identifier so that all the existing IPv6 code can be used directly. Since the identifier does not need to stay constant over machine shutdown or crashes, each host creates an IPv6 ULA at boot time. Furthermore, since a host does not leak this ULA to the network, it would not cause any problem to the routing system.
BTMMは、すべての既存のIPv6コードを直接使用することができるように、ホスト識別子としてIPv6ユニークローカルアドレスを使用することを選択しました。識別子は、マシンのシャットダウンまたはクラッシュした上で一定のままにする必要はありませんので、各ホストは、ブート時にIPv6のULAを作成します。さらに、ホストがネットワークにこのULAを漏洩しないので、ルーティングシステムに何らかの問題が発生しません。
In BTMM, IPv6 ULA is advertised to be used in the autotunnel service of the host. Thus, the IPv6 address needs to be configured before BTMM starts its service.
BTMMでは、IPv6ユニークローカルアドレスは、ホストのautotunnelサービスで使用されるようにアドバタイズされます。 BTMMがそのサービスを開始する前にこのように、IPv6アドレスを設定する必要があります。
When the machine boots up, the IPv6 address for autotunnel service is initialized as zeros, and the autotunnel interface is marked as inactive. During the process when BTMM updates the interfaces list (which is performed every time the network changes), BTMM would randomly generate an IPv6 ULA according to [RFC4193] if the IPv6 address is found uninitialized. The first octet of the ULA is set to be "0xFD", and the following 7 octets are randomly selected from 0~255. Finally, the EUI-64 identifier fills up the remaining 8 octets. Since there are 56 random bits plus a theoretically unique EUI-64 identifier, it is unlikely for an IPv6 ULA collision between any two hosts of the same subscriber to occur.
マシンのブート時まで、autotunnelサービスのIPv6アドレスはゼロとして初期化され、autotunnelインタフェースが非アクティブとしてマークされます。 BTMMは(たびにネットワークの変更を行う)インターフェイスリストを更新プロセス中に、BTMMは、ランダムにIPv6アドレスが初期化されていない見つかった場合、[RFC4193]に記載のIPv6ユニークローカルアドレスを生成します。 ULAの最初のオクテットは、「0xFDで」に設定され、かつ以下の7つのオクテットはランダムに0〜255から選択されています。最後に、EUI-64識別子は、残りの8つのオクテットをいっぱいに。 56個のランダムビットと、理論的にユニークなEUI-64識別子が存在するので、同じ加入者の任意の2つのホスト間のIPv6ユニークローカルアドレスの衝突が発生することは考えにくいです。
This locally generated ULA remains unchanged when the machine is on, despite its location changes. Hence, the user can fully enjoy the benefits brought by topology-independent host identifiers. After the machine is turned off, this particular ULA is no longer kept.
マシンはその場所の変更にもかかわらず、であるとき、このローカルで生成されたULAは変わりません。したがって、ユーザーは完全にトポロジに依存しないホスト識別子によってもたらされるメリットを享受することができます。マシンがオフした後、この特定のULAはもはや保持されません。
BTMM users often have to fetch their personal data via a network they don't trust (or they do not know whether or not it's trustworthy). Hence, it is important for BTMM to have an effective means to secure the communications.
BTMMユーザーは、多くの場合、彼らが信頼していないネットワークを経由して自分の個人データをフェッチする必要がある(または、彼らはそれが信頼できるのですかどうかわかりません)。 BTMMが通信を保護するための効果的な手段を持っているため、それが重要です。
Kerberos is a "single sign on" technology and has been supported in Apple's products since MAC OS X 10.5. Each Mac OS X client maintains a local Key Distribution Center (KDC) for the use of Bonjour and peer-to-peer security.
Kerberosは、技術「シングルサインオン」であるとMAC OS X 10.5以降、Appleの製品でサポートされています。それぞれのMac OS Xクライアントは、Bonjourのとピア・ツー・ピアのセキュリティを使用するためのローカルキー配布センター(KDC)を維持します。
When the user first signs in to MobileMe on a host, it automatically receives a digital certificate and private key for "Back to My Mac Encryption Certificate" from KDC. When the user connects to another system using BTMM, authentication is performed using the Public Key Cryptography for Initial Authentication in Kerberos (PKINIT) protocol [RFC4556] with that certificate. After that, the user is granted a "ticket" that permits it to continue to use the services on the remote host without re-authenticating until the ticket expires (a ticket usually has a 10-hour lifetime).
ホスト上のMobileMeにユーザ最初の兆候は、それが自動的に「どこでもMy Macの暗号化証明書への」KDCからのデジタル証明書と秘密鍵を受信した場合。ユーザがBTMMを使用して別のシステムに接続すると、認証された証明書を使用してケルベロス(PKINIT)プロトコル[RFC4556]に初期認証のために公開鍵暗号を用いて行われます。その後、ユーザーはそれは、チケットの有効期限が切れるまで(チケットは通常、10時間の寿命を持っている)再認証なしでリモートホスト上のサービスを利用し続けることができる「チケット」を付与されます。
BTMM uses Transaction SIGnature (TSIG) to authenticate the user when dynamic DNS update is performed [RFC2845]. Also, to protect the subscriber's privacy, LLQ is required to contain TSIG. This authentication mechanism is based on the shared secret key, which in BTMM's case is derived from the subscriber's MobileMe account password.
BTMMは、動的DNS更新が[RFC2845]を行う際にユーザを認証するためにトランザクション署名(TSIG)を使用します。また、加入者のプライバシーを保護するために、LLQはTSIGを含有することが要求されます。この認証機構はBTMMの場合には、加入者のMobileMeアカウントのパスワードから導出された共有秘密鍵に基づいています。
Every time a DNS request/response is going to be issued, a TSIG RR is dynamically computed with the HMAC-MD5 [RFC2104] message digest algorithm (and the TSIG RR will be discarded once its has been used). Inside the TSIG RR, the name of the shared secret key in the domain name syntax is included, so the receiver knows which key to use (this is especially useful if the receiver is the DNS server). This TSIG RR is appended to the additional data section before the message is sent out. The receiver of the message verifies the TSIG RR and proceeds only if the TSIG is valid.
DNS要求/応答が発行されようとしている、TSIG RRを動的にHMAC-MD5 [RFC2104]メッセージで計算されるたびにダイジェストアルゴリズム(およびその使用された後TSIG RRは破棄されます)。 TSIG RRの内部では、ドメイン名の構文で共有秘密鍵の名前が含まれているので、受信機は(受信機がDNSサーバーである場合、これは特に便利です)、使用するキーを知っています。メッセージが送出される前に、このTSIG RRは、追加のデータセクションに追加されます。メッセージの受信側は、TSIG RRを検証し、TSIGが有効である場合にのみ進行します。
Besides, the DNS messages are also protected by TLS [RFC5246] to prevent eavesdropping.
また、DNSメッセージはまた、盗聴を防止するために、TLS [RFC5246]によって保護されています。
Before the Security Association can be established between two end hosts, the Internet Key Exchange (IKE) [RFC5996] process needs to be accomplished.
セキュリティアソシエーションは、二つのエンドホスト間で確立される前に、インターネット鍵交換(IKE)[RFC5996]プロセスを達成する必要があります。
BTMM calls Racoon [Racoon], the IKE daemon, to do the key exchange, after which the key is put into the Security Association Database (SAD). The exchange mode is set to be aggressive so that it will not take too long, and it uses a pre-shared key to do the user authentication. The subscriber's Fully Qualified Domain Name (FQDN) is used as both identifier and pre-shared key during the IKE process.
BTMMはラクーン[ラクーン]、IKEデーモンは、キーは、セキュリティアソシエーションデータベース(SAD)に置かれた後に鍵交換を行うために呼び出します。交換モードは、それがあまりにも長くはかからないように積極的に設定し、それがユーザー認証を行うための事前共有キーを使用しています。加入者の完全修飾ドメイン名(FQDN)が識別子とIKEプロセスの間の事前共有鍵の両方として使用されます。
When it comes time to set up Security Associations between two BTMM clients, we have two choices: put the other host's IPv4 address in the destination address field or put it in the IPv6 address of the remote end.
それは2つのBTMMクライアント間でセキュリティアソシエーションを設定するための時間が来るとき、私たちは2つの選択肢があります。宛先アドレスフィールド内の他のホストのIPv4アドレスを入れたり、リモートエンドのIPv6アドレスにそれを置きます。
If the IPv4 address (which is the public address of a NAT) is chosen to associate with a Security Association, that means we set up a Security Association between one end host and the NAT of the other host. The IPv6 packet would then be wrapped by the UDP header and then get encrypted by ESP. After the encrypted packet arrives at the NAT, the NAT device decrypts the packet and sends it to the destination according to the port mapping. Although this approach seems viable, there are 3 drawbacks:
(NATのパブリックアドレス)IPv4アドレスがセキュリティアソシエーションと関連付けるために選択された場合、それは我々が1台のエンドホストと他のホストのNAT間でセキュリティアソシエーションを設定することを意味します。 IPv6パケットは、UDPヘッダによってラップされるだろうし、その後、ESPで暗号化されます。暗号化されたパケットは、NATに到着した後、NATデバイスは、パケットを復号化し、ポートマッピングに従って、先に送信します。このアプローチは、実行可能なようですが、3つの欠点があります。
o First, the encryption is not really end-to-end, i.e., only the path between one end host and the NAT device of the other end is protected. The rest of the path, from the NAT device to the other BTMM client, is unprotected and vulnerable to attacks. If the NAT device is not trustworthy, the communication is at high risk. Even if the NAT device is trustworthy (e.g., the user owns the NAT), it is not uncommon for the NAT to communicate with the host through a broadcast channel, which provides opportunities for an eavesdropper to sniff the sensitive data (consider the unlocked "free" WiFi access near your neighborhood).
Oまず、暗号化は実際にエンドツーエンド、すなわち、一端ホストと他端のNATデバイス間の唯一のパスが保護されていません。パスの残りの部分は、他のBTMMクライアントにNATデバイスから、保護されていないと攻撃に対して脆弱です。 NATデバイスが信頼されていない場合、通信は高リスクです。 NATデバイスは、(例えば、ユーザは、NATを所有している)信頼できる場合でも、(「ロック解除を検討する機密データを盗聴する盗聴者のための機会を提供し、放送チャンネルを介して、ホストと通信するためのNATは珍しいことではありませんあなたの近所の近くに無料の」WiFiアクセス)。
o Second, quite a few BTMM clients are on the move very often. Every time they change their attachment points to the Internet, they will get different IPv4 addresses. As a result, the previously established Security Associations become obsoleted, and the two end hosts need to re-establish them again. This is a waste of time and resources.
O第二に、かなりの数のBTMMクライアントは、非常に頻繁に移動しています。彼らは、インターネットへの接続点を変更するたびに、彼らは別のIPv4アドレスを取得します。その結果、以前に確立されたセキュリティアソシエーションは廃止になり、2つのエンドホストは、再びそれらを再確立する必要があります。これは、時間とリソースの無駄です。
o Third, this approach assumes that the NAT device is able and willing to do the IPsec ESP for the host behind it, which is not always the case.
O第三には、このアプローチは、NATデバイスは、必ずしもそうではありませんその背後にあるホストのためのIPsec ESPを行うことができると喜んでいることを前提としています。
Consequently, BTMM decides to put the IPv6 ULA into the destination field of IPsec Security Associations. In this way, the end-to-end path between the hosts is fully protected, and the Security Associations survive the network changes since the IPv6 ULA remains the same even if the BTMM client changes its location. Furthermore, the encryption is transparent to the NAT device, which means the NAT device is not required to interfere with the IPsec protection.
その結果、BTMMは、IPsecセキュリティアソシエーションの宛先フィールドにIPv6のULAを置くことにしました。このように、ホスト間のエンドツーエンドのパスが完全に保護され、およびIPv6 ULAはBTMMクライアントがその場所を変更しても変わらないので、セキュリティアソシエーションは、ネットワークの変更を生き残ります。さらに、暗号化は、NATデバイスは、IPsec保護に干渉するために必要とされないことを意味NATデバイスに対して透明です。
The BTMM implementation utilizes existing security protocols to address the end-to-end security considerations. It uses Kerberos [RFC4120] for end-to-end authentication and uses IPsec [RFC4301] to secure data communications between two end hosts.
BTMMの実装では、エンドツーエンドのセキュリティの考慮事項に対処するために、既存のセキュリティプロトコルを利用しています。これは、エンドツーエンド認証のためにケルベロス[RFC4120]を使用し、二つのエンドホスト間でデータ通信を確保するためにIPsec [RFC4301]を使用します。
[RFC2104] Krawczyk, H., Bellare, M., and R. Canetti, "HMAC: Keyed-Hashing for Message Authentication", RFC 2104, February 1997.
[RFC2104] Krawczyk、H.、ベラー、M.、およびR.カネッティ、 "HMAC:メッセージ認証のための鍵付きハッシュ化"、RFC 2104、1997年2月。
[RFC2136] Vixie, P., Thomson, S., Rekhter, Y., and J. Bound, "Dynamic Updates in the Domain Name System (DNS UPDATE)", RFC 2136, April 1997.
[RFC2136]いるVixie、P.、トムソン、S.、Rekhter、Y.、およびJ.バウンド、 "ドメインネームシステムにおける動的更新(DNS更新)"、RFC 2136、1997年4月。
[RFC2782] Gulbrandsen, A., Vixie, P., and L. Esibov, "A DNS RR for specifying the location of services (DNS SRV)", RFC 2782, February 2000.
[RFC2782] Gulbrandsenの、A.、いるVixie、P.、およびL. Esibov、 "サービスの場所を特定するためのDNS RR(DNSのSRV)"、RFC 2782、2000年2月。
[RFC2845] Vixie, P., Gudmundsson, O., Eastlake, D., and B. Wellington, "Secret Key Transaction Authentication for DNS (TSIG)", RFC 2845, May 2000.
[RFC2845]いるVixie、P.、グドムンソン、O.、イーストレイク、D.、およびB.ウェリントン、 "DNSのための秘密鍵トランザクション認証(TSIG)"、RFC 2845、2000年5月。
[RFC4120] Neuman, C., Yu, T., Hartman, S., and K. Raeburn, "The Kerberos Network Authentication Service (V5)", RFC 4120, July 2005.
[RFC4120]ノイマン、C.、ゆう、T.、ハルトマン、S.、およびK.レイバーン、 "ケルベロスネットワーク認証サービス(V5)"、RFC 4120、2005年7月。
[RFC4193] Hinden, R. and B. Haberman, "Unique Local IPv6 Unicast Addresses", RFC 4193, October 2005.
[RFC4193] HindenとR.とB.ハーバーマン、 "ユニークローカルIPv6ユニキャストアドレス"、RFC 4193、2005年10月。
[RFC4301] Kent, S. and K. Seo, "Security Architecture for the Internet Protocol", RFC 4301, December 2005.
[RFC4301]ケント、S.とK. Seo、 "インターネットプロトコルのためのセキュリティアーキテクチャ"、RFC 4301、2005年12月。
[RFC4303] Kent, S., "IP Encapsulating Security Payload (ESP)", RFC 4303, December 2005.
[RFC4303]ケント、S.、 "IPカプセル化セキュリティペイロード(ESP)"、RFC 4303、2005年12月。
[RFC4556] Zhu, L. and B. Tung, "Public Key Cryptography for Initial Authentication in Kerberos (PKINIT)", RFC 4556, June 2006.
"ケルベロス(PKINIT)における初期認証のための公開鍵暗号" [RFC4556]朱、L.とB.桐、RFC 4556、2006年6月。
[RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security (TLS) Protocol Version 1.2", RFC 5246, August 2008.
[RFC5246]ダークス、T.およびE.レスコラ、 "トランスポート層セキュリティ(TLS)プロトコルバージョン1.2"、RFC 5246、2008年8月。
[RFC5996] Kaufman, C., Hoffman, P., Nir, Y., and P. Eronen, "Internet Key Exchange Protocol Version 2 (IKEv2)", RFC 5996, September 2010.
[RFC5996]カウフマン、C.、ホフマン、P.、ニール、Y.、およびP. Eronen、 "インターネット鍵交換プロトコルバージョン2(IKEv2の)"、RFC 5996、2010年9月。
[DDUL] Sekar, K., "Dynamic DNS Update Leases", Work in Progress, August 2006.
[DDUL]スカール、K.は、進捗状況、2006年8月に、仕事を "ダイナミックDNSアップデートリース"。
[DNS-LLQ] Sekar, K., "DNS Long-Lived Queries", Work in Progess, August 2006.
[DNS-LLQ]スカール、K.、 "DNS長期性問合せ"、進歩、2006年8月に作業。
[DNS-SD] Cheshire, S. and M. Krochmal, "DNS-Based Service Discovery", Work in Progress, February 2011.
[DNS-SD]チェシャー、S.とM. Krochmal、 "DNSベースのサービス発見"、進歩、2011年2月での作業。
[EUI64] "Guidelines for 64-bit Global Identifier (EUI-64)", <http://standards.ieee.org/regauth/oui/tutorials/ EUI64.html>.
[EUI64] "64ビットのグローバル識別子(EUI64)のためのガイドライン"、<http://standards.ieee.org/regauth/oui/tutorials/ EUI64.html>。
[IGD] "Internet Gateway Device (IGD) Standard Device Control Protocol", <http://www.upnp.org>.
[IGD "インターネットゲートウェイデバイス(IGD)標準デバイス制御プロトコル"、<http://www.upnp.org>。
[NAT-PMP] Cheshire, S., "NAT Port Mapping Protocol (NAT-PMP)", Work in Progress, April 2008.
[NAT-PMP]チェシャー、S.、 "NATポートマッピングプロトコル(NAT-PMP)"、進歩、2008年4月の作業。
[RFC1918] Rekhter, Y., Moskowitz, R., Karrenberg, D., Groot, G., and E. Lear, "Address Allocation for Private Internets", BCP 5, RFC 1918, February 1996.
[RFC1918] Rekhter、Y.、モスコウィッツ、R.、Karrenberg、D.、グルート、G.、およびE.リア、 "個人的なインターネットのための配分"、BCP 5、RFC 1918、1996年2月。
[RFC4423] Moskowitz, R. and P. Nikander, "Host Identity Protocol (HIP) Architecture", RFC 4423, May 2006.
[RFC4423]モスコウィッツ、R.とP. Nikander、 "ホストアイデンティティプロトコル(HIP)アーキテクチャ"、RFC 4423、2006年5月。
[Racoon] "Racoon", <http://ipsec-tools.sourceforge.net>.
[ラクーン] "ラクーン"、<http://ipsec-tools.sourceforge.net>。
Authors' Addresses
著者のアドレス
Stuart Cheshire Apple Inc. 1 Infinite Loop Cupertino, CA 95014 USA Phone: +1 408 974 3207 EMail: cheshire@apple.com
スチュアートチェシャーれたApple Inc. 1無限ループクパチーノ、CA 95014 USA電話:+1 408 974 3207 Eメール:cheshire@apple.com
Zhenkai Zhu UCLA 4805 Boelter Hall, UCLA Los Angeles, CA 90095 USA Phone: +1 310 993 7128 EMail: zhenkai@cs.ucla.edu
Zhenkai朱UCLA 4805 Boelterホール、UCLAロサンゼルス、CA 90095 USA電話:+1 310 993 7128 Eメール:zhenkai@cs.ucla.edu
Ryuji Wakikawa Toyota ITC 465 Bernardo Avenue Mountain View, CA 94043 USA EMail: ryuji.wakikawa@gmail.com
りゅじ わきかわ とよた いTC 465 べrなrど あゔぇぬえ もうんたいん ゔぃえw、 か 94043 うさ えまいl: りゅじ。わきかわ@gまいl。こm
Lixia Zhang UCLA 3713 Boelter Hall, UCLA Los Angeles, CA 90095 USA Phone: +1 310 825 2695 EMail: lixia@cs.ucla.edu
L I老人張UCLA 3713 BOEホール、UCLAロサンゼルス、CA 90095 USA電話:+1 310 825 2695 Eメール:。夏の初め@この時間制限.UCLA