Giter Site home page Giter Site logo

libotr-ng-toolkit's Introduction

OTRv4 toolkit / libotr-ng-toolkit

Build Status

This is OTRv4 toolkit implementation.

The libotr-n toolkit is useful for analyzing and/or forging OTRv4 messages.

It makes absolutely sure that transcripts of OTRv4 conversations are really easy to forge after the fact to prove offline deniability.

It also makes absolutely sure that OTRv4 conversations can be online deniable by showing how to impersonate or use forging keys.

Easily-forgeable transcripts help us provide the "Deniability" property: if someone claims you said something over OTR, they'll have no proof, as anyone at all can modify a transcript to make it say whatever they like, and still have all the verification come out correctly.

Build

Install the following dependencies:

  • libglib2.0-dev
  • libgoldilocks
  • libsodium-dev
  • libotr 4.x
  • libotr-ng
  • libgcrypt 1.8.0 or newer

To generate project configuration:

$ autoreconf --install

To configure the project:

$ ./configure

To build and install:

$ make && make install

To run the tests:

$ make test

libotr-ng-toolkit's People

Contributors

claucece avatar deniscostadsc avatar iapazmino avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Forkers

claucece

libotr-ng-toolkit's Issues

Implement forge DAKE and session keys (Non-Interactive)

Forge with forge key

This functions gets from the client profile the forge keys and use it all over the protocol instead of use the 'real' key of the user.

To do this function is necessary forge keys presence into the client profile

Implement change mac of message

Description:
Remac function should receive an encrypted data message and a mac key. With this it has to generate a new mac tag and then replace the original one in the data message and returns a new encrypted data message with this mac tag.

References:
https://bugs.otr.im/lib/libotr/blob/master/README (TOOLKIT section)
https://bugs.otr.im/lib/libotr/tree/master/toolkit
https://github.com/otrv4/otrv4/blob/master/otrv4.md#forging-transcripts (ReMac message section)

Improve and adjust build configuration and makefiles

Before the work begin is good to:

  • Have the build passing and also being well configured to not take longer than it's necessary.
  • Check if the makefiles provides all the necessary steps/functions to the toolkit be running smoothly (This include the makefile of the test as well)

False Prekey Ensemble

Description:

This function should return a valid prekey ensemble but differently from the person you want to falsify the prekey ensemble.

If Alice wants to generate a false prekey ensemble for Bob, This function should return a valid prekey ensemble with information her client profile and prekey profile.

Reference:
https://github.com/otrv4/otrv4/blob/master/otrv4.md#forging-transcripts
https://github.com/otrv4/otrv4/blob/master/otrv4.md#publishing-prekey-ensembles
https://github.com/otrv4/otrv4/blob/master/otrv4.md#create-a-prekey-profile-signature

Implement parsing

Description:

OTR_parse should provide a program (command) the shows in a easier-to-read way the OTRv4 messages. Also need to provide functions that will be used by the other functions of toolkit.

Parser should be able to parse:

Reference:
https://bugs.otr.im/lib/libotr/blob/master/README (TOOLKIT section)
https://bugs.otr.im/lib/libotr/tree/master/toolkit
https://github.com/otrv4/otrv4/blob/master/otrv4.md#forging-transcripts

Implement forge DAKE and session keys transcript (Interactive)

Build doesn't work

Make fails with:

make[2]: *** No rule to make target '/usr/local/lib/libotr.la', needed by 'otrng_parse'.  Stop.
make[2]: Leaving directory '/home/olabini/CAD/projects/libotr-ng-toolkit'
make[1]: *** [Makefile:558: all-recursive] Error 1
make[1]: Leaving directory '/home/olabini/CAD/projects/libotr-ng-toolkit'
make: *** [Makefile:393: all] Error 2

On Fedora 28. I do have libotr-ng installed in /usr/local. However, the libotr.la file doesn't exist - and indeed shouldn't be necessary, so I'm not sure why the toolkit build checks for that.

Implement show mac

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.