2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-30 05:57:52 +00:00

updated drafts

This commit is contained in:
Andreas Gustafsson 2001-04-27 17:54:21 +00:00
parent ecaedd50f4
commit 5bca09d7c1
27 changed files with 2007 additions and 7082 deletions

View File

@ -1,657 +0,0 @@
INTERNET-DRAFT A. Costanzo
draft-costanzo-dns-gl-03.txt AKC Computer Services Corp.
Expires: December 2000 June 2000
Definition of the DNS GL Resource Record
used to encode Geographic Locations
1. Status of this Memo
This document is an Internet-Draft and is in full conformance with all
provisions of Section 10 of RFC2026 except that the right to produce
derivative works is not granted.
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.
To learn the current status of any Internet-Draft, please check the
"1id-abstracts.txt" listing contained in the Internet- Drafts Shadow
Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
munnari.oz.au (Pacific Rim), ftp.ietf.org (US East Coast, or ftp.isi.edu
(US West Coast).
Distribution of this memo is unlimited.
2. Abstract
This document defines the format of a new Experimental Resource Record (RR)
namely GL for the Domain Naming System (DNS), and reserves a corresponding
DNS type mnemonic and numerical code XX (decimal). This definition deals
with associating geographical host location mappings to host names within
a domain.
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.
Costanzo [Page 1]
EXPIRES IN SIX MONTHS June 2000
3. Introduction
The ideal way to manage and maintain a database of information, such as
geographical location of Internet hosts, is to delegate responsibility
to local domain administrators.
This document resolves the problem of relating host information within
the DNS to geographical locations. This definition has been designed to
be easy for the person who administrates DNS for a domain. The author
hopes that the lack of requiring longitude, latitude and elevation
information and merely being able to enter address information, as you
would address a postal letter, will mean broad acceptance and use of the
GL resource record.
The availability of geographical location information will immediately be
able to benefit applications in network management, which would enhance
and supplement various network tools which currently exist.
The Domain Name System is ideally suited to provide geographic location
information. The information we desire to make available globally needs
to be maintained and updated locally (perfect for DNS).
Although several other attempts by various authors have attempted to
created resource records that would allow location information on host to
be stored and distributed, none, to the authors knowledge, have either
gained acceptance on a wide scale or made allowance for location information
that is not within the confines of the planet Earth.
4. The GL format
GL has the following format:
<owner> <ttl> <class> GL <Rdata>
4.1 Rdata Format
Rdata has the following format:
<string> <string>
The format of the RDATA field is two varying length strings separated by
a space character. The first, the hierarchical locator, then an address
string. Each is quoted (like all strings) only when it has spaces in it,
which will never be true for the first string, and almost always for the
second.
Costanzo [Page 2]
EXPIRES IN SIX MONTHS June 2000
4.1.1 The Hierarchical Locator
The Hierarchical Locator contains the following components (each separated
by a period "."):
Astronomical Location - (Required)
A coded field defining the heavenly body within
the known Universe, where the machine resides. The most common
entry, "S3" is the planet Earth and is the only currently
defined location.
Man-made devices (Space Stations, Rockets, Probes, etc.) not residing
on planet Earth may have Astronimical Locations defined as well.
New locations MUST be registered with the Internet Assigned Numbers
Authority (IANA). Refer to section 6 for additional information.
Country Code - (Required)
The country code specifies the country the host computer resides
in. The code is a two character fixed length string and may only
be included within the Astronimical Location 'S3'. These codes
are defined in document ISO 3166-1 and are listed in Appendix A
for easy reference.
Postal Zone - (Optional)
This rdata component supplies the postal code (Zip Code) for the
location the host computer resides. For countries that have a
multi-segmented postal coding system, the segments should be
separated by period(s) ".".
This field may be omitted only if the country in which the host
machine resides does not use a postal coding system.
When all three Hierarchical Locator components exist for an DNS
entry, the position being defined is considered to be a "precise
position".
4.2 The Quoted String
This string should be entered as you would enter an address on
a postal letter within the country specified by the Hierarchical
Locator. The country code information should not be included within
the quoted string. This string is always required and must be
present in the RDATA field.
The quoted string may be used for both visual reference of the
physical address as well as by a software application to help
determine a more precise location of the host machine (if the
Hierarchical Locator lacks sufficient precision).
Costanzo [Page 3]
EXPIRES IN SIX MONTHS June 2000
The only instance in which any application should attempt to
interpret the quoted string is in a case where the country
code defines a country that does not use, or has not implemented
a postal code system.
No software or application should attempt to override a precise
position defined by the Hierarchical Locator with information
defined within the quoted string data.
5. Example(s)
Example 1 (with a postal zone defined):
donuts A 192.188.192.1
GL S3.US.45420.1910 "1425 Arbor Avenue, Dayton OH"
Example 2 (no postal zone):
lorinda A 129.122.1.1
GL S3.SR "Marthastrasse 64, Shawproject, Uitvlug, Parimaribo"
Example 3
; Authoritative data for akc.net.
;
; note in this example:
; uspring, diana and martha (even though the complete postal code was
; not entered) are precisely defined
;
; lorinda, resides in the country of SURINAME, which has not implemented
; a postal coding system.
;
; THIS IS ONLY AN EXAMPLE
;
@ IN SOA forme.akc.net. postmaster.akc.net.
(
99071100 ; Serial (yymmddnn)
10800 ; Refresh (3 hours)
3600 ; Retry (1 hour)
3600000 ; Expire (1000 hours)
86400 ; Minimum (24 hours)
)
IN NS ns.akc.net.
uspring IN A 192.188.192.2
IN MX 5 mail
IN HINFO Vax VMS
IN GL S3.US.45420.1910 "1425 Arbor Avenue, Dayton OH"
ftp IN CNAME uspring
Costanzo [Page 4]
EXPIRES IN SIX MONTHS June 2000
diana IN A 192.188.192.3
IN MX 5 mail
IN HINFO Vax VMS
IN GL S3.US.07204.1367 "808 Chestnut Street, Roselle
Park, NJ"
www IN CNAME diana
martha IN A 192.188.192.4
IN MX 5 mail
IN HINFO Vax VMS
IN GL S3.US.07204 "815 Chestnut Willis Place, Roselle
Park, NJ"
lorinda IN A 129.122.1.1
IN GL S3.SR "Marthastrasse 64, Shawproject, Uitvlug,
Parimaribo"
6. Registering New Astronomical Location(s)
New Astronomical Locations (ALs) MUST be registered with the Internet
Assigned Numbers Authority (IANA). IANA acts as a central registry for
these values. IANA may reject or modify the Astronomical Location
registration request if it does not meet the criteria as specified in
section 4.1.1.
Registration requests should be sent via electronic mail to IANA as
follows:
To: IANA@iana.org
Subject: Registration of a new Astronomical Location
The mail message must specify the proposed AL. Documentation defining
the AL and its proposed purpose must be included. The documentation must
either reference an external non-Internet standards document or an existing
or soon to be RFC. If applicable, the documentation should contain a
draft version of the future RFC. The draft must be submitted as a
RFC according to the normal procedure within a reasonable amount of
time after the AL registration has been approved.
IANA will not register a new Astronmical Location until an actual
computer requiring GL data in the DNS resides or will soon reside on a
heavenly body other than Earth.
Costanzo [Page 5]
EXPIRES IN SIX MONTHS May 2000
7. Notes To Implementors:
7.1 Defining New Astronimical Locations
The astronomical location 'S3' is intended to be Sol-Three (i.e. the Earth).
The Earth is the 3rd large planet in the solar system. The Sun would be S0
(not that we'd have a computer there), but a solar observatory in orbit might
be S0-001. Our moon would be S3-1. Other letters and such for catalogued
objects. Additionally, the ISS and Mir space stations could use S3-001 (Mir),
S3-002 (ISS) now, if they get connected on IP.
This document only defines 'S3' however the authors strongly suggest that the
above nomenclature be followed.
7.2 Other possible uses for GL
The use of postal codes also is exactly what is needed for credit card address
authentication. Sites could (quietly) compare GL info provided on entries from
ISPs to what someone enters for additional verification purposes.
Costanzo [Page 6]
EXPIRES IN SIX MONTHS June 2000
8. Appendix A: ISO 3166-1 Country Codes
The ISO country codes are merely listed here for easy reference and may
become out-of-date in this document. Any changes in the ISO specification
supercede this appendix and the ISO specification must be followed.
AFGHANISTAN AF
ALBANIA AL
ALGERIA DZ
AMERICAN SAMOA AS
ANDORRA AD
ANGOLA AO
ANGUILLA AI
ANTARCTICA AQ
ANTIGUA AND BARBUDA AG
ARGENTINA AR
ARMENIA AM
ARUBA AW
AUSTRALIA AU
AUSTRIA AT
AZERBAIJAN AZ
BAHAMAS BS
BAHRAIN BH
BANGLADESH BD
BARBADOS BB
BELARUS BY
BELGIUM BE
BELIZE BZ
BENIN BJ
BERMUDA BM
BHUTAN BT
BOLIVIA BO
BOSNIA AND HERZEGOWINA BA
BOTSWANA BW
BOUVET ISLAND BV
BRAZIL BR
BRITISH INDIAN OCEAN TERRITORY IO
BRUNEI DARUSSALAM BN
BULGARIA BG
BURKINA FASO BF
BURUNDI BI
CAMBODIA KH
CAMEROON CM
CANADA CA
CAPE VERDE CV
CAYMAN ISLANDS KY
CENTRAL AFRICAN REPUBLIC CF
CHAD TD
CHILE CL
CHINA CN
CHRISTMAS ISLAND CX
Costanzo [Page 7]
EXPIRES IN SIX MONTHS June 2000
COCOS (KEELING) ISLANDS CC
COLOMBIA CO
COMOROS KM
CONGO CG
COOK ISLANDS CK
COSTA RICA CR
COTE D'IVOIRE CI
CROATIA HR
CUBA CU
CYPRUS CY
CZECH REPUBLIC CZ
DENMARK DK
DJIBOUTI DJ
DOMINICA DM
DOMINICAN REPUBLIC DO
EAST TIMOR TP
ECUADOR EC
EGYPT EG
EL SALVADOR SV
EQUATORIAL GUINEA GQ
ERITREA ER
ESTONIA EE
ETHIOPIA ET
FALKLAND ISLANDS (MALVINAS) FK
FAROE ISLANDS FO
FIJI FJ
FINLAND FI
FRANCE FR
FRANCE, METROPOLITAN FX
FRENCH GUIANA GF
FRENCH POLYNESIA PF
FRENCH SOUTHERN TERRITORIES TF
GABON GA
GAMBIA GM
GEORGIA GE
GERMANY DE
GHANA GH
GIBRALTAR GI
GREECE GR
GREENLAND GL
GRENADA GD
GUADELOUPE GP
GUAM GU
GUATEMALA GT
GUINEA GN
GUINEA-BISSAU GW
GUYANA GY
HAITI HT
HEARD AND MC DONALD ISLANDS HM
HONDURAS HN
HONG KONG HK
HUNGARY HU
Costanzo [Page 8]
EXPIRES IN SIX MONTHS June 2000
ICELAND IS
INDIA IN
INDONESIA ID
IRAN (ISLAMIC REPUBLIC OF) IR
IRAQ IQ
IRELAND IE
ISRAEL IL
ITALY IT
JAMAICA JM
JAPAN JP
JORDAN JO
KAZAKHSTAN KZ
KENYA KE
KIRIBATI KI
KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF KP
KOREA, REPUBLIC OF KR
KUWAIT KW
KYRGYZSTAN KG
LAO PEOPLE'S DEMOCRATIC REPUBLIC LA
LATVIA LV
LEBANON LB
LESOTHO LS
LIBERIA LR
LIBYAN ARAB JAMAHIRIYA LY
LIECHTENSTEIN LI
LITHUANIA LT
LUXEMBOURG LU
MACAU MO
MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF MK
MADAGASCAR MG
MALAWI MW
MALAYSIA MY
MALDIVES MV
MALI ML
MALTA MT
MARSHALL ISLANDS MH
MARTINIQUE MQ
MAURITANIA MR
MAURITIUS MU
MAYOTTE YT
MEXICO MX
MICRONESIA (FEDERATED STATES OF) FM
MOLDOVA, REPUBLIC OF MD
MONACO MC
MONGOLIA MN
MONTSERRAT MS
MOROCCO MA
MOZAMBIQUE MZ
MYANMAR MM
NAMIBIA NA
NAURU NR
NEPAL NP
NETHERLANDS NL
NETHERLANDS ANTILLES AN
NEW CALEDONIA NC
Costanzo [Page 9]
EXPIRES IN SIX MONTHS June 2000
NEW ZEALAND NZ
NICARAGUA NI
NIGER NE
NIGERIA NG
NIUE NU
NORFOLK ISLAND NF
NORTHERN MARIANA ISLANDS MP
NORWAY NO
OMAN OM
PAKISTAN PK
PALAU PW
PANAMA PA
PAPUA NEW GUINEA PG
PARAGUAY PY
PERU PE
PHILIPPINES PH
PITCAIRN PN
POLAND PL
PORTUGAL PT
PUERTO RICO PR
QATAR QA
REUNION RE
ROMANIA RO
RUSSIAN FEDERATION RU
RWANDA RW
ST. HELENA SH
SAINT KITTS AND NEVIS KN
SAINT LUCIA LC
ST. PIERRE AND MIQUELON PM
SAINT VINCENT AND THE GRENADINES VC
SAMOA WS
SAN MARINO SM
SAO TOME AND PRINCIPE ST
SAUDI ARABIA SA
SENEGAL SN
SEYCHELLES SC
SIERRA LEONE SL
SINGAPORE SG
SLOVAKIA SK
SLOVENIA SI
SOLOMON ISLANDS SB
SOMALIA SO
SOUTH AFRICA ZA
SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS GS
SPAIN ES
SRI LANKA LK
SUDAN SD
SURINAME SR
SVALBARD AND JAN MAYEN ISLANDS SJ
SWAZILAND SZ
SWEDEN SE
SWITZERLAND CH
SYRIAN ARAB REPUBLIC SY
Costanzo [Page 10]
EXPIRES IN SIX MONTHS June 2000
TAIWAN, PROVINCE OF CHINA TW
TAJIKISTAN TJ
TANZANIA, UNITED REPUBLIC OF TZ
THAILAND TH
TOGO TG
TOKELAU TK
TONGA TO
TRINIDAD AND TOBAGO TT
TUNISIA TN
TURKEY TR
TURKMENISTAN TM
TURKS AND CAICOS ISLANDS TC
TUVALU TV
UGANDA UG
UKRAINE UA
UNITED ARAB EMIRATES AE
UNITED KINGDOM GB
UNITED STATES US
UNITED STATES MINOR OUTLYING ISLANDS UM
URUGUAY UY
UZBEKISTAN UZ
VANUATU VU
VATICAN CITY STATE (HOLY SEE) VA
VENEZUELA VE
VIET NAM VN
VIRGIN ISLANDS (BRITISH) VG
VIRGIN ISLANDS (U.S.) VI
WALLIS AND FUTUNA ISLANDS WF
WESTERN SAHARA EH
YEMEN YE
YUGOSLAVIA YU
ZAIRE ZR
ZAMBIA ZM
ZIMBABWE ZW
9. Acknowledgments
The author would like to thank
James Sears - for his continual editing effort
Robert Ullmann - for his input
and the members of the namedroppers mailing list for both their support and
criticism of this document.
10. Author's Address
Al Costanzo
AKC Computer Services Corp.
P.O. Box 4031, Roselle Park, NJ 07204-0531
www.AKC.com
Phone: +1 908 298 9000
Email: AL@AKC.COM
Costanzo [Page 11]

View File

@ -0,0 +1,19 @@
This Internet-Draft has been deleted. Unrevised documents placed in the
Internet-Drafts directories have a maximum life of six months. After
that time, they are deleted. This Internet-Draft was not published as
an RFC.
Internet-Drafts are not an archival document series, and expired
drafts, such as this one, are not available; please do not ask for
copies... they are not available. The Secretariat does not have
information as to future plans of the authors or working groups WRT the
deleted Internet-Draft.
For more information or a copy of the document, contact the author directly.
Draft Author(s):
A. Costanzo: al@akc.com

View File

@ -5,8 +5,8 @@
INTERNET-DRAFT David Conrad
draft-ietf-dnsext-dnssec-okbit-01.txt Nominum Inc.
November, 2000
draft-ietf-dnsext-dnssec-okbit-02.txt Nominum Inc.
May, 2001
Indicating Resolver Support of DNSSEC
@ -55,9 +55,9 @@ Abstract
Expires May, 2001 [Page 1]
Expires October, 2001 [Page 1]
draft-ietf-dnsext-dnssec-okbit-01.txt November, 2000
draft-ietf-dnsext-dnssec-okbit-02.txt May, 2001
This document discusses a method to avoid these negative impacts,
@ -74,15 +74,15 @@ draft-ietf-dnsext-dnssec-okbit-01.txt November, 2000
2. Rationale
As DNSSEC is deployed, the vast majority of queries will be from
resolvers that are not DNSSEC aware and thus do not understand or
support the DNSSEC security RRs. When a query from such a resolver
is received for a DNSSEC signed zone, the DNSSEC specification
indicates the nameserver must respond with the appropriate DNSSEC
security RRs. As DNS UDP datagrams are limited to 512 bytes
[RFC1035], responses including DNSSEC security RRs have a high
probability of resulting in a truncated response being returned and
the resolver retrying the query using TCP.
Initially, as DNSSEC is deployed, the vast majority of queries will
be from resolvers that are not DNSSEC aware and thus do not
understand or support the DNSSEC security RRs. When a query from
such a resolver is received for a DNSSEC signed zone, the DNSSEC
specification indicates the nameserver must respond with the
appropriate DNSSEC security RRs. As DNS UDP datagrams are limited to
512 bytes [RFC1035], responses including DNSSEC security RRs have a
high probability of resulting in a truncated response being returned
and the resolver retrying the query using TCP.
TCP DNS queries result in significant overhead due to connection
setup and teardown. Operationally, the impact of these TCP queries
@ -111,9 +111,9 @@ draft-ietf-dnsext-dnssec-okbit-01.txt November, 2000
Expires May, 2001 [Page 2]
Expires October, 2001 [Page 2]
draft-ietf-dnsext-dnssec-okbit-01.txt November, 2000
draft-ietf-dnsext-dnssec-okbit-02.txt May, 2001
non-compliant caching or forwarding servers inappropriately copy data
@ -167,9 +167,9 @@ draft-ietf-dnsext-dnssec-okbit-01.txt November, 2000
Expires May, 2001 [Page 3]
Expires October, 2001 [Page 3]
draft-ietf-dnsext-dnssec-okbit-01.txt November, 2000
draft-ietf-dnsext-dnssec-okbit-02.txt May, 2001
DNSSEC security RRs and SHOULD retry the query without the EDNS0 in
@ -182,16 +182,28 @@ Security Considerations
that zone as the response may be forged or a non-forged response of
an altered (DO bit cleared) query.
IANA Considerations
IANA considerations:
Allocation of the most significant bit of the Z field in the EDNS0
OPT meta-RR is required.
EDNS0[RFC2761] defines 16 bits as extened flags in the OPT record,
these bits are encoded into the TTL field of the OPT record (RFC2761
section 4.6).
This document reserves one of these bits as the OK bit. It is
requested that the left most bit be allocated. Thus the USE of the
OPT record TTL field would look like
+0 (MSB) +1 (LSB)
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
0: | EXTENDED-RCODE | VERSION |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
2: |DO| Z |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
Acknowledgements
This document is based on a rough draft by Bob Halley with input from
Olafur Gudmundsson, Andreas Gustafsson, Brian Wellington, Randy Bush,
Rob Austein, and Steve Bellovin.
Rob Austein, Steve Bellovin, and Erik Nordmark.
References
@ -208,6 +220,14 @@ References
2535, March 1999.
[RFC2671] Vixie, P., Extension Mechanisms for DNS (EDNS0)", RFC 2671,
Expires October, 2001 [Page 4]
draft-ietf-dnsext-dnssec-okbit-02.txt May, 2001
August 1999
Author's Address
@ -220,14 +240,6 @@ Author's Address
Phone: +1 650 779 6003
Expires May, 2001 [Page 4]
draft-ietf-dnsext-dnssec-okbit-01.txt November, 2000
Email: david.conrad@nominum.com
@ -267,17 +279,5 @@ Full Copyright Statement
Expires May, 2001 [Page 5]
Expires October, 2001 [Page 5]

View File

@ -6,7 +6,7 @@
DNEXT Working Group S. Rose
Internet Draft NIST
Expires: August 2001 February 2001
Expires: November 2001 April 2001
Category: Informational
@ -14,7 +14,7 @@ Category: Informational
DNS Security Document Roadmap
------------------------------
<draft-ietf-dnsext-dnssec-roadmap-02.txt>
<draft-ietf-dnsext-dnssec-roadmap-03.txt>
Status of this Document
@ -61,7 +61,7 @@ Rose [Page 1]
INTERNET-DRAFT DNS Security Document Roadmap February 2001
INTERNET-DRAFT DNS Security Document Roadmap April 2001
overview of what to find in which document and author
@ -120,7 +120,7 @@ Rose [Page 2]
INTERNET-DRAFT DNS Security Document Roadmap February 2001
INTERNET-DRAFT DNS Security Document Roadmap April 2001
1. Introduction
@ -180,7 +180,7 @@ Rose [Page 3]
INTERNET-DRAFT DNS Security Document Roadmap February 2001
INTERNET-DRAFT DNS Security Document Roadmap April 2001
possible that some documents fall into more than one of these
@ -207,11 +207,12 @@ INTERNET-DRAFT DNS Security Document Roadmap February 2001
| [RFC2538, | | [RFC2535, | | [SSH-DNS] |
| RFC2931, | | RFC3007, | +-------------+
| NO] | | RFC3008, |
+------------+ | CLARIFY, |
+------------+ | RFC3090, |
| SIZE ] |
| OKBIT, |
| ADBIT, |
| OPTIN ] |
| OPTIN, |
| PARSIG ] |
+-----------+
|
|
@ -233,14 +234,13 @@ INTERNET-DRAFT DNS Security Document Roadmap February 2001
Rose [Page 4]
INTERNET-DRAFT DNS Security Document Roadmap February 2001
INTERNET-DRAFT DNS Security Document Roadmap April 2001
The "DNSSEC protocol" document set refers to the document that makes
@ -258,8 +258,9 @@ INTERNET-DRAFT DNS Security Document Roadmap February 2001
lines of RFC/Internet Draft author guidelines). Also, the portions
of the specification to be modified SHOULD be synopsized in the new
document for the benefit of the reader. The "DNSSEC protocol" set
includes the documents [RFC2535], [RFC3007], [RFC3008], [CLARIFY],
[SIZE], [OKBIT], [ADBIT] and their derivative documents.
includes the documents [RFC2535], [RFC3007], [RFC3008], [RFC3090],
[SIZE], [OKBIT], [ADBIT], [OPTIN], [PARSIG] and their derivative
documents.
The "New Security RRs" set refers to the group of documents that seek
to add additional Resource Records to the set of base DNS Record
@ -289,8 +290,7 @@ INTERNET-DRAFT DNS Security Document Roadmap February 2001
vidual user public keys (PGP, e-mail, etc.) Some documents in this
group may fall beyond the DNSEXT WG scope, but they are included
because of their use of the security extensions. The documents in
this group should not propose any changes to the DNS protocol to sup-
port other protocols; only how existing DNS security records and
this group should not propose any changes to the DNS protocol to
@ -300,9 +300,10 @@ Rose [Page 5]
INTERNET-DRAFT DNS Security Document Roadmap February 2001
INTERNET-DRAFT DNS Security Document Roadmap April 2001
support other protocols; only how existing DNS security records and
transactions can be used to support other protocols. One such docu-
ment is [SSH-DNS] which deals with storing SSH keys in the DNS using
the security records.
@ -318,8 +319,8 @@ INTERNET-DRAFT DNS Security Document Roadmap February 2001
two Internet Drafts that fall under this category: the report on the
CAIRN DNSSEC testbed [CAIRN] and a draft on security key rollover
[ROLLOVER]. These documents were submitted through the DNSOP Working
Group, however the main concern of thesee documents is the implemen-
tation and limitations of the DNS security extensions, hence their
Group, however the main concern of these documents is the implementa-
tion and limitations of the DNS security extensions, hence their
interest to the DNS security community. The CAIRN draft deals with
the implementation of a secure DNS, and the draft on key rollover
deals with updating DNS keys in a secure fashion. Authors of docu-
@ -345,12 +346,11 @@ INTERNET-DRAFT DNS Security Document Roadmap February 2001
col to add security should follow common guidelines as to minimum
required content and structure. It is the purpose of this document
roadmap to establish criteria for content that any new DNS security
protocol specifications document SHOULD contain. This criteria
protocol specifications document SHOULD contain. These criteria
SHOULD be interpreted as a minimum set of information required/needed
in a document, any additional information regarding the specific
extension should also be included in the document. These criteria
are not officially part of the IETF guidelines regarding RFC/Internet
Drafts, but should be considered as guidance to promote uniformity to
@ -360,9 +360,10 @@ Rose [Page 6]
INTERNET-DRAFT DNS Security Document Roadmap February 2001
INTERNET-DRAFT DNS Security Document Roadmap April 2001
Drafts, but should be considered as guidance to promote uniformity to
Working Group documents.
Since the addition of security to the DNS protocol is now considered
@ -409,8 +410,7 @@ INTERNET-DRAFT DNS Security Document Roadmap February 2001
In addition, authors are encouraged to include any necessary descrip-
tion of the algorithm itself, as well as any know/suspected
weaknesses as an appendix to the document. This is for reference
only, as the goals of the DNSEXT working group is to propose exten-
sions to the DNS protocol, not cryptographic research.
only, as the goals of the DNSEXT working group is to propose
@ -420,7 +420,10 @@ Rose [Page 7]
INTERNET-DRAFT DNS Security Document Roadmap February 2001
INTERNET-DRAFT DNS Security Document Roadmap April 2001
extensions to the DNS protocol, not cryptographic research.
4.3 Refinement of Security Procedures
@ -468,9 +471,6 @@ INTERNET-DRAFT DNS Security Document Roadmap February 2001
6. Acknowledgements
In addition to the RFCs mentioned in this document, there are also
numerous Internet drafts that fall in one or more of the categories
of DNS Security documents mentioned above. Depending on where (and
if) these documents are on the IETF standards track, the reader may
@ -480,41 +480,44 @@ Rose [Page 8]
INTERNET-DRAFT DNS Security Document Roadmap February 2001
INTERNET-DRAFT DNS Security Document Roadmap April 2001
numerous Internet drafts that fall in one or more of the categories
of DNS Security documents mentioned above. Depending on where (and
if) these documents are on the IETF standards track, the reader may
not be able to access these documents through the RFC repositories.
For that reason, the version of the Internet drafts that were refer-
enced in this document are given below:
All of these documents are "Work in Progress" and are subject to
change, therefore a version number is not supplied for the current
revision.
* SIGALG: R. Austein, P. Vixie. "DNS SIGALGOPT". <draft-ietf-
dnsind-sigalgopt-00.txt>
* CLARIFY: E. Lewis. "DNS Security Extension Clarification on Zone
Status" <draft-ietf-dnsext-zone-status-05.txt>
* AUTH: B. Wellington. "Domain Name System Security (DNSSEC)
Signing Authority" <draft-ietf-dnsext-signing-auth-01.txt>
dnsind-sigalgopt-NN.txt>
* CAIRN: D. Massey, T. Lehman, and E. Lewis. "DNSSEC Implementa-
tion in the CAIRN Testbed". <draft-ietf-dnsop-dnsseccairn-00.txt>
tion in the CAIRN Testbed". <draft-ietf-dnsop-dnsseccairn-NN.txt>
* UPDATE: B. Wellington. "Secure Domain Name System (DNS) Dynamic
Update". <draft-ietf-simple-secure-update-02.txt>
Update". <draft-ietf-simple-secure-update-NN.txt>
* SIZE: O. Gudmundsson. "DNSSEC and IPv6 A6 aware server/resolver
message size requirements". <draft-ietf-dnsext-message-size-03.txt>
message size requirements". <draft-ietf-dnsext-message-size-NN.txt>
* GSS-TSIG: S. Kwan, P. Garg, J. Gilroy, and L. Esibov. "GSS
Algorithm for TSIG (GSS-TSIG)". <draft-ietf-dnsext-gss-tsig-01.txt>
Algorithm for TSIG (GSS-TSIG)". <draft-ietf-dnsext-gss-tsig-NN.txt>
* NO: S. A. Josefsson. "Authenticating Denial of Existence in DNS
with Minimum Disclosure". <draft-ietf-dnsext-not-existing-rr-01.txt>
with Minimum Disclosure". <draft-ietf-dnsext-not-existing-rr-NN.txt>
* OKBIT: D. Conrad. "Indicting Resolver Support of DNSSEC".
<draft-ietf-dnsext-dnssec-okbit-01.txt>
<draft-ietf-dnsext-dnssec-okbit-NN.txt>
* RSA-SHA: D. Eastlake. "RSA/SHA-1 SIGs and RSA KEYs in the
Domain Name System (DNS)" <draft-ietf-dnsext-rsa-02.txt>
Domain Name System (DNS)" <draft-ietf-dnsext-rsa-NN.txt>
* ROLLOVER: M. Andrews, D. Eastlake. "Domain Name System (DNS)
Security Key Rollover" <draft-ietf-dnsopt-rollover-00.txt>.
Security Key Rollover" <draft-ietf-dnsopt-rollover-NN.txt>.
* ADBIT: B. Wellington. "Redefinition of DNS AD bit" <draft-
ietf-dnsext-ad-is-secure-01.txt>
ietf-dnsext-ad-is-secure-NN.txt>
* OPTIN: M. Kosters. "DNSSEC Opt-in for Large Zones" <draft-
kosters-dnsext-dnssec-opt-in-00.txt>
kosters-dnsext-dnssec-opt-in-NN.txt>
* SSH-DNS: W. Griffin. "Storing SSH Host Keys in DNS" <draft-
griffin-ssh-host-keys-in-dns-00.txt>
griffin-ssh-host-keys-in-dns-NN.txt>
* PARSIG: R. Geiben, T. Lindgreen. "Parent's SIG Over Child's
KEY" <draft-ietf-dnsext-parent-sig-NN.txt>
7. References
@ -528,9 +531,6 @@ INTERNET-DRAFT DNS Security Document Roadmap February 2001
(DNS)", RFC 2536, March 1999.
[RFC2137] D. Eastlake, "Secure Domain Name System Dynamic Update",
RFC 2137, April 1997.
[RFC2539] D. Eastlake, "Storage of Diffie-Hellman Keys in the Domain
@ -540,9 +540,12 @@ Rose [Page 9]
INTERNET-DRAFT DNS Security Document Roadmap February 2001
INTERNET-DRAFT DNS Security Document Roadmap April 2001
RFC 2137, April 1997.
[RFC2539] D. Eastlake, "Storage of Diffie-Hellman Keys in the Domain
Name System (DNS)", RFC 2539, March 1999.
[RFC2538] D. Eastlake, O. Gudmundsson, "Storing Certificates in the
@ -554,6 +557,9 @@ INTERNET-DRAFT DNS Security Document Roadmap February 2001
[RFC2931] D. Eastlake "DNS Request and Transaction Signatures
(SIG(0))" RFC 2931, September 2000.
[RFC3090] E. Lewis "DNS Security Extensions Clarification on Zone
Status" RFC 3090, March 2001.
[RFC1591] J. Postal, "Domain Name System Structure and Delegation",
RFC 1591, March 1994.
@ -588,19 +594,46 @@ INTERNET-DRAFT DNS Security Document Roadmap February 2001
Expiration and File Name:
This draft, titled <draft-ietf-dnsext-dnssec-roadmap-02.txt> expires June 2001
Rose [Page 10]
INTERNET-DRAFT DNS Security Document Roadmap February 2001
INTERNET-DRAFT DNS Security Document Roadmap April 2001
Expiration and File Name:
This draft, titled <draft-ietf-dnsext-dnssec-roadmap-03.txt> expires November
2001
Full Copyright Statement
@ -618,6 +651,18 @@ Full Copyright Statement
Internet organizations, except as needed for the purpose of develop-
ing Internet standards in which case the procedures for copyrights
defined in the Internet Standards process must be followed, or as
Rose [Page 11]
INTERNET-DRAFT DNS Security Document Roadmap April 2001
required to translate it into languages other than English.
The limited permissions granted above are perpetual and will not be
@ -654,6 +699,21 @@ Full Copyright Statement
Rose [Page 11]
Rose [Page 12]

