Mot-clé - documentation

Fil des billets - Fil des commentaires

mercredi 20 septembre 2017

Déployer un nœud YaCy sur une adresse IPv6 et avec un accès https

Il est possible de mettre en place un nœud YaCy participant à la fédération globale, avec une connectivité IPv6 et HTTPS.

Qu’est-ce que YaCy ? Facile.

YaCy est un moteur de recherche que chacun peut installer pour indexer le web (pages publiques accessibles par internet), pour indexer un intranet ou pour parcourir d'autres données avec une fonction moteur de recherche. YaCy peut être utilisé de façon autonome, mais sa principale force est de pouvoir fonctionner en réseau peer-to-peer, ce qui fait que sa puissance s’accroît avec le nombre d'utilisateurs, qu'il est entièrement acentré (tous les "peers" sont égaux et il n'y a pas un organisme administratif central) et qu'il n'est pas censurable et ne stocke pas le comportement des utilisateurs.

La liberté de l'information ainsi obtenue par le biais des logiciels libres et d'un moteur de recherche distribué est également un des objectifs du projet.

Prérequis

  • avoir une connexion IPv6 opérationnelle avec une adresse publique (nous utilisons ici 2001:41d0:12a:4d00:dcdc::46)
  • disposer d’un nom de domaine (nous créerons ici le champ AAAA YaCy.Clauzel.eu)
  • utiliser Debian/stretch sans systemd
  • avoir apache2 en place (nous ajouterons 2 vhosts)
  • avoir un certbot récent, celui de Debian/stretch est trop ancien et ne gère pas les demandes pour un hôte uniquement en IPv6 :
apt-get install certbot apt-get install certbot
wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto

Mise en place du nom de domaine

  • Créer l’enregistrement DNS pour le nœud; ici YaCy.Clauzel.eu pointe sur 2001:41d0:12a:4d00:dcdc::46

Installer YaCy

Mise en place initiale :

  • Lire et appliquer la documentation de YaCy ; nous utilisons ici la version 1.92 pour linux. YaCy est installé pour l’utilisateur dédié yacy:yacy dans le répertoire /home/yacy
  • Dans l’interface web de YaCy Mode d'utilisation et compte>avec SSL, activer le HTTPS sur le port 8443
  • Dans l’interface web de YaCy Administration du système>Paramètres d'accès au serveur>staticIP, définissez l’adresse publique du nœud comme étant YaCy.Clauzel.eu

Indiquer à java que nous donnons la préférence à l’IPv6 :

service yacy stop

Dans /etc/init.d/yacy, modifier JAVA_ARGS="-server -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Dsolr.directoryFactory=solr.MMapDirectoryFactory -Djava.net.preferIPv4Stack=false -Djava.net.preferIPv6Stack=true"

service yacy start

À ce moment, YaCy doit tourner en mode Senior et être publiquement joignable à l’adresse http://YaCy.Clauzel.eu:8090

Créer le certificat TLS

Un simple certificat TLS suffit, mais vous pouvez vous faire plaisir avec les options :

service apache2 stop
certbot-auto certonly --standalone -d YaCy.Clauzel.eu --renew-by-default --must-staple --staple-ocsp --agree-tos --uir --hsts
service apache2 start

Préparation du certificat pour java

Les applications java ont ceci de casse-pied particulier qu’elles n’utilisent pas les certificats TLS au format PEM : il nous faut convertir notre certificat.

openssl pkcs12 -export -in /etc/letsencrypt/live/yacy.clauzel.eu/fullchain.pem -inkey /etc/letsencrypt/live/yacy.clauzel.eu/privkey.pem -out /etc/letsencrypt/live/yacy.clauzel.eu/yacy.clauzel.eu.p12 -CAfile /etc/letsencrypt/live/yacy.clauzel.eu/chain.pem -caname root -password pass:JeSuisUnMotDePasse -name yacy.clauzel.eu
keytool -importkeystore -srcstorepass JeSuisUnMotDePasse -deststorepass JeSuisUnMotDePasse -destkeypass JeSuisUnMotDePasse -srckeystore /etc/letsencrypt/live/yacy.clauzel.eu/yacy.clauzel.eu.p12 -alias yacy.clauzel.eu -srcstoretype PKCS12 -destkeystore /etc/letsencrypt/live/yacy.clauzel.eu/yacy.clauzel.eu.key

Mettre en place le certificat

Nous pouvons alors placer notre joli certificat dans l’arborescence de l’application.

service yacy stop
 cp /etc/letsencrypt/live/yacy.clauzel.eu/yacy.clauzel.eu.key DATA/SETTINGS/
 chown yacy:yacy DATA/SETTINGS/yacy.clauzel.eu.key
 chmod 400 DATA/SETTINGS/yacy.clauzel.eu.key

Configurer l’utilisation du certificat

Il reste maintenant à informer l’application de l’existence de ce certificat. Il faut vérifier/définir dans le fichier DATA/SETTINGS/yacy.conf :

port.ssl=8443
keyStore=DATA/SETTINGS/yacy.clauzel.eu.key
keyStorePassword=JeSuisUnMotDePasse
server.https=true
staticIP=YaCy.Clauzel.eu

Puis démarrer YaCy :

service yacy start

À ce moment, YaCy doit être publiquement joignable à l’adresse https://YaCy.Clauzel.eu:8443

Définir des redirections dans apache

Nous ajoutons alors des redirections web, qui permettrons d’accéder directement au nœud sans devoir spécifier le port.

Créer la directive /etc/apache2/sites-available/00-YaCy.conf :

<VirtualHost *:80>
    Define INSTANCE yacy.clauzel.eu
    ServerName ${INSTANCE}
    RewriteEngine On
    RewriteRule ^(.*)$ https://${INSTANCE}:8443 [redirect=301]
</VirtualHost>

<VirtualHost *:443>
    Define INSTANCE yacy.clauzel.eu
    ServerName ${INSTANCE}
    RewriteEngine On
    RewriteRule ^(.*)$ https://${INSTANCE}:8443 [redirect=301]
    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/${INSTANCE}/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/${INSTANCE}/privkey.pem
