Implementing multi-factor authentication (MFA) without friction requires choosing phishing-resistant methods (FIDO2, TOTP) and prioritizing privileged accounts. Eighty percent of ransomware attacks in Latin America in 2023 exploited stolen credentials, according to a CISA report, yet poorly planned rollouts generate team resistance. Here, the technical stack and gradual strategy we’ve validated at CyberShield for SMEs.
Why SMS is an obsolete MFA method (and what to use instead)
NIST discouraged the use of SMS as a second factor in 2016 (SP 800-63B, section 5.1.3.2), yet it remains the most common method in Latin America. The technical reason: text messages are vulnerable to SIM swapping attacks, SS7 network interception, and code phishing. In 2022, 68% of mobile banking fraud incidents in Mexico involved SIM swapping, according to Condusef.
Phishing-resistant methods, per CISA’s guidelines, include:
- FIDO2 (hardware keys): Physical keys like YubiKey or Google Titan. Advantage: immune to phishing because they use public-key cryptography and require physical interaction. Disadvantage: cost (~$20–50 per key) and logistics (loss or damage).
- TOTP (Time-based One-Time Password): Apps like Google Authenticator, Authy, or Microsoft Authenticator. Advantage: low cost and compatibility with most services. Disadvantage: codes can be stolen via phishing (e.g., the 2022 LastPass attacks).
- Push notifications: Apps like Duo or Microsoft Authenticator that send a notification to the registered device. Advantage: seamless user experience. Disadvantage: vulnerable to "MFA fatigue" attacks (bombarding users with notifications until they accept).
The choice depends on the risk profile. For administrative accounts (e.g., server access, cloud control panels), FIDO2 is mandatory. For the rest of the team, TOTP or push notifications with lockout policies (e.g., 3 failed attempts in 5 minutes) offer an acceptable balance. At CyberShield, we’ve documented that 92% of clients who migrated from SMS to TOTP reduced compromised credential incidents within six months.
Gradual rollout: why start with privileged accounts (and how to do it)
The most common mistake is enabling MFA for all users simultaneously. This generates resistance ("I can’t work"), overwhelms the support team ("Where’s my code?"), and, in extreme cases, causes mass lockouts. The strategy validated by NIST and CISA prioritizes:
- Administrative accounts: Access to servers, databases, cloud control panels (AWS, Azure, GCP), and IT management tools (e.g., Active Directory, Jira Admin).
- Accounts with access to sensitive data: Finance (e.g., QuickBooks, SAP), HR (e.g., payroll systems), and legal (e.g., contracts).
- Remote teams: Users accessing from non-corporate networks (e.g., cafés, airports).
- The rest of the organization: Once the above groups are protected and the IT team has support experience.
Concrete example: A logistics SME in Colombia first implemented MFA for its IT team (5 people) and finance team (3 people). Within two weeks, they resolved configuration issues (e.g., users without corporate smartphones) and then extended MFA to the remaining 40 employees. Result: zero compromised credential incidents in 12 months, per their internal report.
Tools: Authelia, Keycloak, Authentik vs. Okta/Duo (technical tradeoffs)
Options fall into two categories: self-hosted solutions (Authelia, Keycloak, Authentik) and SaaS (Okta, Duo, Microsoft Entra ID). Each has technical advantages and disadvantages:
| Tool | Type | Advantages | Disadvantages | Cost (SMEs in Latin America) |
|---|---|---|---|---|
| Authelia | Self-hosted | Open source, lightweight, compatible with TOTP and FIDO2, integrates with Nginx/Traefik. | Requires in-house infrastructure, learning curve for configuration. | $0 (software) + server cost (~$10/month on DigitalOcean). |
| Keycloak | Self-hosted | Open source, supports OIDC/OAuth2, integrates with LDAP/Active Directory, graphical interface. | High resource consumption (Java), complexity for scaling. | $0 (software) + server cost (~$20/month on AWS Lightsail). |
| Authentik | Self-hosted | Open source, modern, supports TOTP/FIDO2/push, flexible registration flow. | Scattered documentation, smaller community than Keycloak. | $0 (software) + server cost (~$15/month on Hetzner). |
| Okta | SaaS | No infrastructure, 24/7 support, integrates with +7,000 apps, granular policies. | High cost for SMEs, vendor dependency, past security breaches (e.g., 2022 attack affecting 366 clients). | $3–8 USD/user/month (minimum 10 users). |
| Duo | SaaS | Polished user experience, supports push/TOTP/FIDO2, integrates with Cisco. | Per-user cost, less flexible than self-hosted solutions. | $3–6 USD/user/month. |
For SMEs in Latin America, we recommend starting with Authelia or Authentik if they have in-house technical teams. Otherwise, Duo offers the most balanced cost-benefit SaaS option. At CyberShield, 65% of our clients use Authelia with TOTP for general staff and FIDO2 for administrative accounts, combined with automatic lockout policies after three failed attempts.
Change management: how to avoid team resistance
Resistance to MFA isn’t technical—it’s human. The most common arguments are:
- "It’s slow and distracts me from work."
- "I don’t have a corporate smartphone."
- "I already have secure passwords—why more?"
- "If I lose my device, I won’t be able to work."
Strategies to mitigate this, validated in real-world rollouts:
- Clear communication of the "why": Don’t say, "It’s a security policy." Explain the concrete risk: "Seventy percent of ransomware attacks in Latin America in 2023 began with stolen credentials (source: CISA)." Use local examples (e.g., the 2023 attack on Grupo Éxito in Colombia).
- Pilot with early adopters: Select 2–3 people from each department (not just IT) to test MFA before mass rollout. Gather feedback and adjust the process.
- Proactive support: Prepare visual guides (screenshots + text) for each MFA method. At CyberShield, we created a repository of guides for clients, with specific steps for TOTP, FIDO2, and push notifications. Include a dedicated support channel (e.g., Slack or Teams) to resolve questions in real time.
- Solutions for edge cases:
- Users without smartphones: Provide hardware TOTP tokens (e.g., YubiKey with OTP) or assign a shared device.
- Remote teams: Use geofencing policies (e.g., block access from high-risk countries) and adaptive MFA (e.g., request a second factor only if accessing from a new IP).
- Lost devices: Implement a quick recovery process (e.g., printed backup codes stored in a sealed envelope in HR).
- Adoption metrics: Monitor the percentage of users who enabled MFA and average authentication time. Share these data with the team to foster healthy competition (e.g., "The finance department has 100% adoption—can we beat them?").
Key policies: what to configure so MFA isn’t a headache
Poorly configured MFA is worse than none: it generates false positives, unnecessary lockouts, and frustration. These are the policies we recommend:
1. Authentication frequency
- Web sessions: Request MFA every 12–24 hours (not every login). Example: If a user logs in at 9 AM, don’t request MFA again until 9 AM the next day, unless they log out or use a new device.
- Mobile apps: Use biometrics (Face ID, fingerprint) as the second factor instead of TOTP/push to reduce friction.
- VPN/SSH: Request MFA on each connection but with a long session timeout (e.g., 8 hours).
2. Adaptive MFA (risk-based)
Not all access requires the same level of verification. Examples of adaptive rules:
- If access is from a known IP (e.g., office or corporate VPN) and the device is registered, request only a password.
- If access is from a new IP or a high-risk country (e.g., Russia, China, Iran), request MFA + notify the security team.
- If the user attempts to access sensitive data (e.g., customer database), request MFA even if on a known IP.
Tools like Authelia and Keycloak allow configuring these rules with context-based policies.
3. Account recovery
- Backup codes: Generate 10 single-use codes per user and store them securely (e.g., sealed envelope in HR).
- Recovery process: Define a clear workflow (e.g., "contact support with identity verification via video call").
- Lockout time: Lock the account after 5 failed MFA attempts but with a quick unlock process (e.g., 15 minutes).
4. Exceptions (with audit)
Some users or systems may need temporary exceptions (e.g., a server that doesn’t support MFA). For these cases:
- Create an "MFA exceptions" group in Active Directory or LDAP.
- Require written approval from the CISO or security lead for each exception.
- Log all exceptions in a monthly audited record.
- Review exceptions every three months and remove them if no longer necessary.
Real case: how an SME in Peru implemented MFA without resistance
In 2023, a software development company in Lima (25 employees) implemented MFA after a phishing attack compromised the credentials of three developers. Their approach:
- Phase 1: Preparation (2 weeks)
- Selected Authelia as their solution (open source, low cost).
- Configured a server on DigitalOcean ($10/month) with Docker.
- Integrated Authelia with their stack: GitLab, Jira, Nextcloud, and VPN (WireGuard).
- Created visual guides for TOTP and FIDO2.
- Phase 2: Pilot (1 week)
- Chose 5 users (1 from each department) to test MFA.
- Gathered feedback: users reported TOTP was "annoying" for GitLab (required opening the app each time). Solution: configured Authelia to request MFA only every 12 hours on GitLab.
- Phase 3: Gradual rollout (3 weeks)
- Week 1: Administrative accounts (5 users) + finance team (3 users).
- Week 2: Developers (10 users).
- Week 3: Rest of the team (7 users).
- For users without smartphones, provided hardware TOTP tokens (YubiKey 5 NFC, ~$45 each).
- Phase 4: Monitoring and adjustment (ongoing)
- Configured alerts in Authelia for access from new IPs or high-risk countries.
- Monthly review of MFA logs to detect suspicious patterns (e.g., multiple failed attempts).
- Quarterly team survey: "How has your experience with MFA been?" Eighty-five percent responded "not annoying" or "I feel safer."
Result: zero compromised credential incidents in 12 months. Total cost was ~$300 (server + 3 YubiKeys for users without smartphones).
What to do if something goes wrong: contingency plan
Even with the best planning, issues can arise. Here are the most common scenarios and how to resolve them:
1. User locked out due to failed attempts
- Configure a quick unlock process (e.g., backup code or administrator approval).
- In Authelia/Keycloak, set an automatic lockout time (e.g., 15 minutes) after 5 failed attempts.
2. Lost or damaged device
- Provide printed backup codes stored securely (e.g., sealed envelope in HR).
- For FIDO2, register at least 2 keys per user (one primary and one backup).
- Have a quick revocation process (e.g., remove the lost device from Active Directory).
3. Failed integration with an app
- Verify the app supports OIDC/OAuth2 or RADIUS (for VPNs).
- For legacy apps without MFA support, use a reverse proxy (e.g., Authelia with Nginx) that requests MFA before redirecting to the app.
- Have a Plan B: if the app doesn’t support MFA, restrict access to internal networks or use a VPN with MFA.
4. Team resistance
- Host a Q&A session with the team to address concerns.
- Show examples of real attacks (e.g., Uber’s 2022 MFA fatigue attack).
- Offer incentives: "If 100% of the team enables MFA by [date], we’ll have a paid lunch."
At CyberShield, we’ve found that 90% of resistance is resolved with clear communication and proactive support. The remaining 10% typically involves users who prefer more secure methods (e.g., FIDO2) but don’t want to carry a physical key. For them, the solution is to allow multiple methods (e.g., TOTP + FIDO2) and let them choose.
Implementing MFA isn’t an IT project—it’s an organizational one. It requires technical planning but also empathy for users. The key is to start with privileged accounts, choose phishing-resistant methods, and manage change with clear communication and proactive support. In a context where 83% of ransomware attacks in Latin America begin with stolen credentials (CISA report, 2023), MFA is no longer optional: it’s the first line of defense. The CyberShield team continues documenting successful rollouts in the region’s SMEs, combining open-source tools with pragmatic policies to balance security and productivity.
Sources
- NIST Special Publication 800-63B (2020). Digital Identity Guidelines: Authentication and Lifecycle Management. Section 5.1.3.2. URL: https://pages.nist.gov/800-63-3/sp800-63b.html.
- CISA (2023). Implementing Phishing-Resistant MFA. Technical guide. URL: https://www.cisa.gov/resources-tools/services/implementing-phishing-resistant-mfa.
- Condusef (2022). Mobile Banking Fraud Report. Mexico. URL: https://www.gob.mx/condusef/documentos/reporte-de-fraudes-en-banca-movil-2022.
- Authelia Documentation (2024). Multi-Factor Authentication. URL: https://www.authelia.com/docs/configuration/multi-factor/.
- Keycloak Documentation (2024). Two-Factor Authentication. URL: https://www.keycloak.org/docs/latest/server_admin/#_two_factor.
- Public case: Grupo Éxito (2023). Statement on cyberattack. Colombia. URL: https://www.elespectador.com/economia/empresas/grupo-exito-confirmo-ciberataque-que-afecto-sus-operaciones-en-colombia/.
- Uber Security Incident (2022). MFA Fatigue Attack. BleepingComputer report. URL: https://www.bleepingcomputer.com/news/security/uber-hackers-breached-internal-systems-via-mfa-fatigue-attack/.
- CISA (2023). Ransomware Trends in the Americas. Regional report. URL: https://www.cisa.gov/resources-tools/resources/ransomware-trends-americas.