Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
A structural view of the Cedar programming environment
ACM Transactions on Programming Languages and Systems (TOPLAS)
Lisp lore: a guide to programming the Lisp machine
Lisp lore: a guide to programming the Lisp machine
ACM Transactions on Computer Systems (TOCS)
Debugging standard ML without reverse engineering
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
Project Oberon: the design of an operating system and compiler
Project Oberon: the design of an operating system and compiler
Authentication in distributed systems: theory and practice
ACM Transactions on Computer Systems (TOCS)
A calculus for access control in distributed systems
ACM Transactions on Programming Languages and Systems (TOPLAS)
Authentication in the Taos operating system
ACM Transactions on Computer Systems (TOCS) - Special issue on operating systems principles
Simple and effective link-time optimization of Modula-3 programs
PLDI '95 Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation
Simple and effective analysis of statically-typed object-oriented programs
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Safe kernel extensions without run-time checking
OSDI '96 Proceedings of the second USENIX symposium on Operating systems design and implementation
Extensible security architectures for Java
Proceedings of the sixteenth ACM symposium on Operating systems principles
Fast interprocedural class analysis
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
JRes: a resource accounting interface for Java
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
PLAN: a packet language for active networks
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
JFlow: practical mostly-static information flow control
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Inside Java 2 platform security architecture, API design, and implementation
Inside Java 2 platform security architecture, API design, and implementation
Programming languages as operating systems (or revenge of the son of the lisp machine)
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
Design and implementation of a distributed virtual machine for networked computers
Proceedings of the seventeenth ACM symposium on Operating systems principles
Symbolic Debugging of Optimized Code
ACM Transactions on Programming Languages and Systems (TOPLAS)
Pilot: an operating system for a personal computer
Communications of the ACM
Presenting C#
Java Virtual Machine Specification
Java Virtual Machine Specification
The Java Language Specification
The Java Language Specification
Optimization of Object-Oriented Programs Using Static Class Hierarchy Analysis
ECOOP '95 Proceedings of the 9th European Conference on Object-Oriented Programming
HOTOS '99 Proceedings of the The Seventh Workshop on Hot Topics in Operating Systems
Design and Evaluation of an Extensible Web & Telephony Server based on the J-Kernel
Design and Evaluation of an Extensible Web & Telephony Server based on the J-Kernel
The Confused Deputy: (or why capabilities might have been invented)
ACM SIGOPS Operating Systems Review
Rabbit: A Compiler for Scheme
A secure javaTM virtual machine
SSYM'00 Proceedings of the 9th conference on USENIX Security Symposium - Volume 9
Techniques for the design of java operating systems
ATEC '00 Proceedings of the annual conference on USENIX Annual Technical Conference
Automatic program transformation with JOIE
ATEC '98 Proceedings of the annual conference on USENIX Annual Technical Conference
Implementing multiple protection domains in java
ATEC '98 Proceedings of the annual conference on USENIX Annual Technical Conference
Representation independence, confinement and access control [extended abstract]
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Stack inspection: theory and variants
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Termination in language-based systems
ACM Transactions on Information and System Security (TISSEC)
Stack inspection: Theory and variants
ACM Transactions on Programming Languages and Systems (TOPLAS)
Garbage Collector Memory Accounting in Language-Based Systems
SP '03 Proceedings of the 2003 IEEE Symposium on Security and Privacy
Using Replication and Partitioning to Build Secure Distributed Systems
SP '03 Proceedings of the 2003 IEEE Symposium on Security and Privacy
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
A static type system for JVM access control
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
Channel dependent types for higher-order mobile processes
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A tail-recursive machine with stack inspection
ACM Transactions on Programming Languages and Systems (TOPLAS)
Stack-based access control and secure information flow
Journal of Functional Programming
A systematic approach to static access control
ACM Transactions on Programming Languages and Systems (TOPLAS)
Continuations from generalized stack inspection
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
Ownership confinement ensures representation independence for object-oriented programs
Journal of the ACM (JACM)
Trust but verify: authorization for web services
SWS '04 Proceedings of the 2004 workshop on Secure web service
Static check analysis for Java stack inspection
ACM SIGPLAN Notices
Access control in a core calculus of dependency
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
A static type system for JVM access control
ACM Transactions on Programming Languages and Systems (TOPLAS)
Theoretical Computer Science - Applied semantics: Selected topics
Access Control in a Core Calculus of Dependency
Electronic Notes in Theoretical Computer Science (ENTCS)
Access control in a world of software diversity
HOTOS'05 Proceedings of the 10th conference on Hot Topics in Operating Systems - Volume 10
Authorizing applications in singularity
Proceedings of the 2nd ACM SIGOPS/EuroSys European Conference on Computer Systems 2007
Enforcing resource bounds via static verification of dynamic checks
ACM Transactions on Programming Languages and Systems (TOPLAS) - Special Issue ESOP'05
Run-time principals in information-flow type systems
ACM Transactions on Programming Languages and Systems (TOPLAS)
Security-By-Contract for the Future Internet
Future Internet --- FIS 2008
Efficient IRM enforcement of history-based access control policies
Proceedings of the 4th International Symposium on Information, Computer, and Communications Security
Local policies for resource usage analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
Method-Specific Java Access Control via RMI Proxy Objects Using Annotations
ICISS '09 Proceedings of the 5th International Conference on Information Systems Security
Program Transformations under Dynamic Security Policies
Electronic Notes in Theoretical Computer Science (ENTCS)
Flow-net methodology for accountability in wireless networks
IEEE Network: The Magazine of Global Internetworking
A permission system for secure AOP
Proceedings of the 9th International Conference on Aspect-Oriented Software Development
Isolating untrusted software extensions by custom scoping rules
Computer Languages, Systems and Structures
Designing for privacy in a multi-agent world
AAMAS'02 Proceedings of the 2002 international conference on Trust, reputation, and security: theories and practice
Visualization of permission checks in java using static analysis
WISA'06 Proceedings of the 7th international conference on Information security applications: PartI
Enforcing Java run-time properties using bytecode rewriting
ISSS'02 Proceedings of the 2002 Mext-NSF-JSPS international conference on Software security: theories and systems
AnZenMail: a secure and certified e-mail system
ISSS'02 Proceedings of the 2002 Mext-NSF-JSPS international conference on Software security: theories and systems
Computer security from a programming language and static analysis perspective
ESOP'03 Proceedings of the 12th European conference on Programming
A tail-recursive semantics for stack inspections
ESOP'03 Proceedings of the 12th European conference on Programming
TAPIDO: trust and authorization via provenance and integrity in distributed objects
ESOP'08/ETAPS'08 Proceedings of the Theory and practice of software, 17th European conference on Programming languages and systems
Component-based access control: secure software composition through static analysis
SC'08 Proceedings of the 7th international conference on Software composition
Access control based on code identity for open distributed systems
TGC'07 Proceedings of the 3rd conference on Trustworthy global computing
Role-based access control (RBAC) in Java via proxy objects using annotations
Proceedings of the 15th ACM symposium on Access control models and technologies
A framework towards enhancing trust and authorisation for e-commerce service
International Journal of Internet Technology and Secured Transactions
Supporting dynamic, third-party code customizations in JavaScript using aspects
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Quire: lightweight provenance for smart phone operating systems
SEC'11 Proceedings of the 20th USENIX conference on Security
Dynamic policy discovery with remote attestation
FOSSACS'06 Proceedings of the 9th European joint conference on Foundations of Software Science and Computation Structures
Enforcing resource bounds via static verification of dynamic checks
ESOP'05 Proceedings of the 14th European conference on Programming Languages and Systems
Discretionary capability confinement
ESORICS'06 Proceedings of the 11th European conference on Research in Computer Security
TreeDroid: a tree automaton based approach to enforcing data processing policies
Proceedings of the 2012 ACM conference on Computer and communications security
Accountability and Q-Accountable Logging in Wireless Networks
Wireless Personal Communications: An International Journal
Hi-index | 0.00 |
In order to run untrusted code in the same process as trusted code, there must be a mechanism to allow dangerous calls to determine if their caller is authorized to exercise the privilege of using the dangerous routine. Java systems have adopted a technique called stack inspection to address this concern. But its original definition, in terms of searching stack frames, had an unclear relationship to the actual achievement of security, overconstrained the implementation of a Java system, limited many desirable optimizations such as method inlining and tail recursion, and generally interfered with interprocedural optimization. We present a new semantics for stack inspection based on a belief logic and its implementation using the calculus of security-passing style which addresses the concerns of traditional stack inspection. With security-passing style, we can efficiently represent the security context for any method activation, and we can build a new implementation strictly by rewriting the Java bytecodes before they are loaded by the system. No changes to the JVM or bytecode semantics are necessary. With a combination of static analysis and runtime optimizations, our prototype implementation showes reasonable performance (although traditional stack inspection is still faster), and is easier to consider for languages beyond Java. We call our system SAFKASI (the Security Architecture Formerly Known as Stack Inspection).