</VirtualHost>

Activons cette configuration :

a2ensite 00-YaCy.conf
service apache2 restart

YaCy est désormais accessible à l’adresse https://YaCy.Clauzel.eu, et http://YaCy.Clauzel.eu redirige le visiteur vers l’accès sécurisé

Bonne chance à tous, comme on dit « chez-moi ça marche ».

mercredi 15 octobre 2014

Accéder à ses données personnelles contenues dans les fichiers de l’État : le parcours du combattant patient

Les fichiers de l’État, et les moyens d’y accéder

L’État collecte et exploite de plus en plus de données sur les citoyens. C’est une bonne chose car cela permet un meilleur traitement administratif, simplifie la gestion des ressources publiques, et d’une façon générale améliore la productivité tout en offrant davantage de possibilités. Mais l’État multiplie également le fichage des citoyens pour des raisons invoquées de sécurité; et le contrôle du contenu de ces derniers est difficile car ils ne sont pas publics, là encore pour des raisons invoquées de sécurité.

La loi prévoit malgré tout un regard possible — mais restreint — des citoyens sur ces données qui les concernent. L’accès se fait au travers de la CNIL, qui est la seule autorité pouvant alors agir au nom des citoyens qui la saisissent. Problème : la CNIL est tout sauf réactive et ouverte au publique.

J’ai commencé une — longue — démarche pour accéder au contenu de ces fameux fichiers à accès restreint, et comme prévu cela ne se passe pas très bien.

Documentation de la CNIL :

2014-08-29 : envoi à la CNIL du courrier de demande d’accès indirects aux fichiers de l’État

La demande initiale est un simple courrier, mentionnant les fichiers que je souhaite consulter, avec la référence du texte de loi me garantissant ce droit. Rien que du très banal.

Objet : Demande d’accès indirect aux fichiers de l’État

Madame la Présidente,

Conformément à l’article 41 de la loi du 6 janvier 1978 modifiée, je souhaite être informé des données me concernant dans les fichiers et services suivants, et en cas de refus d’accès de connaître la justification. Pouvez-vous me transmettre sous forme numérique une copie de ces données ?

• Fichier des personnes recherchées (FPR)
• Système d’information Schengen (SCHENGEN)
• Fichier des comptes bancaires (FICOBA)
• Réseau mondial visas (RMV 2)
• Police nationale (STIC)
• Gendarmerie nationale (JUDEX)
• Fichier National des Interdits de Stade (FNIS)
• Recueil de la documentation opérationnelle et d’information statistiques sur les enquêtes (ARDOISE)
• Fichiers de renseignement des services de l’information générale de la Direction Centrale de la Sécurité publique et de la Préfecture de Police de Paris
• Fichier de renseignement CRISTINA (Direction centrale du renseignement intérieur)
• Sécurité Extérieure (DGSE)
• Fichiers de sécurité militaire (DPSD)
• Fichier de renseignement militaire (DRM)
• Analyse criminelle (ANACRIM)
• Analyse et liens de la violence (SALVAC)

Sincèrement,
  Damien Clauzel

Pièces jointes : recto de carte d’identité et de carte vitale

L’encart de l’adresse pour envoyer les demandes ne précise aucune information sur l’envoi du courrier, mais le générateur de demandes mentionne qu’il faut utiliser un courrier recommandé. J’envoi un courrier simple, car il n’y a aucune raison pour moi de subir des frais supplémentaires.

2014-09-23 : courriel(s) de relance

Pas de nouvelle, bonne nouvelle ? Dans le doute, devant l’absence de réponse, je décide d’envoyer un simple courriel de rappel.

Objet : Relance de demande d’accès indirect aux fichiers de l’État

Madame,

Le 29 août 2014, j’ai adressé à la CNIL par courrier (copie en pièce jointe) une demande d’accès indirect aux fichiers de l’État pour les données me concernant.

Étant sans réponse de votre part, je vous relance donc par ce courriel, afin d’avoir la confirmation que ma demande a bien été prise en compte.

Sincèrement,
  Damien Clauzel

Problème : dans les moyens de la contacter, la CNIL ne propose pas d’adresse courriel, mais uniquement des coordonnées téléphonique, fax, et un formulaire web; avec à côté un numéro de téléphone pour le service presse et un formulaire web pour le webmaster : Accueil du public : Aucun renseignement n'est assuré sur place. La CNIL ne reçoit pas le public. Vous pouvez toutefois déposer des plis à l’accueil. Ça en dit très long du positionnement de la CNIL sur le numérique…

Quelques requêtes Google bien placées sortent une liste d’adresses courriel, pas forcément adaptées à ma demande (RH pour recrutement, etc.). Par exemple, les informations WHOIS donnent les coordonnées d’une personne rattachée au service juridique. L’annuaire du service public est aussi une bonne source pour trouver une personne à contacter directement[1]

Hop, mon courriel de relance est envoyé à la directrice de la Direction des relations avec les usagers et contrôle. Uh, wait… Déjà une réponse ?

Cette notification d'état de remise est générée automatiquement.

Échec de la remise aux destinataires

Mwouais… essayons le directeur adjoint, alors ? Cette fois, le courriel ne semble pas rejeté; reste à savoir s’il sera traité.

2014-10-01 : réponse de la CNIL

Dans un courrier de deux pages, la CNIL m’informe :

  • qu’effectivement je demande bien des informations contenues dans des fichiers à accès indirects ;
  • que certaines données du fichier FICOBA peuvent être demandés directement aux administrations, ce que mentionne pas la documentation du site web de la CNIL ;
  • que la demande pour le fichier ANACRIM nécessite des informations complémentaires, ce que mentionne pas la documentation du site web de la CNIL ;
  • que le fichier ARDOISE n’est plus d’actualité, alors qu’il est mentionné dans la documentation du site web de la CNIL ;
  • que ça va être long (« plusieurs mois »).

2014-10-01 CNIL DAI 1 2014-10-01 CNIL DAI 2





















2014-12-22 : premières informations obtenues par la CNIL

