<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
     "dtd/xml/4.1.2/docbookx.dtd"[
<!ENTITY % afnic_custom SYSTEM "../../lib/afnic-docbook.inc">
%afnic_custom;
]>
<!-- $Id: ndi.db,v 1.2 2003-10-20 12:57:21 bortzmeyer Exp $ -->
<article lang="fr">
  <articleinfo>
    <title>NDI (Noms de Domaines Internationaux)</title>
    <author>
      <surname>Bortzmeyer</surname>
      <firstname>Stéphane</firstname>
      <affiliation>
	<address><email>bortzmeyer@nic.fr</email></address>
      </affiliation>
    </author>
    <pubdate>$Date: 2003-10-20 12:57:21 $</pubdate>
  </articleinfo>
  <section><title>Généralités</title>
    <para><ulink url="http://www.i-d-n.net/">NDI</ulink> (IDN en anglais)
      permet d'utiliser tous les caractères<footnote><para>Il permet
	  également d'utiliser des symboles qui ne sont pas des
	  caractères, comme les idéogrammes.</para>
      </footnote>de toutes les écritures
      humaines dans vos noms de domaine. Le protocole DNS a permis des
      caractères non-ASCII depuis le début mais l'usage est de limiter
      les noms de domaine à un sous-ensemble d'ASCII (lettres,
      chiffres et trait d'union). </para>
    <para>Pour avoir des noms de domaine correctement écrits dans votre
      langue, il a fallu un certain travail technique. L'IETF a décidé
      de ne pas changer le protocole DNS mais de faire porter l'effort
      sur les applications, qui doivent donc transformer le NDI en
      ASCII (on parle en anglais de IDNA et en français de NDIA - Nom
      de Domaine International dans les Applications).</para>
    <para>Le jeu de caractères utilisé par NDIA est <ulink
	url="http://www.unicode.org/">Unicode</ulink><footnote><para>Un
	  cours Unicode en Français <ulink
	    url="http://www.nic.fr/formation/supports/formation-unicode/">est disponible</ulink>.</para>
      </footnote>.</para>
    <para>La norme IETF existante est contenue dans quatre RFC :
      <itemizedlist>
	<listitem><para><rfc num="3490"/>, "Internationalizing Domain
	    Names in Applications (IDNA)" définit le protocole
	    général.</para><para>Comme son nom l'indique, tout le travail
	    doit être effectué par les applications (navigateur Web,
	    logiciel de courrier, etc). Sur les câbles, dans le fichier de
	    zone, on ne trouve que de l'ASCII US.</para>
	</listitem>
	<listitem><para><rfc num="3454"/>, "Preparation of
	    Internationalized Strings ("stringprep")" et <rfc num="3491"/>,
	    "Nameprep: A Stringprep Profile for Internationalized Domain
	    Names (IDN)", décrivent les étapes que doit accomplir une
	    application quant elle traite un NDI. Les applications doivent
	    réduire les NDI Unicode à une forme canonique avant, par
	    exemple, de tester l'unicité.</para>
	  <para>Par exemple, en allemand, "maße" et "masse" seront un
	    seul et unique mot, après réduction à la forme canonique par
	    nameprep. En français,  "CAFÉ" et
	    "café" seront le même (mais pas "CAFE" qui est une orthographe
	    incorrecte).</para>
	</listitem>
	<listitem><para><rfc num="3492"/>, "Punycode: A Bootstring encoding of Unicode
	    for Internationalized Domain Names in Applications (IDNA)"
	    normalise l'encodage utilisé. Les noms Unicode, réduits à leur
	    forme canonique par nameprep, sont transformés en ASCII (ACE:
	    ASCII Compatible Encoding). Ces noms ACE commencent tous par le
	    préfixe "xn--". Par exemple, "stéphane.org" deviendra <computeroutput>xn--stphane-cya.org</computeroutput>.</para>
	</listitem>
      </itemizedlist>
      Toutes ces transformations peuvent être testées en ligne, à <ulink
	url="http://tac.eureg.org/idn.cgi">EUREG</ulink>, <ulink
	url="http://oss.software.ibm.com/cgi-bin/icu/idnademo">IBM</ulink>
      ou bien chez  <ulink
	url="http://josefsson.org/idn.php/">Josefsson</ulink>.</para>
  </section>
  <section><title>Politique d'enregistrement</title>
    <para>Un registre qui veut enregistrer des NDI devra répondre à
      certaines questions liées à sa politique d'enregistrement des
      noms. Par exemple :
      <itemizedlist>
	<listitem><para>Acceptez vous que deux variantes (deux noms qui sont
	    identiques, selon les règles d'un langage particulier mais
	    différents pour la norme NDI (<rfc num="3490"/>) soient
	    enregistrés par des titulaires différents ?</para>
	</listitem>
	<listitem><para>Acceptez-vous tous les caractères d'Unicode ou bien
	    juste un sous-ensemble, qui convient à la (aux) langue(s)
	    utilisée(s) localement ?</para>
	</listitem>
      </itemizedlist>
      Le forum le plus approprié pour discuter de ces questions est la <ulink
	url="http://www.imc.org/idn-reg-policy/index.html">liste idn-reg-policy
	mailing list</ulink>.</para>
  </section>
  <section><title>Outils</title>
    <para>Vous pouvez enregistrer des NDI sans aucun outil. Il suffit de
      stocker la chaine ACE dans votre base de données. Néanmoins,
      vous aurez probablement envie de pouvoir faire des conversions
      entre Unicode et ACE vous-même (après tout, le vrai nom de
      domaine est celui en Unicode, l'ACE n'est qu'un compromis
      temporaire). Ou bien vous voudrez mettre en oeuvre les lots
      (l'ensemble des variantes d'un nom de domaine enregistré). Dans
      ces cas, vous devrez programmer un peu.
      <itemizedlist>
	<listitem><para><ulink
	      url="http://www.josefsson.org/libidn/">GNU libidn</ulink>, une
	    mise en oeuvre en logiciel libre des NDI. Plus rien à écrire.</para>
	</listitem>
      </itemizedlist></para>
  </section>
</article>