View File

@ -1,558 +0,0 @@
INTERNET DRAFT M. Ohta
draft-ietf-dnsext-ixfr-01.txt Tokyo Institute of Technology
June 2000
Incremental Zone Transfer in DNS
Status of this Memo
This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026.
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.
Copyright (C) The Internet Society (March/5/2000). All Rights
Reserved.
Abstract
This document proposes extensions to the DNS protocols to provide an
incremental zone transfer (IXFR) mechanism.
1. Introduction
For rapid propagation of changes to a DNS database [STD13], it is
necessary to reduce latency by actively notifying servers of the
change. This is accomplished by the NOTIFY extension of the DNS
[NOTIFY].
The current full zone transfer mechanism (AXFR) is not an efficient
means to propagate changes to a small part of a zone, as it transfers
the entire zone file.
Incremental transfer (IXFR) as proposed is a more efficient
mechanism, as it transfers only the changed portion(s) of a zone.
M. Ohta Expires on December 5, 2000 [Page 1]
INTERNET DRAFT Incremental Zone Transfer in DNS June 2000
In this document, a secondary name server which requests IXFR is
called an IXFR client and a primary or secondary name server which
responds to the request is called an IXFR server.
The current AXFR specification in [STD13] is very terse, and in
practice it does not contain sufficient information to construct
interoperable implementations. This memo assumes AXFR protocol used
in existing interoperable implementations.
2. Brief Description of the Protocol
If an IXFR client, which likely has an older version of a zone,
thinks it needs new information about the zone (typically through SOA
refresh timeout or the NOTIFY mechanism), it sends an IXFR message
containing the SOA serial number of its, presumably outdated, copy of
the zone.
An IXFR server should keep record of the newest version of the zone
and the differences between that copy and several older versions.
When an IXFR request with an older version number is received, the
IXFR server needs to send only the differences required to make that
version current. Alternatively, the server may choose to transfer
the entire zone just as in a normal full zone transfer.
When a zone has been updated, it should be saved in stable storage
before the new version is used to respond to IXFR (or AXFR) queries.
Otherwise, if the server crashes, data which is no longer available
may have been distributed to secondary servers, which can cause
persistent database inconsistencies.
If an IXFR query with the same or newer version number than that of
the server is received, it is replied to with a single SOA record of
the server's current version, just as a SOA query before TCP AXFR.
Transport of a query may be by either UDP or TCP. If an IXFR query
is via UDP, the IXFR server may attempt to reply using UDP if the
entire response can be contained in a single UDP packet. If the UDP
reply does not fit, the query is responded to with a single SOA
record of the server's current version to inform the client that a
TCP query should be initiated.
Thus, a client should first make an IXFR query using UDP. If the
query type or other part of the query is not recognized by the
server, an AXFR (preceded by a UDP SOA query) should be tried,
ensuring backward compatibility. If the query response is a single
packet with the entire new zone, or if the server does not have a
newer version than the client, everything is done. Otherwise, a TCP
IXFR query should be tried.
M. Ohta Expires on December 5, 2000 [Page 2]
INTERNET DRAFT Incremental Zone Transfer in DNS June 2000
To ensure integrity, servers should use UDP checksums for all UDP
responses. A cautious client which receives a UDP packet with a
checksum value of zero should ignore the result and try a TCP IXFR
instead.
The query type value of IXFR assigned by IANA is 251.
3. Query Format
The IXFR query packet format is the same as that of a normal DNS
query, but with the query type being IXFR and the authority section
containing the SOA record of client's version of the zone.
4. Response Format
If incremental zone transfer is not available, the entire zone is
returned. The first and the last RR of the response is the SOA
record of the zone. I.e. the behavior is the same as an AXFR
response except the query type is IXFR.
If incremental zone transfer is available, one or more difference
sequences is returned. The list of difference sequences is preceded
and followed by a copy of the server's current version of the SOA.
Each difference sequence represents one update to the zone (one SOA
serial change) consisting of deleted RRs and added RRs. The first RR
of the deleted RRs is the older SOA RR and the first RR of the added
RRs is the newer SOA RR.
Modification of an RR is performed first by removing the original RR
and then adding the modified one.
Each individual difference sequence must leave the zone in a
consistent state with contents identical to those visible in the
master at the time identified by the new SOA serial number. During a
transfer, the slave server may save the zone data to stable storage
and use it in responding to queries after applying one or more
complete difference sequences even if they do not yet form a complete
incremental transfer.
A difference sequence which indicates the removal of a non-existent
RR is an indication of an error that the IXFR client is out-of-sync
with the IXFR server. The IXFR SHOULD be aborted, and an AXFR
requested from the same server. A difference sequence which
indicates the addition of a seemingly duplicate (though a node may
have multiple TXT RR's with duplicate content) or conflicting RR may
just be a malformed zone. In any case the IXFR should be aborted and
AXFR performed.
M. Ohta Expires on December 5, 2000 [Page 3]
INTERNET DRAFT Incremental Zone Transfer in DNS June 2000
The sequences of differential information are ordered oldest first
newest last. Thus, the differential sequences are the history of
changes made since the version known by the IXFR client up to the
server's current version.
RR sets (RRs of the same RR types) in the incremental transfer
messages may be partial. For example, if a single RR of multiple RRs
of the same RR type changes, only the changed RR needs to be
transferred.
An IXFR client, should only replace an older version with a newer
version after all the differences have been successfully processed.
An incremental response is different from that of a non-incremental
response in that it begins with two SOA RRs, the server's current SOA
followed by the SOA of the client's version which is about to be
replaced.
A slave receiving an IXFR response needs to classify it as one of the
following four cases:
UDP-overflow An indication that the transfer will not fit in a
UDP packet and should be retried over TCP
up-to-date An indication that the serial number of the
request is current and no transfer is necessary
incremental An incremental transfer
nonincremental A full zone transfer
Performing this classification requires some care. For example,
UDP-overflow responses differ from UDP up-to-date responses only in
the value of the SOA serial number. Also, to distinguish between a
nonincremental and an incremental transfer, the slave needs to
receive the first two response RRs and check whether the second one
is a SOA. If the master chose to transmit each RR in a separate TCP
message, this involves waiting for a second TCP response message. On
the other hand, in the case of an up-to-date response, the slave must
not wait for a second TCP message as doing so would cause it to hang
waiting for a message the master will never send. Therefore, the
slave must examine the first message and eliminate the possibility
that it is a TCP up-to-date response before it attempts to receive a
second message.
Slaves must not attempt to classify a response based on incidental
information such as the presence or absence of a question section,
the QTYPE field of a possible question section, or the number of
M. Ohta Expires on December 5, 2000 [Page 4]
INTERNET DRAFT Incremental Zone Transfer in DNS June 2000
response RRs in a TCP response message.
An example algorithm for classifying IXFR responses appears in
Appendix A.
5. Purging Strategy
An IXFR server can not be required to hold all previous versions
forever and may delete them anytime. In general, there is a trade-
off between the size of storage space and the possibility of using
IXFR.
Information about older versions should be purged if the total length
of an IXFR response would be longer than that of an AXFR response.
Given that the purpose of IXFR is to reduce AXFR overhead, this
strategy is quite reasonable. The strategy assures that the amount
of storage required is at most twice that of the current zone
information.
Information older than the SOA expire period should also be purged.
6. Optional Condensation of Multiple Versions
An IXFR server may optionally condense multiple difference sequences
into a single difference sequence, thus, dropping information on
intermediate versions.
This may be beneficial if a lot of versions, not all of which are
useful, are generated. For example, if multiple ftp servers share a
single DNS name and the IP address associated with the name is
changed once a minute to balance load between the ftp servers, it is
not so important to keep track of all the history of changes.
But, this feature may not be so useful if an IXFR client has access
to two IXFR servers: A and B, with inconsistent condensation results.
The current version of the IXFR client, received from server A, may
be unknown to server B. In such a case, server B can not provide
incremental data from the unknown version and a full zone transfer is
necessary.
Condensation is completely optional. Clients can't detect from the
response whether the server has condensed the reply or not.
For interoperability, IXFR servers, including those without the
condensation feature, should not flag an error even if it receives a
client's IXFR request with a version number known not to exist (which
means that the server has versions with version numbers newer and
older than, but not equal to, the version number) and should,
M. Ohta Expires on December 5, 2000 [Page 5]
INTERNET DRAFT Incremental Zone Transfer in DNS June 2000
instead, attempt to perform a full zone transfer by replying with a
single SOA record of the server's current version (UDP case) or with
a full zone content (UDP or TCP case).
7. Example
Given the following three generations of data with the current serial
number of 3,
example.domain. IN SOA ns.example.domain. rt.example.domain. (
1 600 600 3600000 604800)
IN NS ns.example.domain.
ns.example.domain. IN A 10.0.0.1
ftp.example.domain. IN A 10.0.1.1
ftp.example.domain. is removed and www.example.domain. is added.
example.domain. IN SOA ns.example.domain. rt.example.domain. (
2 600 600 3600000 604800)
IN NS ns.example.domain.
ns.example.domain. IN A 10.0.0.1
www.example.domain. IN A 10.0.1.2
IN A 10.0.2.1
One of the IP addresses of www.example.domain. is changed.
example.domain. IN SOA ns.example.domain. rt.example.domain. (
3 600 600 3600000 604800)
IN NS ns.example.domain.
ns.example.domain. IN A 10.0.0.1
www.example.domain. IN A 10.0.3.1
IN A 10.0.2.1
The following IXFR query
+---------------------------------------------------+
Header | OPCODE=SQUERY |
+---------------------------------------------------+
Question | QNAME=example.domain., QCLASS=IN, QTYPE=IXFR |
+---------------------------------------------------+
Answer | <empty> |
+---------------------------------------------------+
Authority | example.domain. IN SOA serial=1 |
+---------------------------------------------------+
Additional | <empty> |
+---------------------------------------------------+
could be replied to with the following full zone transfer message:
M. Ohta Expires on December 5, 2000 [Page 6]
INTERNET DRAFT Incremental Zone Transfer in DNS June 2000
+---------------------------------------------------+
Header | OPCODE=SQUERY, RESPONSE |
+---------------------------------------------------+
Question | QNAME=example.domain., QCLASS=IN, QTYPE=IXFR |
+---------------------------------------------------+
Answer | example.domain. IN SOA serial=3 |
| example.domain. IN NS NS.JAIN.AD.JP. |
| ns.example.domain. IN A 10.0.0.1 |
| www.example.domain. IN A 10.0.3.1 |
| www.example.domain. IN A 10.0.2.1 |
| example.domain. IN SOA serial=3 |
+---------------------------------------------------+
Authority | <empty> |
+---------------------------------------------------+
Additional | <empty> |
+---------------------------------------------------+
or with the following incremental message:
+---------------------------------------------------+
Header | OPCODE=SQUERY, RESPONSE |
+---------------------------------------------------+
Question | QNAME=example.domain., QCLASS=IN, QTYPE=IXFR |
+---------------------------------------------------+
Answer | example.domain. IN SOA serial=3 |
| example.domain. IN SOA serial=1 |
| ftp.example.domain. IN A 10.0.1.1 |
| example.domain. IN SOA serial=2 |
| www.example.domain. IN A 10.0.1.2 |
| www.example.domain. IN A 10.0.2.1 |
| example.domain. IN SOA serial=2 |
| www.example.domain. IN A 10.0.1.2 |
| example.domain. IN SOA serial=3 |
| www.example.domain. IN A 10.0.3.1 |
| example.domain. IN SOA serial=3 |
+---------------------------------------------------+
Authority | <empty> |
+---------------------------------------------------+
Additional | <empty> |
+---------------------------------------------------+
or with the following condensed incremental message:
+---------------------------------------------------+
Header | OPCODE=SQUERY, RESPONSE |
+---------------------------------------------------+
Question | QNAME=example.domain., QCLASS=IN, QTYPE=IXFR |
+---------------------------------------------------+
M. Ohta Expires on December 5, 2000 [Page 7]
INTERNET DRAFT Incremental Zone Transfer in DNS June 2000
Answer | example.domain. IN SOA serial=3 |
| example.domain. IN SOA serial=1 |
| ftp.example.domain. IN A 10.0.1.1 |
| example.domain. IN SOA serial=3 |
| www.example.domain. IN A 10.0.3.1 |
| www.example.domain. IN A 10.0.2.1 |
| example.domain. IN SOA serial=3 |
+---------------------------------------------------+
Authority | <empty> |
+---------------------------------------------------+
Additional | <empty> |
+---------------------------------------------------+
or, if UDP packet overflow occurs, with the following message:
+---------------------------------------------------+
Header | OPCODE=SQUERY, RESPONSE |
+---------------------------------------------------+
Question | QNAME=example.domain., QCLASS=IN, QTYPE=IXFR |
+---------------------------------------------------+
Answer | example.domain. IN SOA serial=3 |
+---------------------------------------------------+
Authority | <empty> |
+---------------------------------------------------+
Additional | <empty> |
+---------------------------------------------------+
8. Acknowledgements
The original idea of IXFR was conceived by Anant Kumar, Steve Hotz
and Jon Postel.
For the refinement of the protocol and documentation, many people
have contributed including, but not limited to, Anant Kumar, Robert
Austein, Paul Vixie, Randy Bush, Mark Andrews, Robert Elz, Andreas
Gustafsson, Josh Littlefield, Olafur Gudmundsson, William King and
the members of the IETF DNSEXT working group.
9. References
[NOTIFY] Vixie, P., "A Mechanism for Prompt Notification of Zone
Changes (DNS NOTIFY)", RFC1996, August 1996.
[STD13] Mockapetris, P., "Domain Name System" (RFC1034 and RFC1035),
November 1987.
10. Appendix A Appendix A. Pseudocode for response classification
M. Ohta Expires on December 5, 2000 [Page 8]
INTERNET DRAFT Incremental Zone Transfer in DNS June 2000
The following pseudocode outlines one possible algorithm for
classifying IXFR responses.
receive the first response message;
extract the first response RR, always an SOA;
if (the serial number of this SOA RR is less
than or equal to that of the request) {
the response is an up-to-date response;
} else {
if (the response message was received by UDP and
contains no more RRs after the initial SOA) {
the response is a UDP-overflow response;
} else {
extract the second response RR, waiting for a second TCP
response message if necessary;
if (this second RR is an SOA) {
the response is an incremental transfer;
} else {
the response is a nonincremental transfer;
}
}
}
11. Security Considerations
Though DNS is related to several security problems, no attempt is
made to fix them in this document.
This document is believed to introduce no additional security
problems to the current DNS protocol.
12. Author's Address
Masataka Ohta
Computer Center, Tokyo Institute of Technology
2-12-1, O-okayama, Meguro-ku, Tokyo 152-8550, JAPAN
Phone: +81-3-5734-3299, Fax: +81-3-5734-3415
EMail: mohta@necom830.hpcl.titech.ac.jp
Comments should be directed to DNSEXT WG <namedroppers@ops.ietf.org>.
M. Ohta Expires on December 5, 2000 [Page 9]
INTERNET DRAFT Incremental Zone Transfer in DNS June 2000
13. Full Copyright Statement
"Copyright (C) The Internet Society (March/5/2000). All Rights
Reserved.
This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it
or assist in its implementation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph are
included on all such copies and derivative works. However, this
document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of
developing Internet standards in which case the procedures for
copyrights defined in the Internet Standards process must be
followed, or as required to translate it into languages other than
English.
The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on an
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
M. Ohta Expires on December 5, 2000 [Page 10]

View File

@ -0,0 +1,19 @@
This Internet-Draft has been deleted. Unrevised documents placed in the
Internet-Drafts directories have a maximum life of six months. After
that time, they are deleted. This Internet-Draft was not published as
an RFC.
Internet-Drafts are not an archival document series, and expired
drafts, such as this one, are not available; please do not ask for
copies... they are not available. The Secretariat does not have
information as to future plans of the authors or working groups WRT the
deleted Internet-Draft.
For more information or a copy of the document, contact the author directly.
Draft Author(s):
M. Ohta: mohta@necom830.hpcl.titech.ac.jp

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,19 @@
This Internet-Draft has been deleted. Unrevised documents placed in the
Internet-Drafts directories have a maximum life of six months. After
that time, they are deleted. This Internet-Draft was not published as
an RFC.
Internet-Drafts are not an archival document series, and expired
drafts, such as this one, are not available; please do not ask for
copies... they are not available. The Secretariat does not have
information as to future plans of the authors or working groups WRT the
deleted Internet-Draft.
For more information or a copy of the document, contact the author directly.
Draft Author(s):
A. Gallant: andrew.gallant@comsat.com

View File

@ -1,342 +0,0 @@
Telephone Number Mapping A. Brown
Internet Draft Nortel Networks
Document: <draft-ietf-enum-rqmts-01.txt> June 2000
Category: Informational
ENUM Requirements
Status of this Memo
This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026 [1].
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.
1. Abstract
This paper defines the requirements for a DNS-based architecture and
protocols for mapping a telephone number to a set of attributes
(e.g., URLs) that can be used to contact a resource associated with
that number. There are many possible protocols that can be
considered for a telephone number mapping service. The purpose of
this document is to focus discussion on a DNS-based solution. The
intention is to enumerate the expectations of such a solution and to
clarify the scope.
2. Conventions used in this document
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 [2].
3. Requirements
3.1 Endpoint Address Lookup
The system SHALL provide a service for the retrieval of service
specific endpoint addresses (e.g., email address, IP address, SIP
address, URL, etc.) or the retrieval of the addresses of servers, if
available, which may contain this endpoint information.
ENUM Requirements June 2000
3.2 Capabilities Retrieval/Negotiation
The retrieval or negotiation of capabilities is beyond the scope of
the system.
3.3 Retrieval of Additional Information and Capabilities
The retrieval of additional, application-specific information (e.g.,
spoken name for verification purposes) is beyond the scope of the
system. The system MUST provide a service for the retrieval of
protocol and service information if available.
The system SHOULD provide access to capabilities relevant to the
telephone number in question. The retrieval or negotiation of
capabilities will depend on the outcome of the rescap work or work
done in other groups.
3.4 Qualification of the Request
The system is not required to enable the qualification of a request
by a user, for the purposes of filtering for reducing returned
information or for traffic reduction.
3.5 Provisioning
The architecture and protocol MAY support at least the existing
administrative model as the current E.164 telephone number
delegation system. The protocol SHOULD also provide the ability to
support corporate numbering plan or competitive directory service
providers under separate root domains. It SHOULD NOT require an
additional centralized administrator beyond that required for the
existing telephone number system.
The distribution of telephone numbers is a national affair by ITU
treaty and different telephone number distribution schemes may
require different delegation models. How nations choose to
administer the ENUM space within their borders is a national issue.
In any case, the subscriber or enterprise is the ultimate authority
for service provisioning.
Further, it must be possible for the authority to which a telephone
number has been delegated to redirect the query to a different
entity that provides service-specific information for that number.
3.6 Propagation of Changes
Propagation of Changes If multiple copies of the data are
distributed in different areas, their update should be incorporated
almost simultaneously depending on the application of DNS to
services.
ENUM Requirements June 2000
When a numbering plan change is made in a country or network, the
update of relevant E.164 number data in DNS needs to be coordinated
with the change.
3.7 Response Timeout
The system SHALL have a defined timeout mechanism.
3.8 Global Number Portability
The system MUST support existing local number portability
mechanisms, where applicable. It is RECOMMENDED that the system not
be designed in such as way as to impede future global number
portability.
3.9 Scalability
The system MUST scale to handle quantities of telephone numbers and
queries comparable to current and expected future PSTN usage.
It must be possible to operate the system based on telephone number
blocks defined at the digit boundaries as well as explicit per-
number configuration.
3.10 Query Performance
It SHOULD be possible to administer the ENUM service using the
selected protocols and structures such that the current user
expectations for latency in telecommunications services can be met.
In particular, it SHOULD be possible to operate the system in such a
manner that an ENUM query for a service-specific record can be
satisfied within one second 95% of the time and that within two
seconds, the query can be satisfied 99% of the time.
3.11 Other PSTN Numbering Services
E.164 numbers, short codes, service codes and prefixes are
categorized in dialing plans. A prefix is an indicator consisting
of one or more digits that allows the selection of different types
of number formats, networks and/or services. Prefixes are not part
of the number and are part of a dialing plan. The uses and the
formats of prefixes are a national matter. Short codes, e.g.
emergency, or service codes may be used based on the national
numbering plan. Those codes are not universal and typically valid
only within a numbering domain identified with the same country code
or country code + network identification code.
PSTN type numbering services such as Emergency 911, directory
assistance 411, and other carrier codes for services accessible via
non-E164 (or subset) telephone number service access codes are
outside the scope of ENUM.
3.12 Privacy
ENUM Requirements June 2000
The system MUST allow the owner of the telephone number to control
the information which prospective callers may receive.
3.13 Competition
The solution MUST permit competing service providers to offer
telecommunications service for a given number. Competing
telecommunications services MUST be enabled where the ENUM entry is
administered by the single entity to which the number is delegated.
Who that single entity is, is beyond the scope of ENUM.
3.14 Authorization of Requests and Responses
The system SHALL enable the authorization of requests and responses.
3.15 Privacy and Integrity of Requests and Responses
The system SHALL enable the privacy and integrity of requests and
responses.
3.16 Call Routing
The system is not required to provide a service for routing calls or
locating gateways to a specific service.
3.17 Service Logic
The system is not responsible for employing service logic for the
intelligent retrieval of information.
3.18 E.164 Numbers
The system is not responsible for returning information on private
numbering plans and non-E.164 numbers. The system is responsible
for returning information on 1-800 and other legitimate E.164
numbers.
3.19 Application Specific Use of ENUM
The ENUM service MUST be application agnostic. It is expected that
various other IETF work groups will develop ENUM specific usage
profiles for their specific application. ENUM will not mandate the
use of any specific DNS Resource Record for any particular
application.
4. Security Considerations
This document specifies several security requirements including
privacy of information, and authorization, privacy and integrity or
requests and responses.
ENUM Requirements June 2000
The system will be designed to retrieve information required to
initiate an Internet telephony session. Each of these session types
will have their own security threats, which should be addressed in
the groups responsible for those services.
5. References
1 Bradner, S., "The Internet Standards Process -- Revision 3", BCP
9, RFC 2026, October 1996.
2 Bradner, S., "Key words for use in RFCs to Indicate Requirement
Levels", BCP 14, RFC 2119, March 1997
6. Acknowledgements
This document is based on discussions from the ENUM working group.
7. Author's Addresses
Anne Brown
Nortel Networks
P.O. Box 3511, Station C
K1Y 4H7
Phone: +1 613 765 5274
Email: arbrown@nortelnetworks.com
8. Changes From draft-enum-rqmts-00.txt
Based on WG discussions and input documents from the SG2 workshop,
the following changes have been made since the previous version of
this draft:
3.1 Endpoint Address Lookup
Major - URLs are not the only response
3.3 Retrieval of Additional Information and Capabilities
Renamed from "Retrieval of Additional Information"
Minor - Added paragraph on capabilities
3.5 Provisioning
Major - New text involving change of ENUM scope
3.6 Propagation of Changes
New section
Major - New section based on nnar-e164-dns-iw-info.txt
3.9 Scalability
Renumbered from 3.8
Major - New paragraph on handling of both blocks and
individual telephone numbers.
3.10 Query Performance
Renumbered from 3.9
Major - Upgraded to support PSTN performance
expectations
3.11 Other PSTN Numbering Services
Renumbered from 3.10
ENUM Requirements June 2000
Renamed from "Other PSTN Services"
Minor - Changes for clarification based on WG
discussions and nnar-e164-dns-iw-info.txt
3.13 Competition
Renumbered from 3.12
Major - Telephone number MUST be able to be
administered by a single entity
3.19 Application Specific Use of ENUM
New Section
Major - For clarification
Full Copyright Statement
"Copyright (C) The Internet Society (date). All Rights Reserved.
This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it
or assist in its implmentation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph
are included on all such copies and derivative works. However, this
document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of
developing Internet standards in which case the procedures for
copyrights defined in the Internet Standards process must be
followed, or as required to translate it into

View File

@ -0,0 +1,19 @@
This Internet-Draft has been deleted. Unrevised documents placed in the
Internet-Drafts directories have a maximum life of six months. After
that time, they are deleted. This Internet-Draft was not published as
an RFC.
Internet-Drafts are not an archival document series, and expired
drafts, such as this one, are not available; please do not ask for
copies... they are not available. The Secretariat does not have
information as to future plans of the authors or working groups WRT the
deleted Internet-Draft.
For more information or a copy of the document, contact the author directly.
Draft Author(s):
A. Brown: arbrown@nortel.ca

View File

