Project Description

Implement a checksum algorithm for BTRFS that uses and authenticated (keyed) hash. There are 2 cryptographically secure hashes supported by btrfs, sha256 and blake2b.

Status: prototypes exist for most of the goals below, need polishing and testing

Goal for this Hackweek

This has been ongoing, there's prototype for the kernel side but is not complete and does not cover the whole use case. One drawback for the key requirement is that there's no way to verify the data/metadata validity without it. To address that, combine authenticated hash and a regular checksum into (e.g. split the 256 bits to 224 bits for sha256 and 32 bits for crc32c). To allow a use case with authenticated hash but without the private key stored on the host explore the public key signature for checksum.

  • implement the basic authenticated hashes
  • implement the combined authenticated and secondary hash
  • finalize the interfaces (command line options, mount options), support for all commands
  • bonus goal 1: implement checksum based on public key signature (DSA)
  • bonus goal 2: prototype using blake3 and xxh3 as another types of cryptographic and checksum algorithms

Progress

  • refactoring old branches, refreshing on to newer base (auth, auth+sum)
  • implementing auth+sum in progs
  • public key signature (example): implementing ->sign for ecdsa with p-256 curve
  • XXH3 in kernel does not seem to be better than xxh64 (https://github.com/Cyan4973/xxHash/issues/793), the user space implementation heavily relies on SSE2 which is not easily available in kernel (FPU context switch overhead)

Resources

Code is in git but still quite messy and WIP.

Looking for hackers with the skills:

linux btrfs kernel cryptography

This project is part of:

Hack Week 22

Activity

  • 8 months ago: dsterba liked this project.
  • 8 months ago: dmdiss liked this project.
  • 8 months ago: c-hagenest liked this project.
  • 8 months ago: dsterba added keyword "cryptography" to this project.
  • 8 months ago: dsterba added keyword "linux" to this project.
  • 8 months ago: dsterba added keyword "btrfs" to this project.
  • 8 months ago: dsterba added keyword "kernel" to this project.
  • 8 months ago: dsterba started this project.
  • 8 months ago: dsterba originated this project.

  • Comments

    Be the first to comment!

    Similar Projects

    early stage kdump support by mbrugger

    [comment]: # (Please use the project descriptio...