Transfer files from a device to PiRogue

Requirements

  • your PiRogue is up and running
  • a device is connected to the isolated network

Security considerations

Be cautious with received files:

  • Potential risks: The files you’ve received might contain malicious software or sensitive information.
  • No automatic protection: PiRogue doesn’t automatically scan or isolate these files.
  • Limit exposure: Turn off the file drop server when you’re done using it.
  • Secure disposal: Properly delete the files once you no longer need them.

... in 2 steps

Transfer files from a device to PiRogue

If you want to retrieve files such as screenshots or log files from the device, you can start a file drop server allowing the user of the mobile device to upload files directly to your PiRogue. The mobile device must be connected to the isolated network of your PiRogue. To do so, run the following command on your PiRogue:

Start the file drop server
pirogue-file-drop -o [output folder]

The command starts a temporary web server accessible from the isolated network only. On the mobile device, open the webpage or scan the QR code and select the files you want to transfer.

Press Enter to stop the server.

Once done, the output folder contains all the files and their metadata in [file name].metadata.json. The metadata files contain:

  • mimetype: the type of the file such as image or video
  • modification_date: the date of the last modification of the file before its transfer
  • modification_timestamp: the timestamp of the last modification of the file before its transfer
  • original_filename: the original name of the file before its transfer
ℹ️ Transfer files from a device to PiRogue

In this example, we store the files in the folder drop.

pi@pirogue ➜ # Example of file transfer to PiRogue
pi@pirogue ➜ pirogue-file-drop -o drop
 * Serving Flask app 'pirogue_evidence_collector.drop_server.server'
 * Debug mode: off
11:12:15 INFO     Flash the QR code on the mobile device or browse http://10.8.0.1:8080                            
                             
  █▀▀▀▀▀█ ▄█ ▄▄ ▀▄  █▀▀▀▀▀█  
  █ ███ █ ▄█▀█ ▄ ▀▄ █ ███ █  
  █ ▀▀▀ █ ▄ █ ▀▀▀▄  █ ▀▀▀ █  
  ▀▀▀▀▀▀▀ ▀ ▀ █ ▀ ▀ ▀▀▀▀▀▀▀  
  █▀███ ▀█▀█▀ ▀▀▄ ▀▀ ▀ ▀ █   
  ██▀ ▄▄▀▄██▄█▀  █▀▀   ▀ ▀█  
  ██ ▀  ▀▄ ▀▄▀▄▄ ▀▀▄▀▀▀▄▀█▀  
  █ ▀ ▀▄▀ ██▀ ▄█▀▀▄ ▄▀ █ ▀█  
  ▀ ▀▀▀ ▀ ██  ▀ ▀▄█▀▀▀█▄█    
  █▀▀▀▀▀█ ▀▀ █▀ ▄▄█ ▀ ██▀▀█  
  █ ███ █ █▄█▀▄▄▄█▀▀███▀███  
  █ ▀▀▀ █ █▄█ ▄█▀▀▄▄ ▄▄▄▀ █  
  ▀▀▀▀▀▀▀ ▀ ▀ ▀ ▀▀   ▀▀▀▀▀▀  
                             
Press Enter to stop the server
11:15:38 INFO     File saved: drop/IMG_2353.jpeg                                                                   
         INFO     File saved: drop/IMG_2352.jpeg                                                                   
         INFO     File saved: drop/IMG_2351.jpeg   
pi@pirogue ➜ |

If you want to upload these files to Colander, please refer to this cookbook.

Time stamp files

In some cases, it’s crucial to time stamp collected files to securely keep track of the creation and modification time of a file. PiRogue uses an external timestamping authority. To do so, run the following command on your PiRogue:

Securely time stamp files
pirogue-timestamp -c [folder containing the files to time stamp]

The command generates a file hashes.txt listing the sha512 hash of every files contained in the specified folder and generates the following files:

  • README.md: the file containing the verification instructions
  • freetsa.org_cacert.*: the certificate of the timestamping authority
  • hashes.txt: the file listing the sha512 hash of the timestamped files
  • hashes.txt.tsq: the time stamp query
  • hashes.txt.tsr: the time stamp reply
ℹ️ Time stamp the content of a folder

In this example, we time stamp the files contained in the folder drop.

pi@pirogue ➜ # Example of timestamping files
pi@pirogue ➜ pirogue-timestamp -c drop
15:47:26 INFO     Timestamping the files contained in drop                                                         
Using configuration from /usr/lib/ssl/openssl.cnf
pi@pirogue ➜ |