Bitcoin ?

Publication initiale: 25 mars 2017

Bonjour,

Hop je me lance pour tenter de comprendre les bitcoins, comment le portefeuille (wallet) est-il stocké, et où ?

Maintenant que j’ai un compte et un wallet, j’accepte des encouragements sur

1B9zJrfVJgRuhsdygayBPYB2ij3WnRSv9v

Pour le moment j’utilise bitpay sur PC et Android pour mon wallet, et Coinbase pour les entrées/sorties de fonds BTC <-> EUR

On sait que l’émission de BTC est strictement limitée dans le temps à 21 millions de BTC.

Alors que depuis bien longtemps, les Etats ayant le contrôle des monnaies officielles peuvent émettre des nouvelles coupures à leur guise sans avoir de contrepartie en or (ou en autre richesse matérielle).

Il n’est donc pas faux de penser que tout ce qui est rare pouvant être cher, le BTC finisse par conserver de la valeur. Mais en même temps, c’est du vent, encore plus que les monnaies officielles.

Quelques liens utiles:
bitcoin.org
slate.fr (article en 2014)
documentaire (en anglais) youtube.com/watch?v=CTbyaj8Y-Co
hard fork, et l’augmentation du cours d’août 2017 youtube.com/watch?v=qy0EIVH65Kg


Edit 6 janvier 2018:
Quelques liens à propos du minage, de la rétribution des mineurs, etc.

Plus le temps avance, au moins les mineurs sont rétribués.

Plus il y a des mineurs, plus la difficulté de miner augmente. A un moment, la récompense ne couvrira plus l’infrastructure ni le coût de l’électricité consommée en fonction de la difficulté. Aujourd’hui il faut faire de l’ordre de deux mille milliards de calculs inutiles pour en faire un seul utile. Celui qui a la chance de faire ce calcul utile est récompensé de 12,5 BTC. Le système s’auto-régule pour qu’une récompense soit octroyée de l’ordre de toutes les 10 minutes parmi tous les mineurs de par le monde.

Gizmodo: la Chine demande de diminuer la consommation d’électricité https://gizmodo.com/chinas-crackdown-on-crypto-mining-threatens-bitcoins-fu-1821820017/amp (5 janvier 2018)

Paramètre “difficulty” dans le minage des BTC: explications https://www.bitcoinmining.com/what-is-bitcoin-mining-difficulty/ et graphiques sur le court terme https://blockchain.info/fr/charts/difficulty et le long terme https://data.bitcoinity.org/bitcoin/difficulty/5y?t=l

Sonoff – programmation du bouton et de la LED

Cet article fait suite à un article précédent.

J’ai acheté plusieurs relais Sonoff et je les ai flashés (reprogrammés) avec l’excellent logiciel ESP Easy de Lets Control It.

Pour flasher l’appareil il y a de multiples articles et videos Youtube qui expliquent comment faire. Il faut avoit un UART USB (interface USB vers port série à 3,3 volts) et savoir manipuler un fer pour souder une barrette de 4 jumpers sur la carte mère du Sonoff.

J’ai utilisé la version 2.0.0.-dev12 du logiciel ESP Easy.

Je considère que vous êtes arrivé à enregistrer le mot de passe de votre réseau WiFi dans le Sonoff à ce stade.

Dans cet article, je vais indiquer comment j’ai activé les fonctions basiques du bouton poussoir et de la LED d’état.

Je vais passer en revue les différents écrans de configuration.


Ecran principal


Ecran de configuration de base: donnez un nom unique à votre Sonoff, ainsi qu’une adresse IP fixe. En ce qui me concerne j’ai opté pour une réservation fixe DHCP: le serveur DHCP attribue toujours la même adresse IP sur base de l’adresse MAC.


Dans l’onglet Controllers il y aura lieu d’indiquer les coordonnées de votre serveur domotique si vous en avez un (par exemple Domoticz, ce sera peut-être l’objet d’un article suivant)


