From b8ee6208dd9b07848a840008129164ad522bf7ed Mon Sep 17 00:00:00 2001 From: Paul Wortman Date: Wed, 11 Nov 2015 20:02:35 -0500 Subject: [PATCH] First push after major 'surgery' to paper - Reorder of structure - Separation of old paper from new paper - Doing quick overview to make sure 'stiching' looks correct - Stopped at the end of PBD section (II) --- PBDSecPaper.pdf | Bin 259870 -> 261589 bytes PBDSecPaper.tex | 318 ++++++++++++++++++++++++++++++------------------ 2 files changed, 202 insertions(+), 116 deletions(-) diff --git a/PBDSecPaper.pdf b/PBDSecPaper.pdf index 6b37d5dd1c084d10b4d99994261997bed8301e7e..996d2e16535fdf33d2f890f37cb656185e194181 100644 GIT binary patch delta 93849 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 z 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%0Dq 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 delta 91994 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 diff --git a/PBDSecPaper.tex b/PBDSecPaper.tex index f0a1c1d..1248f6a 100644 --- a/PBDSecPaper.tex +++ b/PBDSecPaper.tex @@ -81,7 +81,7 @@ \maketitle \begin{abstract} -Platform-Based Design (PBD) centers around minimizing costs of +There is a dsitinct lack of incorporating security, as a preliminary, when performing any development and design. There are tools and methodologies that tackle aspects of this issue, but nothing that brings a `complete' solution. Platform-Based Design (PBD) centers around minimizing costs of developing and manufacturing new components along with changing the landscape of this ecosystem, through the use of a ``meet-in-the-middle'' methodology. Successive refinements of @@ -89,43 +89,67 @@ specifications meet with abstractions of potential implementations; the goal being to obtain the same level of abstraction as is written into good coding functions~\cite{Vincentelli2002}. Security centers around being able to gauge the trustworthiness of components as well -as the larger system made of distributed components. There is a -distinct lack of design methodology for doing platform-based design of +as the larger system made of distributed components. Currently there is a lack of design methodology for doing platform-based design of security elements, although there is conceptual use in mobile embedded systems~\cite{Schaumont2005}. While the ground work for implementing security via PBD exists, this paper is centered around connecting the dots and laying the foundation for framework that will be built upon for creating security in a documented, rigorous, and standardized way. \end{abstract} \section{Motivation} \label{Motivation} -As systems move towards more complex designs and implementations (as allowed by Moore's Law and other growths in technology) the ability to make even simple changes to these designs becomes exponentially more difficult. For this reason, levels of abstraction are desired when simplifying the design/evaluation phases of systems development. An example of this abstraction simplification is the use of system-on-chip (SoC) to replace multi-chip solutions. This SoC abstraction solution is then used for a variety of tasks, ranging from arithmetic to system behavior. It is an industry standard to use SoC to handle encryption/security in a secure and removed manner~\cite{Wu2006}. Middleware describes software that resides between an application and the inner workings of the system hosting the application. The purpose of the middleware is to abstract the complexities of the underlying technology from the application layer~\cite{Lang2003}; to act as translation software for communicating from lower level to a higher level. Platform-Based Design (PBD) has been proposed as a methodology to allow for this lower-to-higher translation ``abstraction bridge'' that enables a ``meet-in-the-middle'' approach~\cite{Vincentelli2007}. Platform-based design attempts to map applications to a platform chosen from a set of well-defined components. These components are defined by various characteristics including performance, weight, cost, etc. The mapping process to select architectures, platforms, and components sets out to maximize some objective function in the context of constraints and system requirements. -While security in these systems is clearly important, it is rarely part of the early design process and thus, does not enter into the platform-based design process. In this paper, we advocate for a new security aware platform-based design approach that takes into account component security attributes during platform definition. In addition, the mapping process must incorporate security requirements as part of the objective function and constraints. -%To date, the PBD approach to design has been along with the sort of software construct that benefits the virtualization of security component mapping. -%\begin{quotation} -% ``However, even though current silicon technology is closely following the growing demands; the effort needed in modeling, simulating, and validating such designs is adversely affected. This is because current modeling tools and frameworks, hardware and software co-design environments, and validation and verification frameworks do not scale with the rising demands.''`\cite{Patel2007} -%\end{quotation} -Work in the security realm is much more chaotic, although undertakings have been made to define the scope of security and its intricacies in a well documented manner~\cite{Benzel2005}. Other work in the security realm includes security-aware mapping for automotive systems, explorations of dependable and secure computing, how to model secure systems, and defining the general theorems of security properties~\cite{Avizienis2004, Lin2013, Zakinthinos1997, Jorgen2008, Zhou2007}. Security has many facets to it: failure, processes, security mechanisms, security principles, security policies, trust, etc. A key developing aspect of security is its standardization of encryption algorithms, methods of authentication, and communication protocol standards. +Security is always evolving with time and understanding as knowledge +of encryption and other security encapsulation techniques change over +time. There are considerations that are accounted from a software +standpoint: capabilities of the software, speed of the +algorithms/actions that take place, and how unique (level of +uniqueness) a given solution is. Similarly there are hardware +considerations as well: tolerance of the chip elements in use, their +capabilities, power distribution over the entire hardware design, +signal lag between different elements, and cross-talk caused by +communication channels. -Standardization is the process of developing and implementing technical standards. Standardization can help to maximize compatibility, interoperability, safety, repeatability, or quality; it can also facilitate commoditization of formerly custom processes. Standards appear in all sorts of domains. For the IC domain standardization manifests as a flexible integrated circuit where customization for a particular application is achieved by programming one or more components on the chip (e.g. virtualization). PC makers and application software designers develop their products quickly and efficiently around a standard `platform' that emerged over time. As a quick over view of these standards: x86 ISA which makes is possible to reuse the OS \& SW applications, a full specified set of buses (ISA, USB, PCI) which allow for use of the same expansion boards of IC's for different products, and a full specification of a set of IO devices (e.g. keyboard, mouse, audio and video devices). The advantage of the standardization of the PC domain is that software can also be developed independently of the new hardware availability, thus offering a real hardware-software codesign approach. If the instruction set architecture (IAS) is kept constant (e.g. standardized) then software porting, along with future development, is far easier~\cite{Vincentelli2002}. In a `System Domain' lens, standardization is the aspect of the capabilities a platform offers to develop quickly new applications (adoptability). In other words, this requires a distillation of the principles so that a rigorous methodology can be developed and profitably used across different design domains. -So why is standardization useful? Standardization allows for manufacturers, system developers, and software designers to all work around a single, accepted, platform. It is understood what the capabilities of the hardware are, what the limitations of system IO will be, along with what the methods/protocols of communication will be. Even these preset aspects of the `standard' have their own `contractual obligations' of how they will function, what their respective `net-lists' are, and where the limitations of such standards lie. While the act of creating a standard takes time, not only due to time of development but due to speed of adoption of wide use, it is a necessary step. Without standardization, it becomes far more difficult to create universally used complex systems, let alone validate their correctness and trustworthiness. This is how one is able to change the current paradigm to a new standard model. +The primary cost of developing security, and running a secure system, is time. There are the monetary and hardware costs of security development and implementation, but even those aspects all have a time cost coupled with them. Time, while being the most expensive part of security design is also the aspect that can be tackled and minimized with rigorous planning and documentation. Taking into account that even the development of documentation and standards also has its own time cost associated with it, this early phase development can also diminish the time-cost impact for later steps in the system's development/implementation life-cycle. Security must be paramount in design from the very beginning of any design and development cycle. -What is gained, and lost, when shifting the method of design to a more platform-based design/security centric model? After all development of these tools implies that there is a need to change the focus and methods of design/development~\cite{Vincentelli2007}. The advantage to this method is ease of changes in development and searching of design spaces during early design and development of those systems. For PBD this means that a company/manufacturer is able to lower the cost and time spent in the `early development phase'; the time spent when first drawing up system designs prior to initial prototyping. While the advantage of overcoming multiple prototyping re-designs with a series of virtualization tools will cut down on development time, it can not be forgotten that rigorous standards and documentation need to be developed for this sort of advantage. Once this hurdle is passed then the advantages of such a system can be reaped. For security this means that components can be standardized from a local, network, and distributed standpoint. These different scopes of security will be tackled in Section~\ref{Security}. The main point here is that with standardization comes a form of `contract' that all parties can expect will be followed, thus allowing for different manufacturers/developers to create different aspects of a system, while knowing that these different elements will come together in the final product; much like the advantages of platform-based design. The disadvantage of using a new method is the loss in time for developing the standards, rigors, and documentation that would be used as new guide lines for the industry. These sorts of costs have been felt while developing any of the current standards of security; most definitely with the development of new algorithms for encryption. Further more, security vulnerabilities are found mainly due to incorrect implementations or due to incorrect assumptions about functionality; both of which are more easily avoidable with the use of rigorous planning and design. The other disadvantage is in the adoptability of these new methods. Ideally all manufacturers would adopt a new commodity; rather than components, `design combinations' would be the new commodity that manufacturers would peddle (e.g. instead of saying ``my components are the best'' the dialog moves towards ``My ability to combine these components is the best''). +Security concerns center around how to define trust/trustworthiness, determining the functions and behaviors of security components, and the principles, policies, and mechanisms that are rigorously documented to standardize behavior. Also designed by industry to clearer standards, giving better security and ease of set-up and implementation. -Virtualization will help offset the time and monetary costs of using and implementing these new methodologies/ideologies. Essentially the issue boils down to how to abstract the lower level requirements of a system (assembly/C) into a simpler high level set of tools (API/block). A new set of tools needs to be developed that can be used to build bigger and greater things out of a series of smaller more manage/customizable blocks. Flexibility of low level elements will help minimize conflict when attempting to design higher level blocks. As with any new system, there is a need for `tunable designs' that can be centered around specific aspects (e.g. power/energy efficient systems to minimize ``power cost buildup'', or security/trust centric needs). Functions, in this tool set, should be kept simple (e.g. decide output, \textbf{but} not how the output manifests). The reason behind this is that the design can remain simplistic in its [design and] operation. Virtualization tools lend to both the ideas of abstraction (choosing the simple output) and standardization/documentation (know what the outputs are, but not needing to know exactly how they manifest; just that they will)~\cite{Alagar2007}. They are a much needed tool for exploring design spaces and bringing codesign of software and hardware elements. +The Common Criteria standard~\cite{CommonCriteria} provides a framework for the derivation of system requirements that is comprised of the following steps: definition of system goals and its concept of operation; identification of threats to the defined system; identification of assumptions regarding the system and its environment; identification of organizational policies external to the system; identification of security objectives for the system and its environment based on previous steps; and specification of requirements that will meet the objectives. -Hardware/Software codesign is crucial for bridging together the software and hardware aspects of a new system in an efficient and effective manner. There are different coding languages to handle different aspects (i.e. SW/HW) of virtualization. When dealing with the virtualization of software the aspects of timing and concurrency semantics still fall short. These problems come from a lack of resolution and control at the lowest levels of virtualization interaction. The overwhelming hardware issue is that hardware semantics are very specific and tough to simulate. There has been the development of hardware simulation languages, such as SystemC~\cite{Kreku2008}, but there has not been the development of tools to bridge the space between hardware and software simulation/virtualization. Codesign of software simulations of hardware allows for development of high level software abstraction to interact with low level hardware abstraction. The reasoning being the constant growth in complexity calls for simulation/virtualization of the design process. System-on-chip (SoC) technology will be already dominated by 100-1000 core multiprocessing on a chip by 2020~\cite{Teich2012}. Changes will affect the way companies design embedded software and new languages, and tool chains will need to emerge in order to cope with the enormous complexity. Low-cost embedded systems (daily-life devices) will undoubtably see development of concurrent software and exploitation of parallelism. In order to cope with the desire to include environment in the design of future cyber-physical systems, a system's heterogeneity will most definitely continue to grow as well in SoCs as in distributed systems of systems. A huge part of design time is already spent on the verification, either in a simulative manner or using formal techniques~\cite{Teich2012}. ``Indeed, market data indicate[s] that more than 80\% of system development efforts are now in software versus hardware. This implies that an effective platform has to offer a powerful design environment for software to cope with development cost.''~\cite{Vincentelli2002} Coverification will require an increasing proportion of the design time as systems become more complex. Progress at the electronic system level might diminish due to verification techniques that cannot cope with the modeling of errors and ways to retrieve and correct them, or, even better, prove that certain properties formulated as constraints during synthesis will hold in the implementation by construction. The verification process on one level of abstraction needs to prove that an implementation (the structural view) indeed satisfies the specification (behavioral view)~\cite{Teich2012}. The uncertainty of environment and communication partners of complex interacting cyber-physical systems, runtime adaptivity will be a must for guaranteeing the efficiency of a system. Due to the availability of reconfigurable hardware and multicore processing, which will also take a more important role in the tool chain for system simulation and evaluation, online codesign techniques will work towards a standard as time moves forward. As with any design problem, if the functional aspects are indistinguishable from the implementation aspects, then it is very difficult to evolve the design over multiple hardware generations~\cite{Vincentelli2007}. It should be noted that there are tools that already exists for low, or high, system simulation. New territory is the combination of these tools to form a `hardware-to-software' virtualization tool that is both efficient and effective. -Metropolis is one tool that is based in part on the concept of platform-based design. Metropolis can analyze statically and dynamically functional designs with models that have no notion of physical quantities and mapped designs where the association of functionality to architectural services allows for evaluation of characteristics (e.g.~latency, throughput, power, and energy) of an implementation of a particular functionality with a particular platform instance~\cite{Vincentelli2007, Metropolis}. Metropolis is but one manifestation of platform-based design as a tool. PBD has been used for the platform-exploration of synthetic biological systems as seen in the work done by Densmore et.~al.~to create a strong and flexible tool~\cite{Densmore2009}. Other applications, of platform-based design, include design on a JPEG encoder, imaging, and use for distributed automotive design~\cite{Vincentelli2007, Teich2012, Keutzer2000, Lin2013, Gerstlauer2009, Gronbaek2008, Pimentel2006, Schaumont2005, Sedcole2006, Benveniste2012, Pinto2006, Bonivento2006, Pellizzoni2009, Kreku2008, Gamatie2011, Gruttner2013, Densmore2009} +Security design, development, verification, and evaluation is still a +relatively new and unexplored space. Because of this there is a +constant growth and evolution of security protocols and standards, +which requires a thorough exploration of the security design space. +It is the belief of this paper that the best model for focusing effort +and development towards is a platform-based design for security +development. The levels of abstraction aid in virtualization design, +the overarching concept of mapping platforms to instances (and +vice-versa) aids in early development stages, and the need for +rigorous documentation and meticulous following of standards are +concepts that not only stem from platform-based design but greatly +lend to the needs of security design and development. + +The intent of this paper is to show the reader +how the needs and benefits of platform-based design and security +development are closely aligned along the same concepts of rigorous +design, virtualization/automation of tools, and the needs for +meticulous documentation. The reasoning for using platform-based +design is that PBD functions as a form of `architectural base' upon +which security development can be mapped over. PBD can be used for +development of hardware elements, security centric SoCs, or even as a +set of abstract blocks that can be used to design higher level +applications (e.g. virtualization development of larger security +systems). + +What is gained, and lost, when shifting the method of design to a more platform-based design/security centric model? After all development of these tools implies that there is a need to change the focus and methods of design/development~\cite{Vincentelli2007}. The advantage to this method is ease of changes in development and searching of design spaces during early design and development of those systems. For PBD this means that a company/manufacturer is able to lower the cost and time spent in the `early development phase'; the time spent when first drawing up system designs prior to initial prototyping. While the advantage of overcoming multiple prototyping re-designs with a series of virtualization tools will cut down on development time, it can not be forgotten that rigorous standards and documentation need to be developed for this sort of advantage. Once this hurdle is passed then the advantages of such a system can be reaped. For security this means that components can be standardized from a local, network, and distributed standpoint. These different scopes of security will be tackled in Section~\ref{Security}. The main point here is that with standardization comes a form of `contract' that all parties can expect will be followed, thus allowing for different manufacturers/developers to create different aspects of a system, while knowing that these different elements will come together in the final product; much like the advantages of platform-based design. The disadvantage of using a new method is the loss in time for developing the standards, rigors, and documentation that would be used as new guide lines for the industry. These sorts of costs have been felt while developing any of the current standards of security; most definitely with the development of new algorithms for encryption. Further more, security vulnerabilities are found mainly due to incorrect implementations or due to incorrect assumptions about functionality; both of which are more easily avoidable with the use of rigorous planning and design. The other disadvantage is in the adoptability of these new methods. Ideally all manufacturers would adopt a new commodity; rather than components, `design combinations' would be the new commodity that manufacturers would peddle (e.g. instead of saying ``my components are the best'' the dialog moves towards ``My ability to combine these components is the best''). -The manufacturer's standpoint boils down to: the design should minimize mask-making costs but be flexible enough to warrant its use for a set of applications so that production volume will be high over an extended chip lifetime~\cite{Vincentelli2007}. Companies try to drive adoptability by means of creating something that users want to interact with, but not be complicated to learn (e.g. abstraction of technology for ease of use). Accounting for ease of use can lead to vulnerabilities in security or the development of new tools. Automation is desirable from a `business' standpoint since customers/users enjoy the `set it and forget it' mentality for technology (especially new technologies). Companies/Manufacturers need positive customer/user experiences, otherwise there is no desire to extend any supplied functionality to any other devices/needs on the part of the consumer. Adoptability tends to come from user `word of mouth' praising the functionality and ease of use of new technology/methods/devices and how the developing party reacts to system failures or user-need (branching from complaints and support requests). This is exactly why industry would love for platform-based design to become a new standard; gain high adoptability. The monetary costs saved would be enough to warrant adoption of the technology, \textbf{but} the monetary costs of developing such a system (e.g. design, evaluation, validation) does not carry the same attraction (simply because companies are selfish and want to \textbf{make} money). Security concerns center around how to define trust/trustworthiness, determining the functions and behaviors of security components, and the principles, policies, and mechanisms that are rigorously documented to standardize behavior. Also designed by industry to clearer standards, giving better security and ease of set-up and implementation. It is the aim of this paper to first outline platform-based design (Section~\ref{Platform-based design}) and its advantages and disadvantages, then move towards examining a model for designing security (Section~\ref{Security}) and lastly illustrate to the reader why platform-based design should be the basis for security design and development. +It is the aim of this paper to first outline platform-based design (Section~\ref{Platform-based design}) and its advantages and disadvantages, then move towards examining a model for designing security (Section~\ref{Security}) and lastly illustrate to the reader why platform-based design should be the basis for security design and development. \section{Platform-based design} \label{Platform-based design} + Platform-based design is a methodology where function spaces are mapped to platform spaces (e.g. architectural space) or vice-versa. Generally the mapping of a function instance towards a platform instance leads to a larger subset of platform instances branching from a single function instance; as can be seen in Figure~\ref{fig:RecursivePBD}. Of course this relationship works in the reverse manner as well; a single platform instance maps to a subset of function instances. Although one can think of the mapping process as happening in one direction, or the other, platform-based design is a ``meet-in-the-middle'' approach. A designer/developer works towards merging two platforms (e.g. software functionality and hardware architectures) where the resulting `middle-ground', or mapping, can be thought of as its own `mapping instance'; merging an abstract higher level function with an abstracted lower level platform. More on the recursive nature of PBD will be explored later in this section, for now we will examine the benefits of using such a methodology. The monetary considerations of platform-based design include system re-use, flexibility of elements, and re-programmability. As system complexity grows the costs of producing chips becomes more expensive, thus pushing for the systems that are produced to be ``multi-capable'' (e.g. re-use value)~\cite{Keutzer2000}. The greatest challenge in the hardware design space is placement and arrangement of components based on an array of differing variables. Design of architecture platforms is a result of trade-off in complex space, and worse yet some aspects directly compete/contradict each other~\cite{Vincentelli2002, Gruttner2013}. The size of the application space that can be supported by the architectures belonging to the architecture platform represents the flexibility of the platform. The size of the architecture space that satisfies the constraints embodied in the design architecture is what providers/manufacturers have in designing their hardware instances. Even at this level of abstraction these two aspects of hardware design can compete with each other. Ex: A manufacturer has pre-determined sizes that constrain their development space a priori. Further more, aspects such as design space constraints and heat distribution are a well known source of trouble when designing embedded systems. -As with any new technology/design methodology/concept there are expensive initial costs for development, evaluation, and validation until more rigorous documentation can be made. As with any early development, it pays to think everything through first before diving into prototyping (want roughly 90/10 split between planning and action; same as with software development). This can be aided through the development of virtualization tools; which unfortunately come with their own development, evaluation, and validation costs. Harping on this, two main concerns for effective platform-based design development and adoptation are software development and a set of tools that insulate the details of architecture from application software (e.g. virtualization). The more abstract the programmer's model, the richer is the set of platform instances, but the more difficult is to choose the ``optimal'' architecture platform instance and map automatically into it~\cite{Vincentelli2002}. - In PBD, the partitioning of the design into hardware and software is not the essence of system design as many think, rather it is a consequence of decisions taken at a higher level of @@ -133,9 +157,7 @@ abstraction~\cite{Vincentelli2007}. For example, a lower level consideration may be heat dissipation concerns which manifests itself as size constraints at higher levels. The types of decisions that are made at these higher levels lend to the design traits that are -requirements at lower levels. These sort of complexities in cost of -design are exactly why abstraction/virtualization are -required/desired. Additional levels of abstraction (along with +requirements at lower levels. Additional levels of abstraction (along with virtualization tools for design space exploration) aid in simplifying the design process. The abstraction levels deal with critical decisions that are about the architecture of the system, e.g., @@ -150,18 +172,19 @@ certain scenarios these critical decisions can be centered around `safety-critical' elements, as can be seen in embedded systems deployed in the medical market (e.g. pacemakers); these `safety-critical' elements being responsible for the wellness and -health of its user. The library of functional and communication +health of its user. +\begin{quotation} +``The library of functional and communication components is the design space that we are allowed to explore at the -appropriate level of abstraction~\cite{Vincentelli2007}. There are -elements of recursive behavior that need to be tackled from a -virtualized tool standpoint. In a PBD refinement-based design +appropriate level of abstraction...In a PBD refinement-based design process, platforms should be defined to eliminate large loop -iterations for affordable designs~\cite{Vincentelli2007}. This +iterations for affordable designs.''~\cite{Vincentelli2007} +\end{quotation} +This refinement should restrict the design space via new forms of regularity and structure that surrender some design potential for lower cost and first-pass success. - \begin{figure*} \includegraphics[width=\textwidth,height=8cm]{./images/recursivePBD.png} \caption{Recursive PBD~\cite{Vincentelli2007}} @@ -196,38 +219,19 @@ Figure~\ref{fig:RecursivePBD}, each layer supports a design stage where the performance indexes that characterize the architectural components provide an opaque abstraction of lower layers that allows accurate performance estimations to be used to guide the mapping -process~\cite{Vincentelli2007}. Standardization, or at least some -abstraction rule documentation, is what will greatly lend to -minimizing the costs of using platform-based design. It is here that -one clearly sees the recursive nature of this design methodology, and -hopefully, also is able to see the advantages of the wide adoptation -of platform-based design. This approach results in better reuse, -because it decouples independent aspects that would otherwise be tied together, -e.g., a given functional specification to low-level implementation -details, or to a specific communication paradigm, or to a scheduling -algorithm~\cite{Vincentelli2007}. Coupled with well developed -software virtualization tools, this would allow for better exploration -of initial design spaces but does come at a cost of a rigorous, -documented, standardization. +process~\cite{Vincentelli2007}. \begin{quotation} ``It is very important to define only as many aspects as needed at every level of abstraction, in the interest of flexibility and rapid design-space exploration.''~\cite{Vincentelli2007} \end{quotation} The issue of platform-based design is not so much an over-engineering of design/development, but rather a need to strike a balance between all aspects of design; much like what already happens in hardware and software design. -\section{Security} -\label{Security} +\section{Related Work} +\label{Related Work} -Security is always evolving with time and understanding as knowledge -of encryption and other security encapsulation techniques change over -time. There are considerations that are accounted from a software -standpoint: capabilities of the software, speed of the -algorithms/actions that take place, and how unique (level of -uniqueness) a given solution is. Similarly there are hardware -considerations as well: tolerance of the chip elements in use, their -capabilities, power distribution over the entire hardware design, -signal lag between different elements, and cross-talk caused by -communication channels. Different groups have tackled aspects of +Metropolis is one tool that is based in part on the concept of platform-based design. Metropolis can analyze statically and dynamically functional designs with models that have no notion of physical quantities and mapped designs where the association of functionality to architectural services allows for evaluation of characteristics (e.g.~latency, throughput, power, and energy) of an implementation of a particular functionality with a particular platform instance~\cite{Vincentelli2007, Metropolis}. Metropolis is but one manifestation of platform-based design as a tool. PBD has been used for the platform-exploration of synthetic biological systems as seen in the work done by Densmore et.~al.~to create a strong and flexible tool~\cite{Densmore2009}. Other applications, of platform-based design, include design on a JPEG encoder, imaging, and use for distributed automotive design~\cite{Vincentelli2007, Teich2012, Keutzer2000, Lin2013, Gerstlauer2009, Gronbaek2008, Pimentel2006, Schaumont2005, Sedcole2006, Benveniste2012, Pinto2006, Bonivento2006, Pellizzoni2009, Kreku2008, Gamatie2011, Gruttner2013, Densmore2009} + +Different groups have tackled aspects of these considerations. The Trusted Computing Group (TCG) created Trusted Platform Modules (TPM) which are able to validate their own functionality and if the TPMs have been tampered with. This is, in @@ -252,92 +256,80 @@ series of different HW and SW platforms for tackling different aspects of security. The unifying factor in all of them is determining what is or isn't trustworthy. -The definition of ``trustworthiness'' that is chosen to help color this perspective on security is as defined in the Benzel et.~al.~paper. -\begin{quotation} -``\textit{Trustworthy} (noun): the degree to which the security behavior of the component is demonstrably compliant with its stated functionality (\textit{e.g., trustworthy component}). \\ \textit{Trust}: (verb) the degree to which the user or a component depends on the trustworthiness of another component. For example, component A \textit{trusts} component B, or component B is \textit{trusted} by component A. Trust and trustworthiness are assumed to be measured on the same scale.''~\cite{Benzel2005} -\end{quotation} -Dependability is a measure of a system's availability, reliability, and its maintainability. Furthermore, Avizienis et.~al.~extends this to also encompass mechanisms designs to increase and maintain the dependability of a system~\cite{Avizienis2004}. For the purpose of this paper, the interpretation is that trustworthiness requires inherent dependability; i.e. a user should be able to trust that trustworthy components will dependably perform the desired actions and alert said user should an error/failure occur. Unfortunately the measurement of trust(worthiness) is measured using the same, abstract scale~\cite{Benzel2005}. Thus, in turn, there is a void for the design and development of an understandable and standardized scale of trust(worthiness). Which could then lead to a change of paradigm in the methods by which security policies, mechanisms, and principles are implemented and evolve. -\begin{quotation} -``In order to develop a component-based trustworthy system, the development process must be reuse-oriented, component-oriented, and must integrate formal languages and rigorous methods in all phases of system life-cycle.''~\cite{Mohammed2009} -\end{quotation} Component-Based Software Engineering (CBSE) is widely adopted in the software industry as the mainstream approach to software engineering~\cite{Mohammed2009, Mohammad2013}. CBSE is a reuse-based approach of defining, implementing and composing loosely coupled independent components into systems and emphasizes the separation of concerns in respect of the wide-ranging functionality available throughout a given software system. Thus it can be seen that the ideals being outlined in this paper are already in use, all that is needed is their re-application to a new design methodology. In a way one can see CBSE as a restricted-platform version of platform-based design. This furthers this paper's point, that the required elements for combining PBD and security are already in use for different purposes and simply need to be `re-purposed' for this new security centric platform-based design. -\begin{quotation} -``Most prevalent trust models only focus on assessing trustworthiness of systems at runtime, and do not provide necessary predictions of the trust of systems before they are built. This makes improving trustworthiness of the composed system to be costly and time-consuming. Therefore it is important to consider trust of the composed software system at the development time itself.''~\cite{Gamage} -\end{quotation} -\begin{figure*} - \includegraphics[width=\textwidth,height=10cm]{./images/SecurityDesignMap.png} - \caption{Security Design Map} - \label{fig:SecDesignMap} -\end{figure*} +Others are incorporating platform-based design in everything from image processing to implementing security across different domains~\cite{Lin2015}. People are seeing the use and effectiveness of this sort of design methodology and it is the belief of this paper that more focus should be placed on this topic. Platform-based design should be the basis for security design and development. + +\section{Proposed Approach} +\label{Proposed Approach} + +\subsection{Requirement Specifications} +\label{Requirement Specifications} + +\subsection{Component Definitions} +\label{Component Definitions} + +\subsection{Mapping} +\label{Mapping} As promised earlier, the paper will now examine the different scopes of security/trustworthiness: local, network, and distributed. Each of these scopes will be examined in terms of the considerations/challenges, principles, and policies that should be used to determine action/behavior of these different security elements and the system as a whole. The local scope encompasses a security element's own abilities, trustworthiness, and the dependencies of that element (e.g. least common mechanisms, reduced complexity, minimized sharing, and the conflict between this as least common mechanisms). The purpose of this section is to present the considerations, principles, and policies that govern the behavior and function of security elements/components at the local scope/level. First, this paper will reiterate the definitions stated in the Benzel et.~al.~paper. Failure is a condition in which, given a specifically documented input that conforms to specification, a component or system exhibits behavior that deviates from its specified behavior. A module/database is seen as a unit of computation that encapsulates a database and provides an interface for the initialization, modification, and retrieval of information from the database. The database may be either implicit, e.g. an algorithm, or explicit. Lastly, a process(es) is a program(s) in execution. To further define the actions/behavior of a given component in the local scope, this paper moves to outlining the principles that define component behavior at the local device level. \\ The first principle is that of `Least Common Mechanisms'. If multiple components in the system require the same function of a mechanism, then there should be a common mechanism that can be used by all of them; thus various components do not have separate implementations of the same function but rather the function is created once (e.g. device drivers, libraries, OS resource managers). The benefit of this being to minimize complexity of the system by avoiding unnecessary duplicate mechanisms. Furthermore, modifications to a common function can be performed (only) once and impact of the proposed modifications allows for these alterations to be more easily understood in advance. The simpler a system is, the fewer vulnerabilities it will have; the principle of `Reduced Complexity'. From a security perspective, the benefit to this simplicity is that is is easier to understand whether an intended security policy has been captured in system design. At a security model level, it can be easier to determine whether the initial system state is secure and whether subsequent state changes preserve the system security. Given current state of the art of systems, the conservative assumption is that every complex system will contain vulnerabilities and it will be impossible to eliminate all of them, even in the most highly trustworthy of systems. At the lowest level of secure data, no computer resource should be shared between components or subjects (e.g. processes, functions, etc.) unless it is necessary to do so. This is the concept behind `Minimized Sharing'. To protect user-domain information from active entities, no information should be shared unless that sharing has been explicitly requested and granted. Encapsulation is a design discipline or compiler feature for ensuring there are no extraneous execution paths for accessing private subsets of memory/data. Minimized sharing influenced by common mechanisms can lead to designs being reentrant/virtualized so that each component depending mechanism will have its own virtual private data space; partition resources into discrete, private subsets for each dependent component. This in turn can be seen as a virtualization of hardware, a concept already illustrated earlier with the discussion of platform-based design. A further consideration of minimized sharing is to avoid covert timing channels in which the processor is one of the shared components. In other words, the scheduling algorithms must ensure that each depending component is allocated a fixed amount of time to access/interact with a given shared space/memory. Development of a technique for controlled sharing requires execution durations of shared mechanisms (or mechanisms and data structures that determine duration) to be explicitly stated in design specification documentation so that effects of sharing can be verified and evaluated. Once again illustrating the need for rigorous standards to be clearly documented. As the reader has undoubtably seen, there are conflicts within just these simple concepts and principles for the local scope of trustworthiness of a security component. The principles of least common mechanism and minimal sharing directly oppose each other, while still being desirable aspects of the same system. Minimizing system complexity through the use of common mechanisms does lower hardware space requirements for an architectural platform, but at the same time does also maximize the amount of sharing occurring within the security component. A designer can use one of the development techniques already mentioned to help balance these two principles, but in the end the true design question is: what information is safe to share and what information must be protected under lock and key and how to then communicate that information with high security and fidelity. -How does a designer decide upon how elements communicate? How does one define a security component in terms of a network; how is communication done, what concerns/challenges are there? Rigorous definitions of input/output nets for components and the methods for communication (buses, encryption, multiplexing) must be documented and distributed as the standard methods for communicating. Service, defined in the scope of a network, refers to processing or protection provided by a component to users or other components. E.g., communication service (TCP/IP), security service (encryption, firewall). These services represent the communication that occurs between different elements in a secure system. Each service should be documented to rigorously define the input, and output, nets for each component and the method used for communication (buses, encryption, multiplexing). Since these services, and their actions, are central to the operation/behavior of a secure system, there are a series of considerations, principles, and policies that a system architect/designer must acknowledge when deciding on the layout of security components within a network. Principle of Secure Communication Channels states that when composing a system where there is a threat to communication between components, each communications channel must be trustworthy to a level commensurate with the security dependencies it supports. In other words, how much is the component trusted to perform its security functions by other components. Several techniques can be used to mitigate threats to the communication channels in use. Use of a channel may be restricted by protecting access to it with suitable access control mechanism (e.g. reference monitor located beneath or within each component). End-to-end communications technologies (e.g. encryption) may be used to eliminate security threats in the communication channel's physical environment. Once again, the intrinsic characteristics assumed for and provided by the channel must be specified with such documentation that it is possible for system designers to understand the nature of the channel as initially constructed and to assess the impact of any subsequent changes to the system. Without this rigorous documentation and standardization, the trustworthiness of the communications between security elements can not be assured. +How does a designer decide upon how elements communicate? How does one define a security component in terms of a network; how is communication done, what concerns/challenges are there? Rigorous definitions of input/output nets for components and the methods for communication (buses, encryption, multiplexing) must be documented and distributed as the standard methods for communicating. Service, defined in the scope of a network, refers to processing or protection provided by a component to users or other components. E.g., communication service (TCP/IP), security service (encryption, firewall). These services represent the communication that occurs between different elements in a secure system. Each service should be documented to rigorously define the input, and output, nets for each component and the method used for communication (buses, encryption, multiplexing). Since these services, and their actions, are central to the operation/behavior of a secure system, there are a series of considerations, principles, and policies that a system architect/designer must acknowledge when deciding on the layout of security components within a network. Principle of Secure Communication Channels states that when composing a system where there is a threat to communication between components, each communications channel must be trustworthy to a level commensurate with the security dependencies it supports. In other words, how much is the component trusted to perform its security functions by other components. Several techniques can be used to mitigate threats to the communication channels in use. Use of a channel may be restricted by protecting access to it with suitable access control mechanism (e.g. reference monitor located beneath or within each component). End-to-end communications technologies (e.g. encryption) may be used to eliminate security threats in the communication channel's physical environment. `Self-Reliant Trustworthiness' means that systems should minimize their reliance on external components for system trustworthiness. A corollary to this relates to the ability of a component to operate in isolation and then resynchronize with other components when it is rejoined with them. In other words, if a system were required to maintain a connection with another external entity in order to maintain its trustworthiness, then that very system would be vulnerable to drop in connection/communication channels. Thus from a network standpoint a system should be trustworthy by default with the external connection being used as a supplement to the component's function. The principle of `Partially Ordered Dependencies' states that calling, synchronization and other dependencies in the system should be partially ordered; e.g. for certain pairs of elements in a set, one of the elements precedes the other. A fundamental tool in system design is `layering'. A system can be organized into functionally related modules of components, where layers are linearly ordered with respect to inter-later dependencies. Inherent problems of circularity can be more easily managed if circular dependencies are constrained to occur within layers. In other words, if a shared mechanism also makes calls to or otherwise depends on services of calling mechanisms, creating a circular dependency, performance and liveness problems can result. Partially ordered dependencies and system layering contribute significantly to the simplicity and coherency of system design. A system should be built to facilitate maintenance of its security properties in face of changes to its interface, functionality structure or configuration; in other words allow for `secure system evolution'. Changes may include upgrades to system, maintenance activities. The benefits of designing a system with secure system evolution are reduced lifecycles costs for the vendor, reduced costs of ownership for the user, and improved system security. Most systems can anticipate maintenance, upgrades, and changes to configuration. If a component is constructed using the precepts of modularity and information hiding then it becomes easier to replace components without disrupting the rest of a system. A system designer needs to take into account the impact of dynamic reconfiguration on the secure state of the system. Just as it is easier to build trustworthiness into a system from the outset (and for highly trustworthy systems, impossible to achieve without doing so), it is easier to plan for change than to be surprised by it~\cite{Benzel2005}. -A system should be able to handle a `secure failure'. Failure in system function or mechanism should not lead to violation of any security policy. Ideally the system should be capable of detecting failure at any stage of operation (initialization, normal operation, shutdown, maintenance, error detection and recovery) and take appropriate steps to ensure security policies are not violated; as is done with most machines now a days anyway. Touching on the earlier idea of secure system evolution, the reconfiguration function of the system should be designed to ensure continuous enforcement of security policies during various phases of reconfiguration. Once a failed security function is detected, the system may reconfigure itself to circumvent the failed component, while maintaining security, and still provide all or part of the functionality of the original system, or completely shut itself down to prevent any (further) violation in security policies. Another method for achieving this is to rollback to a secure state (which may be the initial state) and then either shutdown or replace the service/component that failed with an orthogonal or replicated mechanisms. Failure of a component may or may not be detectable to components using it; thus one must design a method for `dealing with failure'. For this reason components should fail in a state that denies rather than grants access. A designer could employ multiple protection mechanisms (whose features can be significantly different) to reduce the possibility of attack repetition, but it should be noted that redundancy techniques may increase resource usage and adversely affect the system performance. Instead the atomicity properties of a service/component should be well documented and characterized so that the component availing itself of service can detect and handle interruption event appropriately; similar to the `self-analysis' function that TPMs have. A well designed reference monitor could fill most of these roles, though, it would require that the reference monitor can `self-analyze' itself for trustworthiness. While even this would not be a perfect solution, it does help limit total failure to the reference monitor instead of some arbitrary security component. +A system should be able to handle a `secure failure'. Failure in system function or mechanism should not lead to violation of any security policy. Ideally the system should be capable of detecting failure at any stage of operation (initialization, normal operation, shutdown, maintenance, error detection and recovery) and take appropriate steps to ensure security policies are not violated; as is done with most machines now a days anyway. Touching on the earlier idea of secure system evolution, the reconfiguration function of the system should be designed to ensure continuous enforcement of security policies during various phases of reconfiguration. -Having tackled the network communication considerations for modeling a secure and trustworthy component, this paper moves toward examining these security element behaviors and functions with respect to their existence within a larger distributed system. Trust, in the scope of a distributed system, shifts to define the degree to which the user or a component depends on the trustworthiness of another component. The first concept that will be tackled is that of `Hierarchical Trust for Components'. Security dependencies in a system will form a partial ordering if they preserve the principle of trusted components. This is essential to eliminate circular dependencies with regard to trustworthiness. Trust chains have various manifestations but this should not prohibit the use of overly trustworthy components. Taking a deeper dive into `hierarchical protections', a component need not be protected from more trustworthy components. In the most degenerate case of most trusted component, the component must protect itself from all other components. One should note that a trusted computer system need not protect itself from an equally trustworthy user. The main challenge here is that there needs to be a clear and documented way by which one can determine trustworthiness and protection for a system, along with outlining the hierarchy of trust that is inherent to the system. This is the same challenge that occurs at all levels and requires rigorous documentation to alleviate the constraint. Hierarchical protections is the precept that regulates the following concept of `secure distributed composition'. Composition of distributed components that enforce the same security policy should result in a system that enforces that policy at least as well as individual components do. If components are composed into a distributed system that supports the same policy, and information contained in objects is transmitted between components, then the transmitted information must be at least as well protected in the receiving component as it was in the sending component. This is similar behavior to how SSL/TLS are used in current day implementations; data may be secure in transit, but if the end points are not secure then the data is not secure either. To ensure correct system-wide level of confidence of correct policy enforcement, the security architecture of the distributed composite system must be thoroughly analyzed. Actions that are security-relevant must be traceable to the entity on whose behalf the action is being taken; there must be `accountability and traceability'. This requires the designer to put into place a trustworthy infrastructure that can record details about actions that affect system security (e.g., audit subsystem). This system must not only be able to uniquely identify the entity on whose behalf the action is being carried out, but also record the relevant sequence of actions that are carried out. An accountability policy ought to require the audit trail itself to be protected from unauthorized access and modifications. Associating actions with system entities, and ultimately with users, and making the audit trail secure against unauthorized access and modifications provide nonrepudiation, as once some action is recorded, it is not possible to change the audit trail. Any designer should note that if a violation occurs, analysis of the audit log may provide additional information that may be helpful in determining the path or component that allowed the violation of the security policy. Just as this audit trail would be invaluable to a debugging developer, an attacker could also use this information to illuminate the actions/behavior of the system; therefore this data absolutely must remain protected. +Actions that are security-relevant must be traceable to the entity on whose behalf the action is being taken; there must be `accountability and traceability'. This requires the designer to put into place a trustworthy infrastructure that can record details about actions that affect system security (e.g., audit subsystem). This system must not only be able to uniquely identify the entity on whose behalf the action is being carried out, but also record the relevant sequence of actions that are carried out. An accountability policy ought to require the audit trail itself to be protected from unauthorized access and modifications. Associating actions with system entities, and ultimately with users, and making the audit trail secure against unauthorized access and modifications provide nonrepudiation, as once some action is recorded, it is not possible to change the audit trail. Any designer should note that if a violation occurs, analysis of the audit log may provide additional information that may be helpful in determining the path or component that allowed the violation of the security policy. Just as this audit trail would be invaluable to a debugging developer, an attacker could also use this information to illuminate the actions/behavior of the system; therefore this data absolutely must remain protected. -Information protection, required by a security policy (e.g., access control to user-domain objects) or for system self-protection (e.g., maintaining integrity of kernel code and data), must be protected to a level of continuity consistent with the security policy and the security architecture assumptions; thus providing `continuous protection on information'. Simply stated, no guarantees about information integrity, confidentiality or privacy can be made if data is left unprotected while under control of the system (i.e., during creation, storages, processing or communication of information and during system initialization, execution, failure, interruption, and shutdown); one cannot claim to have a secure system without remaining secure for all aspects of said system. For maintaining a trustworthy system, and network of distributed trustworthy components, a designer should not only prepare for expected inputs but also for possible invalid requests or malicious mutations that could occur in the future. Invalid requests should not result in a system state in which the system cannot properly enforce the security policy. The earlier mentioned concept of secure failure applies in that a roll back mechanism can return the system to a secure state or at least fail the component in a safe and secure manner that maintains the required level of trustworthiness (does not lower the overall trustworthiness of the entire distributed system). Furthermore, a designer can use the precepts of a reference monitor to provide continuous enforcement of a security policy, noting that every request must be validated, and the reference monitor must protect itself. Ideally the reference monitor component would be ``perfect'' in the sense of being absolutely trustworthy and not requiring an upgrade/modification path (thus limiting this element's chance of becoming compromised). Any designer must ensure protection of the system by choosing interface parameters so that security critical values are provided by more trustworthy components. To eliminate time-of-check-to-time-of-use vulnerabilities the system's security-relevant operations should appear atomic. It could also be desirable to allow system security policies to be ``modifiable'' at runtime; in the case of needing to adjust to catastrophic external events. This raises the complexity of the system, but does allow for flexibility in the face of failure. Any changes to security policies must not only be traceable but also verifiable; it must be possible to verify that changes do not violate security policies. This could be handled by a central reference monitor. Following this thread of thinking, a system architect/designer should understand the consequences of allowing modifiable policies within the system. Depending on the type of access control and actions that are allowed and controlled by policies, certain configuration changes may lead to inconsistent states of discontinuous protection due to the complex and undecidable nature of the problem of allowing runtime changes to the security policies of the system. In other words, even modifications/updates need to be planned and documented rigorously for the purpose of maintaining a secure and trustworthy system. System modification procedures must maintain system security with respect to goals, objectives, and requirements of owners; allowing for `secure system modification'. Without proper planning and documentation, upgrades and modifications to systems can transform a secure system into an insecure one. These are similar concepts to `secure system evolution' at the network scope of these security components. +\section{Model Review} +\label{Model review} -When automating the development of security systems there are three key elements of the system that need to be examined/accounted for in the virtualization stage: security mechanisms, security principles, and security policies. For the purpose of reiteration, security mechanisms are the system artifacts that are used to enforce system security policies. Security principles are the guidelines or rules that when followed during system design will aid in making the system secure. Organizational security policies are ``the set of laws, rules, and practices that regulate how an organization manages, protects, and distributes sensitive information.''~\cite{Benzel2005} System Security Policies are rules that the information system enforces relative to the resources under its control to reflect the organizational security policy. Each of these aspects plays its part in determining the behavior and function of the overall security system. The security principles set the groundwork for how the system should behave and interact based on the expected user interactions. The security policies (both organizational and system) govern the rules and practices that regulate how the system, and its resources, is managed, how the information is protected, and how the system controls and distributes sensitive information. The security mechanisms are the implementations on these previous two aspects by being the system artifacts that are used to enforce the system security policies. Together these different facets shape and mold the desired higher level abstracted behavior and function that the system has been designed and developed for. Security principles may account for the majority of restrictions and considerations for a given system, but are by no means the most influential or important aspect. The security policies developed out of the principles constrain the behavior, functions, and methods of communication between security elements. The mechanisms developed for implementing these rules and regulations must be designed in such a manner to ensure the system's fidelity towards trustworthy actions while also being responsible for how the system will react to unexpected input and failure. +As with any new technology/design methodology/concept there are expensive initial costs for development, evaluation, and validation until more rigorous documentation can be made. As with any early development, it pays to think everything through first before diving into prototyping (want roughly 90/10 split between planning and action; same as with software development). This can be aided through the development of virtualization tools; which unfortunately come with their own development, evaluation, and validation costs. Harping on this, two main concerns for effective platform-based design development and adoptation are software development and a set of tools that insulate the details of architecture from application software (e.g. virtualization). The more abstract the programmer's model, the richer is the set of platform instances, but the more difficult is to choose the ``optimal'' architecture platform instance and map automatically into it~\cite{Vincentelli2002}. -In the same manner that these various security aspects (e.g. mechanisms, principles, policies) must be considered during development automation, the software and hardware aspects must also come under consideration based on the desired behavior/functionality of the system under design. One could have security elements that attempt to optimize themselves to the system they are in based on a few pivot points (power, time, efficiency, level of randomness). Another option for the automated tool could trade out specific security components as an easier way to increase security without requiring re-design/re-construction of the underlying element (e.g. modularity). There is always the requirement that the overall trustworthiness of a new system must meet the standards of the security policies that `rule' the system. For these reasons a user would desire rigorous documentation that would lay out the requirements of each component, so that in the case of trying to replace faulty or damaged components there would be no loss to the overall trustworthiness of the system; while also not introducing any vulnerabilities due to the inclusion of new system components. +Standardization, or at least some +abstraction rule documentation, is what will greatly lend to +minimizing the costs of using platform-based design. It is here that +one clearly sees the recursive nature of this design methodology, and +hopefully, also is able to see the advantages of the wide adoptation +of platform-based design. This approach results in better reuse, +because it decouples independent aspects that would otherwise be tied together, +e.g., a given functional specification to low-level implementation +details, or to a specific communication paradigm, or to a scheduling +algorithm~\cite{Vincentelli2007}. Coupled with well developed +software virtualization tools, this would allow for better exploration +of initial design spaces but does come at a cost of a rigorous, +documented, standardization. -Virtualization should be used for exploring the design space; it is hoped that it is obvious as to why. Not only is the cost of prototyping incredibly expensive, but redesign is equally costly. Virtualization aids by removing the need for physical prototyping (less monetary costs) and allows for more rapid exploration of the full design space. While the design time for such powerful tools will be expensive (both in monetary and temporal costs), the rewards of developing, validating, and evaluating this virtualization tool will offset the early design phase costs of automated security component design. +\begin{quotation} +``Most prevalent trust models only focus on assessing trustworthiness of systems at runtime, and do not provide necessary predictions of the trust of systems before they are built. This makes improving trustworthiness of the composed system to be costly and time-consuming. Therefore it is important to consider trust of the composed software system at the development time itself.''~\cite{Gamage} +\end{quotation} -At this point, it is the hope of the author that the reader can see -how the needs and benefits of platform-based design and security -development are closely aligned along the same concepts of rigorous -design, virtualization/automation of tools, and the needs for -meticulous documentation. The reasoning for using platform-based -design is that PBD functions as a form of `architectural base' upon -which security development can be mapped over. PBD can be used for -development of hardware elements, security centric SoCs, or even as a -set of abstract blocks that can be used to design higher level -applications (e.g. virtualization development of larger security -systems). But as with the development of any tool, and more so when -expecting said tools to be more publicly used, there is a deep need -for meticulous documentation and rigorous use/distribution of -standards. Without this, there is no guarantee that anyone will -benefit from use of this new model. Much like with security innovation -and implementation, without proper outlining of behavior and function -there is greater possibility for erroneous use thus leading to greater -vulnerability of the overall system. +Once again, the intrinsic characteristics assumed for and provided by the channel must be specified with such documentation that it is possible for system designers to understand the nature of the channel as initially constructed and to assess the impact of any subsequent changes to the system. Without this rigorous documentation and standardization, the trustworthiness of the communications between security elements can not be assured. + +Once a failed security function is detected, the system may reconfigure itself to circumvent the failed component, while maintaining security, and still provide all or part of the functionality of the original system, or completely shut itself down to prevent any (further) violation in security policies. Another method for achieving this is to rollback to a secure state (which may be the initial state) and then either shutdown or replace the service/component that failed with an orthogonal or replicated mechanisms. Failure of a component may or may not be detectable to components using it; thus one must design a method for `dealing with failure'. For this reason components should fail in a state that denies rather than grants access. A designer could employ multiple protection mechanisms (whose features can be significantly different) to reduce the possibility of attack repetition, but it should be noted that redundancy techniques may increase resource usage and adversely affect the system performance. Instead the atomicity properties of a service/component should be well documented and characterized so that the component availing itself of service can detect and handle interruption event appropriately; similar to the `self-analysis' function that TPMs have. A well designed reference monitor could fill most of these roles, though, it would require that the reference monitor can `self-analyze' itself for trustworthiness. While even this would not be a perfect solution, it does help limit total failure to the reference monitor instead of some arbitrary security component. + +The main challenge here is that there needs to be a clear and documented way by which one can determine trustworthiness and protection for a system, along with outlining the hierarchy of trust that is inherent to the system. + +Having tackled the network communication considerations for modeling a secure and trustworthy component, this paper moves toward examining these security element behaviors and functions with respect to their existence within a larger distributed system. Trust, in the scope of a distributed system, shifts to define the degree to which the user or a component depends on the trustworthiness of another component. + +Furthermore, a designer can use the precepts of a reference monitor to provide continuous enforcement of a security policy, noting that every request must be validated, and the reference monitor must protect itself. Ideally the reference monitor component would be ``perfect'' in the sense of being absolutely trustworthy and not requiring an upgrade/modification path (thus limiting this element's chance of becoming compromised). + +When automating the development of security systems there are three key elements of the system that need to be examined/accounted for in the virtualization stage: security mechanisms, security principles, and security policies. For the purpose of reiteration, security mechanisms are the system artifacts that are used to enforce system security policies. Security principles are the guidelines or rules that when followed during system design will aid in making the system secure. Organizational security policies are ``the set of laws, rules, and practices that regulate how an organization manages, protects, and distributes sensitive information.''~\cite{Benzel2005} System Security Policies are rules that the information system enforces relative to the resources under its control to reflect the organizational security policy. Each of these aspects plays its part in determining the behavior and function of the overall security system. The security principles set the groundwork for how the system should behave and interact based on the expected user interactions. The security policies (both organizational and system) govern the rules and practices that regulate how the system, and its resources, is managed, how the information is protected, and how the system controls and distributes sensitive information. The security mechanisms are the implementations on these previous two aspects by being the system artifacts that are used to enforce the system security policies. Together these different facets shape and mold the desired higher level abstracted behavior and function that the system has been designed and developed for. Security principles may account for the majority of restrictions and considerations for a given system, but are by no means the most influential or important aspect. The security policies developed out of the principles constrain the behavior, functions, and methods of communication between security elements. The mechanisms developed for implementing these rules and regulations must be designed in such a manner to ensure the system's fidelity towards trustworthy actions while also being responsible for how the system will react to unexpected input and failure. \begin{quotation} ``Despite occasional cryptology-related attacks, most security vulnerabilities result from poor software design and implementation, such as the ever-lasting buffer overrun bugs. Thus approaches to designing secure software, not just from a traditional cryptology viewpoint, but with a software engineering perspective, are needed to counter the current unsatisfactory situation.''~\cite{Ren2006} \end{quotation} -Focusing efforts on rigorous design documentation allows security concerns to be recognized early in the development process and these aspects can be given sufficient attention in subsequent stages of the device's life cycle. ``By controlling system security during architectural refinement, we can decrease software production costs and speed up the time to market~\cite{ZhouFoss2006}.'' This approach also enhances the role of the software architects by requiring that their decisions be not only for functional decomposition, but also for non-functional requirements fulfillment. Hence, virtualization/automation of security development is not only effective but also enticing. -As with any new system there should be `sufficient user documentation'. Users should be provided with adequate documentation and other information such that they contribute to, rather than detract from, a system's security. The availability of documentation and training can help to ensure a knowledgeable cadre of users, developers, and administrators. If any level of user does not know how to use a component properly, does not know the standard security procedures, or does not know the proper behavior to prevent social engineering attacks, then said user can easily introduce new system vulnerabilities. Complexity must be minimized. This point was touched upon earlier, but is just as valid from a documentation standpoint. User documentation should also be kept as simple as possible to ensure adoptability by a larger group of new users. Having complex user documentation is problematic because if users are unable to understand how to implement/use a system they will refuse to use it, thus leading to the death of said system. If on-line documentation is inadequate, then it should be obvious that written documentation and appropriate training are needed. -Just as there is a requirement for adequate documentation there is also the need for `procedural rigor'. The rigor of the system's life cycle process should be commensurate with its intended trustworthiness. Procedural rigor defines the depth and detail of a system's lifecycle procedures. These rigors contribute to the assurance that a system is correct and free of unintended functionality in two ways. Firstly, imposing a set of checks and balances on the life cycle process such that the introduction of unspecified functionality is thwarted. Secondly, applying rigorous procedures to specifications and other design documents contribute to the ability of users to understand a system as it has been built, rather than being misled by inaccurate system representation, thus helping ensure that security and functional objectives of the system have been met. Highly rigorous development procedures supporting high trustworthiness are costly to follow. However, the lowered cost of ownership resulting from fewer flaws and security breaches during the product maintenance phase can help to mitigate the higher initial development costs associated with a rigorous life cycle process. -The reasoning for having procedural rigor and sufficient user documentation is to allow for `repeatable, documented procedures'. Techniques used to construct a component should permit the same component to be completely and correctly reconstructed at a later time. Repeatable and documented procedures support the creation of components that are identical to a component created earlier that may be in widespread use. The Common Criteria standard~\cite{CommonCriteria} provides a framework for the derivation of system requirements that is comprised of the following steps: definition of system goals and its concept of operation; identification of threats to the defined system; identification of assumptions regarding the system and its environment; identification of organizational policies external to the system; identification of security objectives for the system and its environment based on previous steps; and specification of requirements that will meet the objectives. -The last, and by no means least, important topic that must be tackled in this section is the question of what exactly are the research challenges. There has been a lot of information, ideas, and principles presented over the course of this writing along with parallels to existing research and methodologies that can be almost directly applied to the concept of mapping security development to platform-based design. The primary cost of developing security, and running a secure system, is time. There are the monetary and hardware costs of security development and implementation, but even those aspects all have a time cost coupled with them. Time, while being the most expensive part of security design is also the aspect that can be tackled and minimized with rigorous planning and documentation. Taking into account that even the development of documentation and standards also has its own time cost associated with it, this early phase development can also diminish the time-cost impact for later steps in the system's development/implementation life-cycle. Security must be paramount in design from the very beginning of any design and development cycle. +Complexity must be minimized. This point was touched upon earlier, but is just as valid from a documentation standpoint. User documentation should also be kept as simple as possible to ensure adoptability by a larger group of new users. Having complex user documentation is problematic because if users are unable to understand how to implement/use a system they will refuse to use it, thus leading to the death of said system. If on-line documentation is inadequate, then it should be obvious that written documentation and appropriate training are needed. While this paper proposes one model for security design and development this, by no means, is the only model for implementing security in a system. ``Defense in depth''~\cite{DoD2002} is a model in which security is derived from the application of multiple mechanisms; to create a series of barriers against attack by an adversary. Unfortunately, for the model, without any sound security architecture and supporting theory, the non-constructive basis of this approach equivocates this model to a temporary patch; putting barriers in places does not equate to levels of trustworthiness. The ``Balanced assurance''~\cite{Lunt1988} model centers around a hierarchy of security policies, where different policies are allocated to different components of a system. The concept is that the trustworthiness of a given component must be consistent with the importance of that component's policy; the greater the trustworthiness the greater the importance of that component. The fault here is that a system can only be considered as secure as it's least secure component. While an interesting model and shows promise with respect to specific scenarios, this is not an overarching model that will function in all cases. There are multiple models for performing/implementing security, but a significant part of the cost of building a secure system is that of evaluating, and subsequently proving, trustworthiness through a third party's efforts. A method for minimizing the costs of performing this evaluation is to make use of components that have already had their trustworthiness evaluated and verified, thereby minimizing the need to evaluate the system itself; as it is made of already trustworthy components. This model would allow for ``evaluation by pieces'' whereby one acknowledges previously evaluated components and does not require their examination in the greater evaluation of the composite system. Unfortunately, this model has only been made available to ``low assurance'' systems as it lacks a well-formed theory of correctness~\cite{Benzel2005}. -Security design, development, verification, and evaluation is still a -relatively new and unexplored space. Because of this there is a -constant growth and evolution of security protocols and standards, -which requires a thorough exploration of the security design space. -It is the belief of this paper that the best model for focusing effort -and development towards is a platform-based design for security -development. The levels of abstraction aid in virtualization design, -the overarching concept of mapping platforms to instances (and -vice-versa) aids in early development stages, and the need for -rigorous documentation and meticulous following of standards are -concepts that not only stem from platform-based design but greatly -lend to the needs of security design and development. +This paper can not be concluded without proposing a framework that is believed to be the jumping point for a security model to begin the adaptation of platform-based design into security development. The reference monitor seems a favorable choice as this sort of model is already used in distributed systems, but there is an extremely important need to maintain the security/trust/trustworthiness of this reference monitor (abstraction for necessary and sufficient features of component that enforces access control in secure systems). While it should be immediately seen that there are faults with this design (e.g. single point of failure), do not allow these shortcomings to run your doubt. It is the belief of this paper that an initial starting point for PBD-Security design development is to use this existing reference monitor concept, along with other developed tools (e.g. CBSE, TPM), and piece together the initial framework and early phase development for this new methodology, so that future efforts can be spent developing and perfecting this technique. -\section{Conclusion} -\label{Conclusion} There is a need for development of platform-based design for security elements of all types, across all platforms. The mechanisms and procedures required are already in use, but this does not mean @@ -361,7 +353,14 @@ components, and communication elements of said components. This is why the development of groundwork for PBD-Security designs will be a slow and arduous process, but the resulting `pay dirt' will be a new set of virtualization tools at abstraction levels with design spaces -yet not truly explored at regular levels. The hope of this paper is +yet not truly explored at regular levels. + +The manufacturer's standpoint boils down to: the design should minimize mask-making costs but be flexible enough to warrant its use for a set of applications so that production volume will be high over an extended chip lifetime~\cite{Vincentelli2007}. Companies try to drive adoptability by means of creating something that users want to interact with, but not be complicated to learn (e.g. abstraction of technology for ease of use). Accounting for ease of use can lead to vulnerabilities in security or the development of new tools. Automation is desirable from a `business' standpoint since customers/users enjoy the `set it and forget it' mentality for technology (especially new technologies). Companies/Manufacturers need positive customer/user experiences, otherwise there is no desire to extend any supplied functionality to any other devices/needs on the part of the consumer. Adoptability tends to come from user `word of mouth' praising the functionality and ease of use of new technology/methods/devices and how the developing party reacts to system failures or user-need (branching from complaints and support requests). This is exactly why industry would love for platform-based design to become a new standard; gain high adoptability. The monetary costs saved would be enough to warrant adoption of the technology, \textbf{but} the monetary costs of developing such a system (e.g. design, evaluation, validation) does not carry the same attraction (simply because companies are selfish and want to \textbf{make} money). + +\section{Conclusion} +\label{Conclusion} + +The hope of this paper is to begin designing a frame work that pushes for not only better system design and development (PBD) but also for proper incorporation and planning of system security in an intelligent, rigorous and @@ -380,9 +379,96 @@ for both hardware and software elements. With these concepts in-mind, it should be obvious that security design \textbf{must} occur from the start! Unless security design is incorporated a priori, a developer can only hope to spend the rest of the development processes, and beyond, attempting to secure a system that took security as optional. Simply put, data \textbf{must} be kept safe. In addition, performing security planning from the start allows for disaster planning and any other possible 'unforeseen' complications. -Others are incorporating platform-based design in everything from image processing to implementing security across different domains~\cite{Lin2015}. People are seeing the use and effectiveness of this sort of design methodology and it is the belief of this paper that more focus should be placed on this topic. Platform-based design should be the basis for security design and development. +% +% +% +% +%---------------------------------------- +% Previous Writing of Paper +%---------------------------------------- +% +% +% +% + +\section{Related Work} +\label{Related Work} +As systems move towards more complex designs and implementations (as allowed by Moore's Law and other growths in technology) the ability to make even simple changes to these designs becomes exponentially more difficult. For this reason, levels of abstraction are desired when simplifying the design/evaluation phases of systems development. An example of this abstraction simplification is the use of system-on-chip (SoC) to replace multi-chip solutions. This SoC abstraction solution is then used for a variety of tasks, ranging from arithmetic to system behavior. It is an industry standard to use SoC to handle encryption/security in a secure and removed manner~\cite{Wu2006}. Middleware describes software that resides between an application and the inner workings of the system hosting the application. The purpose of the middleware is to abstract the complexities of the underlying technology from the application layer~\cite{Lang2003}; to act as translation software for communicating from lower level to a higher level. Platform-Based Design (PBD) has been proposed as a methodology to allow for this lower-to-higher translation ``abstraction bridge'' that enables a ``meet-in-the-middle'' approach~\cite{Vincentelli2007}. Platform-based design attempts to map applications to a platform chosen from a set of well-defined components. These components are defined by various characteristics including performance, weight, cost, etc. The mapping process to select architectures, platforms, and components sets out to maximize some objective function in the context of constraints and system requirements. + +While security in these systems is clearly important, it is rarely part of the early design process and thus, does not enter into the platform-based design process. In this paper, we advocate for a new security aware platform-based design approach that takes into account component security attributes during platform definition. In addition, the mapping process must incorporate security requirements as part of the objective function and constraints. +%To date, the PBD approach to design has been along with the sort of software construct that benefits the virtualization of security component mapping. +%\begin{quotation} +% ``However, even though current silicon technology is closely following the growing demands; the effort needed in modeling, simulating, and validating such designs is adversely affected. This is because current modeling tools and frameworks, hardware and software co-design environments, and validation and verification frameworks do not scale with the rising demands.''~\cite{Patel2007} +%\end{quotation} +Work in the security realm is much more chaotic, although undertakings have been made to define the scope of security and its intricacies in a well documented manner~\cite{Benzel2005}. Other work in the security realm includes security-aware mapping for automotive systems, explorations of dependable and secure computing, how to model secure systems, and defining the general theorems of security properties~\cite{Avizienis2004, Lin2013, Zakinthinos1997, Jorgen2008, Zhou2007}. Security has many facets to it: failure, processes, security mechanisms, security principles, security policies, trust, etc. A key developing aspect of security is its standardization of encryption algorithms, methods of authentication, and communication protocol standards. + +Standardization is the process of developing and implementing technical standards. Standardization can help to maximize compatibility, interoperability, safety, repeatability, or quality; it can also facilitate commoditization of formerly custom processes. Standards appear in all sorts of domains. For the IC domain standardization manifests as a flexible integrated circuit where customization for a particular application is achieved by programming one or more components on the chip (e.g. virtualization). PC makers and application software designers develop their products quickly and efficiently around a standard `platform' that emerged over time. As a quick over view of these standards: x86 ISA which makes is possible to reuse the OS \& SW applications, a full specified set of buses (ISA, USB, PCI) which allow for use of the same expansion boards of IC's for different products, and a full specification of a set of IO devices (e.g. keyboard, mouse, audio and video devices). The advantage of the standardization of the PC domain is that software can also be developed independently of the new hardware availability, thus offering a real hardware-software codesign approach. If the instruction set architecture (IAS) is kept constant (e.g. standardized) then software porting, along with future development, is far easier~\cite{Vincentelli2002}. In a `System Domain' lens, standardization is the aspect of the capabilities a platform offers to develop quickly new applications (adoptability). In other words, this requires a distillation of the principles so that a rigorous methodology can be developed and profitably used across different design domains. +So why is standardization useful? Standardization allows for manufacturers, system developers, and software designers to all work around a single, accepted, platform. It is understood what the capabilities of the hardware are, what the limitations of system IO will be, along with what the methods/protocols of communication will be. Even these preset aspects of the `standard' have their own `contractual obligations' of how they will function, what their respective `net-lists' are, and where the limitations of such standards lie. While the act of creating a standard takes time, not only due to time of development but due to speed of adoption of wide use, it is a necessary step. Without standardization, it becomes far more difficult to create universally used complex systems, let alone validate their correctness and trustworthiness. This is how one is able to change the current paradigm to a new standard model. + + + +Virtualization will help offset the time and monetary costs of using and implementing these new methodologies/ideologies. Essentially the issue boils down to how to abstract the lower level requirements of a system (assembly/C) into a simpler high level set of tools (API/block). A new set of tools needs to be developed that can be used to build bigger and greater things out of a series of smaller more manage/customizable blocks. Flexibility of low level elements will help minimize conflict when attempting to design higher level blocks. As with any new system, there is a need for `tunable designs' that can be centered around specific aspects (e.g. power/energy efficient systems to minimize ``power cost buildup'', or security/trust centric needs). Functions, in this tool set, should be kept simple (e.g. decide output, \textbf{but} not how the output manifests). The reason behind this is that the design can remain simplistic in its [design and] operation. Virtualization tools lend to both the ideas of abstraction (choosing the simple output) and standardization/documentation (know what the outputs are, but not needing to know exactly how they manifest; just that they will)~\cite{Alagar2007}. They are a much needed tool for exploring design spaces and bringing codesign of software and hardware elements. + +Hardware/Software codesign is crucial for bridging together the software and hardware aspects of a new system in an efficient and effective manner. There are different coding languages to handle different aspects (i.e. SW/HW) of virtualization. When dealing with the virtualization of software the aspects of timing and concurrency semantics still fall short. These problems come from a lack of resolution and control at the lowest levels of virtualization interaction. The overwhelming hardware issue is that hardware semantics are very specific and tough to simulate. There has been the development of hardware simulation languages, such as SystemC~\cite{Kreku2008}, but there has not been the development of tools to bridge the space between hardware and software simulation/virtualization. Codesign of software simulations of hardware allows for development of high level software abstraction to interact with low level hardware abstraction. The reasoning being the constant growth in complexity calls for simulation/virtualization of the design process. System-on-chip (SoC) technology will be already dominated by 100-1000 core multiprocessing on a chip by 2020~\cite{Teich2012}. Changes will affect the way companies design embedded software and new languages, and tool chains will need to emerge in order to cope with the enormous complexity. Low-cost embedded systems (daily-life devices) will undoubtably see development of concurrent software and exploitation of parallelism. In order to cope with the desire to include environment in the design of future cyber-physical systems, a system's heterogeneity will most definitely continue to grow as well in SoCs as in distributed systems of systems. A huge part of design time is already spent on the verification, either in a simulative manner or using formal techniques~\cite{Teich2012}. ``Indeed, market data indicate[s] that more than 80\% of system development efforts are now in software versus hardware. This implies that an effective platform has to offer a powerful design environment for software to cope with development cost.''~\cite{Vincentelli2002} Coverification will require an increasing proportion of the design time as systems become more complex. Progress at the electronic system level might diminish due to verification techniques that cannot cope with the modeling of errors and ways to retrieve and correct them, or, even better, prove that certain properties formulated as constraints during synthesis will hold in the implementation by construction. The verification process on one level of abstraction needs to prove that an implementation (the structural view) indeed satisfies the specification (behavioral view)~\cite{Teich2012}. The uncertainty of environment and communication partners of complex interacting cyber-physical systems, runtime adaptivity will be a must for guaranteeing the efficiency of a system. Due to the availability of reconfigurable hardware and multicore processing, which will also take a more important role in the tool chain for system simulation and evaluation, online codesign techniques will work towards a standard as time moves forward. As with any design problem, if the functional aspects are indistinguishable from the implementation aspects, then it is very difficult to evolve the design over multiple hardware generations~\cite{Vincentelli2007}. It should be noted that there are tools that already exists for low, or high, system simulation. New territory is the combination of these tools to form a `hardware-to-software' virtualization tool that is both efficient and effective. + +\section{Platform-based design} +\label{Platform-based design} + + +\section{Security} +\label{Security} + +The definition of ``trustworthiness'' that is chosen to help color this perspective on security is as defined in the Benzel et.~al.~paper. +\begin{quotation} +``\textit{Trustworthy} (noun): the degree to which the security behavior of the component is demonstrably compliant with its stated functionality (\textit{e.g., trustworthy component}). \\ \textit{Trust}: (verb) the degree to which the user or a component depends on the trustworthiness of another component. For example, component A \textit{trusts} component B, or component B is \textit{trusted} by component A. Trust and trustworthiness are assumed to be measured on the same scale.''~\cite{Benzel2005} +\end{quotation} +Dependability is a measure of a system's availability, reliability, and its maintainability. Furthermore, Avizienis et.~al.~extends this to also encompass mechanisms designs to increase and maintain the dependability of a system~\cite{Avizienis2004}. For the purpose of this paper, the interpretation is that trustworthiness requires inherent dependability; i.e. a user should be able to trust that trustworthy components will dependably perform the desired actions and alert said user should an error/failure occur. Unfortunately the measurement of trust(worthiness) is measured using the same, abstract scale~\cite{Benzel2005}. Thus, in turn, there is a void for the design and development of an understandable and standardized scale of trust(worthiness). Which could then lead to a change of paradigm in the methods by which security policies, mechanisms, and principles are implemented and evolve. +\begin{quotation} +``In order to develop a component-based trustworthy system, the development process must be reuse-oriented, component-oriented, and must integrate formal languages and rigorous methods in all phases of system life-cycle.''~\cite{Mohammed2009} +\end{quotation} + +\begin{figure*} + \includegraphics[width=\textwidth,height=10cm]{./images/SecurityDesignMap.png} + \caption{Security Design Map} + \label{fig:SecDesignMap} +\end{figure*} + + + +The first concept that will be tackled is that of `Hierarchical Trust for Components'. Security dependencies in a system will form a partial ordering if they preserve the principle of trusted components. This is essential to eliminate circular dependencies with regard to trustworthiness. Trust chains have various manifestations but this should not prohibit the use of overly trustworthy components. Taking a deeper dive into `hierarchical protections', a component need not be protected from more trustworthy components. In the most degenerate case of most trusted component, the component must protect itself from all other components. One should note that a trusted computer system need not protect itself from an equally trustworthy user. This is the same challenge that occurs at all levels and requires rigorous documentation to alleviate the constraint. Hierarchical protections is the precept that regulates the following concept of `secure distributed composition'. Composition of distributed components that enforce the same security policy should result in a system that enforces that policy at least as well as individual components do. If components are composed into a distributed system that supports the same policy, and information contained in objects is transmitted between components, then the transmitted information must be at least as well protected in the receiving component as it was in the sending component. This is similar behavior to how SSL/TLS are used in current day implementations; data may be secure in transit, but if the end points are not secure then the data is not secure either. To ensure correct system-wide level of confidence of correct policy enforcement, the security architecture of the distributed composite system must be thoroughly analyzed. + +Information protection, required by a security policy (e.g., access control to user-domain objects) or for system self-protection (e.g., maintaining integrity of kernel code and data), must be protected to a level of continuity consistent with the security policy and the security architecture assumptions; thus providing `continuous protection on information'. Simply stated, no guarantees about information integrity, confidentiality or privacy can be made if data is left unprotected while under control of the system (i.e., during creation, storages, processing or communication of information and during system initialization, execution, failure, interruption, and shutdown); one cannot claim to have a secure system without remaining secure for all aspects of said system. For maintaining a trustworthy system, and network of distributed trustworthy components, a designer should not only prepare for expected inputs but also for possible invalid requests or malicious mutations that could occur in the future. Invalid requests should not result in a system state in which the system cannot properly enforce the security policy. The earlier mentioned concept of secure failure applies in that a roll back mechanism can return the system to a secure state or at least fail the component in a safe and secure manner that maintains the required level of trustworthiness (does not lower the overall trustworthiness of the entire distributed system). + +Any designer must ensure protection of the system by choosing interface parameters so that security critical values are provided by more trustworthy components. To eliminate time-of-check-to-time-of-use vulnerabilities the system's security-relevant operations should appear atomic. It could also be desirable to allow system security policies to be ``modifiable'' at runtime; in the case of needing to adjust to catastrophic external events. This raises the complexity of the system, but does allow for flexibility in the face of failure. Any changes to security policies must not only be traceable but also verifiable; it must be possible to verify that changes do not violate security policies. This could be handled by a central reference monitor. Following this thread of thinking, a system architect/designer should understand the consequences of allowing modifiable policies within the system. Depending on the type of access control and actions that are allowed and controlled by policies, certain configuration changes may lead to inconsistent states of discontinuous protection due to the complex and undecidable nature of the problem of allowing runtime changes to the security policies of the system. In other words, even modifications/updates need to be planned and documented rigorously for the purpose of maintaining a secure and trustworthy system. System modification procedures must maintain system security with respect to goals, objectives, and requirements of owners; allowing for `secure system modification'. Without proper planning and documentation, upgrades and modifications to systems can transform a secure system into an insecure one. These are similar concepts to `secure system evolution' at the network scope of these security components. + + + +In the same manner that these various security aspects (e.g. mechanisms, principles, policies) must be considered during development automation, the software and hardware aspects must also come under consideration based on the desired behavior/functionality of the system under design. One could have security elements that attempt to optimize themselves to the system they are in based on a few pivot points (power, time, efficiency, level of randomness). Another option for the automated tool could trade out specific security components as an easier way to increase security without requiring re-design/re-construction of the underlying element (e.g. modularity). There is always the requirement that the overall trustworthiness of a new system must meet the standards of the security policies that `rule' the system. For these reasons a user would desire rigorous documentation that would lay out the requirements of each component, so that in the case of trying to replace faulty or damaged components there would be no loss to the overall trustworthiness of the system; while also not introducing any vulnerabilities due to the inclusion of new system components. + +Virtualization should be used for exploring the design space; it is hoped that it is obvious as to why. Not only is the cost of prototyping incredibly expensive, but redesign is equally costly. Virtualization aids by removing the need for physical prototyping (less monetary costs) and allows for more rapid exploration of the full design space. While the design time for such powerful tools will be expensive (both in monetary and temporal costs), the rewards of developing, validating, and evaluating this virtualization tool will offset the early design phase costs of automated security component design. + +But as with the development of any tool, and more so when +expecting said tools to be more publicly used, there is a deep need +for meticulous documentation and rigorous use/distribution of +standards. Without this, there is no guarantee that anyone will +benefit from use of this new model. Much like with security innovation +and implementation, without proper outlining of behavior and function +there is greater possibility for erroneous use thus leading to greater +vulnerability of the overall system. + + +Focusing efforts on rigorous design documentation allows security concerns to be recognized early in the development process and these aspects can be given sufficient attention in subsequent stages of the device's life cycle. ``By controlling system security during architectural refinement, we can decrease software production costs and speed up the time to market~\cite{ZhouFoss2006}.'' This approach also enhances the role of the software architects by requiring that their decisions be not only for functional decomposition, but also for non-functional requirements fulfillment. Hence, virtualization/automation of security development is not only effective but also enticing. +As with any new system there should be `sufficient user documentation'. Users should be provided with adequate documentation and other information such that they contribute to, rather than detract from, a system's security. The availability of documentation and training can help to ensure a knowledgeable cadre of users, developers, and administrators. If any level of user does not know how to use a component properly, does not know the standard security procedures, or does not know the proper behavior to prevent social engineering attacks, then said user can easily introduce new system vulnerabilities. +Just as there is a requirement for adequate documentation there is also the need for `procedural rigor'. The rigor of the system's life cycle process should be commensurate with its intended trustworthiness. Procedural rigor defines the depth and detail of a system's lifecycle procedures. These rigors contribute to the assurance that a system is correct and free of unintended functionality in two ways. Firstly, imposing a set of checks and balances on the life cycle process such that the introduction of unspecified functionality is thwarted. Secondly, applying rigorous procedures to specifications and other design documents contribute to the ability of users to understand a system as it has been built, rather than being misled by inaccurate system representation, thus helping ensure that security and functional objectives of the system have been met. Highly rigorous development procedures supporting high trustworthiness are costly to follow. However, the lowered cost of ownership resulting from fewer flaws and security breaches during the product maintenance phase can help to mitigate the higher initial development costs associated with a rigorous life cycle process. +The reasoning for having procedural rigor and sufficient user documentation is to allow for `repeatable, documented procedures'. Techniques used to construct a component should permit the same component to be completely and correctly reconstructed at a later time. Repeatable and documented procedures support the creation of components that are identical to a component created earlier that may be in widespread use. + +The last, and by no means least, important topic that must be tackled in this section is the question of what exactly are the research challenges. There has been a lot of information, ideas, and principles presented over the course of this writing along with parallels to existing research and methodologies that can be almost directly applied to the concept of mapping security development to platform-based design. + + +\section{Conclusion} +\label{Conclusion} + -This paper can not be concluded without proposing a framework that is believed to be the jumping point for a security model to begin the adaptation of platform-based design into security development. The reference monitor seems a favorable choice as this sort of model is already used in distributed systems, but there is an extremely important need to maintain the security/trust/trustworthiness of this reference monitor (abstraction for necessary and sufficient features of component that enforces access control in secure systems). While it should be immediately seen that there are faults with this design (e.g. single point of failure), do not allow these shortcomings to run your doubt. It is the belief of this paper that an initial starting point for PBD-Security design development is to use this existing reference monitor concept, along with other developed tools (e.g. CBSE, TPM), and piece together the initial framework and early phase development for this new methodology, so that future efforts can be spent developing and perfecting this technique. %references section %\bibliographystyle{plain}