Dans ce courrier de deux pages, la CNIL m’informe :

  • que je ne suis pas fiché par les services du renseignement territorial et que je ne figure pas dans le fichier TAJ. Étant français de naissance et n’ayant jamais quitté l’Union européenne, c’est plutôt normal ;
  • que je ne suis pas concerné par l’enregistrement dans le fichier RMV2, car j’ai la nationalité française ;
  • que la DGSI refuse de communiquer la moindre information sur ce qu’elle pourrait avoir sur moi, au nom de « la sûreté de l’État, la défense et la sécurité publique » ;
  • que la DGSE refuse de communiquer la moindre information sur ce qu’elle pourrait avoir sur moi, au nom de « la sûreté de l’État, la défense et la sécurité publique » ;
  • que la DPSD refuse de communiquer la moindre information sur ce qu’elle pourrait avoir sur moi, au nom de « la sûreté de l’État, la défense et la sécurité publique » ;
  • que je dispose de deux mois pour déposer un recours contre le ministère de l’intérieur et le ministère de la défense, devant le Tribunal Administratif de Paris ;
  • que la CNIL continue à traiter mes demandes encore en cours.

2014-12-22 Réponse CNIL pour accès indirect aux fichiers 2014-12-22 Réponse CNIL pour accès indirect aux fichiers 2





















2015-02-05 : nouvelles informations obtenues par la CNIL

Dans ce courrier d’une page, avec en copie la réponse précédente, la CNIL m’informe :

  • que la Direction du Renseignement Militaire refuse de communiquer la moindre information sur ce qu’elle pourrait avoir sur moi, au nom de « la sûreté de l’État, la défense et la sécurité publique » ;
  • que je dispose de deux mois pour déposer un recours contre le ministère de la défense, devant le Tribunal Administratif de Paris ;
  • que la CNIL continue à traiter mes demandes encore en cours.

2015-02-05 Réponse CNIL pour accès indirect aux fichiers

2015-03-11 : nouvelles informations obtenues par la CNIL

Dans ce courrier d’une page, avec en copie l’extrait FICOBA, la CNIL m’informe :

  • qu’elle m’adresse une extraction du fichier FICOBA (fait 3 pages, je publie ici la première en noircissant mes informations bancaires), reprenant l’ensemble des données bancaires enregistrées me concernant (établissement, nature du compte, date d’ouverture, de modification ou de clôture) ;
  • que je ne suis pas enregistré dans le Système d’Information Schengen ;
  • que je ne suis pas enregistré dans le Fichier des Personnes Recherchées ;
  • que la CNIL continue à traiter mes demandes encore en cours (FNIS et SALVAC).

2015-03-11 Réponse CNIL pour accès indirect aux fichiers 2015-03-11 Extrait du fichier FICOBA, page 1





















Ce qui est important ici est que les informations du fichiers FICOBA sont erronées : elles m’attribuent la possession d’un compte bancaire dont j’ai demandé la fermeture il y a des années. Soit la banque n’a pas correctement procédé à la fermeture et ne m’a jamais adressé de relevé depuis (peu probable), soit elle a fait une erreur dans le relevé et la transmission des informations (probable), soit le fichier a été modifié ultérieurement en interne (peu probable). Je vais donc contacter la banque et demander des précisions.

On trouve également dans l’extrait du fichier FICOBA plusieurs fois les mêmes comptes, déclarés existant à différentes dates. Les données sont des instantanés des ajouts de nouveaux comptes bancaires, avec parfois un rappel d’autres comptes existants, mais pas tous. La logique de construction de l’extrait est assez difficile à comprendre, et surtout difficile à exploiter : il n’y a pas de liste complète à un moment donné, et la suppression de comptes n’apparaît pas. Je suppose qu’on doit pouvoir obtenir une meilleure vue en affinant la requête d’interrogation, mais en l’état c’est très difficilement exploitable.

Un élément intéressant est que la recherche dans le fichier FICOBA a été faite par mon №SPI, alors que les seules informations nominatives que j’ai fourni à la CNIL sont le recto de carte d’identité et de ma carte vitale. Je suppose donc que la table CNTDF de correspondance NIR/SPI a été utilisée pour me retrouver [2]. La section toulousaine de la Ligue des Droits de l’Homme présente bien cette interconnexion des fichiers.

Aussi, cet extrait FICOBA ne mentionne pas les comptes à l’étranger ; ce n’est d’ailleurs pas son rôle.

2015-04-22 : nouvelles informations obtenues par la CNIL

Dans ce courrier d’une page, la CNIL m’informe :

  • que la demande d’informations convenues dans le fichier SALVAC a été faite, mais que les lois ne « permettent pas de vous apporter de plus amples informations » ;
  • que je dispose de deux mois pour déposer un recours contre le ministère de l’intérieur, devant le Tribunal Administratif de Paris ;
  • que la CNIL continue à traiter mes demandes encore en cours (FNIS).

2015-04-22 Réponse de la CNIL pour l'accès aux fichiers indirects

La partie intéressante dans cette réponse est le paragraphe sur les informations obtenues du fichier SALVAC.

En application de ces articles [41 de la loi du 6 janvier 1978 modifié, et de l’article 88 de son décret d’application (№ 2005-309 du 20 octobre 2005 modifié)], toute opposition de l’administration gestionnaire d’un fichier soumis au droit d’accès indirect fait obstacle à la moindre communication de notre Commission, hormis l’indication des voies de recours qui sont alors ouvertes.

C’est à comprendre comme un refus catégorique de la part de la Direction Centrale de la Police Judiciaire que de communiquer la moindre information, invoquant le régime dérogatoire à la loi sur la sécurité intérieure.

C’est donc un fichier au contenu complètement opaque sur lequel les citoyens n’ont absolument aucun regard, même en passant par leurs représentants légaux. Il est non seulement impossible de vérifier la présence d’informations, mais aussi de s’assurer de leur exactitude et de leur pertinence.

Pire, ce fichier ne contient pas uniquement des informations sur les criminels, mais aussi sur les victimes. On peut donc être fichés par l’État indifféremment de son niveau de dangerosité pour la société. Inquiétant.

2015-06-15 : nouvelles informations obtenues par la CNIL et fin du dossier

