Skip to main content

Towards a Methodology for Formally Analyzing Federated Identity Management Systems

  • Conference paper
  • First Online:
Leveraging Applications of Formal Methods, Verification and Validation. Practice (ISoLA 2022)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 13704))

Included in the following conference series:

Abstract

The aim of this paper is to develop an appropriate methodology for formally analyzing federated identity management (FIM) systems. For this purpose, two different formal frameworks are considered; the first uses TLA+, a specification language for modeling complex industrial systems, whereas the second uses the Maude language, a more research-oriented approach. Using these frameworks, we first model an API Connector, developed in the context of an EU eIDAS project to facilitate the integration of Service Providers with the eIDAS Network. On the basis of the produced specifications we verify the aforementioned API Connector by model-checking an important security property. Finally, the two approaches are compared in terms of efficiency and accessibility based on a set of carefully selected criteria.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 54.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 69.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Similar content being viewed by others

Notes

  1. 1.

    OBJ3 is a version of OBJ based on order-sorted rewriting.

  2. 2.

    Linear temporal logic (LTL) was first proposed by Pnueli [20] as a tool for the specification, formal analysis, and verification of reactive and concurrent programs and systems, and is currently the most popular and widely used temporal logic in computer science. LTL is especially useful for expressing safety, liveness, fairness, and precedence properties of infinite computations in reactive systems [21].

  3. 3.

    https://www.networkworld.com/article/2285444/understanding-federated-identity.html.

  4. 4.

    https://ec.europa.eu/digital-building-blocks/wikis/display/DIGITAL/eID.

  5. 5.

    For more details about the LEPS ISS 2.0 API Connector Architecture we refer the reader to [28].

  6. 6.

    i.e. being able to model a distributed system.

  7. 7.

    Note that the distinction between equations and rewrite rules is only semantic. They are both executed as rewrite rules by rewrite engines, following the simple, uniform and parallelizable match-and-apply principle of term rewriting.

  8. 8.

    a module’s set of equations must be confluent and terminating. This is not automatically checked by Maude, but there are separate termination and confluency checkers.

  9. 9.

    In TLA+ every value is a set.

  10. 10.

    Typical safety properties like mutual exclusion and deadlock freedom are actually invariants.

