At the same time, we use commodity systems such as Windows or MAC OS in a wide range of security contexts, from a totally isolated LAN to a fully connected Internet environment, where the security risks and assumptions are totally different, and we expect the machine to behave properly in all these contexts. All these changes have combined to create a situation where we have no effective abstract models at all of computer security in a network context. We have a large number of security mechanisms in place, including rather robust authentication tools, encryption for disclosure control and integrity of data on the network, and so on. What we lack are overall models that allow the user or system administrator to reason whether a system is actually secure, given that some combination of these mechanisms have been deployed. Increasing maturity of the network world has forced us, and will increasing force us in the future, to understand the problems of highly distributed sets of co-operating programs.
Mail goes from a sender to one recipient at a time.
Each user fetches a Web page separately from a server. Multi-party designs are much harder to realize. Designing robust and flexible approaches to multi-party systems is an important research topic for the future. The physical separation of the parts of a distributed system forces a discipline on software construction. These latter forms of connection are sometimes very powerful, but often the cause of poor modularity and obscure overall system behavior.