mirror of
https://github.com/logos-messaging/docs.waku.org.git
synced 2026-01-04 22:03:12 +00:00
commit dd5a32197457cdcb0c09f838cb05c5b5a3109b81
Author: fryorcraken.eth <git@fryorcraken.xyz>
Date: Tue Nov 8 10:28:31 2022 +1100
Remove unneeded sentence
commit af1a5415cd21b6a9d424ebe267a83944fbb84ff4
Author: fryorcraken.eth <git@fryorcraken.xyz>
Date: Tue Nov 8 10:26:05 2022 +1100
Fix typo
commit a51d98c64925c0d87695c8f49cbdb39d1461f13d
Author: fryorcraken.eth <git@fryorcraken.xyz>
Date: Tue Nov 8 10:23:26 2022 +1100
Fix spelling/terminology
commit 9bab3692854f510c429582c17ae41b6d5d753e44
Author: danisharora099 <danisharora099@gmail.com>
Date: Tue Nov 8 00:45:58 2022 +0530
fix: build
commit 3cb05f0115f5c84a8aab5f7727a86384c1b68d8f
Author: danisharora099 <danisharora099@gmail.com>
Date: Mon Nov 7 19:39:54 2022 +0530
resolve conflict
commit 7f2fa8969ca320070e097594cec3d38994409114
Merge: 726a397 d1c93ec
Author: danisharora099 <danisharora099@gmail.com>
Date: Mon Nov 7 19:39:47 2022 +0530
Merge remote-tracking branch 'refs/remotes/origin/danisharora/update-docs' into danisharora/update-docs
commit 726a397f04fdc2380f70618532839a7cc31ff68d
Author: danisharora099 <danisharora099@gmail.com>
Date: Mon Nov 7 19:37:07 2022 +0530
address comments and clean up
commit d1c93ec03e83fef26b96ceb7c990f450646fff9e
Author: Danish Arora <35004822+danisharora099@users.noreply.github.com>
Date: Mon Nov 7 19:34:35 2022 +0530
Update docs/Guide/01-Prerequisites/1.md
Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>
commit 7e86d1a08ba7dff2524e37f2e0073966705c55a2
Author: Danish Arora <35004822+danisharora099@users.noreply.github.com>
Date: Mon Nov 7 19:34:25 2022 +0530
Update docs/Guide/01-Prerequisites/1.md
Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>
commit d94bd4a00c2fa27b696d20e88e0ac05459733beb
Author: Danish Arora <35004822+danisharora099@users.noreply.github.com>
Date: Mon Nov 7 19:34:09 2022 +0530
Update docs/Guide/01-Prerequisites/1.md
Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>
commit 19d727518fff2f28cfdf29e05cbbd7bfe4a4bab4
Author: Danish Arora <35004822+danisharora099@users.noreply.github.com>
Date: Mon Nov 7 19:33:58 2022 +0530
Update docs/Concepts/7.md
Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>
commit 3570c2ff6446b0cd1dea48a214f9ce8b5ca6a1de
Author: danisharora099 <danisharora099@gmail.com>
Date: Mon Nov 7 19:32:04 2022 +0530
rm: section
commit 576b5c1c2c2b034dfd17a192f417a9c89e968dbe
Author: danisharora099 <danisharora099@gmail.com>
Date: Mon Nov 7 19:31:06 2022 +0530
rm: protocol identifiers
commit 5a0ea01bdbc38ac54b0f3824c8ed3eb9feb609d4
Author: Danish Arora <35004822+danisharora099@users.noreply.github.com>
Date: Mon Nov 7 19:26:03 2022 +0530
Update docs/Concepts/1.md
Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>
commit b60b0abaebf0b553c4eb8041b5da83aac282c6a6
Author: Danish Arora <35004822+danisharora099@users.noreply.github.com>
Date: Mon Nov 7 19:25:39 2022 +0530
Update docs/About/7.md
Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>
commit c280e4d6df1d7a16e884e13c0319bdecad833db7
Author: Danish Arora <35004822+danisharora099@users.noreply.github.com>
Date: Mon Nov 7 19:25:24 2022 +0530
Update docs/About/6.md
Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>
commit ded38b4d795b02c4ca4d8dfe4a0c588b0b68bfcc
Author: Danish Arora <35004822+danisharora099@users.noreply.github.com>
Date: Mon Nov 7 19:21:57 2022 +0530
Update docs/About/4.md
Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>
commit 85f6161aeefc4591a59a2f424a7f39ecb7d8c74c
Author: Danish Arora <35004822+danisharora099@users.noreply.github.com>
Date: Mon Nov 7 19:21:46 2022 +0530
Update docs/About/4.md
Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>
commit 72c0cb9d28ff4b030ebd874b0650b67182bbd015
Author: Danish Arora <35004822+danisharora099@users.noreply.github.com>
Date: Mon Nov 7 19:20:31 2022 +0530
Update docs/About/3.md
Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>
commit 6e4a067fe5b352789a45bb19b65e2168e655c77f
Author: danisharora099 <danisharora099@gmail.com>
Date: Mon Nov 7 19:20:20 2022 +0530
fix: gitignore
commit b2871014aaeabf2ca6d3f7cdf5da89662f8e81a3
Author: Danish Arora <35004822+danisharora099@users.noreply.github.com>
Date: Mon Nov 7 19:16:45 2022 +0530
Update docs/About/7.md
Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>
commit 66b7add730064730ad26610eebaeec672a1619e2
Author: danisharora099 <danisharora099@gmail.com>
Date: Fri Nov 4 21:31:04 2022 +0530
fix: build
commit 11f17a726f1fe389c60920a7be93eb9adbc44fa0
Author: danisharora099 <danisharora099@gmail.com>
Date: Fri Nov 4 21:18:43 2022 +0530
minor fixes
commit d4741551a0946c1225aa8631deaa4fdb05e15a2c
Author: danisharora099 <danisharora099@gmail.com>
Date: Fri Nov 4 20:58:42 2022 +0530
add: guide: waku-relay
commit f67d3b26d65ec863ca330b17b447e084bf1b4db1
Author: danisharora099 <danisharora099@gmail.com>
Date: Fri Nov 4 20:08:33 2022 +0530
address comments
commit 7eec7bcc72fb8f2949c4f76dcda63b04af6c450c
Author: danisharora099 <danisharora099@gmail.com>
Date: Fri Nov 4 17:24:42 2022 +0530
add: content topic guide
commit bc958ddb18bd35563e937ddd0650bdaf46e3494a
Author: danisharora099 <danisharora099@gmail.com>
Date: Thu Nov 3 15:59:47 2022 +0530
address comments
commit 0adcdceacae989cf384aaf50ba692d45faa3173a
Author: danisharora099 <danisharora099@gmail.com>
Date: Thu Nov 3 12:42:49 2022 +0530
improve why waku
commit cba05cc434e285da84d6ea1d3d110868919d3a01
Author: danisharora099 <danisharora099@gmail.com>
Date: Thu Nov 3 12:11:50 2022 +0530
rename concepts
commit a403a2dc6b8bd303fd24ae746f538708f0f8f4eb
Author: danisharora099 <danisharora099@gmail.com>
Date: Thu Nov 3 12:05:43 2022 +0530
update gitignore
commit 57d7a79daf1995cce10a64c7d88009a2e6699b88
Author: danisharora099 <danisharora099@gmail.com>
Date: Thu Nov 3 12:05:01 2022 +0530
add cspell.json
commit 05cbe6c9f51497dfcec2bca017caf7d83b30b5f8
Author: danisharora099 <danisharora099@gmail.com>
Date: Thu Nov 3 12:04:52 2022 +0530
address comments
commit b9afeeed905d4919bbc07832f790f5a22c624929
Author: Danish Arora <35004822+danisharora099@users.noreply.github.com>
Date: Thu Nov 3 11:34:41 2022 +0530
Update docs/Development Concepts/3.md
Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>
commit 44043485708339982f6435ae52eee6f526421132
Author: Danish Arora <35004822+danisharora099@users.noreply.github.com>
Date: Thu Nov 3 11:32:38 2022 +0530
Update docs/Development Concepts/2.md
Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>
commit 9d152946c7ed0c2f0cefbeab6bfd19240d788546
Author: Danish Arora <35004822+danisharora099@users.noreply.github.com>
Date: Thu Nov 3 11:32:28 2022 +0530
Update docs/Development Concepts/2.md
Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>
commit cb74f57e96451dc69f5ab06b5fbeda37ecc3e45c
Author: Danish Arora <35004822+danisharora099@users.noreply.github.com>
Date: Thu Nov 3 11:32:15 2022 +0530
Update docs/Development Concepts/2.md
Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>
commit a8b7dcaf9f2502fc94bb6f1bbcce62881020a351
Author: Danish Arora <35004822+danisharora099@users.noreply.github.com>
Date: Thu Nov 3 11:32:02 2022 +0530
Update docs/Development Concepts/2.md
Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>
commit ec6a8f2399eb43d99af40e64f5c76a678528337a
Author: Danish Arora <35004822+danisharora099@users.noreply.github.com>
Date: Thu Nov 3 11:28:49 2022 +0530
Update docs/About/7.md
Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>
commit ed3f35959cf10ce372d84e5db7a241e1fa5e40e0
Author: Danish Arora <35004822+danisharora099@users.noreply.github.com>
Date: Thu Nov 3 11:28:42 2022 +0530
Update docs/About/7.md
Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>
commit 78ae346c05f266403b2ba0c9b320eb2fcb96fa74
Author: Danish Arora <35004822+danisharora099@users.noreply.github.com>
Date: Thu Nov 3 11:28:35 2022 +0530
Update docs/About/6.md
Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>
commit 2af69de57697c0f3addc323135d0e16e35894ddc
Author: Danish Arora <35004822+danisharora099@users.noreply.github.com>
Date: Thu Nov 3 11:28:26 2022 +0530
Update docs/About/3.md
Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>
commit 7b3e3519d2fa33627dfa2d19cab84c29639d90e8
Author: danisharora099 <danisharora099@gmail.com>
Date: Thu Nov 3 00:39:49 2022 +0530
iterate
commit c37f84b91a7dbfa899c39f8357170ba94ed03324
Author: Danish Arora <35004822+danisharora099@users.noreply.github.com>
Date: Wed Nov 2 15:30:56 2022 +0530
Update docs/Development Concepts/Protocols/2.md
Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>
commit b9b7c8f57eafbbc77b7f8e866eada71f3b147813
Author: Danish Arora <35004822+danisharora099@users.noreply.github.com>
Date: Wed Nov 2 15:11:47 2022 +0530
Update docs/About/7.md
Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>
commit c0bf3a4778cfbc2bc821e96e54a370ddc9577ebc
Author: Danish Arora <35004822+danisharora099@users.noreply.github.com>
Date: Wed Nov 2 15:11:07 2022 +0530
Update docs/About/6.md
Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>
commit a30737bd7cbfa4a4549caac0e256701aa16ca3d5
Author: Danish Arora <35004822+danisharora099@users.noreply.github.com>
Date: Wed Nov 2 15:10:43 2022 +0530
Update docs/About/6.md
Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>
commit 4a0851efebe332e767050688bcd7a231815aea3e
Author: Danish Arora <35004822+danisharora099@users.noreply.github.com>
Date: Wed Nov 2 14:59:05 2022 +0530
Update docs/About/2.md
Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>
commit 0ed49e6f2c143d1b13fe1d9b98ca777129edb657
Author: Danish Arora <35004822+danisharora099@users.noreply.github.com>
Date: Wed Nov 2 14:58:56 2022 +0530
Update docs/About/1.md
Co-authored-by: fryorcraken.eth <110212804+fryorcraken@users.noreply.github.com>
commit 2793d8f8b7c29720c67ceffdf30a1ee5a6cdf4bd
Author: danisharora099 <danisharora099@gmail.com>
Date: Tue Nov 1 19:51:24 2022 +0530
restructure & add new docs
61 lines
4.6 KiB
Markdown
61 lines
4.6 KiB
Markdown
---
|
|
title: Security Features
|
|
---
|
|
|
|
Each protocol layer of Waku v2 provides a distinct service and is associated with a separate set of security features and concerns.
|
|
Therefore, the overall security of Waku v2 depends on how the different layers are utilized.
|
|
|
|
The security models are detailed in the RFC of the protocols.
|
|
That we strive to provide well documented and open source RFCs so that Waku users know what security guarantees are and aren't provided by each protocol.
|
|
|
|
Some of the security features of Waku v2 are:
|
|
|
|
### Pseudonymity
|
|
|
|
Waku v2 by default guarantees pseudonymity for all of the protocol layers since parties do not have to disclose their true identity
|
|
and instead they utilize libp2p `PeerID` as their identifiers.
|
|
While pseudonymity is an appealing security feature, it does not guarantee full anonymity since the actions taken under the same pseudonym
|
|
i.e., `PeerID` can be linked together and potentially result in the re-identification of the true actor.
|
|
|
|
### Anonymity / Unlinkability
|
|
|
|
At a high level, anonymity is the inability of an adversary in linking an actor to its data/performed action (the actor and action are context-dependent).
|
|
To be precise about linkability, we use the term Personally Identifiable Information (PII) to refer to any piece of data that could potentially be used to uniquely identify a party.
|
|
For example, the signature verification key, and the hash of one's static IP address are unique for each user and hence count as PII.
|
|
Notice that users' actions can be traced through their PIIs (e.g., signatures) and hence result in their re-identification risk.
|
|
As such, we seek anonymity by avoiding linkability between actions and the actors / actors' PII. Concerning anonymity, Waku v2 provides the following features:
|
|
|
|
**Publisher-Message Unlinkability**:
|
|
This feature signifies the unlinkability of a publisher to its published messages in the `WAKU-RELAY` protocol.
|
|
|
|
**Subscriber-Topic Unlinkability**:
|
|
This feature stands for the unlinkability of the subscriber to its subscribed topics in the `WAKU-RELAY` protocol.
|
|
The [Subscriber-Topic Unlinkability](https://rfc.vac.dev/spec/11/#security-analysis) is achieved through the utilization of a single PubSub topic.
|
|
As such, subscribers are not re-identifiable from their subscribed topic IDs as the entire network is linked to the same topic ID.
|
|
This level of unlinkability / anonymity is known as [k-anonymity](https://www.privitar.com/blog/k-anonymity-an-introduction/) where k is proportional to the system size (number of subscribers).
|
|
Note that there is no hard limit on the number of the pubsub topics, however, the use of one topic is recommended for the sake of anonymity.
|
|
|
|
### Spam protection
|
|
|
|
This property indicates that no adversary can flood the system (i.e., publishing a large number of messages in a short amount of time), either accidentally or deliberately, with any kind of message i.e. even if the message content is valid or useful.
|
|
Spam protection is partly provided in `WAKU2-RELAY` through the [scoring mechanism](https://github.com/libp2p/specs/blob/master/pubsub/gossipsub/gossipsub-v1.1.md#spam-protection-measures) provided for by GossipSub v1.1.
|
|
At a high level, peers utilize a scoring function to locally score the behavior of their connections and remove peers with a low score.
|
|
|
|
There's also further research being done in this domain, including the designing of (RLN (Rate Limiting Nullifiers))[./7.md]
|
|
|
|
### Data confidentiality, Integrity, and Authenticity
|
|
|
|
Confidentiality can be addressed through data encryption whereas integrity and authenticity are achievable through digital signatures.
|
|
These features are provided for in [WAKU-MESSAGE (version 1)](https://rfc.vac.dev/spec/14#version-1) and [WAKU-NOISE](https://rfc.vac.dev/spec/35/) through payload encryption as well as encrypted signatures.
|
|
|
|
> `WAKU-NOISE` enables secure channel negotiation over Waku.
|
|
|
|
## Security Considerations
|
|
|
|
**Lack of anonymity/unlinkability in the protocols involving direct connections including [`13/WAKU2-STORE`](https://rfc.vac.dev/spec/13/) and [`12/WAKU2-FILTER`](https://rfc.vac.dev/spec/12/) protocols**:
|
|
The anonymity/unlinkability is not guaranteed in the protocols like `13/WAKU2-STORE` and `12/WAKU2-FILTER` where peers need to have direct connections to benefit from the designated service.
|
|
This is because during the direct connections peers utilize `PeerID` to identify each other,
|
|
therefore the service obtained in the protocol is linkable to the beneficiary's `PeerID` (which counts as PII).
|
|
For `13/WAKU2-STORE`, the queried node would be able to link the querying node's `PeerID` to its queried topics.
|
|
Likewise, in the `12/WAKU2-FILTER`, a full node can link the light node's `PeerID`s to its content filter.
|