Dans ce courrier d’une page, la CNIL m’informe :

  • que je ne suis pas enregistré dans le fichier national des interdits de stade (FNIS) ;
  • que la procédure est désormais terminée ;
  • qu’elle me met en pièces jointes l’ensemble des courriers précédents. En fait, tous sauf l’extrait FICOBA et le premier courrier.

2015-06-15 Réponse de la CNIL pour l'accès aux fichiers indirects

Aucune surprise ici, à part que pour la première fois le courrier a été envoyé au tarif « lettre verte » et non comme recommandé avec accusé de réception. 1,06€ au lieu de 5,05€, ça fait 4€ d’économie, ce qui n’est pas rien au vu du nombre de courriers envoyés pour chaque demande d’accès aux fichiers indirects.

Réflexions

En tout, il aura fallu 10 mois à la CNIL pour répondre à me demande d’accès à l’ensemble des fichiers indirects qu’elle liste sur son site web. La demande initiale a été un peu délicate à réaliser, car les moyens de contact de la CNIL sont peu évidents. Si j’étais mauvaise langue je dirais que c’est pour réaliser un filtrage des personnes motivées, mais je doute honnêtement que ça soit le cas. La CNIL étant sous financée et en sous effectif depuis des années, on comprend tout à fait qu’il puisse y avoir quelque hoquets. Mais une fois lancée, aucun besoin de faire de rappel, et les courriers arrivent tous seuls.

La durée de la procédure — 10 mois ! — m’a étonné. C’est long pour quelques simples demandes de consultation. En revanche, les réponses apportées par la CNIL sont très compréhensibles, c’est une très bonne chose.

S’il est effectivement possible de demander à accéder aux fichiers « sensibles » de l’État afin de connaître ce qu’ils contiennent à son sujet, en pratique la réalité est différente. Les services refusent de donner les informations demandées, au nom de « la sûreté de l’État, la défense et la sécurité publique ». De facto, le droit du citoyen prévu par la loi n’est pas effectif, et c’est problématique pour la transparence et la confiance.

Également, une demande comme celle que j’ai fait à la CNIL coûte cher : les courriers de réponse sont envoyés par recommandé avec accusé de réception. Je ne sais pas combien de personnes font des demandes d’accès aux fichiers indirects, mais avec plusieurs courriers de réponse par demande la facture monte vite[3]. Il serait intéressant de dématérialiser toute la procédure en proposant de consulter les résultats en ligne, ou mieux en utilisant des courriels chiffrés[4].

En outre, on met facilement en évidence la faible qualité des données de certains fichiers. Le problème d’actualisation des données dans une base à sources multiples est bien connu — et redouté — des informaticiens.

Expériences similaires

Il y a beaucoup de personnes en France qui sont les victimes de fichage erroné, avec plus ou moins d’impact sur la vie quotidienne. Les faux-positifs sont une des pires choses possibles en matière de fichage de renseignement, car non seulement on est abusivement répertorié, mais en plus on ne le sait pas, et les recours sont quasi impossibles car les services de renseignement/sécurité/justice/défense font tout ce qu’ils peuvent pour garder le contrôle sur leurs méthodes de travail. Se défendre, rectifier les informations, et obtenir un dédommagement pour le préjudice subit est une épreuve immense :

À suivre…

Notes

[1] Que les ayatollahs de la vie privée ne viennent pas hurler : c’est l’État lui-même qui publie ouvertement ces informations

[2] Arrêté du 28 mars 2006 relatif à la mise en service à la direction générale des impôts et à la Banque de France d'une procédure automatisée de transfert des données fiscales

[3] Un recommandé avec accusé de réception coûte 5,05€ en janvier 2015

[4] ce qui nécessite que le gouvernement avance sur la question de l’identité numérique, que les décrets soient mis en place, et les infrastructures déployées. Bref, ce n’est pas pour demain.

vendredi 13 septembre 2013

Travailler avec les volumes chiffrés de TrueCrypt sur Debian

TrueCrypt est un outil de chiffrement de volumes qui souffre de deux défauts majeurs : il n'a pas d'activité récente, et pour des raisons de licence n'est pas inclus dans Debian. Son alternative libre est tcplay, disponible dans les dépôts.

Package: tcplay

Maintainer: Laszlo Boszormenyi (GCS) <gcs@debian.org>

Description-en: Free and simple TrueCrypt Implementation based on dm-crypt tcplay is a free (BSD-licensed), pretty much fully featured (including multiple keyfiles, cipher cascades, etc) and stable TrueCrypt implementation.

This implementation supports mapping (opening) both system and normal TrueCrypt volumes, as well as opening hidden volumes and opening an outer volume while protecting a hidden volume. There is also support to create volumes, including hidden volumes, etc.

Since tcplay uses dm-crypt it makes full use of any available hardware encryption/decryption support once the volume has been mapped.

Homepage: https://github.com/bwalex/tc-play

L'approche utilisée ici est d'utiliser un disque dur entier dédié au stockage sécurisé. Nous mettrons en place un volume normal qui contiendra des données de leurre, ainsi qu'un volume caché dédié au travail réel.

Notes techniques :

  • le disque dur utilisé dans cet exemple est accessible via /dev/disk/by-id/scsi-SATA_QUANTUM_FIREBAL692705570853[1]. Il contiendra uniquement un volume normal; pas même une table des partitions ;
  • les volumes sont successivement montés dans le répertoire courant ./tc ;
  • on utilise /dev/mapper/truecrypt pour le mappage des volumes  ;
  • on utilise des méthodes de chiffrement différentes pour le volume normal et le volume chiffré. Si une méthode est cassée, ça serait dommage que tous les volumes soient affectés.

Mise en place des volumes de leurre et caché

Opérations réalisées ici :

  1. créer les volumes ;
  2. remplir le volume de leurre, ainsi que le volume caché ;
  3. fermer les volumes et nettoyer le système.

Sur le disque entier, créer un volume normal avec un volume caché dedans

