PageSourceSearch

https://docs.cwtch.im/assets/js/d39fd6c2.ea1653be.js

js cwtch.im collected 2026-10-02 11:11:23 UTC 7,368 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkuser_handbook=self.webpackChunkuser_handbook||[]).push([[5230],{966:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>l,frontMatter:()=>s,metadata:()=>o,toc:()=>h});var a=n(5893),i=n(1151);const s={sidebar_position:1},r="Cwtch Security Handbook",o={id:"intro",title:"Cwtch Security Handbook",description:"Welcome to the Cwtch Secure Development Handbook! The purpose of this",source:"@site/security/intro.md",sourceDirName:".",slug:"/intro",permalink:"/security/intro",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",next:{title:"Risk Model",permalink:"/security/risk"}},c={},h=[{value:"What is Cwtch?",id:"what-is-cwtch",level:2},{value:"A (Brief) History of Metadata Resistant Chat",id:"a-brief-history-of-metadata-resistant-chat",level:2}];function d(e){const t={a:"a",h1:"h1",h2:"h2",img:"img",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.h1,{id:"cwtch-security-handbook",children:"Cwtch Security Handbook"}),"\n",(0,a.jsx)(t.p,{children:"Welcome to the Cwtch Secure Development Handbook! The purpose of this\nhandbook is to provide a guide to the various components of the Cwtch\necosystem, to document the known risks and mitigations, and to enable\ndiscussion about improvements and updates to Cwtch secure development\nprocesses."}),"\n",(0,a.jsx)(t.p,{children:(0,a.jsx)(t.img,{src:"https://docs.openprivacy.ca/cwtch-security-handbook/2.png",alt:""})}),"\n",(0,a.jsx)(t.h2,{id:"what-is-cwtch",children:"What is Cwtch?"}),"\n",(0,a.jsx)(t.p,{children:"Cwtch (/k\u028at\u0283/ - a Welsh word roughly translating to \u201ca hug that creates a safe place\u201d) is a decentralized, privacy-preserving, multi-party messaging protocol that can be used to build metadata resistant applications."}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.strong,{children:"Decentralized and Open"}),": There is no \u201cCwtch service\u201d or \u201cCwtch network\u201d. Participants in Cwtch can host their own safe spaces, or lend their infrastructure to others seeking a safe space. The Cwtch protocol is open, and anyone is free to build bots, services and user interfaces and integrate and interact with Cwtch."]}),"\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.strong,{children:"Privacy Preserving"}),": All communication in Cwtch is end-to-end encrypted and takes place over Tor v3 onion services."]}),"\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.strong,{children:"Metadata Resistant"}),": Cwtch has been designed such that no information is exchanged or available to anyone without their explicit consent, including on-the-wire messages and protocol metadata."]}),"\n"]}),"\n",(0,a.jsx)(t.h2,{id:"a-brief-history-of-metadata-resistant-chat",children:"A (Brief) History of Metadata Resistant Chat"}),"\n",(0,a.jsxs)(t.p,{children:["In recent years, public awareness of the need and benefits of end-to-end\nencrypted solutions has increased with applications like ",(0,a.jsx)(t.a,{href:"https://signalapp.org",children:"Signal"}),",\n",(0,a.jsx)(t.a,{href:"https://whatsapp.com",children:"Whatsapp"})," and ",(0,a.jsx)(t.a,{href:"https://wire.org",children:"Wire"})," now providing\nusers with secure communications."]}),"\n",(0,a.jsxs)(t.p,{children:["However, these tools require various levels of metadata exposure to function,\nand much of this metadata can be used to gain details about how and why a person\nis using a tool to communicate. ",(0,a.jsx)(t.a,{href:"https://www.researchgate.net/profile/Peter_Kieseberg/publication/299984940_Privacy_and_data_protection_in_smartphone_messengers/links/5a1a9c29a6fdcc50adeb1335/Privacy-and-data-protection-in-smartphone-messengers.pdf",children:"[rottermanner2015privacy]"}),"."]}),"\n",(0,a.jsxs)(t.p,{children:["One tool that did seek to reduce metadata is ",(0,a.jsx)(t.a,{href:"https://ricochet.im",children:"Ricochet"})," first released in 2014.\nRicochet used Tor v2 onion services to provide secure end-to-end encrypted communication,\nand to protect the metadata of communications."]}),"\n",(0,a.jsx)(t.p,{children:"There were no centralized servers that assist in rout
1ing Ricochet\nconversations. No one other than the parties involved in a conversation could\nknow that such a conversation is taking place."}),"\n",(0,a.jsx)(t.p,{children:"Ricochet wasn't without limitations; there was no multi-device support, nor is\nthere a mechanism for supporting group communication or for a user to send\nmessages while a contact is offline."}),"\n",(0,a.jsxs)(t.p,{children:["This made adoption of Ricochet a difficult proposition; with even those in\nenvironments that would be served best by metadata resistance unaware that it\nexists ",(0,a.jsx)(t.a,{href:"https://www.academia.edu/download/53192589/ermoshina-12.pdf",children:"[ermoshina2017can]"}),"\n",(0,a.jsx)(t.a,{href:"https://eprints.gla.ac.uk/116203/1/116203.pdf",children:"[renaud2014doesn]"}),"."]}),"\n",(0,a.jsxs)(t.p,{children:["Additionally, any solution to decentralized, metadata resistant communication faces ",(0,a.jsx)(t.a,{href:"https://code.briarproject.org/briar/briar/-/wikis/Fundamental-Problems",children:"fundamental problems"}),"\nwhen it comes to efficiency, privacy and group security (as defined by ",(0,a.jsx)(t.a,{href:"https://code.briarproject.org/briar/briar/-/wikis/Fundamental-Problems",children:"transcript consensus and consistency"}),")."]}),"\n",(0,a.jsxs)(t.p,{children:["Modern alternatives to Ricochet include ",(0,a.jsx)(t.a,{href:"https://briarproject.org",children:"Briar"}),", ",(0,a.jsx)(t.a,{href:"https://www.zbay.app/",children:"Zbay"}),"\nand ",(0,a.jsx)(t.a,{href:"https://www.ricochetrefresh.net/",children:"Ricochet Refresh"})," - each tool seeks to optimize for a different\nset of trade-offs e.g. Briar seeks to allow people to communicate ",(0,a.jsx)(t.a,{href:"https://briarproject.org/how-it-works/",children:"even when underlying network infrastructure\nis down"})," while providing resistant to metadata surveillance."]}),"\n",(0,a.jsx)("hr",{}),"\n",(0,a.jsx)(t.p,{children:"The Cwtch project began in 2017 as an extension protocol for Ricochet providing group conversations via\nuntrusted servers, with an eye to enabling decentralized, metadata resistant applications (like shared lists\nand bulletin board)"}),"\n",(0,a.jsxs)(t.p,{children:["An alpha version of Cwtch was ",(0,a.jsx)(t.a,{href:"https://openprivacy.ca/blog/2019/02/14/cwtch-alpha/",children:"was launched in February 2019"}),", and\nsince then the Cwtch team (run by the ",(0,a.jsx)(t.a,{href:"https://openprivacy.ca",children:"Open Privacy Research Society"}),") has conducted\nresearch and development into Cwtch and the underlying protocols and libraries and problem spaces."]})]})}function l(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(d,{...e})}):d(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>o,a:()=>r});var a=n(7294);const i={},s=a.createContext(i);function r(e){const t=a.useContext(s);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),a.createElement(s.Provider,{value:t},e.children)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.