Dans l’onglet Hardware, il n’y a rien à modifier (pour le moment).


Voici l’écran Devices. On va éditer la ligne 1 et ensuite la ligne 2, comme décrit ci-dessous.


Détail de l’édition de la ligne 1 de Devices, déclaration du bouton poussoir.


Détail de la ligne 2, déclaration du relais.


Cette phase est importante. Il s’agit des actions que le Sonoff prendra lors d’événements.
– A chaque reboot, envoi d’un mail et positionnement de la sortie (GPIO12) à l’état allumé.
– A chaque pression du bouton, changement de l’état de la sortie GPIO12 ON ou OFF.
– A chaque changement d’état de la sortie GPIO12, changer l’état de la LED (GPIO13, 0=allumée, 1=éteinte)
Notez que pour faire apparaître le menu “Rules” il faudra d’abord lire la suite de l’article. Le script se trouve plus bas pour vous permettre un copier/coller.


Configuration de la notification n° 1.


Configuration du serveur e-mail pour les notifications. Vous pouvez opter pour le serveur mail de votre fournisseur internet, si celui-ci ne vous oblige pas d’authentification ni d’encryptage SSL ou TLS.


Pour finir, une page importante, dans Tools, choisir Advanced.
Cocher “Rules” pour pouvoir accéder à ce menu.
Vous pouvez aussi cocher NTP et le configurer, afin que votre SONOFF connaisse la date et l’heure.


Comme promis voici le script de l’étape ci-dessus “Rules”:

on System#Boot do 
 notify 1,Rebooted
 gpio,12,1
endon

on bouton#Switch do
 if [relais#Switch]=1
 gpio,12,0
 else
 gpio,12,1
 endif
endon

on relais#Switch do
 if [relais#Switch]=1
 gpio,13,0
 else
 gpio,13,1
 endif
endon

Comment trouver les doublons dans un gros répertoire ?

Que ce soit de la musique, des dossiers, des images, il est parfois utile de partir à la recherche des doublons sur vos gros disques de stockage, afin de les trier et les éliminer.

Pour cela, on va utiliser un algorithme d’empreinte digitale sur chaque fichier et chercher les empreintes qui apparaissent de multiples fois.

Avec l’algorithme MD5 l’empreinte de n’importe quel fichier a toujours la même longueur de 32 caractères hexadécimaux ce qui nous suffit amplement pour cette application : 3 x 1038 combinaisons possibles (à comparer au Lotto 3 x 109 combinaisons).

Le nom des fichiers et leur date ne sont pas pris en compte pour la comparaison.

Mise en oeuvre, en utilisant Cygwin sous Windows.

1) Générer un fichier texte contenant toutes les empreintes MD5

cd /cygdrive/d/photos
find . -type f -iname "*.jpg" -exec md5sum {} \; >> ../photos.md5.txt

Le fichier va contenir des milliers de lignes semblables à celles-ci:

ffec08582acee50e888c0eb8ef0f66c2 *./g/piscine 16-02/111_1107.JPG
058985e2dcedb7a6692f3fbbecf86a91 *./g/piscine 16-02/111_1108.JPG
ed166e0b101812f8902086f4a3d1d354 *./g/piscine 16-02/111_1109.JPG
87ea7756e7dd8dbd2bd443cf179943f7 *./g/piscine 16-02/111_1110.JPG
3e2ed3ec9267119cfd234d907faff1f4 *./g/piscine 16-02/111_1111.JPG
b092ccabea875fb24725b25addb9eb5f *./g/piscine 16-02/111_1114.JPG
cb21d2e1daa65b7bb7b96d35741edb2c *./g/piscine 16-02/111_1116.JPG
41cedebb2579eb820f4545cd864c23be *./g/piscine 16-02/111_1119.JPG
3e2ed3ec9267119cfd234d907faff1f4 *./g/piscine 16-02/double_111_1111.JPG

2) La commande suivante va révéler tous les fichiers qui sont en double ou en multiples copies.