References

  1. Chadwick, D.W., Inman, G.: Attribute Aggregation in Federated Identity Management. IEEE Computer Society (2009). https://ieeexplore.ieee.org/document/5070036/references#references

  2. Carretero, J., et al.: Federated Identity Architecture of the European eID System (2018). https://ieeexplore.ieee.org/abstract/document/8543142

  3. EduGain. https://edugain.org/

  4. eIDAS Netowrk. https://ec.europa.eu/cefdigital/wiki/pages/viewpage.action?pageId=82773030

  5. Fusion Middleware Administrator’s Guide for Oracle Identity Federation. https://docs.oracle.com/en/middleware/

  6. LEPS. D7.2 - Cost-benefit assessment of CEF eID uptake by private sector. Petros Kavassalis (2018). http://www.leps-project.eu/node/359

  7. Ghazizadeh, E., Manan, J.A., Zamani, M., Pashang, A.: A survey of security issues for cloud computing. J. Netw. Comput. Appl. 71, C, 11–29 (2016)

    Google Scholar 

  8. Groß, T.: Security analysis of the SAML single sign-on browser/artifact profile. In: Proceedings ACSAC 2003 (19th Annual Computer Security Applications Conference)

    Google Scholar 

  9. Rodriguez, U.F., Laurent-Maknavicius, M., Incera-Dieguez, J.: Federated identity architectures. In: Proceedings MCIS 2006 (Mediterranean Conference of Information Systems)

    Google Scholar 

  10. Pfitzmann, B., Waidner, M.: Federated identity-management protocols. In: Proceedings of the 11th International Conference on Security, pp. 153–174 (2003)

    Google Scholar 

  11. You, J.H., Jun, M.S.: A mechanism to prevent RP phishing in OpenID system. In: Proceedings of 9th International Conference on Computer and Information Science (2010)

    Google Scholar 

  12. Sun, S.T.: Simple but not secure: an empirical security analysis of OAuth 2.0-based single sign-on systems. In: Proceedings of ACM Conference on Computer and Communications (2012)

    Google Scholar 

  13. IBM Tivoli Federated Identity Manager Data Sheet. [8] J. Carretero. Federated Identity Architecture of the European eID System. IEEE Access (2018)

    Google Scholar 

  14. Groß, T., Pfitzmann, B., Sadeghi, A.: Proving a WS-federation passive requestor profile with a browser model. In: Proceedings of SWS 2004 (Workshop on Secure Web Service), pp. 77–86

    Google Scholar 

  15. Formal Methods Europe (FME) industry oriented website. https://fme-industry.github.io/

  16. Wuang, J., Hongxin, H.U., Bo, Z., Fei, Y., Huanguo, Z., Qianhong, W.U.: Formal analysis of information card federated identity-management protocol. Chinese J. Electron. 22(1), 83–88 (2013)

    Google Scholar 

  17. Avispa. http://www.avispa-project.org/

  18. Clavel, M., et al.: All About Maude - a High-performance Logical Framework: How to Specify, Program and Verify Systems in Rewriting Logic

    Google Scholar 

  19. Olveczky, P.C.: Designing Reliable Distributed Systems. Springer, London (2017). https://doi.org/10.1007/978-1-4471-6687-0

    Book  MATH  Google Scholar 

  20. Pnueli, A.: The temporal logic of programs. In: Proceedings of the 18th Annual Symposium on Foundations of Computer Science (SFCS 1977), pp. 46–57. IEEE Computer Society, Washington, DC (1977)

    Google Scholar 

  21. Manna, Z., Pnueli, A.: The Temporal Logic of Reactive and Concurrent Systems. Springer, Heidelberg (1992). https://doi.org/10.1007/978-1-4612-0931-7

    Book  MATH  Google Scholar 

  22. Meseguer, J., et al.: Maude Manual Version 2.7.1 (2016)

    Google Scholar 

  23. Sun, M., Meseguer, J., Sha, L.: A formal pattern architecture for safe medical systems. In: Ölveczky, P.C. (ed.) WRLA 2010. LNCS, vol. 6381, pp. 157–173. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-16310-4_11

    Chapter  Google Scholar 

  24. Lamport, L.: Specifying Systems (2002)

    Google Scholar 

  25. Lamport, L.: The Operators of TLA+. SRC Technical Note (1997)

    Google Scholar 

  26. Lamport, L.: Specifying Concurrent Systems with TLA+ (2000)

    Google Scholar 

  27. Riesco, A., Verdejo, A.: Distributed applications implemented in Maude with parameterized skeletons. In: Bonsangue, M.M., Johnsen, E.B. (eds.) FMOODS 2007. LNCS, vol. 4468, pp. 91–106. Springer, Heidelberg (2007). https://doi.org/10.1007/978-3-540-72952-5_6

    Chapter  Google Scholar 

  28. LEPS. D4.2 - eIDAS Interconnection Supporting Service. Petros Kavassalis (2018). http://www.leps-project.eu/node/347

  29. \(\lambda \)-ForM Formal Methods Research Group. http://fsvg.math.ntua.gr/

  30. Lamport, L.: The TLA+ Home Page. https://lamport.azurewebsites.net/tla/tla.html

  31. Applications of Maude. http://maude.cs.illinois.edu/w/index.php/Applications

  32. How to Evaluate the Suitability of a Formal Method for Industrial Deployment? A Survey Technical Report, SCCH-TR-1603 - 2016

    Google Scholar 

  33. Riesco, A.: An integration of CafeOBJ into full Maude. In: Escobar, S. (ed.) WRLA 2014. LNCS, vol. 8663, pp. 230–246. Springer, Cham (2014). https://doi.org/10.1007/978-3-319-12904-4_13

    Chapter  Google Scholar 

  34. Hansen, D., Leuschell, M.: Translating B to TLA+ for validation with TLC. Sci. Comput. Program. 131, 40–55 (2016)

    Article  Google Scholar 

  35. Mason, I.A., Talcott, C.L.: IOP: the interoperability platform and IMaude: an interactive extension of Maude. Electron. Notes Theoret. Comput. Sci. 117, 315–333 (2005)

    Article  Google Scholar 

  36. Aoumer, N., Barkaoui, K., Saake, G.: Towards MAUDE-TLA based foundation for complex concurrent systems specification and certification. In: Proceedings of the 5th International Conference on Information Technology: New Generations, pp. 1305–1307 (2008)

    Google Scholar 

  37. Clavel, M., Meseguer, J.: Reflection and strategies in rewriting logic. Electron. Notes Theoret. Comput. Sci. 4, 126–148 (1996)

    Article  MathSciNet  Google Scholar 

  38. ProB animator for TLA+. https://www3.hhu.de/stups/prob/index.php/TLA

  39. Newcombe, C., Rath, T., Zhang, F., Munteanu, B., Brooker, M., Deardeuff, M.: How Amazon web services uses formal methods. Commun. ACM 58(4), 66–73 (2015)

    Article  Google Scholar 

  40. Olveczky, P.C., Meseguer, J.: Real-Time Maude: a tool for simulating and analyzing real-time and hybrid systems. Electron. Notes Theoret. Comput. Sci. 36, 361–382 (2000)

    Article  Google Scholar 

  41. Parallel Statistical Model Checking and Quantitative Analysis Tool. http://maude.cs.uiuc.edu/tools/pvesta/

  42. MultiVeStA: Distributed Statistical Model Checking for Discrete Event Simulators. https://sysma.imtlucca.it/tools/toolmultivesta/

  43. Zhang, H., Merz, S., Gu, M.: Specifying and verifying PLC systems with TLA+: a case study. Comput. Math. Appl. 60(3), 695–705 (2010)

    Article  Google Scholar 

  44. Barjaktarovic M.: The state-of-the-art in formal methods. Technical report/Wilkes University and WetStone Technologies (1998). http://www.cs.utexas.edu/users/csed/formal-methods/docs/StateFM.pdf. Accessed 20 May 2019

  45. Clarke, J.E.M., et al.: Formal methods: state of the art and future directions. ACM Comput. Surv. 28(4), 626–643 (1996)

    Article  Google Scholar 

  46. Leveraging eID in the Private Sector. LEPS EU-funded project website. http://www.leps-project.eu/

  47. Lamport, L.: The PlusCal Algorithm Language (2009)

    Google Scholar 

  48. Student and Citizen Identities Linked. SEAL EU-funded project website. https://project-seal.eu/about

  49. Increasing trust with eID for developing business. GRIDS EU-funded project website. https://www.grids-cef.eu/

  50. Satybaldy, A., Nowostawski, M., Ellingsen, J.: Self-sovereign identity systems. In: Friedewald, M., Önen, M., Lievens, E., Krenn, S., Fricker, S. (eds.) Privacy and Identity 2019. IAICT, vol. 576, pp. 447–461. Springer, Cham (2020). https://doi.org/10.1007/978-3-030-42504-3_28

    Chapter  Google Scholar 

  51. Naik, N., Jenkins, P.: Governing principles of self-sovereign identity applied to blockchain enabled privacy preserving identity management systems. In: 2020 IEEE International Symposium on Systems Engineering (ISSE), pp. 1–6 (2020)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Katerina Ksystra .

