Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CoSi protocol extension #76

Open
masomel opened this issue Aug 29, 2016 · 3 comments
Open

CoSi protocol extension #76

masomel opened this issue Aug 29, 2016 · 3 comments

Comments

@masomel
Copy link
Member

masomel commented Aug 29, 2016

From the CoSi paper abstract:

To protect authorities and their clients proactively from undetected exploits and misuse, we introduce CoSi, a scalable witness cosigning protocol ensuring that every authoritative statement is validated and publicly logged by a diverse group of witnesses before any client will accept it. A statement S collectively signed by W witnesses assures clients that S has been seen, and not immediately found erroneous, by those W observers. Even if S is compromised in a fashion not readily detectable by the witnesses, CoSi still guarantees S’s exposure to public scrutiny, forcing secrecy-minded attackers to risk that the compromise will soon be detected by one of the W witnesses. Because clients can verify collective signatures efficiently without communication, CoSi protects clients’ privacy, and offers the first transparency mechanism effective against persistent man-in-the-middle attackers who control a victim’s Internet access, the authority’s secret key, and several witnesses’ secret keys.

We would like to implement CoSi as a protocol extension for CONIKS; here are some benefits we've discussed via email so far:

  • you can have multiple participants/parties signing off (a tree-root for instance) and get a single signature at the end. Someone who wants to verify this signature can do so as if it was a single signature, too.
  • equivocation could be detected proactively (even before the tree-roots are signed)
  • to forge such a signature you would need to control all co-signers instead of a single server (which would be a single point of failure).
  • It would simplify the auditing protocol: for clients to be sure that they received the right “world view” they wouldn’t need to contact several auditors as all (or a threshold t of n) auditors have witnessed the same view.
  • users in repressive regimes can’t be forced to used state controlled auditors (the regime might censor access to honest ones).

What would the integration look like:

The next STR would be signed by CoSi. The TBs could be a little tricky (but would need to be signed, too). Starting with a threshold of zero could mean that end-clients could ignore CoSi at the beginning.

cc @bford @liamsi @arlolra @c633

@masomel
Copy link
Member Author

masomel commented Aug 29, 2016

One question I would like to discuss is the role of auditors with CONIKS+CoSi. So far, we've discussed CoSi as a possible replacement for the CONIKS auditing protocol. But the CoSi paper also makes an argument for using proactive and retroactive consistency checking in combination as a way of reducing vulnerabilities to Sybil attacks; I'm wondering if auditors could help improve the chances of detecting such attacks, or really any collusion between co-signers and the authority?

@liamsi
Copy link
Member

liamsi commented Sep 7, 2016

equivocation could be detected proactively (even before the tree-roots are signed)

In the current cosi implementation the "exception mechanism" is still lacking, which would be necessary for the pro-active detection. Also it would be ideal if the to-be-signed statement would be already validated in the announcement which currently isn't the case, too.

This will be implemented soon (dedis/cosi#10, dedis/cosi#11, dedis/cosi#58)

@vqhuy vqhuy added the auditor label Apr 11, 2017
@vqhuy vqhuy modified the milestone: Backlog Apr 12, 2017
@vqhuy
Copy link
Member

vqhuy commented Jun 15, 2018

Alternatively, we can use the multisig construction based on BLS signature described in https://eprint.iacr.org/2018/483.pdf

AFAIK, this ASM (Accountable-Subgroup Multi-signatures) scheme provides all the aforementioned benefits. Furthermore, it also requires only 1 round of communication between "witnesses" (the subset S out of N signers) before the signing process (the offline phase). The signing phase can be done quite efficiently by the combiner (the directory in the CONIKS case). And it has a built-in "exception mechanism" in the construction, which they call "t-of-n multisig" in the paper. It takes 4 rounds in the case of CoSi, and the whole process needs to be restarted if there were unavailable witnesses. In this ASM scheme, the set S does not have to be fixed at the beginning of the protocol, so witnesses don't need to be as highly available as CoSi's ones. The downside is that the verification needs perform 3 pairing operations (which costs more than standard Schnorr signature verification in CoSi).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants