| <?xml version="1.0" encoding="UTF-8"?> |
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
| <html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head> |
| <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /> |
| <!-- |
| XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |
| This file is generated from xml source: DO NOT EDIT |
| XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |
| --> |
| <title>mod_crypto - Serveur HTTP Apache Version 2.5</title> |
| <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" /> |
| <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" /> |
| <link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" /> |
| <script src="../style/scripts/prettify.min.js" type="text/javascript"> |
| </script> |
| |
| <link href="../images/favicon.ico" rel="shortcut icon" /></head> |
| <body> |
| <div id="page-header"> |
| <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p> |
| <p class="apache">Serveur HTTP Apache Version 2.5</p> |
| <img alt="" src="../images/feather.png" /></div> |
| <div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> |
| <div id="path"> |
| <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">Serveur HTTP</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.5</a> > <a href="./">Modules</a></div> |
| <div id="page-content"> |
| <div id="preamble"><h1>Module Apache mod_crypto</h1> |
| <div class="toplang"> |
| <p><span>Langues Disponibles: </span><a href="../en/mod/mod_crypto.html" hreflang="en" rel="alternate" title="English"> en </a> | |
| <a href="../fr/mod/mod_crypto.html" title="Français"> fr </a></p> |
| </div> |
| <table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Support du chiffrement/déchiffrement symétrique</td></tr> |
| <tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr> |
| <tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>crypto_module</td></tr> |
| <tr><th><a href="module-dict.html#SourceFile">Fichier Source:</a></th><td>mod_crypto.c</td></tr> |
| <tr><th><a href="module-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.5 du serveur HTTP Apache</td></tr></table> |
| <h3>Sommaire</h3> |
| |
| <p>Ce module permet de <strong>chiffrer et déchiffrer</strong> les données au |
| niveau des piles de filtrage en entrée et en sortie.</p> |
| |
| <p>En particulier, il permet d'effectuer un <strong>chiffrement HLS à la |
| volée</strong> comme décrit dans le document <a href="http://www.ietf.org/id/draft-pantos-http-live-streaming-19.txt">draft-pantos-http-live-streaming-19</a>.</p> |
| |
| <p>Mais il peut aussi assurer la livraison sécurisée de données via un CDN |
| non sécurisé aux clients qui le supportent.</p> |
| |
| <p>Selon les besoins, on peut ajouter le filtre crypto à la pile de filtrage |
| en entrée ou en sortie via les directives <code class="directive"><a href="../mod/core.html#setinputfilter">SetInputFilter</a></code>, <code class="directive"><a href="../mod/core.html#setoutputfilter">SetOutputFilter</a></code>, <code class="directive"><a href="../mod/mod_mime.html#addoutputfilter">AddOutputFilter</a></code> ou <code class="directive"><a href="../mod/mod_filter.html#addoutputfilterbytype">AddOutputFilterByType</a></code>.</p> |
| |
| </div> |
| <div id="quickview"><h3>Sujets</h3> |
| <ul id="topics"> |
| <li><img alt="" src="../images/down.gif" /> <a href="#format">Format du flux de données</a></li> |
| <li><img alt="" src="../images/down.gif" /> <a href="#config">Clés et blocs IV</a></li> |
| <li><img alt="" src="../images/down.gif" /> <a href="#handler">Gestionnaire de clé de chiffrement</a></li> |
| <li><img alt="" src="../images/down.gif" /> <a href="#hls">HTTP Live Streaming (HLS)</a></li> |
| </ul><h3 class="directives">Directives</h3> |
| <ul id="toc"> |
| <li><img alt="" src="../images/down.gif" /> <a href="#cryptocipher">CryptoCipher</a></li> |
| <li><img alt="" src="../images/down.gif" /> <a href="#cryptodriver">CryptoDriver</a></li> |
| <li><img alt="" src="../images/down.gif" /> <a href="#cryptoiv">CryptoIV</a></li> |
| <li><img alt="" src="../images/down.gif" /> <a href="#cryptokey">CryptoKey</a></li> |
| <li><img alt="" src="../images/down.gif" /> <a href="#cryptosize">CryptoSize</a></li> |
| </ul> |
| <h3>Traitement des bugs</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">Journal des modifications de httpd</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&list_id=144532&product=Apache%20httpd-2&query_format=specific&order=changeddate%20DESC%2Cpriority%2Cbug_severity&component=mod_crypto">Problèmes connus</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&component=mod_crypto">Signaler un bug</a></li></ul><h3>Voir aussi</h3> |
| <ul class="seealso"> |
| <li><a href="../filter.html">Filtres</a></li> |
| <li><a href="#comments_section">Commentaires</a></li></ul></div> |
| <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> |
| <div class="section"> |
| <h2><a name="format" id="format">Format du flux de données</a> <a title="Lien permanent" href="#format" class="permalink">¶</a></h2> |
| |
| |
| <p>Le flux de données chiffrées comporte un bloc IV optionnel suivi des |
| données chiffrées avec l'algorithme de chiffrement choisi. Le bloc final est |
| éventuellement complété par bourrage avant d'être écrit. La taille des blocs |
| est déterminée par l'algorithme de chiffrement choisi.</p> |
| |
| <p>Lorsque le bloc IV est spécifié via la directive <code class="directive"><a href="#cryptoiv">CryptoIV</a></code>, il est utilisé, mais n'est pas |
| injecté dans le flux d'entrée/sortie.</p> |
| |
| </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> |
| <div class="section"> |
| <h2><a name="config" id="config">Clés et blocs IV</a> <a title="Lien permanent" href="#config" class="permalink">¶</a></h2> |
| |
| |
| <p>Les directives <code class="directive"><a href="#cryptokey">CryptoKey</a></code> et |
| <code class="directive"><a href="#cryptoiv">CryptoIV</a></code> acceptent comme |
| arguments des valeurs binaires qui peuvent être spécifiées comme indiqué |
| ci-après. Les bits les plus significatifs de ces valeurs sont utilisés, et |
| si les valeurs sont trop petites, elles sont complétées par bourrage avec |
| des bits à 0 par la gauche. |
| </p> |
| |
| <dl> |
| <dt>file:</dt><dd>La valeur est lue directement depuis le fichier spécifié.</dd> |
| <dt>hex:</dt><dd>Interprète l'expression en tant que valeur hexadécimale qui |
| peut contenir des caractères ':' comme séparateurs.</dd> |
| <dt>decimal:</dt><dd>Interprète l'expression en tant que valeur décimale.</dd> |
| <dt>base64:</dt><dd>Interprète l'expression en tant que valeur codée en |
| base64.</dd> |
| <dt>none</dt><dd>Aucune valeur n'est spécifiée.</dd> |
| </dl> |
| |
| <p>Si le IV n'est pas spécifié, un IV aléatoire sera généré au cours du |
| chiffrement et écrit comme premier bloc. Lors du déchiffrement, le premier |
| bloc sera interprété en tant que IV. |
| </p> |
| |
| <p>A l'exception du format file:, les directives <code class="directive"><a href="#cryptokey">CryptoKey</a></code> et <code class="directive"><a href="#cryptoiv">CryptoIV</a></code> supportent la <a href="../expr.html">syntaxe des expressions</a> qui fournit plus de |
| flexibilité pour définir les valeurs. Les clés et IVs peuvent ainsi être |
| initialisées aléatoirement via des valeurs disponibles au niveau du serveur |
| web comme REMOTE_USER ou l'URL. |
| </p> |
| |
| </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> |
| <div class="section"> |
| <h2><a name="handler" id="handler">Gestionnaire de clé de chiffrement</a> <a title="Lien permanent" href="#handler" class="permalink">¶</a></h2> |
| |
| |
| <p>Le gestionnaire <strong>crypto-key</strong> permet de fournir la clé aux |
| clients autorisés qui le supportent sans avoir à stocker cette dernière dans |
| l'arborescence du serveur web. La même <a href="../expr.html">syntaxe |
| d'expression</a> peut ainsi être utilisée afin d'obtenir la clé pour les |
| clients et pour le contenu chiffré.</p> |
| |
| <div class="example"><h3>Gestionnaire de clé de chiffrement avec un fichier</h3><p><code> |
| <Location /key><br /> |
| <span class="indent"> |
| SetHandler crypto-key<br /> |
| CryptoCipher aes128<br /> |
| CryptoKey file:/path/to/file.key<br /> |
| AuthType basic<br /> |
| ...<br /> |
| </span> |
| </Location><br /> |
| </code></p></div> |
| |
| </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> |
| <div class="section"> |
| <h2><a name="hls" id="hls">HTTP Live Streaming (HLS)</a> <a title="Lien permanent" href="#hls" class="permalink">¶</a></h2> |
| |
| |
| <p>Le protocole HLS supporte les flux chiffrés qui utilisent l'algorithme de |
| chiffrement AES-128 et une clé correspondante. On autorise l'accès au flux |
| en partageant la clé avec le client HLS en général via une connexion |
| sécurisée.</p> |
| |
| <p>Le IV utilisé pour le chiffrement de chaque segment de media est spécifié |
| dans HLS de deux manières :</p> |
| |
| <ul> |
| <li> |
| Spécifié explicitement via un attribut IV dans le tag EXT-X-KEY sous |
| la forme d'une valeur <strong>hexadécimale</strong>. |
| </li> |
| <li> |
| Spécifié implicitement en interprétant la valeur |
| <strong>décimale</strong> du tag EXT-X-MEDIA-SEQUENCE. |
| </li> |
| </ul> |
| |
| <p>La valeur de la séquence de media est en générale incorporée dans les |
| noms de segment de média et peut être recherchée en utilisant des |
| expressions rationnelles nommées comme dans l'exemple ci-dessous. |
| </p> |
| |
| <div class="example"><h3>Exemple HLS - IV de la séquence de média</h3><p><code> |
| <LocationMatch (?<SEQUENCE>[\d]+)[^\d^/]+$><br /> |
| <span class="indent"> |
| SetOutputFilter ENCRYPT<br /> |
| CryptoCipher aes128<br /> |
| CryptoKey file:/path/to/file.key<br /> |
| CryptoIV decimal:%{env:MATCH_SEQUENCE}<br /> |
| </span> |
| </LocationMatch><br /> |
| </code></p></div> |
| |
| </div> |
| <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> |
| <div class="directive-section"><h2><a name="cryptocipher" id="cryptocipher">Directive</a> <a name="CryptoCipher" id="CryptoCipher">CryptoCipher</a> <a title="Lien permanent" href="#cryptocipher" class="permalink">¶</a></h2> |
| <table class="directive"> |
| <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>L'algorithme de chiffrement que le filtre crypto doit utiliser</td></tr> |
| <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CryptoCipher name</code></td></tr> |
| <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>CryptoCipher aes256</code></td></tr> |
| <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire, .htaccess</td></tr> |
| <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> |
| <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_crypto</td></tr> |
| </table> |
| <p>La directive <code class="directive">CryptoCipher</code> permet de spécifier |
| l'algorithme de chiffrement à utiliser au cours des phases de chiffrement et |
| de déchiffrement. L'algorithme de chiffrement par défaut est |
| <code>aes256</code>.</p> |
| |
| <p>C'est le pilote crypto utilisé qui détermine l'étendue du choix des algorithmes de |
| chiffrement parmi les valeurs possibles suivantes :</p> |
| |
| <ul><li>3des192</li><li>aes128</li><li>aes192</li><li>aes256</li></ul> |
| |
| |
| </div> |
| <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> |
| <div class="directive-section"><h2><a name="cryptodriver" id="cryptodriver">Directive</a> <a name="CryptoDriver" id="CryptoDriver">CryptoDriver</a> <a title="Lien permanent" href="#cryptodriver" class="permalink">¶</a></h2> |
| <table class="directive"> |
| <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nom du pilote crypto à utiliser</td></tr> |
| <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CryptoDriver name</code></td></tr> |
| <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>CryptoDriver openssl</code></td></tr> |
| <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale</td></tr> |
| <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> |
| <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_crypto</td></tr> |
| </table> |
| <p>La directive <code class="directive">CryptoDriver</code> |
| permet de spécifier le nom du pilote crypto à utiliser. Un pilote recommandé |
| par défaut est en général défini pour chaque plateforme. Les pilotes |
| supportés sont <strong>openssl</strong>, <strong>commoncrypto</strong> et |
| <strong>nss</strong>.</p> |
| |
| </div> |
| <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> |
| <div class="directive-section"><h2><a name="cryptoiv" id="cryptoiv">Directive</a> <a name="CryptoIV" id="CryptoIV">CryptoIV</a> <a title="Lien permanent" href="#cryptoiv" class="permalink">¶</a></h2> |
| <table class="directive"> |
| <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Le Vecteur d'Initialisation IV (Initialisation Vector) que le |
| filtre crypto doit utiliser</td></tr> |
| <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CryptoIV value</code></td></tr> |
| <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>CryptoIV none</code></td></tr> |
| <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire, .htaccess</td></tr> |
| <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> |
| <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_crypto</td></tr> |
| </table> |
| <p>La directive <code class="directive">CryptoIV</code> permet de spécifier le IV |
| (Initialisation Vector) pour l'espace d'URL considéré. Le IV peut être lu à |
| partir d'un fichier ou défini via l'<a href="../expr.html">interpréteur |
| d'expressions</a>, ce qui confère plus de souplesse aux scénarios de |
| définition des clés.</p> |
| |
| <p>Les valeurs possibles peuvent être lues depuis un fichier ou exprimées |
| sous une forme hexadécimale, décimale ou en base64 en fonction des préfixes |
| suivants :</p> |
| |
| <ul><li>file:</li><li>hex:</li><li>decimal:</li><li>base64:</li></ul> |
| |
| <p>La valeur 'none' désactive la définition du IV. Dans ce cas, un IV |
| aléatoire sera généré durant le chiffrement et inséré en tant que premier |
| bloc ; au cours du déchiffrement, le premier bloc sera interprété comme bloc |
| IV.</p> |
| |
| </div> |
| <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> |
| <div class="directive-section"><h2><a name="cryptokey" id="cryptokey">Directive</a> <a name="CryptoKey" id="CryptoKey">CryptoKey</a> <a title="Lien permanent" href="#cryptokey" class="permalink">¶</a></h2> |
| <table class="directive"> |
| <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Clé que le filtre crypto doit utiliser</td></tr> |
| <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CryptoKey value</code></td></tr> |
| <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>CryptoKey none</code></td></tr> |
| <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire, .htaccess</td></tr> |
| <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> |
| <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_crypto</td></tr> |
| </table> |
| <p>La directive <code class="directive">CryptoKey</code> permet de spécifier la clé |
| de chiffrement/déchiffrement pour l'espace d'URL considéré. La clé peut être |
| lue depuis un fichier ou défini via l'<a href="../expr.html">interpréteur |
| d'expressions</a>, ce qui confère plus de souplesse aux scénarios de |
| définition des clés.</p> |
| |
| <p>Les valeurs possibles peuvent être lues depuis un fichier ou exprimées |
| sous une forme hexadécimale, décimale ou en base64 en fonction des préfixes |
| suivants :</p> |
| |
| <ul><li>file:</li><li>hex:</li><li>decimal:</li><li>base64:</li></ul> |
| |
| <p>La valeur 'none' désactive la clé. Toute requête pour obtenir sans clé un fichier |
| via les filtres ENCRYPT ou DECRYPT se soldera alors par un échec. </p> |
| |
| </div> |
| <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> |
| <div class="directive-section"><h2><a name="cryptosize" id="cryptosize">Directive</a> <a name="CryptoSize" id="CryptoSize">CryptoSize</a> <a title="Lien permanent" href="#cryptosize" class="permalink">¶</a></h2> |
| <table class="directive"> |
| <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Taille maximale en octets du tampon utilisé par le filtre crypto</td></tr> |
| <tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CryptoSize integer</code></td></tr> |
| <tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>CryptoSize 131072</code></td></tr> |
| <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire, .htaccess</td></tr> |
| <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr> |
| <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_crypto</td></tr> |
| </table> |
| <p>La directive <code class="directive">CryptoSize</code> permet |
| de spécifier la quantité de données en octets qui sera mise en tampon pour |
| chaque requête avant d'être chiffrée ou déchiffrée. La valeur par défaut est |
| 128 Ko.</p> |
| |
| </div> |
| </div> |
| <div class="bottomlang"> |
| <p><span>Langues Disponibles: </span><a href="../en/mod/mod_crypto.html" hreflang="en" rel="alternate" title="English"> en </a> | |
| <a href="../fr/mod/mod_crypto.html" title="Français"> fr </a></p> |
| </div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our <a href="https://httpd.apache.org/lists.html">mailing lists</a>.</div> |
| <script type="text/javascript"><!--//--><![CDATA[//><!-- |
| var comments_shortname = 'httpd'; |
| var comments_identifier = 'http://httpd.apache.org/docs/trunk/mod/mod_crypto.html'; |
| (function(w, d) { |
| if (w.location.hostname.toLowerCase() == "httpd.apache.org") { |
| d.write('<div id="comments_thread"><\/div>'); |
| var s = d.createElement('script'); |
| s.type = 'text/javascript'; |
| s.async = true; |
| s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier; |
| (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s); |
| } |
| else { |
| d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>'); |
| } |
| })(window, document); |
| //--><!]]></script></div><div id="footer"> |
| <p class="apache">Copyright 2025 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p> |
| <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/quickreference.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!-- |
| if (typeof(prettyPrint) !== 'undefined') { |
| prettyPrint(); |
| } |
| //--><!]]></script> |
| </body></html> |