Editor information

Editors and Affiliations

A ANNEX

A ANNEX

1.1 A.1 Maude: Basic Syntax and Notation

In Maude, operators are functions taking zero or more arguments of some sort and returning a term of a specific sort [22]. Sorts are declared as \(sort\ \langle Sort \rangle \), or \(sorts\ \langle Sort{\text {-}}1 \rangle \ \dots \ \langle Sort{\text {-}}n \rangle \ \) Subsorts can also be defined as \(subsort\ \langle Sort{\text {-}}1 \rangle \ \dots \ \langle Sort{\text {-}}2 \rangle \). Variables are constrained to range over a particular sort and are declared as \(var\ \langle VarName \rangle \ :\ \langle Sort \rangle \). Operators are declared as \(op\ \langle OpName \rangle \ :\ \langle Sort{\text {-}}1 \rangle \ \dots \ \langle Sort{\text {-}}n \rangle \ \rightarrow \langle Sort \rangle \), while a constant is defined by an operator having no domain \(op\ \langle OpName \rangle \ :\ \rightarrow \langle Sort \rangle \). The ground terms of our system are defined by function symbols. Ground terms denote the data values, and are build up by the data constructors which are declared as \(op\ \langle OpName \rangle \ :\ \langle Sort{\text {-}}1 \rangle \ \dots \ \langle Sort{\text {-}}n \rangle \ \rightarrow \ \langle Sort \rangle \ [ctor]\). Equations define the declared functions and have the form \(eq\ \langle Term{\text {-}}1 \rangle \ =\ \langle Term{\text {-}}2 \rangle \). A term is either a constant, or a variable, or the application of an operator to a list of argument terms. Data types as natural numbers, and Boolean values are defined as many-sorted equational specifications which consist in: a set of sorts, a set of function symbols (operators), and a set of equations defining the functions. Rewrite rules are declared as \(rl\ [ \langle label \rangle ]\ :\ \langle Term{\text {-}}1 \rangle \ \Rightarrow \ \langle Term{\text {-}}2 \rangle \). If a rule is conditional it has the form \(crl\ [\langle label \rangle ]\ :\ \langle Term{\text {-}}1 \rangle \Rightarrow \langle Term{\text {-}}2 \rangle \ if\ \langle Cond{\text {-}}1 \rangle \wedge \dots \wedge \langle Cond{\text {-}}n \rangle \).

