3 ms·
> Their implementation for the checksum is actually cool, I like it. For those interested, I think the checksum trick referred to above (in the context of the
by dane-pgp 5y ago
> Their implementation for the checksum is actually cool, I like it.
For those interested, I think the checksum trick referred to above (in the context of the service offered by CTemplar) is described at [0] and there is a step-by-step how-to guide at [1].
Basically the top level index.html contains integrity hashes for the JavaScript it fetches, and you're expected to copy-paste the source of the page you're viewing into an editor, save the file, and run a local checksum on it.
That is clever, but it seems like a more convenient design would be to use a "bootstrap" page which only has the minimal set of tags on it needed to run a single <script src=bootstrap.js integrity=sha384-whatever>. Then the user can do a quick visual inspection that there's nothing suspicious in the DOM and confirm that the integrity hash matches the value in an append-only log somewhere.
Mozilla actually had a clever idea for building binary transparency using the existing certificate transparency infrastructure for domains[2], by registering something like $version_number-$hash as a sub-domain of the domain where the app is hosted, e.g. v14-abc123.ctemplar.com which the user could search for using one or more certificate transparency logs.
Anyway, this manual checking process can be avoided entirely if the site is made available as a SecureBookmark[3], although that has the disadvantage that the browser would show a Data URI as the page address rather than a standard URL/domain which users are more familiar and comfortable with.
[0] https://ctemplar.com/ctemplar-checksum-implementation/ https://ctemplar.com/ctemplar-checksum-implementation/
[1] https://github.com/CTemplar/webclient/tree/gh-pages https://github.com/CTemplar/webclient/tree/gh-pages
[2] https://wiki.mozilla.org/Security/Binary_Transparency https://wiki.mozilla.org/Security/Binary_Transparency
[3] https://coins.github.io/secure-bookmark/ https://coins.github.io/secure-bookmark/