The admin password protection and the secret URL parameter are part of the Quick Setup Wizard in Admin Tools. They are the very first two options you see on that page. Yes, I am trying to herd you towards improved security 😉
Two Factor Authentication / Two Step Verification is something that has prominently featured in all my security presentations from early 2012 onwards. Back then Two Factor Authentication was something implemented in Admin Tools, that code was then contributed to Joomla. Unfortunately soon after (early 2013) there was a stupid decision in the Joomla project not to allow contributions of any feature which required third party service or hardware, effectively banning contributions of security features (it's been lifted since circa 2017, thank $deity). That's why I'd been developing my U2F Two Factor Authentication plugins between 2013 and 2016, replaced with Akeeba LoginGuard since 2016. Joomla 4 includes another contribution of mine, integration with WebAuthn which brings passwordless, unphishable authentication to Joomla — Joomla is the first and only PHP CMS to offer this feature out of the box!
Now, a quick peek into the future.
In the next 2–3 years with ever improving WebAuthn support in browsers and Operating Systems expect to get rid of passwords once and for all. I'm already pushing Joomla towards this direction.
My vision for 2025 / Joomla 5 is that you will log into your site by entering a username and clicking a button. At this point you will either use a secure and/or biometric control feature of your Operating System (Windows PIN, FaceID / TouchID on Apple devices, fingerprint scanner on Windows and Android, face scan on Windows) or a secure hardware key to log in. Your site will not be accepting a password to log in once you set up WebAuthn for authentication. This makes password stuffing and brute forcing attacks completely useless.
Better yet, it gets your site logins as close to unhackable as you can realistically get! Due to the awesome way WebAuthn works it won't even be storing a hash of your password, it will only be storing a public key. Password hashes can be cracked, with some effort. A typical fully random 12 character password takes about a million GPU compute-years to crack from a hash, still in the realm of feasibility but unlikely. A typical user-selected password takes about ten GPU compute-hours, meaning that a data leak (such as a read-only SQL injection attack or a misplaced backup) can indeed be used to realistically hack your site by a non-sophisticated adversary — even a noob can run hashcat on an Amazon GPU-enabled EC2 instance.
WebAuthn instead relies on public key cryptography with the private key remaining safely inside your device's secure hardware (TPM, Secure Enclave, ...) or your FIDO2 hardware authenticator (e.g. a Security Key by Yubico). The only thing your site stores is the public key. Deriving the private key from the public key requires millions to trillions of GPU compute-years which makes it outright impractical. That's why this 1970s encryption technology still protects all your secrets, from your device's storage (e.g. Windows' BitLocker, macOS' FileVault etc) to your web traffic (HTTPS) to your banking information and so on and so forth. The only way to realistically crack it is if there's a practical quantum computer and that's a big maybe as we're talking about thousands of qubits when every practical quantum computer is in the order of a few dozen qubits.
So, an attacker will no longer hope to guess or steal your password, they would no longer be able to crack stored passwords, their only way to hack you would be a complete compromise of your site or server. It becomes extraordinarily hard to subvert a site.
That's where we're headed. I hope you like that direction :)
Nicholas K. Dionysopoulos
Lead Developer and Director
🇬🇷Greek: native 🇬🇧English: excellent 🇫🇷French: basic • 🕐 My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!