Skip to content

NoViz-Thermal communicates TLS certificate data to users via thermal feedback -- can be used with or in place of traditional website warnings.

Notifications You must be signed in to change notification settings

danielanapoli/NoVizThermal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 

Repository files navigation

NoViz-Thermal

This repository includes all of the code for the NoViz-Thermal prototype we use to explore how non-visual feedback can support users in behaving securely online. We collect TLS data through a Mozilla Firefox browser extension. This data is communicated to our node server and communicated to an Arduino Uno which controls a heating pad. The heating pad changes temperature based on the security information gathered from our browser extension. This system can be used to supplement or replace traditional HTTPS warnings.

=== The Team ===

This prototype started as Daniela Napoli's course project for exploring the role of embodied cognition in usable security. Sebastian Navas Chaparro refactored and optimized the web app to what you can see today!

Right now, we're exploring ways to improve thermal feedback and other potential non-visual feedback implementations. For more info about the project check out our short paper: https://www.usenix.org/system/files/soups2020_poster_napoli.pdf

This prototype was inspired by...

Documentation

Welcome to the thermaltrackpad project! In the next few lines we will explain what you need to get this working. As we continue with the development of this project, this list may change in the near future.

For this project you will need:

Software: Arduino IDE, Processing IDE, MongoDB, Firefox Browser, NodeJS

Hardware: 1 Thermoelectric Cooler, 1 N-Channel MOSFET, 1 TMP102 digital temperature sensor, 1 10k ohm resistor, 1 Arduino Uno Rev 3 or equivalent, Three LEDS and 3 330 ohm resistors (for testing), Wire, alligator clips, breadboard

To set up the repository

Using the command line...

  1. Navigate to the directory where you want to place the repository
  2. git clone https://github.com/danielanapoli/thermaltrackpad.git
  3. cd thermaltrackpad/trackpad/server
  4. npm install
  5. Look at the file called config-example.json in the resources folder
  6. Create a config.json file following the example and store it in the resources folder

To set up the extension

  1. Open your Firefox Browser
  2. In the search bar type: about:debugging
  3. On the left of the screen, click on the This Firefox button
  4. Click on the Load temporary Add-on... button
    • This will pop-up your file system
  5. Use the pop-up to navigate to our repository
  6. Inside the repository, you will find a folder called extension
  7. Pick the file called manifest.json
  8. Click on the open button

To set up the Arduino

  1. Follow the picture at the bottom to assemble the hardware
  2. Open the Arduino IDE
  3. Click on the File button at the top of the screen
  4. Click on the Open... button
    • This will pop-up your file system
  5. Use the pop-up to navigate to our repository
  6. Inside the repository, you will find a folder called arduino that contains a folder called thermaltrackpad
  7. Pick the file called thermaltrackpad.ino
  8. Click on the open button
  9. Install the VSync.h library
  10. You can now connect the Arduino board to your computer using the USB cable
  11. Go to Tools->Port and choose one to communicate to the board

Don't upload the sketch yet! We still have to set up other things

To set up Processing

  1. Open the Processing IDE
  2. Click on the File button at the top of the screen
  3. Click on the Open... button
    • This will pop-up your file system
  4. Use the pop-up to navigate to our repository
  5. Inside the repository, you will find a folder called osc that contains a folder called processing
  6. Pick the file called processing.pde
  7. Click on the open button
  8. Install the needed libraries by going to Sketch->Include Library...->Add Library...
    1. Use the filter to look for:
      • VSync
      • oscP5
    2. The install button is at the bottom-right of the screen
  9. Make sure that the variable port (line 24) is set to the port being used for the Arduino
    1. You can check the port in the Arduino IDE by going to Tools->Port

Once you have set up everything mentioned above, you can run everything

  1. Get the web app running:
    • Using the command line
      1. Navigate to our repository
      2. cd trackpad/server/
      3. npm start
      4. Go to Firefox Browser
      5. Search for http://localhost:8080/
  2. Make sure that your extension is set up
    • Note: Everytime you open the Firefox Browser, you will have to set up the extension again
  3. Upload the Arduino sketch to the board
  4. Run the Processing sketch

Arduino Circuit

Arduino circuit

About

NoViz-Thermal communicates TLS certificate data to users via thermal feedback -- can be used with or in place of traditional website warnings.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages