Git Product home page Git Product logo

filelocker's Introduction

FileLocker

A Windows desktop app for cryptographically protecting files using symmetric and asymmetric techniques.

Table of Contents

  1. Getting Started
  2. Guide
  3. Technologies
  4. Security Features

Getting Started

Run from executable
  1. Download FileLocker.exe (SHA256 below)

    af609e3f97af864e44cdee241bad2fe951c7758d2393b2226c9b0f5724b4df53
  2. Double-click FileLocker.exe, click "More info", and then click "Run anyway". This prompt will disappear the next time FileLocker is run.

Run from source code
  1. Download the .NET SDK from Microsoft's website here or verify installation by running the following command:

    dotnet --version
  2. Navigate to FileLocker/WinFormsUI/ and launch with the following command:

    dotnet run

Guide

Dashboard Form

Summary The Dashboard Form displays files added to FileLocker's scope, allows addition of files, provides a key generation service, and log navigation feature.
  • Guide ๐Ÿ“–: opens the GitHub repository in the default browser.
  • Keys ๐Ÿ”‘: displays the key panel.
  • Logs ๐Ÿ“œ: displays the log panel.
  • Add โ–ผ: shows dropdown options to add files to the scope by manually selecting or importing an archive.
  • File List: right click on a file to display options or drag and drop files onto the list to add them.
  • Search Box: filters files based on the search query. Filter by file type by searching .txt or .png, or filter by algorithm by searching .aes or .3des.
Locked File Panel A locked file can be decrypted, shredded, shown in File Explorer, or exported.
  • ๐Ÿ“‹ Path: copies the path to the clipboard.
  • ๐Ÿ“‹ SHA: copies the SHA to the clipboard.
  • Decrypt ๐Ÿ”‘: opens the Decrypt Form.
  • Shred ๐Ÿ—‘๏ธ: shreds the file by overwriting its contents with random data and then deleting.
  • Explorer ๐Ÿ“: launches File Explorer with the file selected.
  • Export ๐Ÿ“ค: exports the file to a .zip archive.
Unlocked File Panel An unlocked file can be encrypted, shredded, or shown in File Explorer.
  • ๐Ÿ“‹ Path: copies the path to the clipboard.
  • ๐Ÿ“‹ SHA: copies the SHA to the clipboard.
  • Encrypt ๐Ÿ”: opens the Encrypt Form.
  • Shred ๐Ÿ—‘๏ธ: shreds the file by overwriting its contents with random data and then deleting.
  • Explorer ๐Ÿ“: launches File Explorer with the file selected.
Moved/Deleted File Panel An moved or deleted file can be relocated or removed from scope.
  • Relocate: find the moved file.
  • Remove: remove file from scope.
Keys Panel Keys pairs can be created and public keys can be imported.
  • Create: opens the Create Key Pair Form.
  • Import: imports a selected public key archive.
  • Key Lists: right click on a key to display options.
Logs Panel Logs can be viewed and navigated using the various filters.
  • Level: filter by log level.
  • All time: display all logs.
  • Last Month: display logs within the last month.
  • Last Week: display logs within the last week.
  • Last Day: display logs within the last day.
  • Search Box: filters logs based on the search query.

Encrypt Form

The Encrypt Form allows encryption by choosing an industry-standard encryption algorithm such as AES or 3DES and providing a strength-enforced password. Password fields are cleared after 30 seconds of inactivity.

  • Generate Random: generates a random password that satisfies the strength policy.
  • Clear: erases both password fields.
  • โ†’: encrypts the file with the provided password. If lost, the file cannot be decrypted. FileLocker maintains a zero-knowledge policy.
  • ๐Ÿ‘: shows or hides the password fields.

Decrypt Form

The Decrypt Form allows decryption by providing the encryption password. Password field is cleared after 30 seconds of inactivity.

  • โ†’: decrypts the file with the provided password, if correct.
  • ๐Ÿ‘: shows or hides the password fields.

Import Form

The Import Form allows an import of a .zip archive.

  • Open: choose a .zip archive.
  • Save To: the location where the file will be saved.
  • Import: loads the archive and saves the file to the chosen location.

Create Key Pair Form

The Create Key Pair Form allows creation of a public/private key pair.

  • Generate Random: generates a random password that satisfies the strength policy.
  • Clear: erases both password fields.
  • โ†’: creates the key pair and encrypts the private key with the provided password. If lost, the key cannot be used to sign. FileLocker maintains a zero-knowledge policy.
  • ๐Ÿ‘: shows or hides the password fields.

Technologies

  • OS: Windows
  • IDE: Visual Studio
  • Programming Language: C#
  • Framework: .NET
  • UI: Windows Forms
  • Version Control: Git / GitHub
  • Algorithms: AES, 3DES, HMACSHA256, PBKDF2, RSA, ECDSA
  • Logging: Serilog
  • Unit Testing: xUnit

Security Features

  • Confidentiality: AES and 3DES encryption.
  • Integrity: HMAC integrity checks of stored and transmitted data.
  • Password Strength Policy: strong passwords mitigate brute-force attacks.
  • Password Generation: passwords generated without the need to manually type, mitigating the effect of keystroke logging malware.
  • Password Management: password inputs cleared after a set time if the device is left running.
  • Password-Based Key Derivation: encryption keys derived from passwords.
  • Logging: important events logged such as encryption and decryption.
  • Constant-Time Comparison: libraries use constant-time comparison to mitigate timing attacks.
  • File Shredding: files deleted without leaving traces by overwriting with random data.
  • SOLID Principles: facilitate quick code updates in the case of a new exploit.

filelocker's People

Contributors

evanhei avatar

Stargazers

 avatar  avatar

Watchers

Kyler Farnsworth avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.