La meilleure solution de chiffrage des documents dans le Cloud

Après avoir testé plusieurs solutions de chiffrage des documents dans le Cloud mon choix s’est porté sur Cryptomator. C’est une solution gratuite, rapide, fiable et offrant un bon niveau de sécurité tout en restant simple à utiliser. Cryptomator est également intégré à d’autres solutions comme Cyberduck et Mountain Duck. Elle est également open source, ce qui signifie qu’aucun éditeur ne pourra prendre vos données en « otage » d’un abonnement obligatoire.

Pourquoi chiffrer ses documents dans le Cloud ?

Stocker ses documents dans le Cloud, c’est potentiellement les mettre à la merci des hackers, qu’ils soient criminels ou supportés par un gouvernement. Ne croyez pas sur parole les communiqués des services comme Dropbox ou OneDrive qui vous disent que vos documents sont protégés ; pratiquement tous ont été victimes d’intrusions plus ou moins graves sur leurs serveurs. De plus leurs employés ainsi que certaines agences gouvernementales ont accès à vos documents.

Si les documents que vous stockez dans le Cloud ne contiennent pas de données sensibles, pas besoin de se prendre la tête, une solution de chiffrage supplémentaire n’est pas nécessaire. Mais si vous y stockez des documents contenant par exemple des coordonnées bancaires, des mots de passe ou des données de vos clients, il vaut mieux les chiffrer.

Le chiffrage est un sujet complexe, aussi je tiens à préciser que vos documents ne sont pas protégés dans le Cloud si vous avez chiffré vos documents localement avec une solution comme FileVault ou Bitlocker. Les documents envoyés dans le Cloud ne bénéficient pas de ce chiffrage.

Mon choix : Cryptomator

Après avoir testé différentes solutions, Cryptomator est actuellement la seule solution à satisfaire tous ces critères :

  • Être open source : s’il y a bien un domaine dans lequel l’open source a tout son sens, c’est dans celui du chiffrage ; en effet seules les solutions open source peuvent être garanties sans porte dérobée (et encore, normalement il faut dans ce cas aussi compiler le code source soi-même après avoir vérifié la signature des fichiers).
  • Multi plateforme : Cryptomator est disponible sur macOS, Windows, Linux, iOS et Android. Seules les versions iOS et Android sont payantes.
  • Offrir un mécanisme de chiffrage suffisamment solide.
  • Autoriser la synchronisation fichier par fichier, voire par bloc modifié. Une solution comme VeraCrypt qui impose de tout resynchroniser pour le changement d’un octet n’est pas utilisable.
  • Autoriser la gestion des conflits dans le cas où plusieurs utilisateurs modifient le même fichier en même temps.

Faiblesses de Cryptomator

La faiblesse principale de Cryptomator est que les fichiers chiffrés font la même taille que les fichiers non chiffrés. Sans être expert, cela doit fortement faciliter le cassage de la clé de chiffrage si un hacker possède une copie de fichier chiffrée et une copie non chiffrée. Normalement c’est un scénario qui ne doit pas se produire, mais si vous copiez des fichiers déjà présents dans Dropbox vers Cryptomator, alors Dropbox possédera une copie chiffrée et une copie non chiffrée du même document.

Les autres solutions

VeraCrypt est le successeur spirituel du célèbre TrueCrypt. Cependant la philosophie de conception de VeraCrypt en fait un outil destiné au chiffrage de disques locaux plutôt que de documents stockés dans le Cloud.

BoxCryptor existe depuis plusieurs années, et a un fonctionnement similaire à Cryptomator. Mais le code source est fermé et BoxCryptor nécessite un abonnement payant sans pour autant offrir de bénéfices par rapport à Cryptomator. De plus si la maison mère de BoxCryptor met la clé sous la porte vous n’aurez plus aucun moyen de récupérer vos données.

