skip to main content
10.1145/2784731.2784756acmconferencesArticle/Chapter ViewAbstractPublication PagesicfpConference Proceedingsconference-collections
research-article

Functional pearl: two can keep a secret, if one of them uses Haskell

Published: 29 August 2015 Publication History

Abstract

For several decades, researchers from different communities have independently focused on protecting confidentiality of data. Two distinct technologies have emerged for such purposes: Mandatory Access Control (MAC) and Information-Flow Control (IFC)—the former belonging to operating systems (OS) research, while the latter to the programming languages community. These approaches restrict how data gets propagated within a system in order to avoid information leaks. In this scenario, Haskell plays a unique privileged role: it is able to protect confidentiality via libraries. This pearl presents a monadic API which statically protects confidentiality even in the presence of advanced features like exceptions, concurrency, and mutable data structures. Additionally, we present a mechanism to safely extend the library with new primitives, where library designers only need to indicate the read and write effects of new operations.

References

[1]
Information flow enforcement in monadic libraries. Proc. of the ACM SIGPLAN workshop on types in language design and implementation (TLDI ’11). ACM. Eisenberg, R. A., Vytiniotis, D., Peyton Jones, S., & Weirich, S. (2014).
[2]
Closed type families with overlapping equations. Proc. of the ACM SIGPLAN-SIGACT symposium on principles of programming languages (POPL ’14). ACM. Goguen, J.A., & Meseguer, J. (1982). Security policies and security models. Proc of IEEE Symposium on security and privacy. IEEE Computer Society. Hedin, D., Birgisson, A., Bello, L., & Sabelfeld, A. (2014).
[3]
JSFlow: Tracking information flow in JavaScript and its APIs. Proc. of the ACM symposium on applied computing (SAC ’14). ACM. Hritcu, C., Greenberg, M., Karel, B., Peirce, B. C., & Morrisett, G. (2013).
[4]
All your IFCexception are belong to us. Proc. of the IEEE symposium on security and privacy. IEEE Computer Society. Lampson, B. W. (1973). A note on the confinement problem. Communications of the ACM, 16(10). Li, P., & Zdancewic, S. (2006). Encoding information flow in Haskell. Proc. of the IEEE Workshop on computer security foundations (CSFW ’06). IEEE Computer Society. Myers, A. C., & Liskov, B. (1998). Complete, safe information flow with decentralized labels. Proc. of the IEEE symposium on security and privacy. IEEE Computer Society. Myers, A. C., Zheng, L., Zdancewic, S., Chong, S., & Nystrom, N. (2001).
[5]
Safe Haskell. Proc. of the ACM SIGPLAN Haskell symposium (HASKELL ’11). ACM. Tsai, T. C., Russo, A., & Hughes, J. 2007 (July). A library for secure multithreaded information flow in Haskell. Proc. IEEE computer security foundations symposium (CSF ’07).

Cited By

View all
  • (2024)Cocoon: Static Information Flow Control in RustProceedings of the ACM on Programming Languages10.1145/36498178:OOPSLA1(166-193)Online publication date: 29-Apr-2024
  • (2023)Curbing the Vulnerable Parser: Graded Modal Guardrails for Secure Input Handling2023 IEEE Secure Development Conference (SecDev)10.1109/SecDev56634.2023.00027(126-132)Online publication date: 18-Oct-2023
  • (2022)ANOSY: approximated knowledge synthesis with refinement types for declassificationProceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation10.1145/3519939.3523725(15-30)Online publication date: 9-Jun-2022
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ICFP 2015: Proceedings of the 20th ACM SIGPLAN International Conference on Functional Programming
August 2015
436 pages
ISBN:9781450336697
DOI:10.1145/2784731
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 50, Issue 9
    ICFP '15
    September 2015
    436 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/2858949
    • Editor:
    • Andy Gill
    Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 29 August 2015

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. information-flow control
  2. library
  3. mandatory access control
  4. security

Qualifiers

  • Research-article

Funding Sources

Conference

ICFP'15
Sponsor:

Acceptance Rates

Overall Acceptance Rate 333 of 1,064 submissions, 31%

Upcoming Conference

ICFP '25
ACM SIGPLAN International Conference on Functional Programming
October 12 - 18, 2025
Singapore , Singapore

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)21
  • Downloads (Last 6 weeks)3
Reflects downloads up to 13 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Cocoon: Static Information Flow Control in RustProceedings of the ACM on Programming Languages10.1145/36498178:OOPSLA1(166-193)Online publication date: 29-Apr-2024
  • (2023)Curbing the Vulnerable Parser: Graded Modal Guardrails for Secure Input Handling2023 IEEE Secure Development Conference (SecDev)10.1109/SecDev56634.2023.00027(126-132)Online publication date: 18-Oct-2023
  • (2022)ANOSY: approximated knowledge synthesis with refinement types for declassificationProceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation10.1145/3519939.3523725(15-30)Online publication date: 9-Jun-2022
  • (2021)Scooter & Sidecar: a domain-specific approach to writing secure database migrationsProceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation10.1145/3453483.3454072(710-724)Online publication date: 19-Jun-2021
  • (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
  • (2021)Mechanized logical relations for termination-insensitive noninterferenceProceedings of the ACM on Programming Languages10.1145/34342915:POPL(1-29)Online publication date: 4-Jan-2021
  • (2020)Short Paper: Weak Runtime-Irrelevant Typing for SecurityProceedings of the 15th Workshop on Programming Languages and Analysis for Security10.1145/3411506.3417595(13-17)Online publication date: 13-Nov-2020
  • (2020)Towards secure IoT programming in HaskellProceedings of the 13th ACM SIGPLAN International Symposium on Haskell10.1145/3406088.3409027(136-150)Online publication date: 27-Aug-2020
  • (2020)Describing microservices using modern Haskell (experience report)Proceedings of the 13th ACM SIGPLAN International Symposium on Haskell10.1145/3406088.3409018(1-8)Online publication date: 27-Aug-2020
  • (2020)A Programming Framework for Differential Privacy with Accuracy Concentration Bounds2020 IEEE Symposium on Security and Privacy (SP)10.1109/SP40000.2020.00086(411-428)Online publication date: May-2020
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media