One document matched: draft-lebovitz-kmart-roadmap-02.xml
<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC1195 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.1195.xml">
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC2328 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2328.xml">
<!ENTITY RFC2453 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2453.xml">
<!ENTITY RFC5036 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5036.xml">
<!ENTITY RFC3618 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3618.xml">
<!ENTITY RFC3552 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3552.xml">
<!ENTITY RFC3973 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3973.xml">
<!ENTITY I-D.ietf-tcpm-tcp-auth-opt SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-tcpm-tcp-auth-opt.xml">
<!ENTITY I-D.ietf-pim-sm-linklocal SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-pim-sm-linklocal.xml">
<!-- !ENTITY I-D.lebovitz-ietf-tcpm-tcp-ao-crypto SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.lebovitz-ietf-tcpm-tcp-ao-cypto.xml"-->
<!ENTITY RFC4593 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4593.xml">
<!ENTITY RFC4271 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4271.xml">
<!ENTITY RFC4301 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4301.xml">
<!ENTITY RFC4303 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4303.xml">
<!ENTITY RFC4601 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4601.xml">
<!ENTITY RFC4306 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4306.xml">
<!ENTITY RFC4948 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4948.xml">
<!ENTITY RFC4949 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4949.xml">
<!ENTITY RFC5226 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5226.xml">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc toc="yes" ?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes"?>
<?rfc iprnotified="no" ?>
<?rfc strict="no"?>
<?rfc compact="yes"?>
<rfc category="info" docName="draft-lebovitz-kmart-roadmap-02"
ipr="trust200902">
<front>
<title abbrev="KMART Roadmap">Roadmap for Cryptographic Authentication of
Routing Protocol Packets on the Wire</title>
<author fullname="Gregory Lebovitz" initials="G.L." surname="Lebovitz">
<organization abbrev="Juniper">Juniper Networks, Inc.</organization>
<address>
<postal>
<street>1194 North Mathilda Ave.</street>
<city>Sunnyvale</city>
<region>CA</region>
<code>94089-1206</code>
<country>US</country>
</postal>
<phone></phone>
<email>gregory.ietf@gmail.com</email>
</address>
</author>
<author fullname="" initials="" surname="">
<organization></organization>
<address>
<postal>
<street></street>
<region></region>
<code></code>
<country></country>
</postal>
<phone></phone>
<email></email>
</address>
</author>
<date day="24" month="September" year="2009" />
<area>sec</area>
<workgroup>saag</workgroup>
<abstract>
<t>In the March of 2006 the IAB held a workshop on the topic of
"Unwanted Internet Traffic". The report from that workshop is documented
in <xref target="RFC4948">RFC 4948</xref>. Section 8.2 of RFC 4948 calls
for "[t]ightening the security of the core routing infrastructure." Four
main steps were identified for improving the security of the routing
infrastructure. One of those steps was "securing the routing protocols'
packets on the wire." One mechanism for securing routing protocol
packets on the wire is the use of per-packet cryptographic message
authentication, providing both peer authentication and message
integrity. Many different routing protocols exist and they employ a
range of different transport subsystems. Therefore there must
necessarily be various methods defined for applying cryptographic
authentication to these varying protocols. Many routing protocols
already have some method for accomplishing cryptographic message
authentication. However, in many cases the existing methods are dated,
vulnerable to attack, and/or employ cryptographic algorithms that have
been deprecated. This document creates a roadmap of protocol
specification work for the use of modern cryptogrpahic mechanisms and
algorithms for message authentication in routing protocols. It also
defines the framework for a key management protocol that may be used to
create and manage session keys for message authentication and integrity.
This roadmap reflects the input of both the security area and routing
area in order to form a jointly agreed upon and prioritized work list
for the effort.</t>
</abstract>
</front>
<middle>
<section anchor="Introl" title="Introduction">
<t>In March 2006 the Internet Architecture Board (IAB) held a workshop
on the topic of "Unwanted Internet Traffic". The report from that
workshop is documented in <xref target="RFC4948">RFC 4948</xref>.
Section 8.1 of that document states that "A simple risk analysis would
suggest that an ideal attack target of minimal cost but maximal
disruption is the core routing infrastructure." Section 8.2 calls for
"[t]ightening the security of the core routing infrastructure." Four
main steps were identified for that tightening:</t>
<t><list hangIndent="3" style="symbols">
<t anchor="o" hangText="3">More secure mechanisms and practices for
operating routers. This work is being addressed in the OpSec Working
Group.</t>
<t>Cleaning up the Internet Routing Registry repository [IRR], and
securing both the database and the access, so that it can be used
for routing verifications. This work is being conducted through
liaisons with the RIR's globally.</t>
<t>Specifications for cryptographic validation of routing message
content. This work is being done in the SIDR Working Group.</t>
<t>Securing the routing protocols' packets on the wire</t>
</list></t>
<t>This document addresses the last bullet, securing the packets on the
wire of the routing protocol exchanges.</t>
<section anchor="TerminologyKmart" title="Terminology">
<t>[to be filled out later]</t>
<t>Base RP</t>
<t>key_store</t>
<t>KMP</t>
<t>session keys</t>
<t></t>
</section>
<section anchor="TerminologyReqs" title="Requirements Language">
<t>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 <xref
target="RFC2119">RFC 2119</xref>.</t>
<t></t>
</section>
<section anchor="Scope" title="Scope">
<t></t>
<t>Four basic tactics may be employed in order to secure any piece of
data as it is transmitted over the wire: privacy (or encryption),
authentication, message integrity, and non-repudiation. The focus for
this effort, and the scope for this roadmap document, will be message
authentication and packet integrity only. This work explicitly
excludes, at this point in time, the other two tactics: privacy and
non-repudiation. Since the objective of most routing protocols is to
broadly advertise the routing topology, routing messages are commonly
sent in the clear; confidentiality is not normally required for
routing protocols. However, ensuring that routing peers truly are the
trusted peers expected, and that no roque peers or messages can
compromise the stability of the routing environment is critical, and
thus our focus. The other two explicitly excluded tactics, privacy and
non-repudiation, may be addressed in future work.</t>
<t>It is possible for routing protocol packets to be transmitted
employing all four security tactics mentioned above using existing
standards. For example, one could run unicast, layer 3 or above
routing protocol packets through <xref target="RFC4303">IPsec
ESP</xref>. This would provide the added benefit of privacy, and
non-repudiation. However, routing products have been fine tuned over
the years for the specific processing necessary for these routing
protocols non-encapsulated formats. Operators are, therefore, quite
unwilling to explore new packet encapsulations for these tried and
true protocols.</t>
<t>In addition, at least in the case of BGP and LDP, these protocols
already have existing mechanisms for cryptographically authenticating
and integrity checking the packets on the wire. Products with these
mechanisms have already been produced, code has already been written
and both have been optimized for the existing mechanisms. Rather than
turn away from these mechanisms, we want to enhance them, updating
them to modern and secure levels.</t>
<t>There are two main work phases for this roadmap, and for any BaseRP
work undertaken as part of this roadmap (discussed further in the
<xref target="WorkPhases">Work Phases</xref> section). The first is to
enhance the Base RP's current authentication mechanism, ensuring it
employs modern cryptographic algorithms and methods for its basic
operational model, fulfillling the requirements defined in the <xref
target="Ph1Reqs">Requirements</xref> section, and protecting against
as many of the threats as possible as defined in the <xref
target="ThreatInScope">Threats </xref>section. Many of the BaseRPs'
current mechanisms use manual keys, so the first phase updates will
focus on shoring up the manual key mechanisms that exist.</t>
<t>The second work phase is to define the use of a key management
protocol (KMP) for creating and managing session keys used in the
BaseRPs' message authentication and data integrity functions. It is
hoped that a general KMP framework -- or a small number of frameworks
-- can be defined and leveraged for many BaseRPs.</t>
<t>Therefore, the scope of this roadmap of work includes:</t>
<t></t>
<t><list hangIndent="3" style="hanging">
<t hangText="o">Making use of existing routing protocol security
protocols, where they exist, and enhancing or updating them as
necessary for modern cryptographic best practices,</t>
<t></t>
<t hangText="o">Developing a framework for using automatic key
management in order to ease deployment, lower cost of operation,
and allow for rapid responses to security breaches, and</t>
<t></t>
<t hangText="o">Specifying the automated key management protocol
that may be combined with the bits-on-the-wire mechanisms.</t>
</list></t>
<t>The work also serves as an agreement between the Routing Area and
the Security Area about the priorities and work plan for incrementally
delivering the above work. This point is important. There will be
times when the best-security-possible will give way to
vastly-improved-over-current-security-but-admittedly-not-yet-best-security-possible,
in order that incremental progress toward a more secure Internet may
be achieved. As such, this document will call out places where
agreement has been reached on such trade offs.</t>
<t>This document does not contain protocol specifications. Instead, it
defines the areas where protocol specification work is needed and sets
a direction, a set of requirements, and a relative priority for
addressing that specification work.</t>
<t>There are a set of threats to routing protocols that are considered
in-scope for this document/roadmap, and a set considered out-of-scope.
These are described in detail in the <xref
target="Threats">Threats</xref> section below.</t>
<t></t>
</section>
<section anchor="Goals" title="Goals">
<t>The goals and general guidance for this work roadmap follow:</t>
<t></t>
<t><list hangIndent="3" style="hanging">
<t hangText="1.">Provide authentication and integrity protection
for packets on the wire of existing routing protocols</t>
<t></t>
<t hangText="2.">Deliver a path to incrementally improve security
of the routing infrastructure. The principle of crawl, walk, run
will be in place. Routing protocol authentication mechanisms may
not go immediately from their current state to a state containing
the best possible, most modern security practices. Incremental
steps will need to be taken for a few very practical reasons.
First, there is a great deal of deployed routing devices in
operating networks that will not be able to run the most modern
cryptographic mechanisms without significant and unacceptable
performance penalties. The roadmap for any one routing protocol
MUST allow for incremental improvements on existing operational
devices. Second, current routing protocol performance on deployed
devices has been achieved over the last 20 years through extensive
tuning of software and hardware elements, and is a constant focus
for improvement by vendors and operators alike. The introduction
of new security mechanisms affects this performance balance. The
performance impact of any incremental step of security improvement
will need to be weighed by the community, and introduced in such a
way that allows the vendor and operator community a path to
adoption that upholds reasonable performance metrics. Therefore,
certain specification elements may be introduced carrying the
"SHOULD" guidance, with the intention that the same mechanism will
carry a "MUST" in the next release of the specification. This
gives the vendors and implementors the guidance they need to tune
their software and hardware appropriately over time. Last, some
security mechanisms require the build out of other operational
support systems, and this will take time. An example where these
three reasons are at play in an incremental improvement roadmap is
seen in the improvement of <xref target="RFC4271">BGP's</xref>
security via the update of the TCP Authentication Option <xref
target="I-D.ietf-tcpm-tcp-auth-opt">(TCP-AO)</xref> effort. It
would be ideal, and reflect best common security practice, to have
a fully specified key management protocol for negotiating TCP-AO's
authentication material, using certificates for peer
authentication in the keying. However, in the spirit of
incremental deployment, we will first address issues like
cryptographic algorithm agility, replay attacks, TCP session
resetting in the base TCP-AO protocol before we layer key
management on top of it.</t>
<t></t>
<t hangText="3.">The deploy-ability of the improved security
solutions on currently running routing infrastructure equipment.
This begs the consideration of the current state of processing
power available on routers in the network today.</t>
<t></t>
<t hangText="4.">Operational deploy-ability - A solutions
acceptability will also be measured by how deployable the solution
is by common operator teams using common deployment processes and
infrastructures. I.e. We will try to make these solutions fit as
well as possible into current operational practices or router
deployment. This will be heavily influenced by operator input, to
ensure that what we specify can -- and, more importantly, will --
be deployed once specified and implemented by vendors. Deployment
of incrementally more secure routing infrastructure in the
Internet is the final measure of success.</t>
<t></t>
<t>Interviews with operators show several points about routing
security. First, only about 25% of operators have deployed
security in their routing protocols [REF???, Danny, you got one?].
Of those who have deployed, only about [25% ??] of their routers
are deployed with the authentication enabled. Most report
deploying with one single manual key throughout the entire
network. These same operators report that the one single key has
not been changed since it was originally installed, sometimes five
or more years ago. When asked why, particularly for the case of
BGP using TCP MD5, the following reasons are often given:</t>
<t></t>
<t><list style="letters">
<t>Changing the keys brings down the links/adjacencies,
undermining Service Level Agreements (SLAs).</t>
<t>For external peers, difficulty of coordination with the
other organization. They often don't know who the contact is
at the other organization, so they don't know where to start,
and doing so takes a lot of time in research.</t>
<t>Keys must be changed at precisely the same time in order to
limit connectivity outage duration. This is incredibly
difficult to do, operationally, especially between different
organizations.</t>
<t>Relatively low priority compared to other operatoinal
issues.</t>
<t>Lack of staff to implement the changes device by
device.</t>
<t>One operator reported that the same key is used for all
customer premise equipment. The same operator reported that if
the customer mandated, a unique key could be created, although
the last time this occurred it created such an operational
headache that the administrators now usually tell customers
that the option doesn't even exist, to avoid the difficulties.
These customer-uniqe keys are never changed, unless the
customer demands so.</t>
</list></t>
<t>The main threat at play here is that a terminated employee from
such an operator who had access to the one (or few) keys used for
authentication in these environments could easily wage an attack
-- or offer the keys to others who would wage the attack -- and
bring down many of the adjacencies, causing destabilization to the
routing system.</t>
<t></t>
<t>Whatever mechanisms we specify need to be easier than the
current methods to deploy, and should provide obvious operational
efficiency gains along with significantly better security and
threat protection. This combination of value may be enough to
drive much broader adoption.</t>
<t></t>
<t hangText="5.">Address the threats enumerated above in the <xref
target="Threats">"Threats" section</xref> for each routing
protocol, along a roadmap. Not all threats may be able to be
addressed in the first specification update for any one protocol.
Roadmaps will be defined so that both the security area and the
routing area agree on how the threats will be addressed completely
over time.</t>
<t></t>
<t hangText="6.">Reuse common mechanisms across routing protocols
whenever possible - For example, designers should aim to re-use
the key management protocol that will be defined for BGP's TCP-AO
key establishment for as many other routing protocols as possible.
This is but one example.</t>
<t></t>
<t hangText="7.">Bridge any gaps between routing and security
engineers by recording agreements on work items, roadmaps, and
guidance from the Area leads and Internet Architecture Board (IAB,
www.iab.org).</t>
<t></t>
<t hangText="8.">Create a re-usable architecture and guidelines
for various IETF working teams who will address these security
improvements for various protocols</t>
</list></t>
<t></t>
</section>
<section anchor="NonGoals" title="Non-Goals">
<t>The following two goals are considered out-of-scope for this
effort:</t>
<t><list hangIndent="3" style="hanging">
<t hangText="o">Privacy of the packets on the wire, at this point
in time. Once this roadmap is realized, we may revisit work on
privacy.</t>
<t></t>
<t hangText="o">Message content security. This work is being deal
with in other areas, like SIDR.</t>
</list></t>
<t></t>
</section>
<section anchor="Audience" title="Audience">
<t>The audience for this roadmap includes:<list hangIndent="5"
style="hanging">
<t hangText=""></t>
<t
hangText="o Routing Area working group chairs and members - ">These
people are charged with updates to the routing protocol
specifications. Any and all cryptographic authentication work on
these specifications will occur in Routing Area working
groups.</t>
<t></t>
<t
hangText="o Security Area reviewers of routing area documents - ">These
people are delegated by the Security Area Directors to perform
reviews on routing protocol specifications as they pass through
working group last call or IESG review. They will pay particular
attention to the use of cryptographic authentication and
corresponding security mechanisms for the routing protocols. They
will ensure that incremental security improvements are being made,
in line with this roadmap.</t>
<t></t>
<t hangText="o Security Area engineers - ">These people partner
with routing area authors/designers on the security mechanisms in
routing protocol specifications. Some of these security area
engineers will be assigned by the Security Area Directors, while
others will be interested parties.</t>
<t></t>
<t hangText="o Operators - ">The operators are a key audience for
this work, as the work is considered to have succeeded if the
operators deploy the technology, presumably due to a perception of
significantly improved security value coupled with relative
similarity to deployment complexity and cost. Conversely, the work
will be considered a failure if the operators do not care to
deploy it, either due to lack of value or perceived (or real)
over-complexity of operations.</t>
</list></t>
</section>
</section>
<section anchor="Threats" title="Threats">
<t>In RFC4949<xref target="RFC4949" />, a threat is defined as a
potential for violation of security, which exists when there is a
circumstance, capability, action, or event that could breach security
and cause harm. This section defines the threats that are in scope for
this roadmap, and those that are explicitly out of scope. This document
leverages the "Generic Threats to Routing Protocols" model, <xref
target="RFC4593">RFC 4593</xref> , capitalizes terms from that document,
and offers a terse definition of those terms. (More thorough description
of routing protocol threats sources, motivations, consequences and
actions can be found in <xref target="RFC4593">RFC 4593</xref> itself).
The threat listings below expand upon these threat definitions.</t>
<section anchor="ThreatInScope" title="Threats In Scope">
<t />
<t>The threats that will be addressed in this roadmap are those from
OUTSIDERS, attackers that may reside anywhere in the Internet, have
the ability to send IP traffic to the router, may be able to observe
the router's replies, and may even control the path for a legitimate
peer's traffic. These are not legitimate participants in the routing
protocol. Message authentication and integrity protection specifically
aims to identify messages originating from OUTSIDERS.</t>
<t>The concept of OUTSIDERS can be further refined to include
attackers who are terminated employees, and those sitting
on-path.<list hangIndent="3" style="hanging">
<t hangText="" />
<t hangText="o">On-Path - attackers with control of a network
resource or a tap along the path of packets between two routers.
An on-path outsider can attempt a man-in-the-middle attack, in
addition to several other attack actions. A man-in-the-middle
(MitM) attack occurs when an attacker who has access to packets
flowing between two peers tampers with those packets in such a way
that both peers think they are talking to each other directly,
when in fact they are actually talking to the attacker only.
Protocols conforming to this roadmap will use cryptographic
mechanisms to prevent a man-in-the-middle attacker from situating
himself undetected.</t>
<t />
<t hangText="o">Terminated Employees - in this context, those who
had access router configuration that included keys or keying
material like pre-shared keys used in securing the routing
protocol. Using this material, the attacker could attempt to
impersonate a legitimate router. The goal of addressing this
source specifically is to call out the case where new keys or
keying material becomes necessary very quickly, with little
operational expense, upon the termination of such an employee.
This grouping could also refer to any attacker who somehow managed
to gain access to keying material, and said access had been
detected by the operators such that the operators have an
opportunity to move to new keys in order to prevent attack.</t>
</list></t>
<t>These ATTACK ACTIONS are in scope for this roadmap:</t>
<t>
<list hangIndent="3" style="hanging">
<t hangText="o">SPOOFING - when an illegitimate device assumes the
identity of a legitimate one. Spoofing can be used, for example,
to inject unrealistic routing information that causes the
disruption of network services. Spoofing can also be used to cause
a neighbor relationship to form that subsequently denies the
formation of the relationship with the legitimate router.</t>
<t />
<t hangText="o">FALSIFICATION - an action whereby an attacker
sends false routing information. To falsify the routing
information, an attacker has to be either the originator or a
forwarder of the routing information. Falsification may occur by
an ORIGINATOR, or a FORWARDER, and may involve OVERCLAIMING,
MISCLAIMING, or MISTATEMENT of network resource reachability. We
must be careful to remember that in this work we are only
targeting falsification from outsiders as may occur from tampering
with packets in flight. Falsification from BYZANTINES (see the
<xref target="ThreatsOutScope">Threats Out of Scope section</xref>
below) are not addressed by this roadmap, but by other work in the
IETF.</t>
<t />
<t hangText="o">INTERFERENCE - when an attacker inhibits the
exchanges by legitimate routers. The types of interference
addressed by this work include: <list style="symbols">
<t>ADDING NOISE</t>
<t>REPLAYING OUT-DATED PACKETS</t>
<t>INSERTING MESSAGES</t>
<t>CORRUPTING MESSAGES</t>
<t>BREAKING SYNCHRONIZATION</t>
<t>Changing message content</t>
</list></t>
<t hangText="" />
<t hangText="o">DoS attacks on transport sub-systems - This
includes any other DoS attacks specifically based on the above
attack types. This is when an attacker sends packets aimed at
halting or preventing the underlying protocol over which the
routing protocol runs, for example halting a BGP session by
sending a TCP FIN packet. Another example is sending packets which
confuse or overwhelm a security mechanism itself, for example
initiating an overwhelming load of keying protocol initiations
from bogus sources. All other possible DoS attacks are out of
scope (see next section).</t>
</list>
</t>
<t />
</section>
<section anchor="ThreatsOutScope" title="Threats Out of Scope">
<t />
<t>Threats from BYZANTINE sources -- faulty, misconfigured, or
subverted routers, i.e., legitimate participants in the routing
protocol -- are out of scope for this roadmap. Any of the attacks
described in the above <xref target="ThreatInScope">section</xref>
that may be levied by a BYZANTINE source are therefore also out of
scope.</t>
<t>In addition, these other attack actions are out of scope for this
work:</t>
<t>
<list style="symbols">
<t>SNIFFING - passive observation of route message contents in
flight</t>
<t>FALSIFICATION by BYZANTINE sources - unauthorized message
content by a legitimate source.</t>
<t>INTERFERENCE due to:<list style="symbols">
<t>NOT FORWARDING PACKETS - cannot be prevented with
cryptographic authentication</t>
<t>DELAYING MESSAGES - cannot be prevented with cryptographic
authentication</t>
<t>DENIAL OF RECEIPT - cannot be prevented with cryptographic
authentication</t>
<t>UNAUTHORIZED MESSAGE CONTENT - the work of the IETF's SIDR
working group
grouphttp://www.ietf.org/html.charters/sidr-charter.html).</t>
<t>Any other type of DoS attack. For example, a flood of
traffic that fills the link ahead of the router, so that the
router is rendered unusable and unreachable by valid packets
is NOT an attack that this work will address. Many other such
examples could be contrived.</t>
</list></t>
</list>
</t>
</section>
<t />
</section>
<section anchor="Categories" title="Categorizing Routing Protocols">
<t></t>
<t>For the purpose of this security roadmap definition, we will
categorize the routing protocols into groups and have design teams focus
on the specification work within those groupings. It is believed that
the groupings will have like requirements for their authentication
mechanisms, and that reuse of authentication mechanisms will be greatest
within these grouping. The work items placed on the roadmap will be
defined and assigned based on these categorizations. It is also hoped
that, down the road in the Phase 2 work, we can create one KMP per
category (if not for several categories) so that the work can be easily
leveraged by the various RP teams. KMPs are useful for allowing simple,
automated updates of the traffic keys used in a base protocol. KMPs
replace the need for humans, or OSS routines, to periodically replace
keys on running systems. It also removes the need for a chain of manual
keys to be chosen or configured. When configured properly, a KMP will
enforce the key freshness policy of two peers by keeping track of the
key lifetime and negotiating a new key at the defined interval.</t>
<t></t>
<section anchor="CategoryMsgType"
title="Category: Messaging Transaction Type">
<t>The first categorization defines four types of messaging
transactions used on the wire by the base routing protocol, the Base
RP. They are:</t>
<t><list hangIndent="15" style="hanging">
<t hangText=""></t>
<t hangText="One-to-One">One peer router directly and
intentionally delivers a route update specifically to one other
peer router. Examples are BGP and LDP. [question to reviewers:
Should we list all protocols into these categories right here, or
just give a few examples?]</t>
<t hangText=""></t>
<t hangText="One-to-Many">A router peers with multiple other
routers on a single network segment -- i.e. on link local -- such
that it creates and sends one route update message which is
intended for consumption by multiple peers. Examples would be OSPF
and IS-IS.</t>
<t hangText=""></t>
<t hangText="Client-Server">A client-server routing protocol is
one where one router initiates a request for route information
from another router, who then formulates a response to that
request, and replies with the requested data. Examples are a BGP
Route Reflector and [???? Are there other examples? Is this the
right example?].</t>
<t hangText=""></t>
<t hangText="Multicast">Multicast protocols have unique security
properties because of the fact that they are inherently
group-based protocols and thus have group keying requirements at
the routing level where link-local routing messages are
multicasted. Also, at least in the case of PIM-SM, some messages
are are sent unicast to a given peer(s), as is the case with
router-close-to-sender and the "Rendezvous Point". Some work for
application layer message security has been done in the Multicast
Security working group (MSEC,
http://www.ietf.org/html.charters/msec-charter.html) and may be
helpful to review, but is not directly applicable.</t>
<t></t>
</list>[author's note: I think the above definitions need clean up.
Routing area folks, especially ADs, PLEASE suggest new text.]</t>
</section>
<section anchor="CategoryPeerVsGrp"
title="Category: Peer vs. Group Keying">
<t>The second axis of categorization groups protocols by the keying
mechanism that will be necessary for distributing session keys to the
actual routing protocol transports. They are:</t>
<t><list hangIndent="15" style="hanging">
<t hangText=""></t>
<t hangText="Peer keying">One router sends the keying messages
directly and only to one other router, such that a one-to-one,
unique keying security association (SA) is established between the
two routers</t>
<t hangText=""></t>
<t hangText="Group Keying">One router creates and distributes a
single keying message to multiple peers. In this case an group SA
will be established and used between multiple peers
simultaneously. Group keying exists for protocols like <xref
target="RFC2328">OSPF</xref> , and also for multicast protocols
like <xref target="RFC4601">PIM-SM</xref>.</t>
<t></t>
</list></t>
</section>
<section anchor="SecurityCharacterizations"
title="Security Characterization Vectors">
<t>A few more considerations must be made about the protocol and its
use when initially categorizing the protocol and scoping the
authentication work.</t>
<section anchor="InternalVsExternal"
title="Internal vs. External Operation">
<t>The designers must consider whether the protocol is an internal
routing protocol or an external one, i.e. Does it primarily run
between peers within a single domain of control or between two
different domains of control? Some protocols may be used in both
cases, internally and externally, and as such various modes of
authentication operation may be required for the same protocol.
While it is preferred that all routing exchanges run with the utmost
security mechanisms enabled in all deployments, the exhortation is
greater for those protocols running at a peering point between two
domains of control, and greatest for those on public exchange point
links, because the volume of attackers are greater from the outside.
Note however that the consequences of internal attacks maybe no less
severe -- in fact they may be quite a bit more sever -- than an
external attack. An example of this internal versus external
consideration is BGP which has both EBGP and IBGP modes. Another
example is a multicast protocol where the neighbors are sometimes
within a domain of control and sometimes external, like at an
exchange link. It would be more acceptable to give up some security
to get some convenience by using a group key on large broadcast
networks within your domain, whereas operators may favor security
over convenience and use unique keying on peering links. In this
case again, designers must consider both modes of operation and
ensure the authentication mechanisms fit both.</t>
<t>Operators are encouraged to run cryptographic authentication on
all their adjacencies, but to work from the outside in, i.e. The
EBGP links are a higher priority than the IBGP links because they
are externally facing.</t>
</section>
<section anchor="UniqueVsSharedKeys" title="Unique versus Shared Keys">
<t>This section discusses security considerations of when it is
appropriate to use the same authentication key inputs for multiple
peers and when it is not. This is largely a debate of convenience
versus security. It is often the case that the best secured
mechanism is also the least convenient mechanism. For example, an
air gap between a host and the network absolutely prevents remote
attacks on the host, but having to copy and carry files using the
"sneaker net" is quite inconvenient and unscalable.</t>
<t>Operators have erred on the side of convenience when it comes to
securing routing protocols with cryptographic authentication. Many
do not use it at all. Some use it only on external links, but not on
internal links. Those that do use it often use the same key for all
peers across their entire network. It is common to see the same key
in use for years, and that being the same key that was entered when
authentication was originally configured.</t>
<t>The goal for designers is to create authentication mechanisms
that are easy for the operators to deploy, and still use unique
keys. Operators have the impression that they NEED shared keys, when
in fact they do not. What they need is the relative convenience they
experience from deploying cryptographic authentication with shared
keys, compared to the inconvenience they would experience if they
deployed the same authentication mechanism using unique keys per
pair. An example is BGP Route Reflectors. Here operators often use
the same authentication key between each client and the route
reflector. The roadmaps defined from this guidance document will
allow for unique keys to be used between each client and the peer,
without sacrificing much convenience. Designers should strive to
deliver unique keying mechanisms with similar ease-of-deployment
properties as today's shared keys.</t>
<t>Operators must understand the consequences of using shared keys
across many peers. Unique keys are more secure than shared keys
because the reduce both the attack target size and the attack
consequence size. In this context, the attack target size represents
the number of unique routing exchanges across a network that an
attacker may be able to observe in order to gain security
association credentials, i.e. Crack the keys. If a shared key is
used across the entire internal domain of control, then the attack
target size is very large. The larger the attack target, the easier
it is for the attacker to gain access to analysis data, and greater
the volume of analysis data he can access, both of which make his
job easier. In this context, the attack consequence size represents
the amount of routing adjacencies that can be negatively affected
once a breach has occurred, i.e. Once the keys have been acquired by
the attacker. Again, if a shared key is used across the internal
domain, then the consequence size is the whole network. Ideally,
unique key pairs would be used for each adjacency.</t>
<t>In some cases designers may need to use shared keys in order to
solve the given problem space. For example, a multicast packet is
sent once but then observed and consumed by several routing
neighbors. If unique keys were used per neighbor, the benefit of
multicast would be erased because the casting peer would have to
create a different announcement packet/stream for each listening
peer. Though this may be desired and acceptable in some small amount
of use cases, it is not the norm. Shared group keys are an
acceptable solution here, and much work has been done already in
this area (see MSEC working group).</t>
<t></t>
</section>
<section anchor="OutVsInLine_Keying"
title="Out-of-Band vs. In-line Key Management">
<t></t>
<t>This section discusses the security and use case considerations
for keys placed on devices through out-of-band configurations versus
through one routing peer-to-peer key management protocol exchanges.
Note, when we say here "Peer-to-Peer KMP" we do not mean in-band to
the RP. Instead, we mean that the exchange occurs in-line, over IP,
between the two routing peers directly. In in-line KMP the peers
themselves handle the key and security association negotiation
between themselves directly, whereas in an out-of-band system the
keys are placed onto the device through some other configuration or
management method or interface.</t>
<t>An example of an out-of-band mechanism could be an administrator
who makes a remote management connection (e.g. using SSH) to a
router and manually enters the keying information -- like the
algorithm, the key(s), the lifetimes, etc. Another example could be
an OSS system which inputs the same information via a script over an
SSH connection, or by pushing configuration through some other
management connection, standard (Netconf-based) or proprietary.</t>
<t>The drawbacks of an out-of-band mechanism include: lack of
scale-ability, complexity and speed of changing if breech is
suspected. For example, if an employee who had access to keys was
was terminated, or if a machine holding those keys was belived
compromised, then the system would be considered insecure and
vulnerable until new keys were defined by a human. Those keys then
need to be placed into the OSS system, manually, and the OSS system
then needs to push the change -- often during a very limited change
window -- into the relevant devices. If there are multiple
organizations involved in these connections, this process is greatly
complicated.</t>
<t>The benefits of out-of-band mechanism is that once the new
keys/parameters are set in OSS system they can be pushed
automatically to all devices within the OSS's domain of control.
Operators have mechanisms in place for this already. In small
environments with few routers, a manual system is not difficult to
employ.</t>
<t>We further define an in-line key exchange as using
cryptographicly protected identity verification, session key
negotiation, and security association parameter negotiation between
the two routing peers. The KMP between the two peers may also
include the negotiation of parameters, like algorithms,
cryptographic inputs (e.g. initialization vectors), key life-times,
etc.</t>
<t>The benefits an in-line KMP are several. An in-line KMP results
in key(s) that are privately generated, and not recorded permanently
anywhere. Since the traffic keys used in a particular connection are
not a fixed part of a device configuration no steal-able data exists
anywhere else in the operator's systems which can be stolen, e.g. in
the case of a terminated or turned employee. If a server or other
data store is stolen or compromised, the thieves gain no access to
current traffic keys. They may gain access to key derivation
material, like a PSK, but not current traffic keys in use. In this
example, these PSKs can be updated into the device configurations
(either manually or through an OSS) without bouncing or impacting
the existing session at all. In the case of using raw assymetric
keys or certificates, instead of PSKs, the data theft would likely
not even result in any compromise, as the key pairs would have been
generated on the routers, and never leave those routers. In such a
case no changes are needed on the routers; the connections will
continue to be secure, non-compromised. Additoinally, with a KMP
regular re-keys operations occur without any operator involvement or
oversight. This keeps keys fresh.</t>
<t>The drawbacks to using a KMP are few. First, a KMP requires more
cryptographic processing for the router at the very beginning of a
connection. This will add some minor start-up time to connection
establishment versus a purely manual key approach. Once a connection
with traffic keys have been established via a KMP, the performance
is the same in the KMP and the out-of-band case. KMPs also add
another layer of protocol and configuration complexity which can
fail or be misconfigured. This was more of an issue when these KMPs
were first deployed, but less so as these implementaitons and
operational experience with them has matured.</t>
<t>The desired end goal is in-line KMPs.</t>
</section>
</section>
</section>
<section anchor="Roadmap" title="The Roadmap">
<t></t>
<section anchor="WorkPhases"
title="Work Phases on any Particular Protocol">
<t>The desired endstate for the KMART work contains several items.
First, the people desiring to deploy securely authenticated and
integrity validated packets between routing peers have the tools
specified, implemented and shipping in order to deploy. These tools
should be fairly simple to implement, and not more complex than the
security mechanisms to which the operators are already accustomed.
(Examples of security mechanisms to which router operators are
accustomed include: the use of assymetric keys for authentication in
SSH for router configuration, the use of pre-shared keys (PSKs) in TCP
MD5 for BGP protection, the use of self-signed certificates for HTTPS
access to device Web-based user interfaces, the use of strongly
constructed passwords and/or identity tokens for user identification
when logging into routers and management systems.) While the tools
that we intend to specify may not be able to stop a deployment from
using "foobar" as an input key for every device across their entire
routing domain, we intend to make a solid, modern security system that
is not too much more difficult than that. In other words, simplicity
and deployability are keys to success. The Base RP's will specify
modern cryptographic algorithms and security mechanisms. Routing peers
will be able to employ unique, pair-wise keys per peering instance,
with reasonable key lifetimes, and updating those keys on a somewhat
regular basis will be operationally easy, causing no service
interruption.</t>
<t>The reach the above described end-state using manual keys may only
be pragmatic in very small deployments. In larger deployments, this
end state will be much more operationally difficult to reach with only
manual keys. Thus, there will be a need for key lifecycle management,
in the form of a key management protocol, or KMP. We expect that the
two forms, manual key usage and KMP usage, will co-exist in the real
world. For example, a provider's edge router at a public exchange
peering point will want to use a KMP for ensuring unique and fresh
keys with external peers, while a manual key may be used between a
provider's access edge router and each of the same provider's customer
premise routers with which it peers.</t>
<t>In accordance with the desired end state just described, we define
two main work phases for each Base RP:</t>
<t><list hangIndent="4" style="hanging">
<t hangText="1.">Enhance the Base RP's current authentication
mechanism. This work involves enhancing a Base RP's current
security mechanisms in order to achieve a consistent, modern level
of security functionality within its existing keying framework. It
is understood and accepted that the existing keying frameworks are
largely based on manual keys. Since many operators have already
built operational support systems (OSS) around these manual key
implementations, there is some automation available for an
operator to leverage in that way, if the underlying mechanisms are
themselves secure. In this phase, we explicitly exclude embedding
or creating a KMP. A list of the requirements for Phase 1 work are
below in the section <xref target="Ph1Reqs">"Requirements for
Phase 1 BaseRPs' Security Updates</xref>.</t>
<t></t>
<t hangText="2.">Develop an automated keying framework. The second
phase will focus on the development of an automated keying
framework to faciliate unique pair-wise (or perhaps group-wise,
where applicable) keys per peering isntance. This involves the use
of a KMP. A KMP is helpful because [will add a more full
description here, sorry, ran out of time]. The framework for any
one BaseRP will fall under, and be able to leverage, the generic
framework described below in section <xref
target="CommonFramework"></xref>.</t>
</list></t>
<t></t>
</section>
<section anchor="Ph1Reqs"
title="Requirements for Phase 1 BaseRPs' Security Update">
<t>Here is a proposed list of requirements that SHOULD be addressed by
Phase 1 (according to "1." above) security updates to Base RPs [to be
reviewed after -01 is released]:</t>
<t><list hangIndent="5" style="numbers">
<t>Clear definitions of which elements of the transmission (frame,
packet, segment, etc.) are protected by the authentication
mechanism</t>
<t>Strong algorithms, and defined and accepted by the security
community, MUST be specified. The option should use algorithms
considered accepted by the security community, which are
considered appropriately safe. The use of non-standard or
unpublished algorithms SHOULD BE avoided.</t>
<t>Algorithm agility for the cryptograhpic algorithms used in the
authentication MUST be specified, i.e. more than one algorithm
MUST be specified and it is clear how new algorithms MAY be
specified and used.</t>
<t>Secure use of simple PSKs, offering both operational
convenience as well as building something of a fence around
stupidity, MUST be specified.</t>
<t>Inter-connection replay protection. Packets captured from one
connection MUST NOT be able to be re-sent and accepted during a
later connection.</t>
<t>Intra-connection replay protection. Packets captured during a
connection MUST NOT be able to be re-sent and accepted during that
same connection, to deal with long-lived connections.</t>
<t>A change of security parameters REQUIRES, and even forces, a
change of session traffic keys</t>
<t>Intra-connection re-keying which occurs without a break or
interruption to the current peering session, and, if possible,
without data loss, MUST be specified.</t>
<t>Efficient re-keying SHOULD be provided. The specificaion SHOULD
support rekeying during a connection without the need to expend
undue computational resources. In particular, the specification
SHOULD avoid the need to try/compute multiple keys on a given
packet.</t>
<t>Prevent DoS attacks as those described as in-scope in the
threats section <xref target="ThreatInScope"></xref>above</t>
<t>Default mechanisms and algorithms specified and defined as
REQUIRED for all implementations</t>
<t>Manual keying MUST be supported.</t>
<t>Architecture of the specification MUST consider and allows for
future use of a KMP.</t>
</list></t>
</section>
<section anchor="CommonFramework" title="Common Framework">
<t>Each of the categories of routing protocols above will require
unique designs for authenticating and integrity checking their
protocols. However, a single underlying framework for delivering
automatic keying to those solutions will be pursued. Providing such a
single framework will significantly reduce the complexity of each step
of the overall roadmap. For example, if each Base RP needed to define
it's own key management protocol this would balloon the total amount
of different sockets that needed to be opened and processes that
needed to be simultaneously running on an implementation. It would
also significantly increase the run-time complexity and memory
requirements of such systems running multiple Base RPs, causing
perhaps slower performance of such systems. However, if we can land on
a very small set (perhaps one or two) of automatic key management
protocols, KMPs, that the various Base RP's can use, then we can
reduce this implementation and run-time complexity. We can also
decrease the total amount of time implementers need to deliver the
KMPs for the Base RPs that will provide better threat protection.</t>
<t>The components for the framework are listed here, and described
below:</t>
<t></t>
<t><list style="symbols">
<t>BaseRP security mechanism</t>
<t>KMP</t>
<t>KeyStore</t>
<t>BaseRP-to-KMP API</t>
<t>BaseRP-to-KeyStore API</t>
<t>KMP-to-KeyStore API</t>
<t>Common Base RP mechanisms</t>
<t>Identifiers</t>
<t>Proof of identity</t>
<t>Profiles</t>
</list></t>
<t>The framework is modularized for how keys and security association
(SA) parameters generally get passed from a KMP to a transport
protocol. It contains three main blocks and APIs.</t>
<t><figure anchor="figure1" title="Automatic Key Management Framework">
<artwork><![CDATA[
+------------+ +--------------------+
| | | | Check +-----------+
| Identifier +-->| +---------->| |
| | | KMP Function | | Identity |
+----------- + | |<----------+ Proof |
| | Approve | |
+-+--------------+---+ +-----------+
| |
KMP-to-KeyStore | |
API | |
\|/ |
+-------+-------+ |
| | | KMP-to-BaseRP
| Session | | API
| KeyStore | |
| | |
+-------+-------+ |
| |
| |
KeyStore-to- | |
BaseRP API | |
| \|/
+--------------------------+-------------+
| | |
| \|/ Common BaseRP |
| +-------+-------+ Authentication |
| | | Mechanisms |
+---| Transport |-----+--------------+
| | Key(s) | |
| | | |
| +---------------+ Specific BaseRP |
| Authentication |
| Security |
| Mechanism |
| |
+----------------------------------------+
]]></artwork>
</figure></t>
<t></t>
<t>Each element of the framework is described here:</t>
<t></t>
<t><list hangIndent="8" style="hanging">
<t hangText=""></t>
<t hangText="o Base RP -">Base RP security mechanism - In each
case, the Base RP will contain a mechanism for using session keys
in their security option.</t>
<t hangText=""></t>
<t hangText="o KeyStore - ">Each implementation will also contain
a protocol independent mechanism for storing keys, called
KeyStore. The key_store will have multiple different logical
containers, one container for each session key that any given Base
RP will need.</t>
<t hangText=""></t>
<t hangText="o RP-KeyStore API - ">There will be an API for Base
RP to retrieve the keys from the KeyStore. This will enable
implementers to reuse the same API calls for all their Base RPs.
The API will necessarily include facility to retrieve other
parameters required for the construction of the BaseRP's packets,
like key IDs or key lifetimes, etc.</t>
<t></t>
<t hangText="o KMP - ">There will be an automated key management
protocol, KMP. This KMP will run between the peers. The KMP serves
as a protected channel between the peers, through which they can
negotiate and pass important data required to exchange proof of
key identifiers, derive session keys, determine re-keying,
synchronize their keying state, signal various keying events,
notify with error messages, etc. As an analogy, in the IPsec
protocol (<xref target="RFC4301">RFC4301</xref>, <xref
target="RFC4303">RFC4303</xref> and <xref
target="RFC4306">RFC4306</xref>) IKEv2 is the KMP that runs
between the two peers, while AH and ESP are two different base
protocols that take session keys from IKEv2 and use them in their
transmissions. In the analogy, the Base RP, say BGP and LDP, are
analogous to ESP and AH, while the KMP is analogous to IKEv2
itself.</t>
<t></t>
<t hangText="o RP-KMP API - ">There will be an API for the Base
RP to request a session key of the KMP, and be notified when the
keys are available for it. The API will also contain a mechanism
for the KMP to notify the Base RP that there are new keys that it
must now use, even if it didn't request those keys. The API will
also include a mechanism for the KMP to receive requests for
session keys and other parameters from the routing protocol. The
KMP will also be aware of the various Base RPs and each of their
unique parameters that need to be negotiated and returned.</t>
<t hangText=""></t>
<t hangText="o KMP-KeyStore API - ">There will be an API for the
KMP to place keys and parameters into the KeyStore after their
negotiation and derivation with the other peer. This will enable
the implementers to reuse the same calls for multiple KMPs that
may be needed to address the various categories of RPs as
described in the section defining<xref
target="Categories">categories</xref>.</t>
<t></t>
</list></t>
<t>[after writing this all up, I'm not sure we really need the
key_store in the middle. As long as we standardize fully all the calls
needed from any RP to any KMP, then there can be a generic hand-down
function from the KMP to the RP when the key and parameters are ready.
Let's sleep on it.]</t>
<t>[will need state machines and function calls for these APIs, as one
of the work items. In essence, there is a need for a core team to
develop the APIs out completely in order for the RP teams to use them.
Need to get this team going asap.]</t>
<t></t>
<t><list hangIndent="8" style="hanging">
<t hangText=""></t>
<t hangText="o Identifiers - ">A KMP is fed by identities. The
identities are text strings used by the peers to indicate to each
other that each are known to the other, and authorized to
establish connections. Those identities must be represented in
some standard string format, e.g. an IP address -- either v4 or
v6, an FQDN, an RFC 822 email address, a Common Name [RFC PKI],
etc. Note that even though routers do not normally have email
addresses, one could use an RFC 822 email address string as a
formatted identifier for a router. They would do so simply by
putting the router's reference number or name-code as the "NAME"
part of the address, left of the "@" symbol. They would then place
some locational context in the "DOMAIN" part of the string, right
of the "@" symbol. An example would be
"rtr0210@sf.ca.us.company.com". This document does not suggest
this string value at all. Instead, the concept is used only to
clarify that the type of string employed does not matter. It also
does not matter what specific text you chose to place in that
string type. It only matters that the type of string -- and it's
format -- must be agreed upon by the two endpoints. Further, the
string can be used as an identifier in this context, even if the
string is not actually provisioned in it's source domain. For
example, the email address "rtr0210@sf.ca.us.company.com" may not
actually exist as an email address in that domain, but that string
of characters may still be used as an identifier type(s) in the
routing protocol security context. What is important is that the
community decide on a small but flexible set of Identifiers they
will all support, and that they decide on the exact format of
those string. The formats that will be used must be standardized
and must be sensible for the routing infrastructure.</t>
<t hangText=""></t>
<t hangText="o Identity Proof - ">Once the form of identity is
decided, then there must be a cryptographic proof of that
identity, that the peer really is who they assert themselves to
be. Proof of identity can be arranged between the peers in a few
ways, for example pre-shared keys, raw assymetric keys, or a more
user-friendly representation of assymetric keys, like a
certificate. Certificates can be used in a way requiring no
additional supporting systems -- e.g. public keys for each peer
can be maintained locally for verification upon contant.
Certificate management can be made more simple and scalable with
the use minor additional supporting systems, as is the case with
self-signed certificates and a flat file list of "approved
thumbprints". Self-signed certificates will have somewhat lower
security properties than Certificate Authority signed certificates
[RFC Certs]. The use of these different identity proofs vary in
ease of deployment, ease of ongoing management, startup effort,
ongoing effort and management, security strength, and consequences
from loss of secrets from one part of the system to the rest of
the system. For example, they differ in resistance to a security
breach, and the effort required to remediate the whole system in
the event of such a breach. The point here is that there are
options, many of which are quite simple to employ and deploy.</t>
<t hangText=""></t>
<t hangText="o Profiles - ">Once the KMP, Identifiers and Proofs
mechanisms are converged upon, they must be clearly profiled for
each Base RP, so that implementors and deployers alike understand
the different pieces of the solution, and can have similar
configurations and interoperability across multiple vendors'
devices, so as to reduce management difficulty. The profiles
SHOULD also provide guidance on when to use which various
combinations of options. This will, again, simplify use and
interoperability.</t>
</list></t>
<t>Common Mechanisms - In as much as they exist, the framework will
capture mechanisms that can be used commonly not only within a
particular category of Base RP and Base RP to KMP, but also between
Base RP categories. Again, the goal here is simplifying the
implementations and runtime code and resource requirements. There is
also a goal here of favoring well vetted, reviewed, operationally
proven security mechanisms over newly brewed mechanisms that are less
well tried in the wild.</t>
<t></t>
</section>
<section anchor="WorkItems" title="Work Items Per Routing Protocol">
<t></t>
<t>Each Base RP will have a team (the [RP]-KMART team) working on
incrementally improving their Base RP's security, These teams will
have the following main work items:</t>
<t>PHASE 1:</t>
<t><list style="hanging">
<t hangText="Characterize the RP"></t>
<t>Assess the Base RP to see what authentication mechanisms it has
today. Does it needs significant improvement to its existing
mechanisms or not? This will include determining if modern, strong
security algorithms and parameters are present.</t>
<t></t>
<t hangText="Define Optimal State"></t>
<t>List the requirements for the Base RP's session key usage and
format to contain to modern, strong security algorithms and
mechanisms, per the <xref target="Ph1Reqs">Requirements
</xref>section above. The goal here is to determine what is needed
for they BaseRP alone to be used securely with at least manual
keys.</t>
<t></t>
<t hangText="Gap Analysis"></t>
<t>Enumerate the requirements for this protocol to move from its
current security state, the first bullet, to its optimal state,
bullet two above.</t>
<t></t>
<t hangText="Define, Assign, Design"></t>
<t>Create a deliverables list of the design and specification
work, with milestones. Define owners. Release a document(s)</t>
<t></t>
</list></t>
<t></t>
<t>PHASE 2:</t>
<t></t>
<t><list style="hanging">
<t hangText="KMP Analysis"></t>
<t>Review requirements for KMPs [RFC????]. Identify any nuances
for this particular protocol’s needs and its use cases for
KMP. List the requirements that this RP has for being able to be
use in conjunctions with a KMP. Define the optimal state.</t>
<t></t>
<t hangText="Gap Analysis"></t>
<t>Enumerate the requirements for this protocol to move from its
current security state to its optimal state.</t>
<t></t>
<t hangText="Define, Assign, Design"></t>
<t>Create a deliverabels list of the design and specification
work, with miletsones. Define owners. Do the design and document
work for a KMP to be able to generate the Base RP's session keys
for the packets on the wire. These will be the arguments passed in
the API to the KMP in order to bootstrap the session keys to the
Base RP.</t>
</list></t>
<t></t>
<t>There will also be a team formed to work on the base framework
mechanisms for each of the main categories, i.e. the blocks and API's
represented in <xref target="figure1">figure 1</xref>.</t>
<t></t>
</section>
<section anchor="ProtocolsInCategories" title="Protocols in Categories">
<t>This section groups the Base RPs into like categories, according to
attributes set forth in <xref target="Categories">Categories
Section</xref>. Each group will have a design team tasked with
improving the security of the Base RP mechanisms and defining the KMP
requirements for their group, then rolling both into a roadmap
document upon which they will execute.</t>
<t><list hangIndent="4" style="hanging">
<t hangText="BGP, LDP and MSDP"></t>
<t>The Base RP's that fall into the category of the one-to-one
peering messages, and will use peer keying protocols, AND are all
transmitted over TCP include BGP <xref target="RFC4271">RFC
4271</xref>, <xref target="RFC5036">LDP</xref> and <xref
target="RFC3618">MSDP</xref>. A team will work on one mechanism to
cover these three protocols. Much of the work on the BaseRP update
for its existing authentication mechanism is already occuring in
the TCPM Working Group, on the <xref
target="I-D.ietf-tcpm-tcp-auth-opt">TCP-AO </xref> document, as
well as its cryptography-helper document, <xref
target="I-D.ao-crypto">TCP-AO-CRYPTO</xref>. The exception is the
mode where LDP is used directly on the LAN [RFC????]. The work for
this may go into the Group keying category (w/ OSPF) mentioned
below.</t>
<t></t>
</list><list hangIndent="4" style="hanging">
<t hangText="OSPF, ISIS, and RIP"></t>
<t>The Base RPs that fall into the category Group keying with
one-to-many peering messages includes <xref
target="RFC2328">OSPF</xref>, <xref target="RFC1195">ISIS</xref>
and <xref target="RFC2453">RIP</xref>. Not surprisingly, all these
routing protocols have two other things in common. First, they are
run on a combination of the OSI datalink layer 2, and the OSI
network layer 3. Second, they are all internal gateway protocols,
or IGPs. The keying mechanisms and use will be much more
complicated to define for these.</t>
<t></t>
<t hangText="BFD"></t>
<t>Because it is less of a routing protocol, per se, and more of a
peer aliveness detection mechanism, Bidirectional Forwarding
Detection (BFD) [RFC????] will have its own team.</t>
<t></t>
<t hangText="RSVP [RFC????], RSVP-TE [RFC????], and PCE"></t>
<t>These three protocols will be handled together. [what more
characterisation should we give here? Routing AD's, provide text
pls?]</t>
<t></t>
<t hangText="PIM-SM and PIM-DM"></t>
<t>Finally, the multicast protocols of <xref
target="RFC4601">PIM-SM</xref> and <xref
target="RFC3973">PIM-DM</xref> will be handled together. PIM-SM
multicasts routing information (Hello, Join/Prune, Assert) on a
link-local basis, using a defined multicast address. In addition,
it specifies unicast communication for exchange of information
(Register, Register-Stop) between the router closest to a group
sender and the "rendezvous point" (RP). The RP is typically not
"on-link" for a particular router. While much work has been done
on multicast security for application-layer groups, little has
been done to address the problem of managing hundreds or thousands
of small one-to-many groups with link-local scope. This will be
necessary if we are to have unique keys per speaking router in a
PIM chain. Such an authentication mechanism should be considered
along with the router-to-Rendezvous Point authentication
mechanism. The most important issue is ensuring that only the
"legitimate neighbors" get the keys for (S,G), so that rogue
routers cannot participate in the exchanges. Another issue is that
some of the communication may occur intra-domain, e.g. the
link-local messages in an enterprise, while others for the same
(*,G) may occur inter-domain, e.g. the router-to-Rendezvous Point
messges may be from one enterprise's router to another. One
possible solution proposes a region-wide "master" key server
(possibly replicated), and one "local" key server per speaking
router. There is no issue with propagating the messages outside
the link, because link-local messages, by definition, are not
forwarded. This solution is offered only as an example of how work
may progress; further discussion should occur in this work team.
Specification of a link-local protection mechanism for PIM-SM
occurred in <xref target="RFC4601">RFC 4601</xref>, and this work
is being updated in <xref
target="I-D.ietf-pim-sm-linklocal">PIM-SM-LINKLOCAL</xref>.
However, the KMP part is completely unspecified, and will require
work outside the expertise of the PIM working group to accomplish,
which is why this roadmap is being created.</t>
<t></t>
</list>These protocols are deemed out-of-scope for this current
iteration of the work roadmap. Once all of the protocols listed above
have had their work completed, or are clearly within site of
completion, then the community will revisit the need and interest for
working on these:</t>
<t></t>
<t><list style="symbols">
<t>MANET</t>
<t>FORCES</t>
</list></t>
<t>[need text from routing ADs on why these are out of scope]</t>
<t></t>
</section>
<section anchor="Priorities" title="Priorites">
<t>Resources from both the routing area and the security area will be
applied to work on these problem spaces as quickly as possible.
Realizing that such resources are far from unlimited, a rank order
priority for addressing the work of incrementally securing these
groups of routing protocols is provided:</t>
<t></t>
<t><list style="symbols">
<t>Priority 1 - BGP / LDP / MSDP</t>
<t>Priority 2 - BFD</t>
<t>Priority 3 - OSPF / ISIS / RIP</t>
<t>Priority 4 - RSVP and RSVP-TE</t>
</list></t>
<t>By far the most important group is the Priority 1 group as these
are the protocols used on the most public and exposed segments of the
networks, at the peering points between operators and between
operators and their customers. BFD, as a detection mechanism
underlying the Priority 1 protocols is therefore second.</t>
<t></t>
</section>
</section>
<section anchor="Security" title="Security Considerations">
<t>This entire document focuses on improving the security of routing
protocols by improving or implementing cryptographic authentication for
each routing protocol. Security considerations are largely contained
within the body text of the document.</t>
<t>The mechanisms that will be defined under this roadmap aim to improve
the security, better protect against more threats, and provider far
greater operational efficiencies than the state of things at the time of
this writing. However, none of these changes will improve Internet
security unless they are implemented and deployed. Other influences must
be brought to bare upon operators and organizations to create incentives
for deployment. Such incentives may take the form of PCI-like industry
compliance/certifications, well advertised BCPs profiling the use of
this roadmap's output, end-user demand or insistance.</t>
<t>[we can pull pieces out of body and place here, if people think it
more appropriate].</t>
</section>
<section title="IANA Considerations">
<t></t>
<t>This document has no actions for IANA.</t>
<t></t>
</section>
<section title="Acknowledgements">
<t></t>
<t>The outline for this draft was created from discussions and
agreements with Routing AD's Ross Callon and Dave Ward, Security AD's
Tim Polk and Pasi Eronen, and IAB members Danny McPherson and Gregory
Lebovitz.</t>
<t>Mat Ford and Bill Atwood provided reviews to -00.</t>
<t></t>
</section>
<section anchor="ChangeHistory"
title="Change History (RFC Editor: Delete Before Publishing)">
<t>[NOTE TO RFC EDITOR: this section for use during I-D stage only.
Please remove before publishing as RFC.]</t>
<t>-00-00 original rough rough rough draft for review by routing and
security AD's</t>
<t>-00- original submission</t>
<t><list style="symbols">
<t>adds new category = multicast protocols in category section and
mentions mcast in group keying category description.</t>
<t>add a lot of references where they did not exist before, or where
there were only place holders. Still more work needed on this.</t>
<t>abstract filled in</t>
<t>changed from standards track to informational (this was an
oversight in last draft).</t>
<t>filled out threats section with detailed descriptions, and linked
to RPsec threats RFC</t>
<t>made ascii art for the basic KMP framework</t>
<t>added section on internal versus external peering and the
requirements decisions for them</t>
<t>added security characterization section in sect 2, added sections
discussing internal vs external protocols, shared vs unique keys,
oob vs in-band keying</t>
<t>incorporates all D Ward's feedback from his initial skim of the
document.</t>
</list></t>
<t>-01-</t>
<t><list style="symbols">
<t>Updated <xref target="figure1">framework</xref> diagram to
include all listed and described elements. Needs review and honing.
Gregory Lebovitz (GL).</t>
<t>Added comment in <xref
target="ProtocolsInCategories">protocols</xref> section that much of
the BGP/LDP Phase 1 work is already being done in tcp-ao and
ao-crypto. GL.</t>
<t>Updated Scope making the 2 work phases more clear earlier in the
document. GL.</t>
<t>Broke <xref target="WorkItems">work items</xref> section into two
Phases, 1 for manual key update, and second for KMP work. GL.</t>
<t>Re-org'd doc. Brought <xref target="Threats">Threats</xref>
section out into its own top-level section. Did same with <xref
target="Categories">Categorization</xref> section, leaving Roadmap
section more focused. Moved ToDo list and Change History to end of
doc, after Acknowledgements. GL.</t>
<t>added new <xref target="WorkPhases">sect 2.3</xref> on main
roadmap phases. Previous section <xref
target="CommonFramework">Common Framework</xref> moved to 2.4. Tim
Polk (TP).</t>
<t>Added Section 2.3.1 <xref target="Ph1Reqs">Requirements for Phase
1 BaseRPs' Security Update</xref>. This provides a nice starter set
of requirements for any work team. GL.</t>
<t>Filled out text for <xref target="OutVsInLine_Keying">Out vs
In-band Key Mgmt</xref> section, significantly. Changed the term
from "in-band" to "in-line".</t>
<t>Section <xref target="Threats">Threats</xref> Clarified DoS
threats in and out of scope better. We are not preventing all DoS
attacks. Just those we can reasonably via authentication. TP.</t>
<t>Sect <xref target="OutVsInLine_Keying">In-band vs
Out-of-Band</xref>clarified that In-band does not mean in-band to
RP, but rather over IP between the RPs, rather than pushed down by
some external management entity. TP.</t>
<t>In <xref target="Categories">roadmap</xref> section, added "it is
also hoped that we can create one kmp per category..." Also
explained value of a KMP. TP.</t>
<t>Added "operators" to <xref target="Audience">audience</xref>
list. Matt Ford (MF).</t>
<t>Described why BGP (and LDP) security is not deployed very often.
Added this <xref target="Scope">Scope</xref> section, point 4. If
mechanisms aren't being deployed, why is that? What, if anything,
could be done to improve deployment? Tried to address these. Need
references (see To Do list below). MF.</t>
<t>Added some text to security section to address this from MF: say
something here about the limitations of this approach, if any - and
refer back to the need for other pieces of the puzzle. May need more
work.</t>
<t>Cleaned up text for multicast part of <xref
target="CategoryMsgType">Message Type</xref> section and <xref
target="ProtocolsInCategories">Protocols</xref> section, clarifying
PIM's two message types, mcast and unicast, in both places. Bill
Atwood (BA).</t>
<t>In section <xref target="ProtocolsInCategories">Protocols</xref>,
added references to 4601 and PIM-SM-LINKLOCAL. BA.</t>
<t>Editorial changes pointed out various folks.</t>
</list></t>
<t>-02-</t>
<t><list style="symbols">
<t>Re-submitted due to expiration. Text did not change. Substantive
update coming shortly.</t>
</list></t>
</section>
<section anchor="ToDo"
title="Needs Work in Next Draft (RFC Editor: Delete Before Publishing)">
<t>[NOTE TO RFC EDITOR: this section for use during I-D stage only.
Please remove before publishing as RFC.]</t>
<t>List of stuff that still needs work<list style="symbols">
<t>RTG AD's or delegates: clean up the three definitions of route
message type categories. Need RTG Area folks input on this.</t>
<t>More clarity on the work items for those defining and specifying
the framework elements and API's themselves.</t>
<t>RTG AD's or delegates: text justifying RSVP and RSVP-TE and what
we think solving that problem may look like</t>
<t>RTG AD's or delegates: more justification for why MANET and
FORCES are out of scope. Need ref for those RFCs.</t>
<t>Danny McPherson: Get reference for BGP auth usage stats in <xref
target="Scope">Scope</xref> section, item 4.</t>
<t>Get RFC references and insert where not done yet</t>
<t>security section? Still nees more there, I think?</t>
<t></t>
</list></t>
</section>
</middle>
<back>
<references title="Normative References">
&RFC2119;
&RFC4593;
&RFC4948;
</references>
<references title="Informative References">
<reference anchor="I-D.ao-crypto"
target="http://tools.ietf.org/html/draft-lebovitz-ietf-tcpm-tcp-ao-crypto-00">
<!-- bibxml3 wasn't happy, so entered this manually. Replace before publish as RFC -->
<front>
<title>Cryptographic Algorithms, Use and Implementation Requirements
for TCP Authentication Option</title>
<author initials="G. M." surname="Lebovitz">
<organization>Juniper Networks, Inc.</organization>
</author>
<date month="March" year="2009" />
</front>
</reference>
&I-D.ietf-tcpm-tcp-auth-opt;
<!-- &I-D.lebovitz-ietf-tcpm-tcp-ao-crypto; -->
&I-D.ietf-pim-sm-linklocal;
&RFC4271;
&RFC2328;
&RFC4301;
&RFC4303;
&RFC4306;
&RFC4601;
&RFC3973;
&RFC2453;
&RFC5036;
&RFC3618;
&RFC3552;
&RFC4949;
&RFC1195;
&RFC5226;
</references>
</back>
</rfc>
| PAFTECH AB 2003-2026 | 2026-04-22 22:07:19 |