CloudMounter offre un mécanisme de chiffrage intégré, mais le code source est fermé et impossible d’avoir des informations sur l’algorithme de chiffrage utilisé. De plus l’accès à Dropbox depuis CloudMounter est insupportablement lent.

Cyberduck et Mountain Duck intègrent Cryptomator. Si pendant mes tests Cyberduck a bien fonctionné je ne suis pas parvenu à faire fonctionner Mountain Duck de manière satisfaisante, la connexion s’interrompant constamment lors des transfers.

Conclusion

Le niveau de sécurité par défaut de Dropbox ou OneDrive est suffisant pour des documents ne nécessitant pas de précautions particulières, mais insuffisant pour les documents sensibles : je ne recommande pas de stocker des coordonnées bancaires, mots de passe ou des données client sensibles dans le Cloud sans chiffrage complémentaire. De toutes les solutions que j’ai pu essayer, Cryptomator est celle qui offre le meilleur compromis facilité d’utilisation - sécurité.

Un script AppleScript pour envoyer tous les emails vers OmniFocus

Suite à mon article sur OmniFocus 2, un lecteur m’a demandé si je pouvais partager le script qui me sert à fusionner les boîtes de réceptions de Apple Mail et OmniFocus 2. Le voilà.

Attention 1 : à la première exécution le script va créer une tâche OmniFocus pour tous les emails dans la boîte de réception, si vous en avez beaucoup vous risquez de vous retrouver avec des milliers de tâches OmniFocus en plus ! Pour éviter ce problème, ne laissez pas vos vieux emails traîner dans la boîte de réception, déplacez-les vers un dossier Archive.

Attention 2 : n’exécutez jamais du code AppleScript sans en vérifier le contenu et la provenance, il peut être dangereux.

Attention 3 : vérifiez que vous comprenez ce que fait le script et que cela correspond à votre besoin. AppleScript requiert un certain niveau de connaissance technique. Je ne suis pas responsable de ce que le script peut faire sur votre machine.

use AppleScript version "2.4" -- Yosemite (10.10) or later
use scripting additions

property pLastID : 0
property pInboxName : "INBOX"
property pArchiveBoxName : "Archive"

on run
	
	set cbs to ASCII character 92
	set crt to ASCII character 13
	
	tell application "Mail"
		set theMessage to ""
		set theFlaggedMessages to ¬
			(messages of mailbox pInboxName of first account) ¬
				whose flag index is equal to 5
		if (count of theFlaggedMessages) is greater than 0 then
			repeat with theMessage in theFlaggedMessages
				set theTask to my findOmnifocusTask(theMessage)
				if theTask is missing value then
					set flag index of theMessage to -1
					my archiveMessage(theMessage)
				end if
			end repeat
		end if
		set theInbox to mailbox pInboxName of first account
		set theInboxMessages to ¬
			(messages of mailbox pInboxName of first account) ¬
				whose id is greater than pLastID
		
		if (count of theInboxMessages) is greater than 0 then
			delay 10
			repeat with theMessage in theInboxMessages
				set theSender to sender of theMessage as string
				set theSubject to subject of theMessage as string
				set theID to id of theMessage
				set theTitle to theSender & " — " & theSubject
				set theNote to ("message://%3c" & message id of ¬
					theMessage & "%3e" & crt & crt) as rich text
				set theNote to (theNote & content of theMessage)
				set theAttachments to ""
				set theAttachmentsCount to count of ¬
					mail attachment of theMessage
				if theAttachmentsCount is greater than 0 then
					set theMailAttachments to ¬
						mail attachments of theMessage
					repeat with theMailAttachment in theMailAttachments
						set theAttachments to theAttachments & ¬
							name of theMailAttachment & crt
					end repeat
					set theNote to ¬
						theNote & crt & crt & "Attachments:" & ¬
						crt & theAttachments
				end if
				set theTaskID to my makeOmniFocusTask(theTitle, theNote)
				-- set background color of theMessage to none
				set flag index of theMessage to 5
				set read status of theMessage to true
				-- my archiveMessage(theMessage) -- disabled, too buggy.
				set theID to id of theMessage
				if theID is greater than pLastID then
					set pLastID to theID
				end if
			end repeat
		end if
	end tell
	
