Tutti gli articoli di Marco

Moneygoer is coming soon

After several years where I used a paid version of moneyGuru I’ve started a new project called Moneygoer as a replacement application for my personal finance.

I chose di start my own application because moneyGuru was not updated anymore since the last 2 years and the author cannot keep it up to date with the last releases of macOS.

I’d like to keep alive this beautiful project but after thinking about it I preferred to start a new project developed in objective-c and fully compatible with latest macOS standards.

At the moment I’m not interested to build a multi-platform application.

Personally I can’t stand python language even if it is a powerful language. I’m feel better with other old-fashioned languages more compliant with macOS.

Stay tuned.

Backup sistema Linux con rsync

Per fare un backup completo dell’intero sistema Linux tramite l’utility rsync eseguire da terminale il comando:

$ sudo rsync -aAXv  --delete --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / /mnt/<backup_disk_mount_point>

Il comando esegue una copia completa della radice /, escludendo le directory /dev, /proc, /sys, /tmp, /run, /mnt, /media, /lost+found, sulla directory /mnt/<backup_disk_mount_point>.

Sostituire backup_disk_mount_point con il nome della directory dove è stato montato il disco esterno come destinazione del backup.

Nel dettaglio:

  • rsync – un’utility per la copia dei file sia in locale che in rete, standard sulla maggior parte delle distribuzioni Linux.
  • -aAXv – i files vengono trasferiti in modalità “archivio” mantenendo permessi, attributi, proprietà e link simbolici.
  • –delete – elimina  nelle destinazione i file non presenti nella sorgente.
  • –exclude – elenco delle directory da escludere dal processo di copia.
  • / – directory sorgente.
  • /mnt/<backup_disk_mount_point> – directory di destinazione.

La cosa più importante da tenere presente è quella di escludere la path della destinazione, altrimenti rsync entrerà in una sorta di loop infinito.

Ripristino

Per effettuare il ripristino è sufficiente rilanciare il comando invertendo sorgente e destinazione.

The Development of the C Language

by Dennis M. Ritchie, Bell Labs/Lucent Technologies

The C programming language was devised in the early 1970s as a system implementation language for the nascent Unix operating system. Derived from the typeless language BCPL, it evolved a type structure; created on a tiny machine as a tool to improve a meager programming environment, it has become one of the dominant languages of today. This paper studies its evolution.

Read the paper: The development of the C Language

The first collision for full SHA-1

by Marc Stevens, Elie Bursztein, Pierre Karpman, Ange Albertini, Yarik Markov

SHA-1 is a widely used 1995 NIST cryptographic hash function standard that was officially deprecated by NIST in 2011 due to fundamental security weaknesses demonstrated in various analyses and theoretical attacks.

Despite its deprecation, SHA-1 remains widely used in 2017 for document and TLS certificate signatures, and also in many software such as the GIT versioning system for integrity and backup purposes.

A key reason behind the reluctance of many industry players to replace SHA-1 with a safer alternative is the fact that finding an actual collision has seemed to be impractical for the past eleven years due to the high complexity and computational cost of the attack.

In this paper, we demonstrate that SHA-1 collision attacks have finally become practical by providing the first known instance of a collision. Furthermore, the prefix of the colliding messages was carefully chosen so that they allow an attacker to forge two PDF documents with the same SHA-1 hash yet that display arbitrarily-chosen distinct visual contents.

We were able to find this collision by combining many special cryptanalytic techniques in complex ways and improving upon previous work. In total the computational effort spent is equivalent to 263.1 SHA-1 compressions and took approximately 6 500 CPU years and 100 GPU years. As a result while the computational power spent on this collision is larger than other public cryptanalytic computations, it is still more than 100 000 times faster than a brute force search.

Read the full paper: The first collision for full SHA-1