Giter VIP home page Giter VIP logo

callisto-core's Introduction

callisto-core

Status Support
Build Status python 3.6
PyPI Version django 1.11
Code Climate -
Deploy -

This is the report intake, escrow, matching and secure delivery code for Callisto, an online reporting system for sexual assault.

Callisto TED talk

Learn more about how Callisto works

Learn more about information escrows

Support us

Donate to Sexual Health Innovations, the organization behind Callisto.

Our current list of issues is available here https://github.com/SexualHealthInnovations/callisto-core/issues

There's documentation on running a developement version of this repository, and on using callisto-core as a python package.

Finally there's a live heroku testing application to give you a feeling for how Callisto operates https://callisto-core.herokuapp.com/

Read more about this on our contribution guide.

Want to talk about extending the code to other applications, how Callisto works, or schedule a demo of Callisto for your campus? Contact us at [email protected].

callisto-core's People

Contributors

agude avatar alawley avatar asabine avatar callisto-bot avatar coilysiren avatar compwron avatar divergentdave avatar dodgeblaster avatar e-lisa avatar gitter-badger avatar hellerve avatar jisantuc avatar justingeeslin avatar keisetsu avatar kelseyq avatar kevindaum avatar lojikil avatar mstbbs avatar not-a-sith-lord avatar requires avatar scott-callisto avatar sunahfloship avatar willingc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

callisto-core's Issues

dedupe perpetrators per report

If someone submits a report to matching and for some reason puts the same perpetrator identifier down twice, we should only create one MatchReport entry.

store matching information encrypted with the assailant hash as the key

(inspired by @swenson)
Currently, the information needed to report a match is stored with other system metadata as database rows. The combination of survivor contact information and unique assailant ID is especially sensitive and we want to protect it further. However, match information is delivered to the reporting party immediately upon a match being found, to prevent users from "fishing" for a specific assailant's name with unfounded match entries. Because of this, stored match entries need to be matchable and deliverable without the survivor who originally submitted needing to enter a key at the time a match is found.

Encrypting the match data with a Callisto admin-provided symmetric key would provide some security, but relies on strong key management and protection. Additionally, the data is still vulnerable to subpoena. We could encrypt the stored match data asymmetrically with the school/reporting authority's public key. We would still need to keep around assailant identifier data in some form to allow for a match, and we are dependent on the school's key management, which isn't under our full control.

Chris proposed, instead, using the unique assailant ID as a key to encrypt the survivor contact information. When a survivor submits a report to matching, we first encrypt their contact information using the submitted assailant ID as a key. We then use the submitted assailant ID as a key to try to decrypt the existing matching entries. If any decryption attempt is successful, we know that entry was a match, and we can combine the submitted contact information with the decrypted contact information to compile a match report and deliver it safely to the reporting authority.

allow open tracking of reports delivered by email

It's really important that we know that admins have gotten a report after a user has elected to send it to them, so we want to use some sort of email tracking (Google Analytics?) on the emails that have encrypted reports attached to them to confirm that they've been opened.

FileNotFoundError: [Errno 2] No such file or directory: 'gpg'` when running tests locally

@kevindaum: wanted to get this hammered out somewhere more discoverable than a PR.

Are you still getting the FileNotFoundError: [Errno 2] No such file or directory: 'gpg' errors on your machine? I think this may be an OS issue, so it'd be good for us to document how to fix it if so. What OS are you using? If it's Linux or Mac, can you run which gpg and let me know the output? I think that where gpg should do the same thing on Windows.

Fix issues spotted by pyflakes

When I first started working on #4, pyflakes was finding some issues. This may no longer be the case since Travis seems to be running pyflakes on everyone's pull requests now... but it probably still is.

set up code coverage tool

Leaning towards Codecov, but open to others. Want something that integrates with Travis and ideally has branch coverage

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.