sudo tcplay --create --device /dev/disk/by-id/scsi-SATA_QUANTUM_FIREBAL692705570853 \
  --cipher TWOFISH-256-XTS,AES-256-XTS \
  --pbkdf-prf=whirlpoe-erase \
  --hidden --cipher-hidden AES-256-XTS,SERPENT-256-XTS \
  --pbkdf-prf-hidden RIPEMD160

Ouvrir le volume normal, en protégeant le volume caché. Le volume normal est mappé sur /dev/mapper/truecrypt

sudo tcplay --map=truecrypt \
  --device /dev/disk/by-id/scsi-SATA_QUANTUM_FIREBAL692705570853 \
  --protect-hidden

Formater le volume normal

sudo mkfs.xfs /dev/mapper/truecrypt

Monter le volume normal

sudo mount /dev/mapper/truecrypt ./tc/

Remplir le volume normal avec des données de leurre. Par exemple des clés privées ssh, des données bancaires, des reçus des impôts… Le but est de justifier l'usage d'un volume chiffré.

sudo cp ~/.ssh/id_ecdsa ./tc/

Démonter le volume normal

sudo umount ./tc

Supprimer le mappage du volume normal

sudo dmsetup remove /dev/mapper/truecrypt

Ouvrir le volume caché Le volume caché est lié à /dev/mapper/truecrypt

sudo tcplay --map=truecrypt --device /dev/disk/by-id/scsi-SATA_QUANTUM_FIREBAL692705570853

Formater le volume caché

sudo mkfs.xfs /dev/mapper/truecrypt

Monter le volume caché

sudo mount /dev/mapper/truecrypt ./tc/

Remplir le volume caché avec des données sensibles. Par exemple, des clés privées PGP, des photos personnelles, votre plan de conquête du monde, etc.

sudo cp ~/.gnupg/secring.gpg ./tc/

Démonter le volume caché

sudo umount ./tc

Supprimer le mappage du volume caché

sudo dmsetup remove /dev/mapper/truecrypt

Travailler dans les volumes de leurre et caché

Actualiser les données du volume normal :

  1. ouvrir le volume caché : sudo tcplay --map=truecrypt --device /dev/disk/by-id/scsi-SATA_QUANTUM_FIREBAL692705570853
  2. monter le volume caché : sudo mount /dev/mapper/truecrypt ./tc/
  3. travailler
  4. démonter le volume caché : sudo umount ./tc
  5. supprimer le mappage du volume caché : sudo dmsetup remove /dev/mapper/truecrypt

Actualiser les données du volume normal :

  1. ouvrir le volume normal, en protégeant le volume caché : sudo tcplay --map=truecrypt --device /dev/disk/by-id/scsi-SATA_QUANTUM_FIREBAL692705570853 --protect-hidden
  2. monter le volume normal : sudo mount /dev/mapper/truecrypt ./tc/
  3. actualiser les données de leurre
  4. démonter le volume normal : sudo umount ./tc
  5. supprimer le mappage du volume normal : sudo dmsetup remove /dev/mapper/truecrypt

Note

[1] Disque dur Quantum Fireball TM1280A provenant de mon vénérable PowerMac 4400 (processeur PPC 603ev, 96Mo de RAM) datant 1996. Ce disque de 1,2Go présente toujours zéro secteur défectueux et tourne comme un charme. Pas comme les saloperies de disques durs actuels qui meurent au bout de 3 ans, alors qu'ils bossent à peine

mardi 11 septembre 2012

La rédaction moderne : utiliser XeLaTeX et biblatex ensemble

Le problème

LaTeX a pu évoluer pour supporter des fonctionnalités « modernes » comme UTF-8, les polices TrueType, etc., mais a désormais atteint ses limites. Pour bénéficier des nouvelles technologies de la composition informatique, il faut passer à un autre système, comme XeLaTeX.

Pour la bibliographie, on se tourne vers biblatex qui prend la suite de bibtex ; avec là encore un support de l'UTF-8, des nouveaux attributs, etc.

Biblatex: Bibliographies in LaTeX using BibTeX for sorting only. Biblatex is a complete reimplementation of the bibliographic facilities provided by LaTeX in conjunction with BibTeX. It redesigns the way in which LaTeX interacts with BibTeX at a fairly fundamental level.

With biblatex, BibTeX is only used (if it is used at all) to sort the bibliography and to generate labels. Formatting of the bibliography is entirely controlled by TeX macros (the BibTeX-based mechanism embeds some parts of formatting in the BibTeX style file. Good working knowledge in LaTeX should be sufficient to design new bibliography and citation styles; nothing related to BibTeX's language is needed. In fact, users need not remain bound to BibTeX for use with biblatex: an alternative bibliography processor biblatex- biber is available.

Development of biblatex and biblatex-biber is closely coupled; the present release of biblatex is designed to work with biblatex-biber version 0.9.6. The package needs e-TeX, and uses the author's etoolbox and logreq packages. For users of biblatex-biber, version 0.9 is required (at least; refer to the notes for the version of biblatex-biber that you are using). Apart from the features unique to biblatex, the package also incorporates core features of the following packages: babelbib, bibtopic, bibunits, chapterbib, cite, inlinebib, mcite and mciteplus, mlbib, multibib, splitbib. Biblatex supports split bibliographies and multiple bibliographies within one document, and separate lists of bibliographic shorthands. Bibliographies may be subdivided into parts (by chapter, by section, etc.) and/or segmented by topics (by type, by keyword, etc.). Biblatex is fully localized and can interface with the babel.

Biber: A BibTeX replacement for users of biblatex. Biber is a BibTeX replacement for users of biblatex. Biber supports full UTF-8, can (re)-encode input and output, supports highly configurable sorting, dynamic bibliography sets and many other features.

The CTAN distribution offers a compressed tar archive of the sources, etc., together with "binary" distributions for a variety of platforms. Note: on SourceForge biber is formally named "biblatex-biber", to distinguish it from an earlier (now apparently moribund) project called "biber".

L'objectif n'est pas ici de faire une présentation de ces différents outils ni de comment les utiliser, mais de montrer comment faire travailler ensemble ces deux éléments. Pour ce faire, nous allons considérer 3 ECM.

Utiliser XeLaTeX et biblatex ensemble

Prérequis :

  1. avoir installé — et testé — une distribution de XeLaTeX[1]
  2. avoir installé le paquet biblatex et ses suppléments de styles
  3. avoir installé le paquet biber

Les documentations se trouvent dans l'arborescence de Tex Live :

  • biblatex : $TEXLIVE/2012/texmf-dist/doc/latex/biblatex/
  • biber : $TEXLIVE/2012/texmf-dist/doc/bibtex/biber

En pratique on n'aura besoin que de celle de biblatex afin d'ajuster le style de rendu des citations.

Nos exemples :

  • ecm.tex : notre exemple complet minimal, qui sera développé. Il permet de s'assurer que XeLaTeX fonctionne correctement pour nos besoins
  • ecm_biblatex.tex : notre exemple complet minimal pour biblatex, qui sera développé. Il permet de s'assurer que biblatex fonctionne correctement pour nos besoins
  • ecm_biblatex_mieux.tex : notre exemple riche d'utilisation de biblatex avec XeLaTeX, avec une personnalisation du rendu
  • MaBiblioPerso.bib : bibliographie pour la démonstration

La partie qui nous intéresse principalement est dans le préambule du document :

\usepackage[
  backend=biber,         % choix de l'outil de traitement
  babel=hyphen,          % environnement linguistique dédié aux entrées en langues alternatives (utilise l'attribut « hyphenation »)
  backref=true,          % liens dans la bibliographie pour remonter dans le texte
  backrefstyle=none,     % afficher toutes les utilisations de la référence
  bibstyle=alphabetic,   % style pour les clés des références dans la bibliographie : [initialesAnnée]
  citestyle=alphabetic,  % style pour les clés des références dans le texte : [initialesAnnée]
  sorting=none,          % bibliographie triée par ordre d'utilisation des références
]{biblatex}                  % support des bibliographies
\bibliography{MaBiblioPerso} % appel à la bibliographie externe

Pour compiler les exemples, on utilise la séquence suivante :

  1. xelatex ecm+biblatex+mieux # calcule le rendu partiel du document
  2. biber ecm+biblatex+mieux # prépare la bibliographie
  3. xelatex ecm+biblatex+mieux # fini le rendu du document, avec bibliographie, hyperliens, numéros de pages, etc.

XeLaTeX utilise la classe biblatex, appelée dans les sources du document. Dans une approche similaire Biber est utilisé en place de bibtex sans options particulières.

Aller plus loin, avec des exemples d'utilisations de styles personnalisés :

Note

[1] TeX Live est actuellement ce qui se fait de mieux ; nous nous appuierons dessus pour les exemples

mardi 13 octobre 2009

BiblioCNRS, un FAIL en perspective

Avant les grandes vacances, je me suis retrouvé embarqué (je ne sais plus comment) pour betatester le futur service unifié de recherche bibliographique du CNRS : BiblioCNRS. Et bien moi, je vous le dis, c'est pas gagné.

BiblioCNRS

À base de Netvibes, le portail a la pesanteur d'un mammouth farci à l'herbe à chat. Ça rame, ça rame, ça rame. On a beau supprimer des widgets, désactiver tous les effets et même coller une CSS perso, ça rame.

L'organisation est... non, en fait il n'y a pas d'organisation : on y comprend rien, les actualités sont rangées entre un lien vers l'AERES et l'annuaire du personnel; ou l'inverse, c'est selon la session.

Pensant pouvoir s'échapper, on clique sur des mots familiers écrits en gros « ST2I » ou « Mon BiblioCNRS ». Et bien non, c'est juste une illustration qui sert à montrer que, ben, rien justement.

De dépit, on se résout à cliquer sur un onglet en haut de page (BiblioST2I dans mon cas), et là encore, ça rame. Horreur ! On se retrouve face à une page semblable à la précédente, mais avec *encore* plus de widgets. Y'en a plein, partout, tellement que ça ne tient même pas à l'écran !

C'est bourré de textes en noir, rouge et orange. Des widgets entiers sont remplis de juste une URL indicible surmontant un texte incompréhensible si on n'a pas fait 20 ans dans un labo. On devine bien ce qu'on peut faire avec certains formulaires, mais à ce point on commence à redouter ce qui se cache derrière.

Vraiment, c'est innommable comme portail de recherche de publications. Moi, je voulais juste un truc tout simple, avec quelques options stockées dans un cookie. Genre Google Scholar, quoi, mais directement sur les catalogues du CNRS. Et bien non, apparemment quelqu'un a décidé que l'Avenir c'était le mashup lourdingue tendance « débrouille toi ». Dommage.

vendredi 19 juin 2009

Outil de partage pour les supports visuels de présentation

SlideShare est un outil web de partage de support visuel de présentation (SVP).

Il permet simplement de mettre en ligne ses SVP afin de les diffuser. Mais il apporte en plus des fonctionnalités intéressantes, comme :

  • la notion de groupe, pour rassembler les membres d'une équipe
  • la définition d'une licence pour l'exploitation des contenus
  • des outils à la YouTube pour intégrer les SVP dans une page web
  • un système de commentaire pour obtenir des retours sur ses œuvres
  • des fonctionnalités d'exportation et de téléchargement
  • des fonctionnalités d'enrichissement possible par piste audio
  • le suivi de personnes et d'œuvres intéressantes
  • etc.

Bref, yabon. Fini de s'embêter avec le FTP, la construction (et maintenance !) de page d'index rassemblant le matériel... 3 clics et c'est fait.

En revanche, il ne faut pas oublier qu'un SVP n'est pas un document qui se suffit à lui-même. En effet, comme son nom l'indique c'est bien un support et non pas une ressource autoportée. J'en parle un peu ici.

Pour vous donner une idée de ce qu'il est possible de faire, voici une collection de mes SVP. Sexy, non ?

mercredi 10 juin 2009

Appel à commentaires sur les modèles de trace

Avant propos

Il y a deux abréviations à connaitre.

i18n (internationalization) internationalisation

Les adaptations à faire sur les formats de données, selon les pays. Par exemple, comment on exprime une date (JJ/MM/AA, MM/DD/AA, etc), une monnaie ($123, 123€), un nombre (123.456 ou 123,456), etc. C'est un travail technique qui demande à faire abstraction du contenu pour en décrire sa structure.

CF l18n

l10n (localization) régionalisation

Il s'agit de la traduction à proprement parler.

WP :

La régionalisation de logiciel concerne le processus de traduction de l'interface utilisateur d'un logiciel d'une langue vers une autre et en l'adaptant à la culture locale. On utilise parfois le terme localisation, qui est une transposition du mot anglais localization (faux ami). On écrit parfois l10n car le mot localization est composé de dix lettres encadrées par un l et un n.

Avant qu'un logiciel ne soit régionalisé, il faut au préalable qu'il ait été internationalisé, c’est-à-dire qu'il ait été écrit pour pouvoir être traduit dans différentes langues et cultures.

CF l10n

Discussion sur les modèles

Pour construire l'interface de l'outil générique de visualisation interactive de trace (OGVIT), il faut que chaque attribut ait un nom compréhensible pour l'utilisateur. Ce qui veut dire qu'au couple attribut+valeur (par exemple, ktbs:hasTime et 1244638257), il faut ajouter un 3e élément qui est le « nom humain » (mercredi 10 juin 2009, 14:50:57)

De plus , ce nom humain doit pouvoir être internationalisé (et localisé), car tout le monde n'utilise pas la même langue. Ce qui veut dire qu'un observé, au final, doit autant être compréhensible par la machine que par l'humain. Si l'humain sait vaguement s'adapter, la machine elle a besoin d'un formalisme explicite.

Il existe plusieurs endroits où ajouter ces élément de i18n et de l10n :

Dans l'observé lui-même

  • avantage : l'information est immédiatement présente, on peut la traiter directement
  • inconvénients :
    • ça prend de la place, on répète l'information autant de fois qu'on a d'observés.
    • pour gérer plusieurs langues, il faudra ajouter autant d'éléments de traduction; c'est du gaspillage.

Dans le modèle de trace

  • avantage : c'est définit une fois pour toute; on économise de la place et du temps
  • inconvénients :
    • on se retrouve à trimbaler dans le modèles des informations dont on n'a pas besoin. Par exemple, moi je n'ai pas besoin de pouvoir exprimer mes dates en japonais.
    • ajouter une langue revient à reprendre le modèle, ce qui n'est pas toujours évident à faire car celui-ci n'est pas forcément modifiable. Par exemple, il peut être intégré dans une application dont on n'a pas les sources.

Dans un document à côté du modèle

  • avantages :
    • on peut modifier et compléter les traductions et formats sans toucher au modèle.
    • le modèle ne contient que la définition de la trace, le reste étant dans un document associé.
  • inconvénients :
    • quand on veut manipuler un modèle, il faut alors manipuler deux fichiers pour avoir les littéraux. Pas pratique.
    • ça complique le schmilblick.

Reste à décider. Vos avis sur la question ?

Exemple concret

Je souhaite visualiser la trace de ma (« Damien_traces ») frappe clavier dans weechat, mon client IRC tracé. La trace correspondant à l'envoi du message « bonjour » sur le canal #LIRIS de Freenode est la suivante :

@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix ktbs: <http://liris.cnrs.fr/~ithaca/ns/ktbs/0.1/> .
@prefix : <http://example.com/trace-model/> .

[ a :presseTouche;
:versionDeWeechat "0.2.6.1";
:monPseudo "Damien_traces";
:nomDuCanal "#LIRIS";
:nomDuServeur "freenode";
:typeDeTampon (0=standard, 1=DCC, 2=données IRC brutes) "0";
:caractère "*b";
:zoneDeSaisieAvantCaractère "";
:zoneDeSaisieAprèsCaractère "b";
:drapeauAway "0";
:contenuDeLaZoneDeSaisie "b";
:contenuDuMasqueDeCouleurDeLaZoneDeSaisie " ";
:positionDuCurseurDansLaZoneDeSaisie "1";
ktbs:hasBegin "1244635383";
ktbs:hasEnd "1244635383";
ktbs:hasTrace <> ;
].

[ a :presseTouche;
:versionDeWeechat "0.2.6.1";
:monPseudo "Damien_traces";
:nomDuCanal "#LIRIS";
:nomDuServeur "freenode";
:typeDeTampon (0=standard, 1=DCC, 2=données IRC brutes) "0";
:caractère "*o";
:zoneDeSaisieAvantCaractère "b";
:zoneDeSaisieAprèsCaractère "bo";
:drapeauAway "0";
:contenuDeLaZoneDeSaisie "bo";
:contenuDuMasqueDeCouleurDeLaZoneDeSaisie "  ";
:positionDuCurseurDansLaZoneDeSaisie "2";
ktbs:hasBegin "1244635383";
ktbs:hasEnd "1244635383";
ktbs:hasTrace <> ;
].

[ a :presseTouche;
:versionDeWeechat "0.2.6.1";
:monPseudo "Damien_traces";
:nomDuCanal "#LIRIS";
:nomDuServeur "freenode";
:typeDeTampon (0=standard, 1=DCC, 2=données IRC brutes) "0";
:caractère "*n";
:zoneDeSaisieAvantCaractère "bo";
:zoneDeSaisieAprèsCaractère "bon";
:drapeauAway "0";
:contenuDeLaZoneDeSaisie "bon";
:contenuDuMasqueDeCouleurDeLaZoneDeSaisie "   ";
:positionDuCurseurDansLaZoneDeSaisie "3";
ktbs:hasBegin "1244635383";
ktbs:hasEnd "1244635383";
ktbs:hasTrace <> ;
].

[ a :presseTouche;
:versionDeWeechat "0.2.6.1";
:monPseudo "Damien_traces";
:nomDuCanal "#LIRIS";
:nomDuServeur "freenode";
:typeDeTampon (0=standard, 1=DCC, 2=données IRC brutes) "0";
:caractère "*j";
:zoneDeSaisieAvantCaractère "bon";
:zoneDeSaisieAprèsCaractère "bonj";
:drapeauAway "0";
:contenuDeLaZoneDeSaisie "bonj";
:contenuDuMasqueDeCouleurDeLaZoneDeSaisie "    ";
:positionDuCurseurDansLaZoneDeSaisie "4";
ktbs:hasBegin "1244635384";
ktbs:hasEnd "1244635384";
ktbs:hasTrace <> ;
].

[ a :presseTouche;
:versionDeWeechat "0.2.6.1";
:monPseudo "Damien_traces";
:nomDuCanal "#LIRIS";
:nomDuServeur "freenode";
:typeDeTampon (0=standard, 1=DCC, 2=données IRC brutes) "0";
:caractère "*o";
:zoneDeSaisieAvantCaractère "bonj";
:zoneDeSaisieAprèsCaractère "bonjo";
:drapeauAway "0";
:contenuDeLaZoneDeSaisie "bonjo";
:contenuDuMasqueDeCouleurDeLaZoneDeSaisie "     ";
:positionDuCurseurDansLaZoneDeSaisie "5";
ktbs:hasBegin "1244635384";
ktbs:hasEnd "1244635384";
ktbs:hasTrace <> ;
].

[ a :presseTouche;
:versionDeWeechat "0.2.6.1";
:monPseudo "Damien_traces";
:nomDuCanal "#LIRIS";
:nomDuServeur "freenode";
:typeDeTampon (0=standard, 1=DCC, 2=données IRC brutes) "0";
:caractère "*u";
:zoneDeSaisieAvantCaractère "bonjo";
:zoneDeSaisieAprèsCaractère "bonjou";
:drapeauAway "0";
:contenuDeLaZoneDeSaisie "bonjou";
:contenuDuMasqueDeCouleurDeLaZoneDeSaisie "      ";
:positionDuCurseurDansLaZoneDeSaisie "6";
ktbs:hasBegin "1244635385";
ktbs:hasEnd "1244635385";
ktbs:hasTrace <> ;
].

[ a :presseTouche;
:versionDeWeechat "0.2.6.1";
:monPseudo "Damien_traces";
:nomDuCanal "#LIRIS";
:nomDuServeur "freenode";
:typeDeTampon (0=standard, 1=DCC, 2=données IRC brutes) "0";
:caractère "*r";
:zoneDeSaisieAvantCaractère "bonjou";
:zoneDeSaisieAprèsCaractère "bonjour";
:drapeauAway "0";
:contenuDeLaZoneDeSaisie "bonjour";
:contenuDuMasqueDeCouleurDeLaZoneDeSaisie "       ";
:positionDuCurseurDansLaZoneDeSaisie "7";
ktbs:hasBegin "1244635385";
ktbs:hasEnd "1244635385";
ktbs:hasTrace <> ;
].

[ a :presseTouche;
:versionDeWeechat "0.2.6.1";
:monPseudo "Damien_traces";
:nomDuCanal "#LIRIS";
:nomDuServeur "freenode";
:typeDeTampon (0=standard, 1=DCC, 2=données IRC brutes) "0";
:caractère "return";
:zoneDeSaisieAvantCaractère "bonjour";
:zoneDeSaisieAprèsCaractère "";
:drapeauAway "0";
:contenuDeLaZoneDeSaisie "";
:contenuDuMasqueDeCouleurDeLaZoneDeSaisie "";
:positionDuCurseurDansLaZoneDeSaisie "0";
ktbs:hasBegin "1244635386";
ktbs:hasEnd "1244635386";
ktbs:hasTrace <> ;
].

L'OGVIT est supposé construire automatiquement, à partir du modèle de la trace, la visualisation suivante.

Interface pour la visualisation de la trace des frappes clavier de weechat

On constate plusieurs choses :

  • c'est vide : ben oui, car je n'ai pas le modèle de cette trace, et d'une façon plus générale le format d'un modèle
  • il manque des informations pour construire la représentation de la trace : les noms (humains) des colonnes doivent provenir du modèle, ou du fichier de l10n associé.

Comme quoi, c'est vraiment là un problème technique et non pas scientifique. Il faut qu'on se force à prendre des décisions pour avancer.

lundi 8 juin 2009

Diigo : un outil de web social

Diigo est un outil d'enrichissement partagé du web.

Ses principales fonctionnalités sont :

  • la gestion de bookmarks en collections (comme Reddit)
  • la gestion de groupes d'utilisateurs (comme Reddit)
  • le partage de bookmarks entre utilisateurs et groupes (comme Reddit)
  • le marquage par tags de bookmarks (comme Reddit)

Jusqu'ici, que du très classique me direz-vous. Là où Diigo devient intéressant, c'est avec ses possibilités d'enrichissement du contenu.

Il est ainsi possible d'annoter une page web, de la même façon qu'on annoterait un PDF. Ces annotations peuvent être privées ou partagées. Des outils permettent de trouver rapidement toutes les annotations partagées au sein d'un groupe et de les consulter, autorisant ainsi une lecture collective asynchrone de ressources web.

Les annotations sont attachées à des éléments précis d'une page web (zone de texte, par exemple) pour créer une forte contextualisation.

Annotations dans Diigo

Lors de la navigation web, il est possible de filtrer les annotations existant pour une page afin de ne visualiser que celles provenant de personnes ou de groupe précis.

Filtrage des annotations dans Diigo

Également, Diigo permet des commenter des pages et sites web. À la différence des annotations, ces commentaires sont globaux et approprié à la mise en place de discussions simples.

Commentaires dans Diigo

En revanche, Diigo ne permet que de « plusser » des bookmarks afin de leur attribuer une note globale, là où d'autres outils (comme Reddit) ont plus de possibilités.

Une des fonctionnalités de Diigo est très intéressante pour SILEX : il est possible de s'abonner aux flux RSS de presque tous les éléments existants : activité des membres d'un groupe, annotations liées à une page, commentaires, mot-clé, etc. Ce qui veut dire qu'en mettant en place un préparateur de trace RSS→observé on a la possibilité d'alimenter le SGBT, et donc d'avoir un traçage d'une activité collective tournant autour des bookmarks.

Ah oui, et aussi : Diigo pourrait permettre à SILEX de partager simplement des trouvailles sur le web ;)