Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article

Arrows for secure information flow

Published: 01 April 2010 Publication History

Abstract

This paper presents an embedded security sublanguage for enforcing information-flow policies in the standard Haskell programming language. The sublanguage provides useful information-flow control mechanisms including dynamic security lattices, run-time code privileges and declassification all without modifying the base language. This design avoids the redundant work of producing new languages, lowers the threshold for adopting security-typed languages, and also provides great flexibility and modularity for using security-policy frameworks. The embedded security sublanguage is designed using a standard combinator interface called arrows. Computations constructed in the sublanguage have static and explicit control-flow components, making it possible to implement information-flow control using static-analysis techniques at run time, while providing strong security guarantees. This paper presents a formal proof that our embedded sublanguage provides noninterference, a concrete Haskell implementation and an example application demonstrating the proposed techniques.

References

[1]
M. Abadi, A. Banerjee, N. Heintze, J. Riecke, A core calculus of dependency, in: Proc. 26th ACM Symp. on Principles of Programming Languages, POPL, San Antonio, TX, 1999, pp. 147-160.
[2]
Chapman, R. and Hilton, A., Enforcing security and safety models with an information flow analysis tool. ACM SIGAda Ada Letters. vXXIV i4. 39-46.
[3]
Hughes, J., Generalising monads to arrows. Science of Computer Programming. v37. 67-111.
[4]
P. Li, S. Zdancewic, Encoding information flow in Haskell, in: Proceedings of the 19th IEEE Computer Security Foundations Workshop, CSFW¿06, 2006.
[5]
S. Liang, P. Hudak, M. Jones, Monad transformers and modular interpreters, in: Proceedings of the 22nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, 1995, pp. 333-343.
[6]
A.C. Myers, JFlow: Practical mostly-static information flow control, in: Proc. 26th ACM Symp. on Principles of Programming Languages, POPL, San Antonio, TX, 1999, pp. 228-241.
[7]
Myers, A.C. and Liskov, B., Protecting privacy using the decentralized label model. ACM Transactions on Software Engineering and Methodology. v9 i4. 410-442.
[8]
A.C. Myers, N. Nystrom, L. Zheng, S. Zdancewic, Jif: Java information flow, software release. Located at http://www.cs.cornell.edu/jif, 2001.
[9]
Paterson, R., A new notation for arrows. In: International Conference on Functional Programming, ACM Press. pp. 229-240.
[10]
Paterson, R., Arrows and computation. In: Gibbons, J., de Moor, O. (Eds.), The Fun of Programming, Palgrave. pp. 201-222.
[11]
S. Peyton Jones, L. Augustsson, D. Barton, Haskell 98 language and libraries (the revised report), 2002. http://www.haskell.org/report.
[12]
F. Pottier, V. Simonet, Information flow inference for ML, in: Proc. 29th ACM Symp. on Principles of Programming Languages, POPL, Portland, OR, 2002.
[13]
Sabelfeld, A. and Myers, A.C., Language-based information-flow security. IEEE Journal on Selected Areas in Communications. v21 i1. 5-19.
[14]
A. Sabelfeld, D. Sands, Dimensions and principles of declassification, in: Proceedings of the 18th IEEE Computer Security Foundations Workshop, CSFW-05, 2005, pp. 255-269.
[15]
V. Simonet, Flow Caml in a nutshell. in: Hutton, G. (Ed.), Proceedings of the first APPSEM-II Workshop, Nottingham, United Kingdom, 2003, pp. 152-165.
[16]
S. Tse, S. Zdancewic, Run-time principals in information-flow type systems, in: Proc. IEEE Symposium on Security and Privacy, 2004.
[17]
S. Tse, S. Zdancewic, Translating dependency into parametricity, in: ACM International Conference on Functional Programming, 2004.
[18]
P. Wadler, Monads for functional programming, in: Proceedings of the Marktoberdorf Summer School on Program Design Calculi, 1992.
[19]
L. Zheng, A.C. Myers, Dynamic security labels and noninterference, in: Proceedings of the Second Workshop on Formal Aspects in Security and Trust, FAST2004, 2004.

Cited By

View all
  • (2021)A Programming Language for Data Privacy with Accuracy EstimationsACM Transactions on Programming Languages and Systems10.1145/345209643:2(1-42)Online publication date: 8-Jun-2021
  • (2019)LWeb: information flow security for multi-tier web applicationsProceedings of the ACM on Programming Languages10.1145/32903883:POPL(1-30)Online publication date: 2-Jan-2019
  • (2018)Faceted Secure Multi ExecutionProceedings of the 2018 ACM SIGSAC Conference on Computer and Communications Security10.1145/3243734.3243806(1617-1634)Online publication date: 15-Oct-2018
  • Show More Cited By
  1. Arrows for secure information flow

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image Theoretical Computer Science
    Theoretical Computer Science  Volume 411, Issue 19
    April, 2010
    96 pages

    Publisher

    Elsevier Science Publishers Ltd.

    United Kingdom

    Publication History

    Published: 01 April 2010

    Author Tags

    1. Arrows
    2. Combinators
    3. Haskell
    4. Information flow
    5. Security
    6. Type systems

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)0
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 16 Jan 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2021)A Programming Language for Data Privacy with Accuracy EstimationsACM Transactions on Programming Languages and Systems10.1145/345209643:2(1-42)Online publication date: 8-Jun-2021
    • (2019)LWeb: information flow security for multi-tier web applicationsProceedings of the ACM on Programming Languages10.1145/32903883:POPL(1-30)Online publication date: 2-Jan-2019
    • (2018)Faceted Secure Multi ExecutionProceedings of the 2018 ACM SIGSAC Conference on Computer and Communications Security10.1145/3243734.3243806(1617-1634)Online publication date: 15-Oct-2018
    • (2017)Paragon – Practical programming with information flow controlJournal of Computer Security10.3233/JCS-1579125:4-5(323-365)Online publication date: 1-Jan-2017
    • (2016)On Formalizing Information-Flow Control LibrariesProceedings of the 2016 ACM Workshop on Programming Languages and Analysis for Security10.1145/2993600.2993608(15-28)Online publication date: 24-Oct-2016
    • (2015)IFC InsideProceedings of the 4th International Conference on Principles of Security and Trust - Volume 903610.1007/978-3-662-46666-7_2(11-31)Online publication date: 11-Apr-2015
    • (2015)A High-Level Model for an Assembly Language Attacker by Means of ReflectionProceedings of the First International Symposium on Dependable Software Engineering: Theories, Tools, and Applications - Volume 940910.1007/978-3-319-25942-0_11(168-182)Online publication date: 4-Nov-2015
    • (2013)Encoding secure information flow with restricted delegation and revocation in HaskellProceedings of the 1st annual workshop on Functional programming concepts in domain-specific languages10.1145/2505351.2505354(11-18)Online publication date: 22-Sep-2013
    • (2013)Dependent Type Theory for Verification of Information Flow and Access Control PoliciesACM Transactions on Programming Languages and Systems10.1145/2491522.249152335:2(1-41)Online publication date: 1-Jul-2013
    • (2013)A Library for Removing Cache-Based Attacks in Concurrent Information Flow Systems8th International Symposium on Trustworthy Global Computing - Volume 835810.1007/978-3-319-05119-2_12(199-216)Online publication date: 30-Aug-2013
    • Show More Cited By

    View Options

    View options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media