sort ../photos.md5.txt|uniq -w 32 -D|sort -k1.33|less

résultat:

3e2ed3ec9267119cfd234d907faff1f4 *./g/piscine 16-02/111_1111.JPG
3e2ed3ec9267119cfd234d907faff1f4 *./g/piscine 16-02/double_111_1111.JPG

Vous pouvez effacer toutes les copies sauf une, et ça c’est votre travail.

Explication sur les commandes utilisées:

find : trouve les fichiers correspondant au critère demandé ; le paramètre -exec ordonne d’exécuter la commande md5sum sur la liste de fichiers retournés par find.

md5sum : calcule l’empreinte md5 sur chacun des fichiers dont les noms sont passés en paramètre et l’affiche sur stdout.

sort : trie un fichier vers stdout. Aucun paramètre n’est passé donc le tri commence sur la 1è position de chaque ligne. Le fichier sera donc trié par empreinte md5.

uniq : identifie les lignes qui sont uniques ou celles qui ne le sont pas ; le paramètre -w 32 ordonne de ne prendre en compte que les 32 premières positions, c’est-à-dire l’empreinte md5. Le paramètre -D ordonne d’afficher toutes les lignes pour lesquelles le critère n’est pas unique.

sort : avec le paramètre -k1.33 ordre de trier à partir de la 33è position, donc par nom de fichier.

less : permet de naviguer dans les résultats. On pourrait aussi l’orienter vers un fichier avec > fichier.txt

Si on doit lire ce fichier sous Windows, il convient d’utiliser un autre programme que Notepad.exe (bloc-notes), par exemple Wordpad. Sinon les fins de lignes ne sont pas respectées et c’est illisible.

Dépoussiérage d’un laptop (archives août 2015)

Quand votre laptop commence à mouliner comme un fou même en l’absence de calcul intensif, il y a de fortes chances qu’il soit encrassé avec de la poussière. Surtout lorsque vous l’utilisez au lit ou dans le canapé en tissu.

Je vous suggère de faire un premier diagnostic au moyen de CPU-Z (CPUID) qui vous permet de relever les températures. Si vous avez des composants au-dessus de 80 °C ça commence à devenir chaud…

Ouverture

Rangement des vis en répérant leur position d’origine

Carte-mère et clavier

Chassis

Refroidisseur, avec le ventilateur démonté

Gros plan sur l’obstruction

Un petit coup d’aspi…

… et c’est reparti… “yapluka” tout remonter.

Rhââ ! Un bad-block !

Bonjour,

Ca fait un paquet d’années que je fais mes backups vers un petit serveur dédié équipé d’un disque de 2 TB (Kimsufi offre spéciale décembre 2012). (lire ce que j’avais écrit à cette époque)

Le disque a déjà crashé une fois dans le passé, et il a été remplacé, ce qui m’a valu de tout réinstaller.

Grâce à une surveillance automatique des paramètres S.M.A.R.T. les signes avant-coureurs m’avaient permis de prendre mes dispositions.

Et maintenant, voilà qu’il y a de nouveau un bad-block.

D’expérience, si un block est illisible ça vaut la peine de réécrire à cet endroit sur le disque. Soit le contrôleur arrive à écrire à cet endroit qui redevient utilisable, soit il réalloue le bloc dans une réserve. Dans les deux cas le disque est à nouveau propre pour l’operating system.

J’avais plus de 100 GB de libre sur un autre serveur. Et par chance le bad block se trouve dans la petite partition Linux et non dans la grosse partition /home.

Voici comment j’ai procédé. L’autre serveur (l’un et l’autre se trouvent de part et d’autre de l’Atlantique) a pu accueillir les sauvegardes.

