Identity management is a hot topic lately—stories about cyber breaches, industrial-scale data mining and the EU’s GDPR all connect back to a company’s identity system eventually. Too often those stories gloss over that fact that many of these data protection failures were avoidable if the companies involved implemented more effective customer identity and access management (CIAM) solutions. Two popular solutions, Cognito and Passport, are offered by Amazon and Inversoft, respectively, although they approach the problem from different perspectives.
Active Directory and Passport CIAM often come up together in conversations about identity solutions for modern web-enabled applications. While they fall under the umbrella of “identity management solutions,” the truth is that Active Directory and Passport have a substantially different set of features. Active Directory was originally developed for centralized domain management within Windows networks with hundreds of users. Over time it layered additional identity-focused services on the core hierarchical structure. In contrast, Passport was designed from day one as a user management solution for applications with thousands to millions of customers. This shift in focus is a significant difference between an Identity & Access Management (IAM) solution and a Customer Identity & Access Management (CIAM) solution.
As we talk to and win new clients, we learn about the other identity management platforms that are available today. One of the more interesting discoveries is that Firebase and Passport are coming up as comparable products. While they are both called identity management solutions, the truth is that Firebase and Passport are very different products designed with a substantially different set of features. As true CIAM solutions, they really don’t compare.
If you follow us on Twitter (if you don’t, you can fix that now) you’ll notice that we post about data security breaches hitting the internet community. We don’t do it to be malicious or gloat about their failures, but to increase awareness beyond the core community of security professionals. Keeping computer systems secure is a complex challenge, and few people are well-versed in its many facets and subtleties. We deal with security every day with our customer identity and access management platform Passport, so we encourage as much discussion as possible to hear current trends and risks. We hear all the time “We just need to lock it down” or even worse “See? You can’t stop cyber breaches.” Fortunately, neither of these are true.
Believe it or not there are still companies emailing users with plaintext passwords. Worse yet, some systems are storing plaintext passwords in the database. Storing or emailing plaintext passwords can increase security vulnerabilities by as much as 10x.
CU Boulder, a premier university, still emails their passwords in plaintext. Regardless of how complex a password is, if it is stored or emailed in plaintext, that password is easily accessible to anyone and security is compromised at a glance.
Bottom line. Do not store or email your passwords in plaintext. It’s a horrible idea. Here’s why:
Storing plaintext passwords
- If the database is compromised, the hacker now has access to everyone’s password. That means people who use the same password across sites are in jeopardy of having their bank accounts drained or their identities stolen.
- If there are vulnerabilities that would allow SQL injection, hackers don’t even need access to the database server to get passwords.
- Database backups are also vulnerable. A hacker can now attack a backup server and get access to passwords.
Emailing plaintext passwords
- Emails can be forwarded accidentally. This could mean a password might be leaked by a user that mistakenly forwards the email to their team or the whole company.
- Some email servers aren’t secure. Emails are stored plaintext on most email servers, so if a hacker gets access to the server, they can just run a script against the email database and find plaintext passwords.
- Emails aren’t always encrypted on the wire (when they are sent from your computer to the SMTP server or between SMTP relays). A simple packet sniffer can intercept emails and be trained to look for plaintext passwords. If you are sending emails from a hosting provider that supports multiple companies (like AWS or Rackspace), a hacker can put a packet sniffer on the same network and read your emails.
- Emails aren’t a direct communication. Emails bounce between servers on their way from your outbox to someone’s inbox. Emails are rarely encrypted and therefore might be intercepted as they bounce around and are easily readable by a machine.
- Strong encryptions. Passwords should always be hashed using a strong, one-way hash algorithm. In addition to using a hashing algorithm, you should also be salting the password and performing multiple hash passes. This will prevent brute force or lookup attacks on passwords. In the event that the user database is compromised, it will still be nearly impossible to reverse engineer a user password from the stored hash.
- Verification ID. Never email a plaintext password. If a user forgets or needs to change their password, send a link (with a random verification ID) that allows the user to securely change their password within a set time period. The company should never know the user’s password.
- Multi-factor authentication. If the above fail and the password has been compromised, using MFA or 2FA keeps the user account secure. Two-factor authentication enhances user login security by requiring something the user knows (password) with something the user possesses (their cellphone for example).
- Password invitations. If you are manually creating user accounts and need users to set their own passwords, avoid sending a random or temporary password via email. Instead send the user an email or push notification allowing them to set the password themselves.
Inversoft is a security company, focusing on identity and user management. Our product, Passport ships with code based 2FA, brute force login detection, password hashing, forgot password, email templates and more. See our free Guide to User Data Security for more suggestions on Password Security.