end run

on findOmnifocusTask(theMessage)
	using terms from application "Mail"
		set theMessageID to (message id of theMessage) as string
	end using terms from
	tell application "OmniFocus"
		tell default document
			try
				set theTask to first flattened task whose completed is false ¬
					and note contains theMessageID
			on error
				set theTask to missing value
			end try
		end tell
	end tell
	return theTask
end findOmnifocusTask

on makeOmniFocusTask(theTitle, theNote)
	tell application "OmniFocus"
		tell default document
			set theTask to make new inbox task with properties ¬
				{name:theTitle, note:theNote}
		end tell
	end tell
	set theTaskID to "omnifocus://%3c" & id of theTask & "%3e"
	return theTaskID
end makeOmniFocusTask

on archiveMessage(theMessage)
	tell application "Mail"
		set theAccount to account of mailbox of theMessage
		set theMailboxArchive to item 1 of ((mailboxes of theAccount) ¬
			whose name is pArchiveBoxName)
		-- The following code did work too to move the message: 
		-- set mailbox of theMessage to theMailboxArchive
		move theMessage to theMailboxArchive
	end tell
end archiveMessage

Comment s’en servir ?

  • Lancer l’éditeur de Scripts (Script Editor en anglais, AppleScript Editor dans les anciennes versions de macOS)
  • Créer un nouveau script, copier-coller le contenu du script ci-dessus, et sauvegarder le script à l’endroit suivant dans votre répertoire utilisateur : /Bibliothèque/Application Scripts/com.apple.mail" (attention, je ne suis pas certain du nom du répertoire Application Scripts en français, si quelqu’un le connaît vous pouvez me l’indiquer sur Twitter ou par email). J’ai appelé le fichier de script rule → omnifocus-sendto
  • Créer une règle dans Apple Mail qui va lancer le script automatiquement.

Règle Apple Mail vers OmniFocus

Que va faire le script ?

Le script va créer une tâche dans OmniFocus pour tous les emails qui sont dans votre boîte de réception, et va leur ajouter un drapeau de couleur violette (la couleur d’OmniFocus) pour indiquer qu’une tâche correspondante a été créée.

À chaque fois que le script est exécuté (donc à chaque fois que vous recevez au moins un nouvel email), le script vérifie si la tâche correspondante dans OmniFocus existe encore ET n’est pas complétée. Si ce n’est pas le cas (la tâche a été complétée ou supprimée) alors le script enlève le drapeau violet de l’email et le déplace vers le dossier Archive.

Notes techniques

Les connaisseurs verront que je n’utilise pas la formulation recommandée on perform mail action with messages... pour déclencher le traitement. C’est simplement parce que elle est trop buggée, et ce depuis des années. Au lieu de cela j’utilise une technique pour identifier les nouveaux emails qui est de garder en mémoire l’ID du dernier email qui a été traité (pLastID).

Il y a une procédure nommée archiveMessage. Ne changez pas le script pour archiver le message dès sa réception ; il y a un bug dans Mail qui fait que certains messages risquent d’être perdus si vous le faites (je crois que c’est lié au fait que Mail archive le message alors qu’il n’a pas fini d’être chargé depuis le serveur, mais je ne suis pas certain).

Le storytelling ce n'est pas (que) raconter une anecdote personnelle

« Ta présentation doit faire plus storytelling, il faut que tu ajoutes une histoire personnelle ! »

Pour diverses raisons de nombreuses personnes assimilent aujourd’hui le storytelling au fait de raconter des anecdotes personnelles. Vous savez, du genre « j’étais en train d’éplucher les légumes lorsque tout à coup une idée me traversa l’esprit… » Pourtant le storytelling, ce n’est pas ça. En tout cas, ce n’est pas QUE ça.

