<-- back to the mailing list

[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 nohope that they would implement any new companion specs / technologiesfor providing integrity. If a user of such a server wants integrity,then they should request it of the maintainer of the server code, orswitch to a different server; there are many out there with the samefeatures.

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 isreally an implementation detail. If a server operator decides that theyneed to worry about on-disk integrity, then there are already goodsolutions for that (e.g. RAID); and in-RAM corruption is so rare that Idon't think that adding a whole Gemini feature is worth it - it would beso rare that the costs of adding it (in terms of computation and networktransfer) outweigh the benefits of detecting it. In addition, in mostcases of on-disk or in-RAM corruption, the end user will easily be ableto tell that something went wrong, and if they find that it's aconsisent issue, then they can mail the server operator and let themknow.

~aravk | ~nothien

Proxied content from gemini://rawtext.club/~sloum/geminilist/006558.gmi (external content)

Gemini request details:

Original URL
Status code
Proxied by

Be advised that no attempt was made to verify the remote SSL certificate.