\documentclass{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage{geometry}
\geometry{top=15mm, bottom=15mm, left=1cm, right=1cm}
\usepackage[french]{babel}
\usepackage{pslatex}
\usepackage[colorlinks=true,urlcolor=black]{hyperref}
\usepackage{graphicx}
\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\footrulewidth}{0.4pt}
\fancyfoot[L]{Uubu.fr}
\fancyfoot[R]{dim. sept. 1 11:13:22 CEST 2013}
\lfoot{\Large \textit{Uubu.fr}}
\hypersetup{pdfinfo={
Title={rfc4422},
Author={Sylvain Girod},
Creator={Bash script from uubu.fr's format version 1},
Producer={Bash script and PDFLaTeX},
Subject={Simple Authentication and Security Layer (SASL)},
CreationDate={D:20130901111322},
ModDate={D:20130901111322},
Keywords={sécurité;authentification}
}}
\begin{document}
 
\begin{center}
{\Huge rfc4422 }
\end{center}
\vspace{1cm}
 
\begin{flushleft}
 
{\large Simple Authentication and Security Layer (SASL)}
 
\vspace{10mm}
 
\hspace{1mm}  SASL est un framework fournissant des services d'authentification et de sécurité de données dans des protocoles orienté connexion utilisant des mécanismes remplaçable. SASL fournis une interface structurée entre les protocoles et les mécanismes. SASL fournis également un protocole pour sécuriser les échanges. SASL est conçu pour permettre à de nouveaux protocoles de réutiliser les mécanismes existants.
\vspace{5mm} \\
 
 
\hspace{1mm}  SASL fournis une couche d'abstraction entre les protocoles et les mécanismes. Pour utiliser SASL, chaque protocole fournis une méthode pour identifier le mécanisme à utiliser, une méthode pour échanger les challenges et une méthode pour la communication. Chaque mécanisme SASL définis une série de server-challenge et client-response qui fournissent les services d'authentification et de négociation de sécurisation des données.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Concept d'identité }
 
\
 
\hspace{1mm}  SASL nécessite 2 identités:
\vspace{5mm} \\
 
 
\begin{description} \normalsize
\item[\hspace{1mm} 1)]{L'identité associé avec les accréditifs ( authentication identity )}
\item[\hspace{1mm} 2)]{L'identité qui agis en tant que ( authorization identity )}
\end{description}
 
\hspace{1mm}  Le client fournis ses accréditifs ( qui inclus ou implique un authentication identity) et optionnellement, une chaîne de caractère représentant l'authorization identity. Quand cette chaîne est omis ou vide, le client agis comme identité associé avec les accréditifs.
\vspace{5mm} \\
 
 
\hspace{1mm}  Le serveur vérifie les accréditifs du clients et vérifie que l'identité qu'il associe avec les accréditifs du client (authorization idenity) a le droit d'agir comme authorization identity. Si une des vérifications échoue, l'échange SASL échoue.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Échange d'authentification }
 
\
 
\hspace{1mm}  Chaque échange d'authentification consiste d'un message du client vers le serveur demandant une authentification via un mécanisme particulier, suivi par une ou plusieurs paires de challenges du serveur et de réponse du client, suivis par un message du serveur indiquant la sortie de l'échange d'authentification.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Exemple d'échange }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} C:]{Request authentication exchange}
\item[\hspace{1mm} S:]{Initial challenge}
\item[\hspace{1mm} C:]{Initial response}
\item[\hspace{1mm} ]{<additional challenge/response messages>}
\item[\hspace{1mm} S:]{Outcome of authentication exchange}
\end{description}
 
\hspace{1mm}  Certains mécanismes spécifient que le client envoie une réponse initiale dans la requête. Plusieurs variantes sont possible.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Nommage des mécanismes }
 
\
 
\hspace{1mm} les mécanismes SASL sont nommés par des chaînes de caractère, de 1 à 20 caractère de long, en ASCII noté (ABNF) :
 
{\ttfamily
sasl-mech = 1*20mech-char\\ mech-char = UPPER-ALPHA / DIGIT / HYPHEN / UNDERSCORE\\ \hspace{2mm}\\ UPPER-ALPHA = \%x41-5A ; A-Z (uppercase only)\\ DIGIT = \%x30-39 ; 0-9\\ HYPHEN = \%x2D ; hyphen (-)\\ UNDERSCORE = \%x5F ; underscore (\_)\\
}
\vspace{8mm}
 
\vspace{1cm}{\huge Négociation de mécanisme }
 
\
 
\hspace{1mm}  La négociation des mécanismes est spécifique au protocole. Généralement, un protocole spécifie que le serveur avertis le client des mécanismes disponibles et supportés. Le client choisira le meilleur protocole de cette liste qu'il supporte.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Demande d'échange d'authentification }
 
\
 
\hspace{1mm}  L'échange d'authentification est initié par le client en demandant une authentification via le mécanisme qu'il spécifie. Le client envoie une message contenant le nom du mécanisme au serveur. Les particularité du message sont spécifiques au protocole. Noter que le nom du mécanisme n'est pas protégé par le mécanisme.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Challenges and Responses }
 
\
 