storytelling ≠ anecdote personnelle

Tout d’abord il est possible de raconter une anecdote personnelle sans faire de storytelling. « Le 30 juin, je me suis levé, j’ai pris ma douche, j’ai pris mon petit déjeuner, constitué d’un bol de 25g corn flakes avec 30 ml de lait. » C’est une anecdote personnelle, mais ce n’est pas du storytelling. Ce n’est pas du storytelling car cette anecdote ne crée aucune émotion. Ça ne crée aucune émotion car ça n’a aucun intérêt. Il n’y a rien de surprenant, rien de nouveau, rien d’intriguant.

Mais surtout il est possible de faire du storytelling sans raconter d’anecdote personnelle. Chaque fois que vous surprenez le public, vous faites du storytelling. Chaque fois que vous captez l’attention du public, vous faites du storytelling.

Chaque fois que vous déclenchez des émotions et donnez du sens, vous faites du storytelling.

Hans Rösling est un excellent exemple de présentateur qui utilise le storytelling pour rendre des données chiffrées intéressantes. Il utilise de temps en temps des anecdotes personnelles, mais celles-ci ne sont jamais le cœur de ses présentations.

Hans Rösling

Voir les présentations de Hans Rösling sur TED

En conclusion ? Les anecdotes personnelles bien racontées sont une forme de storytelling, mais pas la seule. De fait une présentation basée uniquement sur des anecdotes personnelles sera peut-être intéressante, mais risque de manquer de hauteur et peut n’avoir pas beaucoup de sens pour le public. Le storytelling est beaucoup plus large, et englobe l’ensemble des techniques narratives qui donnent du sens, déclenchent des émotions auprès du public et rendent le contenu simple à comprendre.

OmniFocus 2 affiche la boîte de réception dans les projets

il y a quelques semaines j’ai publié un test d’OmniFocus 2. Un des griefs principaux que je faisais était l’impossibilité d’afficher la boîte de réception en même temps que les projets. Et bien magie, OmniFocus 2.10 vient d’ajouter cette fonctionnalité !

C’est beaucoup plus logique et plus rapide de traiter sa boîte de réception de cette manière : on traite les différentes actions, et celles qui doivent aller dans un projet peuvent être directement glissées-déposées dans le bon projet, au bon endroit.

Pour l’activer, allez dans les préférences d’OmniFocus, onglet organisation, et cochez la case pour afficher la boîte de réception dans les projets.

J’espère que Omni Group continuera de faire ces améliorations au fil du temps.

Souvenir : les slides de Steve Jobs en 1997

Les slides de Steve Jobs… en 1997.

Steve Jobs est connu pour ses slides épurés et n’affichant que l’essentiel. C’est fou comme on peut oublier que ce n’a pas toujours été le cas. Pour preuve ces exemples de slides ressortis de la WWDC de 1997. Il faut cependant remarquer que Steve Jobs venait juste de revenir chez Apple, et que Gil Amelio était toujours aux commandes ; Steve Jobs n’avait certainement pas choisi lui-même ce style de diapositives.

Exemple de Slide de la WWDC 1997

C’est un excellent rappel que ce qui nous semble moderne, beau et propre un jour peut avoir l’air totalement ringard et dépassé quelques années plus tard.

La tendance actuelle du « flat design » est une réponse aux années de 1990 à 2010 où tout était avec des effets d’ombrage de relief. À l’époque ces effets étaient nouveaux, mais aujourd’hui tout le monde peut les faire facilement, et ils n’ont plus rien de surprenant ; au contraire, à partir du moment ou ces effets ont pu être utilisés par tout le monde pour l’invitation d’anniversaire de leur enfant, ils ont perdu tout impact.

Le flat design va probablement trop loin dans l’autre sens, trop loin vers une abstraction totale entre la représentation d’un objet et son utilité. Mais ça c’est une autre histoire.