{"id":17310499,"url":"https://github.com/kpcyrd/tr1pd","last_synced_at":"2025-04-14T14:20:26.779Z","repository":{"id":57670456,"uuid":"115939174","full_name":"kpcyrd/tr1pd","owner":"kpcyrd","description":"tamper resistant audit log","archived":false,"fork":false,"pushed_at":"2018-08-30T22:33:48.000Z","size":184,"stargazers_count":18,"open_issues_count":11,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-28T03:14:46.727Z","etag":null,"topics":["antiforensics","forensics","intrusion-detection","perimeter-security","physical-security","rust","sandboxed","security","security-incidents"],"latest_commit_sha":null,"homepage":"https://crates.io/crates/tr1pd","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kpcyrd.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":"audit.sh","citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-01-01T18:48:25.000Z","updated_at":"2024-02-03T18:48:20.000Z","dependencies_parsed_at":"2022-09-26T20:41:05.628Z","dependency_job_id":null,"html_url":"https://github.com/kpcyrd/tr1pd","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kpcyrd%2Ftr1pd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kpcyrd%2Ftr1pd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kpcyrd%2Ftr1pd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kpcyrd%2Ftr1pd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kpcyrd","download_url":"https://codeload.github.com/kpcyrd/tr1pd/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248168995,"owners_count":21058938,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["antiforensics","forensics","intrusion-detection","perimeter-security","physical-security","rust","sandboxed","security","security-incidents"],"created_at":"2024-10-15T12:37:24.072Z","updated_at":"2025-04-14T14:20:26.754Z","avatar_url":"https://github.com/kpcyrd.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# tr1pd [![Build Status][travis-img]][travis] [![Crates.io][crates-img]][crates] [![docs.rs][docs-img]][docs]\n\n[travis-img]:   https://travis-ci.org/kpcyrd/tr1pd.svg?branch=master\n[travis]:       https://travis-ci.org/kpcyrd/tr1pd\n[crates-img]:   https://img.shields.io/crates/v/tr1pd.svg\n[crates]:       https://crates.io/crates/tr1pd\n[docs-img]:     https://docs.rs/tr1pd/badge.svg\n[docs]:         https://docs.rs/tr1pd\n\n**Status: Very unstable, do not use**\n\ntr1pd is a tamper resistant audit log.\n\n## Usage\n\n    # setup your keyring\n    tr1pctl init\n    # start the tr1pd daemon\n    systemctl start tr1pd\n    # start a sensor\n    ./sensor01 | tr1pctl write \u0026\n    # verify your logs\n    tr1pctl fsck\n    # view the logs of your current session\n    tr1pctl ls @..\n\n## Installation\n\nMake sure you have the following dependencies installed:\nDebian/Ubuntu: `libsodium-dev libseccomp-dev libzmq3-dev`,\nArchlinux: `libsodium libseccomp zeromq`,\nAlpine: `make libsodium-dev libseccomp-dev zeromq-dev`,\nOpenBSD: `libsodium zeromq`.\n\n    cargo install tr1pd\n\n## Setup\n\nIf possible, use your package manager to setup the system ([Archlinux AUR][aur]).\nAfter that you need to add the users that should have access to tr1pctl to the\n`tr1pd` group with `usermod -aG tr1pd youruser`.\n\n[aur]: https://aur.archlinux.org/packages/tr1pd/\n\nIf no package is available, you can also run a standalone setup (this is also\nrecommended for development). Edit the paths as needed.\n\n    # standalone configuration (~/.config/tr1pd.toml)\n\n    [daemon]\n    socket = \"ipc:///home/user/.tr1pd/tr1pd.sock\"\n    datadir = \"/home/user/.tr1pd/\"\n\n    pub_key = \"/home/user/.tr1pd/pub.key\"\n    sec_key = \"/home/user/.tr1pd/sec.key\"\n\nRun `tr1pctl init` to setup the keyring in your homefolder and `tr1pd` in a\nseperate terminal. Verify everything is working correctly by executing\n`tr1pctl ping`.\n\n## Writing sensors\n\nSensors can be written in any language using stdio. `tr1pctl write` is a simple\nline based interface that writes each line into a block. You can also enable\nbinary mode with `tr1pctl write -s 65535`. To monitor your auth.log you can\nsimply write:\n\n    tail -f /var/log/auth.log | tr1pctl write\n\n## Benchmark\n\nWhile this is not a common usecase, tr1pd is fast enough for Ultra HD video,\naccording to [netflix][1]. This means that you can write \u003e= 25 Megabits per\nsecond. Make sure you're compiling both tr1pctl and tr1pd with `--release`.\n\n    dd if=/dev/zero | pv | cargo run --release --bin tr1pctl -- write -s 65535\n\n[1]: https://help.netflix.com/en/node/306\n\n## The program says block a lot, is this a blockchain?\n\n[No][not a blockchain]. tr1pd uses merkle tree like constructs that are\nheavily inspired by bitcoin, but lacks some essential properties to qualify as\na blockchain.\n\n[not a blockchain]: https://gist.github.com/joepie91/e49d2bdc9dfec4adc9da8a8434fd029b\n\n## Trivia\n\nThe initial draft for the protocol was designed in 2014 for perimeter\nintrustion detection to verify integrity of buildings. Multiple prototypes have\nbeen written in 2017 and the first deployment was on a server located at the\n34C3 to ensure integrity inside the congress colocation.\n\n## License\n\nAGPLv3+\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkpcyrd%2Ftr1pd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkpcyrd%2Ftr1pd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkpcyrd%2Ftr1pd/lists"}