

Thumshirn chose to add an HMAC checksum based on SHA-256. So the key to adding the needed sort of authentication to Btrfs is to add another checksum algorithm with the needed assurance. Btrfs already supports a number of checksum algorithms, but none of them have that property. To gain that assurance, Btrfs needs to use a checksum that cannot readily be altered by an attacker. So the fact that a block of data stored in a Btrfs filesystem matches the stored checksum does not, by itself, give much assurance that the data has not been messed with in a deliberate way. Attackers tend to be a bit more thorough. The thing about hardware is that, while it can be creative indeed in finding new ways to mangle data, it’s generally not clever enough to adjust checksums to match. So much of the needed infrastructure is already there.Ĭhecksums in Btrfs, though, were primarily intended to catch corruption caused by storage hardware. Checksums for file data is stored in a separate tree. Btrfs is one such filesystem as can be seen from the on-disk format documentation, most structures on disk have a checksum built into them. The developers of more modern filesystems, though, have generally taken the idea that storage devices are untrustworthy (if not downright malicious) to heart as a result, they design the ability to calculate, store, and compare checksums into the filesystem from the beginning. Solutions like dm-verity and fs-verity work by storing checksums apart from the data fs-verity, for example, places the checksum data in a hidden area past the end of the file. If there is reason to believe that the stored checksum is what the creator of the data intended, then the data, too, should be as intended. When it comes time to read that data, the checksum is calculated anew and compared to the stored value if the two match, one can be confident that the data has not been modified (or corrupted by the hardware) since the checksum was calculated.
#Archipel ejabberd openssl code#
Integrity-verification code at the filesystem or storage level generally works by calculating (and storing) checksums of each block of data.
#Archipel ejabberd openssl Patch#
More Recently, Johannes Thumshirn has posted a patch series adding filesystem-level authentication to Btrfs it promises to provide integrity with a surprisingly small amount of code. Technologies like dm-verity and fs-verity are attempts to solve this problem, as is the recently covered integrity policy enforcement security module. Comments in the patch set say that the TCP-based communication system “is intended for Popcorn testing and development purposes only”, suggesting that, someday, somebody will get around to implementing something better.ĭevelopers who are concerned about system integrity often put a fair amount of effort into ensuring that data stored on disk cannot be tampered with without being detected. There does not seem to be any provision for nodes going up or down or being absent entirely. No sort of authentication is done for incoming node connections, which might seem like a bit of a security issue indeed, the patch set warns against running Popcorn on machines connected to the Internet. There is a hard-coded maximum of 62 nodes. Thereafter, each node is known by an integer ID which is simply its position in the nodes file. Each machine will make a TCP connection to every node listed ahead of itself in this file, then wait for an incoming connection from every node listed afterward. The module reads a list of IP addresses (IPv4 only) directly from a file (/etc/popcorn/nodes by default). Popcorn itself is started by loading a kernel module that is charged with connecting the larger system together.


It is an interesting proof of concept, but one should not expect to see it merged in anything close to its current form.Įach node in a Popcorn system is a separate Linux host sitting on the network. The posted code, which is a portion of the larger project, is focused on process migration and memory sharing across machines. This project has, among other goals, the objective of turning a tightly networked set of computers into something that looks like a single system - a sort of NUMA machine with even larger than usual inter-node costs. It is the first appearance on the kernel mailing lists of an academic project (naturally called Popcorn Linux) that has been underway since 2013 or so. The end of April saw the posting of a complex patch set called “Popcorn Linux distributed thread execution”. Fedora 32, 3d printers, hard drives, taco bell