root@srv4:~# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/root 20026236 12384660 6601244 66% /
devtmpfs 2009980 0 2009980 0% /dev
tmpfs 2010508 0 2010508 0% /dev/shm
tmpfs 2010508 9760 2000748 1% /run
tmpfs 5120 0 5120 0% /run/lock
tmpfs 2010508 0 2010508 0% /sys/fs/cgroup
/dev/sda3 1902052484 937731384 867679412 52% /home

 

# fdisk /dev/sda
Command (m for help): p
Disk /dev/sda: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: A811DA9B-19C7-46A3-BA18-8770041AD73C

Device Start End Sectors Size Type
/dev/sda1 40 2048 2009 1004.5K BIOS boot
/dev/sda2 4096 40962047 40957952 19.5G Linux filesystem
/dev/sda3 40962048 3905974271 3865012224 1.8T Linux filesystem
/dev/sda4 3905974272 3907020799 1046528 511M Linux swap

 

Le bad block se trouvant dans la partition Linux, il faut impérativement booter sur un live-CD ou via le réseau. Chez OVH un environnement “rescue” est proposé. Je n’ai utilisé que le mode “command-line”.

Sauvons tout ce qu’il y a moyen, y compris la table de partition, la partition boot gpt, puis la partition /root linux.

root@rescue:~# dd if=/dev/sda bs=512 count=40| ssh user@srv3.dmmail.eu "cat > srv4.sda.0-40.dd.raw"
40+0 records in
40+0 records out
20480 bytes (20 kB) copied, 0.000505364 s, 40.5 MB/s
user@srv3.dmmail.eu's password:
root@rescue:~# dd if=/dev/sda bs=512 count=4096| ssh user@srv3.dmmail.eu "cat > srv4.sda.0-2048.dd.raw"
4096+0 records in
4096+0 records out
2097152 bytes (2.1 MB) copied, 5.57779 s, 376 kB/s
root@rescue:~# dd if=/dev/sda1 bs=512 | ssh user@srv3.dmmail.eu "cat > srv4.sda1.dd.raw"
2009+0 records in
2009+0 records out
1028608 bytes (1.0 MB) copied, 5.66955 s, 181 kB/s
root@rescue:~# dd if=/dev/sda2 bs=512 | ssh user@srv3.dmmail.eu "cat > srv4.sda2.dd.raw"
i/o error

Arrêt prématuré: ce fichier dump est incomplet. Il faut recommencer, en passant outre les bad blocks. (option conv=noerror,sync de la commande dd)

root@rescue:~# dd if=/dev/sda2 bs=512 conv=noerror,sync| ssh user@srv3.dmmail.eu "cat > srv4.sda2.dd.raw"

Une copie supplémentaire qui permettra de retrouver quel est le fichier manquant (celui affecté par le bad block)

# find . -print |cpio -ocBv | ssh user@srv3.dmmail.eu "cat > srv4.sda2.cpio.raw"

Etonamment pas de message d’erreur. Il n’y a probablement aucun fichier impacté. Le file system ext4 a dû marquer ce bloc, mais je n’ai pas cherché.

Réécriture complète de tous les blocks de la partition en question, au moyen de l’utilitaire approprié

# badblocks -w /dev/sda2

A nouveau pas de message d’erreur

Récupération

# ssh user@srv3.dmmail.eu cat srv4.sda2.dd.raw| dd of=/dev/sda2

Test:

# mount /dev/sda2 /mnt
cd /mnt ; ls ; du -sh * ; cd / ; umount /mnt

tout est là

# fsck -pvcf /dev/sda2
fsck from util-linux 2.25.2
/dev/sda2: Updating bad block inode.

46964 inodes used (3.67%, out of 1281120)
 86 non-contiguous files (0.2%)
 63 non-contiguous directories (0.1%)
 # of inodes with ind/dind/tind blocks: 0/0/0
 Extent depth histogram: 41031/81/1
 3209273 blocks used (62.68%, out of 5119744)
 0 bad blocks
 ^^^^^^^^^^^^^^^^^^ yeah !
 1 large file

