Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mt-mods/otp

(t)otp mod for minetest
https://github.com/mt-mods/otp

Last synced: 2 months ago
JSON representation

(t)otp mod for minetest

Awesome Lists containing this project

README

        

# (T)OTP mod for minetest

* State: **Stable**

# Overview

Lets security-aware players use the `/otp_enable` command to protect their account with a second factor.

Players that have the OTP enabled have to enter a verification code upon joining the game.

# OTP Authenticator apps

* https://freeotp.github.io/
* https://github.com/helloworld1/FreeOTPPlus

# Screenshots

OTP verification form
![](./screenshot1.png)

OTP Setup form
![](./screenshot2.png)

# Temporary privilege revocation

All of the privileges get revoked when logging in with the otp enabled (until the proper code is entered).
Some exceptions:
* `fly` (otherwise the player would literally fall from the sky)
* `noclip`

To disable revokation on custom privs the field `otp_keep` can be set to true on the definition:
```lua
minetest.register_privilege("my_super_important_priv", {
description = "something something",
otp_keep = true
})
```

# Settings

* `otp.authenticator_image` The image to use in the QR code for the otp app (defaults to "https://raw.githubusercontent.com/minetest/minetest/master/misc/minetest-xorg-icon-128.png")
* `otp.issuer` The issuer name, defaults to server name, address or just "Minetest"

# Links / References

* https://en.wikipedia.org/wiki/Time-based_one-time_password
* https://en.wikipedia.org/wiki/HMAC-based_one-time_password
* https://en.wikipedia.org/wiki/HMAC
* https://github.com/google/google-authenticator/wiki/Key-Uri-Format

# Chatcommands

* `/otp_enable` Starts the OTP onboarding process
* `/otp_disable` Disables the OTP Login

# Privileges

* `otp_enabled` Players with this privilege have to verify the OTP Code upon login (automatically granted on successful `/otp_enable`)

# License

* Code: `MIT`
* Textures: `CC-BY-SA 3.0`
* "basexx.lua" `MIT` https://github.com/aiq/basexx/blob/master/lib/basexx.lua
* "qrencode.lua" `BSD` https://github.com/speedata/luaqrcode/blob/master/qrencode.lua