\hspace{1mm}  Les challenges et réponse sont imbriqués dans des messages de protocole. Le mécanisme peut être:
\vspace{5mm} \\
 
 
\begin{description} \normalsize
\item[\hspace{1mm} -]{Authentifier le client auprès du serveur}
\item[\hspace{1mm} -]{authentifier le serveur auprès du client}
\item[\hspace{1mm} -]{Transférer une chaîne authorization identity}
\item[\hspace{1mm} -]{Négocier une couche de sécurité}
\item[\hspace{1mm} -]{Fournir d'autres services.}
\end{description}
 
\hspace{1mm}  La négociation de couche de sécurité implique la négociation de services de sécurité à fournir dans la couche et comment ces services sont fournis. Après avoir reçu une requête d'authentification ou une réponse d'un client, le serveur peut fournir un challenge, annuler l'échange, ou indiquer la sortie de l'échange. Après avoir reçu un challenge, un mécanisme client peut fournir une réponse ou annuler l'échange.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Chaîne d'identité d'authorisation }
 
\
 
\hspace{1mm}  Cette chaîne est une séquence de caractères unicode représentant l'identité qui qui agis en tant que. Si cette chaîne est absente, le demandeur agis en tant qu'identité que le serveur associe avec les accréditifs du client. Une chaîne non vide indique que le client souhaite agir en tant qu'identité représentée par la chaîne.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Annuler l'échange }
 
\
 
\hspace{1mm}  Un client ou un serveur peut annuler l'échange.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Fin de l'authentification }
 
\
 
\hspace{1mm}  La conclusion de l'échange, le serveur envoie un message spécifique au protocole, au client indiquant la sortie de l'échange. La sortie est un échec si:
\vspace{5mm} \\
 
 
\begin{description} \normalsize
\item[\hspace{1mm} -]{L'échange d'authentification a échoué pour une quelconque raison}
\item[\hspace{1mm} -]{Les accréditifs du client n'ont pu être vérifiés}
\item[\hspace{1mm} -]{Le serveur ne peut associer une identité avec les accréditifs du client}
\item[\hspace{1mm} -]{L'authorization Identity fournie est mal formaté}
\item[\hspace{1mm} -]{L'identité associé avec les accréditifs du client n'est pas autorisé à agir en tant qu'authorization identity}
\item[\hspace{1mm} -]{La couche sécurité demandée (ou son absence) n'est pas disponible et n'est pas utilisable par le client et/ou le serveur}
\end{description}
 
\hspace{1mm}  Le protocole peut inclure des données additionnelles dans le message.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Couches de sécurité }
 
\
 
\hspace{1mm}  Les mécanismes SASL peuvent offrir une grande variété de services dans les couches de sécurité, incluant l'intégrité des données et la confidentialité des données. Si la couche de sécurité est négociée dans l'échange, la couche n'est installée par le serveur qu'après le message de sortie d'échange.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Authentification multiple }
 
\
 
\hspace{1mm}  Sans être explicitement permis dans le protocole, seul un échange d'authentification réussis peut se produire dan une sessions. Quand plusieurs authentifications sont permis, en aucun cas il ne peut y avoir plusieurs couche de sécurité simultanés. Si une couche de sécurité est effective, et qu'une seconde négociation sélectionne une autre couche de sécurité, la seconde couche remplace la première.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Protocol requirements }
 
\
 
\hspace{1mm}  Pour qu'un protocole offre des services SASL, ses spécifications doivent fournir les informations suivantes:
\vspace{5mm} \\
 
 
\begin{description} \normalsize
\item[\hspace{1mm} 1)]{un nom de service, à sélectionner du registre de services pour la forme de nom de service basé sur l'hôte GSSAPI.}
\item[\hspace{1mm} 2)]{Détail des négociations de mécanisme que le protocole fournis.}
\item[\hspace{1mm} 3)]{Définition des messages nécessaires pour l'échange d'authentification}
\item[\hspace{1mm} 4)]{Décrire la syntaxe de chaîne d'authorization identity non-vide}
\item[\hspace{1mm} 5)]{Détailler les facilité que le protocole fournis qui permettent au client/serveur d'annuler un échange}
\item[\hspace{1mm} 6)]{Identifier précisément où les couches de sécurité nouvellement négociée prenent effet.}
\item[\hspace{1mm} 7)]{Si le protocole supporte d'autres couche de sécurité tel que TLS, la spécification doit décrire l'ordre dans lequel les couches de sécurité sont appliquées dans les données du protocole}
\item[\hspace{1mm} 8)]{indiquer si le protocole supporte l'authentification multiple}
\end{description}
 
\vspace{1cm}{\huge Mechanism requirement }
 
\
 
\hspace{1mm}  Les spécification des mécanisme doivent fournir les informations suivantes:
\vspace{5mm} \\
 
 
\begin{description} \normalsize
\item[\hspace{1mm} 1)]{le nom du mécanisme}
\item[\hspace{1mm} 2)]{Si le mécanisme est client-first ou server-first.}
\item[\hspace{1mm} 3)]{si le serveur doit fournir des données additionnelles en indiquant une sortie réussie}
\item[\hspace{1mm} 4)]{Si le mécanisme est capable de transférer l'authorization identity}
\item[\hspace{1mm} 5)]{Si le mécanisme offre une couche de sécurité}
\item[\hspace{1mm} 6)]{si la technologie cryptographique utilisée supporte l'intégrité des données}
\end{description}
\end{flushleft}
\end{document}