37606 regular files
 3338 directories
 15 character device files
 102 block device files
 2 fifos
 20 links
 5864 symbolic links (5696 fast symbolic links)
 28 sockets
------------
 46975 files

Le paramètre 197 Current_Pending_Sector est revenu à zéro.

# smartctl -a /dev/sda

...
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
 1 Raw_Read_Error_Rate 0x000b 100 100 016 Pre-fail Always - 0
 2 Throughput_Performance 0x0005 136 136 054 Pre-fail Offline - 80
 3 Spin_Up_Time 0x0007 100 100 024 Pre-fail Always - 486
 4 Start_Stop_Count 0x0012 100 100 000 Old_age Always - 7
 5 Reallocated_Sector_Ct 0x0033 100 100 005 Pre-fail Always - 0
 7 Seek_Error_Rate 0x000b 100 100 067 Pre-fail Always - 0
 8 Seek_Time_Performance 0x0005 145 145 020 Pre-fail Offline - 24
 9 Power_On_Hours 0x0012 098 098 000 Old_age Always - 14717
 10 Spin_Retry_Count 0x0013 100 100 060 Pre-fail Always - 0
 12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 7
192 Power-Off_Retract_Count 0x0032 100 100 000 Old_age Always - 604
193 Load_Cycle_Count 0x0012 100 100 000 Old_age Always - 604
194 Temperature_Celsius 0x0002 166 166 000 Old_age Always - 36 (Min/Max 16/47)
196 Reallocated_Event_Count 0x0032 100 100 000 Old_age Always - 0
197 Current_Pending_Sector 0x0022 100 100 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0008 100 100 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x000a 200 200 000 Old_age Always - 0




ATA Error Count: 47 (device log contains only the most recent five errors)
Error 47 occurred at disk power-on lifetime: 14714 hours (613 days + 2 hours)
 When the command that caused the error occurred, the device was active or idle.

J’espère juste qu’on est reparti pour un bail, et que le problème ne va pas ressurgir trop vite.

J’avais entretemps envisagé d’utiliser Amazon Cloud Drive pour m’affranchir des problèmes mécaniques, mais je me suis trouvé confronté à d’autres problèmes (manque d’accessibilité depuis un environnement Linux). Peut-être écrirai-je un article là-dessus mais rien n’est sûr.

J’ai donc renoncé à l’abonnement de test gratuit de 3 mois, après une demi-semaine.

Sur l’autre serveur j’ai ceci en réserve:

-rw-r--r-- 1 user user 2097152 Sep 10 17:00 srv4.sda.0-2048.dd.raw
-rw-r--r-- 1 user user 20480 Sep 10 16:59 srv4.sda.0-40.dd.raw
-rw-r--r-- 1 user user 1028608 Sep 10 17:01 srv4.sda1.dd.raw
-rw-r--r-- 1 user user 1456424960 Sep 10 19:57 srv4.sda2.cpio.raw
-rw-r--r-- 1 user user 20970471424 Sep 10 18:17 srv4.sda2.dd.raw

 

Et si demain votre TV se faisait pirater via les ondes ?

Après le gros piratage du vendredi 12 mai 2017, où de grosses sociétés se sont fait rançonner leurs précieux fichiers, ce serait au tour des “Smart TV” de se faire pirater, via un virus injecté par les ondes TV ?

Les Smart TV contiennent un ordinateur embarqué. Ce n’est plus une TV comme celle de papa maman.

Un chercheur équipé d’un émetteur a prouvé pouvoir prendre possession de l’ordinateur se trouvant dans la TV Samsung, et à partir de là, utiliser la TV pour se faufiler plus loin dans le réseau des appareils de la maison. Lisez plutôt (article en anglais)

https://arstechnica.com/security/2017/03/smart-tv-hack-embeds-attack-code-into-broadcast-signal-no-access-required/

