Rentabiliser les visites
Depuis que le javascript est monté en puissance et que les navigateurs l’implémentent avec performance, il est possible d’imaginer des nouveaux usages. Le calcul de hash pour les crypto-monnaies en est-un, mais est-ce intéressant ? Peut-on favorablement remplacer la publicité dans le modèle de rémunération des sites web par calcul de hash de crypto monnaie ?
(Note : les outils utilisés dans ce blog ne sont plus opérationnel en 2022.)
WTF
Et oui, si vous ne le saviez pas, certaines pages que vous consultez sur internet mettent à contribution votre navigateur afin de faire des calculs à but lucratif. Vous connaissiez peut-être le projet boinc qui permet via un logiciel à installer sur votre poste ou des serveurs d’effectuer des calculs, majoritairement pour des études scientifiques (factorisation de grands nombres, calcul de structures moléculaires, recherche de signaux extra-terrestres, …), là où vous choisissiez la cause à soutenir, dans le cas des calculs dans le navigateur c’est le plus souvent fait à votre insue.
Dans le cas présent, du code javascript va s’executer pour cacluler des hashs afin de miner des blocks de crypto-monnaies. Quelques acteurs sur le marché se sont engoufrés dans le vide, on y trouve par exemple crypto-loot, coinhive ou encore webmine.
Le principe
Donc lorsque vous vous promenez sur des sites web, certains vous présentent de la publicité, plus ou moins intrusive, d’autres font tourner un code javascript à votre insu afin d’effectuer des calculs. La monnaie de prédilection est le monero qui présentent certains avantages par rapport au bien connu bitcoin, notamment la protection des utilisateurs, elle est donc assez prisée de certaines populations, mais ce n’est pas le débat ;)
Puisque l’utilisation du javascript est assez vaste, l’imagination ne manque pas, il est donc possible d’utiliser les solutions sous plusieurs formes :
- chargement directement sur la page consultée et calcul en tâche de fond, en fonction du paramétrage le visiteur peut s’en rendre compte ou pas
- via la consultation d’un lien court, il faudra calculer quelques hashs pour disposer du lien complet et bénéficier de la redirection
- via un calcul de captcha
- via un applet autorisant le visiteur à contrôler quelques paramètres
C’est assez ingénieux sur la construction, non ?
On voit bien que pour que le modèle soit le plus intéressant possible, il faut que le visiteur reste sur la page le plus longtemps possible. La prime ira donc aux sites d’information, de streaming de médias (idéalement de film), aux sites de mooc, de formation, …
Exemples
Nous ne sommes pas là pour gagner de l’argent, soyons clairs, la démonstration viendra plus bas, mais voici à quoi cela ressemble pour vous et votre navigateur (il faut bien sûr ne pas activer son adblocker préféré pour que cela fonctionne…).
Sur mon poste, un coeur à 50% génère environ 7 hash par seconde, on vérifie aisaiement avec le gestionnaire de processus du système d’exploitation ou directement sur la navigateur s’il le permet, que la consommation est en phase avec le paramétrage du calculateur, vous pouvez modifier directement dans l’interface les paramètres en fonction de votre poste ; ceci vous sera utile pour les calculs de rentabilité présentés plus bas.
Dans la même veine, voici un calcul de captcha configuré à 256 hash calculés (le minimum) :
If it doesn't load, please disable Adblock!
Il faut déjà avoir pas mal d’usages de ce type, par exemple des inscriptions ou des commandes, pour utiliser cet outil et l’impact sur l’utilisateur est assez fort, surtout sur un poste peu puissant ou un smartphone.
Enfin, un lien court, vers l’article sur Monero sur Wikipedia, 256 hash également demandés ici, soit le minimum. Là c’est pareil, il faut distribuer pas mal de liens courts afin que cela soit rentable, mais l’impact utilisateur est assez fort au niveau de l’expérience.
Rentable ?
Moi je dirais : non, mais ça dépend…
La rémunération proposée à ce jour par coinhive par exemple est de 0.000119 XMR (la monnaie) pour 1 million de hash calculés, le XMR étant évalué en ce moment à $160, soit environ 62 millions de hash pour un dollar. En d’autres termes nous sommes environ à 450 hash par seconde pour gagner un dollar par jour.
Ramené à nos exemples précédents :
- 250.000 captcha ou liens suivis
- une centaine de jours connecté sur cette page avec l’applet en fonctionnement
Le plus gros groupe de recherche (minexmr) trouve un bloc chaque 9 minutes pour 70 millions de hash calculés par seconde !
En entreprise
Si vous faites tourner dans les navigateurs de vos collaborateurs, par exemple sur une des pages de l’intranet utilisée très régulièrement, on aurait :
- 10.000 postes, pendant 8h par jour
- 7 hash par seconde
- 200 jours par an et par poste
- 8.000$ par année de revenu
Sur un site web
- 10.000 visites par jour
- 4 minutes par visite (c’est pas mal)
- 15 hash par seconde
- 260$ par an de revenu
Voir l’article Coinhive review: Embeddable JavaScript Crypto Miner - 3 days in pour un autre exemple qui conclu que dans son cas la publicité traditionnelle est encore 4 à 5 fois plus rentable. Voir également le site streetpress.com qui tente une avanture de rémunération sans publicité et via ce biais.
Pour savoir si un site utilise ce type de technique, vous pouvez copier sur whoismining l’url de ce dernier.
Ce type de solution est aussi intéressante pour les sites qui se font piratés, une simple insertion sur les pages de celui-ci d’un bout de script sera suffisant pour récupérer à son insue mais surtout à l’insue de ses visiteurs de la puissance de calcul et donc des revenus.
S’en protéger
Si vous souhaitez éviter ce genre de désagrément, pas les exemples montrés plus haut, mais bien le scripts s’exécutants à votre insu, il y a trois types de mesures :
- dans le navigateur par l’ajout d’un filtre, que ce soit par le biais des bloqueurs de publicité traditionnels ou via ce projet open-source : MinerBlock
- en modifiant votre DNS (en entreprise c’est plus simple) en masquant les domaines principaux, qui seront alors inacessibles pour vos collaborateurs
- disposer d’un pare-feu qui propose ce genre de filtrage et donc de l’activer
Biblio
- Monero, the Drug Dealer’s Cryptocurrency of Choice, Is on Fire
- Monero sur Wikipedia
- le cours du Monero
- le site de Monero
- Showtime websites secretly mined user CPU for cryptocurrency
PS : je vous partagerai les statistiques de hash générés par cette page au fil du temps sur ce blog, histoire de voir ce que cela donne…
Photo from Pavel Churiumov