A Maude specification is organized as a collection of modules, each of which constitutes a rewrite theory comprising a term language, equations, and rewrite rulesFootnote 7. A module is declared as \([mod\ \dots \ endmod]\), except if it does not contain rewrite rules, in which case it is called functional, and is declared as \([fmod\ \dots \ endfm]\)Footnote 8. Thus functional modules are included as a special case in system modules. To build a new module on the basis of an old one we write \(protecting\ \langle MODULE{\text {-}}NAME \rangle \).

The overall system has the form of a module - usually named SYSTEM - build upon a number of other modules, whose rewrite rules are meant to define its concurrent evolution. States can be expressed as tuples of values \(\langle a_{1}, a_{2}, b_{1}, b_{2} \rangle \), or as collections of observable values \((o_{1}[p_{1}]: a_{1})\ (o_{1}[p_{2}]: a_{2})\ (o_{2}[p_{1}]: b_{1})\ (o_{2}[p_{2}]: b_{2})\), where observable values are pairs of (parameterized) names and values. The initial state is usually defined in a separate module called \(SYSTEM{\text {-}}INIT\) as an equation: \(init\ =\ \langle initial state \rangle \). When Maude executes, it rewrites terms according to the given specifications. Rules are applied at “random”, and if an equation might be applied to a term, it will always be applied before a rewrite rule. The command search performs a breadth-first search to check whether a given state pattern can be reached from the initial state and has the form \(search\ [n, m ]\ in\ \langle ModId \rangle \ :\ \langle Term{\text {-}}1 \rangle \Longrightarrow \langle Term{\text {-}}2 \rangle \). Where n and m state the number of desired solutions and the maximum depth of the search respectively, ModId is the module where the search is performed, and \(\langle Term{\text {-}}1 \rangle ,\ \langle Term{\text {-}}2 \rangle \) the terms we wish to match. Whenever there exists a match from the left-hand-side argument to the right-hand-side argument the predicate \(\Longrightarrow \) evaluates to true. After the creation of the system’s specification using the appropriate notation and syntax, we can employ Maude’s built-in search command to model-check the desired system properties.

1.2 A.2 TLA+: Basic Syntax and Notation

In TLA+ functions are closer in nature to hashes, or dictionaries, except that you can choose to programmatically determine the value from the key. More specifically, functions can be defined in two ways: either as \(Function == [s \in S \mid \rightarrow eq]\), or as \(Function[s \in S] == eq\), where eq can be any equation. An ordered n-tuple, declared as \(\langle e_{1},\dots , e_{n}\rangle \), is a function with domain \({1, \ldots , n}\) that maps i to \(e_{i}\). Records in TLA+ are functions (that is, hashes) specified as \([key \mid \rightarrow value]\), and we query them using either \([\text {``} key \text {''}]\), or .key. Note that instead of \(key \mid \rightarrow value\), we can also write key : set, in which case instead of a record we get the set of all records having, for each given key, a value in the set.

