mytoken - OpenID Connect Tokens for Long-term Authorization
Zachmann, Gabriel 1 1 Scientific Computing Center (SCC), Karlsruher Institut für Technologie (KIT)
Abstract:
OpenID Connect ist eine wichtige Schlüsselkomponente in vielen modernen Authentifi-
zierungs- und Autorisierungsinfrastrukturen. Es wird hauptsächlich in Webbrowsern ver-
wendet, aber auch die Verwendung auf der Kommandozeile und in APIs findet immer mehr
Verbreitung. Daraus ergibt sich der Bedarf für gute Kommandozeilen-Werkzeuge. In einer
früheren Arbeit haben wir ein Werkzeug für die Verwaltung von OpenID Connect Access
Tokens auf der Kommandozeile entwickelt. Dieses Werkzeug ist jedoch weniger geeignet,
wenn Access Tokens über längere Zeiträume auf mehreren Rechnern verwendet werden ... mehr
müssen. Diese Notwendigkeit ergibt sich insbesondere bei Rechenjobs, die typischerweise
nicht auf dem Computer des Benutzers laufen. In Szenarien, in denen Rechenjobs sich über
OpenID Connect Access Tokens authentifizieren müssen, um Daten zu laden und zu speichern
oder um auf andere Ressourcen zuzugreifen, führt die kurze Gültigkeitsdauer von OpenID
Connect Access Tokens zu Problemen. Es ist üblich, dass Rechenjobs wesentlich länger dauern
als ein einzelner Access Token gültig ist. Die aktuellen Mechanismen, die OpenID Connect
bietet, und bestehende Software-Werkzeuge lösen dieses Problem nicht zufriedenstellend.
In dieser Arbeit haben wir einen Token-Dienst - genannt Mytoken - entworfen und im-
plementiert, der dieses Problem löst, indem ein Mechanismus bereitgestellt wird, der es
ermöglicht gültige OpenID Connect Access Tokens über einen längeren Zeitraum abzurufen.
Mit so genannten Mytokens können Access Tokens auf jedem mit dem Internet verbundenen
Gerät einfach über den Mytoken-Server abgerufen werden. Mytokens könnten anstelle von
OpenID Connect Access Tokens verwendet werden, um Rechenjobs zu starten. Sie können
dann sowohl von Job-Submission-Systemen als auch von laufenden Rechenjobs verwendet
werden, um so viele Access Tokens abzurufen, wie es durch den Mytoken erlaubt ist. Um
ein gutes Gleichgewicht zwischen Sicherheit und Benutzbarkeit zu erreichen, haben wir so
genannte Capabilities und Restrictions implementiert. Diese können verwendet werden, um
Mytokens so einzuschränken, dass jeder genau die benötigten Rechte hat, und um gleichzeitig
die Auswirkungen eines Diebstahls zu begrenzen. Mit Restrictions kann die Verwendung
eines Mytokens auf eine oder mehrere Zeitspannen, auf bestimmte Standorte (Länder sowie
IP-Adressen oder Subnetze), und in der Anzahl der Nutzungen beschränkt werden. Außerdem
kann festgelegt werden, dass Access Tokens, die mit dem Mytoken abgerufen werden, nur
bestimmte Scopes und Audiences haben können. Durch die Verwendung mehrerer so ge-
nannter Restriction Clauses kann ein einziger Mytoken auch in komplexen Anwendungsfällen
verwendet werden, in denen zu unterschiedlichen Zeiten unterschiedliche Berechtigungen
benötigt werden. Ein typisches Beispiel hierfür ist das Starten von Rechenjobs. Hierbei werden
zu Beginn Berechtigungen zum Starten eines Jobs und zum Lesen von Eingabedaten benötigt;
am Ende müssen die Ausgabedaten geschrieben werden. Mit den Restrictions kann hierfür ein
einziger Mytoken verwendet werden, wobei in jedem Schritt nur die benötigten Privilegien
nutzbar sind, wodurch die Angriffsfläche stark reduziert wird. Somit stellen Mytokens eine
vielversprechende Lösung für lang laufende Jobs dar.
Abstract (englisch):
OpenID Connect is an important key component of many modern Authentication and
Authorization Infrastructures. It is mostly used within web browsers, but command line
and API usages see rising adoption. From this emerges the need for good command line
tooling. In previous work we developed a local tool for managing OpenID Connect access
tokens on the command line. However, this tool is less suitable if access tokens need to
be used over extended periods of time from multiple hosts. This need arises especially
with compute jobs which typically do not run on the user’s computer. ... mehrIn scenarios in
which compute jobs need to authenticate via OpenID Connect access tokens to load and
store data or to access other resources, the short lifetime of OpenID Connect access tokens
may pose a problem. It is very common that compute jobs run longer than the lifetime
of a single access token. Current mechanisms provided by OpenID Connect and existing
software tools do not address this problem sufficiently.
In this thesis we designed and implemented a token service called mytoken that ad-
dresses this problem by providing a mechanism to provide fresh OpenID Connect access
tokens over an extended period of time. The mytoken service introduces a new token type
called mytoken. These mytokens can be used for easily obtaining access tokens on any
internet-connected device via the mytoken server. Mytokens can be transferred easily to
other devices. Mytokens may be used instead of OpenID Connect access tokens to start
compute jobs. They then can be used by job submission systems as well as from inside
running compute jobs to obtain as many access tokens as specified in the mytoken. For a
fine grained balance between security and usefulness, we have implemented capabilities
and restrictions. These can be used to restrict each mytoken so that it has exactly the
power it needs, and to limit the impact if stolen. Restrictions allow limiting the usage of
a mytoken to a set of time spans, to certain locations (countries as well as ip addresses
or subnets), in the number of usages, and the scopes and audiences of access tokens that
can be obtained. By using multiple restriction clauses, a single mytoken can be used even
in complex use cases that demand different privileges over time. A typical example for
this is job submission, where initially privileges for starting a job and reading input data
are required. Throughout the run-time of a job, usually no privileges are required. At the
end of the job output data needs to be written. Using the introduced restrictions, a single
mytoken can be used for all of these steps, while in each step only the required privileges
are active, which reduces the attack surface greatly, and thereby poses a promising solution
for long running jobs.