[tech] Integrity checks for Gemini pages

nothien at uber.space nothien at uber.space
Fri May 21 19:08:22 BST 2021

nervuri <nervuri at disroot.org> wrote:
> We can't rely on close_notify, unfortunately.  According to Lupa [1],
> "33.3 % of URLs do NOT send a proper TLS shutdown (application close).
> Even 26.7 % of those who return status 20 are in that case."
> [1] gemini://gemini.bortzmeyer.org/software/lupa/stats.gmi

If servers have not yet been fixed to use close_notify, then there's no
hope that they would implement any new companion specs / technologies
for providing integrity.  If a user of such a server wants integrity,
then they should request it of the maintainer of the server code, or
switch to a different server; there are many out there with the same

> >And every single authenticated encryption method provided with TLS
> >ensures that the communicated data is the same at both ends - bit flips
> >and the like are detected and such malformed packets are dropped
> >appropriately.  One of the mechanisms for this verification is Poly1305
> >- check it out if you're interested in how and why these work.
> You're referring to the transfer, but data may be corrupted
> server-side, on disk or in RAM.

Integrity on the server-side is out of the scope of Gemini, and is
really an implementation detail.  If a server operator decides that they
need to worry about on-disk integrity, then there are already good
solutions for that (e.g. RAID); and in-RAM corruption is so rare that I
don't think that adding a whole Gemini feature is worth it - it would be
so rare that the costs of adding it (in terms of computation and network
transfer) outweigh the benefits of detecting it.  In addition, in most
cases of on-disk or in-RAM corruption, the end user will easily be able
to tell that something went wrong, and if they find that it's a
consisent issue, then they can mail the server operator and let them

~aravk | ~nothien

More information about the Gemini mailing list