Complete Publications
Home |
Research |
Catholic |
Publications |
Personal
Journal Publications
hicks-02-19-08.bib
@article{TCWHM08,
author = {Patrick Traynor and Michael Chien and Scott Weaver and Boniface Hicks and Patrick McDaniel},
date-added = {2008-02-19 08:16:45 -0500},
date-modified = {2008-02-19 08:16:45 -0500},
journal = {{ACM Transactions on Information and System Security (TISSEC)}},
number = {3},
title = {{Non-Invasive Methods for Host Certification}},
volume = {11},
year = {2008}
}
@article{FHW00,
abstract = {This paper presents a demand transformation analysis that maps a predicate's output demands to its input demands. This backward dataflow analysis for concurrent constraint programs is constructed in the framework of abstract interpretation. In the context of stream parallelism, this analysis identifies an amount of input data for which predicate execution can safely wait without danger of introducing deadlock. We assume that programs are well-moded and prove that our analysis is safe. We have constructed an implementation of this analysis and tested it on some small, illustrative programs and have determined that it gives useful results in practice. We identify several applications of the analysis results to distributed implementations of concurrent constraint languages, including thread construction and communication granularity. This analysis will enable exisiting computation cost estimation analyses to be applied to stream-parallel logic languages. },
author = {Moreno Falaschi and Patrick Hicks and William Winsborough},
journal = {Journal of Logic Programming},
month = mar,
number = 3,
pages = {185--215},
pdf = {papers/demandTransformAnalysis.pdf},
title = {Demand Transformation Analysis for Concurrent Constraint Programs},
volume = 41,
year = 2000
}
@article{HH00,
abstract = {We present a formal specification of unCurrying for a higher-order,
functional language with ML-style let-polymorphism.
This specification supports the general unCurrying
of functions, even for functions that are passed as
arguments or returned as values. The specification also supports
partial unCurrying of any consecutive parameters of a function,
rather than only unCurrying all of a function's parameters.
We present the specification as a deductive system that
axiomatizes a judgment relating a source term with an unCurried form
of the term. We prove that this system relates only typable terms
and that it is correct with respect to an operational semantics.
We define a practical algorithm, based
on algorithm W, that implements unCurrying and
prove this algorithm sound and complete with respect to the deductive
system. This algorithm generates maximally unCurried forms of source terms.
These results provide a declarative framework for
reasoning about unCurrying
and support a richer form of unCurrying than is currently
found in compilers for functional languages. },
author = {John Hannan and Patrick Hicks},
journal = {Journal of Higher Order and Symbolic Computation},
number = 3,
pages = {179--216},
pdf = {papers/HOUncurryingJournal.pdf},
title = {Higher-Order Uncurrying},
volume = 13,
year = 2000
}
Conference and Workshop Publications
hicks-02-19-08.bib
@inproceedings{HKM07,
abstract = {Security-typed languages such as Jif require the programmer to label variables
with information flow security policies as part of application development. The
compiler then flags errors wherever information leaks may occur. Resolving
these information leaks is a critical task in security-typed language
application development. Unfortunately, because information flows can be quite
subtle, simple error messages tend to be insufficient for finding and resolving
the source of information leaks; more sophisticated development tools are
needed for this task. To this end we provide a set of principles to guide the
development of such tools. Furthermore, we implement a subset of these
principles in an integrated development environment (IDE) for Jif, called
Jifclipse, which is built on the Eclipse extensible development platform. Our
plug-in provides a Jif programmer with additional tools to view hidden
information generated by a Jif compilation, to suggest fixes for errors, and to
get more specific information behind an error message. Better development tools
are essential for making security-typed application development practical;
Jifclipse is a first step in this process.},
address = {San Diego, CA},
author = {Boniface Hicks and Dave King and Patrick McDaniel},
booktitle = {Proceedings of the 2nd ACM SIGPLAN Workshop on Programming Languages and Analysis for Security (PLAS '07)},
date-added = {2008-02-19 09:00:54 -0500},
date-modified = {2008-02-19 09:01:14 -0500},
editor = {Michael Hicks},
month = {June 14},
pdf = {papers/hicks-plas07jifclipse.pdf},
publisher = {ACM Press},
title = {Jifclipse: Development Tools for Security-Typed Applications},
url = {http://doi.acm.org/10.1145/1255329.1255331},
year = {2007}
}
@inproceedings{HRJ+07a,
abstract = {Recent advances in the area of security-typed languages have enabled the
development of
realistic applications aware of information flow security. Traditionally, operating systems have
enforced MAC with minimal dependence on application programs.
Although these approaches have common goals, they have progressed
independently. However, there are many cases where systems depend on
user-level programs to enforce information flows, so integration of
information flow enforcement between the operating systems and
security-typed applications would be beneficial. In this paper, we
examine what it takes to integrate information flow enforcement of a
security-typed extension of Java with SELinux. We find that SELinux
has most of the necessary features to build a proof-of-concept system,
but other services are necessary, such as verifying compliance between
information flow policies. Ultimately, we are optimistic that the
comprehensive access control enforcement of SELinux will be ideal for
integration with these security-typed applications.},
address = {Baltimore, MD, USA},
author = {Boniface Hicks and Sandra Rueda and Trent Jaeger and Patrick McDaniel},
booktitle = {Proceedings of the 3rd {SEL}inux Symposium},
date-added = {2008-02-19 08:40:50 -0500},
date-modified = {2008-02-19 08:44:19 -0500},
keywords = {Information Flow Policies, Java Information Flow (Jif), security-typed languages, SELinux},
month = {March},
pdf = {papers/hicks-selinux07integrating.pdf},
title = {Integrating SELinux with Security-typed Languages},
url = {http://selinux-symposium.org/2007/papers/12-integrating.pdf},
year = {2007}
}
@inproceedings{HRJ+07b,
abstract = {Commercial operating systems have recently
introduced mandatory access controls (MAC) that can be
used to ensure system-wide data confidentiality and in-
tegrity. These protections rely on restricting the flow of
information between processes based on security levels.
The problem is, there are many applications that defy sim-
ple classification by security level, some of them essential
for system operation. Surprisingly, the common practice
among these operating systems is simply to mark these
applications as ``trusted'', and thus allow them to bypass
label protections. This compromise is not a limitation
of MAC or the operating system services that enforce it,
but simply a fundamental inability of any operating sys-
tem to reason about how applications treat sensitive data
internally---and thus the OS must either restrict the data
that they receive or trust them to handle it correctly.
These practices were developed prior to the advent
security-typed languages. These languages provide a
means of reasoning about how the OS's sensitive data is
handled within applications. Thus, applications can be
shown to enforce system security by guaranteeing, in ad-
vance of execution, that they will adhere to the OS's MAC
policy. In this paper, we provide an architecture for an op-
erating system service, that integrate security-typed lan-
guage with operating system MAC services. We have built
an implementation of this service, called SIESTA, which
handles applications developed in the security-typed lan-
guage, Jif, running on the SELinux operating system. We
also provide some sample applications to demonstrate the
security, flexibility and efficiency of our approach.},
address = {Santa Clara, CA, USA},
author = {Boniface Hicks and Sandra Rueda and Trent Jaeger and Patrick McDaniel},
booktitle = {Proceedings of the {USENIX} Annual Technical Conference},
date-added = {2008-02-19 08:39:26 -0500},
date-modified = {2008-02-19 08:44:08 -0500},
month = {June},
pdf = {papers/hicks-usenix07selinuxJif.pdf},
title = {From Trusted to Secure: Building and Executing Applications that Enforce System Security},
url = {http://www.usenix.org/events/usenix07/tech/hicks.html},
year = {2007}
}
@inproceedings{HRS+07,
abstract = {The SELinux mandatory access control (MAC) policy has recently added a
multi-level security (MLS) model which is able to express a fine
granularity of control over a subject's access rights. The problem
is that the richness of this policy makes it impractical to verify, by hand,
that a given policy has certain important information flow properties or is
compliant
with another policy. To address this, we have modeled the SELinux MLS policy
using a logical specification and implemented that specification in the Prolog
language. Furthermore, we have developed some analyses for testing the
properties of a given policy as well an algorithm to determine whether one
policy is compliant with another. We have implemented these analyses in Prolog
and compiled our implementation into a tool for SELinux MLS policy analysis,
called \tool. Using \tool, we verified some important properties of the
SELinux MLS reference policy,
namely that it satisfies the simple security condition and $\star$-property
defined by Bell and LaPadula},
address = {Antipolis, France},
author = {Boniface Hicks and Sandra Rueda and St. Clair, Luke and Trent Jaeger and Patrick McDaniel},
booktitle = {Proceedings of the {ACM} Symposium on Access Control Models and Technologies ({SACMAT})},
date-added = {2008-02-19 08:35:13 -0500},
date-modified = {2008-02-19 08:44:00 -0500},
month = {June},
pdf = {papers/hicks-sacmat07mls-semantics.pdf},
title = {A Logical Specification and Analysis for {SELinux} {MLS} Policy},
url = {http://doi.acm.org/10.1145/1266840.1266854},
year = {2007}
}
@inproceedings{HMM07,
abstract = {Security-typed languages (STLs) are powerful tools for
provably implementing policy in applications. The programmer
maps policy onto programs by annotating types
with information flow labels, and the STL compiler guarantees
that data always obeys its label as it flows within an
application. As data flows into or out of an application,
however, a runtime system is needed to mediate between
the information flow world within the application and the
non-information flow world of the operating system. In the
few existing STL applications, this problem has been handled
in ad hoc ways that hindered software engineering and
security analysis. In this paper, we present a principled approach
to STL runtime system development along with policy
infrastructure and class abstractions for the STL, Jif,
that implement these principles. We demonstrate the effectiveness
of our approach by using our infrastructure to
develop a firewall application, FlowWall, that provably
enforces its policy.},
address = {Miami, Fl},
author = {Boniface Hicks and Timothy Misiak and Patrick McDaniel},
booktitle = {23rd Annual Computer Security Applications Conference (ACSAC)},
date-added = {2008-02-19 08:23:59 -0500},
date-modified = {2008-02-19 08:24:29 -0500},
month = {December},
pdf = {papers/hicks-acsac07channels.pdf},
title = {Channels: Runtime System Infrastructure for Security-typed Languages},
url = {http://www.ieeexplore.ieee.org/iel5/4412959/4412960/04413010.pdf?tp=&isnumber=4412960&arnumber=4413010},
year = {2007}
}
@inproceedings{TCW+06,
abstract = {Determining whether a user or system is exercising
appropriate security practices is difficult in any context. Such
difficulties are particularly pronounced when uncontrolled or
unknown platforms join public networks. Commonly practiced
techniques used to vet these hosts, such as system scans, have
the potential to infringe upon the privacy of users. In this paper,
we show that it is possible for clients to prove both the pres-
ence and proper functioning of security infrastructure without
allowing unrestricted access to their system. We demonstrate this
approach, specifically applied to anti-virus security, by requiring
clients seeking admission to a network to positively identify the
presence or absence of malcode in a series of puzzles. The
implementation of this mechanism and its application to real
networks are also explored. In so doing, we demonstrate that it
is not necessary for an administrator to be invasive to determine
whether a client implements good security practices.
},
address = {Baltimore, MD},
author = {Patrick Traynor and Mike Chien and Scott Weaver and Boniface Hicks and Patrick McDaniel},
booktitle = {Second IEEE Communications Society/CreateNet International Conference on Security and Privacy in Communication Networks (SecureComm '06)},
date-added = {2007-01-16 16:03:31 -0500},
date-modified = {2007-01-16 16:32:31 -0500},
keywords = {Certification, Assurance, Network Security, Malware are totally appropriate and are likely to be observed more Certification, Assurance, Network Security, Malware},
month = {Aug. 28 - Sep. 1},
pdf = {papers/traynor-securecomm06antivirus.pdf},
read = {Yes},
title = {Non-Invasive Host Certification},
year = {2006}
}
@inproceedings{HAM06,
abstract = {Security-typed languages are an evolving tool for implementing
systems with provable security guarantees. However,
to date, these tools have only been used to build simple
"toy" programs. As described in this paper, we have developed
the first real-world, security-typed application: a secure
email system written in the Java language variant Jif.
Real-world policies are mapped onto the information flows
controlled by the language primitives, and we consider the
process and tractability of broadly enforcing security policy
in commodity applications. We find that while the language
provided the rudimentary tools to achieve low-level security
goals, additional tools, services, and language extensions
were necessary to formulate and enforce application
policy. We detail the design and use of these tools. We also
show how the strong guarantees of Jif in conjunction with
our policy tools can be used to evaluate security. This work
serves as a starting point--we have demonstrated that it is
possible to implement real-world systems and policy using
security-typed languages. However, further investigation of
the developer tools and supporting policy infrastructure is
necessary before they can fulfill their considerable promise
of enabling more secure systems.},
address = {Miami, Fl},
author = {Boniface Hicks and Kiyan Ahmadizadeh and Patrick McDaniel},
booktitle = {22st Annual Computer Security Applications Conference (ACSAC)},
date-added = {2006-09-27 16:30:59 -0400},
date-modified = {2007-01-16 16:34:12 -0500},
month = {December},
note = {Awarded best student paper.},
pdf = {papers/hicks-acsac06jpmail.pdf},
title = {Understanding Practical Application Development in Security-typed Languages},
year = {2006}
}
@inproceedings{HKM+06,
abstract = {Security-typed languages promise to be a powerful tool with which
provably secure software applications may be developed. Programs
written in these languages enforce a strong, global policy of nonin-
terference which ensures that high-security data will not be observ-
able on low-security channels. Because noninterference is typically
too strong a property, most programs use some form of declassifi-
cation to selectively leak high security information, e.g. when per-
forming a password check or data encryption. Unfortunately, such
a declassification is often expressed as an operation within a given
program, rather than as part of a global policy, making reasoning
about the security implications of a policy more difficult.
In this paper, we propose a simple idea we call trusted declas-
sification in which special declassifier functions are specified as
part of the global policy. In particular, individual principals declar-
atively specify which declassifiers they trust so that all informa-
tion flows implied by the policy can be reasoned about in absence
of a particular program. We formalize our approach for a Java-
like language and prove a modified form of noninterference which
we call noninterference modulo trusted methods. We have imple-
mented our approach as an extension to Jif and provide some of
our experience using it to build a secure e-mail client.},
address = {Ottawa, Canada},
author = {Boniface Hicks and Dave King and Patrick McDaniel and Michael Hicks},
booktitle = {Proceedings of the 1st ACM SIGPLAN Workshop on Programming Languages and Analysis for Security ({PLAS} '06)},
date-modified = {2007-01-16 16:35:24 -0500},
month = {June 10},
note = {An extended version of this paper appears in the technical report NAS-TR-0033-2006},
pdf = {papers/hicks06trustedDeclass.pdf},
publisher = {ACM Press},
title = {Trusted Declassification: High-level policy for a security-typed language},
year = {2006}
}
@inproceedings{FHW96,
abstract = {This paper presents a demand transformation analysis that maps a predicate's output demands to its input demands. This backward dataflow analysis for concurrent constraint programs is constructed in the framework of abstract interpretation. In the context of stream parallelism, this analysis identifies an amount of input data for which predicate execution can safely wait without danger of introducing deadlock. We assume that programs are well-moded and prove that our analysis is safe. We have constructed an implementation of this analysis and tested it on some small, illustrative programs and have determined that it gives useful results in practice. We identify several applications of the analysis results to distributed implementations of concurrent constraint languages, including thread construction and communication granularity. This analysis will enable exisiting computation cost estimation analyses to be applied to stream-parallel logic languages. },
author = {Moreno Falaschi and Patrick Hicks and William H. Winsborough},
booktitle = {Joint International Conference and Symposium on Logic Programming},
note = {An extended version of this paper appears in the Journal of Logic Programming, Vol 41, No. 3, pp 185-215.},
pages = {333-347},
title = {Demand Transformation Analysis for Concurrent Constraint Programs},
url = {citeseer.ist.psu.edu/falaschi94demand.html},
year = {1996}
}
@inproceedings{HH98a,
abstract = {We present a formal specification of unCurrying for a higher-order,
functional language with ML-style let-polymorphism.
This specification supports the general unCurrying
of functions, even for functions that are passed as
arguments or returned as values. The specification also supports
partial unCurrying of any consecutive parameters of a function,
rather than only unCurrying all of a function's parameters.
We present the specification as a deductive system that
axiomatizes a judgment relating a source term with an unCurried form
of the term. We prove that this system relates only typable terms
and that it is correct with respect to an operational semantics.
We define a practical algorithm, based
on algorithm W, that implements unCurrying and
prove this algorithm sound and complete with respect to the deductive
system. This algorithm generates maximally unCurried forms of source terms.
These results provide a declarative framework for
reasoning about unCurrying
and support a richer form of unCurrying than is currently
found in compilers for functional languages. },
address = {San Diego, CA},
author = {John Hannan and Patrick Hicks},
booktitle = {Proceedings of the 25th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages},
month = jan,
note = {An extended version of this paper appears in Higher Order and Symbolic Computation, Vol 13, No. 3, 2000, pp 179-216.},
pages = {1--10},
pdf = {papers/HOUncurryingConf.pdf},
title = {Higher-Order Uncurrying},
year = 1998
}
@inproceedings{HH98b,
abstract = {Arity raising, also known as variable splitting or flattening, is the program optimization which transforms a function of one argument into a function of several arguments by decomposing the structure of the original one argument into individual components in that structure. This optimization eliminates the need for the structuring of the components and also allows more arguments to be passed in registers during a function call. We present a formal specification of arity raising for a higher-order functional language. This specification supports the general arity raising of functions, even for functions which are passed as arguments or returned as values. We define a practical algorithm, based on algorithm W, which implements arity raising, and we prove this algorithm sound with respect to the deductive system. These results provide a declarative framework for reasoning about arity raising and support a richer form of the transformation than is currently found in compilers for functional languages.},
address = {Baltimore, MD},
author = {John Hannan and Patrick Hicks},
booktitle = {Proceedings of 3rd ACM SIGPLAN International Conference on Functional Programming},
date-modified = {2006-04-03 11:51:21 -0400},
month = sep,
pages = {27--38},
pdf = {papers/HOArityRaising.pdf},
title = {Higher-Order Arity Raising},
year = 1998
}
@inproceedings{HWO97,
abstract = {In this paper, we note and analyze a key trade-off: as the
complexity of caches increases (higher set-associativity, larger
block size, and larger overall size), the power consumed by a
cache access increases. However, because the hit rate also increases,
the number of main memory accesses decreases and
thus the power consumed by a memory access decreases. Recent
papers which consider the power consumption of caches
tend to ignore hit rates. This is unfortunate, because it is
undesirable to have energy-efficient caches which are also
very slow. Hit rates also play a key role in truly evaluating
the energy efficiency of a cache, because low hit rates lead to
more frequent main memory accesses which consume more
power than cache accesses. },
author = {Patrick Hicks and Matthew Walnock and Robert Michael Owens},
booktitle = {Proceedings of the 1997 international symposium on Low power electronics and design},
date-modified = {2005-06-17 11:20:46 -0400},
doi = {http://doi.acm.org/10.1145/263272.263342},
isbn = {0-89791-903-3},
location = {Monterey, California, United States},
pages = {239--242},
pdf = {papers/lowpowercaches.pdf},
publisher = {ACM Press},
title = {Analysis of power consumption in memory hierarchies},
year = {1997}
}
@inproceedings{HTH+05,
abstract = {Applications that manipulate sensitive information should ensure end-to-end security by satisfying two
properties: sound execution and some form of noninterference. By the former, we mean the program should
always perform actions in keeping with its current policy, and by the latter we mean that these actions should
never cause high-security information to be visible to a low-security observer. Over the last decade, securitytyped
languages have been developed that exhibit these properties, increasingly improving so as to model
important features of real programs. No current security-typed language, however, permits general changes
to security policies in use by running programs. This paper presents a simple information flow type system
for that allows for dynamic security policy updates while ensuring sound execution and a relaxed form of
noninterference we term noninterference between updates. We see this work as an important step toward using
language-based techniques to ensure end-to-end security for realistic applications. },
author = {Michael Hicks and Stephen Tse and Boniface Hicks and Steve Zdancewic},
booktitle = {Proceedings of the Foundations of Computer Security Workshop (FCS '05)},
date-modified = {2005-06-17 16:41:39 -0400},
month = {March},
pdf = {papers/dynUpdateInfoflow.pdf},
title = {Dynamic Updating of Information-Flow Policies},
year = 2005
}
Tech Reports
hicks-02-19-08.bib
@techreport{Hic07,
address = {University Park, PA},
author = {Boniface Hicks},
date-added = {2008-02-19 08:20:27 -0500},
date-modified = {2008-02-19 09:04:35 -0500},
institution = {Penn State},
month = {December},
pdf = {papers/hicks-thesis07secure-systems.pdf},
school = {Penn State},
title = {Secure Systems Development Using Security-Typed Languages},
url = {http://etda.libraries.psu.edu/theses/approved/WorldWideIndex/ETD-2329/index.html},
year = {2007}
}
@techreport{HRS+07tr,
address = {Department of Computer Science, Pennsylvania State University},
author = {Boniface Hicks and Sandra Rueda and St. Clair, Luke and Trent Jaeger and Patrick McDaniel},
date-added = {2007-01-16 16:02:59 -0500},
date-modified = {2007-03-15 14:03:51 -0400},
institution = {Networking and Security Research Center},
note = {Slightly extended version of SACMAT 2007 publication.},
number = {NAS-TR-0058-2007},
title = {A Logical Specification and Analysis for {SELinux} {MLS} Policy},
year = {2007}
}
@techreport{HRJ+06tr,
abstract = {Recent advances in security-typed languages and operating system MAC policy have led to a renaissance in information flow security. Grounded in classical security analysis, these technologies provide guarantees preventing data of differing security levels from leaking (confidentiality) or corrupting (integrity) data from other levels. However, these works have largely advanced in isolation. In this paper we investigate the feasibility, design, and cost of unifying the information flow infrastructure at the application, operating system, and network layers. In particular, we develop an infrastructure that enforces a single consistent policy using the information flow controls of the Jif programming language (application), SELinux operating system (OS), and Labeled IPsec (network). We evaluate the security, performance, and complexity of use of the resulting system, and conclude with notes on future directions in the use of these systems. The evaluations and experiments show not only that the overheads are nominal, but that activities such as instrumenting new applications are significantly less cumbersome than in isolated information flow development.
},
address = {Department of Computer Science and Engineering, Pennsylvania State University, University Park, PA, USA},
author = {Boniface Hicks and Sandra Rueda and Trent Jaeger and Patrick McDaniel},
date-added = {2006-09-27 17:23:19 -0400},
date-modified = {2007-01-16 16:31:01 -0500},
institution = {Network and Security Research Center},
month = sep,
number = {NAS-TR-0049-2006},
title = {{Breaking Down the Walls of Mutual Distrust: Security-typed Email Using Labeled IPsec}},
year = 2006
}
@techreport{HKM+06tr,
abstract = {Security-typed languages promise to be a powerful tool with which provably
secure software applications may be developed. Programs written in these
languages enforce a strong, global policy of noninterference for all their
data. Unfortunately, real programs almost always require the use of
noninterference-violating flows introduced by declassification. This
causes the global policy to break down and obscures the meaning of security
labels. These languages suffer from the lack of an alternative, global policy
which can handle declassifications. In this paper, we present
a security-typed, object-oriented language which allows
trusted declassifications based on a global policy. We prove
the
soundness of our language as well as a modified form of noninterference, which
we call noninterference modulo trusted declassification. We implement our declassification mechanism and
global security policy in Jif and provide some examples which motivate its
use.},
address = {Department of Computer Science, Pennsylvania State University},
author = {Boniface Hicks and Dave King and Patrick McDaniel and Michael Hicks},
date-added = {2006-04-11 10:31:42 -0400},
date-modified = {2006-09-27 16:50:19 -0400},
institution = {Networking and Security Research Center},
month = {March},
number = {NAS-TR-0033-2006},
pdf = {papers/hicks06trustedDeclass.pdf},
title = {Trusted Declassification: High-level policy for a security-typed language},
year = {2006}
}
@techreport{HKM05,
abstract = {Security-typed languages are powerful tools for provably enforcing
noninterference.
Real computing systems, however, often intentionally violate
noninterference by deliberately releasing (or declassifying) sensitive
information.
These systems frequently trust cryptographic functions to achieve
declassification while still maintaining confidentiality.
We introduce the notion of trusted functions that implicitly act as
declassifiers within a security-typed language.
Proofs of the new language's soundness and its enforcement of a
weakened form of noninterference are given.
Additionally, we implement trusted functions used for declassification
in the Jif language.
This represents a step forward in making security-typed languages more
practical for use in real systems. },
address = {Department of Computer Science, Pennsylvania State University},
author = {Boniface Hicks and Dave King and Patrick McDaniel},
institution = {Network and Security Center},
month = {January},
note = {({\it updated May 2005})},
number = {NAS-TR-0004-2005},
pdf = {papers/TechReport-0004-2004.pdf},
title = {{Declassification with Cryptographic Functions in a Security-Typed Language}},
year = {2005}
}
@techreport{HMH05,
abstract = {Because of the increasing demands for privacy and integrity guarantees in applications that handle sensitive, electronic data, there is a need for automated software development tools and techniques for enforcing this security. Although there have been many attempts to apply security to existing systems after the fact, manifold failures indicate that this approach should be revisited. To the contrary, experience indicates that secure systems must be designed with explicit policies from the beginning and that there should be some automated, mathematically-verifiable mechanism to aid programmers in doing this correctly. Recent research in language-based security has made great strides towards the development of sophisticated and robust languages for programming with explicit security policies. Insufficient experience with these languages, however, has left them untested and impractical for writing real, distributed applications. In this paper, we present our experiences of working with Jif, a Java-based, security-typed language, in building a distributed, database application. Our experience has indicated the current impracticality of programming in Jif, but has helped us to identify language development tools and automation algorithms that could aid in making Jif more practical for developing real, distributed applications. },
address = {Department of Computer Science, Pennsylvania State University},
author = {Boniface Hicks and Patrick McDaniel and Ali Hurson},
institution = {Network and Security Center},
month = {April},
number = {NAS-TR-0011-2005},
pdf = {papers/hicks05tr0011-2005.pdf},
title = {Information Flow Control in Database Security: A Case Study for Secure Programming with Jif},
year = {2005}
}
|