Skip to main content

A python library intended to help researchers build more practical measures for shoulder surfing attack efficacy.

Project description

shouldersurfscore

This library helps researchers in lab settings develop better metrics to understand the practical password guess quality of shoulder surfing and password guessing attacks.

The library provides the following (their complexity for you to use in parentheses):

  • (Advanced): a nuanced set of classes to build an experiment environment including different keyboard layouts, device lockout patterns, and different styles of attackers that can help to better estimate different
  • (Medium): predefined equipment to make it easier to get up and running (e.g. an iPhone, with common login restrictions).
  • (Easy): defined scores to make it easier to reproduce other researchers' experiments (and when you're ready, hopefully yours too!).
  • (Easy): implementations of a few other common metrics for assessing password quality.

Installation

To install, simply use:

pip install shouldersurfscore

How-To Use

Defined Labs

Pre-defined labs can be used to recreate scores used in others' experiments.

For example:

from shouldersurfscore.defined_experiments.built_labs import initial_shouldersurfscore_paper_lab

initial_shouldersurfscore_paper_lab.run(
    actual_password='9163',
    observed_password='9613'
)

## Expected results:
#{'actual_password': '9163',
# 'observed_password': '9613',
# 'guess_index': 2,
# 'guess_percent': 1.9801980198019803e-06,
# 'practical_time': datetime.timedelta(0),
# 'device_unlocked': True}

Other Metrics

Predefined Objects

from shouldersurfscore.classes import attacker, lab

# Define attacker
eve = attacker.Attacker(
    # Try observed password, then if that fails, try all other passwords.
    strategy=[
        'observed_guess',
        'sequential_guesses'
    ]
)

example_lab = lab.Lab(
    device=iphone,
    attacker=eve
)

example_lab.run(actual_password='2290', observed_password='9163')

Classes

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

shouldersurfscore-0.0.2.tar.gz (22.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

shouldersurfscore-0.0.2-py3-none-any.whl (26.3 kB view details)

Uploaded Python 3

File details

Details for the file shouldersurfscore-0.0.2.tar.gz.

File metadata

  • Download URL: shouldersurfscore-0.0.2.tar.gz
  • Upload date:
  • Size: 22.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for shouldersurfscore-0.0.2.tar.gz
Algorithm Hash digest
SHA256 e99eca8a2fa75bc04ca24fdbd9054c87665e5d3fdc54f30e6a41396071df9df6
MD5 0657c6aa24b3f10020c7f4c04c1418f3
BLAKE2b-256 a09536101e3f8376083798da33dbf011fb550e59b0537928ee25c1feb22066ba

See more details on using hashes here.

File details

Details for the file shouldersurfscore-0.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for shouldersurfscore-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 ff0692c4ed805e93568dd57e164e30c52668fe55d9f14db855a1d7e0d8ed8ae7
MD5 994a13e68ed73180e797931c6f7d173f
BLAKE2b-256 508972e40ee1445d8a4613930936951a49dfed983457b5c3cde3a8ce9afa1dbe

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page