Git Product home page Git Product logo

shhlack's Introduction

WARNING

This is an experimental and ongoing project. You can fork it, install it, play with it, but it's surely not ready for real use. So use it with grain of salt!

Shhlack

Shhlack is an encryptor/decryptor to improve privacy in peer-to-peer messages in Slack created by Minded Security. It relies on pre-shared keys between the peers so only the peers with the right passphrase will be able to see the encrypted message.

Everyone else will see encrypted content, such as:

Sample Title@@@@BASE64ENCRYPTEDCONTENT####HMAC

In order to facilitate search a title in clear text can be used.

Build

To create slack app patcher and browser extension:

node build.js

This will create two diretories in build/:

build/extension/ // << Browser extension 
build/standalone/    // << standalone patcher

Installing the extension for Chrome

The extension will be available once it's tested. For now, installation is achieved by building the source accoridng to the above instructions and then using Chrome's "Load Unpacked" feature. Developer mode must be enabled in order to do this.

Once installed you can click on the Shhlack icon (a colourful lock next to where text is input) and, if you're on a slack chat room, the Shhlack dialog will appear. Alternatively you can use Alt-s shortcut on Windows.

Installing the patch for standalone

On Linux/MacOS:

cd build/standalone/
./patch_slack.sh

The script will ask for root password since it will try to write in an root directory.

On windows:

cd build/standalone/
./patch_slack.bat

During the process, a backup copy of the original file is created.

Uninstalling the patch for standalone

On Linux/MacOS:

cd build/standalone/
./unpatch_slack.sh

The script will ask for root password since it will try to write in a directory owned by root.

On windows:

cd build/standalone/
./unpatch_slack.bat

Usage

After building and running the install script, Shhlack should work when you login to the standalone client, or when the extension is added and enabled in Chrome.

The first time you use Shhlack, you will be asked to add at least one passphrase to use for encryption/decryption. You can alternatively give a previously saved file to share the passphrases between clients/PCs/peers.

Press Alt-S or click on the Shhlack extension icon (extension only) and you'll get:

If there is more than one passphrase the dropdown menu will show a list of mnemonic keys and you'll be able to choose a passphrase used to encrypt the message. Alternatively you can send a raw message without the fancy dialog by adding the prefix @@@@ to your text.

For example:

@@@@ Hello world.

This will be encrypted by Shhlack using the current passphrase.

Encrypted content will not be searchable, however you can add a title that can be searched on.

The format is:

title@@@@message

You and all your mates using shhlack will see the decrypted message on your client but on the server it'll appear as

ClearTextTitle@@@@Base64(rawAESenc)#HMAC

TODO:

  • Encrypt snippets
  • Add Master Passphrase with Crypto Web APIs
  • Option to Encrypt every message (Encrypted chat)
  • Add support for encrypted rich content.

shhlack's People

Contributors

wisec avatar johnsaigle avatar

Watchers

James Cloos 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.