Skip to content
forked from asn-d6/flute

Secure multiparty messaging (kindof)

Notifications You must be signed in to change notification settings

piratas-ar/viola

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DISCLAIMER:

    THIS IS THE FIRST DRAFT OF THE VIOLA SPEC. VIOLA, AS A SOFTWARE AND AS A
    PROTOCOL, ARE NOT USER READY YET. VIOLA IS CURRENTLY IN TESTING AND
    DEVELOPMENT PHASE. PLEASE DON'T EVEN THINK OF USING IT FOR SENSITIVE STUFF!

[*] Introduction:

    Greetings. This is Viola, A multiparty chat protocol implemented on Weechat.
    Please see viola_spec.txt for the protocol spec.

[*] Installation:

- Installing dependencies:

    First of all you need to have a weechat installation. It should have Python
    and SSL support. In Debian you can do # apt-get install weechat weechat-plugins

    You also need to have PyNaCl installed on your system. On Debian testing
    you can install by running: # apt-get install python-nacl

    Alernatively, you can use the pip package manager or build from source. For
    instructions on how to install pynacl without root, see the "Miscellaneous"
    section of the HACKING file.

- Installing viola:

    To install viola, simply run `make install` from the root viola directory.

    Alternatively, if you are planning to do viola development, you can try
    `make dev-install` which will symlink the files instead of copying them, so
    you don't have to run `make install` everytime you do a change.

[*] Usage:

- Connecting to an IRC server using weechat:

    The instructions below require you to have Tor installed. You can also do
    it without Tor, but I'll let you figure out how to do it. Tor can be
    installed in Debian by doing: # apt-get install tor

    Now launch weechat. We need to set it up so that it connects to the viola
    server with SSL over Tor. Then we load up viola, and connect to the server.

    ---------------------------------------------------------------------------------------
    /server add bacon irc.baconsvin.org/6697
    /set irc.server.bacon.ssl on

    /proxy add tor socks5 127.0.0.1 9050
    /set irc.server.bacon.proxy "tor"

    /set irc.server.bacon.ssl_verify off    <-- WTF. Baconsvin SSL cert expired... Please only set this for testing.

    /python load weechat_viola.py

    /connect bacon
    /j #viola_test
    ---------------------------------------------------------------------------------------

    If things went fine, you should connect to the server and viola should
    print an initialization message to the central weechat buffer.

- Using Viola:

-- Finding friends

    Viola assumes you can securely pass your Viola public key information to
    your friends in some manner (e.g. using OTR, or in real life). You can use
    the "/viola trust-key" command to import keys to your friend list.

    Another way to find friends is to connect to a Viola IRC server, and
    introduce yourself to them. For example, if you want to introduce yourself
    to the user with nickname alice, do:

             /viola introduction alice

    After alice accepts your introduction, she can also introduce herself to
    you.  Do this for all your friends so that you have a complete friend list.

    Your friend list is saved on disk (see .weechat/viola/viola_account.friends)

-- Starting viola rooms

    After you have a good friend list, go to an empty channel and do:

           /viola start-room

    This should initialize a new viola room and make you the captain. Then ask
    your friends to join your channel.

-- Joining viola rooms

    When your friends join your channel, they also need to join your viola
    room. To do so, they just need to type:

          /viola join-room

   As long as the joining user's public key is in your friend list, the user
   will be added automatically to the room by you. Otherwise, you need to ask
   your friend to introduce themselves to you.

-- Sending messages

   After users have joined your room, you can just send encrypted messages to
   each other as you normally would. Viola adds indicators when a received
   message is encrypted or unencrypted.

About

Secure multiparty messaging (kindof)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.6%
  • Makefile 0.4%