Bombadillo (on the `tofu` branch, soon to be merged into `develop`) has implemented a trust on first use system. I am storing hashed certs for comparison and validating hostnames and valid dates/times for all certificates. Servers offering multiple certificates is allowed, but Bombadillo will only store the first valid one it finds. It is working really well so far. Of the active gemini servers the only one I get a bad certificate from is carcosa.net (which, with how I have built things, prevents the site from being visited at all). My takeaway regarding TOFU: - A tofu system was pretty trivial to set up - It seems to work pretty well - It took a bit to figure out how I wanted to handle certificates expiring - It leaves the client to determine how strict they want to be (will they allow a user to still retrieve data even with a bad cert?) I was pretty in favor of this model before and continue to be. Servers can still use Let's Encrypt and present a certificate to the client and the client will validate it in its own way rather than through a certificate authority. In terms of adding overhead to gemini as a weekend project: I had the benefit of already having written a parser for a config will that also stores bookmarks. So that now stores hashes as well and just has a data model for them in my main client struct. For those without that, using a database (SQLite is likely a perfect option for this use case) could be a good call, or saving to a JSON file and parsing it on client load... in either case it doesnt seem like too big a challenge. Anyway, just thought I'd report in after having gotten that working. Now to figure out sending local certificates to servers... I think I will have pretty good feature coverage after that. Lastly, for any interested parties, Bombadillo now has a website and gopherspace (it will have a gemini mirror as well, just as soon as I get jetforce to work for me... I had some issues, but will be working through them): http://bombadillo.colorfield.space gopher://bombadillo.colorfield.space
---
Previous in thread (12 of 15): 🗣️ Bradley D. Thornton (Bradley (a) NorthTech.US)
Next in thread (14 of 15): 🗣️ Julien Blanchard (julien (a) typed-hole.org)