<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Ta vie on s'en fout! &#187; cryptage</title>
	<atom:link href="http://tavie.onsenfout.com/tag/cryptage/feed/" rel="self" type="application/rss+xml" />
	<link>http://tavie.onsenfout.com</link>
	<description>Mon bazar techno-miam</description>
	<lastBuildDate>Mon, 03 May 2010 20:06:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Mise en place de Webdav / SSL sur Debian</title>
		<link>http://tavie.onsenfout.com/2008/04/24/mise-en-place-de-webdav-ssl-sur-debian/</link>
		<comments>http://tavie.onsenfout.com/2008/04/24/mise-en-place-de-webdav-ssl-sur-debian/#comments</comments>
		<pubDate>Wed, 23 Apr 2008 23:18:16 +0000</pubDate>
		<dc:creator>François</dc:creator>
				<category><![CDATA[Bits]]></category>
		<category><![CDATA[administration]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[cacert]]></category>
		<category><![CDATA[certificats]]></category>
		<category><![CDATA[cryptage]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[httpasswd]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[sécurité]]></category>
		<category><![CDATA[ssl]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[webdav]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://tavie.onsenfout.com/?p=63</guid>
		<description><![CDATA[Testé sur Debian testing &#171;&#160;Lenny&#160;&#187; Ce memo me sert pour configurer WebDAV avec cryptage SSL sur un serveur Apache. J&#8217;utilise WebDAV pour offrir un accès fichiers aux webmasters des sites que j&#8217;héberge, c&#8217;est plus souple et plus sûr que le FTP. Cette config est très basique, Webdav permet un paramétrage très fin des autorisations, notamment [...]]]></description>
			<content:encoded><![CDATA[<p><small>Testé sur Debian testing &laquo;&nbsp;Lenny&nbsp;&raquo;</small></p>
<p>Ce memo me sert pour configurer WebDAV avec cryptage SSL sur un serveur Apache. J&#8217;utilise WebDAV pour offrir un accès fichiers aux webmasters des sites que j&#8217;héberge, c&#8217;est plus souple et plus sûr que le FTP. Cette config est très basique, Webdav permet un paramétrage très fin des autorisations, notamment avec la directive &lt;Limit &#8230;&gt;</p>
<p><span id="more-63"></span>Une des contraintes de Webdav est que le serveur Apache doit avoir les droits en lecture-écriture sur tous les répertoires et fichiers partagés. Il faut donc veiller à ce que le user sous lequel s&#8217;exécute Apache (www-data dans mon cas) en reste propriétaire. C&#8217;est pourquoi les concepteurs de Webdav recommandent de ne pas utiliser d&#8217;autre protocole pour accéder à ces fichiers. C&#8217;est à mon humble avis un peu excessif, mais il faut y faire attention, un upload fait par SSH ou FTP n&#8217;aura probablement pas les bons droits.</p>
<h3>Requis</h3>
<ul>
<li>Apache 2</li>
<li>Openssl</li>
<li>Un compte sur <a href="http://www.cacert.org" target="_blank">cacert.org</a></li>
</ul>
<h3>Installer les modules Apache</h3>
<p class="code">&gt; a2enmod ssl<br />
&gt; a2enmod dav<br />
&gt; a2enmod dav_fs<br />
&gt; a2enmod dav_lock<br />
&gt; a2enmod rewrite<br />
&gt; /etc/init.d/apache2 force-reload</p>
<h3>Générer le certificat SSL</h3>
<p>Dans le répertoire /etc/ssl/private :</p>
<p class="code">&gt; openssl req -nodes -new -keyout mondomaine.key -out mondomaine.csr</p>
<p>On peut passer toutes les questions sauf &laquo;&nbsp;Common Name (eg, YOUR name)&nbsp;&raquo;, où il ne faut surtout pas mettre son nom mais le nom du domaine.</p>
<p class="code">&gt; cat mondomaine.csr</p>
<p>Copier la sortie dans le presse-papier<br />
Sur le site cacert.org aller sur Certificat de domaine / Nouveau<br />
Demander un certificat de classe 3<br />
Coller le csr<br />
Récupérer le certificat dans le presse-papier et le coller dans /etc/ssl/private/mondomaine.crt</p>
<p>finir par :</p>
<p class="code">&gt; chmod 600 mondomaine.*</p>
<p>Recopier le certificat racine CACert Classe 3 dans le magasin de certificats /etc/ssl/certs sous le nom cacert_class3.crt</p>
<p>Il est aussi possible d&#8217;utiliser un certificat autosigné, comme <a href="http://www.keliglia.com/categorie/divers/1993/">expliqué ici</a> par exemple. L&#8217;avantage du certificat CACert est qu&#8217;il est issu d&#8217;une autorité certes non commerciale mais reconnue. Si le certificat racine de CACert n&#8217;est pas présent sur les postes clients on peut le télécharger <a href="http://www.cacert.org/index.php?id=3" target="_blank">ici</a></p>
<h3>Configurer Apache</h3>
<p style="text-align: left;"><span style="font-size: 10pt;"><strong><span style="color: #800000;">Attention, un seul serveur virtuel SSL par adresse IP!</span></strong></span></p>
<p>Hors serveur virtuel, ajouter les directives :</p>
<p class="code">NameVirtualHost *:80<br />
NameVirtualHost *:443<br />
DAVMinTimeout 600<br />
DAVDepthInfinity On</p>
<p>Dès qu&#8217;on a mis en place le SSL, il faut que <strong>tous</strong> les serveurs virtuels soient assignés à un port, 80 pour http ou 443 pour https.</p>
<p>ex :</p>
<p class="code">&lt;VirtualHost *:80&gt;<br />
&#8230;<br />
&lt;/VirtualHost&gt;</p>
<h3>Déclarer le serveur virtuel</h3>
<p>On crée le fichier /etc/apache2/sites-availables/webdav :</p>
<p class="code">&lt;VirtualHost *:80&gt;<br />
ServerName mondomaine<br />
# Force SSL<br />
RewriteEngine on<br />
RewriteCond %{HTTPS} !=on [NC]<br />
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]<br />
&lt;/VirtualHost&gt;<br />
&lt;VirtualHost *:443&gt;<br />
ServerName mondomaine<br />
ServerAdmin webmaster@mondomaine<br />
SSLEngine On<br />
SSLCACertificateFile /etc/ssl/certs/cacert_class3.crt<br />
SSLCertificateFile /etc/ssl/private/mondomaine.crt<br />
SSLCertificateKeyFile /etc/ssl/private/mondomaine.key<br />
DocumentRoot /var/www<br />
&lt;Directory /&gt;<br />
Options -Indexes FollowSymLinks<br />
AllowOverride none<br />
&lt;/Directory&gt;<br />
&lt;Directory /var/www/site1&gt;<br />
Options Indexes<br />
AllowOverride none<br />
Order allow,deny<br />
allow from all<br />
DAV on<br />
AuthName &laquo;&nbsp;Administration site Site 1&#8243;<br />
AuthType Basic<br />
AuthUserFile /etc/apache2/htpasswd-webdav<br />
&lt;Limit GET POST PROPFIND PUT DELETE PROPPATCH MKCOL COPY MOVE LOCK UNLOCK&gt;<br />
Require user utilisateur1<br />
&lt;/Limit&gt;<br />
&lt;/Directory&gt;<br />
&lt;Directory /var/www/site2&gt;<br />
Options Indexes<br />
AllowOverride none<br />
Order allow,deny<br />
allow from all<br />
DAV on<br />
AuthName &laquo;&nbsp;Administration site Site 2&#8243;<br />
AuthType Basic<br />
AuthUserFile /etc/apache2/htpasswd-webdav<br />
&lt;Limit GET POST PROPFIND PUT DELETE PROPPATCH MKCOL COPY MOVE LOCK UNLOCK&gt;<br />
Require user utilisateur2<br />
&lt;/Limit&gt;<br />
&lt;/Directory&gt;<br />
ErrorLog syslog<br />
LogLevel warn<br />
CustomLog /var/log/apache2/access_dav.log combined<br />
&lt;/VirtualHost&gt;</p>
<h3>Créer la base utilisateurs</h3>
<p class="code">&gt; htpasswd -c /etc/apache2/htpasswd-webdav utilisateur1<br />
New password:<br />
Re-type new password:<br />
Adding password for user utilisateur1<br />
&gt; htpasswd /etc/apache2/htpasswd-webdav utilisateur2<br />
New password:<br />
Re-type new password:<br />
Adding password for user utilisateur2</p>
<h3>Donner les droits d&#8217;accès à Apache</h3>
<p class="code">&gt; chown www-data /etc/apache2/htpasswd-webdav<br />
&gt; chmod 660 /etc/apache2/htpasswd-webdav</p>
<h3>Configurer le firewall</h3>
<p>Ouvrir le port TCP 443</p>
<h3>Le moment de vérité!</h3>
<p>on active le site :</p>
<p class="code">&gt; a2ensite webdav<br />
&gt; /etc/init.d/apache2 reload</p>
<p>S&#8217;il n&#8217;y a pas d&#8217;erreur il ne reste plus qu&#8217;a tester le partage avec un client Webdav : Dossiers Web sous Windows, le kio webdavs:// avec Konqueror (attention webdav:// ne fonctionne pas en SSL), le client intégré à Mac OS X, etc&#8230;</p>
<h3>Liens</h3>
<p><a href="http://www.webdav.org/">Le site officiel webdav</a></p>
]]></content:encoded>
			<wfw:commentRss>http://tavie.onsenfout.com/2008/04/24/mise-en-place-de-webdav-ssl-sur-debian/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Utilisation basique de GnuPG pour crypter et décrypter des fichiers</title>
		<link>http://tavie.onsenfout.com/2007/11/12/utilisation-basique-de-gnupg-pour-crypter-et-decrypter-des-fichiers/</link>
		<comments>http://tavie.onsenfout.com/2007/11/12/utilisation-basique-de-gnupg-pour-crypter-et-decrypter-des-fichiers/#comments</comments>
		<pubDate>Mon, 12 Nov 2007 14:13:56 +0000</pubDate>
		<dc:creator>François</dc:creator>
				<category><![CDATA[Bits]]></category>
		<category><![CDATA[cryptage]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[sécurité]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://tavie.onsenfout.com/2007/11/12/utilisation-basique-de-gnupg-pour-crypter-et-decrypter-des-fichiers/</guid>
		<description><![CDATA[GnuPG (ou GPG) est un logiciel de cryptographie complet qui implémente la norme OpenPGP. Les possibilités de GnuPG dépassent largement le cadre de ce billet, ceux qui veulent approfondir le sujet se réjouiront de la doc officielle. GnuPG est préinstallé sous Debian et Ubuntu ainsi qu&#8217;avec la majorité des distributions Linux je crois. Le projet [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.gnupg.org/" title="GnuPG" target="_blank">GnuPG</a> (ou GPG) est un logiciel de cryptographie complet qui implémente la norme OpenPGP. Les possibilités de GnuPG dépassent largement le cadre de ce billet, ceux qui veulent approfondir le sujet se réjouiront de la <a href="http://www.gnupg.org/(fr)/documentation/manuals/gnupg/" title="Documentation GnuPG" target="_blank">doc officielle</a>.</p>
<p>GnuPG est préinstallé sous Debian et Ubuntu ainsi qu&#8217;avec la majorité des distributions Linux je crois. Le projet <a href="http://www.gpg4win.org/" title="Gpg4win">Gpg4win</a> fournit un programme d&#8217;installation pour Windows qui inclus GnuPG et différents modules complémentaires. Les commandes de gpg sont les mêmes dans les différents environnements. GnuPG est avant tout un logiciel de cryptage asymétrique (clé publique &#8211; clé privée) et son domaine de prédilection est la transmission sécurisée d&#8217;information entre utilisateurs. Mais on peut aussi s&#8217;en servir pour faire du cryptage simple, c&#8217;est ce qu&#8217;on va voir ici.</p>
<p>Le problème à résoudre est le suivant :</p>
<p>Un utilisateur gère sur son poste de travail des informations confidentielles. L&#8217;accès au poste de travail étant protégé, on estime la sécurité suffisante sur le poste (ça pourrait se discuter mais c&#8217;est pas le sujet). Par contre les sauvegardes sont effectuées sur un serveur dont l&#8217;accès est public. On ne peut donc pas y sauvegarder les données confidentielles en l&#8217;état.</p>
<p>La solution va être de crypter les données avant de les sauvegarder, voilà comment :</p>
<p>Génération d&#8217;un paire de clés :</p>
<p><code><br />
<strong> C:\&gt;gpg --gen-key</strong><br />
gpg (GnuPG) 1.4.7; Copyright (C) 2006 Free Software Foundation, Inc.<br />
This program comes with ABSOLUTELY NO WARRANTY.<br />
This is free software, and you are welcome to redistribute it<br />
under certain conditions. See the file COPYING for details.</code><br />
<code><br />
Please select what kind of key you want:<br />
(1) DSA and Elgamal (default)<br />
(2) DSA (sign only)<br />
(5) RSA (sign only)<br />
Your selection? <strong>1</strong><br />
DSA keypair will have 1024 bits.<br />
ELG-E keys may be between 1024 and 4096 bits long.<br />
What keysize do you want? (<strong>2048</strong>)<br />
Requested keysize is 2048 bits<br />
Please specify how long the key should be valid.<br />
0 = key does not expire<br />
&lt;n&gt;  = key expires in n days<br />
&lt;n&gt;w = key expires in n weeks<br />
&lt;n&gt;m = key expires in n months<br />
&lt;n&gt;y = key expires in n years<br />
Key is valid for? (<strong>0</strong>)<br />
Key does not expire at all<br />
Is this correct? (y/N) <strong>y</strong></code><br />
<code><br />
You need a user ID to identify your key; the software constructs the user ID<br />
from the Real Name, Comment and Email Address in this form:<br />
"Heinrich Heine (Der Dichter) &lt;heinrichh@duesseldorf.de&gt;"</code><br />
<code><br />
Real name: <strong>Michel</strong><br />
Email address: <strong>michel@martin.com</strong><br />
Comment:<br />
You selected this USER-ID:<br />
"Michel &lt;michel@martin.com&gt;"</code><br />
<code><br />
Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? <strong>o</strong><br />
You need a Passphrase to protect your secret key.</code><br />
<code><br />
We need to generate a lot of random bytes. It is a good idea to perform<br />
some other action (type on the keyboard, move the mouse, utilize the<br />
disks) during the prime generation; this gives the random number<br />
generator a better chance to gain enough entropy.<br />
+++++++++++++++.+++++.+++++.+++++.+++++..+++++.+++++++++++++++++++++++++..++++++<br />
+++&gt;++++++++++&gt;+++++&gt;..+++++....................................................<br />
.............................................+++++^^^<br />
gpg: key 62757D49 marked as ultimately trusted<br />
public and secret key created and signed.</code><br />
<code><br />
gpg: checking the trustdb<br />
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model<br />
gpg: depth: 0  valid:   2  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 2u<br />
pub   1024D/62757D49 2007-11-12<br />
Key fingerprint = 9B05 2259 683C 70CC D73C  3E47 816C 06FE 6275 7D49<br />
uid                  Michel &lt;michel@martin.com&gt;<br />
sub   2048g/5589D5F6 2007-11-12</code></p>
<p>Ca y est on a notre paire de clés. Attention à ne pas oublier la &laquo;&nbsp;passphrase&nbsp;&raquo;, il n&#8217;y a aucun moyen de la récupérer. Elle n&#8217;est pas nécessaire pour crypter, mais sera demandée au décryptage. On peut mettre une passphrase vide, mais la sécurité est moindre.</p>
<p>L&#8217;étape suivante est de sauvegarder la clé privée, et la conserver en lieu sûr!!! :</p>
<p><code>C:\&gt;gpg --export-secret-keys -a michel &gt; michel.sec</code></p>
<p>Crypter le fichier confidentiel.doc :</p>
<p><code>C:\&gt;gpg gpg -e -r Michel confidentiel.doc</code></p>
<p>Cette commande crée le fichier crypté <strong>confidentiel.doc.gpg</strong> qui peut être stocké sans crainte sur des serveurs publics, tant que la clé privée n&#8217;est pas compromise.</p>
<p>Pour décrypter sur le poste qui contient les clés (la passphrase est demandée) :</p>
<p><code>C:\&gt;gpg confidentiel.doc.gpg</code></p>
<p>Pour décrypter sur un autre poste il faut d&#8217;abord importer la clé privée :</p>
<p><code>C:\&gt;gpg --import michel.sec</code></p>
<p>Voilà, c&#8217;est juste un aperçu rapide d&#8217;une application pratique du cryptage avec gpg.</p>
]]></content:encoded>
			<wfw:commentRss>http://tavie.onsenfout.com/2007/11/12/utilisation-basique-de-gnupg-pour-crypter-et-decrypter-des-fichiers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
