Internet DRAFT - draft-kaplan-stir-cider
draft-kaplan-stir-cider
STIR BOF Group H. Kaplan
Internet Draft
Intended status: Standards Track July 15, 2013
Expires: January 30, 2013
A proposal for
Caller Identity in a DNS-based Entrusted Registry (CIDER)
draft-kaplan-stir-cider-00
Abstract
This document describes a proposal for providing a database service
for authentication information for Caller-ID E.164 numbers,
nationally-specific number codes, and email-style names used in
communication requests (such as call setup, instant messages). The
model proposed uses a DNS service as a Registry for cryptographic
public-keys. The database service solution is called CIDER.
Status of this Memo
This Internet-Draft is submitted to IETF in full conformance with
the provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six
months and may be updated, replaced, or obsoleted by other documents
at any time. It is inappropriate to use Internet-Drafts as
reference material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
This Internet-Draft will expire on January 15, 2013.
Kaplan Expires January 2014 [Page 1]
Internet-Draft CIDER July 2013
Copyright Notice
Copyright (c) 2013 IETF Trust and the persons identified as the
document authors. All rights reserved.
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.
Table of Contents
1. Introduction..................................................3
2. CIDER Overview................................................4
3. Terminology...................................................6
3.1. New Terminology..........................................6
4. Background Information........................................8
4.1. Benefits and Drawbacks to Using DNS......................8
4.2. Relation to ITU and National Number Authorities..........9
4.3. Open Numbering Plans....................................10
5. Caller-ID vs. DNS Delegation and Authority Models............11
5.1. Email-style Registries..................................12
5.2. E.164 and Number Code Registries........................12
6. Assignee Roles and Actions...................................13
6.1. Key Agents and Third-Party Private Agents...............14
7. Using CIDER for Caller-ID Verification.......................15
7.1. CIDER DNS Client Requirements...........................15
7.2. Information Needed by the Caller-ID Verifier............16
7.3. Generating the CIDER DNS query..........................16
7.3.1 Query for Email-style Identity 16
7.3.2 Query for E.164-based Identity 16
7.3.3 Query for Number Code-based Identity 17
7.4. Processing the DNS Answer...............................17
8. DNS Binding..................................................18
8.1. Subdomain Namespace.....................................18
8.2. Resource Record Type for Key Storage....................18
8.3. TXT Record Format.......................................18
9. Security Considerations......................................19
9.1. Privacy of Assignee.....................................19
10. Open Issues.................................................19
11. IANA Considerations.........................................20
12. Acknowledgments.............................................20
13. References..................................................20
13.1. Normative References...................................20
Kaplan Expires - January 2014 [Page 2]
Internet-Draft CIDER July 2013
13.2. Informative References.................................20
Author's Address.................................................21
Appendix A. Possible Deployment Model...........................21
Appendix B. Requirements for a CAPP Mechanism...................23
1. Introduction
For many years the identity of the calling party (i.e., Caller-ID)
of voice communications has been made available to the callee, and
has been assumed to be generally accurate/reliable. Not only do end
users expect this to be the case, but also applications such as
calling-name (CNAM) services, call-back services, and voice-mail
account access, have depended on the validity of the Caller-ID.
Even some forms of call rate-control and Denial-of-Service (DoS)
attack prevention between service providers depend on valid Caller-
IDs. The ability to spoof Caller-IDs enables numerous fraud and
abuse scenarios.
Unfortunately, this problem already exists and is exacerbated by the
presence of Internet-based calling services. While a small volume
of Caller-ID spoofing has occurred for many years on the PSTN, it
was infrequent enough to handle through manual investigation, and
could be largely ignored as being merely isolated cases. Lately,
however, the frequency has increased to a point that national
regulators are becoming concerned (e.g., [fcc-doc]), the media have
been reporting on it, and service providers themselves have been DoS
attacked using invalid Caller-IDs.
There are several causes for the increase in Caller-ID spoofing: the
decrease in cost for making calls, the large number of inexpensive
products capable of generating spoofed Caller-IDs, and the growing
number of entry points/paths into the trust network upon which
Caller-ID reputability has always depended.
Spoofing a Caller-ID is possible because to-date there has been no
means to validate a Caller-ID; instead the assumption has been that
the received Caller-ID came from trustworthy upstream providers, in
a chain-of-trust based on the PSTN model. Some PBXs are also
allowed to generate whatever Caller-IDs they wish across PRI
circuits, based on the belief that they can be trusted due to the
relative cost, complexity, and physical hurdle of getting a PRI
trunk.
The original assumption of Caller-ID reputability that was based on
the PSTN trust model no longer holds. Therefore, in order to keep
Caller-IDs valid in a less trustworthy interconnection model, a
means of verifying Caller-IDs must be deployed that works with the
Kaplan Expires - January 2014 [Page 3]
Internet-Draft CIDER July 2013
model. Replacing the current PSTN-style interconnection model
itself is not realistic.
One approach for verifying Caller-IDs relies on public-key
cryptography, whereby the originator signs some information in the
call setup message using a private key, and the receiver verifies
the signature using the public key. For example the solutions
described in [RFC4474], [draft-4474bis], and [draft-ikes]. These
approaches are conceptually similar to those employed by [DKIM] and
[DMARC], which have been created to address a similar issue for
email.
Regardless of the solution used, there needs to be a way for:
(1) the originator to have a private/public key pair that is
trusted by everyone else to prove the originator can claim the
Caller-ID
(2) any receiver of the originator's message to be able to
retrieve the public key the originator used, and
(3) the receiver to verify the private key was used to sign for
the given Caller-ID
This document describes a model for achieving those needs. It does
so by using the Domain Name System [DNS], as a database for mapping
source identities to public keys with an authority structure. The
DNS tree nodes have no direct identifying information - they do not
identify the carrier or end-user that was assigned each E.164
number, for example. The general model and architecture is named
"CIDER".
2. CIDER Overview
At a high-level, CIDER provides a database infrastructure using DNS
for storing and retrieving public keys to authenticate source
identities in communication messages, for example SIP or XMPP
requests. Instead of being told by the message originator where the
verifier should get a full certificate and then having the verifier
check that the certificate is signed by a common trusted third-party
for the specific identity being claimed, CIDER retrieves the public
key directly from DNS and relies on the DNS authority model to
control authorization of the public keys for source identities.
CIDER currently covers three types of identities: international
E.164 numbers, nationally-specific number codes, and email-style
names. Each type uses a different anchor to its domain name, and
thus can be deployed in different ways. The DNS infrastructure used
for each may be the public DNS infrastructure, or local private DNS
instances populated with the same data. They can even be used in a
restricted "federation" model, whereby only specific entities have
access to the CIDER data: the public keys and other associated data.
Kaplan Expires - January 2014 [Page 4]
Internet-Draft CIDER July 2013
For domain-based identities, CIDER follows the [DKIM] model of using
each identity domain's DNS zone with a defined node name and key
selector to hold the public key. The DKIM "key selector" is called
a CIDER "key index" in this document, because it is syntactically
different. The subdomain node name prefixed to the source's domain
name is also different ("_cidkey" vs. "_domainkey"), and the TXT
Resource Record format is more constrained than DKIM's.
For E.164 numbers and number codes, CIDER uses a reverse-dotted
notation similar to ENUM for the DNS structure. The top of the
domain tree hierarchy (the anchor) for the E.164 and number code
entries is still TBD - it could be one single root anchor for all
country-codes, or it could be a different anchor per country-code or
geopolitical region or whatever.
In order to simplify discussion and explanation in this document,
the domain 'cid.example.org' is used to describe a common top-level
anchor domain for both E.164-based and number code-based identity
entries. In practice they could be different, with E.164 using
'cid.example.org' and number codes using 'cid.example.net', to have
separate authorities for E.164-based numbering vs. number codes.
The structure of CIDER's DNS hierarchy for the E.164-based and
number-code-based domains follows a reverse-dotted notation of the
E.164 numbering format, so that for example the +1 "country-code"
would be the subdomain '.1.cid.example.org', whereas that for the
+49 German country-code would be '.9.4.cid.example.org'.
Nationally-specific number codes would be prefixed with their
country-code, so that for example "911" in the North American
Numbering Plan country-code 1 would be the domain
"1.1.9.1.example.org".
The public keys in CIDER's DNS tree nodes have no direct identifying
information - they do not identify the carrier or end-user that was
assigned each E.164 number.
The public keys could be unique per E.164 number entry, or they
could be the same public key for all E.164 entries belonging to the
same end entity. This is purely an administrative choice of the
owner. For example a carrier that is assigned millions of E.164
entries might re-use the same public-key in all of them. Or it can
use one public key for every thousand E.164 numbers, or whatever.
It's up to the individual end-entities that were assigned the E.164
numbers to decide what to populate their assignee DNS identity entry
nodes with.
If an organization explicitly desires to make itself known, it can
put its name into some to-be-defined DNS Resource Record for its
Kaplan Expires - January 2014 [Page 5]
Internet-Draft CIDER July 2013
E.164 number identity entry node; such may be the case for corporate
1-800 numbers, for example. The organization can decide, on a
number-by-number basis, whether to make itself known or not for that
E.164 number in the CIDER DNS tree.
It should be noted that although the public key entries installed in
the CIDER DNS tree are unique for every E.164 number (or group of
numbers), they do not need to be maintained/stored by the
organizations that uploaded them. Unlike credentials used with
SSL/TLS, for example, the public keys are not transmitted by their
servers to client hosts using certificates; rather, the keys are
only retrieved by the verifiers when validating the Caller-ID
signatures, and that's done through DNS. The signers themselves
only need to know the private key, to which the public key is paired
to for any given E.164 number. Furthermore, the originators can use
the exactly the same private key for every E.164 number they sign
for, by uploading the same public key into every E.164 node they are
assigned in the CIDER DNS.
3. Terminology
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 RFC 2119. The
terminology in this document conforms to RFC 2828, "Internet
Security Glossary".
It is assumed the reader is already generally familiar with E.164
numbers, Public-key cryptography concepts, Domain Name System (DNS),
and DNS Security (DNSSEC).
This document uses the term "identity" instead of "identifier" with
regards to verifying source identity. The reason for this is that
it is not the syntactic encoding of an E.164 digit string, number
code, or email-style name that are being verified - it's the
canonical E.164 phone-number, number code, or email-style name
that's being verified. In other words CIDER is used for verifying a
logical entity, not a specific representation; and the logical
entity is not a specific human user or SIP agent/device, but rather
a phone-number or number code or email-style name.
3.1. New Terminology
Caller-ID: the identity of the originator of a communications
request; for example the From header field in a SIP INVITE call
setup request or MESSAGE instant message request.
Kaplan Expires - January 2014 [Page 6]
Internet-Draft CIDER July 2013
E.164 number: a phone number in international E.164 format, which is
understood by the originating and receiving entities to represent a
globally unique number. This definition includes numbers that are
not technically "E.164" numbers, such as toll-free 1-800 numbers in
North America.
Number code: a nationally-specific number which is not representable
as an E.164 number. Examples of number codes include two or three
digit emergency service numbers, N11-type numbers in NANP, and
inter-carrier common short codes.
Email-style name: a 'user@domain' format identifier, for which the
user portion is scoped to the domain portion, and the domain portion
is a classic, public domain name; removing or changing the domain
portion would fundamentally change the identity of the user.
Source identity: the E.164 number, number code, or email-style name
used for identifying the originator of a message to the receiving
user; i.e., the identity used for "Caller-ID".
Identity entry: the DNS name entry representing an E.164-based
number, nationally-specific number code, or email-style domain name.
CIDER Registry: an instance of a DNS hierarchy used for storage and
retrieval of public keys for source identities. A CIDER Registry
may be for an entire E.164-based country-code tree, or just for
portions of one, or just for a single domain name.
CIDER Registrar: the organization that owns, manages, and is
authoritative for a CIDER Registry.
CIDER Assignee: the organization/entity that the CIDER Registrar
allows to populate specific identity entries with public key data,
can grant/rescind Key Agents, and permanently transfer ("donate")
the identity entry to another Assignee. This could be a carrier or
service provider for E.164 numbers, for example.
Key Agent: an organization/entity that the CIDER Assignee grants
access to upload public key data only, for one or more of the
Assignee's identity entry nodes. This could be an Enterprise or
service provider customer of a carrier, for example.
Third-Party Private Agent: an organization/entity that can upload
public key data for an identity, but not directly to the Registry -
only via a true CIDER Assignee, and thus the Registrar knows nothing
about the Third-Party Private Agent. This could be an Enterprise or
end-user, for example.
Kaplan Expires - January 2014 [Page 7]
Internet-Draft CIDER July 2013
4. Background Information
4.1. Benefits and Drawbacks to Using DNS
A database model to hold public keys used for caller-id verification
could be accessed using a protocol other than DNS. Examples include
HTTP, LDAP, or even DIAMETER. CIDER uses DNS for the following
reasons:
o The DNS architecture has demonstrated massive intrinsic
scalability, by allowing branches of the database tree to be
run on separate physical servers and separate, independent
adminsitration.
o The DNS protocol is extremely efficient, with no extra round-
trip delays creating connections or resolving hostnames.
o The DNS protocol allows tight control over retransmission
timers and timeout behavior from the application layer, because
it runs on UDP.
o The DNS protocol has well-established practice for highly
effective geographic redundancy techniques, such as through
anycasting because it runs over UDP.
o The DNS protocol has well-established and effective caching in
local servers, and techniques are available to have local
copies of a DNS tree.
o The DNS protocol and architecture provide a seamless, global
service, but have well-established and highly effective
practice for delegation of authority, which is useful for
country-code level separation of authority for E.164 numbers
and nationally-specific number codes.
o The DNS protocol already defines the encoding syntax and
semantics for many of the functions needed.
o DNS is already used very widely by services employing DKIM for
email signing/verification for a similar purpose as would be
needed for email-style domain-based caller-id identities.
o Some service providers already use DNS for Private ENUM for
CNAM, number portability, and communication request routing
purposes.
o Virtually all clients/hosts have DNS querying capabilities
today; and there are many DNS server vendors, including a
widely popular open-source implementation (BIND).
There are some drawbacks to using DNS, however:
o DNS typically uses UDP, so if the query or response are larger
than the MTU size between the client and server, fragmentation
will occur. The base DNS maximum message size is 512 bytes,
but CIDER requires [EDNS0] be used, which allows larger message
sizes; so the real issue is for message sizes over ~1460 bytes.
The current CIDER entries would not typically be that large,
even if DNSSEC is being used.
Kaplan Expires - January 2014 [Page 8]
Internet-Draft CIDER July 2013
o Deploying a private registry using DNS is more complicated
because it runs over UDP and has no defined mechanism to
enforce access control on the queries. Private and federated
DNS has been deployed, but it usually requires using private IP
Addresses and VPN-style access to the servers.
o The DNS query model does not support providing a different
resource record(s) for different querying agents. In other
words, it does not give a different answer depending on who
asks the question. There are widely-used work-around behaviors
for this today, but they are not standardized.
o No changes to the underlying DNS protocol are envisioned.
Should they be needed, some members of the IETF treat the DNS
protocol, architecture, and its instantiation in the public
Internet for domain name resolution, all as one monolithic,
inter-dependent usage. Therefore, any changes required of the
protocol have to also work for the Internet domain name
resolution infrastructure as rooted-in/controlled-by
IANA/ICANN. Even if a DNS extension were created for purely
private use, the IAB has essentially stated they fear the
public domain name infrastructure is so brittle that it would
collapse if the extensions were accidentally sent to a public
DNS server.
[Note: If the STIR Working Group decides future extensions to the
DNS protocol would be needed, there is a way to achieve this: we
could copy the DNS RFCs into new documents, give the protocol a new
name ("NDNS" for "Not DNS"?) and a new default UDP port number other
than 53. Such a concept seems silly, but it would give us the same
benefits without the drawback of having to worry about "The DNS"
collapsing due to a few unexpected bytes in a query packet.]
4.2. Relation to ITU and National Number Authorities
A concern has been raised that using E.164 numbers in a DNS
hierarchy would be problematic because the ITU should be responsible
for delegating E.164 country-codes, and national authorities should
be responsible for managing their country-code numbers. The fear is
that deploying CIDER without the ITU and national authorities
approving and managing it would lead to claims of inappropriate
subverting of the E.164 numbering system; or fears that for CIDER to
work correctly would require such approval and management.
This document section explains why such concerns are either
unfounded, or apply equally to any database model used for caller-id
verification of E.164 numbers, whether it be DNS or otherwise.
With regards to approval, there is already precedent for the IETF to
use names defined by other organizations in DNS: the top-level
Kaplan Expires - January 2014 [Page 9]
Internet-Draft CIDER July 2013
country domain names are based on a list defined by ISO, for
example.
With regards to subverting the E.164 numbering system, this document
makes no claim that a specific CIDER registry, or top domain root
for it, is in fact authoritative for the E.164 number space. In
fact, although this document uses the term "E.164" to describe the
tree structure and assignment model, all that is truly described is
how a DNS domain may create subdomain names with Resource Records
that could be used by others to retrieve public keys. It is up to
the users of the registry/domain to decide whether to believe it
represents E.164 numbers, and to use it for identities in call-
control scenarios. The same CIDER model could be used, for example,
to deploy a public key storage/retrieval mechanism for a private
phone-numbering plan; or even digit-based names that have nothing to
do with phone numbers, such as Autonomous System numbers or
Enterprise OIDs.
The CIDER service described in this document does not dictate who
will be registrars, although existing authorities and operators
might be reasonable candidates. All CIDER needs, however, is for
some organization to manage the domain tree for a given E.164-based
namespace, to decide what entities get to populate the public key
entries for its branch nodes, and for verifiers to use that
organization's domain tree for retrieving the public keys and trust
them to be correct. In other words, any organization can be the
Registrar and create its own CIDER DNS registry with its own domain
as the anchor of the tree, and so long as both signers and verifiers
use that organization's registry and it is accurate, then CIDER
works.
This is no different than what occurs for the web-pki model of
third-party Certificate Authorities (CAs). If you trust a CA, then
you trust that the certificates it signs are for the domain/host
names contained in the certificate, even though CAs are not
authoritative for DNS domain name assignments. The IETF has a
mechanism for tying web-pki certificates to the actual authority of
DNS names: DANE is that mechanism; but without DANE verification,
the web-pki model is purely based on trusting the CAs to be accurate
with regards to domain/host name assignments. Therefore, any
caller-id verification model that is not ultimately controlled by
the numbering authorities for the E.164 number space would have the
same issues as CIDER.
4.3. Open Numbering Plans
The E.164 number model is technically an open numbering plan,
meaning it does not specify a fixed number of digits. In some
countries, the national numbering plan has a fixed number (e.g.,
Kaplan Expires - January 2014 [Page 10]
Internet-Draft CIDER July 2013
North America does), but in others it is left open (e.g., Germany).
For CIDER, this has implications if the source identity could be
more digits than the CIDER Registrar knows about and has granted
upload access to a CIDER Assignee for.
For example, in Germany not only is the numbering plan open, but the
number assignment model is as well: an Enterprise is given a single
phone number, and the Enterprise can then add a variable number of
digits at the end for their specific lines/users. For routing
purposes, the carriers only need to route on the assigned number
portion, and the Enterprise's PBX can route the final leg to the
user based on the whole number.
If the Enterprise can also claim the longer number sequence as a
caller-id, but the CIDER Registrar only has entries for the assigned
portion, then verification will fail.
This document does not specify a solution to this problem, but
leaves it as an open issue to be decided upon. There are at least
two potential solutions we can choose from:
o CIDER could specify that Assignees can upload information to
create subdomains within their assigned E.164 identity entry
node. For example, let the Enterprise notify the carrier of
the extra digits and their public keys, and the carrier in turn
uploads it to the Registry.
o We could require the SIP/XMPP/SS7 message information include
the number of significant digits to use, so that CIDER is only
queried for the assigned number portion; and have the TXT RR
for the assigned number indicate that it's an open number.
5. Caller-ID vs. DNS Delegation and Authority Models
The concept of delegation and authority is somewhat confusing when
referring to CIDER, because the terms are used in two different
ways: one is the delegation and authority model of DNS
subdomains/zones, and the other is delegation and authority model
for caller-id identities and their public keys.
CIDER makes a clear distinction between which entities are allowed
to provision public keys into specific entries in the CIDER
Registry, versus which entities own, control, administer and are
authoritative for the DNS domains/zones in the hierarchy of the
Registry.
In other words, the CIDER Registry is split into two distinct
aspects: the entities that own the Registry and thus the DNS
domains/zones used to access those public keys, and the entities
that are assigned rights to upload public key information for their
Kaplan Expires - January 2014 [Page 11]
Internet-Draft CIDER July 2013
assigned identity entries in the DNS-based Registry. The former are
called "CIDER Registrars", and the latter are "CIDER Assignees".
5.1. Email-style Registries
For email-style domain-based identities, CIDER uses the DKIM model
of storing and retrieving the public keys from the identity domain's
DNS zone. For example, if the source identity is
"alice@example.com", then the DNS zone "example.com" is used, and
thus uses the supplied domain name, to follow the typical DNS
delegation and authority model for its contents. Each domain is
thus it own CIDER Registrar as well as its own CIDER Assignee, and
there is no distinction between the delegation and authority model
for DNS versus the caller-id identities and public keys.
If a domain owner wishes to allow another entity to use its domain
name for caller-id verification, however, the owner can follow the
same model as that defined in the next section for E.164 and number
code registries. For example, if "example.com" wishes to allow a
contracted third-party company to generate calls using
"example.com", it can continue to be the CIDER Registrar for
"example.com" and make the other company a CIDER Assignee for it as
well.
5.2. E.164 and Number Code Registries
For E.164 and number codes, the details for delegation and authority
are separated. There is a CIDER Registrar which is the DNS
authority for domains/zones/nodes, and the Registrar allows CIDER
Assignees to upload public keys into specific identity entry nodes
representing the E.164/number-codes.
While it is tempting to consider using the DNS subdomain delegation
model for delegating DNS zones for specific E.164-based ranges or
specific numbered entries to the carriers or end users to which the
numbers are assigned. CIDER does not depend on such a DNS
delegation model, and in fact it is expected such a DNS delegation
model will not be used in practice; this is due to both the need to
maintain privacy of who the carrier or end-user is for each number,
and because the number portability behavior in some national
numbering plans would make such a model untenable.
For example, from a DNS and DNSSEC perspective, the DNS zone
authority for each of the subdomains within 'cid.example.org' (the
country-code CIDER Registrars) could be the national numbering plan
administrator for each country-code, possibly determined by the ITU
to be authoritative for the anchor 'cid.example.org'.
Kaplan Expires - January 2014 [Page 12]
Internet-Draft CIDER July 2013
Below the country-code level domain, each nation and national number
authority can decide how they choose to delegate DNS zone authority,
or not to. There is no requirement to delegate out DNS zone
authority below the national country-code level whatsoever, nor any
prohibition from doing so; the country-code authority can be the DNS
authority for the entire E.164 number space of DNS domains/nodes
under their country-code level. [Note: for North America, the DNS
delegation could be separated by area-codes; to give Canada's area-
codes a different authority from those in the USA, for example]
In fact, having a single DNS authority might have some advantages:
it prevents people from learning how many numbers each carrier has,
and it reduces the time for caller-id verification because the
DNSSEC authority signing chain is shorter. Since most calls are
national calls, the verifying systems can use a local cache of the
national numbering administrator's certificate to verify the
certificate of most E.164 caller-ids.
The important distinction is that it does not matter who manages the
CIDER DNS registry for a given country-code - what's important is
that the CIDER Registrar allows the entities which are assigned the
E.164 numbers (the CIDER Assignees) to upload their public keys into
their respective E.164-based nodes.
For example the CIDER Registrar can allow a SIP service provider to
be the Assignee for a set of the Registry's E.164 entries, so that
the service provider can upload the public keys it wishes to use for
its caller-ids. From a DNS perspective, however, the Registrar is
still the singular authority of the DNS zones/nodes for those E.164-
based nodes. The domain tree and its zones/nodes "belong" to the
Registrar from a DNS perspective.
6. Assignee Roles and Actions
As explained previously, CIDER creates a distinction between the DNS
authority (the CIDER Registrar) vs. an entity allowed to upload
public keys (the CIDER Assignee).
For every identity entry in the DNS tree (i.e., leaf node), the
Registry has one and only one CIDER Assignee. The Assignee may be
the Registrar itself, as would usually be the case for email-style
domain-based identity CIDER Registries for example. For E.164-based
identities, the Assignee probably is the service provider/carrier
assigned the number by the national numbering authority for the
given country-code.
The Assignee has controlled access to the Registry for performing
the actions it can take. This may be through a web portal, or even
via email or fax; if the STIR Working Group decides to continue with
Kaplan Expires - January 2014 [Page 13]
Internet-Draft CIDER July 2013
CIDER, however, the author strongly recommends that a specific
protocol be defined for this purpose in another document: a CIDER
Assignee Publishing Protocol (CAPP). For example, CAPP could be
either an HTTP/SOAP/XML or HTTP/REST type protocol. CAPP would be
useful for DKIM and DNS in general, and as an alternative for
Dynamic DNS [DDNS]. Requirements for CAPP are given in Appendix B.
An Assignee can add, modify, or remove public key entries from its
identity node(s) in the Registry, and thereby affect the available
TXT RR entries. Depending on how open numbering assignment is
handled (currently an open issue in this document), the Assignee
might be able to add, modify, or remove subdomain/additional-digit
identities below the one the Registrar granted it access to, if the
Registrar allows it.
If the Registrar allows it, an Assignee can permanently transfer
control of its identity node to another Assignee, which is called
"donating" its identity in this document. Such would be the case
for number porting in certain countries, for example.
An Assignee can also grant/rescind access to Key Agents for its
identity entries(s), if the Registrar supports such a model, as
described in the next section.
6.1. Key Agents and Third-Party Private Agents
One of the use-cases a Caller-ID verification mechanism needs to
support is that of enabling a third-party to assert someone else's
Caller-ID for outbound calls/communications. An example of this
need is outsourced call-centers making calls on behalf of a company,
or even a doctor using her personal mobile phone to make calls with
her medical office's number as her Caller-ID.
CIDER supports this in two ways: by either having the CIDER
Registrar support an Assignee and one or more designated Key Agents
for the same identity entry, or by having the Registrar only know
about the CIDER Assignee and having the third-parties upload their
public keys through the Assignee as Third-Party Private Agents.
The difference between a Key Agents and Third-Party Private Agents
is one of involvement with the Registrar and Registry. If a
Registrar supports Key Agents, then the Assignee has to grant this
role, and the Registrar has to know about them, have credentials for
them, etc. With Third-Party Private Agents, however, the Registrar
knows nothing about it - the third-party uploads public keys to the
Assignee directly (e.g., using CAPP), which then uploads them to the
Registry in the same manner as its own public keys (again using
CAPP).
Kaplan Expires - January 2014 [Page 14]
Internet-Draft CIDER July 2013
From a Caller-ID verifier's perspective - from the data it can view
in the retrieved Resource Records - there is no difference between
Assignee, Key Agents or Third-Party Private Agents. In fact the
verifier can't even discern who the Assignee is.
7. Using CIDER for Caller-ID Verification
CIDER specifies a key retrieval mechanism The mechanics of Caller-ID
verification that use the key is left for definition by a separate
document. One example of such a mechanism is defined in [draft-
ikes]. This section defines the information a verifier CIDER client
needs in order to retrieve the appropriate public key for a
verification mechanism, and how the retrieval is performed.
7.1. CIDER DNS Client Requirements
A Caller-ID verifier acting as a CIDER DNS client MUST implement DNS
over UDP using [EDNS0] in order to handle message sizes larger than
512 bytes. The client MUST be prepared to receive DNSSEC responses,
unknown RRs, etc.
If the verifier supports email-style identities, it MUST be able to
query DNS servers which resolve public Internet DNS names.
If the verifier supports E.164-base identities, it is RECOMMENDED
that the client be configurable to use different DNS server(s) for
this purpose, separate from the one(s) used for other identity
types. The client SHOULD also support being configurable for using
a different anchor domain name for this purpose, separately from the
one used for number code identities.
If the verifier supports number code-based identities, it is
RECOMMENDED that the client be configurable to use a different DNS
server(s) for this purpose, separate form the one(s) used for other
identity types. The client SHOULD also support being configurable
for using a different anchor domain name for this purpose,
separately from the one used for E.164-based identities.
The client MAY be a recursive resolver, but it is strongly
RECOMMENDED that it be a stub resolver and allow the DNS servers to
resolve on its behalf. Otherwise, it will be difficult to use such
a client in access-restricted CIDER deployments, such as private or
federated ones. For example if the CIDER Registry is a private one
for one or more nations. (see Appendix A)
Kaplan Expires - January 2014 [Page 15]
Internet-Draft CIDER July 2013
7.2. Information Needed by the Caller-ID Verifier
For CIDER to function properly, a Caller-ID verifier needs to know
the following information:
o The source identity value
o The source identity type: domain-based, E.164-based, or number
code-based
o The public key index value
The public key index value identifies which of several possible
public keys for a given source identity should be used for verifying
the message.
The source identity value need not be the whole source identity as a
URI or 'user@domain' string - it only needs to be the information
used for the CIDER query as defined in the next section.
7.3. Generating the CIDER DNS query
In order to generate a CIDER DNS query, the CIDER verifier performs
slightly different actions depending on the source identity type, as
defined in these sections.
7.3.1 Query for Email-style Identity
For an email-style source identity, the verifier CIDER client takes
the 'user@domain' string and ignores the "user@" portion. The
remaining domain name becomes the base of the DNS query key. The
verifier prepends the CIDER public key index value as a subdomain,
followed by the subdomain "_cidkey", in front of the domain name.
For example, if the source identity being verified is
"alice@example.com" with a public key index value of 3, the DNS
query key becomes "3._cidkey.example.com".
The verifier then issues a DNS query with the above query key to the
public Internet DNS.
7.3.2 Query for E.164-based Identity
For an E.164-based source identity, the verifier CIDER client takes
the international E.164 digit string, removes any leading '+' or
visual separators, puts dots (".") between each digit, and reverses
the order of digits. The verifier then appends the E.164-based
CIDER Registrar domain name to the end, and prepends the CIDER
public key index value as a subdomain, followed by the subdomain
"_cidkey".
Kaplan Expires - January 2014 [Page 16]
Internet-Draft CIDER July 2013
For example, if the source identity being verified is "+16035551010"
with a public key index value of 2, and a CIDER Registrar domain for
the country-code 1 of "1.cid.example.org", then the DNS query key
becomes "2._cidkey.0.1.0.1.5.5.5.3.0.6.1.cid.example.org".
The verifier then issues a DNS query with the above query key to
either the public Internet DNS, or to the DNS server provisioned for
such a purpose.
7.3.3 Query for Number Code-based Identity
For a nationally-specific number code-based source identity, the
verifier CIDER client takes the number code digit string, prepends
the country-code the number code is nationally-specific for, puts
dots (".") between each digit, and reverses the order of digits.
The verifier then appends the Number-code CIDER Registrar domain
name to the end, and prepends the CIDER public key index value as a
subdomain, followed by the subdomain "_cidkey".
For example, if the source identity being verified is "911" for the
country-code 1, with a public key index value of 2, and a Number-
code CIDER Registrar domain of "cid.example.org", then the DNS query
key becomes "2._cidkey.1.1.9.1.cid.example.org".
The verifier then issues a DNS query with the above query key to
either the public Internet DNS, or to the DNS server provisioned for
such a purpose.
7.4. Processing the DNS Answer
Based on the DNS binding format defined in Section 8, a successful
CIDER DNS query will produce a DNS answer with a TXT RR as defined
in Section 8.3. The verifier needs to parse the TXT RR, to verify
the version is "CIDER1", the key-type is "rsa" or some token the
verifier understands, and to base64 decode the public key data.
If the version is not "CIDER1", or the key-type is not one the
verifier understands, or the public key cannot be decoded or is not
of a key size the verifier supports, then the verifier should treat
it as a failure. If the public key is empty, the verifier should
treat it as a failure. If the DNS answer is 'not found', the
verifier should treat it as a failure. If the DNS query times out,
the client should try any alternate servers it is provisioned for;
if there are no more, it should treat it as a failure.
The action to take for a CIDER query failure is dependent on local
policy and not defined in this document.
Kaplan Expires - January 2014 [Page 17]
Internet-Draft CIDER July 2013
8. DNS Binding
A binding using DNS TXT records as a key service is hereby defined.
All implementations MUST support this binding.
8.1. Subdomain Namespace
All CIDER keys are stored in a subdomain named "_cidkey", with a
node name of the key index value. Given an email-style source
identity of "alice@example.com" and a key index of "3", the DNS
query will be for "3._cidkey.example.com". Given an E.164 source
identity of "16035551010" and a key index of "1", the DNS query will
be for "1._cideky.0.1.0.1.5.5.5.3.0.6.1.cid.example.org". Given a
nationally-specific number code for "911" in the North-American
Numbering Plan region (country-code 1), and a key index of "6", the
DNS query will be for "6._cidkey.1.1.9.1.cid.example.org".
8.2. Resource Record Type for Key Storage
The DNS Resource Record type used in this specification is a TXT
Resource Record (RR). A later extension of this standard may define
another RR type.
Strings in a TXT RR MUST be concatenated together before use with no
intervening whitespace. TXT RRs MUST be unique for a particular key
index value; that is, if there are multiple records in an RRset, the
results are undefined.
8.3. TXT Record Format
The TXT RR used for the CIDER key MUST follow the format specified
in this section, in order to provide future extension capability.
No whitespace is allowed in this format, and all values are case-
sensitive. The format is based on the following ABNF:
txt-record = version-param SEMI key-param [ SEMI txt-param ]
version-param = "v=" "CIDER1"
key-param = key-type SEMI key-data
key-type = "k=" ("rsa" / hyphenated-word)
key-data = "p=" DQUOTE [ base64 ] DQUOTE
The version identifies the TXT record content syntax and semantics,
which for this document is defined as "CIDER1".
The key-type identifies the CIDER public key's (the "p=" value)
type, which for this specification uses the "rsa" key type to
indicate that an ASN.1 DER-encoded [ITU.X660.1997] RSAPublicKey
[RFC3447] is being used in the key-data's value. Future
Kaplan Expires - January 2014 [Page 18]
Internet-Draft CIDER July 2013
specifications may define other key types by assigning thi field a
different value, but still using the "CIDER1" version.
The key-data identifies the CIDER public key value, in base64
encoded form. An empty value (the literal string 'p=""'), means the
public key for this index is not usable or has been explicitly
revoked as opposed to simply removed. This might be useful if the
CIDER DNS authority wishes to prevent use of a specific key index
node entry for some time period of time by having an essentially
empty TXT RR, as opposed to deleting the entry and re-using it when
the next public key is uploaded by the assigned party.
9. Security Considerations
The same security considerations as described in [DKIM] apply to
CIDER; in particular Sections 8.2, 8.3, 8.4, 8.6, and 8.7 of [DKIM].
9.1. Privacy of Assignee
For E.164-based CIDER Registries, privacy of assignee is a concern.
The concern stems from the need to keep the assignee of an E.164
number unknown in general - to prevent simple scripts from being
used to walk the CIDER DNS tree and learn what E.164 numbers are
assigned to which carrier, for example. An example of why this
needs to remain private is that using such knowledge one could learn
how many subscribers a publicly-traded mobile provider has gained or
lost in a quarter, and be able to buy or sell stock based on such
knowledge in advance of the provider's quarterly-reported
statements.
Such information could be easily learned if only one a few public
keys are used by a carrier for all of its numbers in the CIDER
Registry. To defend against such abuse, it is strongly RECOMMENDED
that assignees only re-use the same public key for a limited number
of CIDER entries. For example a large assignee might use the same
public key for a thousand or ten thousand of its E.164 numbers.
It should be noted that this security concern is not specific to
using DNS - any open-access database protocol would be vulnerable to
a script querying all entries. Controlled-access databases would be
of less concern, but CIDER can also be used in a controlled-access
model.
10. Open Issues
- How to handle open numbering plan assignment country-codes.
Kaplan Expires - January 2014 [Page 19]
Internet-Draft CIDER July 2013
11. IANA Considerations
This document makes no request of IANA yet.
12. Acknowledgments
The general concept of using DNS in an ENUM model for caller-id
verification has been discussed in the IETF for many years. Thanks
to Dave Crocker for pointing out the DKIM similarities and usage,
and for reviewing the draft in detail.
Funding for the RFC Editor function is provided by the IETF
Administrative Support Activity (IASA).
13. References
13.1. Normative References
[EDNS0] Vixie, P., "Extension Mechanisms for DNS (EDNS0)", RFC
2671, August 1999.
[DDNS] Wellington, B., "Secure Domain Name System (DNS) Dynamic
Update", RFC 3007, November 2000.
[ITU.X660.1997] "Information Technology - ASN.1 encoding rules:
Specification of Basic Encoding Rules (BER), Canonical
Encoding Rules (CER) and Distinguished Encoding Rules (DER)",
ITU-T Recommendation X.660, 1997.
[RFC3447] Jonsson, J., and Kaliski, B., "Public-Key Cryptography
Standards (PKCS) #1: RSA Cryptography Specifications Version
2.1", RFC 3447, February 2003.
13.2. Informative References
[fcc-doc] http://hraunfoss.fcc.gov/edocs_public/attachmatch/DA-11-
1089A1.doc
[draft-ikes] Kaplan, H., "An Identity Key-based and Effective
Signature for Origin-Unknown Types", draft-kaplan-stir-ikes-
out-00, July 2013.
[RFC4474] Peterson, J., and Jennings, C., "Enhancements for
Authenticated Identity Management in the Session Initiation
Protocol (SIP)", RFC 4474, August 2006.
[draft-4474bis] Peterson, J., Jennings, C., and Rescorla, E.,
"Authenticated Identity Management in the Session Initiation
Kaplan Expires - January 2014 [Page 20]
Internet-Draft CIDER July 2013
Protocol (SIP)", draft-jennings-dispatch-rfc4474bis-00, May
2013.
[DKIM] Allman, E., et al, "DomainKeys Identified Mail (DKIM)
Signatures", RFC 4871, May 2007.
Author's Address
Hadriel Kaplan
Email: hadrielk@yahoo.com
Appendix A. Possible Deployment Model
In order to understand how CIDER could work in the real world, this
section provides an example of how CIDER could be deployed in the
North American Numbering Plan (NANP). This was chosen for the
example because the NANP is one of the most complicated numbering
models in the World: it has 24 member countries and territories,
full number portability for both fixed and mobile line numbers in
certain countries, separate numbering authorities (e.g., CRTC/CNA
and NANC/NANPA), and multi-tiered numbering assignment/delegation
behavior.
Today, the entire +1 NANP is administered by the North American
Numbering Plan Administrator (NANPA), but certain functions are
handled by separate organizations: the Canadian Number Administrator
(CNA) handles certain functions for Canadian area-codes, for
example, and the USA and Canada each have a separate administrator
for their respective number portability databases. Within each
country, numbers are officially assigned in blocks to legally-
authorized carriers, who then (unofficially) assign them to their
customers: non-carrier service providers, enterprises, and
consumers. For the countries in NANP that support number
portability, the original carrier "donates" the ported number to
another carrier, and the number portability database is updated with
a mapping of the ported number to an assigned switch number: the
Location Routing Number (LRN). Numbers are not portable across
countries within the NANP, and are not portable in certain cases
even within a country.
One way CIDER could be deployed in the NANP is by having NANPA be
the CIDER Registrar for the country-code 1 top domain, and delegate
DNS domains for country-specific area-codes to their respective
country administrators. For example, NANPA could be the CIDER
Registrar for '.1.cid.example.org', but then delegate authority of
the DNS subdomains '.4.0.2.1.cid.example.org',
Kaplan Expires - January 2014 [Page 21]
Internet-Draft CIDER July 2013
'.6.3.2.1.cid.example.org', etc., (representing the Canadian area
codes 204, 236, etc.) to the CRTC/CNA if they wish it. Thus the
CRTC/CNA would be the CIDER Registrar for those area-code branches
of the number tree.
An alternative would be to have a private organization be the CIDER
Registrar for the +1 country-code using its own domain for the
Registry, such as '.1.example.org'. This would only be useful if
carriers/service-providers agreed to use this Registry, of course,
but this might make sense as a way to get the effort started and
eventually transition it over to NANPA.
One specific model for who the Registrar could be would be to use
the same administrator as that used for number portability.
Currently the US-based FCC selects a company to run the NPAC (Number
Portability Administration Center) for the US, and the CRTC selects
one for Canada; they could contract the CIDER Registrar role to the
same companies they contract number portability administration to.
This has some obvious benefits, but also some drawbacks with regard
to federal regulatory involvement and monopoly-type power/position
for the contracted vendor(s).
Regardless of whom the Registrar is and what the Registry top domain
name is, the officially assigned carriers for numbers would be
designated as the Assignees of their respective number identity
nodes. They can upload public keys for those number nodes, in order
to perform the role of caller-id signers. When they assign numbers
to their customers, they could either add them as Key Agents in the
Registry, or handle them as Private Agents, as described in Section
6.1. In practice, it's likely they would only add their customers
as Key Agents if the "customers" were service providers, but
otherwise handle customers as Third-Party Private Agents.
When a number is ported from one carrier to another, the Assignee
carrier would transfer assignee control by "donating" their identity
to the other carrier, as described in Section 6. This would need to
occur at the same general time as porting the number in the number
portability databases, and would need to take effect within 15
minutes.
Having a defined protocol between the Assignee and the Registry, for
publishing the keys into identity nodes, would help this process
greatly. This would be implemented in the same carrier back-office
systems that are used today for number porting, for example.
From a DNS query access perspective, it is likely that the CIDER
Registry for NANP begin as a private database model. Only
authorized entities would be able to query the CIDER Registry,
Kaplan Expires - January 2014 [Page 22]
Internet-Draft CIDER July 2013
either using IPSEC/VPN-style access, or by having each carrier have
a local read-only copy of the CIDER Registry.
Most carriers would likely have such local copies of the Registry,
in servers they deploy within their core call control network, to
reduce verification time and control availability/reliability. All
500 million current NANP numbers instantiated in a CIDER Registry
would fit in ~500GB, which even laptops have sufficient storage for.
It would only take two or three modern high-end servers to fit it
all in *RAM*, let alone hard-drive/flash.
For carriers to have local copies of the Registry, they could use
[AXFR], [IXFR], and [DNS-NOTIFY]; or a more-efficient protocol could
be defined for this purpose. Modern DNS servers offer more than
just the legacy DNS-based zone transfer/update protocols, and the
newer protocols could be investigated for re-use for CIDER local
copying.
If each national CIDER Registry is not publicly accessible for DNS
querying on the public Internet, this causes some issues for
international call scenarios. The goal of CIDER is to enable
caller-id verification even for international calls/communications.
This is still achievable, however, because there aren't that many
country-codes and national numbering plans - there are approximately
~160 such in the World.
Therefore, it is reasonable for each national CIDER Registry to have
a private, controlled connection to every other national Registry,
creating a full mesh of connections. The private connections could
be used to either provide server resolution of private DNS queries
on behalf of the local nation's carriers' verification clients, or
for the local nation's Registrar to itself have a local copy of the
CIDER Registry of other nations, using the same protocol mechanics
as the carriers use for their local Registry copies. Even 10
Billion number entries in a CIDER Registry read-only database would
only consume ~10 Terabytes of storage, which is achievable for
reasonable cost today. In practice, each national Registry would
likely use a hybrid model: performing DNS queries to nations that
are infrequent callers, while having local copies of Registries of
frequent calling nations.
Appendix B. Requirements for a CAPP Mechanism
In order for CIDER to be usable in large scale across many carriers,
there needs to be a defined protocol for how CIDER Assignees perform
their allowed actions to the Registry. This document describes such
a protocol as CIDER Assignee Publishing Protocol (CAPP), and this
section gives the requirements for such a protocol, as input to
Kaplan Expires - January 2014 [Page 23]
Internet-Draft CIDER July 2013
another document to specify the CAPP protocol itself. Some of the
requirements are based on the actions described in Section 6.
Requirements for CAPP:
o It must support the add, modify, and delete actions for CIDER
identity node data.
o It may only support handling the data in an opaque/blob
manner. For example CAPP may only support uploading a TXT RR
text string, instead of explicitly handling the public key
value, version, and key type as discrete elements. This way
it's not specific to CIDER usage.
o It should support the add, modify, or delete actions for other
DNS Resource Record types, or at least be extensible to do so
in the future. This would allow non-CIDER usage, as well as
allow extending CIDER for other number mapping use-cases: such
as CNAM, number portability, or request routing purposes.
o When adding new public key data (or a new TXT RR), it should
be possible for the Assignee not to specify the key index
(i.e., subnode) value for the new record, and instead for the
server to return the new value it allocates. This is useful
for Third-Party Private Agent model, where the Third-Party may
not know the next available index value to use.
o It should support a means of adding new data and returning the
new key index value in separate transactions - or at least in
some manner that allows for multiple minutes of time to pass
between the addition of data and returning of new index value.
o When adding new data, it must allow the Assignee to define an
expiration time for the data. This is useful for the Third-
Party Agent model described in Section 6.1, for example.
o It must allow the Assignee to permanently transfer the
Assignee role to another party, called "donate" in this
document.
o It should allow the Assignee to grant/rescind another entity
the role of Key Agent for a given identity entry node,
permanently or with an expiration time.
o It must support an action/transaction model that allows for
database atomicity, consistency, isolation, and durability
(ACID).
o It should provide a means for the Assignee to add or modify
multiple identity node entries using one TXT RR (or one public
key) in one transaction. This is a useful optimization for
carriers that have millions of numbers, and re-use public keys
across them. To support ACID more easily, however, this might
be done using an indirection model.
o It must specify distinct failure and error results, in a
machine-consumable fashion.
o It must support a means of logging each transaction
(action/result) on both the client and server side such that
both sides can easily reference the same event; for example by
Kaplan Expires - January 2014 [Page 24]
Internet-Draft CIDER July 2013
encoding transaction identifiers and timestamps in the CAPP
protocol messages.
o It must support a means for the Registry server to
authenticate a client Assignee; for example using credentials
of a username/password digest-challenge model.
o It must support a means for the client Assignee to
authenticate the Registry server; for example by using TLS
server-side certificates.
o It must support a means of preventing eavesdropping and
repudiation, for example by using TLS.
Kaplan Expires - January 2014 [Page 25]