@ -1,7 +1,7 @@
Internet Draft James SENG
<draft-ietf-idn-cjk-00.txt> Yoshiro YONEYA
12th Sep 2000 Kenny HUANG
Expires 12 Mar 2001 KIM Kyongsok
<EFBFBD>©ÀInternet Draft James SENG
<draft-ietf-idn-cjk-01.txt> Yoshiro YONEYA
11th Apr 2001 Kenny HUANG
Expires 11 Oct 2001 KIM Kyongsok
Han Ideograph (CJK) for Internationalized Domain Names
@ -54,11 +54,6 @@ for reference for the ideograph described.
Han ideographs are defined as the Chinese ideographs starting from
U+3400 to U+9FFF or commonly known as CJK Unification Ideographs. This
Expires 12th March 2001 [Page 1]
Internet Draft Han Ideograph (CJK) for IDN 12th Mar 2001
covers Chinese 'hanzi' {U+6F22 U+5B57/U+6C49 U+5B57}, Japanese 'kanji'
(U+6F22 U+5B57) and Korean 'hanja' {U+6F22 U+5B57/U+D55C U+C790}.
Additional Han ideographs will appear in other location (not necessary
@ -113,11 +108,6 @@ points in Unicode.
Chinese ideographs or hanzi {U+6F22 U+5B57/U+6C49 U+5B57} originated
from pictograph. They are 'pictures' which evolved into ideographs
during several thousand years. For instance, the ideograph for "hill"
Expires 12th March 2001 [Page 2]
Internet Draft Han Ideograph (CJK) for IDN 12th Mar 2001
{U+5C71} still bears some resembles to 3 peaks of a hill.
Not all ideographs are pictograph. There are other classifications such
@ -172,11 +162,6 @@ match with TC {U+81FA U+5F4E} or TC {U+53F0 U+5F4E}.
The side effect of this method is that comparing SC {U+53D1} to TC
{U+667C} or TC {U+9AEE} will both be positive. This implies that SC
'hair' SC …ñ³…Åæ {U+5934 U+53D1} will match TC
Expires 12th March 2001 [Page 3]
Internet Draft Han Ideograph (CJK) for IDN 12th Mar 2001
(U+982D U+9AEE). It will also match TC {U+982D U+9AEE} that does not
have any meaning in Chinese.
@ -231,11 +216,6 @@ the 5th century. Chinese ideographs in Japanese are known as 'kanji'
{U+6F22 U+5B57}. They also developed their own syllabary hiragana
{U+5E73 U+4EEE U+540D} (U+3040-U+309F) and katakana {U+7247 U+4EEE
U+540D} (U+30A0-U+30FF), both are derivative of kanji that has same
Expires 12th March 2001 [Page 4]
Internet Draft Han Ideograph (CJK) for IDN 12th Mar 2001
pronunciation. Hiragana is a simplified cursive form, for example, 'a'
{U+3042} was derived from 'an' {U+5B89}. Katakana is a simplified part
form, for example, 'a' {U+30A2} was derived from 'a' {U+963F}. However,
@ -290,11 +270,6 @@ Hence, Han folding here is not recommended.
4. Vietnamese
While Vietnamese also adopted Chinese ideographs ('chu han') and created
Expires 12th March 2001 [Page 5]
Internet Draft Han Ideograph (CJK) for IDN 12th Mar 2001
their own ideographs ('chu nom'), they were now replaced by romanized
'quoc ngu' today. Hence, this document does not attempt to address any
issues with 'chu han' or 'chu nom'.
@ -349,11 +324,6 @@ or removing radical from standard ideographs.
7. Mechanism
Expires 12th March 2001 [Page 6]
Internet Draft Han Ideograph (CJK) for IDN 12th Mar 2001
The implicit proposal in this document is that CJKV ideographs may or
may not be "folded" for the purposes of comparison of domain names.
@ -405,14 +375,6 @@ If conservative safety is really required, then
are made on x-axis characters, but the license of that domain name
can pick which y or z variants they wish to use..
Expires 12th March 2001 [Page 7]
Internet Draft Han Ideograph (CJK) for IDN 12th Mar 2001
Acknowledgement
The editor gratefully acknowledge the contributions of:
@ -424,7 +386,7 @@ Karlsson Kent <keka@im.se>
Author(s)
James SENG
James SENG ˆÄè†î¯…«Å
i-DNS.net International Pte Ltd.
8 Temasek Boulevard
Suntec Tower 3 #24-02
@ -439,7 +401,7 @@ Shinagawa IntercityBldg., B-13F
Email: yone@po.ntts.co.jp
Tel: +81-3-5782-7291
Kenny HUANG
Kenny HUANG ‰©â…雷¢ä
Geotempo International Ltd; TWNIC
3F, No 16 Kang Hwa Street, Nei Hu
Taipei 114, Taiwan
@ -468,11 +430,6 @@ References
[KANJIDIC] SanseidoÇÖs Unicode Kanji Information Dictionary
ISBN 4-385-13690-4
Expires 12th March 2001 [Page 8]
Internet Draft Han Ideograph (CJK) for IDN 12th Mar 2001
[UNICHART] Unicode chart http://charts.unicode.org/
[ZONGBIAO] Simplified Characters Standard Chart 2nd Edition, 1986
@ -494,37 +451,4 @@ Internet Draft Han Ideograph (CJK) for IDN 12th Mar 2001
Vol. 14, No. 4, pp. 297-325, Aug. 1992.
[KimK 1999] A Hangeul story inside computers. KIM, Kyongsok. Busan
National University Press. 1999. [in Hangeul]
Expires 12th March 2001 [Page 9]
National University Press. 1999. [in Hangeul]

View File

@ -1,687 +0,0 @@
Internet Draft Paul Hoffman
draft-ietf-idn-compare-01.txt IMC & VPNC
July 11, 2000
Expires in six months
Comparison of Internationalized Domain Name Proposals
Status of this memo
This document is an Internet-Draft and is in full conformance with all
provisions of Section 10 of RFC 2026.
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.
Abstract
The IDN Working Group is working on proposals for internationalized
domain names that might become a standard in the IETF. Before a single
full proposal can be made, competing proposals must be compared on a
wide range of requirements and desired features. This document compares
the many parts of a comprehensive protocol that have been proposed. It
is the companion document to "Requirements of Internationalized Domain
Names" [IDN-REQ], which lays out the requirements for the
internationalized domain name protocol.
1. Introduction
As the IDN Working Group has discussed the requirements for IDN,
suggestions have been made for various candidate protocols that might
meet the requirements. These proposals have been somewhat helpful in
bringing up real-world needs for the requirements.
It became clear no single proposal had wide agreement from the working
group. In fact, the authors of various proposals found themselves taking
some features from other proposals as they revised their drafts. At the
same time, working group participants were making suggestions for
incremental changes that might affect more than one proposal.
Because of this mixing and matching, it was decided that this IDN
comparisons document should compare features that might end up in the
final protocol, not full protocol suggestions themselves. The features
that had been discussed in the working group were divided by function,
and appear in this document in separate sections. For each function,
there are multiple suggestions for protocol elements that might meet the
requirements that are described in [IDN-REQ].
This document is being discussed on the "idn" mailing list. To join the
list, send a message to <majordomo@ops.ietf.org> with the words
"subscribe idn" in the body of the message. Archives of the mailing list
can also be found at ftp://ops.ietf.org/pub/lists/idn*.
1.1 Format of this document
Each section covers one feature that has been discussed as being part of
the final IDN solution. Within each section, alternate proposals are
listed with the major perceived pros and cons of the proposal. Also,
each proposal is given a label to make discussion of this document (and
of the proposals themselves) easier.
References to the numbered requirements in [IDN-REQ] are from version
-02 of that document. These numbers are expected to change and the
requirements document evolves. In this draft, the requirements are show
as "[#n-02]", where "n" is the requirement number from draft -02 of
[IDN-REQ]. This document only lists where particular proposals don't
meet particular requirmenents from [IDN-REQ], not the ones that they
fulfill.
Note that this document is supposed to reflect the discussion of all
proposed alternatives, not just the ones that fully match the
requirements in [IDN-REQ]. It will serve as a summary of the discussion
in the IDN WG for readers in the future who may want to know why certain
alternatives were not chosen for the eventual protocol.
The proposal drafts covered in this document are:
[DUERST] Character Normalization in IETF Protocols,
draft-duerst-i18n-norm-03
[IDNE] Internationalized domain names using EDNS (IDNE),
draft-ietf-idn-idne-01
[KWAN] Using the UTF-8 Character Set in the Domain Name System,
draft-skwan-utf8-dns-03
[RACE] RACE: Row-based ASCII Compatible Encoding for IDN,
draft-ietf-idn-race-00
[SENG] UTF-5, a transformation format of Unicode and ISO 10646,
draft-jseng-utf5-01
[UDNS] Using the Universal Character Set in the Domain Name System
(UDNS), draft-ietf-idn-udns-00
2. Architecture
One of the biggest questions raised early in the IDN discussion was what
the format of internationalized name parts would be on the wire, that
is, between the user's computer and the DNS resolvers. It was agreed
that the DNS protocols certainly allow non-ASCII octets in domain name
parts and resource records, but there was also acknowledgement that many
protocols that rely on the DNS could not handle non-ASCII names due to
the design of the protocol. Section 3.1 of this document describes the
proposed encodings for the non-ASCII name parts.
Because of requirement [#2-02], there were proposals for
ASCII-compatible encodings (ACEs) of non-ASCII characters. Different
ACEs were proposed (and are discussed in Section 4 of this document),
but they all have the same goal: to allow non-ASCII characters to be
represented in host names that conform to RFC 1034 [RFC1034].
2.1 arch-1: Just send binary
[KWAN] proposes beginning to send characters outside the range allowed
in RFC 1034.
Pro: Easiest to describe. Only changes host name syntax, not any of the
related DNS protocols.
Con: Doesn't work with many exiting protocols that relies on DNS.
Violates requirement [#9-02].
2.2 arch-2: Send binary or ACE
[UDNS] (and, later, [IDNE]) proposes using both binary and ACE formats
on the wire.
Pro: Allows protocols that can handle binary name parts to use them
directly, while allowing protocols that cannot use binary name parts to
also handle names without conversion. Allows domain names in free text
to be displayed in binary even in systems that require ACE-formatted
names on the wire.
Con: Requires all software that uses domain names to handle both
formats. Requires processing time for conversion of ACE formats into the
format must likely used internally to the software.
2.3 arch-3: Just send ACE
[RACE] and [SENG] propose that host naming rules remain the same and
that all internationalize domain names be sent in ACE format.
Pro: No changes at all to current DNS protocols.
Con: Requires all software to recognize ACE domain names and convert
them to human-readable for display. This is true not only in domain
names used on the wire but also domain names used in free text.
3. Names in binary
Both arch-1 and arch-2 include domain name parts that are represented on
the wire in a binary format. This section describes some of the features
of such names.
3.1 bin-1: Format
There are many different charsets and encodings for the scripts of the
world. The WG has discussed which binary encoding should be used on the
wire.
3.1.1 bin-1.1: UTF-8
The IETF policy on character sets [RFC2277] states that UTF-8 [RFC2279]
is the preferred charset for IETF protocols. UTF-8 encodes all
characters in the ISO 10646 repertoire.
Pro: Well-supported in other IETF protocols. Compact for most scripts.
Wide implementation in programming languages. US-ASCII characters have
the same encoding in UTF-8 as they do in US-ASCII. Because it is based
on ISO 10646, expansion of the repertoire comes from respected
international standards bodies.
Con: Asian scripts require three octets per character.
3.1.2 bin-1.2: Labelled charsets
Mailing list discussion mentioned using multiple charsets for the binary
representation. Each name part would be labelled with the charset used.
Pro: Allows users to specify names in the charsets they are most
familiar with.
Con: All resolvers would have to know all charsets. Thus, the number of
charsets would probably have to be limited and never expand. Mapping of
characters between charsets would have to be exact and not change over
time.
3.2 bin-2: Distinguishing binary from current format
Software built for current domain names might give unexpected results
when dealing with non-ASCII characters in domain names. For example, it
was reported on the mailing list that some software crashes when a
non-ASCII domain name is returned for in-addr.arpa requests. Thus, there
may be a need for IDN to prevent software that is not binary-aware from
receiving domain names with binary parts. This would only apply to an
IDN that used arch-2, not arch-1.
3.2.1 bin-2.1: Don't mark binary
[KWAN] does not specify any way of changing requests to prevent binary
name parts from being transmitted.
Pro: No changes to current DNS requests and responses.
Con: Likely to cause disruption in software that is not binary-aware.
Likely to cause systems to misread names and possibly (and incorrectly)
convert them to ASCII names by stripping off the high bit in octets;
this in turn would lead to security problems due to mistaken identities.
Returning binary host names to DNS queries is known to break some
current software.
3.2.2 bin-2.2: Mark binary with IN bit
[UDNS] describes using a bit from the header of DNS queries to mark the
query as possibly containing a binary name part and indicating that the
response to the query can contain binary name parts.
Pro: This bit is currently unused and must be set to zero, so current
software won't use it accidentally. No changes to any other part of the
query or RRs.
Con: It's the last unused bit in the header and DNS folks have indicated
that they are very hesitant to give it up.
3.2.3 bin-2.3: Mark binary with new QTYPEs
[UDNS] using new QTYPEs to mark the query as possibly containing a
binary name part and indicating that the response to the query can
contain binary name parts. QTYPEs are two octets long, and no QTYPEs to
date use more than the lower eight bits, so one of the bits from the
upper octet could be used to indicate binary names.
Pro: These bits are currently unused and must be set to zero, so current
software won't use them accidentally. No changes to any other part of
the query or RRs. Uses a bit that isn't as prized as the IN bit.
Con: Software must pay more attention to the QTYPEs than it might have
previously.
3.2.4 bin-2.4: Mark binary with EDNS
[IDNE] uses EDNS [RFC2671] to mark the query and response as containing
a binary name part.
Pro: There is little use of EDNS at this point, so it is very unlikely
to have bad interactions with old software. EDNS allows longer name
parts, and allows additional information (such as IDN version number)
in each name part.
Con: There is little use of EDNS and this might make implementation
harder.
4. Names in ASCII-compatible encoding (ACE)
Both arch-2 and arch-3 include domain name parts that are represented on
the wire in an ASCII-compatible encoding (ACE). This section describes
some of the features of such names.
4.1 ace-1: Format
A variety of proposals for the format of ACE have been proposed. Each
proposal has different features, such as how many characters can be
encoded within the 63 octet limit for each name part. The length
descriptions in this section assume that there is no distinguishing of
ACE from current names; this is not a likely outcome of the WG work.
The descriptions of lengths is based on script block names from
[BLOCK-NAMES].
4.1.1 ace-1.1: UTF-5
[SENG] Describes UTF-5, which is a fairly direct encoding of ISO 10646
characters using a system similar to UTF-8. Characters from Basic Latin
and Latin-1 Supplement take 2 octets; Latin Extended-A through Tibetan
take 3 octets; Myanmar through the end of BMP take 4 octets; non-BMP
characters take 5 octets. This means that names using all characters
in the Myanmar through the end of BMP are limited to 15 characters.
Pro: Extremely simple.
Con: Poor compression, particularly for Asian scripts.
4.1.2 ace-1.2: RACE
[RACE] describes RACE, which is a two-step algorithm that first
compresses the name part, then converts the compressed string into and
ACE. Name parts in all scripts other than Han, Yi, Hangul syllables,
Ethiopic, and non-BMP take up ceil(1.6*(n+1)) octets; name parts in
those scripts and any name that mixes characters from different rows in
ISO 10646 take up ceil(3.2*(n+1)) octets. This means that names using
Han, Yi, Hangul syllables, or Ethiopic, are limited to 18 characters.
(Note: this document used to be called CIDNUC.)
Pro: Best compression for most scripts, and similar compression for the
scripts where it is not the best.
Con: More complicated than UTF-5. Not well optimized for names that have
mixed scripts, such as non-Latin names that use hyphen or ASCII digits.
4.1.3 ace-1.3: Hex of UTF-8
An early draft described "hex of UTF-8", which is a straight-forward
hexadecimal encoding of UTF-8. Characters in Basic Latin (other than
non-US-ASCII and hyphen) take 3 octets; Latin Extended-A through Tibetan
take 5 octets; Myanmar through end of BMP take 7 octets; non-BMP
characters take 9 octets. This means that names using all characters
in the Myanmar through the end of BMP are limited to 9 characters.
Pros: Very simple to describe.
Cons: Very poor compression for all scripts.
4.1.4 ace-1.5: SACE
A message on the mailing list pointed to code for SACE, an ASCII
encoding that purports to compact to about the same size as UTF-8.
Pros: Similar compression to UTF-8.
Cons: No description of how the algorithm works.
4.2 ace-2: Distinguishing ACE from current names
Software that finds ACE name parts in free text probably should
display the name part using the actual characters, not the ACE
equivalent. Thus, software must be able to identify which ASCII name
parts are ACE and which are non-ACE ASCII parts (such as current names).
This would only apply to an IDN proposal that used arch-2, not arch-3.
4.2.1 ace-2.1: Currently legal names
Name parts that are currently legal in RFC 1034 can be tagged to
indicate the part is encoded with ACE.
4.2.1.1 ace-2.1.1: Add hopefully-unique legal tag
[RACE] proposes adding a hopefully-unique legal tag to the beginning
of the name. The proposal would also work with such a tag at the end of
the name part, but it is easier for most people to recognize at the
beginning of name parts.
Pros: Easy for software (and humans) to recognize.
Cons: There is no way to prevent people from beginning non-ACE names
with the tag. Unless the tag is very unlikely to appear in any name in
any human language, non-ACE names that begin with the tag will display
oddly or be rejected by some systems.
4.2.1.2 ace-2.1.2: Add a checksum
Off-list discussion has mentioned the possibility of creating a checksum
mechanism where the checksum would be added to the beginning (or end) of
ACE name parts.
4.2.2 ace-2.2: Currently illegal names
Instead of creating names that are currently legal, another proposal is
to create names that use the current ASCII characters but are illegal.
4.2.2.1 ace-2.2.1: Add trailing hyphen
An earlier draft described using a trailing hyphen as a signifier of an
ACE name.
Pros: It is surmised that most current software does not reject names
that are illegal in this fashion. Thus, there would be little disruption
to current systems. This mechanism takes up fewer characters than any
proposed in ace-2.1.
Cons: Some current software is will probably break with this mechanism.
It goes against some current protocols that match the rules in RFC 1034.
5. Prohibited characters
There was a short but active discussion on the mailing list about which
characters from the ISO 10646 character set should never appear in host
names. To date, there are no Internet Drafts on the subject. This
section summarizes some of the suggestions.
5.1 prohib-1: Identical and near-identical characters
Some characters are visually identical or incredibly similar to other
characters, thus making it impossible to accurately enter host names
that are seen in print.
5.2 prohib-2: Separators
Horizontal and vertical spacing characters would make it unclear where a
host name begins and ends. Also, allowing periods and period-like
characters as characters within a name part would also cause similar
confusion.
5.3 prohib-3: Non-displaying and non-spacing characters
There are many characters that cannot be seen in the ISO 10646 character
set. These include control characters, non-breaking spaces, formatting
characters, and tagging characters. These characters would certainly
cause confusion if allowed in host names.
5.4 prohib-4: Private use characters
Private use characters from ISO 10646 inherently have no specified
visual form (and in fact can be used for non-displaying characters).
Thus, there could be no visual interoperability for characters in the
private use areas.
5.5 prohib-5: Punctuation
Some punctuation characters are disallowed in URLs because they are used
in URL syntax.
5.6 prohib-6: Symbols
Some mailing list discussion stated that characters that do not normally
appear in human or company names should not be allowed in host names.
This includes symbols and non-name punctuation.
6. Canonicalization
The working group has a spirited discussion on the need for
canonicalization. [IDN-REQ] describes many requirements for when and what
type of canonicalization might be performed.
6.1 canon-1: Type of canonicalization
The Unicode Consortium's recommendations and definitions of
canonicalization [UTR-15] describes many forms of canonicalization that
can be performed on character strings. [DUERST] covers much of the same
ground but makes more focused requirements for canonicalization on the
Internet.
6.1.1 canon-1.1: Normalization Form C
[DUERST] recommends Normalization Form C, as described in [UTR-15], for
use on the Internet. This form is a canonical decomposition, followed by
canonical composition.
6.1.2 canon-1.2: Normalization Form KC
Discussion on the mailing list recommended Normalization Form KC. This
form is a compatibility decomposition, followed by canonical
composition. Compatibility decomposition makes characters that have
compatibility equivalence the same after decomposing.
6.2 canon-2: Other canonicalization
Host names may have special canonicalization needs that can be added to
those given in canon-1.
6.2.1 canon-2.1: Case folding in ASCII
RFC 1034 specifies that there is no difference between host names that
have the same letters but the letters have different case. Thus, the
name part "example" is considered the same as "Example" and "EXamPLe".
Neither uppercase nor lowercase is specified as being canonical.
6.2.2 canon-2.2: Case folding in non-ASCII
Discussion on the mailing list has raised the issue of whether or not
non-ASCII Latin characters should have the same case-folding rules as
ASCII. Such rules would match the expectations of native speakers of
some languages, but would go counter to the expectations of native
speakers of other languages.
6.2.3 canon-2.3: Han folding
Discussion on the mailing list has raised the issue of equivalences in
some languages use of Han characters. For example, in Chinese, there are
many traditional characters that have equivalent simplified characters.
Similarly, there are some Han ideographs for which there are multiple
representations in ISO 10646. There are no well-established rules for
such folding, and some of the proposed folding would be locale-specific.
6.3 canon-3: Location of canonicalization
Canonicalization can be performed in any system in the DNS. Because it
is not a trivial operation and can require large tables, the location of
where canonicalization is performed is important.
6.3.1 canon-3.1: Canonicalize only in the application
Early canonicalization is a cleaner architecture design. Spending the
cycles on the end systems puts less burden on resolvers or servers in
the DNS service. When IDN is first adopted, the applications need to be
updated anyway to handle the new format for the names. It is easier for
people to upgrade their applications than their resolvers if they need a
new IDN feature.
6.3.2 canon-3.2: Canonicalize only in the resolver
Updating a single resolver provides new service to large number of
applications and (possibly) users. It is easier to find canonicalization
bugs in resolvers than in applications because the resolver has
predictable programmatic interfaces. IDN will probably be revised often
as new characters are added to ISO 10646, so updating smaller number of
resolvers is better than revising more applications. When an end user
has a problem with resolving an IDN name, it is much easier to test if
the problem is in the resolver than in the user's application.
6.3.3 canon-3.3: Canonicalize in the DNS service
Canonicalization should happen as late as possible so that changes in
the canonicalization algorithm don't orphan all applications and
resolvers. Some canonicalization discards information and so should be
delayed as long as possible. Canonicalization is practically free,
computationally (although it involves some large tables). Because adding
IDN to the DNS will happen over time, canonicalizing at the server will
minimize the number of things that need to be changed, and simplify and
centralize the process of change.
7. Transitions
Early in the working group discussion, there was active debate about how
the transition from the current host name rules to IDN would be handled.
Given requirement [#1-02], this transition is quite important to
deciding which proposals might be feasible.
7.1 trans-1: Always do current plus new architecture
In this proposal, IDN will be used at the same time as the current DNS
forever. That is, IDN will be in addition to the current DNS.
7.2 trans-2: Transition period
In this proposal, IDN will be used at the same time as the current DNS
for a specified period of time, after which only IDN will exist. That
is, IDN will replace the current DNS.
8. Root server considerations
DNS root servers receive all requests for top-level domains that are not
in the local DNS cache. They are critical to the Internet. Care must be
taken to ensure that root servers will not be affected by new mechanisms
introduced.
Any IDN proposal that includes a binary encoding will have an impact on
the root servers. The binary requests will affect the root servers
because the current root server software is designed to handle current
host names. Further, the root zone files which contain ccTLDs and gTLDs
would have to support binary domain names and possibly binary host names
for NS records. Because all the root servers are equivalent, they would
have to be synchronized to support the binary domain names at the same
time.
Proposals that only use ACE and use tagging with currently-legal names
would, by definition, not affect the root servers.
9. Security considerations
All security considerations listed in [IDN-REQ] apply to this document.
Further, all security considerations listed in each of the IDN proposals
must be considered when comparing the proposals.
Some proposals described in this document may create new security
considerations. However, these considerations will have to be addressed
in the eventual protocol document. All the proposals described here are
still incomplete and security considerations may be added to them as
they are revised. All the proposals listed in this document use the ISO
10646 character set, so the proposals inherit any security
characteristics of that character set.
Many protocols and applications rely on domain names to identify the
parties involved in a network transaction. For example, a user who
connects to a web site by entering or selecting a URL expects that their
software will select the web site named in the URL. The uniqueness of
domain names are crucial to ensure identification of Internet entities.
To make round-trip translation between local charsets and ISO 10646, the
ISO 10646 specification has assigned multiple code points to individual
glyphs. Moreover, some glyphs might look similar to some users, but look
clearly different by other users. This means that it would be simple for
an attacker to mimic a domain name by using similar-looking but
different glyphs and guessing that some users will not see the
difference in their user interface.
Some IDN protocols may have denial of service attacks, such as by using
non-identified chars, exception characters, or under-specified behavior
in using some special characters.
10. IANA considerations
This document does not create any new IANA registries. However, it is
possible that a character property registry may need to be set up when
the IDN protocol is created in order to list prohibited characters
(section 5) and canonicalization mappings (section 6).
11. Acknowledgements
James Seng and Marc Blanchet gave many helpful suggestions on the
pre-release versions of this document.
12. References
[BLOCK-NAMES] Unicode Consortium,
<ftp://ftp.unicode.org/Public/UNIDATA/Blocks.txt>.
[DUERST] Character Normalization in IETF Protocols,
draft-duerst-i18n-norm-03
[IDN-REQ] Requirements of Internationalized Domain Names,
draft-ietf-idn-requirements-02
[IDNE] Internationalized domain names using EDNS (IDNE),
draft-ietf-idn-idne-01
[KWAN] Using the UTF-8 Character Set in the Domain Name System,
draft-skwan-utf8-dns-03
[RACE] RACE: Row-based ASCII Compatible Encoding for IDN,
draft-ietf-idn-race-00
[RFC2277] IETF Policy on Character Sets and Languages, RFC 2277
[RFC2279] UTF-8, a transformation format of ISO 10646, RFC 2279
[RFC2671] Extension Mechanisms for DNS (EDNS0), RFC 2671
[SENG] UTF-5, a transformation format of Unicode and ISO 10646,
draft-jseng-utf5-01
[UDNS] Using the Universal Character Set in the Domain Name System
(UDNS), draft-ietf-idn-udns-00
[UTR15] Unicode Normalization Forms, Unicode Technical Report #15
A. Differences Between -00 and -01 Drafts
Throughout: Changed references from [HOFFMAN] to [RACE].
Throughout: Changed references from [OSCARSSON] to [UDNS].
Throughout: Added [IDNE].
Removed section 1.2.
3.2.3: Updated to mention [UDNS].
3.2.4: Updated with [IDNE], changed "EDNS0" to "EDNS", and reworded.
4.1.2: Added Ethiopic to the list of scripts that require two octets per
character.
4.1.3: Removed reference to [OSCARSSON] because that is no longer in the
[UDNS] draft.
4.2.2.1: Removed reference to [OSCARSSON] because that is no longer in
the [UDNS] draft.
6.1.1: Reworded first sentence.
6.3: Added entire section and subsections.
8: Fixed typo in first sentence.
B. Author Contact
Paul Hoffman
IMC & VPNC
127 Segre Place
Santa Cruz, CA 95060
phoffman@imc.org or paul.hoffman@vpnc.org

View File

@ -0,0 +1,19 @@
This Internet-Draft has been deleted. Unrevised documents placed in the
Internet-Drafts directories have a maximum life of six months. After
that time, they are deleted. This Internet-Draft was not published as
an RFC.
Internet-Drafts are not an archival document series, and expired
drafts, such as this one, are not available; please do not ask for
copies... they are not available. The Secretariat does not have
information as to future plans of the authors or working groups WRT the
deleted Internet-Draft.
For more information or a copy of the document, contact the author directly.
Draft Author(s):
P. Hoffman: phoffman@imc.org

View File

@ -1,596 +0,0 @@
Internet Engineering Task Force (IETF) Mark Welter
INTERNET-DRAFT Brian W. Spolarich
draft-ietf-idn-dude-00.txt WALID, Inc.
November 16, 2000 Expires May 16, 2001
DUDE: Differential Unicode Domain Encoding
Status of this memo
This document is an Internet-Draft and is in full conformance with all
provisions of Section 10 of RFC2026.
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.
The distribution of this document is unlimited.
Copyright (c) The Internet Society (2000). All Rights Reserved.
Abstract
This document describes a tranformation method for representing
Unicode character codepoints in host name parts in a fashion that is
completely compatible with the current Domain Name System. It provides
for very efficient representation of typical Unicode sequences as
host name parts, while preserving simplicity. It is proposed as a
potential candidate for an ASCII-Compatible Encoding (ACE) for supporting
the deployment of an internationalized Domain Name System.
Table of Contents
1. Introduction
1.1 Terminology
2. Hostname Part Transformation
2.1 Post-Converted Name Prefix
2.2 Radix Selection
2.3 Hostname Prepartion
2.4 Definitions
2.5 DUDE Encoding
2.5.1 Extended Variable Length Hex Encoding
2.5.2 DUDE Compression Algorithm
2.5.3 Forward Transformation Algorithm
2.6 DUDE Decoding
2.6.1 Extended Variable Length Hex Decoding
2.6.2 DUDE Decompression Algorithm
2.6.3 Reverse Transformation Algorithm
3. Examples
3.1 'www.walid.com' (in Arabic)
4. DUDE Extensions
4.1 Extended DUDE Encoding
4.1.1 Modified Extended Variable Length Hex Encoding
4.1.2 Extended Compression Algorithm
4.1.3 Extended Forward Transformation Algorithm
4.2 Extended DUDE Decoding
4.2.1 Modified Extended Variable Length Hex Decoding
4.2.2 Extended Decompression Algorithm
4.2.3 Extended Reverse Transformation Algorithm
5. Security Considerations
6. References
1. Introduction
DUDE describes an encoding scheme of the ISO/IEC 10646 [ISO10646]
character set (whose character code assignments are synchronized
with Unicode [UNICODE3]), and the procedures for using this scheme
to transform host name parts containing Unicode character sequences
into sequences that are compatible with the current DNS protocol
[STD13]. As such, it satisfies the definition of a 'charset' as
defined in [IDNREQ].
1.1 Terminology
The key words "MUST", "SHALL", "REQUIRED", "SHOULD", "RECOMMENDED", and
"MAY" in this document are to be interpreted as described in RFC 2119
[RFC2119].
Hexadecimal values are shown preceded with an "0x". For example,
"0xa1b5" indicates two octets, 0xa1 followed by 0xb5. Binary values are
shown preceded with an "0b". For example, a nine-bit value might be
shown as "0b101101111".
Examples in this document use the notation from the Unicode Standard
[UNICODE3] as well as the ISO 10646 names. For example, the letter "a"
may be represented as either "U+0061" or "LATIN SMALL LETTER A".
DUDE converts strings with internationalized characters into
strings of US-ASCII that are acceptable as host name parts in current
DNS host naming usage. The former are called "pre-converted" and the
latter are called "post-converted". This specification defines both
a forward and reverse transformation algorithm.
2. Hostname Part Transformation
According to [STD13], hostname parts must start and end with a letter
or digit, and contain only letters, digits, and the hyphen character
("-"). This, of course, excludes most characters used by non-English
speakers, characters, as well as many other characters in the ASCII
character repertoire. Further, domain name parts must be 63 octets or
shorter in length.
2.1 Post-Converted Name Prefix
This document defines the string 'dq--' as a prefix to identify
DUDE-encoded sequences. For the purposes of comparison in the IDN
Working Group activities, the 'dq--' prefix should be used solely to
identify DUDE sequences. However, should this document proceed beyond
draft status the prefix should be changed to whatever prefix, if any,
is the final consensus of the IDN working group.
Note that the prepending of a fixed identifier sequence is only one
mechanism for differentiating ASCII character encoded international
domain names from 'ordinary' domain names. One method, as proposed in
[IDNRACE], is to include a character prefix or suffix that does not
appear in any name in any zone file. A second method is to insert a
domain component which pushes off any international names one or more
levels deeper into the DNS hierarchy. There are trade-offs between
these two methods which are independent of the Unicode to ASCII
transcoding method finally chosen. We do not address the international
vs. 'ordinary' name differention issue in this paper.
2.2 Radix Selection
There are many proposed methods for representing Unicode characters
within the allowed target character set, which can be split into groups
on the basis of the underlying radix. We have chosen a method with
radix 16 because both UTF-16 and ASCII are represented by even multiples
of four bits. This allows a Unicode character to be encoded as a
whole number of ASCII characters, and permits easier manipulation of
the resulting encoded data by humans.
2.3 Hostname Prepartion
The hostname part is assumed to have at least one character disallowed
by [STD13], and that is has been processed for logically equivalent
character mapping, filtering of disallowed characters (if any), and
compatibility composition/decomposition before presentation to the DUDE
conversion algorithm.
While it is possible to invent a transcoding mechanism that relies
on certain Unicode characters being deemed illegal within domain names
and hence available to the transcoding mechanism for improving encoding
efficiency, we feel that such a proposal would complicate matters
excessively. We also believe that Unicode name preprocessing for
both name resolution and name registration should be considered as
separate, independent issues, which we will address in a separate
document.
2.4 Definitions
For clarity:
'integer' is an unsigned binary quantity;
'byte' is an 8-bit integer quantity;
'nibble' is a 4-bit integer quantity.
2.5 DUDE Encoding
The idea behind this scheme is to provide compression by encoding the
contiguous least significant nibbles of a character that differ from the
preceding character. Using a variant of the variable length hex encoding
desribed in [IDNDUERST] and elsewhere, by encoding leading zero nibbles
this technique allows recovery of the differential length. The encoding
is, with some practice, easy to perform manually.
There are two extensions to this basic idea: one enables encoding the
preferred case for each charcter (for reverse DNS resolution) and
another improves the worse case behaviour related to surrogates. The
basic algorithms will be formally described first and then the extended
algorithms will be described.
2.5.1 Extended Variable Length Hex Encoding
The variable length hex encoding algorithm was introduced by Duerst in
[IDNDUERST]. It encodes an integer value in a slight modification of
traditional hexadecimal notation, the difference being that the most
significant digit is represented with an alternate set of "digits"
- -- 'g through 'v' are used to represent 0 through 15. The result is a
variable length encoding which can efficiently represent integers of
arbitrary length.
This specification extends the variable length hex encoding algorithm
to support the compression scheme defined below by potentially not
supressing leading zero nibbles.
The extended variable length nibble encoding of an integer, C,
to length N, is defined as follows:
1. Start with I, the Nth least significant nibble from the least
significant nibble of C;
2. Emit the Ith character of the sequence [ghijklmnopqrstuv];
3. Continue from the most to least significant, encoding each
remaining nibble J by emitting the Jth character of the
sequence [0123456789abcdef].
2.5.2 DUDE Compression Algorithm
1. Let PREV = 0;
2. If there are no more characters in the input, terminate successfully;
4. Let C be the next character in the input;
5. If C != '-' , then go to step 5;
6. Consume the input character, emit '-', and go to step 2;
7. Let D be the result of PREV exclusive ORed with C;
8. Find the least positive value N such that
D bitwise ANDed with M is zero
where M = the bitwise complement of (16**N) - 1;
9. Let V be C ANDed with the bitwise complement of M;
10. Variable length hex encode V to length N and emit the result;
11. Let PREV = C and go to step 2.
2.5.3 Forward Transformation Algorithm
The DUDE transformation algorithm accepts a string in UTF-16
[ISO10646] format as input. The encoding algorithm is as follows:
1. Break the hostname string into dot-separated hostname parts.
For each hostname part which contains one or more characters
disallowed by [STD13], perform steps 2 and 3 below;
2. Compress the hostname part using the method described in section
2.5.2 above, and encode using the encoding described in section
2.5.1;
3. Prepend the post-converted name prefix 'dq--' (see section 2.1
above) to the resulting string.
2.6 DUDE Decoding
2.6.1 Extended Variable Length Hex Decoding
Decoding extended variable length hex encoded strings is identical
to the standard variable length hex encoding, and is defined as
follows:
1. Let CL be the lower case of the first input character,
If CL is not in set [ghijklmnopqrstuv],
return error,
else
consume the input character;
2. Let R = CL - 'g',
Let N = 1;
3. If no more input characters exist, go to step 9.
4. Let CL be the lower case of the next input character;
5. If CL is not in the set [0123456789abcdef], go to Step 9;
6. Consume the next input character,
Let N = N + 1;
Let R = R * 16;
7. If N is in set [0123456789],
then let R = R + (N - '0')
else let R = R + (N - 'a') + 10;
8. Go to step 3;
9. Let MASK be the bitwise complement of (16**N) - 1;
10. Return decoded result R as well as MASK.
2.6.2 DUDE Decompression Algorithm
1. Let PREV = 0;
2. If there are no more input characters then terminate successfully;
3. Let C be the next input character;
4. If C == '-', append '-' to the result string, consume the character,
and go to step 2,
5. Let VPART, MASK be the next variable length hex decoded
value and mask;
6. If VPART > 0xFFFF then return error status,
7. Let CU = ( PREV bitwise-AND MASK) + VPART,
Let PREV = CU;
8. Append the UTF-16 character CU to the result string;
9. Go to step 2.
2.6.3 Reverse Transformation Algorithm
1. Break the string into dot-separated components and apply Steps
2 through 4 to each component;
2. Remove the post converted name prefix 'dq--' (see Section 2.1);
3. Decompress the component using the decompression algorithm
described above;
4. Concatenate the decoded segments with dot separators and return.
3. Examples
The examples below illustrate the encoding algorithm and provide
comparisons to alternate encoding schemes. UTF-5 sequences are
prefixed with '----', as no ACE prefix was defined for that encoding.
3.1 'www.walid.com' (in Arabic):
UTF-16: U+0645 U+0648 U+0642 U+0639 . U+0648 U+0644 U+064A U+062F .
U+0634 U+0631 U+0643 U+0629
DUDE: dq--m45oij9.dq--m48kqif.dq--m34hk3i9
UTF-6: wq--ymk5k8k2j9.wq--ymk8k4kaif.wq--ymj4j1k3i9
UTF-5: ----m45m48m42m39.----m48m44m4am2f.----m34m31m43m29
RACE: bq--azcuqqrz.bq--azeeisrp.bq--ay2dcqzj
LACE: bq--aqdekscche.bq--aqdeqrckf5.bq--aqddimkdfe
(more examples to come)
4. DUDE Extensions
The first extension to the DUDE concept recognizes that the first
character emitted by the variable length hex encoding algorithm is
always alphabetic. We encode the case (if any) of the original Unicode
character in the case of the initial "hex" character. Because the DNS
performs case-insensitive comparisons, mixed case international domain
names behave in exactly the same way as traditional domain names.
In particular, this enables reverse lookups to return names in the
preferred case.
The second extension regards the treatment of Unicode surrogate
characters. If surrogates are not expanded, two 16-bit surrogates are
needed to represent a single codepoint in the range of 0x10000
through 0x10FFFF. This cuts the worse case limits in half for most
proposals. We will assume that our input and output Unicode are in
UTF-32 format -- that is, any surrogates are expanded to their UCS-4
equivalents. If the input codes all fall under 0x10000, then the
extended method will emit the same length string as the basic method.
One final modification takes note of the fact that the only only
codepoints forcing the use of six hex digits is for those with a "10"
as the fifth and sixth digits. We will encode the fifth digit using
a seventeenth digit as a special case to avoid this extra expansion.
4.1 Extended DUDE Encoding
4.1.1 Modified Extended Variable Length Hex Encoding
The modified extended variable length hex encoding of an integer C to
length N with case U is performed as follows:
1. If C > 0x10FFFF return error status;
2. If N < 6 go to step 5; (this is true for characters from
the first 16 Planes)
3. If U is 'Uppercase' then emit 'W'
else emit 'w'; (special case for the 17th Plane)
4. go to step 7;
5. Let I be the Nth nibble from the right of C;
6. If U is 'Uppercase'
then emit the Ith character of sequence [GHIJKLMNOPQRSTUV],
else emit the Ith character of sequence [ghijklmnopqrstuv];
7. Let N = N - 1;
8. Continue from N to 1, encoding each remaining nibble, J, by
emitting the Jth character of sequence [0123456789abcdef].
4.1.2 Extended Compression Algorithm
1. Let PREV = 0;
2. If there are no more characters in the input, terminate successfully;
4. Let U be the case of the next character in the input;
Let C be the lowercase value of the next input character;
5. If C != '-' , then go to step 7;
6. Consume the input character, emit '-', and go to step 2;
7. Let D be the result of PREV exclusive ORed with C;
8. Find the least positive value N such that
D bitwise ANDed with M is zero
where M = the bitwise complement of (16**N) - 1;
9. Let V = C ANDed with the bitwise complement of M;
10. Emit the modified variable length hex encoding of V to length
N with case U;
11. Let PREV = C and go to step 2.
4.1.3 Extended Forward Transformation Algorithm
The overall extended encoding algorithm is as follows:
1. Break the hostname string into dot-separated hostname parts.
For each hostname part, perform steps 2 and 3 below;
2. Compress the component using the method described in section
4.1.2 above, and encode using the encoding described in section
4.1.1;
3. Prepend the post-converted name prefix 'dq--' (see section 2.1
above) to the resulting string.
4.2 Extended DUDE Decoding
4.2.1 Modified Extended Variable Length Hex Decoding
1. Let U be the case of the next input character,
Let C0 be the lower case of the next input character;
2. If C0 is not in set [ghijklmnopqrstuw] then return error status,
else, consume the input character;
3. Let R = C0 - 'g'
Let N = 1;
4. If no more input characters exist then go to step 8;
5. Let CL be the lower case of the next input character,
If CL is not in set [0123456789abcdef] then go to step 8;
6. Consume the next input character,
Let N = N + 1,
Let R = R * 16,
If CL is in set [0-9]
then let R = R + (CL - '0')
else let R = R + (CL - 'a') + 10;
7. Go to step 4;
8. If R < 0x100000 then go to step 10;
9. Let N = N + 1,
If (N > 6) or (C0 != 'w')
then return error status;
10. Let MASK be the bitwise complement of (16**N) - 1. Return
result R, MASK, and U.
4.2.2 Extended Decompression Algorithm
1. Let PREV = 0;
2. If there are no more input characters then terminate successfully;
3. Let C be the next input character;
4. If C == '-', append '-' to the result
string, consume the character, and go to step 2;
5. Let VPART, MASK, and U be the result of the modified extended
variable length decoded value;
6. Let CU = (PREV 'bitwise AND' MASK) + VPART,
Let PREV = CU;
7. If U == 'Uppercase' then let CU = the corresponding upper case value
of CU;
8. Append CU to the result string and go to step 2.
4.2.3 Extended Reverse Transformation Algorithm
1. Break the string into dot-separated components and apply Steps
2 through 4 to each component;
2. Remove the post converted name prefix 'dq--' (see Section 2.1);
3. Decompress the component using the extended decompression
algorithm described in section 4.2.2 above;
4. Concatenate the decoded segments with dot separators and return.
Note that DUDE decoding will return error for input strings which do
not comply with RFC1035.
5. Security Considerations
Much of the security of the Internet relies on the DNS and any
change to the characteristics of the DNS may change the security of
much of the Internet. Therefore DUDE makes no changes to the DNS itself.
DUDE is designed so that distinct Unicode sequences map to distinct
domain name sequences (modulo the Unicode and DNS equivalence rules).
Therefore use of DUDE with DNS will not negatively affect security.
6. References
[IDNCOMP] Paul Hoffman, "Comparison of Internationalized Domain Name
Proposals", draft-ietf-idn-compare;
[IDNRACE] Paul Hoffman, "RACE: Row-Based ASCII Compatible Encoding for
IDN", draft-ietf-idn-race;
[IDNREQ] James Seng, "Requirements of Internationalized Domain Names",
draft-ietf-idn-requirement;
[IDNNAMEPREP] Paul Hoffman and Marc Blanchet, "Preparation of
Internationalized Host Names", draft-ietf-idn-nameprep;
[IDNDUERST] M. Duerst, "Internationalization of Domain Names",
draft-duerst-dns-i18n;
[ISO10646] ISO/IEC 10646-1:1993. International Standard -- Information
technology -- Universal Multiple-Octet Coded Character Set (UCS) --
Part 1: Architecture and Basic Multilingual Plane. Five amendments and
a technical corrigendum have been published up to now. UTF-16 is
described in Annex Q, published as Amendment 1. 17 other amendments are
currently at various stages of standardization;
[RFC2119] Scott Bradner, "Key words for use in RFCs to Indicate
Requirement Levels", March 1997, RFC 2119;
[STD13] Paul Mockapetris, "Domain names - implementation and
specification", November 1987, STD 13 (RFC 1035);
[UNICODE3] The Unicode Consortium, "The Unicode Standard -- Version
3.0", ISBN 0-201-61633-5. Described at
<http://www.unicode.org/unicode/standard/versions/Unicode3.0.html>.
A. Acknowledgements
The structure (and some of the structural text) of this document is
intentionally borrowed from the LACE IDN draft (draft-ietf-idn-lace-00)
by Mark Davis and Paul Hoffman.
B. IANA Considerations
There are no IANA considerations in this document.
C. Author Contact Information
Mark Welter
Brian W. Spolarich
WALID, Inc.
State Technology Park
2245 S. State St.
Ann Arbor, MI 48104
+1-734-822-2020
mwelter@walid.com
briansp@walid.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.1 (GNU/Linux)
Comment: For info see http://www.gnupg.org
iD8DBQE6FZ/D/DkPcNgtD/0RAoswAKCUGBTSFJv96+Z+YnA8m47qrnheAgCeLQ6C
1+knyHluauC+66esCtPVoKU=
=hbT+
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,898 @@
Internet Engineering Task Force (IETF) Mark Welter
INTERNET-DRAFT Brian W. Spolarich
draft-ietf-idn-dude-01.txt WALID, Inc.
March 02, 2001 Expires September 02, 2001
DUDE: Differential Unicode Domain Encoding
Status of this memo
This document is an Internet-Draft and is in full conformance with all
provisions of Section 10 of RFC2026.
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.
The distribution of this document is unlimited.
Copyright (c) The Internet Society (2000). All Rights Reserved.
Abstract
This document describes a tranformation method for representing
Unicode character codepoints in host name parts in a fashion that is
completely compatible with the current Domain Name System. It provides
for very efficient representation of typical Unicode sequences as
host name parts, while preserving simplicity. It is proposed as a
potential candidate for an ASCII-Compatible Encoding (ACE) for supporting
the deployment of an internationalized Domain Name System.
Table of Contents
1. Introduction
1.1 Terminology
2. Hostname Part Transformation
2.1 Post-Converted Name Prefix
2.2 Radix Selection
2.3 Hostname Prepartion
2.4 Definitions
2.5 DUDE Encoding
2.5.1 Extended Variable Length Hex Encoding
2.5.2 DUDE Compression Algorithm
2.5.3 Forward Transformation Algorithm
2.6 DUDE Decoding
2.6.1 Extended Variable Length Hex Decoding
2.6.2 DUDE Decompression Algorithm
2.6.3 Reverse Transformation Algorithm
3. Examples
4. Optional Case Preservation
5. Security Considerations
6. References
1. Introduction
DUDE describes an encoding scheme of the ISO/IEC 10646 [ISO10646]
character set (whose character code assignments are synchronized
with Unicode [UNICODE3]), and the procedures for using this scheme
to transform host name parts containing Unicode character sequences
into sequences that are compatible with the current DNS protocol
[STD13]. As such, it satisfies the definition of a 'charset' as
defined in [IDNREQ].
1.1 Terminology
The key words "MUST", "SHALL", "REQUIRED", "SHOULD", "RECOMMENDED", and
"MAY" in this document are to be interpreted as described in RFC 2119
[RFC2119].
Hexadecimal values are shown preceded with an "0x". For example,
"0xa1b5" indicates two octets, 0xa1 followed by 0xb5. Binary values are
shown preceded with an "0b". For example, a nine-bit value might be
shown as "0b101101111".
Examples in this document use the notation from the Unicode Standard
[UNICODE3] as well as the ISO 10646 names. For example, the letter "a"
may be represented as either "U+0061" or "LATIN SMALL LETTER A".
DUDE converts strings with internationalized characters into
strings of US-ASCII that are acceptable as host name parts in current
DNS host naming usage. The former are called "pre-converted" and the
latter are called "post-converted". This specification defines both
a forward and reverse transformation algorithm.
2. Hostname Part Transformation
According to [STD13], hostname parts must start and end with a letter
or digit, and contain only letters, digits, and the hyphen character
("-"). This, of course, excludes most characters used by non-English
speakers, characters, as well as many other characters in the ASCII
character repertoire. Further, domain name parts must be 63 octets or
shorter in length.
2.1 Post-Converted Name Prefix
This document defines the string 'dq--' as a prefix to identify
DUDE-encoded sequences. For the purposes of comparison in the IDN
Working Group activities, the 'dq--' prefix should be used solely to
identify DUDE sequences. However, should this document proceed beyond
draft status the prefix should be changed to whatever prefix, if any,
is the final consensus of the IDN working group.
Note that the prepending of a fixed identifier sequence is only one
mechanism for differentiating ASCII character encoded international
domain names from 'ordinary' domain names. One method, as proposed in
[IDNRACE], is to include a character prefix or suffix that does not
appear in any name in any zone file. A second method is to insert a
domain component which pushes off any international names one or more
levels deeper into the DNS hierarchy. There are trade-offs between
these two methods which are independent of the Unicode to ASCII
transcoding method finally chosen. We do not address the international
vs. 'ordinary' name differention issue in this paper.
2.2 Radix Selection
There are many proposed methods for representing Unicode characters
within the allowed target character set, which can be split into groups
on the basis of the underlying radix. We have chosen a method with
radix 16 because both UTF-32 and ASCII are represented by even multiples
of four bits. This allows a Unicode character to be encoded as a
whole number of ASCII characters, and permits easier manipulation of
the resulting encoded data by humans.
2.3 Hostname Preparation
The hostname part is assumed to have at least one character disallowed
by [STD13], and that is has been processed for logically equivalent
character mapping, filtering of disallowed characters (if any), and
compatibility composition/decomposition before presentation to the DUDE
conversion algorithm.
While it is possible to invent a transcoding mechanism that relies
on certain Unicode characters being deemed illegal within domain names
and hence available to the transcoding mechanism for improving encoding
efficiency, we feel that such a proposal would complicate matters
excessively.
2.4 Definitions
For clarity:
'integer' is an unsigned binary quantity;
'byte' is an 8-bit integer quantity;
'nibble' is a 4-bit integer quantity.
2.5 DUDE Encoding
The idea behind this scheme is to provide compression by encoding the
contiguous least significant nibbles of a character that differ from the
preceding character. Using a variant of the variable length hex encoding
desribed in [IDNDUERST] and elsewhere, by encoding leading zero nibbles
this technique allows recovery of the differential length. The encoding
is, with some practice, easy to perform manually.
2.5.1 Extended Variable Length Hex Encoding
The variable length hex encoding algorithm was introduced by Duerst in
[IDNDUERST]. It encodes an integer value in a slight modification of
traditional hexadecimal notation, the difference being that the most
significant digit is represented with an alternate set of "digits"
- -- 'g through 'v' are used to represent 0 through 15. The result is a
variable length encoding which can efficiently represent integers of
arbitrary length.
This specification extends the variable length hex encoding algorithm
to support the compression scheme defined below by potentially not
supressing leading zero nibbles.
The extended variable length nibble encoding of an integer, C,
to length N, is defined as follows:
1. Start with I, the Nth least significant nibble from the least
significant nibble of C;
2. Emit the Ith character of the sequence [ghijklmnopqrstuv];
3. Continue from the most to least significant, encoding each
remaining nibble J by emitting the Jth character of the
sequence [0123456789abcdef].
2.5.2 DUDE Compression Algorithm
1. Let PREV = 0;
2. If there are no more characters in the input, terminate successfully;
4. Let C be the next character in the input;
5. If C != '-' , then go to step 7;
6. Consume the input character, emit '-', and go to step 2;
7. Let D be the result of PREV exclusive ORed with C;
8. Find the least positive value N such that
D bitwise ANDed with M is zero
where M = the bitwise complement of (16**N) - 1;
9. Let V be C ANDed with the bitwise complement of M;
10. Variable length hex encode V to length N and emit the result;
11. Let PREV = C and go to step 2.
2.5.3 Forward Transformation Algorithm
The DUDE transformation algorithm accepts a string in UTF-32
[UNICODE3] format as input. It is assumed that prior nameprep
processing has disallowed the private use code points in
0X100000 throuh 0X10FFFF, so that we are left with the task of
encoding 20 bit integers. The encoding algorithm is as follows:
1. Break the hostname string into dot-separated hostname parts.
For each hostname part which contains one or more characters
disallowed by [STD13], perform steps 2 and 3 below;
2. Compress the hostname part using the method described in section
2.5.2 above, and encode using the encoding described in section
2.5.1;
3. Prepend the post-converted name prefix 'dq--' (see section 2.1
above) to the resulting string.
2.6 DUDE Decoding
2.6.1 Extended Variable Length Hex Decoding
Decoding extended variable length hex encoded strings is identical
to the standard variable length hex encoding, and is defined as
follows:
1. Let CL be the lower case of the first input character,
If CL is not in set [ghijklmnopqrstuv],
return error,
else
consume the input character;
2. Let R = CL - 'g',
Let N = 1;
3. If no more input characters exist, go to step 9.
4. Let CL be the lower case of the next input character;
5. If CL is not in the set [0123456789abcdef], go to Step 9;
6. Consume the next input character,
Let N = N + 1;
Let R = R * 16;
7. If N is in set [0123456789],
then let R = R + (N - '0')
else let R = R + (N - 'a') + 10;
8. Go to step 3;
9. Let MASK be the bitwise complement of (16**N) - 1;
10. Return decoded result R as well as MASK.
2.6.2 DUDE Decompression Algorithm
1. Let PREV = 0;
2. If there are no more input characters then terminate successfully;
3. Let C be the next input character;
4. If C == '-', append '-' to the result string, consume the character,
and go to step 2,
5. Let VPART, MASK be the next extended variable length hex decoded
value and mask;
6. If VPART > 0xFFFFF then return error status,
7. Let CU = ( PREV bitwise-AND MASK) + VPART,
Let PREV = CU;
8. Append the UTF-32 character CU to the result string;
9. Go to step 2.
2.6.3 Reverse Transformation Algorithm
1. Break the string into dot-separated components and apply Steps
2 through 4 to each component;
2. Remove the post converted name prefix 'dq--' (see Section 2.1);
3. Decompress the component using the decompression algorithm
described above (which in turn invokes the decoding algorithm
also described above);
4. Concatenate the decoded segments with dot separators and return.
3. Examples
The examples below illustrate the encoding algorithm. Allowed RFC1035
characters, including period [U+002E] and dash [U+002D] are shown as
literals in the UTF-16 version of the example. DUDE is compared to
LACE as proposed in [IDNLACE]. A comprehensive comparison of ACE
proposals is outside of the scope of this document. However we believe
that DUDE shows a good balance between efficiency (resulting in shorter
ACE sequences for typical names) and complexity.
3.1 'www.walid.com' [Arabic]:
UTF-16: U+0645 U+0648 U+0642 U+0639 . U+0648 U+0644 U+064A U+062F .
U+0634 U+0631 U+0643 U+0629
DUDE: dq--m45oij9.dq--m48kqif.dq--m34hk3i9
LACE: bq--aqdekscche.bq--aqdeqrckf5.bq--aqddimkdfe
3.2 'Abugazalah-Intellectual-Property.com' [Arabic]:
UTF-16: U+0623 U+0628 U+0648 U+063A U+0632 U+0627 U+0644 U+0629 -
U+0644 U+0644 U+0645 U+0644 U+0643 U+064A U+0629 - U+0627
U+0644 U+0641 U+0643 U+0631 U+064A U+0629 . U+0634 U+0631
U+0643 U+0629
DUDE: dq--m23ok8jaii7k4i9-m44klkjqi9-m27k4hjj1kai9.dq--m34hk3i9
LACE: bq--badcgkcihizcorbjaeac2bygircekrcdjiuqcabna4dcorcbimyuuki.
bq--aqddimkdfe
3.3 'King-Hussain.person.jr' [Arabic]
UTF-16: U+0627 U+0644 U+0645 U+0644 U+0643 - U+062D U+0633 U+064A
U+0646 . U+0634 U+062E U+0635 . U+0627 U+0644 U+0623 U+0631
U+062F U+0646
DUDE: dq--m27k4lkj-m2dj3kam.dq--m34iej5.dq--m27k4i3j1ifk6
LACE: bq--audcorcfirbqcabnaudegljtjjda.bq--amddilrv.
bq--aydcorbdgexum
3.4 'Jordanian-Dental-Center.com.jr' [Arabic]
UTF-16: U+0645 U+0631 U+0643 U+0632 - U+0627 U+0644 U+0623 U+0631 U+062F
U+0646 - U+0644 U+0644 U+0623 U+0633 U+0646 U+0627 U+0646 .
U+0634 U+0631 U+0643 U+0629 . U+0627 U+0644 U+0623 U+0631 U+062F
U+0646
DUDE: dq--m45j1k3j2-m27k4i3j1ifk6-m44ki3j3k6i7k6.dq--m34hk3i9.
dq--m27k4i3j1ifk6
LACE: bq--aqdekmkdgiaqaligaytuiizrf5dacabna4deirbdgndcorq.
bq--aqddimkdfe.bq--aydcorbdgexum
3.5 'Mahindra.com' [Hindi]:
UTF-16: U+092E U+0939 U+093F U+0928 U+094D U+0926 U+094D U+0930
U+093E . U+0935 U+094D U+092F U+093E U+092A U+093E U+0930
DUDE: dq--p2ej9vi8kdi6kdj0u.dq--p35kdifjeiajeg
LACE: bq--bees4oj7fbgsmtjqhy.bq--a4etktjphyvd4ma
3.6 'Webdunia.com' [Hindi]:
UTF-16: U+0935 U+0947 U+092C U+0926 U+0941 U+0928 U+093F U+092F
U+093E . U+0935 U+094D U+092F U+093E U+092A U+093E U+0930
DUDE: dq--p35k7icmk1i8jfifje.dq--p35kdifjeiajeg
LACE: bq--beetkrzmezasqpzphy.bq--a4etktjphyvd4ma
3.7 'Chinese Finance.com' [Traditional Chinese]
UTF-16: U+4E2D U+83EF U+8CA1 U+7D93 . c o m
DUDE: dq--ke2do3efsa1nd93.com
LACE: bq--75hc3a7prsqx3ey.com
3.8 'Chinese Readers.net' [Chinese]
UTF-16: U+842C U+7DAD U+8B80 U+8005 . U+7DB2 U+7D61
DUDE: dq--o42cndadob80g05.dq--ndb2m1
LACE: bq--76ccy7nnroaiabi.bq--aj63eyi
3.9 'Russian-Standard.com.ru' [Russian]
UTF-16: U+0440 U+0443 U+0441 U+0441 U+043A U+0438 U+0439 -
U+0441 U+0442 U+0430 U+043D U+0434 U+0430 U+0440 U+0442 .
U+043A U+043E U+043C . U+0440 U+0444
DUDE: dq--k40jhhjaop-k3ausk1ij0tkgk0i.dq--k3aus.dq--k40k
LACE: bq--a4ceaq2bie5dqoibaawqqbcbiiyd2nbqibba.bq--amcdupr4.
bq--aiceara
3.10 'Vladimir-Putin.person.ru' [Russian]
UTF-16: U+0432 U+043B U+0430 U+0434 U+0438 U+043C U+0438 U+0440 -
U+043F U+0443 U+0442 U+0438 U+043D . U+043B U+0438 U+0447
U+043D U+043E U+0441 U+0442 U+044C . U+0440 U+0444 U+0020
DUDE: dq--k32rgkosok0-k3fk3ij8t.dq--k3bok7jduk1is.dq--k40k
LACE: bq--bacdeozqgq4dyocaaeac2bieh5bueob5.
bq--bacdwochhu7ecqsm.bq--aiceara
4. Optional Case Preservation
An extension to the DUDE concept recognizes that the first
character emitted by the variable length hex encoding algorithm is
always alphabetic. We encode the case (if any) of the original Unicode
character in the case of the initial "hex" character. Because the DNS
performs case-insensitive comparisons, mixed case international domain
names behave in exactly the same way as traditional domain names.
In particular, this enables reverse lookups to return names in the
preferred case.
In contrast to other proposals as of this writing, such a case preserving
version of DUDE will interoperate with the non case preserving version.
Despite the foregoing, we feel that the additional complexity of tracking
character case through the nameprep processing is not warranted by the
marginal utility of the result.
5. Security Considerations
Much of the security of the Internet relies on the DNS and any
change to the characteristics of the DNS may change the security of
much of the Internet. Therefore DUDE makes no changes to the DNS itself.
DUDE is designed so that distinct Unicode sequences map to distinct
domain name sequences (modulo the Unicode and DNS equivalence rules).
Therefore use of DUDE with DNS will not negatively affect security below
the application level.
If an application has security reliance on the Unicode string S, produced
by an inverse ACE transformation of a name T, the application must verify
that the nameprepped and ACE encoded result of S is DNS-equivalent to T.
6. Change History
The statement that we intended to submit a Nameprep draft was removed in
light of the changes made between the frist and second nameprep drafts.
The details of DUDE extensions for case preservation etc. have been
removed. Basic DUDE was changed to operate over the relevant 20 bit
UTF32 code points.
Examples have been extended.
ACE security issues were clarified.
7. References
[IDNCOMP] Paul Hoffman, "Comparison of Internationalized Domain Name
Proposals", draft-ietf-idn-compare;
[IDNrACE] Paul Hoffman, "RACE: Row-Based ASCII Compatible Encoding for
IDN", draft-ietf-idn-race;
[IDNLACE] Mark Davis, "LACE: Length-Based ASCII Compatible Encoding for
IDN", draft-ietf-idn-lace;
[IDNREQ] James Seng, "Requirements of Internationalized Domain Names",
draft-ietf-idn-requirement;
[IDNNAMEPREP] Paul Hoffman and Marc Blanchet, "Preparation of
Internationalized Host Names", draft-ietf-idn-nameprep;
[IDNDUERST] M. Duerst, "Internationalization of Domain Names",
draft-duerst-dns-i18n;
[ISO10646] ISO/IEC 10646-1:1993. International Standard -- Information
technology -- Universal Multiple-Octet Coded Character Set (UCS) --
Part 1: Architecture and Basic Multilingual Plane. Five amendments and
a technical corrigendum have been published up to now. UTF-16 is
described in Annex Q, published as Amendment 1. 17 other amendments are
currently at various stages of standardization;
[RFC2119] Scott Bradner, "Key words for use in RFCs to Indicate
Requirement Levels", March 1997, RFC 2119;
[STD13] Paul Mockapetris, "Domain names - implementation and
specification", November 1987, STD 13 (RFC 1035);
[UNICODE3] The Unicode Consortium, "The Unicode Standard -- Version
3.0", ISBN 0-201-61633-5. Described at
<http://www.unicode.org/unicode/standard/versions/Unicode3.0.html>.
A. Acknowledgements
The structure (and some of the structural text) of this document is
intentionally borrowed from the LACE IDN draft (draft-ietf-idn-lace-00)
by Mark Davis and Paul Hoffman.
B. IANA Considerations
There are no IANA considerations in this document.
C. Author Contact Information
Mark Welter
Brian W. Spolarich
WALID, Inc.
State Technology Park
2245 S. State St.
Ann Arbor, MI 48104
+1-734-822-2020
mwelter@walid.com
briansp@walid.com
D. DUDE C++ Implementation
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <limits.h>
#define IDN_ERROR INT_MIN
#define DUDETAG "dq--"
typedef unsigned int uchar_t;
bool idn_isRFC1035(const uchar_t * in, int len)
{
const uchar_t * end = in + len;
while (in < end)
{
if ((*in > 127) ||
!strchr("abcdefghijklmnopqrstuvwxyz0123456789-.", tolower(*in)))
return false;
in++;
}
return true;
}
static const char *hexchar = "0123456789abcdef";
static const char *leadchar = "ghijklmnopqrstuv";
/*
dudehex -- convert an integer, v, into n DUDE hex characters.
The result is placed in ostr. The buffer ends at the byte before
eop, and false is returned to indicate insufficient buffer space.
*/
static bool dudehex(char * & ostr, const char * eop,
unsigned int v, int n)
{
if ((ostr + n) >= eop)
return false;
n--; // convert to zero origin
*ostr++ = leadchar[(v >> (n << 2)) & 0x0F];
while (n > 0)
{
n--;
*ostr++ = hexchar[(v >> (n << 2)) & 0x0F];
}
return true;
}
/*
idn_dudeseg converts istr, a utf-32 domain name segment into DUDE.
eip points at the character after the input segment.
ostr points at an output buffer which ends just before eop.
If there is insufficient buffer space, the function return is false.
Invalid surrogate sequences will also cause a return of false.
*/
static bool idn_dudeseg(const uchar_t * istr, const uchar_t * eip,
char * & ostr, char * eop)
{
const uchar_t * ip = istr;
unsigned p = 0;
while (ip < eip)
{
if (*ip == '-')
*ostr++ = *ip;
else // if (validnc(*ip))
{
unsigned int c = *ip;
unsigned d = p ^ c; // d now has the difference (xor)
// between the current and previous char
int n = 1; // Count the number of significant nibbles
while (d >>= 4)
n++;
dudehex(ostr, eop, c, n);
p = c;
}
ip++;
}
*ostr = 0;
return true;
}
/*
idn_UTF32toDUDE converts a UTF-32 domain name into DUDE.
in, a UTF-32 vector of length inlen is the input domain name.
outstr is a char output buffer of length outmax.
On success, the number of output characters is returned.
On failure, a negative number is returned.
It is assumed that the input has been nameprepped.
If this routine is used in a registration context, segment and
overall length restrictions must be checked by the user.
*/
int idn_UTF32toDUDE(const uchar_t * in, int inlen, char *outstr, int outmax)
{
const uchar_t *ip = in;
const uchar_t *eip = in + inlen;
const uchar_t *ep = ip;
char *op = outstr;
char *eop = outstr + outmax - 1;
while (ip < eip)
{
ep = ip;
while ((ep < eip) && (*ep != '.'))
ep++;
const char * tagp = DUDETAG; // prefix the segment
while (*tagp) // with the tag (dq--)
{
if (op >= eop)
{
*outstr = '\0';
return IDN_ERROR;
}
*op++ = *tagp++;
}
if (idn_isRFC1035(ip, ep - ip))
{
if ((ep - ip) >= (eop - op))
{
*outstr = '\0';
return IDN_ERROR;
}
while (ip < ep)
*op++ = *ip++;
}
else
{
if (!idn_dudeseg(ip, ep, op, eop))
{
*outstr = '\0';
return IDN_ERROR;
}
}
if (op >= eop) // check for output buffer overflow
{
*outstr = '\0';
return IDN_ERROR;
}
if (ep < eip)
*op++ = *ep; // copy '.'
ip = ep + 1;
}
*op = '\0';
return (op - outstr) - 1;
}
/*
idn_DUDEsegtoUTF32 converts instr, DUDE encoded domain name segment
into UTF32.
eip points at the character after the input segment.
ostr points at an output buffer which ends just before eop.
If there is insufficient buffer space, the function return is false.
*/
static int idn_DUDEsegtoUTF32(const char * instr, int inlen,
uchar_t * outstr, int maxlen)
{
const char * ip = instr;
const char * eip = instr + inlen;
uchar_t * op = outstr;
uchar_t * eop = op + maxlen - 1;
unsigned prev = 0;
while (ip < eip)
{
if (*ip == '-')
*op++ = '-';
else
{
char c0 = tolower(*ip);
if ((c0 < 'g') || (c0 > 'v'))
return false;
ip++;
unsigned r = c0 - 'g';
int n = 1;
while (ip < eip)
{
char cl = tolower(*ip);
if ((cl >= '0') && (cl <= '9'))
{
r <<= 4;
r += cl - '0';
}
else if ((cl >= 'a') && (cl <= 'f'))
{
r <<= 4;
r += (cl - 'a') + 10;
}
else
break;
ip++;
n++;
}
if (r >= 0x0fffff)
{
return false;
}
unsigned mask = -1 << (n << 2);
unsigned cu = (prev & mask) + r;
prev = cu;
if (op >= eop)
return IDN_ERROR;
*op++ = cu;
}
}
*op = '\0';
return (op - outstr);
}
int idn_DUDEtoUTF32(const char * in, int inlen, uchar_t * outstr, int outmax)
{
const char *ip = in;
const char *eip = in + inlen;
const char *ep = ip;
uchar_t *op = outstr;
uchar_t *eop = outstr + outmax - 1;
while (ip < eip)
{
ep = ip;
while ((ep < eip) && (*ep != L'.'))
ep++;
const char * tip = ip;
const char * tagp = DUDETAG;
while (*tagp && (tip < ep) && (tolower(*tagp) == tolower(*tip)))
{
tip++;
tagp++;
}
if (*tagp)
{ // tag doesn't match, copy segment verbatim
while (ip < ep)
{
if (op >= eop)
return IDN_ERROR;
*op++ = *ip++;
}
}
else
{
ip = tip;
int rv = idn_DUDEsegtoUTF32(ip, ep - ip, op, eop - op);
if (rv < 0)
return IDN_ERROR;
op += rv;
}
*op++ = *ep;
if (!*ep)
break;
ip = ep + 1;
}
if (op >= eop)
return IDN_ERROR;
*op = '\0';
return (op - outstr) - 1;
}
/*
DUDE test driver
*/
void printres(char *title, int rv, char *buff);
void printres(char *title, int rv, uchar_t *buff);
int main(int argc, char *argv[])
{
char inbuff[512];
while (fgets(inbuff, sizeof(inbuff), stdin))
{
char cbuff[128];
uchar_t wbuff[128];
uchar_t iwbuff[128];
uchar_t *wsp = wbuff;
uchar_t wc;
int in;
int nr;
char * inp = inbuff;
wsp = wbuff;
while (sscanf(inp, "%x%n", &in, &nr) > 0)
{
inp += nr;
*wsp++ = in;
}
fprintf(stdout, "\n");
int rv;
rv = idn_UTF32toDUDE(wbuff, wsp - wbuff, cbuff, sizeof(cbuff));
printres("toDUDE", rv, cbuff);
if (rv >= 0)
{
rv = idn_DUDEtoUTF32(cbuff, rv, iwbuff, sizeof(iwbuff));
printres("toUTF32", rv, iwbuff);
}
}
return 0;
}
void printres(char *title, int rv, char *buff)
{
fprintf(stdout, "%s (%d) : ", title, rv);
if (rv >= 0)
{
unsigned char *dp = (unsigned char *) buff;
while (*dp)
{
fprintf(stdout, "%c", *dp++);
}
}
fprintf(stdout, "\n");
}
void printres(char *title, int rv, uchar_t *buff)
{
fprintf(stdout, "%s (%d) : ", title, rv);
if (rv >= 0)
{
uchar_t *dp = buff;
while (*dp)
{
fprintf(stdout, " %05x", *dp++);
}
}
fprintf(stdout, "\n");
}

View File

@ -1,514 +0,0 @@
IETF IDN Working Group Seungik Lee, Hyewon Shin, Dongman Lee
Internet Draft ICU
draft-ietf-idn-icu-00.txt Eunyong Park, Sungil Kim
Expires: 14 January 2001 KKU, Netpia.com
14 July 2000
Architecture of Internationalized Domain Name System
Status of this Memo
This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026.
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.
1. Abstract
For restrict use of Domain Name System (DNS) for domain names with
alphanumeric characters only, there needs a way to find an Internet
host using multi-lingual domain names: Internationalized Domain Name
System (IDNS).
This document describes how multi-lingual domain names are handled in
a new protocol scheme for IDNS servers and resolvers in architectural
view and it updates the [RFC1035] but still preserves the backward
compatibility with the current DNS protocol.
2. Conventions used in this document
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119].
"IDNS" (Internationalized Domain Name System) is used here to
indicate a new system designed for a domain name service, which
supports multi-lingual domain names.
"The current/conventional DNS" or "DNS" (Domain Name System) is used
here to indicate the domain name systems currently in use. It
fulfills the [RFC1034, RFC1035], but implementations and functional
operations may be different from each other.
The "alphanumeric" character data used here is the character set that
is allowed for a domain name in DNS query format, [a-zA-Z0-9-].
3. Introduction
Domain Name System (DNS) has eliminated the difficulty of remembering
the IP addresses. As the Internet becomes spread over all the people,
the likelihood that the people who are not familiar with alphanumeric
characters use the Internet increases. The domain names in
alphanumeric characters are difficult to remember or use for the
people who is not educated English. Therefore, it needs a way to find
an Internet host using multi-lingual domain name: Internationalized
Domain Name System.
3.1 The current issues of IDNS
IDNS maps a name to an IP address as the typical DNS does, but it
allows domain names to contain multi-lingual characters. The multi-
lingual characters need to be encoded/decoded into one standardized
format, and it needs changes in the conventional DNS protocol
described in [RFC1034] and [RFC1035]. But it is required to minimize
the changes in the present DNS protocol so that it guarantees the
backward compatibility.
The IDNS issues have been discussed in IETF IDN Working Group. These
issues are well described in [IDN-REQ]. The main issues are:
- Compatibility and interoperability. The DNS protocol is in use
widely in the Internet. Although a new protocol is introduced for DNS,
the current protocol may be used with no changes. Therefore, a new
design for DNS protocol, IDNS must provide backward compatibility and
interoperability with the current DNS.
- Internationalization. IDNS is on the purpose of using multi-lingual
domain names. The international character data must be represented by
one standardized format in domain names.
- Canonicalization. DNS indexes and matches domain names to look up a
domain name from zone data. In the conventional DNS, canonicalization
is subjected to US-ASCII only. However, every multi-lingual character
data must be canonicalized in its own rules for a DNS standardized
matching policy, e.g. case-insensitive matching rule.
- Operational issues. IDNS uses international character data for
domain names. Normalization and canonicalization of domain names are
needed in addition to the current DNS operations. IDNS also needs an
operation for interoperability with the current DNS. Therefore, it is
needed to specify the operational guidelines for IDNS.
3.2 Overview of the proposed scheme
Our proposed scheme for IDNS is also subjected on the issues
described earlier to fulfill the requirements of IDN [IDN-REQ].
The proposed scheme can be summarized as following:
- The IN bit, which is reserved and currently unused in the DNS
query/response format header, is used to distinguish between the
queries generated by IDNS servers or resolvers and those of non-IDNS
ones [Oscarsson]. This mechanism is also needed to indicate whether
the query is generated by the appropriate IDNS operations for
canonicalization and normalization or not.
- The multi-lingual domain names are encoded into UTF-8 as a wire
format. UTF-8 is recommended as a default character encoding scheme
(CES) in the creation of new protocols which transmit text in
[RFC2130]. This scheme allows the IDNS server to handle the DNS query
from non-IDNS servers or resolvers because the ASCII code has no
changes in UTF-8.
- The UTF-8 domain names must be case-folded before transmission. It
minimizes the overhead on server's operations of matching names in
case-insensitive. It also guarantees that the result of caching
queries can be used without any further normalization and
canonicalization. If IDNS server gets non-IDNS query that is not
case-folded, it case-folds the query before transmitting to another
servers.
4. Design considerations
Our proposed scheme is designed to fulfill the requirements of IETF
IDN WG [IDN-REQ]. All the methods for IDNS schemes must be approved
by the requirements documents. The design described in this document
is based on these requirements.
4.1 Protocol Extensions
To indicate an IDNS query format, we use an unallocated bit in the
current DNS query format header, named 'IN' bit [Oscarsson]. All IDNS
queries are set IN bit to 1. Without this bit set to 1, we cannot
guarantee that the query is in the appropriate format for IDNS.
'IN' bit is to indicate whether the query is from IDNS
resolvers/servers or not. It also reduces overhead on canonicalizing
operation at IDNS server. It will be described further in <4.4.
Canonicalization>.
We devise new operations and new structures of resolvers and name
servers to add the multi-lingual domain name handling features into
the DNS. This causes changes of all DNS servers and resolvers to use
multi-lingual domain names. The new architectures for resolvers and
servers will be described in <5. Architectures>
4.2 Compatibility and interoperability
The 'IN' bit is valid bit location of query for the conventional DNS
protocol to be set to zero [RFC1035]. And operations and structures
of IDNS preserve the conventional rules of DNS to guarantee the
interoperability with the conventional DNS servers or resolvers so
that the changes are optional. These make this scheme for IDNS
compatible with the current protocol.
Although the current DNS protocol uses 7-bit ASCII characters only,
the query format of the current DNS protocol set is 8 bit-clean.
Therefore, we can guarantee the backward compatibility and
interoperability with the current DNS using UTF-8 code because the
ASCII code is preserved with no changes in UTF-8.
Note: There are also in use implementations that are compatible with
the current DNS but extend their operations to use UTF-8 domain names.
The IDNS described here interoperates well with these implementations.
The interoperability with these implementations will be described in
<5.4 Interoperability with the current DNS>.
4.3 Internationalization
All international character data must be represented in one
standardized format and the standardized format must be compatible
with the current ASCII-based protocols. Therefore, the coded
character set (CCS) for IDNS protocol must be Unicode [Unicode], and
be encoded using the UTF-8 [RFC2279] character encoding scheme (CES).
The client-side interface may allow the domain names encoded in any
local character sets, Unicode, ASCII and so on. But they must be
encoded into Unicode before being used in IDNS resolver. The IDNS
resolver accepts Unicode character data only, and converts it to UTF-
8 finally for transmission.
4.4 Canonicalization
In the current DNS protocol, the domain names are matched in case-
insensitive. Therefore, the domain names in a query and zone file
must be case-folded before equivalence test.
The case-folding issue has been discussed for a long time in IETF IDN
WG. The main problem is for case folding in locale-dependent. Some
different local characters are overlapped within case-folded format.
For example, Latin capital letter I (U+0049) case-folded to lower
case in the Turkish context will become Latin small letter dotless i
(U+0131). But in the English context, it will become Latin small
letter i (U+0069)
Therefore, we case-fold the domain names in locale-independent in our
new IDNS design with a method defined in [UTR21].
Multi-lingual domain names should be case-folded in IDNS resolvers or
IDNS servers before transmitting to other IDNS/DNS servers. That is,
IDNS resolver should case-fold the domain name and converts it to
UTF-8 before transmission. In case of IDNS server, if it gets a query
with IN bit set to 1, then it needs not to make the multi-lingual
domain name canonicalized anymore. If the IDNS server gets a query
with IN bit set to 0, then it cannot determine the query is
appropriate canonicalized format for IDNS server, so that it case-
folds that multi-lingual domain name in the query, and set 'IN' bit
to 1.
The current DNS queries contain the original case of domain names to
preserve the original cases. To be consistent with this rule, all
case-folded multi-lingual domain names should be stored by IDNS
resolvers or servers before case-folding, and should be restored
before sending response.
In the case of case-folding UTF-8 code, using the case-folding method
in [UTR21], the UTF-8 should be converted to Unicode and it must be
mapped to the mapping table finally. Of course that if we could make
a case-folding mapping table of UTF-8 character data, this overhead
could be reduced.
However it cannot avoid an overhead in IDNS servers for
canonicalization, because the canonicalization of international
character data is complicated.
To minimize this overhead, we use 'IN' bit to indicate that the
canonicalization for the query has been already handled. That means
it needs not canonicalization operation anymore. The detailed
operations according to the 'IN' bit are described later in <5.
Architectures>.
With international character data, the canonicalization (e.g. case-
folding) is much more complicated than the one with US-ASCII, and is
different from each other's by their locale contexts.
But this document doesn't specify any method or recommendation more
than case-folding. For canonicalization of international character
data, [UTR15] is a good start. It must be discussed further and
specified in the IDNS protocol specification.
4.5 Operational issues
In the current DNS scheme, it uses only ASCII code for a wire format.
But our new IDNS scheme uses UTF-8 code for a wire format. All the
IDNS resolvers must transmit queries encoded in UTF-8 and case-folded.
This format can be guaranteed by checking the IN bit: if IN bit is
set to 1, the query is encoded in UTF-8 and case-folded. Otherwise
the IDNS server cannot assure that the query is encoded in UTF-8 and
case-folded. Therefore it needs additional operations for encoding to
UTF-8 and case-folding, etc in this case.
The current DNS resolvers transmit the queries in ASCII code. But
it's not considerable in IDNS servers because the ASCII code is
preserved with no changes in UTF-8.
Some applications and resolvers transmit the queries in UTF-8
although they don't fit on the new IDNS resolvers' structures, e.g.
Microsoft's DNS servers. We cannot guarantee that those queries are
case-folded correctly. Therefore, the IDNS servers should convert
them to appropriate IDNS queries instead of the IDNS resolver in that
case.
All detailed operations of IDNS servers and resolvers are described
in <5. Architectures>.
5. Architectures
5.1 New header format
A new IDNS servers and resolvers must interoperate with the ones of
current DNS. Therefore, we need a way to determine whether the query
is for IDN or not. For this reason, we use a new header format as
proposed in [Oscarsson].
1 1 1 1 1 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| ID |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|QR| Opcode |AA|TC|RD|RA|IN|AD|CD| RCODE |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| QDCOUNT |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| ANCOUNT |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| NSCOUNT |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| ARCOUNT |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
The IDNS resolvers and servers identify themselves in a query or a
response by setting the 'IN' bit to 1 in the DNS query/response
format header. This bit is defined to be zero by default in the
current DNS servers and resolvers.
5.2 Structures of IDNS resolvers
To use multi-lingual domain names with IDNS servers, all the IDNS/DNS
resolvers must generate the query in a format of UTF-8 or ASCII. The
design of a resolver could be different with each other according to
the local operating systems or applications. We propose new design
guidelines of a resolver for a new standardization.
The IDNS resolver accepts Unicode from user interface for domain
names. The other character sets should be rejected. It encodes all
such character data into UTF-8 for transmission to name servers.
The procedures of the operation of an IDNS resolver are below:
<1>. If the resolver gets a domain name in Unicode or ASCII then it
stores the original domain name query. Otherwise the request for
lookup is rejected. In the current DNS protocol, the original case of
the domain name should be preserved. Therefore, the resolver must
store the original cases of the domain names before canonicalization
(e.g. case-folding).
<2>. Make the domain name case-folded with locale-independent case-
mapping table defined in [UTR21].
<3>. Convert it to UTF-8.
<4>. Set IN bit to 1. It indicates the query is from IDNS resolver
and the format is UTF-8, case-folded.
<5>. Send request query to name servers.
<6>. Restore the original domain name query into the response query
format.
<7>. Send response to the application.
5.3 Structures of IDNS servers
The operation of IDNS server is similar to the current one of DNS
server, but the IDNS server accepts UTF-8 queries and converts them
to the appropriate formats additionally.
The IDNS server distinguishes between the IDNS queries and DNS
queries by checking IN bit in the query/response format header.
According to the 'IN' bit, it operates differently.
The procedures of the operation of an IDNS server are below:
<1>. If the IN bit in the query/response format header is set to 1
then it matches the domain name within zone file data or forwards
request query to resolve. It operates as same as the operations of
the current DNS servers but retrieves UTF-8 code. In this case, it
needs not to make domain name canonicalized because the domain name
is already canonicalized in the previous procedures of IDNS resolvers
or IDNS servers. Go to step <7>.
<2>. Set IN bit to 1.
<3>. Store the original domain name query.
<4>. Make the domain name case-folded with locale-independent case-
mapping table defined in [UTR21].
<5>. Match the domain name within zone file data or send request
query to lookup.
<6>. Restore the original domain name query into the response query
format.
<7>. Send response for the query to the resolver or the other server
requested.
5.4 Interoperability with the current DNS
The DNS servers and resolvers accept domain names in ASCII only. But
IDNS servers and resolvers accept domain names in UTF-8. Therefore,
the queries from DNS ones to IDNS ones can be well handled because
the UTF-8 is a superset of ASCII code. But the queries from IDNS ones
to DNS ones will be rejected because the UTF-8 code is beyond the
range of ASCII code.
Note: There are some implementations which can handle UTF-8 domain
names although they don't fit on this specification of IDNS and fully
implemented with DNS protocol specification, e.g. Microsoft's DNS
server and resolvers. In this case, we cannot guarantee that the
queries from these 3rd-party implementations are encoded into UTF-8
and well canonicalized. But this queries are set 'IN' bit to 0, so
that the IDNS evaluates whether the domain name is the range of UTF-8
or not, and converts it into UTF-8 and makes it canonicalized finally.
6. Security Considerations
This architecture of IDNS uses 8bit-clean queries for transmission
and the UTF-8 code is handled instead of ASCII. The DNS protocol has
already allocated 8bit query format for domain names Therefore, the
IDNS protocol inherits the security issues for the current DNS.
Canonicalization of IDNS is defined in [UTR15] and case folding in
[UTR21]. All security issues related with canonicalization or
normalization inherits ones described in [UTR15, UTR21].
As always with data, if software does not check for data that can be
a problem, security may be affected. As more characters than ASCII is
allowed, software only expecting ASCII and with no checks may now get
security problems.
7. References
[IDN-REQ] James Seng, "Requirements of Internationalized Domain
Names," Internet Draft, June 2000
[KWAN] Stuart Kwan, "Using the UTF-8 Character Set in the
Domain Name System," Internet Draft, February 2000
[Oscarsson] Dan Oscarsson, "Internationalisation of the Domain Name
Service," Internet Draft, February 2000
[RFC1034] Mockapetris, P., "Domain Names - Concepts and
Facilities," STD 13, RFC 1034, USC/ISI, November 1987
[RFC1035] Mockapetris, P., "Domain Names - Implementation and
Specification," STD 13, RFC 1035, USC/ISI, November
1987
[RFC2119] S. Bradner, "Key words for use in RFCs to Indicate
Requirement Levels," RFC 2119, March 1997
[RFC2130] C. Weider et. Al., "The Report of the IAB Character Set
Workshop held 29 February - 1 March 1996," RFC 2130,
Apr 1997.
[RFC2279] F. Yergeau, "UTF-8, a transformation format of ISO
10646," RFC 2279, January 1998
[RFC2535] D. Eastlake, "Domain Name System Security Extensions,"
RFC 2535, March 1999
[UNICODE] The Unicode Consortium, "The Unicode Standard - Version
3.0," http://www.unicode.org/unicode/
[UTR15] M. Davis and M. Duerst, "Unicode Normalization Forms",
Unicode Technical Report #15, Nov 1999,
http://www.unicode.org/unicode/reports/tr15/
[UTR21] Mark Davis, "Case Mappings," Unicode Technical Report
#21, May 2000,
http://www.unicode.org/unicode/reports/tr21
8. Acknowledgments
Kyoungseok Kim <gimgs@asadal.cs.pusan.ac.kr>
Chinhyun Bae <piano@netpia.com>
9. Author's Addresses
Seungik Lee
Email: silee@icu.ac.kr
Hyewon Shin
Email: hwshin@icu.ac.kr
Dongman Lee
Email: dlee@icu.ac.kr
Information & Communications University
58-4 Whaam-dong Yuseong-gu Taejon, 305-348 Korea
Eunyong Park
Email: eunyong@eunyong.pe.kr
Konkuk University
93-1 Mojindong, Kwangjin-ku Seoul, 143-701 Korea
Sungil Kim
Email: clicky@netpia.com
Netpia.com
35-1 8-ga Youngdeungpo-dong Youngdeungpo-gu Seoul, 150-038 Korea

View File

@ -0,0 +1,19 @@
This Internet-Draft has been deleted. Unrevised documents placed in the
Internet-Drafts directories have a maximum life of six months. After
that time, they are deleted. This Internet-Draft was not published as
an RFC.
Internet-Drafts are not an archival document series, and expired
drafts, such as this one, are not available; please do not ask for
copies... they are not available. The Secretariat does not have
information as to future plans of the authors or working groups WRT the
deleted Internet-Draft.
For more information or a copy of the document, contact the author directly.
Draft Author(s):
E. Park: eunyong@eunyong.pe.kr

View File

@ -1,9 +1,9 @@
Internet Draft Marc Blanchet
draft-ietf-idn-idne-01.txt Viagenie
July 8, 2000 Paul Hoffman
draft-ietf-idn-idne-02.txt Viagenie
March 19, 2001 Paul Hoffman
Expires in six months IMC & VPNC
Internationalized domain names using EDNS (IDNE)
Internationalized domain names using EDNS (IDNE)
Status of this Memo
@ -19,11 +19,11 @@ 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 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.
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
Abstract
@ -98,11 +98,11 @@ new extended label type for IDNE is used to identify an IDNE label. This
document uses 0b000010 as the extended label type; however, the label
type will be assigned by IANA and it may not be 0b000010.
0 1 2
0 1 2
bits 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 . . .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-//+-+-+-+-+-+-+
|0 1| ELT | Size | IDN label ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+//-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-//+-+-+-+-+-+-+
|0 1| ELT | Size | IDN label ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+//-+-+-+-+-+-+-+
ELT: The six-bit extended label type to be assigned by the IANA for an
@ -134,20 +134,20 @@ then transformed using UTF-8 [RFC2279] to 0x6DC3A9.
Ignoring the other fields of the message, the domain name portion of the
datagram could look like:
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
20 | 0 1 0 0 0 0 1 0| 0 0 0 0 0 0 1 1|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
22 | 0x6D (m) | 0xC3 (e'(1)) |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
24 | 0xA9 (e'(2)) | 3 |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
26 | 0x63 (c) | 0x6F (o) |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
28 | 0x6D (m) | 0x00 |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
20 | 0 1 0 0 0 0 1 0| 0 0 0 0 0 0 1 1|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
22 | 0x6D (m) | 0xC3 (e'(1)) |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
24 | 0xA9 (e'(2)) | 3 |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
26 | 0x63 (c) | 0x6F (o) |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
28 | 0x6D (m) | 0x00 |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
Octet 20 means EDNS extended label type (0b01) using the IDN label
type (0b000010)
type (0b000010)
Octet 21 means size of label is 3 octets following
Octet 22-24 are the "m*" label encoded in UTF-8
Octet 25-28 are "com" encoded as a STD13 label
@ -161,25 +161,25 @@ Using the previous labels, one datagram might contain "www.m*.com" and
Ignoring the other fields of the message, the domain name portions of
the datagram could look like:
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
20 | 0 1 0 0 0 0 1 0| 0 0 0 0 0 0 1 1|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
22 | 0x6D (m) | 0xC3 (e'(1)) |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
24 | 0xA9 (e'(2)) | 3 |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
26 | 0x63 (c) | 0x6F (o) |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
28 | 0x6D (m) | 0x00 |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
. . .
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
40 | 3 | 0x77 (w) |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
42 | 0x77 (w) | 0x77 (w) |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
44 | 1 1| 20 |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
20 | 0 1 0 0 0 0 1 0| 0 0 0 0 0 0 1 1|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
22 | 0x6D (m) | 0xC3 (e'(1)) |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
24 | 0xA9 (e'(2)) | 3 |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
26 | 0x63 (c) | 0x6F (o) |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
28 | 0x6D (m) | 0x00 |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
. . .
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
40 | 3 | 0x77 (w) |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
42 | 0x77 (w) | 0x77 (w) |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
44 | 1 1| 20 |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
The domain name "m*.com" is shown at offset 20. The domain name
"www.m*.com" is shown at offset 40; this definition uses a pointer to
@ -405,23 +405,9 @@ Bill Sommerfeld
Francois Yergeau
B. Changes from -00 to -01
B. Changes from -01 to -02
1.1: Added reference to Unicode names.
3: Clarified that a size of zero is not allowed.
3.1.1 and 3.1.2: Fixed two very serious errors in the examples.
6: Removed second paragraph, which was redundant with 7.3.
12: Beefed up the security considerations.
13: Added [ISO10646] and [UNICODE3].
Added Appendix A.
Added Appendex B.
None.
C. Authors' Addresses
@ -438,4 +424,3 @@ Internet Mail Consortium and VPN Consortium
Santa Cruz, CA 95060 USA
phoffman@imc.org

View File

@ -1,334 +0,0 @@
Internet Draft Paul Hoffman
draft-ietf-idn-idnra-00.txt IMC & VPNC
August 17, 2000 Patrik Faltstrom
Expires in six months Cisco
Internationalized Host Names
Using Resolvers and Applications (IDNRA)
Status of this Memo
This document is an Internet-Draft and is in full conformance with all
provisions of Section 10 of RFC2026.
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.
Abstract
The current DNS infrastructure does not provide a way to use
internationalized host names (IDN). This document describes a mechanism
that requires no changes to any DNS server that will allow
internationalized host names to be used by end users with changes only
to resolvers and applications. It allows flexibility for user input and
display, and assures that host names that have non-ASCII characters are
not sent to servers.
1. Introduction
In the discussion of IDN solutions, a great deal of discussion has
focused on transition issues and how IDN will work in a world where not
all of the components have been updated. Earlier proposed solutions
require that user applications, resolvers, and DNS servers to be updated
in order for a user to use an internationalized host name. Instead of
this requirement for widespread updating of all components, the current
proposal is that only user applications and the resolvers on user's
systems be updated; no changes are needed to the DNS protocol or any DNS
servers. We also show that it is enough to update only the application,
and at the same time an encoded version of the host name can be used
even in current existing applications.
The proposal is called IDNRA because it only requires changes to
resolvers and applications (the "R" and "A" in the name).
1.1 Design philosophy
To date, the proposals for IDN protocols have required that DNS servers
be updated to handle internationalized host names. Because of this, the
person who wanted to use an internationalized host name had to be sure
that their request went to a DNS server that was updated for IDN.
Further, that server could only send queries to other servers that had
been updated for IDN because the queries contain new protocol elements
to differentiate IDN name parts from current host parts. In addition,
these proposals require that resolvers must be updated to use the new
protocols, and in most cases the applications would need to be updated
as well.
Updating all (or even a significant percentage) of the DNS servers in
the world will be difficult, to say the least. Because of this, we have
designed a protocol that requires no updating of any name servers. IDNRA
still requires the updating of applications and resolvers, but once a
user has updated these, she or he could immediately start using
internationalized host names. The cost of implementing IDN would thus be
much lower, and the speed of implementation will be much higher.
IDNRA also specifies how to use old applications and/or old resolvers in
parallel with updated ones.
1.2 Terminology
The key words "MUST", "SHALL", "REQUIRED", "SHOULD", "RECOMMENDED", and
"MAY" in this document are to be interpreted as described in RFC 2119
[RFC2119].
1.3 IDN summary
Using the terminology in [IDNCOMP], this protocol specifies an IDN
architecture of arch-3 (just send ACE). The format is ace-1.2 (RACE),
and the method for distinguishing ACE name parts from current name parts
is ace-2.1.1 (add hopefully-unique legal tag). Because there is no
changes needed to the DNS, the transition strategy is trans-1 (always do
current plus new architecture).
2. Structural Overview
In IDNRA, users' applications and resolvers are updated to perform the
processing needed to input internationalized host names from users,
display internationalized host names that are returned from the DNS to
users, and process the inputs and outputs from the DNS.
2.1 Interfaces between DNS components in IDNRA
The interfaces in IDNRA can be represented pictorially as:
+------+
| User |
+------+
^
| Input and display: any charset
v
+-------------+
| Application |
+-------------+
^
| API call and return: UTF-8
v
+----------+
| Resolver |
+----------+
^
| DNS query and response: RACE
v
+-------------+
| DNS servers |
+-------------+
2.1.1 Users and applications
Applications can accept host names using any character set or sets
desired by the application developer, and can display host names in any
charset. That is, this protocol does not affect the interface between
users and applications.
An IDNRA-aware application can accept and display internationalized host
names in two formats: the internationalized character set(s) supported
by the application, and in RACE [RACE] ASCII-compatible encoding.
Applications MAY allow RACE input and output, but are not encouraged to
do so except as an interface for advanced users, possibly for debugging.
RACE encoding is opaque and ugly, and should thus only be exposed to
users who absolutely need it. The optional use, especially during a
transition period, of RACE encodings in the user interface is described
in section 3.
2.1.2 Applications and resolvers
Applications communicate with resolver libraries through a programming
interface (API). Typically, the IETF does not standardize APIs, although
it has for IPv6. This protocol does not specify a specific API, but
instead specifies only the input and output formats of the host names to
the resolver library.
This protocol specifies that host names SHOULD be passed to resolvers
using UTF-8 [RFC2279] because there are many libraries for converting
between arbitrary charsets and UTF-8. However, because the API is not
specified in this document, some resolvers may use different charsets
for input and output, and applications must, of course, use the same
charset as the resolver library they call.
IDNRA-aware applications MUST be able to work with both IDNRA-aware and
non-aware resolvers. An IDNRA-aware application that is resolving a
non-internationalized host name (one that conforms to RFC 1035[STD13])
MUST use non-aware APIs such as "gethostbyname" and "gethostbyaddr". An
IDNRA-aware application that is resolving a internationalized host name
(one that does not conform to RFC 1035) MUST use an API that is specific
to IDNRA.
2.1.3 Resolvers and DNS servers
Before converting the name parts into RACE, the resolver MUST prepare
each name part as specified in [NAMEPREP]. The resolver MUST use RACE
ASCII-compatible encoding for the name parts that are sent in the DNS
query, and will always get name parts encoded in RACE from the DNS
service. DNS servers MUST use the RACE format for internationalized host
name parts.
If a signalling system which makes negotiation possible between old and
new DNS clients and servers is standardized in the future, the encoding
of the query in the DNS protocol itself can be changed from RACE to
something else, such as UTF-8. The question whether or not this should
be used is, however, a separate problem and is not discussed in this
memo.
3. Combinations of Resolvers and Applications
IDNRA allows non-IDNRA applications to coexist with IDNRA-aware
resolvers, and non-IDNRA resolvers to coexist with IDNRA-aware
applications. This section describes the interactions between
applications and resolvers as users update each separately.
In this section, "old" means an application or resolver that has not bee
upgraded to be IDNRA-aware, and "new" means an IDNRA-aware application
or resolver. The two APIs are also called "old" and "new". "Binary"
means any host name that is not compatible with current DNS character
restrictions.
3.1 Old application, old resolver
Because it is an old resolver (and an old application), all host names
MUST (and will) be resolved using the old API. A user cannot enter
binary names in the application. A user MAY enter a name that uses RACE
encoding. Each RACE-encoded name part in such a name MUST already have
had all name preparation done on it and be correctly converted to RACE
encoding; otherwise, it will not be matched in the DNS.
When the resolver receives a RACE name in a response to a old API
gethostbyaddr-type query, the resolver will not convert the host name to
a binary form, and the application will thus display the name in RACE
format. Showing the results of a gethostbyaddr-type queries is rare in
typical Internet applications, so the display of RACE names is not
likely in typical environments.
3.2 Old application, new resolver
Because it is an old application, all host names MUST (and will) be
resolved using the old API. A user cannot enter binary names in the
application. A user MAY enter a name that uses RACE encoding. Each
RACE-encoded name part in such a name MUST already have had all name
preparation done on it and be correctly converted to RACE encoding;
otherwise, it will not be matched in the DNS. Note that, even though the
resolver is new, the resolver MUST NOT do further name preparation on
RACE-encoded name parts because the call was using the old API, which
tells the resolver that the resolver is dealing with an old application.
If the resolver receives a RACE name in a response to a old API
gethostbyaddr-type query, the resolver MUST NOT convert the host name to
a binary form, and the application will thus display the name in RACE
format. Showing the results of a gethostbyaddr-type queries is rare in
typical Internet applications, so the display of RACE names is not
likely in typical environments.
3.3 New application, old resolver
Because it is an old resolver, all host names MUST (and will) be
resolved using the old API. If the user enters a binary host name, the
application SHOULD reject the name as illegal. This is due to the fact
that, if the application did not reject the name as illegal, the
application would have to contain all of the name preparation logic and
RACE-encoding logic, but that logic would only be used in the rare case
where a user had updated applications but not the resolver. It is likely
that applications would not fully implement and rigorously test the name
preparation logic, and it is therefore likely that some applications in
this scenario would give incorrect information to the user, and would
possibly be susceptible to spoofing attacks. If an application is going
allow the input of binary names and convert them to their RACE-encoded
form for use on the old API, the application MUST do full name
preparation exactly as it would have been done in a new resolver.
If the application receives a RACE-encoded name part in a response to a
old API gethostbyaddr-type query, the application SHOULD convert the
host name to a binary form for display. However, the application MAY
have an interface that allows the display of RACE names that are
returned by gethostbyaddr-type queries, but the default setting of such
an interface SHOULD be to show the binary form, not the RACE form.
3.4 New application, new resolver
All host names MUST be resolved using the new API. A user MAY enter a
name that uses RACE encoding. Each RACE-encoded name part in such a name
MUST already have had all name preparation done on it and be correctly
converted to RACE encoding; otherwise, it will not be matched in the
DNS.
When the resolver receives a RACE name in a response to a
gethostbyaddr-type query, if the query was to the old API, the resolver
MUST NOT convert the host name and MUST pass the RACE-formatted name to
the application. If the query was to the new API, the resolver MUST
convert the host name part to the binary form. The application MAY have
an interface that allows the user to decide whether to use the old or
new API, and therefore to show the results in RACE or binary format, but
the default setting of such an interface SHOULD be to use the new API.
4. Root Server Considerations
Because there are no changes to the DNS protocols, adopting this
protocol has no effect on the root servers.
5. Security Considerations
Much of the security of the Internet relies on the DNS. Thus, any change
to the characteristics of the DNS can change the security of much of the
Internet.
Host names are used by users to connect to Internet servers. The
security of the Internet would be compromised if a user entering a
single internationalized name could be connected to different servers
based on different interpretations of the internationalized host name.
Because this document normatively refers to [NAMEPREP], it includes the
security considerations from that document as well.
6. References
[IDNCOMP] Paul Hoffman, "Comparison of Internationalized Domain Name
Proposals", draft-ietf-idn-compare.
[NAMEPREP] Paul Hoffman & Marc Blanchet, "Preparation of
Internationalized Host Names", draft-ietf-idn-nameprep.
[RACE] RACE: Row-based ASCII Compatible Encoding for IDN,
draft-ietf-idn-race.
[RFC2119] Scott Bradner, "Key words for use in RFCs to Indicate
Requirement Levels", March 1997, RFC 2119.
[RFC2279] Francois Yergeau, "UTF-8, a transformation format of ISO
10646", January 1998, RFC 2279.
[STD13] Paul Mockapetris, "Domain names - implementation and
specification", November 1987, STD 13 (RFC 1035).
A. Authors' Addresses
Paul Hoffman
Internet Mail Consortium and VPN Consortium
127 Segre Place
Santa Cruz, CA 95060 USA
phoffman@imc.org
Patrik Faltstrom
Cisco Systems
170 W Tasman Drive SJ-13/2
San Jose, CA 9 5134 USA
paf@cisco.com

View File

@ -0,0 +1,20 @@
This Internet-Draft has been deleted. Unrevised documents placed in the
Internet-Drafts directories have a maximum life of six months. After
that time, they are deleted. This Internet-Draft was not published as
an RFC.
Internet-Drafts are not an archival document series, and expired
drafts, such as this one, are not available; please do not ask for
copies... they are not available. The Secretariat does not have
information as to future plans of the authors or working groups WRT the
deleted Internet-Draft.
For more information or a copy of the document, contact the author directly.
Draft Author(s):
P. Hoffman: phoffman@imc.org
P. Faltstrom: paf@cisco.com

View File

@ -1,276 +0,0 @@
Internet Draft Dan Oscarsson
draft-ietf-idn-sace-00.txt Telia ProSoft
Expires: 27 February 2001 27 August 2000
Simple ASCII Compatible Encoding (SACE)
Status of this memo
This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026.
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.
Abstract
This document describes a way to encode non-ASCII characters in host
names in a way that is completely compatible with the current ASCII
only host names that are used in DNS. It can be used both with DNS to
support software only handling ASCII host names and as a way to
downgrade from 8-bit text to ASCII in protocols.
1. Introduction
This document defines an ASCII Compatible Encoding (ACE) of names
that can be used when communicating with DNS. It is needed during a
transition period when non-ASCII names are introduced in DNS to avoid
breaking programs expecting ASCII only.
The Simple ASCII Compatible Encoding (SACE) defined here can be
compared to [RACE]. The main differences are:
- RACE encodes by first compressing and the encoding the resulting
bit stream into ASCII. SACE encodes each character directly in one
Dan Oscarsson Expires: 27 Februray 2001 [Page 1]
Internet Draft SACE 27 August 2000
pass.
- SACE recognises that at lot of latin based names are mostly
composed of ASCII characters and gives a higher compression for
those. In the 63 byte limit of DNS RACE will allow 36 characters
for ISO 8859-1 and less if characters from the additional Latin
characters are needed. SACE will allow around 40 characters if
about 10 % of a Latin name is non-ASCII (in the UCS [ISO10646]
range 0-0x217). SACE is closer to the compression that UTF-8 have
than RACE.
- Most ASCII characters will not be encoded so Latin based names
composed of mostly ASCII characters will be somewhat readable.
1.1 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 [RFC2119].
2. Simple ASCII Compatible Encoding
The encoding encodes values using the available characters allowed in
a ASCII host name (a-z0-9 and hyphen).
Values are encoded as follows:
Character - value mapping
value character value character
0 a 18 s
1 b 19 t
2 c 20 u
3 d 21 v
4 e 22 w
5 f 23 x
6 g 24 y
7 h 25 z
8 i 26 1
9 j 27 2
10 k 28 3
11 l 29 4
12 m 30 7
13 n 31 9
14 o 32 0
15 p 33 8
16 q 34 5
17 r 35 6
Dan Oscarsson Expires: 27 Februray 2001 [Page 2]
Internet Draft SACE 27 August 2000
In the following description the following syntax will be used:
B => one value in the range 0-35 mapped to a character as above
X => one value in the range 0-31 mapped to a character as above
Each UCS character is identified as follows:
latin => a character in the range 0-0x217
10bit => a character in the range 0x218-0x2FFF
base36 => all other characters
During encoding/decoding a string a current mode is used. In each
mode characters are encoded like this:
latin => as themselves, 00 for 0, 88 for 8 or as 10 bit value
encoded as 0XX (two 5 bit values)
10bit => as 15 bits represented by its current prefix of 5 bits
followed by 10 bits encoded as XX
(the value is the 15 bits of prefix and
10 bits concatenated)
base36 => as a base 36 value represented by its current base 36
prefix followed by three base 36 digits encoded as BBB
(the value is prefix*36*36*36*36+B*36*36+B*36+B)
Before encoding the character value must first be
reduced:
if >= 0xd800 reduce by 8192 (private/surrogate start)
then reduce by 0x2FFF.
After decoding the character value need to be restored
as
add 0x2FFF
followed by adding 8192 if >= 0xd800
2.1 Decoding a string
During decode you start with:
Mode: latin
10bit prefix: 0
base36 prefix: 0
Then the characters in an encoded string are interpreted as follows
depending on current mode:
When in latin mode:
00 => the character 0
0XX => XX represents 10 bits which decodes to one character
88 => the character 8
85 => switch to 10bit mode with same prefix as last time
8X5 => switch 10 10bit mode setting X as current 10bit prefix
87 => switch to base36 mode with same prefix as last time
8X7 => switch to base36 mode setting X as current base36 prefix
Dan Oscarsson Expires: 27 Februray 2001 [Page 3]
Internet Draft SACE 27 August 2000
other => the characters represent itself
When in 10bit mode
- => the character -
0 => switch to latin mode
X5 => switch 10 10bit mode using X as current prefix
7 => switch to base36 mode with same prefix as last time
X7 => switch to base36 mode using X as current prefix
XX => current 10bit prefix plus XX gives the character
When in base36 mode
-- => the character -
-0 => switch to latin mode
-5 => switch to 10bit mode with same prefix as last time
-X5 => switch 10 10bit mode setting X as current prefix
-X7 => switch to base36 mode setting X as current prefix
XXX => current base36 prefix plus XXX as base 36 values gives
character
2.2 Encoding a string
To encode a string you start with the data as UCS characters and:
Mode: latin
10bit prefix: 0
base36 prefix: 0
Then for each UCS character, the mode and/or prefix is switched if
needed and then the character is encoded as defined above.
3. References
[RFC2119] Scott Bradner, "Key words for use in RFCs to Indicate
Requirement Levels", March 1997, RFC 2119.
[RFC2279] F. Yergeau, "UTF-8, a transformation format of ISO 10646",
RFC 2279, January 1998.
[ISO10646] ISO/IEC 10646-1:2000. International Standard --
Information technology -- Universal Multiple-Octet Coded
Character Set (UCS)
[Unicode] The Unicode Consortium, "The Unicode Standard -- Version
3.0", ISBN 0-201-61633-5. Described at
http://www.unicode.org/unicode/standard/versions/
Unicode3.0.html
Dan Oscarsson Expires: 27 Februray 2001 [Page 4]
Internet Draft SACE 27 August 2000
[IDNREQ] James Seng, "Requirements of Internationalized Domain
Names", draft-ietf-idn-requirement.
[RACE] Paul Hoffman, "RACE: Row-based ASCII Compatible Encoding
for IDN", draft-ietf-idn-race.
4. Acknowledgements
Paul Hoffman for many good ideas.
Author's Address
Dan Oscarsson
Telia ProSoft AB
Box 85
201 20 Malmo
Sweden
E-mail: Dan.Oscarsson@trab.se
Dan Oscarsson Expires: 27 Februray 2001 [Page 5]

View File

@ -0,0 +1,19 @@
This Internet-Draft has been deleted. Unrevised documents placed in the
Internet-Drafts directories have a maximum life of six months. After
that time, they are deleted. This Internet-Draft was not published as
an RFC.
Internet-Drafts are not an archival document series, and expired
drafts, such as this one, are not available; please do not ask for
copies... they are not available. The Secretariat does not have
information as to future plans of the authors or working groups WRT the
deleted Internet-Draft.
For more information or a copy of the document, contact the author directly.
Draft Author(s):
D. Oscarsson: dan.oscarsson@trab.se

View File

@ -1,537 +0,0 @@
IETF IDN Working Group Sung Jae Shim
Internet Draft DualName, Inc.
Document: draft-ietf-idn-vidn-00.txt 14 November 2000
Expires: 14 May 2001
Virtually Internationalized Domain Names (VIDN)
Status of this Memo
This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026.
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.
1. Abstract
This document describes a method that internationalizes existing as
well as future domain names in English, not making any change to the
current DNS, not requiring separate name server or resolver, and not
creating domain names in non-English languages. Based upon the
knowledge of transliteration between a local language and English,
the method allows a user to use virtual domain names in the user's
preferred local language by converting them into the corresponding
actual domain names in English that comply with the current DNS. The
conversion takes place automatically and transparently in the user's
applications before DNS queries are sent. The method uses the current
DNS as it is and meets all the requirements of internationalized
domain names as described in Wenzel and Seng [2].
2. Conventions and definitions used in this document
The key words "REQUIRED" and "MAY" in this document are to be
interpreted as described in RFC-2119 [1].
A "host" is a computer or device attached to the Internet. A "user
host" is a computer or device with which a user is connected to the
Virtually Internationalized Domain Names November 2000
Internet, and a "user" is a person who uses a user host. A "server
host" is a computer or device that provides services to user hosts.
An "entity" is an organization or individual that has a domain name
registered with the DNS.
A "local language" is a language other than English that a user
prefers to use in a local context.
A "virtual domain name" is a domain name in a local language, and it
is not registered with the DNS but used for the convenience of a
user. An "actual domain name" is a domain name in English, and it is
actually used in the DNS. A "domain name" refers to an actual domain
name in English that complies with the DNS, unless specified
otherwise.
A "coded portion" is a pre-coded portion of a domain name (e.g.,
generic organization codes including `com', `edu', `gov', `int',
`mil', `net', `org', and country codes such as `kr', `jp', and so
on). An "entity-defined portion" is a portion of a domain name, which
is defined by the entity that holds the domain name (e.g.,
organization name, server name, and so on).
The method proposed in this document is called "virtually
internationalized domain names (VIDN)" because it uses virtual domain
names in local languages to internationalize actual domain names in
English that comply with the DNS.
A number of Korean-language characters are used in the original of
this document for examples, which is available from the author upon
request. The software used for Internet-Drafts does not allow using
multilingual characters other than ASCII characters. Thus, this
document may not display Korean-language characters properly,
although it may be comprehensible without the examples using Korean-
language characters. Also, when you open the original of this
document, please select your view encoding type to Korean for Korean-
language characters to be displayed properly.
3. Introduction
Domain names are valuable to Internet users as a main identifier of
hosts on the Internet. The current DNS allows using only English
characters in naming hosts or clusters of hosts on the Internet. More
specifically, the DNS uses only the basic Latin alphabets (case-
insensitive), the decimal digits (0-9) and the hyphen (-) in domain
names. But there is a growing need for internationalized or non-
English domain names. Recognizing this need, various methods have
been proposed to use non-English characters in domain names. But to
date, it seems that no method has met all the requirements of
internationalized domain names as described in Wenzel and Seng [2].
A group of earlier methods has tried to put internationalized domain
names inside some parts of the overall DNS system, using UCS encoding
Virtually Internationalized Domain Names November 2000
schemes. But these methods put too much of a burden on the DNS,
requiring a great deal of work for transition and update of the DNS
components. Another group of earlier methods has tried to build
separate directory services for internationalized domain names or
internationalized keywords. But these methods also require complex
implementation efforts, duplicating much of the work already done for
the DNS. Both the groups of earlier methods have tried to build some
mechanisms inside or outside the DNS and put internationalized domain
names or internationalized keywords there in addition to existing
domain names in English.
Unlike earlier methods that involve a lengthy and costly process of
implementation, VIDN provides a more immediate and less costly
solution to internationalized domain names by focusing on
internationalizing existing as well as future domain names in English
that comply with the current DNS, without actually creating domain
names in local languages. VIDN takes notice of the fact that most
domain names used in regions where English is not widely spoken, have
their entity-defined portions consisting of characters or words in
English as transliterated from characters and words in the respective
local languages. Based upon the knowledge of transliteration between
a local language and English, VIDN allows using virtual domain names
in a local language by converting them into the corresponding actual
domain names in English that comply with the current DNS. VIDN allows
the same domain names to be used not only in English as usual but
also in local languages, without creating additional domain names in
local languages.
4. VIDN method
4.1. Objectives
To date, the methods for internationalized domain names have tried to
create domain names or keywords in local languages one way or another
in addition to existing domain names in English, and put them inside
or outside the DNS, using special encoding schemes or lookup
services. These methods require a lengthy and costly process of
implementation. Even when they are successfully implemented, these
methods may localize the Internet by separating it into groups of
local languages that are less universal than English. Further, these
methods may cause disputes on copyrights, trademarks, and so on in
local contexts, in addition to all those disputes we observe with
current domain names in English. VIDN intends to provide a solution
to the problems of earlier methods, by (1) allowing the same domain
names to be used both in English and local languages, without
creating domain names in local languages, (2) working in applications
at user hosts automatically and transparently before DNS requests are
sent, (3) using the current DNS as it is, without requiring any
additional name server or resolver, and (4) being implemented
immediately with little cost.
4.2. Description
Virtually Internationalized Domain Names November 2000
It is important to note that most domain names used in regions where
English is not widely spoken have their entity-defined portions
consisting of characters or words in English as transliterated from
characters or words in local languages. These transliterated
characters or words in English do not have any meanings in English,
but their originals in local languages before the transliteration
into English have some meanings in local contexts, usually indicating
organization names, brand names, trademarks, and so on. VIDN allows
using these original characters or words in local languages as the
entity-defined portions of virtual domain names in local languages,
by transliterating them into the corresponding entity-defined
portions of actual domain names in English. In this way, VIDN allows
the same domain names in English to be also used virtually in local
languages without actually creating domain names in local languages.
As domain names overlay IP addresses, so virtual domain names in
local languages do actual domain names in English. The relationship
between virtual domain names in a local language and actual domain
names in English can be depicted as:
+---------------------------------+
| User |
+---------------------------------+
| |
+----------------|-----------------------|------------------+
| v (Transliteration) v |
| +---------------------+ | +-----------------------+ |
| | Virtual domain name | | | Actual domain name | |
| | in a local language |--+->| in English | |
| +---------------------+ +-----------------------+ |
| User application | |
+----------------------------------------|------------------+
v
DNS request
VIDN uses the phonemes of a local language and English as a medium in
transliterating the entity-defined portions of virtual domain names
in the local language into those of actual domain names in English.
This process of transliteration can be depicted as:
Local language English
+----------------------------+ +-----------------------------+
| Characters ----> Phonemes -----------> Phonemes ----> Characters |
| | | | | | |
| | | | | | |
| (Inverse of transcription) | Match | (Transcription) |
+----------------------------+ +-----------------------------+
| ^
| (Transliteration) |
+------------------------------------+
First, each entity-defined portion of a virtual domain name in the
local language is decomposed into individual characters or sets of
Virtually Internationalized Domain Names November 2000
characters so that each individual character or set of characters can
represent an individual phoneme of the local language, which is the
inverse of transcription of phonemes into characters. Second, each
individual phoneme of the local language is matched with an
equivalent phoneme of English that has the same or most proximate
sound. Third, each phoneme of English is transcribed into the
corresponding character or set of characters in English. Finally, all
the characters or sets of characters converted into English are
united to compose the corresponding entity-defined portion of an
actual domain name in English.
For example, a word in Korean, `??' that means `century' in English,
is transliterated into `segi' in English, and so, the entity whose
name contains `??' in Korean may have an entity-defined portion of
its domain name as `segi' in English. VIDN allows using `??' in
Korean as an entity-defined portion of a virtual domain name in
Korean, which is converted into `segi' in English, the corresponding
entity-defined portion of an actual domain name in English. More
specifically, the phonemes represented by the characters consisting
of `??' in Korean have the same sounds as the phonemes represented
by the characters consisting of `segi' in English. In the local
context, `??' in Korean is clearly easier to remember and type and
more intuitive and meaningful than `segi' in English.
An entity-defined portion of a virtual domain name in Korean, `??',
is transliterated into `yahoo' in English, since the phonemes
represented by the characters consisting of `??' in Korean have the
same sounds as the phonemes represented by the characters consisting
of `yahoo' in English. That is, `??' in Korean is pronounced as the
same as `yahoo' in English, and so, it is easy for Korean-speaking
people to deduce `??' in Korean as the virtual equivalent of
`yahoo' in English. VIDN allows using virtual domain names in a local
language for domain names whose originals are in the local language,
e.g., `??' in Korean, as well as domain names whose originals are
in English, e.g., `??' in Korean. In this way, VIDN can make domain
names truly international, allowing the same domain names to be used
both in English and local languages.
The coded portions of domain names such as organization codes,
geographic codes and country codes, can also be transliterated from a
local language into English, using the phonemes of the two languages
as a medium. For example, seven generic organization codes in English,
`com', `edu', `gov', `int', `mil', `net', and `org', can be
transliterated from `?', `??', `??', `??', `?', `??', `??' in
Korean, respectively, which can be used as the corresponding
organization codes of virtual domain names in Korean. Based upon its
meaning in English, each coded portion of actual domain names also
can be pre-assigned a virtual equivalent word or code in a local
language. For example, seven generic organization codes in English,
`com', `edu', `gov', `int', `mil', `net', and `org', can be pre-
assigned `??' (meaning `commercial' in Korean), `??' (meaning
`education' in Korean), `??' (meaning `government' in Korean),
`??' (meaning `international' in Korean), `??' (meaning `military'
in Korean), `??' (meaning `network' in Korean), and `??' (meaning
Virtually Internationalized Domain Names November 2000
`organization' in Korean), respectively, which can be used as the
corresponding organization codes of virtual domain names in Korean.
Since VIDN uses the phonemes of a local language and English as a
medium of the transliteration, it does not create such complexities
as other conversion methods based upon semantics do. Further, most
languages have a small number of phonemes. For example, Korean
language has nineteen consonant phonemes and twenty-one vowel
phonemes, and English language has twenty-four consonant phonemes and
twenty vowel phonemes. Each phoneme of Korean language can be matched
with a phoneme of English language that has the same or proximate
sound, and vice versa.
Some characters or sets of characters of a language may represent
more than one phoneme. Also, some phonemes of a language may be
represented by more than one character or set of characters. But
these variations usually occur in particular situations, and so, VIDN
incorporates the special provisions to deal with such variations. In
addition, not every character or set of characters in a local
language may be neatly transliterated into only one character or set
of characters in English. In practice, people often transliterate the
same word in a local language differently into English or vice versa.
VIDN also incorporates the provisions to deal with such variations
caused by common usages or idiomatic expressions. Because of these
variations, however, it is probable for one virtual domain name
entered in a local language to result in more than one actual domain
name in English.
VIDN includes a coding scheme in order to make each virtual domain
name entered in a local language correspond to exactly one actual
domain name in English. In this coding scheme, a unique code is pre-
assigned to one of the corresponding actual domain names in English
for each virtual domain name to be entered in a local language. The
code is kept somewhere at the server host that has the actual domain
name in English, for example, in the main HTML document at the server
host, so that VIDN can check the code. VIDN also generates the same
unique code whenever the corresponding virtual domain name is entered
in user applications. Then, VIDN checks whether the code at each
server host matches with the code generated in user applications. If
one of the server hosts has the code that matches with the code
generated in user applications, VIDN recognizes that the virtual
domain name entered by the user corresponds only to the actual domain
name of that server host, and connects the user host to the server
host. The domain names of the remaining server hosts that do not have
the matching code may be listed to the user as alternative sites. For
security purpose, this coding scheme may use an encryption technique.
For example, `??.?', a virtual domain name entered in Korean, may
result in four corresponding domain names in English including
`jungang.com', `joongang.com,' `chungang.com', and `choongang.com',
since the phonemes represented by characters consisting of `??.?'
in Korean can have the same or almost the same sounds as the phonemes
represented by characters consisting of `jungang.com',
`joongang.com,' `chungang.com', or `choongang.com' in English. In
Virtually Internationalized Domain Names November 2000
this case, we assume that the server host with its domain name
`jungang.com' has the pre-assigned code that matches with the code
generated when `??.?' in Korean is entered in user applications.
Then, the user host is connected to this server host, and the other
server hosts may be listed to the user as alternative sites so that
the user can try them.
The process of this coding scheme that makes each virtual domain name
in a local language correspond to only one actual domain name in
English, can be depicted as:
+---------------------------------+
| User |
+---------------------------------+
| |
+----------------|-----------------------|------------------+
| v v |
| +---------------------+ +-----------------------+ |
| | Virtual domain name | | Potential domain names| |
| | in a local language |---->| in English | |
| | e.g., `??.?' | | e.g., `jungang.com' | |
| | (code: 297437)| | `joongang.com' | |
| | | | `chungang.com' | |
| | | | `choongang.com' | |
| +---------------------+ +-----------------------+ |
| User application | |
+----------------------------------------|------------------+
^ |
| | Code check by VIDN
Connection to | | +-- `jungang.com'
the server host | | | (code: 297437)
`jungang.com' | | |-- `joongang.com'
| |----+ (not active)
| | |-- `chungang.com'
| | | (code: 381274)
| DNS request and | +-- `choongang.com'
| response | (not active)
+-----------------------+
Since VIDN converts separately the entity-defined portions and the
coded portions of a virtual domain name, it preserves the current
syntax of domain names, that is, the hierarchical dotted notation,
which Internet users are familiar with. Also, VIDN allows using a
virtual domain name mixed with characters in a local language and
English as the user wishes to, since the conversion takes place on
each individual portion of the domain name and each individual
character or set of characters of the portion.
While VIDN preserves the hierarchical dotted notation of current
domain names, the principles of VIDN are also applicable to domain
names in other possible notations such as those in a natural language
(e.g., `microsoft windows' rather than `windows.microsoft.com'). Also,
the principles of VIDN can be applied into other identifiers used on
the Internet, such as user IDs of e-mail addresses, names of
Virtually Internationalized Domain Names November 2000
directories and folders, names of web pages and files, keywords used
in search engines and directory services, and so on, allowing them to
be used interchangeably in a local language and English, without
creating additional identifiers in the local language. The conversion
of VIDN can be done between any two languages interchangeably. Thus,
even when the DNS accepts and registers domain names in other
languages in addition to English, VIDN can allow using the same
domain names in any two languages by converting virtual domain names
in one language into actual domain names in another language.
4.3. Implementation
In a preferred arrangement, VIDN is implemented in applications at
the user host. That is, the conversion of virtual domain names in a
local language into the corresponding actual domain names in English
takes place at the user host before DNS requests are sent. Thus,
neither a special encoding nor a separate lookup service is needed to
implement VIDN. VIDN is also modularized with each module being used
for conversion of virtual domain names in one local language into the
corresponding actual domain names in English. A user needs only the
module for conversion of his or her preferred local language into
English. Also, VIDN can be implemented at a central server host or a
cluster of local server hosts. A central server with all the language
modules of VIDN can provide the conversion service for all local
languages, or a cluster of local server hosts can share the
conversion service. In the latter case, each local server host with a
language module or a set of language modules can provide the
conversion service for the respective local language or set of local
languages used in a certain region.
Because of its small size, VIDN can be easily embedded into
applications software such as web browser, e-mail software, ftp
system, and so on at the user host, or it can work as an add-on
program to such software. In either case, the only requirement on the
part of the user is to install VIDN or software embedding VIDN at the
user host. Using virtual domain names in a local language in
accordance with the principles of VIDN is very intuitive to those who
speak the local language. The only requirement on the part of the
entity whose server host provides Internet services to user hosts is
to have an actual domain name in English into which a virtual domain
name in a local language is neatly transliterated in accordance with
the principles of VIDN, and to have a pre-assigned code kept at its
server host for one-to-one matching of its actual domain name and a
virtual domain name to be used by users. Most entities in regions
where English is not widely spoken already have such domain names in
English. Finally, there is nothing to change on the part of the DNS,
since VIDN uses the current DNS as it is.
Taken together, the features of VIDN can meet all the requirement of
internationalized domain names as described in Wenzel and Seng [2],
with respect to compatibility and interoperability,
internationalization, canonicalization, and operating issues. Given
the fact that different methods toward internationalized domain names
Virtually Internationalized Domain Names November 2000
confuse users, as already observed in some regions where some of
these methods have already been commercialized, e.g., Korea, it is
important to find and implement the most effective solution to
internationalized domain names as soon as possible.
4.4. Testing results
A testing version of VIDN has been developed for Korean-English
conversion as a web browser add-on program. The program contains all
the features described in this document except the coding scheme.
While the final version of the program is planned to include the
coding scheme, the testing version lists all the domain names in
English that correspond to a virtual domain name entered in Korean so
that a user can choose one. The testing results of a sample of
randomly selected domain names used in Korea show that the program
can cover more than ninety percent of the sample. The results
indicate that more than ninety percent of web sites in Korea can be
accessed using virtual domain names in Korean without creating
additional domain names in Korean. The remaining ten percent of
domain names are mostly those that contain acronyms, abbreviations or
initials. With improvement of its knowledge of transliteration, the
final version of the program is expected to cover most domain names
used in Korea.
5. Security considerations
Because VIDN uses the DNS as it is, it inherits the same security
considerations as the DNS.
6. Intellectual property considerations
It is the intention of DualName, Inc. to submit the VIDN method and
other elements of VIDN software to IETF for review, comment or
standardization.
DualName has applied for one or more patents on the technology
related to virtual domain name software and virtual email software.
If a standard is adopted by IETF and any patents are issued to
DualName with claims that are necessary for practicing the standard,
DualName is prepared to make available, upon written request, a non-
exclusive license under fair, reasonable and non-discriminatory terms
and condition, based on the principle of reciprocity, consistent with
established practice.
7. References
1 Bradner, S., "Key words for use in RFCs to Indicate Requirement
Levels", BCP 14, RFC 2119, March 1997
Virtually Internationalized Domain Names November 2000
2 Wenzel, Z. and Seng, J. (Editors), "Requirements of
Internationalized Domain Names," draft-ietf-idn-requirements-
03.txt, August 2000
8. Author's address
Sung Jae Shim
DualName, Inc.
3600 Wilshire Boulevard, Suite 1814
Los Angeles, California 90010
USA
Email: shimsungjae@dualname.com

View File

@ -0,0 +1,505 @@
IETF IDN Working Group Sung Jae Shim
Internet Draft DualName, Inc.
Document: draft-ietf-idn-vidn-01.txt 2 March 2001
Expires: 2 September 2001
Virtually Internationalized Domain Names (VIDN)
Status of this Memo
This document is an Internet-Draft and is in full conformance with all
provisions of Section 10 of RFC2026.
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.
1. Abstract
This document proposes a method that enables domain names to be used in both
local and English scripts, as a directory-search solution at an upper layer
above the DNS. The method first converts virtual domain names typed in local
scripts into the corresponding domain names in English scripts that comply with
the DNS, using the knowledge of transliteration between local and English
scripts. Then, the method searches for and displays domain names in English
scripts that are active on the Internet so that the user can choose any of them.
The conversion takes place automatically and transparently in the user's
applications before DNS queries are sent, and so, the method does not make any
change to the DNS nor require separate name servers.
2. Conventions and definitions used in this document
The key words "REQUIRED" and "MAY" in this document are to be interpreted as
described in RFC-2119 [1].
A "host" is a computer or device attached to the Internet. A "user host" is a
computer or device with which a user is connected to the Internet, and a "user"
is a person who uses a user host. A "server host" is a computer or device that
provides services to user hosts.
An "entity" is an organization or individual that has a domain name registered
with the DNS.
A "local language" is a language other than English language that a user prefers
to use in a local context. "Local scripts" are scripts of a local language and
"English scripts" are scripts of English language.
A "virtual domain name" is a domain name in local scripts, and it is not
registered with the DNS but used for the convenience of users. An "English
domain name" is a domain name in English scripts. A "domain name" refers to an
English domain name that complies with the DNS, unless specified otherwise.
A "coded portion" is a pre-coded portion of a domain name (e.g., generic codes
including 'com', 'edu', 'gov', 'int', 'mil', 'net', 'org', and country codes
such as 'kr', 'jp', 'cn', and so on). An "entity-defined portion" is a portion
of a domain name, which is defined by the entity that holds the domain name
(e.g., host name, organization name, server name, and so on).
The method proposed in this document is called "virtually internationalized
domain names (VIDN)," as it enables domain names in English scripts to be used
virtually in local scripts.
A number of Korean-language characters are used in the original of this document
for examples, which is available from the author upon request. The software used
for Internet-Drafts does not allow using multilingual characters other than
ASCII characters. Thus, this document may not display Korean-language characters
properly, although it may be comprehensible without the examples using Korean-
language characters. Also, when you open the original of this document, please
select your view encoding type to Korean for Korean-language characters to be
displayed properly.
3. Introduction
Domain names are valuable to Internet users as a main identifier of entities and
resources on the Internet. The DNS allows using only English scripts in naming
hosts or clusters of hosts on the Internet. More specifically, the DNS uses only
the basic Latin alphabets (case-insensitive), the decimal digits (0-9) and the
hyphen (-) in domain names. But there is a growing need for internationalized
domain names in local scripts. Recognizing this need, various methods have been
proposed to use local scripts in domain names. But to date, no method appears to
meet all the requirements of internationalized domain names as described in
Wenzel and Seng [2].
A group of earlier methods tries to put internationalized domain names in local
scripts inside some parts of the overall DNS, using special encoding schemes of
Universal Character Set (UCS). But these methods put too much of a burden on the
DNS, requiring a great deal of work for transition and update of the DNS
components and the applications working with the DNS. Another group of earlier
methods tries to build separate directory services for internationalized domain
names or keywords in local scripts. But these methods also require complex
implementation efforts, duplicating much of the work already done for the DNS.
Both the groups of earlier methods require creating internationalized domain
names or keywords in local scripts from scratch, which is a costly and lengthy
process on the parts of the DNS and Internet users. Further, domain names or
keywords created in local scripts are usable only by those who know the local
scripts, and so, they may segregate the Internet into many groups of different
sets of local scripts that are less universal than English scripts.
VIDN intends to provide a more immediate and less costly solution to
internationalized domain names than earlier methods. VIDN does not make any
change to the DNS nor require creating additional domain names in local scripts.
VIDN takes notice of the fact that many domain names currently used in regions
where English scripts are not widely used have their entity-defined portions
consisting of English scripts as transliterated from the respective local
scripts. Using this knowledge of transliteration between local and English
scripts, VIDN converts virtual domain names typed in local scripts into the
corresponding domain names in English scripts that comply with the DNS. In this
way, VIDN enables the same domain names to be used not only in English scripts
as usual but also in local scripts, without creating additional domain names in
local scripts.
4. VIDN method
4.1. Objectives
Earlier methods of internationalized domain names try to create domain names or
keywords in local scripts one way or another in addition to existing domain
names in English scripts, and put them inside or outside the DNS, using special
encoding schemes or lookup services. These methods require a lengthy and costly
process of creating domain names in local scripts and updating the DNS
components and applications. Even when they are successfully implemented, these
methods have a risk of localizing the Internet by segregating it into groups of
different sets of local scripts that are less universal than English scripts and
so diminishing the international scope of the Internet. Further, these methods
may cause more problems and disputes on copyrights, trademarks, and so on, in
local contexts than those that we experience with current domain names in
English scripts.
VIDN intends to provide a solution to the problems of earlier methods of
internationalized domain names. VIDN enables the same domain names to be used in
both English scripts as usual and local scripts, and so, there is no need to
create domain names in local scripts in addition to domain names in English
scripts. VIDN works automatically and transparently in applications at user
hosts before DNS requests are sent, and so, there is no need to make any change
to the DNS or to have additional name servers. For these reasons as well as
others, VIDN can be implemented more immediately with less cost than other
methods of internationalized domain names.
4.2. Description
It is important to note that most domain names used in regions where English
scripts are not widely used have their entity-defined portions consisting of
English scripts as transliterated from local scripts. Of course, there are many
domain names in those regions that do not follow this kind of transliteration
between local and English scripts. In such case, new domain names in English
scripts need to be created following this transliteration, but the number would
be minimal, compared to the number of internationalized domain names in local
scripts to be created and registered under other methods.
The English scripts transliterated from local scripts do not have any meanings
in English language, but their originals in local scripts before the
transliteration have some meanings in the respective local language, usually
indicating organization names, brand names, trademarks, and so on. VIDN enables
to use these original local scripts as the entity-defined portions of virtual
domain names in local scripts, by transliterating them into the corresponding
entity-defined portions of actual domain names in English scripts. In this way,
VIDN enables the same domain names in English scripts to be used virtually in
local scripts without actually creating domain names in local scripts.
As domain names in English scripts overlay IP addresses, so virtual domain names
in local scripts do actual domain names in English scripts. The relationship
between virtual domain names in local scripts and actual domain names in English
scripts can be depicted as:
+---------------------------------+
| User |
+---------------------------------+
| |
+----------------|-----------------------|------------------+
| v (Transliteration) v |
| +---------------------+ | +-----------------------+ |
| | Virtual domain name | | | Actual domain name | |
| | in local scripts |--+->| in English scripts | |
| +---------------------+ +-----------------------+ |
| User application | |
+----------------------------------------|------------------+
v
DNS requests
VIDN uses the phonemes of local and English scripts as a medium in
transliterating the entity-defined portions of virtual domain names in local
scripts into those of actual domain names in English scripts. This process of
transliteration can be depicted as:
Local scripts English scripts
+----------------------------+ +-----------------------------+
| Characters ----> Phonemes -----------> Phonemes ----> Characters |
| | | | | | |
| | | | | | |
| (Inverse of transcription) | Match | (Transcription) |
+----------------------------+ +-----------------------------+
| ^
| (Transliteration) |
+------------------------------------+
First, each entity-defined portion of a virtual domain name typed in local
scripts is decomposed into individual characters or sets of characters so that
each individual character or set of characters can represent an individual
phoneme of the local language. This is the inverse of transcription of phonemes
into characters. Second, each individual phoneme of the local language is
matched with an equivalent phoneme of English language that has the same or most
proximate sound. Third, each phoneme of English language is transcribed into the
corresponding character or set of characters in English language. Finally, all
the characters or sets of characters converted into English scripts are united
to compose the corresponding entity-defined portion of an actual domain name in
English scripts.
For example, a word in Korean language, '­­˜' that means 'century' in English
language, is transliterated into 'segi' in English scripts, and so, the entity
whose name contains '­­˜' in Korean language may have an entity-defined portion
of its domain name as 'segi' in English scripts. VIDN enables to use '­­˜' as
an entity-defined portion of a virtual domain name in Korean scripts, which is
converted into 'segi,' the corresponding entity-defined portion of an actual
domain name in English scripts. In other words, the phonemes represented by the
characters consisting of '­­˜' in Korean scripts have the same sounds as the
phonemes represented by the characters consisting of 'segi' in English scripts.
In the local context, '­­˜' in Korean scripts is clearly easier to remember and
type and more intuitive and meaningful than 'segi' in English scripts.
An entity-defined portion of a virtual domain name in Korean scripts, '¾ž®ý', is
transliterated into 'yahoo' in English scripts, since the phonemes represented
by the characters consisting of '¾ž®ý' in Korean scripts have the same sounds as
the phonemes represented by the characters consisting of 'yahoo' in English
scripts. That is, '¾ž®ý' in Korean scripts is pronounced as the same as 'yahoo'
in English scripts, and so, it is easy for Korean-speaking people to deduce '¾ž
®ý' in Korean scripts as the virtual equivalent of 'yahoo' in English scripts.
VIDN enables to use virtual domain names in local scripts for domain names whose
originals are in local scripts, e.g., '­­˜' in Korean scripts, as well as
domain names whose originals are in English scripts, e.g., '¾ž®ý' in Korean
scripts. In this way, VIDN is able to make domain names truly international,
allowing the same domain names to be used both in English and local scripts.
The coded portions of domain names such as generic codes and country codes can
also be transliterated from local scripts into English scripts, using their
phonemes as a medium. For example, seven generic codes in English scripts, 'com',
'edu', 'gov', 'int', 'mil', 'net', and 'org', can be transliterated from 'ýý', '
Àí´€', '—<>¦Š', 'ÁðË«', ' Ï', 'þÚË«', 'ÀÁ˜Ú' in Korean scripts, respectively,
which can be used as the corresponding generic codes of virtual domain names in
Korean scripts. Based upon its meaning in English language, each coded portion
of actual domain names also can be pre-assigned a virtual equivalent word or
code in local scripts. For example, seven generic codes in English scripts,
'com', 'edu', 'gov', 'int', 'mil', 'net', and 'org', can be pre-assigned '˜‚¾•'
(meaning 'commercial' in Korean language), 'ÌϘþ' (meaning 'education' in Korean
language), 'Âñ¦ð' (meaning 'government' in Korean language), '˜ Âª' (meaning
'international' in Korean language), '˜¦À‹' (meaning 'military' in Korean
language), 'þÚË«' (meaning 'network' in Korean language), and '³›È­' (meaning
'organization' in Korean language), respectively, which can be used as the
corresponding generic codes of virtual domain names in Korean scripts.
VIDN does not create such complexities as other conversion methods based upon
semantics do, since it uses phonemes as a medium of transliteration between
local and English scripts. Further, most languages have a small number of
phonemes. For example, Korean language has nineteen consonant phonemes and
twenty-one vowel phonemes, and English language has twenty-four consonant
phonemes and twenty vowel phonemes. Each phoneme of Korean language can be
matched with a phoneme of English language that has the same or proximate sound,
and vice versa.
Some characters or sets of characters may represent more than one phoneme. Some
phonemes may be represented by more than one character or set of characters.
Also, not every character or set of characters in local scripts may be neatly
transliterated into only one character or set of characters in English scripts.
In practice, people often transliterate the same local scripts differently into
English scripts or vice versa. VIDN incorporates the provisions to deal with
those variations that usually occur in particular situations as well as those
variations that are caused by common usage or idiomatic expressions. More
fundamentally, VIDN uses phonemes, which are very universal across different
languages, as a medium of transliteration rather than following a certain set of
transliteration rules that does not exist in many non-English-speaking countries
nor is followed by many non-English-speaking people.
One virtual domain name typed in local scripts may be converted into more than
one possible domain name in English scripts. In such case, VIDN can search for
and displays only those domain names in English scripts that are active on the
Internet, so that the user can choose any of them. Further, VIDN can be used as
a directory-search solution at an upper layer above the DNS. That is, the user
can use VIDN to query a phoneme-based domain name request in local scripts,
receive one or more corresponding domain names in English or ASCII-compatible
scripts preferably, choose one based upon the results of that search, and make
the final DNS request using any protocol or method to be chosen for
internationalized domain names. In this regard of directory search, VIDN uses
one-to-many map between virtual domain names in local scripts and actual domain
names in English scripts.
VIDN needs the one-to-many mapping and subsequent multiple DNS lookups only at
the first query of each virtual domain name typed in local scripts at the user
host. After the first query, the virtual domain name is set to the domain name
in English scripts that has been chosen at the first query. Any subsequent
queries with the same virtual domain name generate only one query with the
selected domain name in English scripts. Once the use selects one possible
domain name in English scripts from the list, VIDN remembers the user's
selection and directs the user to the same domain name at his or her subsequent
queries with that virtual domain name. In this way, VIDN can generate less
traffic on the DNS, while providing faster, easier, and simpler navigation on
the Internet to the user, using local scripts.
Utilizing a coding scheme, VIDN is also capable of making each virtual domain
name typed in local scripts correspond to exactly one actual domain name in
English scripts. In this coding scheme, a unique code such as the Unicode or
hexadecimal code represented by the virtual domain name, is pre-assigned to one
of the corresponding domain names in English scripts and stored in the
respective server host, so that both the user host and the server host can
support and understand the code. Then, VIDN checks whether the code at each
server host matches with the code generated at the user host. If one of the
servers stores the code that matches with the code generated at the user host,
the virtual domain name typed at the user host is recognized as corresponding
only to the domain name of that server host, and the user host is connected to
the server host. The domain names of the remaining server hosts that do not have
the matching code are also displayed at the user host as alternative sites.
Because a unique code is assigned to only one of the domain names in English
scripts, it does not cause any domain name squatting problem beyond what we
experience with current domain names in English scripts. Unique codes do not
need to be stored in any specific format, that is, they can be embedded in HTML,
XML, WML, and so on, so that the user host can interpret the retrieved code
correctly. Likewise, unique codes do not require any specific intermediate
transport protocol such as TCP/IP. The only requirement is that the protocol
must be understood among all participating user hosts and server hosts. For
security purpose, this coding scheme may use an encryption technique.
For example, 'ž¾Ô.ýý', a virtual domain name typed in Korean scripts, may
result in four corresponding domain names in English scripts, including
'jungang.com', 'joongang.com,' 'chungang.com', and 'choongang.com', since the
phonemes represented by characters consisting of 'ž¾Ô.ýý' in Korean scripts can
have the same or almost the same sounds as the phonemes represented by
characters consisting of 'jungang.com', 'joongang.com,' 'chungang.com', or
'choongang.com' in English scripts. In this case, we assume that the server host
with its domain name 'jungang.com' has the pre-assigned code that matches with
the code generated when 'ž¾Ô.ýý' in Korean scripts is entered in user
applications. Then, the user host is connected to this server host, and the
other server hosts may be listed to the user as alternative sites so that the
user can try them.
The process of this coding scheme that makes each virtual domain name in local
scripts correspond to only one actual domain name in English scripts, can be
depicted as:
+---------------------------------+
| User |
+---------------------------------+
| |
+----------------|-----------------------|------------------+
| v v |
| +---------------------+ +-----------------------+ |
| | Virtual domain name | | Potential domain names| |
| | in a local language |---->| in English | |
| | e.g., 'ž¾Ô.ýý' | | e.g., 'jungang.com' | |
| | (code: 297437)| | 'joongang.com' | |
| | | | 'chungang.com' | |
| | | | 'choongang.com' | |
| +---------------------+ +-----------------------+ |
| User application | |
+----------------------------------------|------------------+
^ |
| | Code check by VIDN
Connection to | | +-- 'jungang.com'
the server host | | | (code: 297437)
'jungang.com' | | |-- 'joongang.com'
| |----+ (not active)
| | |-- 'chungang.com'
| | | (code: 381274)
| DNS request and | +-- 'choongang.com'
| response | (not active)
+-----------------------+
Since VIDN converts separately the entity-defined portions and the coded
portions of a virtual domain name, it preserves the current syntax of domain
names, that is, the hierarchical dotted notation, which Internet users are
familiar with. Also, VIDN allows using a virtual domain name mixed with local
and English scripts as the user wishes to, since the conversion takes place on
each individual portion of the domain name and each individual character or set
of characters of the portion.
While VIDN preserves the hierarchical dotted notation of current domain names,
the principles of VIDN are applicable to domain names in other possible
notations such as those in a natural language (e.g., 'microsoft windows' rather
than 'windows.microsoft.com'). Also, the principles of VIDN can be applied into
other identifiers used on the Internet, such as user IDs of e-mail addresses,
names of directories and folders, names of web pages and files, keywords used in
search engines and directory services, and so on, allowing them to be used
interchangeably in local and English scripts, without creating additional
identifiers in local scripts. The conversion of VIDN can be done between any two
sets of scripts interchangeably. Thus, even when the DNS accepts and registers
domain names in other local scripts in addition to English, VIDN can allow using
the same domain names in any two sets of scripts by converting virtual domain
names in one set of scripts into actual domain names in another set of scripts.
4.3. Development and implementation
In a preferred arrangement, the development of VIDN for each set of local
scripts may be administered by one or more local standard bodies in regions
where the local scripts are widely used, for example, Korean Network Information
Center for Korean scripts, Japan Network Information Center for Japanese scripts,
and China, Hong Kong and Taiwan Network Information Centers for Chinese scripts,
with consultation with experts on phonemics and linguistics of the respective
local language and English language. Also, the unique codes for one-to-one
mapping between virtual domain names in local scripts and actual domain names in
English scripts can be administered by a central standard body like IANA.
Alternatively, the unique codes for each set of local scripts may be
administered by one or more local standard bodies in regions where the local
scripts are widely used, as with the development of VIDN.
VIDN is implemented in applications at the user host. That is, the conversion of
virtual domain names in local scripts into the corresponding actual domain names
in English scripts takes place at the user host before DNS requests are sent.
Thus, neither a special encoding nor a separate lookup service is needed to
implement VIDN. VIDN is also modularized with each module being used for
conversion of virtual domain names in one set of local scripts into the
corresponding actual domain names in English scripts. A user needs only the
module for conversion of his or her preferred set of local scripts into English
scripts. Alternatively, VIDN can be implemented at a central server host or a
cluster of local server hosts. A central server can provide the conversion
service for all sets of local scripts, or a cluster of local server hosts can
share the conversion service. In the latter case, each local server host can
provide the conversion service for one or more sets of local scripts used in a
certain region.
Because of its small size, VIDN can be easily embedded into applications
software such as web browser, e-mail software, ftp system, and so on at the user
host, or it can work as an add-on program to such software. In either case, the
only requirement on the part of the user is to install VIDN or software
embedding VIDN at the user host. Using virtual domain names in local scripts in
accordance with the principles of VIDN is very intuitive to those who use the
local scripts. The only requirement on the part of the entity whose server host
provides Internet services to user hosts is to have an actual domain name in
English scripts into which virtual domain names in local scripts are neatly
transliterated in accordance with the principles of VIDN. Most entities in
regions where English scripts are not widely used already have such domain names
in English scripts. Finally, there is nothing to change on the part of the DNS,
since VIDN uses the current DNS as it is.
Taken together, the features of VIDN can meet all the requirement of
internationalized domain names as described in Wenzel and Seng [2], with respect
to compatibility and interoperability, internationalization, canonicalization,
and operating issues. Given the fact that different methods toward
internationalized domain names confuse users, as already observed in some
regions where some of these methods have already been commercialized, e.g.,
Korea, Japan and China, it is important to find and implement the most effective
solution to internationalized domain names as soon as possible.
4.4. Current status
VIDN has been developed for Korean-English conversion as a web browser add-on
program. The program contains all the features described in this document and is
capable of listing all the domain names in English scripts that correspond to a
virtual domain name typed in Korean scripts so that a user can choose any of
them. The program can cover more than ninety percent of the sample. That is, the
results of testing indicate that more than ninety percent of web sites in Korea
can be accessed using virtual domain names in Korean scripts without creating
additional domain names in Korean scripts. The remaining ten percent of domain
names are mostly those that contain acronyms, abbreviations or initials. With
improvement of its knowledge of transliteration, the program is expected to
cover more domain names used in Korea.
5. Security considerations
Because VIDN uses the DNS as it is, it inherits the same security considerations
as the DNS.
6. Intellectual property considerations
It is the intention of DualName, Inc. to submit the VIDN method and other
elements of VIDN software to IETF for review, comment or standardization.
DualName has applied for one or more patents on the technology related to
virtual domain name software and virtual email software. If a standard is
adopted by IETF and any patents are issued to DualName with claims that are
necessary for practicing the standard, DualName is prepared to make available,
upon written request, a non-exclusive license under fair, reasonable and non-
discriminatory terms and condition, based on the principle of reciprocity,
consistent with established practice.
7. References
1 Wenzel, Z. and Seng, J. (Editors), "Requirements of Internationalized Domain
Names," draft-ietf-idn-requirements-03.txt, August 2000
8. Author's address
Sung Jae Shim
DualName, Inc.
3600 Wilshire Boulevard, Suite 1814
Los Angeles, California 90010
USA
Email: shimsungjae@dualname.com

View File

@ -2,7 +2,7 @@
IPng Working Group Richard Draves
Internet Draft Microsoft Research
Document: draft-ietf-ipngwg-default-addr-select-02.txt November 24, 2000
Document: draft-ietf-ipngwg-default-addr-select-03.txt March 3, 2001
Category: Standards Track
Default Address Selection for IPv6
@ -54,8 +54,8 @@ Abstract
These addresses may also be "preferred" or "deprecated" [3]. Privacy
considerations have introduced the concepts of "public addresses"
Draves Standards Track - Expires June 2001 1
draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
Draves Standards Track - Expires September 2001 1
draft-ietf-ipngwg-default-addr-select-03 March 3, 2001
and "temporary addresses" [4]. The mobility architecture introduces
@ -112,8 +112,8 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
Draves Standards Track - Expires June 2001 2
draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
Draves Standards Track - Expires September 2001 2
draft-ietf-ipngwg-default-addr-select-03 March 3, 2001
1.1. Conventions used in this document
@ -163,17 +163,21 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
address pairs having the longest possible common prefix. For source
address selection, temporary addresses [4] are preferred over public
addresses. In mobile situations [5], home addresses are preferred
over care-of addresses.
over care-of addresses. If an address is simultaneously a home
address and a care-of address (indicating the mobile node is "at
home" for that address), then the home/care-of address is preferred
over addresses that are solely a home address or solely a care-of
address.
Draves Standards Track - Expires September 2001 3
draft-ietf-ipngwg-default-addr-select-03 March 3, 2001
The framework optionally allows for the possibility of
administrative configuration of policy that can override the default
behavior of the algorithms. The policy override takes the form of a
configurable table that specifies precedence values and preferred
Draves Standards Track - Expires June 2001 3
draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
source prefixes for destination prefixes. If an implementation is
not configurable, or if an implementation has not been configured,
then the default policy table specified in this document SHOULD be
@ -222,38 +226,36 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
IPv4 addresses should be treated as having "preferred" configuration
status.
Draves Standards Track - Expires September 2001 4
draft-ietf-ipngwg-default-addr-select-03 March 3, 2001
2.3. IPv6 Addresses with Embedded IPv4 Addresses
IPv4-compatible addresses [2] and 6to4 addresses [12] contain an
embedded IPv4 address. For the purposes of this document, these
addresses should be treated as having the scope of the embedded IPv4
Draves Standards Track - Expires June 2001 4
draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
address. For example, the IPv6 address ::169.254.3.18 has link-local
scope and the address 2002:0a01:0203::1 has site-local scope.
addresses should be treated as having global scope.
IPv4-compatible addresses should be treated as having "preferred"
configuration status.
2.4. Loopback Address and Other Format Prefixes
The loopback address should be treated as having link-local scope
and "preferred" configuration status.
The loopback address should be treated as having link-local
scope [9] and "preferred" configuration status.
NSAP addresses, IPX addresses, and other addresses with as-yet-
undefined format prefixes should be treated as having global scope
and "preferred" configuration status. Later standards may supercede
this treatment.
NSAP addresses and other addresses with as-yet-undefined format
prefixes should be treated as having global scope and "preferred"
configuration status. Later standards may supercede this treatment.
2.5. Policy Table
The policy table is a longest-matching-prefix lookup table, much
like a routing table. Given an address A, a lookup in the policy
table produces three values: a precedence value Precedence(A), a
classification or label SrcLabel(A), and a second label DstLabel(A).
table produces two values: a precedence value Precedence(A) and a
classification or label Label(A).
The precedence value Precedence(A) is used for sorting destination
addresses. If Precedence(A) > Precedence(B), we say that address A
@ -261,10 +263,10 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
will prefer to sort destination address A before destination address
B.
The labels SrcLabel(A) and DstLabel(A) allow for policies that
prefer a particular source address prefix for use with a destination
address prefix. The algorithms prefer to use a source address S with
a destination address D if SrcLabel(S) = DstLabel(D).
The label value Label(A) allows for policies that prefer a
particular source address prefix for use with a destination address
prefix. The algorithms prefer to use a source address S with a
destination address D if Label(S) = Label(D).
IPv6 implementations SHOULD support configurable address selection
via a mechanism at least as powerful as the policy tables defined
@ -273,23 +275,23 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
specified here in conjunction with the following default policy
table:
Prefix Precedence SrcLabel DstLabel
::1/128 50 0 0
::/0 40 1 1
2002::/16 30 2 2
::/96 20 3 3
::ffff:0:0/96 10 4 4
Prefix Precedence Label
::1/128 50 0
::/0 40 1
2002::/16 30 2
::/96 20 3
::ffff:0:0/96 10 4
One effect of the default policy table is to prefer using native
source addresses with native destination addresses, 6to4 [12] source
addresses with 6to4 destination addresses, and v4-compatible [2]
source addresses with v4-compatible destination addresses. Another
Draves Standards Track - Expires June 2001 5
draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
Draves Standards Track - Expires September 2001 5
draft-ietf-ipngwg-default-addr-select-03 March 3, 2001
addresses with 6to4 destination addresses, and v4-compatible [2]
source addresses with v4-compatible destination addresses. Another
effect of the default policy table is to prefer communication using
IPv6 addresses to communication using IPv4 addresses, if matching
source addresses are available.
@ -340,14 +342,15 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
specifies a source address that is in the candidate set for the
destination, then the network layer MUST respect that choice. If the
application or upper-layer does not specify a source address, then
Draves Standards Track - Expires September 2001 6
draft-ietf-ipngwg-default-addr-select-03 March 3, 2001
the network layer uses the source address selection algorithm
specified in the next section.
Draves Standards Track - Expires June 2001 6
draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
4. Source Address Selection
The source address selection algorithm chooses a source address for
@ -369,9 +372,9 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
If SA = D, then choose SA. Similarly, if SB = D, then choose SB.
Rule 2: Prefer appropriate scope.
If Scope(SA) < Scope(SB). If Scope(SA) < Scope(D), then choose SB
If Scope(SA) < Scope(SB): If Scope(SA) < Scope(D), then choose SB
and otherwise choose SA.
Similarly, if Scope(SB) < Scope(SA). If Scope(SB) < Scope(D), then
Similarly, if Scope(SB) < Scope(SA): If Scope(SB) < Scope(D), then
choose SA and otherwise choose SB.
Rule 3: Avoid deprecated addresses.
@ -380,9 +383,12 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
one that is preferred.
Rule 4: Prefer home addresses.
If SA is a home address and SB is a care-of address, then prefer SA.
Similarly, if SB is a home address and SA is a care-of address, then
prefer SB.
If SA is simultaneously a home address and care-of address and SB is
not, then prefer SA. Similarly, if SB is simultaneously a home
address and care-of address and SA is not, then prefer SB.
If SA is just a home address and SB is just a care-of address, then
prefer SA. Similarly, if SB is just a home address and SA is just a
care-of address, then prefer SB.
An implementation may support a per-connection configuration
mechanism (for example, a socket option) to reverse the sense of
this preference and prefer care-of addresses over home addresses.
@ -394,18 +400,17 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
send to D and SA is assigned to a different interface, then prefer
SB.
Rule 6: Prefer matching label.
If Label(SA) = MatchSrcLabel(D) and Label(SB) <> MatchSrcLabel(D),
then choose SA. Similarly, if Label(SB) = MatchSrcLabel(D) and
Label(SA) <> MatchSrcLabel(D), then choose SB.
Draves Standards Track - Expires June 2001 7
draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
Draves Standards Track - Expires September 2001 7
draft-ietf-ipngwg-default-addr-select-03 March 3, 2001
Rule 6: Prefer matching label.
If Label(SA) = Label(D) and Label(SB) <> Label(D), then choose SA.
Similarly, if Label(SB) = Label(D) and Label(SA) <> Label(D), then
choose SB.
Rule 7: Prefer temporary addresses.
If SA is a temporary address and SB is a public address, then prefer
SA. Similarly, if SB is a temporary address and SA is a public
@ -454,16 +459,16 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
result, then the remaining rules are not relevant and should be
ignored. Subsequent rules act as tie-breakers for earlier rules.
Draves Standards Track - Expires September 2001 8
draft-ietf-ipngwg-default-addr-select-03 March 3, 2001
Rule 1: Avoid unusable destinations.
If there is no route to DB or if Source(DB) is undefined, then sort
DA before DB. Similarly, if there is no route to DA or if Source(DA)
is undefined, then sort DB before DA.
Draves Standards Track - Expires June 2001 8
draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
Rule 2: Prefer matching scope.
If Scope(DA) = Scope(Source(DA)) and Scope(DB) <> Scope(Source(DB)),
then sort DA before DB. Similarly, if Scope(DA) <> Scope(Source(DA))
@ -475,15 +480,19 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
is deprecated, then sort DA before DB.
Rule 4: Prefer home addresses.
If Source(DA) is a home address and Source(DB) is a care-of address,
then sort DA before DB. Similarly, if Source(DA) is a care-of
address and Source(DB) is a home address, then sort DB before DA.
If Source(DA) is simultaneously a home address and care-of address
and Source(DB) is not, then sort DA before DB. Similarly, if
Source(DB) is simultaneously a home address and care-of address and
Source(DA) is not, then sort DB before DA.
If Source(DA) is just a home address and Source(DB) is just a care-
of address, then sort DA before DB. Similarly, if Source(DA) is just
a care-of address and Source(DB) is just a home address, then sort
DB before DA.
Rule 5: Prefer matching label.
If SrcLabel(Source(DA)) = DstLabel(DA) and SrcLabel(Source(DB)) <>
DstLabel(DB), then sort DA before DB. Similarly, if
SrcLabel(Source(DA)) <> DstLabel(DA) and SrcLabel(Source(DB)) =
DstLabel(DB), then sort DB before DA.
If Label(Source(DA)) = Label(DA) and Label(Source(DB)) <> Label(DB),
then sort DA before DB. Similarly, if Label(Source(DA)) <> Label(DA)
and Label(Source(DB)) = Label(DB), then sort DB before DA.
Rule 6: Prefer higher precedence.
If Precedence(DA) > Precedence(DB), then sort DA before DB.
@ -508,6 +517,11 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
implementation somehow knows which destination addresses will result
in the "best" communications performance.
Draves Standards Track - Expires September 2001 9
draft-ietf-ipngwg-default-addr-select-03 March 3, 2001
6. Interactions with Routing
This specification of source address selection assumes that routing
@ -516,12 +530,6 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
However, implementations may use source address considerations as a
tiebreaker when choosing among otherwise equivalent routes.
Draves Standards Track - Expires June 2001 9
draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
For example, suppose a node has interfaces on two different links,
with both links having a working default router. Both of the
interfaces have preferred global addresses. When sending to a global
@ -567,24 +575,41 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
information in its implementation of destination address selection,
or if the ordering of a cached list of destination addresses is
possibly stale, then it should ensure that the destination address
Draves Standards Track - Expires September 2001 10
draft-ietf-ipngwg-default-addr-select-03 March 3, 2001
ordering returned to the application is no more than one second out
of date. For example, an implementation might make a system call to
check if any routing table entries or source address assignments
that might affect these algorithms have changed.
that might affect these algorithms have changed. Another strategy is
to use an invalidation counter that is incremented whenever any
underlying state is changed. By caching the current invalidation
counter value with derived state and then later comparing against
the current value, the implementation can detect if the derived
state is stale.
Draves Standards Track - Expires June 2001 10
draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
8. Security Considerations
This document has no direct impact on Internet infrastructure
security.
Note that most source address selection algorithms, including the
one specified in this document, expose a potential privacy concern.
An unfriendly node can infer correlations among a target node's
addresses by probing the target node with request packets that force
the target host to choose its source address for the reply packets.
(Perhaps because the request packets are sent to an anycast or
multicast address, or perhaps the upper-layer protocol chosen for
the attack does not specify a particular source address for its
reply packets.) By using different addresses for itself, the
unfriendly node can cause the target node to expose the target's own
addresses. For example, the unfriendly node might correlate the
target's current IPv6 temporary address with its IPv4 address by
sending requests with a global source address and an IPv4-compatible
source address.
9. Examples
This section contains a number of examples, first of default
@ -608,6 +633,11 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
Sources: fe80::1 vs 2001::1
Result: 2001::1 (prefer appropriate scope)
Draves Standards Track - Expires September 2001 11
draft-ietf-ipngwg-default-addr-select-03 March 3, 2001
Destination: ff05::1
Sources: fe80::1 vs fec0::1 vs 2001::1
Result: fec0::1 (prefer appropriate scope)
@ -632,12 +662,6 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
Sources: 2002:836b:2179::2 vs 2001::d5e3:7953:13eb:22e8 (temporary)
Result: 2002:836b:2179::2 (prefer matching label)
Draves Standards Track - Expires June 2001 11
draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
Destination: 2001::1
Sources: 2001::2 vs 2001::d5e3:7953:13eb:22e8 (temporary)
Result: 2001::d5e3:7953:13eb:22e8 (prefer temporary address)
@ -667,7 +691,11 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
Destinations: 2001::1 vs fec0::1 vs fe80::1
Result: fe80::1 (src fe80::2) then fec0::1 (src fec0::2) then
2001::1 (src 2001::2) (prefer smaller scope)
Draves Standards Track - Expires September 2001 12
draft-ietf-ipngwg-default-addr-select-03 March 3, 2001
Sources: 2001::2 (care-of address) or 3ffe::1 (home address) or
fec0::2 (care-of address) or fe80::2 (care-of address)
Destinations: 2001::1 vs fec0::1
@ -691,11 +719,6 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
Sources: 2002:836b:4179::2 or 2001::2 or fe80::2
Destinations: 2002:836b:4179::1 vs 2001::1
Draves Standards Track - Expires June 2001 12
draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
Result: 2001::1 (src 2001::2) then 2002:836b:4179::1 (src
2002:836b:4179::2) (prefer higher precedence)
@ -707,12 +730,12 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
administrator can change the policy table to prefer IPv4 addresses
by giving the ::ffff:0.0.0.0/96 prefix a higher precedence:
Prefix Precedence SrcLabel DstLabel
::1/128 50 0 0
::/0 40 1 1
2002::/16 30 2 2
::/96 20 3 3
::ffff:0:0/96 100 4 4
Prefix Precedence Label
::1/128 50 0
::/0 40 1
2002::/16 30 2
::/96 20 3
::ffff:0:0/96 100 4
This change to the default policy table produces the following
behavior:
@ -724,6 +747,13 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
Sources: fe80::1 or 131.107.65.117
Destinations: 2001::1 vs 131.107.65.121
Draves Standards Track - Expires September 2001 13
draft-ietf-ipngwg-default-addr-select-03 March 3, 2001
Unchanged Result: 131.107.65.121 (src 131.107.65.117) then 2001::1
(src fe80::1) (prefer matching scope)
@ -742,26 +772,14 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
site-local destinations, and site-local destinations before link-
local destinations:
Draves Standards Track - Expires June 2001 13
draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
Prefix Precedence SrcLabel DstLabel
::1/128 50 0 0
::/0 40 1 1
fec0::/10 37 1 1
fe80::/10 33 1 1
2002::/16 30 2 2
::/96 20 3 3
::ffff:0:0/96 10 4 4
Prefix Precedence Label
::1/128 50 0
::/0 40 1
fec0::/10 37 1
fe80::/10 33 1
2002::/16 30 2
::/96 20 3
::ffff:0:0/96 10 4
This change to the default policy table produces the following
behavior:
@ -788,6 +806,12 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
Each site has two global prefixes, one from the high-performance ISP
and one from their normal ISP. Site A has prefix 2001:aaaa:aaaa::/48
Draves Standards Track - Expires September 2001 14
draft-ietf-ipngwg-default-addr-select-03 March 3, 2001
from the high-performance ISP and prefix 2007:0:aaaa::/48 from its
normal ISP. Site B has prefix 2001:bbbb:bbbb::/48 from the high-
performance ISP and prefix 2007:0:bbbb::/48 from its normal ISP. All
@ -805,13 +829,6 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
Sources: 2001:aaaa:aaaa::a or 2007:0:aaaa::a or fe80::a
Destinations: 2001:bbbb:bbbb::b vs 2007:0:bbbb::b
Draves Standards Track - Expires June 2001 14
draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
Result: 2007:0:bbbb::b (src 2007:0:aaaa::a) then 2001:bbbb:bbbb::b
(src 2001:aaaa:aaaa::a) (longest matching prefix)
@ -836,17 +853,23 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
desired behavior via policy table configuration. For example, they
can use the following policy table:
Prefix Precedence SrcLabel DstLabel
::1 50 0 0
2001:aaaa:aaaa::/48 45 5 5
2001:bbbb:bbbb::/48 45 5 5
::/0 40 1 1
2002::/16 30 2 2
::/96 20 3 3
::ffff:0:0/96 10 4 4
Prefix Precedence Label
::1 50 0
2001:aaaa:aaaa::/48 45 5
2001:bbbb:bbbb::/48 45 5
::/0 40 1
2002::/16 30 2
::/96 20 3
::ffff:0:0/96 10 4
This policy table produces the following behavior:
Draves Standards Track - Expires September 2001 15
draft-ietf-ipngwg-default-addr-select-03 March 3, 2001
Sources: 2001:aaaa:aaaa::a or 2007:0:aaaa::a or fe80::a
Destinations: 2001:bbbb:bbbb::b vs 2007:0:bbbb::b
New Result: 2001:bbbb:bbbb::b (src 2001:aaaa:aaaa::a) then
@ -865,11 +888,6 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
host in some other site C, the traffic uses the normal ISP as
desired.
Draves Standards Track - Expires June 2001 15
draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
References
1 S. Bradner, "The Internet Standards Process -- Revision 3", BCP
@ -888,8 +906,9 @@ References
5 D. Johnson, C. Perkins, "Mobility Support in IPv6", draft-ietf-
mobileip-ipv6-12.txt, April 2000.
6 R. Troll. "Automatically Choosing an IP Address in an Ad-Hoc IPv4
Network", draft-ietf-dhc-ipv4-autoconfig-05.txt, March 2000.
6 S. Cheshire. "Dynamic Configuration of IPv4 Link-local
Addresses", draft-ietf-zeroconf-ipv4-linklocal-01.txt, November
2000.
7 S. Bradner, "Key words for use in RFCs to Indicate Requirement
Levels", BCP 14, RFC 2119, March 1997.
@ -903,6 +922,13 @@ References
10 Y. Rekhter et. al, "Address Allocation for Private Internets",
RFC 1918, February 1996.
Draves Standards Track - Expires September 2001 16
draft-ietf-ipngwg-default-addr-select-03 March 3, 2001
11 F. Baker, Editor. "Requirements for IP Version 4 Routers", RFC
1812, June 1995.
@ -912,9 +938,10 @@ References
Acknowledgments
The author would like to acknowledge the contributions of the IPng
Working Group, particularly Steve Deering and Ken Powell. Please let
the author know if you contributed to the development of this draft
and are not mentioned here.
Working Group, particularly Steve Deering, Jun-ichiro itojun Hagino,
M.T. Hollinger, Ken Powell, Markku Savela, Dave Thaler, and Mauro
Tortonesi. Please let the author know if you contributed to the
development of this draft and are not mentioned here.
Author's Address
@ -922,17 +949,27 @@ Author's Address
Microsoft Research
One Microsoft Way
Redmond, WA 98052
Draves Standards Track - Expires June 2001 16
draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
Phone: 1-425-936-2268
Email: richdr@microsoft.com
Revision History
Changes from draft-ietf-ipngwg-default-addr-select-02
Changed scope treatment of IPv4-compatible and 6to4 addresses, so
they are always considered to be global. Removed mention of IPX
addresses.
Changed home address rules to favor addresses that are
simultaneously home and care-of addresses, over addresses that are
just home addresses or just care-of addresses.
Combined SrcLabel & DstLabel in the policy table into a single Label
attribute.
Added mention of the invalidation counter technique in the
implementation section.
Changes from draft-ietf-ipngwg-default-addr-select-01
Added Examples section, demonstrating default behavior and some
@ -942,6 +979,13 @@ Changes from draft-ietf-ipngwg-default-addr-select-01
of source addresses and the source address selection rule that
prefers source addresses of appropriate scope.
Draves Standards Track - Expires September 2001 17
draft-ietf-ipngwg-default-addr-select-03 March 3, 2001
Simplified the default policy table. Reordered the source address
selection rules to reduce the influence of policy labels. Added more
destination address selection rules.
@ -980,12 +1024,6 @@ Changes from draft-ietf-ipngwg-default-addr-select-00
Added a rule to source address selection to handle home/care-of
addresses.
Draves Standards Track - Expires June 2001 17
draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
Changed to allow destination address selection to sort both IPv6 and
IPv4 addresses. Added entries in the default policy table for IPv4-
mapped addresses.
@ -1001,7 +1039,11 @@ Changes from draft-draves-ipngwg-simple-srcaddr-01
Added mechanism to allow the specification of administrative policy
that can override the default behavior.
Draves Standards Track - Expires September 2001 18
draft-ietf-ipngwg-default-addr-select-03 March 3, 2001
Added section on routing interactions and TBD section on mobility
interactions.
@ -1035,13 +1077,29 @@ Changes from draft-draves-ipngwg-simple-srcaddr-00
Draves Standards Track - Expires June 2001 18
draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
Draves Standards Track - Expires September 2001 19
draft-ietf-ipngwg-default-addr-select-03 March 3, 2001
Full Copyright Statement
@ -1098,4 +1156,4 @@ draft-ietf-ipngwg-default-addr-select-02 November 24, 2000
Draves Standards Track - Expires June 2001 19
Draves Standards Track - Expires September 2001 20

View File

@ -1,580 +0,0 @@
INTERNET-DRAFT X. Wang, Y. Huang, D Rine (GMU)
<draft-whr-dnsext-secure-online-update-00.txt> June 2000
Updates: RFC 2136
Replaces: RFC 2137
Secure Online Domain Name System (DNS) Dynamic Update
Status of this Memo
This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026.
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
Comments should be sent to the authors or the DNSIND WG mailing
list namedroppers@internic.net.
This draft expires on December 9, 2000.
Copyright Notice
Copyright (C) The Internet Society (2000). All rights reserved.
Abstract
This document proposes an alternate architecture to enable secure
online Domain Name System (DNS) dynamic updates. It is intended
Expires December 2000 [Page 1]
INTERNET-DRAFT Secure Online DNS Dynamic Update June 2000
to enable a DNS zone to provide online dynamic update and at the
same time, maintain the zone's security including role separation
and intrusion tolerance against insider and outsider attacks.
Threshold digital signature is used to implement the proposed
architecture.
1 - Introduction
This document proposes an alternate architecture to allow a
DNS zone to provide secure online dynamic update. In contrast
to existing dynamic update scheme, the proposed architecture
distinguishes itself in that it provides high security
for a zone when allowing it support online dynamic update.
Familiarity with the DNS system [RFC1034, RFC1035], DNS
Security Extension [RFC2535], dynamic update [RFC2136] and
secure dynamic update [RFC2137] is helpful and is assumed by
this document.
This document obsoletes RFC 2137, an alternate proposal
for secure dynamic update, due to implementation experience.
1.1 - Overview of DNS Security Extension
DNS Security Extension (DNSSEC) is proposed in [RFC2535].
The DNSSEC provides RR authentication by the use of digital
signatures. In DNSSEC, each zone is equipped with a
public/private key pair. The private key is used to digitally
sign all the RRs in that zone. The response to a DNS query
will also include the requested RRs and a SIG RR
(signature RR), which contains the digital signature of the
requested RRs. The zone public key, used to verify signatures,
is disseminated by means of KEY RRs.
A major security principle of the DNSSEC is the role separation:
it differentiates the roles of the DNS server administrator from
the DNS zone manager. One advantage of the role separation
is that it helps to prevent power abuses [SBM99]. In DNSSEC,
it is the DNS zone manager, not the DNS server administrator,
who is responsible for the security of a zone. A DNS server is
just a place to publish the digitally signed DNS data of the zone.
Thus, compromise of a secondary server or, if the zone private
key is kept off line, even the primary server for a zone, will
not necessarily affect the degree of assurance that a DNS
client receives [RFC2535]. When zone data is updated, the zone
manager will sign the new zone data off-line.
1.2 - Overview of DNS Dynamic Update and DNS Secure Dynamic Update
The idea of keeping zone private key off-line and computing
the signatures of RRs off-line is based on the assumption
that RRs in a DNS zone are relatively static. Indeed, in
normal situations we can expect that bindings between domain
names and IP addresses do not change frequently. However, it
has been pointed out that DNS dynamic updates, which enable
real-time changes (that is, add, delete, or update) in
name/address bindings, are useful under many circumstances
[Liu99,RFC2136]. (For example, such an update allows a
Wang, Huang & Rine [Page 2]
INTERNET-DRAFT June 2000
corporation to switch to a new domain name without waiting for
the slow, manual processing of the name change request by a
domain name registrar.) For a dynamic RR update to take effect
immediately and securely, the signature of the updated RR must
be computed online. It is worthwhile to note that although
a DNS dynamic update requestor is communicating with a name
server, the name server itself has no rights to update the
zone data. Instead, it is the zone private key, instead of
the name server's private key, that is needed in the dynamic
update.
In [RFC2137], two modes are defined to achieve the above goal.
In mode A, the zone private key is kept off-line and any
dynamic requests will be authorized by a dynamic update key
that is kept online. However, in this mode, since the zone
private key is not kept online, zone transfer security is
not automatically provided for dynamically added RRs, where
they could be omitted, and authorization is not provided for
the server denial of the existence of a dynamically added
type [RFC2137]. In this sense, this mode is not a genuine
DNS dynamic update. In mode B, on the other hand, the zone
private key is kept online at the zone primary name server;
thus, any legitimate DNS dynamic updates can be in effect
immediately.
1.3 - The existing drawbacks
Both of the above modes above require that a zone security
related private key be kept on line at the primary name server.
This practice raises security concerns [RFC2137]. First, it makes
the primary name server a single point of attack to an outside
attacker. Should the primary server be compromised, the on¡line
private key will be exposed, rendering dynamic RRs insecure
in mode A or, even worse, all RRs in the entire zone insecure
in mode B. Second, as an insider, the name server administrator
has access of this private key, compromising the role separation
principle and making it possible for the name server
administrator to abuse his/her power. (The importance of fending
off insider attacks has been emphasized by the security
community [RFC2196].)
2 - The Secure On-line DNS Dynamic Update Architecture
2.1 - Background: Threshold Cryptography
Threshold cryptography is a branch of cryptography that
enables a group of n members, 1,2, ..., n, to act as a single
communication party, using one pair of public and private keys
[Des87,Des94,Des97]. Similar to the traditional public key
cryptography, the public key is known to the public. Unlike
the traditional public key cryptography, the private key of
the group, K_private, does not exist as a whole. Rather, each
member i, 1 <= i <= n, will be assigned a number of key shares
of the private key. (For each public key cryptography algorithm,
Wang, Huang & Rine [Page 3]
INTERNET-DRAFT June 2000
a corresponding key sharing mechanism must be devised.) To
perform a cryptographic computation (such as decryption, signing,
identification, etc.) on message m with key K_private, b,
b <= n , group members will be required. Each member will compute
a partial result. Subsequently, the partial results are combined
to produce the final result. The combiner is not necessarily to
be trusted. Note that during this whole process the shared
private key, K_private, is never reconstructed. Further,
threshold cryptography requires that the shared private key
cannot be reconstructed from any t < b group members.
Practical threshold cryptography for RSA and DSS have been
designed. A practical threshold RSA is given by [DDB94] where
b = t+1 and a practical threshold DSS is given by [GJKR96b] where
t < n/2 and b = 2t+1.
2.2 - Introduction
+------------------------+
+---------+ #####| zone-security server 1 |
+---------+ | DNS | # +------------------------+
|DNS | DNS query | | #
| Inquirer|---------> | | #
+---------+ | Primary | # +------------------------+
| |#########| zone-security server 2 |
| Name | # +------------------------+
| | #
| | # . . .
+------+ | Server | # . . .
|DNS | DNS Dynamic | | # . . .
| User |=============> | | # +--------------------------+
+------+ Update request| | #####| zone-security server n-1 |
| | +--------------------------+
+---------+
|
| zone transfer
\|/
+-----------------+
| DNS Secondary |
| Name Server |
+-----------------+
In the above proposed architecture, we assume that there exist
(n-1), n >= 2, machines in a given DNS zone that are under the
control of the zone manager, but not under the control of the
name server administrators. These machines are called the
zone-security servers.
Using a threshold cryptography scheme with n > t >= 1, the
zone private key is shared among the (n-1) zone-security servers
and the primary name server. To update zone's data dynamically,
some of the servers will be needed. Let b > t be the number of
zone private key shares needed in the computation of the
signature of an RR. Since b >= 2, any change to the zone data
will need the cooperation of at least one zone-security server;
Wang, Huang & Rine [Page 4]
INTERNET-DRAFT June 2000
the name server administrator will have no way to modify the
digitally signed zone data. Thus, the role separation principle
holds. Moreover, the above architecture enhances intrusion
tolerance of DNS.
A DNS system is said to be k-intrusion-tolerant against an
entity, E, if breaking into k servers (including the
zone-security servers and the DNS name servers, if applicable)
that are outside E's control will not help E gain any knowledge
of the zone private key. A DNS system is said to be intrusion
tolerant against an outsider (insider) if it is at least
1-intrusion-tolerant against the outsider (insider). The
architecture proposed in this document can be configured to be
intrusion tolerant against outside and inside attackers.
Intrusion tolerance against outsider attacks. In the
architecture, the zone private key cannot be recovered from
any single location, thus, making the system intrusion
tolerant against an outside attacker. That is, even when an
outside attacker manages to corrupt l, l <= t, of relevant
servers (including the name servers and the zone-security
servers), secrecy of the zone private key is still
maintained.
Intrusion tolerance against insider attacks. The presence of
zone security servers and the necessity of their involvement
in signature computations constitute a defense line
against insider attacks, in particular, attacks from name
server administrators. Clearly, a hostile name server
administrator must break into at least t zone security
servers (to get access to the respective key shares) in
order to perform unauthorized RR signature computations.
3 - Implementation Details
[RFC2535] defines two types of SIG records, the DSA SIG and
the RSA/MD5 SIG. The important configuration and implementation
aspects of our proposed architecture with respect to these two types
of SIGs are given next. In the following statement,
the primary name server will be referred to as server 0 and the
(n-1) zone-security servers will be referred to as servers
1, 2, ... , (n-1).
3.1 - Example Configurations
The following table gives some representative configurations, in
terms of t and n, to achieve the above security levels in
different application cases.
Wang, Huang & Rine [Page 5]
INTERNET-DRAFT June 2000
+----------------------------+----------------------------+
| | RSA/MD5 SIG | DSA SIG |
| SECURITY LEVEL +-------------+--------------+
| | 1-2 | 2-4 | 1-3 | 2-5 |
+----------------------------+-----+-------+-------+------+
|Intrusion tolerant against | | | | |
| outsider attackers (Y/N) | Y | Y | Y | Y |
+----------------------------+-----+-------+-------+------+
|Intrusion tolerant against | | | | |
| insider attackers (Y/N) | N | Y | N | Y |
+----------------------------+-----+-------+-------+------+
3.2 - The RSA/MD5 SIG
Assume that, in RSA, the zone's private key is d and its
public key is (e, N). Phi(N) is the Euler function of N, i.e.,
phi(N) = (p-1)(q-1) where N = p * q. We use the threshold
digital signature scheme given in [DDB94] and now give
how the zone private key is shared and how to generate a
RSA/MD5 SIG RR online.
The 1-2 case. In this case, the zone manager generates a random,
d1, 1 < d1 < phi(N), and compute d2, d2 = d - d1 mod phi(N).
Values d1 and d2 are sent securely to the primary name server
and the zone-security server respectively.
To generate a RSA/MD5 SIG of m, where m is the MD5 digest of
an RR, the two servers will compute m^d1 mod N and m^d2 mod N
respectively. Then any one of them can combine the partial
results as m^d1 * m^d2 mod N = m^d mod N, the digital signature
of m by the zone private key.
The 2-4 case. To generate key shares, the zone manager generates
4 random numbers, d1, d2, d3, d4, where 1 < di < phi(N)
for 1 <= i <= 4. He/she will also compute two numbers,
d5 = d - d1 - d2 mod phi(N) and d6 = d - d3 - d4 mod phi(N).
Subsequently, d1 and d6 are sent to the primary name server,
d2 and d6 are sent to server 1, d3 and d5 are sent to server 2,
d4 and d5 are sent to server 3, as shown in the following table.
+---------------------+----------+----------+----------+---------+
| | SERVER 0 | SERVER 1 | SERVER 2 | SERVER 3|
+---------------------+----------+----------+----------+---------+
| KEYS ASSIGNED | d1, d6 | d2, d6 | d3, d5 | d4, d5 |
+-------------+-------+----------+----------+----------+---------+
|PARTICIPATING|(0,1,2)| d1 | d2 | d5 | |
| +-------+----------+----------+----------+---------+
| |(0,1,3)| d1 | d2 | | d5 |
| +-------+----------+----------+----------+---------+
| |(0,2,3)| d6 | | d3 | d4 |
| SERVERS +-------+----------+----------+----------+---------+
| |(1,2,3)| | d6 | d3 | d4 |
+-------------+-------+----------+----------+----------+---------+
Wang, Huang & Rine [Page 6]
INTERNET-DRAFT June 2000
To generate a RSA/MD5 SIG, any 3 of the 4 servers will be
needed. For example, if the primary name server and the
zone-security servers 1 and 2 are present (the (0,1,2) case in
the above table), the three servers will compute m^d1 mod N,
m^d2 mod N, and m^d3 mod N respectively. After that any one of
them can combine the partial results to produce
m^d1 * m^d2 * m^d3 mod N = m^d mod N, the digital signature of
m by the zone private key. Other possibilities of computing
the signature of m are summarized in the above table.
3.3 - The DSA SIG
In this case, for a t-n configuration (such as the 1-3 and 2-5
configurations), the zone manager will generate n shares of the
zone private key and distribute them to the n servers
using a (t,n) Shamir secret sharing scheme [Sha79]. When the
zone data needs updating, (2t+1) servers are required to jointly
compute the DSA SIG RR [GJKR96b].
5 - Security considerations
This document proposes an architecture to allow a DNS zone to
provide secure online DNS dynamic update. It uses threshold
digital signature to maintain the role separation principle and can
also provide intrusion tolerance against both outside attackers
and inside attackers.
It should be noted that the authentication a DNS dynamic update
requestor and authorization of a update request, which is handled
elsewhere such as [RFC2535], is not dealt in this document,
6 - Acknowledgements
The authors wish to thank for many helpful discussions on the
DNSSEC mailing list and would like to give special thanks to
Yvo Desmedt.
7 - References
[DDB94] Y. Desmedt, G. Di Crescenzo, and M. Burmester.
``Multiplicative nonabelian sharing schemes and their
application to threshold cryptography''. In J. Pieprzyk
and R. SafaviNaini, editors, Advances in Cryptology -
Asiacrypt '94, volume 917 of Lecture Notes in Computer
Science, pages 21--32, Wollongong, Australia,
November/December 1994. Springer-Verlag.
[Des87] Y. Desmedt. ``Society and group oriented cryptography:
a new concept''. In C. Pomerance, editor, Advances in
Cryptology, Proc. of Crypto '87, volume 293 of Lecture
Notes in Computer Science, pages 120--127, Santa Barbara,
California, U.S.A., August 16--20, 1988. Springer-Verlag.
Wang, Huang & Rine [Page 7]
INTERNET-DRAFT June 2000
[Des94] Y. Desmedt. ``Threshold cryptography''. European Trans.
on Telecommunications, 5(4):449--457, July-August 1994.
[Des97] Y. Desmedt. ``Some recent research aspects of threshold
cryptography''. In E. Okamoto, G. Davida, and M. Mambo,
editors, Information Security, volume 1396 of Lecture
Notes in Computer Science, pages 158--173, Tatsunokuchi,
Ishikawa, Japan, September 1997. Springer-Verlag.
[DSA2] National Institute for Standards and Technology.
``Digital signature standard (DSS)'', February 2000.
[GJKR96b] R. Gennaro, S. Jarecki, H. Krawczyk, and T. Rabin.
``Robust threshold DSS signatures''. In U. Maurer,
editor, Advances in Cryptology - Eurocrypt '96,
volume 1070 of Lecture Notes in Computer Science,
pages 354-371, Zaragoza, Spain, May 12--16 1996.
Springer-Verlag.
[GMP] T. Granlund. ``GNU MP''. Source code available from
http://www.gnu.org/manual/gmp/index.html.
[Liu99] C. Liu. ``Securing an Internet name server''.
Presentation, 1999. Available at
http://www.acmebw.com/papers/securing.pdf.
[RFC1034] P. Mockapetris, ``Domain Names - Concepts and
Facilities,'' RFC 1034, ISI, November 1987.
[RFC1035] P. Mockapetris, ``Domain Names - Implementation and
Specification,'' RFC 1035, ISI, November 1987.
[RFC2136] P. Vixie (Ed.), S. Thomson, Y. Rekhter, J. Bound ``Dynamic
Updates in the Domain Name System,'' RFC 2136, ISC &
Bellcore & Cisco & DEC, April 1997.
[RFC2137] D. Eastlake ``Secure Domain Name System Dynamic Update,''
RFC 2137, CyberCash, April 1997.
[RFC2196] B. Fraser. ``Site Security Handbook,'' RFC2196, September
1997.
[RFC2535] D. Eastlake, ``Domain Name System Security Extensions,''
RFC 2535, IBM, March 1999.
[SBM99] R. Sandhu, V. Bhamidipati, and Q. Munawer. ``The ARBAC97
model for role-based administration of roles''. ACM
Transactions on Information System Security, 2(1):105-
135, February 1999.
[Sha79] A. Shamir. ``How to share a secret''. Commun. ACM,
22:612-613, November 1979.
Wang, Huang & Rine [Page 8]
INTERNET-DRAFT June 2000
8 - Author's Address
A postscript of this document is available from
http://www.cs.gmu.edu/~xwang4/dnssecureonline.ps
Send all comments to xwang4@cs.gmu.edu
Xunhua Wang
Department of Computer Science
George Mason University
Fairfax, VA 22030-4444
USA
Phone: +1-703-993-1536
Fax: +1-703-993-1710
EMail: xwang4@cs.gmu.edu
Yih Huang
Department of Computer Science
George Mason University
Fairfax, VA 22030-4444
USA
Phone: +1-703-993-1540
Fax: +1-703-993-1710
EMail: hyangyih@cs.gmu.edu
David Rine
Department of Computer Science
George Mason University
Fairfax, VA 22030-4444
USA
Phone: +1-703-993-1546
Fax: +1-703-993-1710
EMail: drine@cs.gmu.edu
9 - Full Copyright Statement
Copyright (C) The Internet Society (2000). All Rights Reserved.
This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain
it or assist in its implementation may be prepared, copied,
published and distributed, in whole or in part, without restriction
of any kind, provided that the above copyright notice and this
paragraph are included on all such copies and derivative works.
However, this document itself may not be modified in any way,
such as by removing the copyright notice or references to the
Wang, Huang & Rine [Page 9]
INTERNET-DRAFT June 2000
Internet Society or other Internet organizations, except as needed
for the purpose of developing Internet standards in which case
the procedures for copyrights defined in the Internet Standards
process must be followed, or as required to translate it into
languages other than English.
The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on
an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET
ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE."
Expires December 2000 [Page 10]
INTERNET-DRAFT Secure Online DNS Dynamic Update June 2000

View File

@ -0,0 +1,19 @@
This Internet-Draft has been deleted. Unrevised documents placed in the
Internet-Drafts directories have a maximum life of six months. After
that time, they are deleted. This Internet-Draft was not published as
an RFC.
Internet-Drafts are not an archival document series, and expired
drafts, such as this one, are not available; please do not ask for
copies... they are not available. The Secretariat does not have
information as to future plans of the authors or working groups WRT the
deleted Internet-Draft.
For more information or a copy of the document, contact the author directly.
Draft Author(s):
Y. Huang: huang@infonet.com