How to replace failure by a list of successes
Proc. of a conference on Functional programming languages and computer architecture
Computational lambda-calculus and monads
Proceedings of the Fourth Annual Symposium on Logic in computer science
A functional theory of exceptions
Science of Computer Programming
LFP '92 Proceedings of the 1992 ACM conference on LISP and functional programming
Imperative functional programming
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Soft typing with conditional types
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Type inference for records in natural extension of ML
Theoretical aspects of object-oriented programming
A syntactic approach to type soundness
Information and Computation
A practical soft type system for scheme
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Type inference with constrained types
Theory and Practice of Object Systems - Special issue on foundations of object-oriented languages
A type system for expressive security policies
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
SASI enforcement of security policies: a retrospective
Proceedings of the 1999 workshop on New security paradigms
Type-based analysis of uncaught exceptions
ACM Transactions on Programming Languages and Systems (TOPLAS)
Static enforcement of security with types
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Information flow inference for free
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
ACM Transactions on Information and System Security (TISSEC)
SAFKASI: a security mechanism for language-based systems
ACM Transactions on Software Engineering and Methodology (TOSEM)
Stack inspection: theory and variants
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Model checking security properties of control flow graphs
Journal of Computer Security
A conservative algorithm for computing the flow of permissions in Java programs
ISSTA '02 Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis
Secure calling contexts for stack inspection
Proceedings of the 4th ACM SIGPLAN international conference on Principles and practice of declarative programming
Access rights analysis for Java
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
The marriage of effects and monads
ACM Transactions on Computational Logic (TOCL)
Program Analysis Using Mixed Term and Set Constraints
SAS '97 Proceedings of the 4th International Symposium on Static Analysis
A versatile constraint-based type inference system
Nordic Journal of Computing
User Authentication and Authorization in the Java(tm) Platform
ACSAC '99 Proceedings of the 15th Annual Computer Security Applications Conference
A Constraint-Based Presentation and Generalization of Rows
LICS '03 Proceedings of the 18th Annual IEEE Symposium on Logic in Computer Science
A new approach to mobile code security
A new approach to mobile code security
A general framework for hindley/milner type systems with constraints
A general framework for hindley/milner type systems with constraints
Types for programming language-based security
Types for programming language-based security
A static type system for JVM access control
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
A tail-recursive semantics for stack inspections
ESOP'03 Proceedings of the 12th European conference on Programming
Static check analysis for Java stack inspection
ACM SIGPLAN Notices
A static type system for JVM access control
ACM Transactions on Programming Languages and Systems (TOPLAS)
A syntactic correspondence between context-sensitive calculi and abstract machines
Theoretical Computer Science
Type safe dynamic linking for JVM access control
Proceedings of the 9th ACM SIGPLAN international conference on Principles and practice of declarative programming
Reasoning about safety properties in a JVM-like environment
Science of Computer Programming
A type system for data-flow integrity on windows vista
Proceedings of the third ACM SIGPLAN workshop on Programming languages and analysis for security
A type system for data-flow integrity on Windows Vista
ACM SIGPLAN Notices
Secure Information Flow as a Safety Property
Formal Aspects in Security and Trust
Security Types for Sessions and Pipelines
Web Services and Formal Methods
Visualization of permission checks in java using static analysis
WISA'06 Proceedings of the 7th international conference on Information security applications: PartI
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
Higher-order program verification and language-based security
ASIAN'09 Proceedings of the 13th Asian conference on Advances in Computer Science: information Security and Privacy
Formal methods for smartcard security
Foundations of Security Analysis and Design III
Discretionary capability confinement
ESORICS'06 Proceedings of the 11th European conference on Research in Computer Security
Dynamic access control in a concurrent object calculus
CONCUR'06 Proceedings of the 17th international conference on Concurrency Theory
Verifiable control flow policies for java bytecode
FAST'11 Proceedings of the 8th international conference on Formal Aspects of Security and Trust
Hi-index | 0.00 |
The Java Security Architecture includes a dynamic mechanism for enforcing access control checks, the so-called stack inspection process. While the architecture has several appealing features, access control checks are all implemented via dynamic method calls. This is a highly nondeclarative form of specification that is hard to read, and that leads to additional run-time overhead. This article develops type systems that can statically guarantee the success of these checks. Our systems allow security properties of programs to be clearly expressed within the types themselves, which thus serve as static declarations of the security policy. We develop these systems using a systematic methodology: we show that the security-passing style translation, proposed by Wallach et al. [2000] as a dynamic implementation technique, also gives rise to static security-aware type systems, by composition with conventional type systems. To define the latter, we use the general HM(X) framework, and easily construct several constraint- and unification-based type systems.