MSVA-PERL(1)

πŸ“¦
version 0.9.2 Β· 2 versions
, in debian bookworm, debian trixie, ubuntu jammy, ubuntu noble

πŸ’– MSVA-PERL πŸ’–

okay bestie, welcome to msva-perl β€” it's the Perl implementation of a Monkeysphere Validation Agent, and yes, it's from the User Contributed Perl Documentation corner of the universe. she's a certificate validation service and she's lowkey iconic. let's get into it 🫢


✨ NAME ✨

msva-perl β€” a Perl implementation of a Monkeysphere Validation Agent. that's it, that's the girl. πŸ’…


🌸 SYNOPSIS 🌸

msva-perl [ COMMAND [ ARGS ... ] ]

like. that's the whole vibe. command optional, args optional, chaos permitted. πŸ¦‹


πŸŽ€ ABSTRACT πŸŽ€

msva-perl provides a Perl implementation of the Monkeysphere Validation Agent, which is a certificate validation service. no cap, that's literally her whole job. ⭐


🧚 INTRODUCTION 🧚

The Monkeysphere Validation Agent offers a local service for tools to validate certificates (both X.509 and OpenPGP) and other public keys. both flavors, she does not discriminate, she's a supportive queen. πŸ‘‘

So here's how the whole thing goes down. Clients of the validation agent query it with three things:

  • a public key carrier β€” which is either a raw public key, or some flavor of certificate
  • the supposed name of the remote peer offering that pubkey
  • the context in which the validation check is relevant β€” like ssh, https, etc

and then the validation agent tells the client whether it was able to successfully validate the peer's use of the public key in that given context. yes/no energy. slay. ✨


πŸ’œ USAGE πŸ’œ

Launch her with no arguments and msva-perl simply runs and listens forever. she's just there. vibing. listening. eternal main character energy. 🌈

Launch her with arguments and it's a whole different storyline:

  • it sets up a listener
  • it spawns a subprocess using the supplied command and arguments
  • but it sets the MONKEYSPHERE_VALIDATION_AGENT_SOCKET environment variable so it refers to its listener
  • when the subprocess terminates, msva-perl tears down the listener and exits as well
  • and it returns the same value as the subprocess

This is a similar invocation pattern to that of ssh-agent(1). iykyk. 🐚


πŸ“ ENVIRONMENT VARIABLES πŸ“

msva-perl is configured by means of environment variables. yes bestie, she's an env-var girlie.

  • MSVA_LOG_LEVEL β€” msva-perl logs messages about its operation to stderr. MSVA_LOG_LEVEL controls its verbosity, and should be one of (in increasing verbosity): silent, quiet, fatal, error, info, verbose, debug, debug1, debug2, debug3. Default is 'error'.
  • MSVA_ALLOWED_USERS β€” if your system is capable of it, msva-perl tries to figure out the owner of the connecting client. If MSVA_ALLOWED_USERS is unset, msva-perl will only permit connections from the user msva is running as. If you set MSVA_ALLOWED_USERS, msva-perl will treat it as a list of local users (by name or user ID) who are allowed to connect. guest list behavior, honestly. 🎟️
  • MSVA_PORT β€” msva-perl listens on a local TCP socket to facilitate access. You can choose what port to bind to by setting MSVA_PORT. Default is to bind on an arbitrary open port. she picks. she's decisive. πŸ’…
  • MSVA_KEYSERVER β€” msva-perl will request information from OpenPGP keyservers. Set MSVA_KEYSERVER to declare the keyserver you want it to check with. If this variable is blank or unset, and your gpg.conf contains a keyserver declaration, it will use the GnuPG configuration. Failing that, the default is 'hkp://pool.sks-keyservers.net'.
  • MSVA_KEYSERVER_POLICY β€” msva-perl must decide when to check with keyservers (for new keys, revocation certificates, new certifications, etc). There are three possible options:
    • 'always' means to check with the keyserver on every query it receives.
    • 'never' means to never check with a keyserver.
    • 'unlessvalid' will only check with the keyserver on a specific query if no keys are already locally known to be valid for the requested peer.

Default is 'unlessvalid'.

  • MSVA_MONITOR_CHANGES β€” under graphical environments such as X11, msva-perl is capable of monitoring for changes in its underlying code and can prompt the user to restart the daemon when some of the underlying code changes. Setting this environment variable to 'true' enables this monitoring and prompting behavior. Default is 'false'.

πŸ”₯ COMMUNICATION PROTOCOL DETAILS πŸ”₯

Communications with the Monkeysphere Validation Agent are in the form of JSON requests over plain HTTP. Responses from the agent are also JSON objects. For details on the structure of the requests and responses, please see http://web.monkeysphere.info/validation-agent/protocol β€” go read it bestie, she's thorough. πŸ“‘


πŸ›‘οΈ SECURITY CONSIDERATIONS πŸ›‘οΈ

listen up because this part is important, no cap.

msva-perl deliberately binds to the IPv4 loopback (on 127.0.0.1) so that remote users do not get access to the daemon. she's not letting strangers in, periodt. 🚫

On systems (like Linux) which report ownership of TCP sockets in /proc/net/tcp, msva-perl will refuse access from random users β€” see MSVA_ALLOWED_USERS above. bouncer behavior. iconic. πŸ’ͺ


πŸ‘€ SEE ALSO πŸ‘€

go read those too, they're all part of the same friend group. 🫢


😭 BUGS AND FEEDBACK 😭

Bugs or feature requests for msva-perl should be filed with the Monkeysphere project's bug tracker at:

https://labs.riseup.net/code/projects/monkeysphere/issues/

if something's broken, tell them! they're nice, i promise. πŸ™ˆ


πŸ‘‘ AUTHORS AND CONTRIBUTORS πŸ‘‘

Daniel Kahn Gillmor <dkg@fifthhorseman.net<gt>

The Monkeysphere Team http://web.monkeysphere.info/


Copyright X Daniel Kahn Gillmor and others from the Monkeysphere team.

msva-perl is free software, distributed under the GNU Public License, version 3 or later. share the love, bestie. πŸ’–


and that's the whole page!! πŸŽ€ this was perl v5.32.0, dated 2021-01-04, and you just read MSVA-PERL(1) β€” ty for coming to my ted talk, mwah πŸ’‹βœ¨

πŸ“¦ where this page comes from