2

We have a requirement to produce a centralised use management and authentication system where users can be assigned roles, have passwords set/revoked etc.

The system will have to be on windows talking to other windows machines. However it would be useful if it could be extended to embedded industrial controllers running vxworks.

While I am vaguely aware of Radius, Kerberos, LDAP and active directory I am struggling to understand how these different technologies fit together.

Knowing that Vxworks supports Radius and there is support some for kerberos what would be the best solution support this type of functionality.

Also can anyone recommend a explanation of how the various technologies fit together to support user management.

user2881914
  • 407
  • 1
  • 4
  • 9

2 Answers2

2

Kerberos is an authentication and key-distribution protocol. It allows peers such as clients and servers (called “security principals”) to prove their identities to one another, as well as to secure subsequent communication between them. It requires authentication servers called “Key Distribution Centers,” or KDCs, to be available over the network in order for authentication to take place, though not every member always needs access to a KDC for every operation (e.g. a server does not need to contact a KDC, but the client does), and credentials are normally cached so that fewer network round trips are required. The caching mechanism provides single-signon in a way which is more secure than caching your password, since the cached credentials expire after some time and cannot be used to change your password. It also has a built-in notion of federation between Kerberos security domains, called “realms.” One of the big practical benefits of Kerberos is that it is the most pervasively implemented and available system of its kind: it is usable in a variety of protocols via abstraction schemes like SASL and GSSAPI, and these are widely implemented on many platforms, including Unix and Windows. Popular clients and servers for diverse protocols and applications including IMAP, POP, SMTP, SSH, LDAP, Subversion, NFS, HTTP, etc. support Kerberos and can be secured (to varying degrees) with a single infrastructure.

RADIUS provides for authentication, authorization, and accounting (“AAA”) in a single protocol. It is mostly used by network devices such as routers, switches, VPN gateways, WiFi access points, etc. to provide authentication for administrative access as well as for users, and then also to provide authorization (what users are allowed to do) and accounting (logging of actions). Authentication happens via a variety of independent mechanisms tunneled over RADIUS, such as EAP, PEAP, and MS-CHAP.

LDAP is a directory-access protocol: an LDAP server stores information about nodes named via X.500 “distinguished names,” the same as you see in X.509 public-key certificates, e.g. “CN=Richard E. Silverman, ST=NY, O=My Company”. Nodes have attributes, and LDAP clients query the server for the attributes of given nodes in a variety of ways, including searches of whole subtrees of the node namespace, pattern matching, and filters indicating which attributes should be returned.

There is often some confusion about LDAP being an “authentication protocol,” which is not its primary purpose. This is because many systems which need to verify a username/password pair offer “LDAP authentication” as a way of doing it. What this means is that the system will contact an LDAP server, authenticate to it with the supplied username and password, and then just disconnect without issuing an LDAP directory query. Thus, it uses the security of LDAP as a password-verification service. It is the same as if it used SSH to log into a given host, and then just immediately logged out, using the success or failure of the login to validate the user’s password.

“Active Directory” is a Microsoft marketing, product, and technical term. It does not refer to a single protocol like the terms above; rather, it names an overarching system comprising several protocols (including Kerberos, LDAP, and DNS), implemented by the “domain controllers,” which provides comprehensive security, naming, and management services to a collection of Windows hosts.

2

RADIUS, Kerberos and LDAP can all theoretically provide centralized user authentication and (limited) authorization (Active Directory is an implementation of LDAP).

To put it simply:

  • RADIUS was designed for centralized dial-in systems and does not contain many hooks for authorization management (e.g. roles). Today it is used a lot for strong authentication solutions like hardware tokens.
  • Kerberos was designed with secure Single-Sign-On in mind. It provides a centralized server that can grant authentication tickets to users and services. It is an open standard, implemented (a.o.) in Windows, integrated in Active Directory.
  • LDAP is an object-oriented, hierarchical user database (protocol actually) with a built-in authentication mechanism. Its default schema contains users and groups, allowing authorization to be set up.

In short: use LDAP for centralized user and group management and authentication (you can use Active Directory for this). Next, use Kerberos for SSO. There is a lot of documentation on both subjects available.

mvreijn
  • 2,807
  • 28
  • 40