ActivityPub Viewer

A small tool to view real-world ActivityPub objects as JSON! Enter a URL or username from Mastodon or a similar service below, and we'll send a request with the right Accept header to the server to view the underlying object.

Open in browser →
{ "@context": [ "https://www.w3.org/ns/activitystreams", "https://w3id.org/security/v1", { "Hashtag": "as:Hashtag", "sensitive": "as:sensitive", "manuallyApprovesFollowers": "as:manuallyApprovesFollowers", "alsoKnownAs": { "@id": "as:alsoKnownAs", "@type": "@id" }, "movedTo": { "@id": "as:movedTo", "@type": "@id" }, "toot": "http://joinmastodon.org/ns#", "featured": { "@id": "toot:featured", "@type": "@id" }, "Emoji": "toot:Emoji", "blurhash": "toot:blurhash", "votersCount": "toot:votersCount", "schema": "http://schema.org#", "PropertyValue": "schema:PropertyValue", "value": "schema:value", "ostatus": "http://ostatus.org#", "conversation": "ostatus:conversation" } ], "type": "Article", "id": "https://chrichri.ween.de/o/6477c81299ca440fa031b63daf16a504", "attributedTo": "https://chrichri.ween.de", "content": "<p>When I first learned about <a href=\"https://chrichri.ween.de/t/pass\" class=\"mention hashtag\" rel=\"tag\">#<span>pass</span></a> I liked <a href=\"https://www.passwordstore.org/\">its concepts</a> very much.</p>\n<p>But I found it disturbing that anybody with access to my filesystem could see for which sites/applications/organizations I store encrypted information: the filename in pass reflects the criteria I can search for when looking for an encrypted information about something.</p>\n<p>I learned about the <a href=\"https://github.com/roddhjav/pass-tomb\">pass-tomb</a> extension.</p>\n<p>A <a href=\"https://github.com/dyne/Tomb\">tomb</a> is an encrypted filesystem in a file. The tomb script helps to unify, simplify and extend the idea and make these <em>filesystems in files</em> manageable.</p>\n<p>pass-tomb extends pass to put the files of pass into a tomb adding new subcommands to <code>pass</code> like <code>pass open</code> and <code>pass close</code> to open and close the tomb containing pass files.</p>\n<p>The tomb is protected by the same gpg key as any of the files contained inside the pass file structure.</p>\n<p>In a closed pass-tomb it&#x27;s not possible to look at the filenames and directory structure of pass. The whole filesystem is encrypted and stored just in one file that only tells someone that I&#x27;m probably using pass-tomb.</p>\n<p>When starting with pass-tomb I ran into two issues:</p>\n<ul>\n<li>running out of inodes</li>\n<li>pass-tomb (actually tomb) complaining about my zramswap on the <a href=\"https://chrichri.ween.de/t/librem5\" class=\"mention hashtag\" rel=\"tag\">#<span>Librem5</span></a></li>\n</ul>\n<h1>running out of inodes</h1>\n<p>When a pass-tomb is created the default size is 10MB formatted using ext4. This results in 2048 inodes being available (each file, symlink, directory requiring one inode).</p>\n<p>pass uses a directory structure to put passwords for the same subject into a subdirectory. Having about 930 passwords imported this worked fine.</p>\n<p>But when I tried to initialize a git repository (also offered as a standard functionality by pass) I ran out of space which turned out to be out of inodes.</p>\n<p>Since the number of inodes cannot be changed in an ext4 filesystem I needed to start over and made a bigger pass-tomb store with 30MB and manually formatted it to btrfs using mixed mode to avoid the problem of running out of inodes.</p>\n<p>To use btrfs the size of the disk at least has to be 16MB (mixed mode). To get this size the tomb file needs to be created with a minimum of 18MB.</p>\n<p>I also could have formatted it with ext4 and set the bytes-per-inode to be the same as the block size to get a maximum of inodes (one for each block containing 1024bytes).</p>\n<p>I guess it&#x27;s a question of taste whether one uses btrfs or ext4. If there are good arguments to do one or the other I&#x27;d be interested to read them.</p>\n<p>I opened the following issues about this problem:</p>\n<ul>\n<li><a href=\"https://github.com/roddhjav/pass-tomb/issues/41\" rel=\"noopener\">https://github.com/roddhjav/pass-tomb/issues/41</a></li>\n<li><a href=\"https://github.com/dyne/Tomb/issues/448\" rel=\"noopener\">https://github.com/dyne/Tomb/issues/448</a></li>\n</ul>\n<h1>pass-tomb complaining about zramswap</h1>\n<p>Using unencrypted swap written to disk while working with tombs poses a risk: parts or all of the key of the tombs luks encryption or any of the content could end up on disk unencrypted.</p>\n<p>Because of this tomb checks for swap devices, checks whether the devices found active are encrypted and if an unencrypted swap device is found refuses to run.</p>\n<p>There is a message saying the the user can <code>-f</code> force to run anyway, but no explanation about what else might be forced.</p>\n<p>On my <a href=\"https://chrichri.ween.de/t/librem5\" class=\"mention hashtag\" rel=\"tag\">#<span>Librem5</span></a> I use a <a href=\"https://chrichri.ween.de/t/zramswap\" class=\"mention hashtag\" rel=\"tag\">#<span>zramswap</span></a> to compress parts of its 3GB ram. This works very well, but makes tomb complain, because the swap is not encrypted.</p>\n<p>Tomb doesn&#x27;t know about zramswap and the fact that it is usually not written to disk - even though it <a href=\"https://www.kernel.org/doc/html/latest/admin-guide/blockdev/zram.html#writeback\">could be written to disk</a>.</p>\n<p>I stumbled a few times over the missing <code>-f</code> when testing pass-tomb on my Librem5 and decided to look into the script. I found it very good readable and adjusted it to check any swap whether it lives on a zram device and whether the zram device is configured not to write to disk any of its content.</p>\n<p>Now my pass-tomb does not complain anymore about unencrypted zramswap without writeback. I hope the changes will be <a href=\"https://github.com/dyne/Tomb/pull/447\">merged</a> into tomb to be available in the <a href=\"https://chrichri.ween.de/t/pureos\" class=\"mention hashtag\" rel=\"tag\">#<span>PureOS</span></a> tomb package sometimes.</p>\n", "to": [ "https://www.w3.org/ns/activitystreams#Public" ], "cc": [ "https://chrichri.ween.de/followers" ], "published": "2022-10-20T18:18:41Z", "context": "https://chrichri.ween.de/contexts/3fe5e566f95341bdb50afe958b7e410d", "conversation": "https://chrichri.ween.de/contexts/3fe5e566f95341bdb50afe958b7e410d", "url": "https://chrichri.ween.de/o/6477c81299ca440fa031b63daf16a504", "tag": [ { "href": "https://chrichri.ween.de/t/pass", "name": "#pass", "type": "Hashtag" }, { "href": "https://chrichri.ween.de/t/librem5", "name": "#librem5", "type": "Hashtag" }, { "href": "https://chrichri.ween.de/t/zramswap", "name": "#zramswap", "type": "Hashtag" }, { "href": "https://chrichri.ween.de/t/pureos", "name": "#pureos", "type": "Hashtag" } ], "summary": null, "inReplyTo": null, "sensitive": false, "attachment": [], "name": "pass-tomb pitfalls" }