Variables are of two types: rigid variables and flexible variables. Rigid variables are the well-known variables of predicate logic, which are here called constants (like the bound variables introduced by the constant operators). Flexible variables are simply called variables.

Non-constant operators include action and temporal operators. An action is a Boolean formula that may contain primed and unprimed variables. In an action an unprimed instance of a variable denotes its value in the current state, and a primed instance denotes its value in the next state. For action reasoning x and \(x'\) can be considered to be completely unrelated variables. The action operators can be defined in terms of primed variables, i.e. \(p'\) equals p with every variable x replaced by its primed version \(x'\), \([A]_e\) equals \(A \vee (e'= e)\), \(<A>_e\) equals \(A \wedge (e'\ne e)\), and UNCHANGED equals \(e'= e\). Finally, some of the temporal operators are \(\square F\) (F is always true), \(\Diamond F\) (F is eventually true), and \(F \leadsto G\) (F leads to G).

A TLA+ specification is organized as a collection of modules, each of which comprises a sequence of statements, where a statement is a declaration, definition, assumption, or theorem. A declaration statement adds to the module the declarations of constant and variable symbols, and has the form \(CONSTANT\ Name1,\ Name2,\ Name3\) and \(VARIABLES\ Name1,\ Name2,\ Name3\). A declared symbol is a “free parameter” of the module. A definition always defines a symbol to equal an expression containing only declared symbols, bound variables that are different from any symbols typed by the user, and built-in operators of TLA+. Symbols can also be defined to equal operators that take arguments. A module can contain assumptions of the form ASSUME exp, where exp stands for an expression which can contain symbols declared or defined anywhere in the module. A module can also contain theorems of the form \(THEOREM\ P\), which assert that P can be proven using the module’s definitions and assumptions. Finally, one builds large hierarchical specifications by building a new module on the basis of old modules. One way of doing this is by using the EXTENDS statement at the beginning of the module i.e. \(EXTENDS\ ModuleName\), which amounts to adding the declarations and definitions from an existing module to the current one.

In TLA+ an execution - or behaviour - of a system is modelled as a sequence of states, where an event is represented by a pair of consecutive states (a step). The overall system is represented as the set of behaviours describing all of its possible executions. Such a set is described in TLA+ by an initial condition specifying the possible starting states, and a next-state relation, specifying the possible steps. In other words, each possible system behaviour must begin with a state satisfying the initial condition and its every step must satisfy the next-state relation. Note that the next-state relation which consists of a finite number of next-state actions, specifies what steps may happen; it does not specify what steps, if any, must happen. Thus, the necessary steps for the verification of a system using TLC (a model-checker and simulator of executable TLA+ specifications) are the following: first the system’s specification is written using the language’s specific notation and syntax. Then a model is created, for which we specify the initial condition, the next relation, and the valuesFootnote 9 of declared constants. Finally, after we have checked the type-correctness invariant (usually named TypeOK), we can proceed to check the invariance of further conditionsFootnote 10 (formulas which are required to be true in every reachable state), or the validity of desired properties (temporal formulas required to be true in every possible behaviour). Note that the execution time and space grow exponentially with the size of the model.

Rights and permissions

Reprints and permissions

Copyright information

© 2022 The Author(s), under exclusive license to Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Ksystra, K., Dimarogkona, M., Triantafyllou, N., Stefaneas, P., Kavassalis, P. (2022). Towards a Methodology for Formally Analyzing Federated Identity Management Systems. In: Margaria, T., Steffen, B. (eds) Leveraging Applications of Formal Methods, Verification and Validation. Practice. ISoLA 2022. Lecture Notes in Computer Science, vol 13704. Springer, Cham. https://doi.org/10.1007/978-3-031-19762-8_28

Download citation

  • DOI: https://doi.org/10.1007/978-3-031-19762-8_28

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-031-19761-1

  • Online ISBN: 978-3-031-19762-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics