\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. oct. 27 20:10:47 CET 2013}
\lfoot{\Large \textit{Uubu.fr}}
\hypersetup{pdfinfo={
Title={rfc3112},
Author={Sylvain Girod},
Creator={Bash script from uubu.fr's format version 1},
Producer={Bash script and PDFLaTeX},
Subject={Schéma de mot de passe d'authentification},
CreationDate={D:20131027201047},
ModDate={D:20131027201047},
Keywords={LDAP;Lightweight Directory Access Protocol}
}}
\begin{document}
 
\begin{center}
{\Huge rfc3112 }
\end{center}
\vspace{1cm}
 
\begin{flushleft}
 
{\large Schéma de mot de passe d'authentification}
 
\vspace{10mm}
 
\hspace{1mm}  L'attribut \textbf{userPassword} est conçu pour utiliser l'opération simple bind password. Cependant les valeurs de \textbf{userPassword} doivent être des mots de passe en texte clair. L'attribut \textbf{authPassword} est conçus pour stocker des informations utilisées pour implémenter une authentification par mot de passe simple. L'attribut supporte plusieurs schéma de stockage. Une règle de correspondance est fournie pour l'utilisation avec des filtres de recherche qui permettent aux clients d'affirmer qu'un mot de passe matche une des valeurs de l'attribut.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Définition du schéma }
 
\
 
{\ttfamily
( 1.3.6.1.4.1.4203.1.1.2 DESC 'authentication password syntax' )\\
}
\vspace{8mm}
 
\hspace{1mm} Les valeurs de cette syntaxe sont encodées en accord avec:
 
{\ttfamily
authPasswordValue = w scheme s authInfo s authValue w\\ scheme = \%x30-39 / \%x41-5A / \%x2D-2F / \%x5F ; 0-9, A-Z, "-", ".", "/", or "\_"\\ authInfo = schemeSpecificValue\\ authValue = schemeSpecificValue\\ schemeSpecificValue = *( \%x21-23 / \%x25-7E ) ; printable ASCII less "\$" and " "\\ s = w SEP w\\ w = *SP\\ SEP = \%x24 ; "\$"\\ SP = \%x20 ; " " (space)\\
}
\vspace{8mm}
 
\hspace{1mm}  où \textbf{scheme} décrit le mécanisme et \textbf{authInfo} et \textbf{authValue} sont spécifique au schéma. \textbf{authInfo} est souvent un salt encodé en base64. \textbf{authValue} est souvent un dérivé de mot de passe encodé en base 64.
\vspace{5mm} \\
 
 
\begin{description} \normalsize
\item[\hspace{1mm} authPasswordExactMatch]{Règle de correspondance qui permet à un client d'affirmer une valeur authPasswordSyntax (règle d'égalité)}
\item[\hspace{1mm} authPasswordMatch]{Règle de correspondance qui permet à un client d'affirmer qu'un mot depasse match un authPasswordSyntax en utilisant un filtre extensibleMatch.}
\item[\hspace{1mm} supportedAuthPasswordSchemes]{Les valeurs de cet attribut sont des noms de schéma de mot de passe supportés par le serveur}
\item[\hspace{1mm} authPassword]{Les valeurs de cet attribut représentent les mots de passe de l'utilisateur}
\item[\hspace{1mm} authPasswordObject]{Les entrées de cet classe d'objet peuvent contenir un attribut authPassword}
\end{description}
 
\hspace{1mm} authPasswordExactMatch
 
{\ttfamily
( 1.3.6.1.4.1.4203.1.2.2\\ \hspace{2mm}NAME 'authPasswordExactMatch'\\ \hspace{2mm}DESC 'authentication password exact matching rule'\\ \hspace{2mm}SYNTAX 1.3.6.1.4.1.4203.1.1.2 )\\
}
\vspace{8mm}
 
\hspace{1mm} authPasswordMatch
 
{\ttfamily
( 1.3.6.1.4.1.4203.1.2.3\\ \hspace{2mm}NAME 'authPasswordMatch'\\ \hspace{2mm}DESC 'authentication password matching rule'\\ \hspace{2mm}SYNTAX 1.3.6.1.4.1.1466.115.121.1.40\{128\} )\\
}
\vspace{8mm}
 
\hspace{1mm} supportedAuthPasswordSchemes
 
{\ttfamily
( 1.3.6.1.4.1.4203.1.3.3\\ \hspace{2mm}NAME 'supportedAuthPasswordSchemes'\\ \hspace{2mm}DESC 'supported password storage schemes'\\ \hspace{2mm}EQUALITY caseExactIA5Match\\ \hspace{2mm}SYNTAX 1.3.6.1.4.1.1466.115.121.1.26\{32\}\\ \hspace{2mm}USAGE dSAOperation )\\
}
\vspace{8mm}
 
\hspace{1mm} authPassword
 
{\ttfamily
( 1.3.6.1.4.1.4203.1.3.4 NAME 'authPassword'\\ \hspace{2mm}DESC 'password authentication information'\\ \hspace{2mm}EQUALITY 1.3.6.1.4.1.4203.1.2.2\\ \hspace{2mm}SYNTAX 1.3.6.1.4.1.4203.1.1.2 )\\
}
\vspace{8mm}
 
\hspace{1mm} authPasswordObject
 
{\ttfamily
( 1.3.6.1.4.1.4203.1.4.7 NAME 'authPasswordObject'\\ \hspace{2mm}DESC 'authentication password mix in class'\\ \hspace{2mm}MAY 'authPassword'\\ \hspace{2mm}AUXILIARY )\\
}
\vspace{8mm}
 
\vspace{1cm}{\huge schéma MD5 }
 
\
 
\hspace{1mm}  \textbf{authValue} est le MD5 digest encodé base64 de la concaténation du mot de passe et du salt. L'encodage base 64 est fournis dans \textbf{authInfo}. Le salt doit faire 64 bits minimum.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge schéma SHA1 }
 
\
 
\hspace{1mm}  \textbf{authValue} est le digest SHA1 encodé base64 de la concaténation du mot de passe et du salt. L'encodage base 64 est fournis dans \textbf{authInfo} Le salt doit faire 64 bits minimum.
\vspace{5mm} \\
 
 
\vspace{1cm}{\huge Problèmes d'implèmentation }
 
\
 
\hspace{1mm}  Les serveurs peuvent restreindre le schéma utilisé en conjonction avec un processus d'authentification particulier. Les serveurs peuvent utiliser d'autres mécanismes de stockage, tel que \textbf{userPassword} ou un stockage externe, en conjonction avec \textbf{authPassword}.
\vspace{5mm} \\
 
 
\hspace{1mm}  Les serveurs qui supportent le simple bind doivent supporter SHA1 et devraient supporter MD5.
\vspace{5mm} \\
 
 
\hspace{1mm}  Les serveurs ne devraient pas publier ou initier des opérations sur les valeurs de \textbf{authPassword} ni permettre des opérations qui exposent \textbf{authPassword} ou les assertions \textbf{authPasswordMatch} à moins qu'une protection de confidentialité soit en place.
\vspace{5mm} \\
 
 
\hspace{1mm}  Les serveur ne devraient pas assumer qu'un \textbf{AuthPasswordMatch} réussi, soit par compare ou par search, est suffisant pour avoir accès à l'annuaire. L'opération bind doit être utilisé pour authentifier l'annuaire.
\vspace{5mm} \\
 
\end{flushleft}
\end{document}