… 

The proof-of-concept exploit uses a low-cost transmitter to embed malicious commands into a rogue TV signal. That signal is then broadcast to nearby devices. It worked against two fully updated TV models made by Samsung. By exploiting two known security flaws in the Web browsers running in the background, the attack was able to gain highly privileged root access to the TVs. By revising the attack to target similar browser bugs found in other sets, the technique would likely work on a much wider range of TVs.

“Once a hacker has control over the TV of an end user, he can harm the user in a variety of ways,” Rafael Scheel, the security consultant who publicly demonstrated the attack, told Ars. “Among many others, the TV could be used to attack further devices in the home network or to spy on the user with the TV’s camera and microphone.”

Piqûre de rappel : alerte aux ransomwares (rançongiciels) ! L’antivirus c’est VOUS !

Ces derniers temps arrivent chaque jour un à plusieurs e-mails, qui ne sont pas détectés par les antispams et antivirus.

Ces messages sont libellés en français et se ressemblent tous. (jusqu’à la prochaine fois)

Ils annoncent pour la plupart une facture non attendue, provenant d’un tiers inconnu.

Ici on a deux variantes: ceux qui contiennent une pièce jointe (par exemple .DOC, .PDF, .JS ou .ZIP) et ceux qui contiennent juste un lien de téléchargement (souvent dropbox)

  1. N’ouvrez pas la pièce jointe.
  2. Ne téléchargez pas la pièce jointe.
  3. Si vous l’ouvrez quand même, et que Windows vous demande d’exécuter quelque chose, refusez.
  4. Enfin faites régulièrement les mises à jour de vos logiciels Windows, Office, Adobe Reader, Flash, Java,  et ceci uniquement depuis les sources autorisées (sites des éditeurs ou mises à jour automatiques).
  5. Ne jamais mettre à jour un lecteur vidéo parce qu’un site vous demande de le faire ! Virus garanti !
  6. Avez-vous une copie de vos fichiers importants en un autre endroit ?

Les rançongiciels ou ransomwares représentent un “marché” juteux. Ne le financez pas !

Voici un exemple d’aujourd’hui:

Réception d’un e-mail que voici:

Faites comme je dis et ne faites pas comme je fais. Ne téléchargez pas le lien.

Celui-ci contient un fichier ZIP. Ce ZIP contient un bout de programme et une image imitant le logo d’authenticité Norton

Le fichier 610625.js contient un logiciel hostile qui n’est pas le virus. Au contraire il va se connecter sur un site internet, télécharger le virus et puis lancer l’exécution.

Ce fichier 610625.js est détecté par un seul antivirus sur 45.

A ce stade donc sachez que l’antivirus c’est vous, et ne prenez pas le risque de voir tous vos documents, photos, et autres dossiers séquestrés contre paiement d’une rançon de 1000€ ou plus, ou même définitivement effacés.

Je répète: avez-vous une copie récente de vos fichiers ? En cas de cambriolage ou d’incendie, cette copie sera-t-elle préservée ?

 

Belfius: quand une app demande trop de droits

J’ai contacté Belfius par téléphone le 19 avril et par e-mail le 20 avril (directmobile@…)
Apparemment ma question les embête car j’attends toujours une réponse.

Voici la question:

Pourquoi la mise à jour de l’application Belfius Mobile sur Android exige-t-elle le droit d’accéder aux pièces jointes des mails ? en plus de tous les droits qu’elle avait déjà…

Voici la capture d’écran

Update 26 avril: j’ai eu un contact hier soir. Ca va peut-être bouger.

Update: d’après les explications fournies par Belfius: utilisation d’un kit de développement pour envoyer des messages signés par fingerprint ; tests insuffisants n’ayant pas mis en évidence ce problème ; ce kit est probalement la cause de ce message uniquement sous Android 5 ; … Bref je désinstalle l’app. Il n’y aura probablement plus de mise à jour de cet article.