tristanluther28 / network_security_project

ECE 478 Client Fingerprinting Techniques

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Overview

Live demo will showcase an example use case of client fingerprinting to alert users of new (unidentified) logins.

  • Similar to banking systems and Gmail which notify you of new logins

Services used

  • Firebase
  • AWS
    • Lambda Function
    • Lambda Layer
    • Cloudwatch logging
    • Simple Email Service (SES)
    • Relational Database Service (RDS)

Local softwares needed

Prerequisite Setup

  1. Configure AWS credentials and follow prompts
aws configure

Lambda backend

Setup

  1. Install dependencies
npm i
  1. Create lambda/firebaseAdminCredential.json and paste credentials you downloaded from https://console.firebase.google.com/u/0/project/<your project id>/settings/serviceaccounts/adminsdk
  2. Update database credentials in lambda/rds.js

Test locally

  1. Run local test
node test.js

Website

Setup

  1. Install dependencies
composer install
  1. Update AWS profile to your profile (typically default) in src/services/logger.php
  2. Update src/services/firebase.php with configuration from https://console.firebase.google.com/u/0/project/<your project id>/settings/general
  3. Update vapidKey in getFcmToken() in src/js/messaging.js with Web Push certificate Key pair from https://console.firebase.google.com/u/0/project/<your project id>/settings/cloudmessaging
  4. Update database credentials in src/classes/Db.php

Run

php -S localhost:8000 -t ./src

Go to http://localhost:8000

  • You must accept the notifiation popup
  • Note: website must be run on a live server (not locally) in order for ip capture to work

Troubleshooting

  • Error AwsCloudwatchLogging
    • Make sure to configure AWS credentials properly
  • Curl SSL error
    1. Download cacert.pem from https://curl.se/docs/caextract.html
    2. Go to PHP directory and update curl.cainfo = <path to cacert.pem in php.ini
    3. Restart PHP if using XAMP
  • Website is frozen or stuck loading on auth/details page
    • Disable your VPN
    • Try on a different browser like Chrome, Edge, Safari
    • Make sure you're not on an incognito tab

About

ECE 478 Client Fingerprinting Techniques


Languages

Language:PHP 52.0%Language:JavaScript 38.8%Language:CSS 7.6%Language:Hack 1.5%