Federico Fuga

Engineering, Tech, Informatics & science

Cos'è l'Hardware Attestation e cosa c'entra con Immuni

20 Oct 2020 13:18 +0000 Android cybersecurity
In fondo alla pagina della dashboard di Immuni, che oggi riporta 902 utenti Positivi e 17900 notifiche inviate, è comparso le due annotazioni qui sopra riportate. In particolare la seconda mi ha per un attimo lasciato interdetto. L’Hardware Attestation è un metodo per autenticare gli accessi alle API delle applicazioni, per fare in modo, cioè, che solo una app possa accedere ed usufruire di un servizio, escludendo quindi browser e software vari, come molti ricercatori stanno facendo in questi giorni, me compreso. Continue reading

Creating and using debug symbol tables with CMake and gdb

28 Jan 2020 14:36 +0000 Embedded
Introduction When working with a big project on a resource constrained embedded hardware, it might be difficult to debug it properly on the target board. Executables and libraries compiled in Debug mode are big, bloated and slow. To proper debug them in GDB, you need compile symbols, otherwise you’ll not be able to understand what a stack trace means. Sometimes it may be useful to structure your project so that it can be debugged with emulators, mocks and simulated devices on a PC; it is a wise choice because emulators and mocks speed up debugging and developing when other parts (especially hardware and firmware) are not ready yet. Continue reading

Blockchains, istruzioni per l'uso

11 Nov 2019 10:39 +0000
Il seguente articolo è stato pubblicato nel numero 1/2-2019 del Notiziario dell’Ordine degli Ingegneri della Provincia di Verona. Viene pubblicato qui grazie alla gentile concessione della Redazione. Come funzionano le criptovalute, l’e-voting e le altre applicazioni di un sistema informatico ancora poco conosciuto Negli ultimi tempi non trascorre giorno senza che un articolo, un programma televisivo o un comizio citi le “blockchain” come soluzione ultima di un qualche problema tecnico od organizzativo. Continue reading

Adding a user space "power switch" to your embedded linux

18 Jul 2019 08:25 +0000 Embedded Linux
Is is always amazing to see how some very obvious features are missing from the linux kernel. Yesterday, for a project I am developing for a Dutch firm, I come across one of these “very obvious feature”: the option to switch on and off a device in the embedded linux board we’re using. The problem seemed to be quite frequent: you have a device connected to the internal USB bus (a wifi module, maybe? Continue reading

La vulnerabilità di WhatsApp spiegata a mia figlia

15 May 2019 08:31 +0000 Android cybersecurity
A chi non è capitato di dover riempire un modulo i cui spazi da riempire sono troppo stretti per il testo da inserire? Il classico caso in cui l’indirizzo è davvero troppo lungo per lo spazio previsto e ci si arrangia scrivendo negli altri spazi, oppure sovrapponendosi al testo stampato, e rendendo il modulo praticamente illeggibile? Una cosa simile accade quando in un software o una App riceve dei dati da internet (un server, o magari dalla stessa app installata su un altro smartphone) ma il programmatore non ha effettuato correttamente i controlli sulla lunghezza e il programma copia i dati su uno spazio troppo stretto. Continue reading

Configuring Ubuntu to deal with an ARM board with U-Boot via USB

13 May 2019 07:40 +0000 Embedded Linux uboot ubuntu
Abstract We have a board on which an AllWinner ARM processor is running Linux. The bootloader is U-boot and we have to use the USB port to flash it. When flashing the device for the first time, after loading the bootloader via FEL protocol, we need to use tftp to load the SPL (Secondary program Loader) image and the uboot version for use with the spl. Unfortunately, a couple of issues in the default Ubuntu configuration prevent us from doing this apparently simple operation in a straight way, and we need to tweak some system configuration file. Continue reading

Strong Typing PODs

07 Sep 2017 21:29 +0000 c++ Code
Identifiying object by a numerical integer is an almost trivial task. In DISPLACE, a very complex simulator I am involved with, there are many of different categories of objects that model different categoris of agents in the simulator, like vessels, marine locations, ships, ports, and so on. Each object has an Id, and it was very natural, at the start of the project, to implement it using an **int**. Problems started when we decided, for optimization purpose, to shrink the memory footprint, to use smaller int instead. Continue reading
Older posts Newer posts