ipfs / ipfs/kubo

Hardened CIDs/Peer-IDs with Argon2 parity section

Open
#7,361 7 comments 0 reactions 0 assignees View on GitHub
kind/discussion kind/enhancement
Dominant language
Go
Stars
17.1k
Forks
3.2k
Avg merge
3d 18h
Merged PRs (30d)
11

Description

This is a feature request for an optional tailing parity section on CIDs as well as Peer-IDs.

## The issue

Since humans are particularly bad at comparing long strings of signs (like hash sums), they tend to stick to compare just some sections and call it a day.

## Concept

To harden the CIDs/Peer-IDs against address spoofing (partial hash collision), the hash (and the hash-definition as salt) will be used as input for the [Argon2](https://en.wikipedia.org/wiki/Argon2) algorithm.

A visual separator like a dash, between the CID and the parity section will help to break it visually apart.

## Prospective benefits

* Errors in user input can be caught immediately. IPFS won't accept any wrong input and can print helpful error messages, instead of "timeout, content not found" or adding the wrong Peer-ID - searching for a non-existing peer.
* Attacks on domain names with forged IPNS-sums can be much more easily identified by the naked eye.
* Increases the computing power necessary to do partial hash collision attacks, since the parity section needs to be forged as well.

_Originally posted https://github.com/ipfs/go-ipfs/issues/7357#issuecomment-633687330_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.