CS514-lec-22 - Department of Computer Science

Download Report

Transcript CS514-lec-22 - Department of Computer Science

The Next Generation Internet:
Unsafe at any Speed?
Ken Birman
Dept. of Computer Science
Cornell University
Convergent Trends
 Existing Internet exhibiting brownouts,
security and quality-of-service problems
 Talk of a “next generation Internet” offering
10 to 100-fold performance improvements
 A new generation of networked applications
includes large numbers of “critical” ones
Typical Critical Applications
 Medical monitoring and clinical databases.
Community health information networks.
Remote home care and Remote telesurgery
 Integrated modular avionics systems. Air
traffic control. Free flight, 4-D navigation
Medical Networks
 Contacted a number of technical and
business people in this field (HP Careview,
EMTEK, Hospital for Sick Children)
 Asked:




What are the trends?
How are networks changing healthcare?
How are these systems made secure & reliable?
Got any good stories for me?
An ICU Computer System
Doctor’s
office
Bedside
Clinical data server
Digital library and online PDR
Laboratories
Pharmacy
… a field in transition
 During 1980’s, hospitals used largely
dedicated systems
 Client-server architectures now becoming
dominant, but trend is a recent one
 Systems ran in physical isolation and had
limited, mission-specific functionality
Important distinction
 Medical monitoring equipment, computer
controlled “devices”




These “practice medicine”
FDA regulated, like a drug
Software subjected to extreme verification
methods, safety certification is costly and hard
Extends to the IEEE “medical information bus”
for connecting bedside devices
Important distinction
 Medical monitoring equipment, computer
controlled “devices”
 Clinical data systems



By definition, not considered safety critical
Maintain the legally binding “patient record”
Think of a database system. Human checks all
entries, even data obtained directly from devices
or lab reports.
Traditional Approach
 Each runs as a separate network
 Developed completely independently
 No interconnection of any kind
Networking technology?
 Monitoring network is increasingly a
dedicated “real-time” LAN, this permits
configuration flexibility, remote telemetry,
even adjustment of monitoring devices
 Clinical database system increasingly
connected to laboratories, community health
information networks (CHIN’s), physician’s
office, insurance and HMO’s
Platform choices?
 Overwhelming trend is to introduce standard
PC’s and workstations, standard Internet
technologies
 Forced migration from dedicated platforms
to shared, standard network platforms
 Web access now common from PC’s that run
clinical database software
… bluring the distinction
 Increasingly, see monitoring network crossconnected to the clinical data network
 Some physical isolation: not yet common to
see an IV perfusion drip controllable over an
internet within a hospital
 “Perimeter” security using passwords,
firewalls. But medical security needs are
unusual; mismatched to standard solutions.
Creep of “critical” role
 Technically, clinical data system is non-critical
 But increasingly, the system actually is critical:
doctors and nurses depend upon the



Accuracy and timeliness of reporting
Correct data for lab results, vitals, medications
FDA is simply late to catch up with trends
 Moreover, already seeing Windows 95 and MS
Access as basis for such systems
Consumer / society “pull”
 Intensive and growing cost pressures
 Desire for freedom from medical system,
home care
 Consolidation of hospitals
 HMO’s want to control care plan
 … create trend towards remote telemedicine,
even robot telesurgery, CHIN’s
Vision: A Virtual Private Network
Application shares the network with untrusted agents but is isolated from them.
Reality?
 Current VPN support approximates this, but
configuration potentially awkward, slow
 Many CHIN’s won’t use VPN’s
 By running over the Internet, CHIN’s are
exposed to bandwidth fluctuations and denial
of service from many causes
Good stories?
 Many cases of security or privacy violations
(EMTEK has a good one).
 HP told me that some hackers accidently disrupted
a cardiac monitor in the Boston area a few years
ago (trying to track this down)
 Nutty nursing aide in Britain changed orders,
discharged patients, scheduled tests…
 HP Careview, starved for bandwidth, flickers on
and offline in some critical care units...
Broad picture?
 Application trends outstripping technology
 Decision making is by societal consensus,
cost pressures, reflects HMO needs.
 Hospital executives insisting on “standards”
 Hospital network of future: PC’s, off-theshelf Internet software, standard Web stuff.
Critical or not, like it or not, it’s happening!
What about aviation?
 Much use of computer technologies





Flight management system (controls airplane)
Flaps, engine controls (critical subsystems)
Navigational systems
TCAS (collision avoidance system)
Air traffic control system on ground


In-flight, approach, international “hand-off”
Airport ground system (runways, gates, etc)
What about aviation?
 Much use of computer technologies





Flight management system (controls airplane)
Flaps, engine controls (critical subsystems)
Navigational systems
TCAS (collision avoidance system)
Air traffic control system on ground


In-flight, approach, international “hand-off”
Airport ground system (runways, gates, etc)
ATC system components
Onboard
Radar
X.500
Directory
Controllers
Air Traffic Database
(flight plans, etc)
… similar turmoil
 On-board systems moving to COTS,
integrated modular avionics


Boeing 777 SafeBus a success story
Unlikely it could be replicated with standard O/S
and standard ATM or LAN hardware
 Emergence of “4-D navigation” (free flight)
systems: ground network penetrates level-A
critical cockpit components.
Free flight
Transponder and GPS
Ground system
On-board conflict alert
and resolution system
Future avionics systems
 Ground systems rely increasingly on automation,
have form of a highly available, highly critical
network. Built using standard PC’s, software tools
 Ground network becomes critical to flight safety
 On-board avionics are basically a dedicated realtime LAN built with standard PC’s but perhaps
non-standard O/S. One platform, many apps.
 Safety validation of components replaces current
validation of system. Think “plug ‘n play”
The list goes on
 Disaster warning and response coordination
 Power management (grid control)
 Banking, stock markets, trading systems
 Computer-controlled vehicles
 Military intelligence, command and control
 Critical business applications
Commercial Off The Shelf
 Build using “COTS”



Standard components
Buy off the shelf, then harden them
Intended to be cheaper, easier to maintain
 As a practical matter, there is nothing else on
the shelf!

Roll-your-own solutions abandon powerful tools
that make modern computing great!
Technology Mountain
COTS
Reliable Technology
Mountain
COTS
Next Generation Internet
 Current Internet looks frail
 Only government investment can address
security, reliability, scalability and
performance problems of the Internet
 Expectation is that we’ll build it quickly,
hence that we “basically” know how today
Next Generation Internet
 Concrete details?



Seeks 10 to 100-fold performance improvement
Originally expected to provide IP-v6 interface
Originally expected to implement
Long IP addresses
 IPSec, DNSec
 Quality of Service options “over” some form of
Diffsrv (or RSVP) mechanism

Reality check
 Both IPv6 and RSVP now uncertain due to
resistance from mainstream IPv4 crowd


RSVP resource use on routers grows as O(n2)
IPv6 would outmode a huge existing investment
 How likely is it that the NGI will solve the practical
problems identified earlier?
 How does one build a “secure, reliable, scalable,
high performance” network application, anyhow?
 Do we in fact know how to do this?
Glimpse of the IPv4 crowd
 They gave us TCP/IP, core internet services,
stuff on which we run email, web
 They elevate the end-to-end argument to a
religion (basically: “packets, not circuits”)
 Little experience with critical applications
What about QoS?
 Best scheme: Diffsrv
 Uses an edge-classification of packets; routers look
at just a byte or two
 But routers distort flow dynamics


You send 50 packets per second…
… but within the network, a router might see a burst of
100, then a second of silence
 Consequence is that Diffsrv will be at best
stochastic (and it also can’t handle routing changes)
… a troubling implication
 It seems unlikely that the NGI will easily
support isolation of critical subsystems with
the range of properties required
 More likely: a tool for building virtual
circuits (one-one connections) that run at
very high speeds
 Missing “connection” is the step from the
network to the robust application
What do we need?
 Isolation of functions



Critical functionality compartmentalized
Components only interact through well-defined
interfaces with well-defined semantics
Developer “proves” that implementation respects
interface definition and semantics
 On the other hand, adequate performance is
fundamental to providing robustness
Evidence for these claims?
 This is how modern avionics modules are
built (wing flap and engine control, flight
management system, inertial navigation)
 Process is extremely costly and works only
for very small pieces of software
 SafeBus on Boeing 777 allows such software
to share platform by creating very strong
firewalls between components
Agenda emerges
 Find ways to divide and conquer



Transform big nasty system into smaller
independent modules
Run them in an environment that has strong
properties, which the modules exploit
Resulting system has strong properties too
 Can we apply this to familiar distributed
computing problems?
Philosophy
 Imagine a network as an abstract data type

An “Overlay Network” or ON
 We can instantiate it multiple times, “condition”
each copy with desired quality properties:

A Virtual Overlay Network or VON
 How to introduce properties?

Mixture of resource reservation at routers, on a per-ON
basis, and management actions at edges
A VON
 Looks like a dedicated Internet, although hosted on
a shared infrastructure
 Supports guarantees of properties such as



Bandwidth
Noise level
Security and freedom from denial of service
 Treated as an aggregate, not a set of pt-to-pt
connections!
Making Vision a Reality
1) NGI needs to give us the ON mechanism
2) We need to implement VONs using fairly
standard protocols over the base ONs
3) Must be able to produce specialized
solutions for reliability/security needs
4) Solutions amenable to selective use of
formal tools
NGI hooks?
 Diffsrv and RSVP won’t do it



Creates an O(n2) resource reservation problem
Problem is that both schemes are fundamentally
connection oriented, and VON concept is
fundamentally multipoint in nature
Hence these point-to-point QoS mechanisms are
not suitable for supporting VONs
 Any other options?
Switches supporting “flows”
already exist
 MCI, Sprint, AT&T already sell each other
dedicated bandwidth with isolation
 This is on a scale of perhaps 10’s of flows
and hence classification is easy
 VONs might mean that a switch would see
thousands, but such scaling seems well
within technical feasibility
Router understands flows
Looks like
this
Router understands flows
Flow 1
Flow 2
Looks
like
Looks
like
Looks
like
this
Acts
like
this
this
this
Flow 3
Everything else
Things to notice
 A flow in this sense aggregates all the traffic
for one ON – the identifier is for the ON not
the endpoints
 Classification task is thus much smaller and
resources needed to support this are linear in
number of ONs that pass through the switch,
not the number of potential connections
 Each ON is like a dedicated network
An ON has
 A bandwidth guarantee (router sets resources
aside on its behalf)
 Perhaps latency guarantees
 Can offer isolation between flows
 But not much else
NGI part of the picture
 NGI needs to give us “raw” ON’s but also:



Robust routing infrastructure
Naming
Ability to build an ON tolerant of “one link or router
failure”
 Many building blocks are already in place
 But the core Internet community is balking on all
forms of QoS: isolation or other guarantees seen as
inconsistent with end-to-end philosophy
But suppose we get our wish
 Next President declares “moral equivalent of
war” after continuing Internet siege shuts
down his web site during election:

“Let there be Overlay Networks!”
 Then what?
Our new goal?
 Create VONs by adding properties to Ons
 User sees VON as a set of end-points with
minimum guarantees, like isolation, between them
 We need a way to strengthen these properties

E.g. manage security keys, manage RSVP parameters,
routing, network name space
 We may also need ways to reliably communicate
(1-1, 1-n patterns)
VONs as abstract data types
VONs as abstract data types
 Focus on the processes and network
VONs as abstract data types
 Think of the ON interface as an abstract type
ON
ON
ON
VONs as abstract data types
 “Add” encryption by substituting a module
that looks the same but encrypts messages
encrypt
encrypt
encrypt
Layered Microprotocols
Interface to Horus is extremely flexible
Horus manages group abstraction
group semantics (membership, actions,
events) defined by stack of modules
Horus stacks
plug-and-play
modules to give
design flexibility
to developer
vsync
filter
encrypt
ftol
sign
Layered Microprotocols in Horus
Interface to Horus is extremely flexible
Horus manages group abstraction
group semantics (membership, actions,
events) defined by stack of modules
Ensemble stacks
plug-and-play
modules to give
design flexibility
to developer
vsync
filter
encrypt
ftol
sign
Layered Microprotocols in Horus
Interface to Horus is extremely flexible
Horus manages group abstraction
group semantics (membership, actions,
events) defined by stack of modules
Ensemble stacks
plug-and-play
modules to give
design flexibility
to developer
filter
ftol
vsync
encrypt
sign
Same stack under each endpoint
ftol
ftol
ftol
vsync
vsync
vsync
encrypt
encrypt
encrypt
Multiple VONs in single application
Yellow group for video communication
Green for
control and
coordination
ftol ftol
vsync
vsync
encrypt
encrypt
ftol ftol
ftol ftol
vsync
vsync
encrypt
encrypt
vsync
vsync
encrypt
encrypt
Examples of reliability
models
 Virtual synchrony model: emerged from our
work on Isis, now widely accepted
 Bimodal multicast model: probabilistic and
has neat performance properties but weaker
logical consistency guarantees
 Secure group communication
 Multimedia channels…
Virtual Synchrony Model
G0={p,q}
G1={p,q,r,s}
p
G2={q,r,s}
G3={q,r,s,t}
crash
q
r
s
t
r, s request to join
r,s added; state xfer
p fails
t requests to join
t added, state xfer
Virtual Synchrony Tools
 Various forms of replication:


Replicated data, replicate an object, state transfer
for starting new replicas...
1-many event streams (“network news”)
 Load-balanced and fault-tolerant request
execution
 Management of groups of nodes or machines
in a network setting
Stock Exchange Problem:
Vsync. multicast is too “fragile”
Most members are
healthy….
… but one is slow
Measured Impact of Perturbation
Effect of Perturbation
(msgs/sec)
Throughput
throughput (msgs/sec)
250
200
150
100
50
0
0.1
0.2
0.3
0.4
0.5
ount perturbed
Amountam
Perturbed
0.6
0.7
0.8
0.9
The problem gets worse as the
system scales up
Virtually synchronous Ensemble multicast protocols
average throughput on nonperturbed members
250
group size: 32
group size: 64
group size: 96
200
150
100
50
0
0
0.1
0.2
0.3
0.4
0.5
perturb rate
0.6
0.7
0.8
0.9
Why does stability matter?
 Swiss Stock Exchange



Exchange is fully electronic [FTCS-27 paper]
Uses Isis SDK to distribute all bids/offers and all trades.
Every “node” has the picture
But this means that entire trading history available to 50
member banks & firms and hundreds or thousands of
traders!
 Unstable node could bring exchange to its knees.
 Similar issues seen in many other settings
Pbcast has a probabilistic
reliability model
 Either almost all destinations receive the
message or almost none do so
 This is strong enough to use in applications
with critical reliability needs (but not
necessary for all their communication
purposes -- put side by side with virtual
synchrony)
p{#processes=k}
Pbcast bimodal delivery distribution
1.E+00
1.E-05
1.E-10
1.E-15
1.E-20
1.E-25
1.E-30
0
5
10
15
20
25
30
35
40
45
50
number of processes to deliver pbcast
Scalability of Pbcast reliability
1.E+00
1.E-05
1.E-05
1.E-10
P{failure}
p{#processes=k}
Pbcast bimodal delivery distribution
1.E-10
1.E-15
1.E-20
1.E-15
1.E-20
1.E-25
1.E-30
1.E-35
1.E-25
10
15
1.E-30
0
5
10
15
20
25
30
35
40
45
P{failure}
fanout
5
6
7
40
45
50
55
60
Predicate II
9
8.5
8
7.5
7
6.5
6
5.5
5
4.5
4
20
4
35
Fanout required for a specified reliability
1.E+00
1.E-02
1.E-04
1.E-06
1.E-08
1.E-10
1.E-12
1.E-14
1.E-16
3
30
Predicate I
Effects of fanout on reliability
2
25
#processes in system
50
number of processes to deliver pbcast
1
20
8
9
10
25
30
35
40
45
50
#processes in system
fanout
Predicate I for 1E-8 reliability
Predicate I
Predicate II
Figure 5: Graphs of analytical results
Predicate II for 1E-12 reliability
Pbcast has stable throughput
 Gets this from a mixture of gossip-style local
repair with several innovations to avoid
overload when some process fails
 We implemented the protocol and
experimentally confirmed this
0.6
0.4
Traditional Protocol
w ith .45 sleep
probability
0.2
0
Inter-arrival spacing (m s)
1
0.8
Pbcast w ith .05
sleep probability
0.6
Pbcast w ith .45
sleep probability
0.4
0.2
0
0.
00
5
0.
01
5
0.
02
5
0.
03
5
0.
04
5
0.
05
5
0.
06
5
Traditional Protocol
w ith .05 sleep
probability
Histogram of throughput for pbcast
Probability of occurence
0.8
0.
00
5
0.
01
5
0.
02
5
0.
03
5
0.
04
5
0.
05
5
0.
06
5
Probability of occurence
Histogram of throughput for Ensemble's FIFO
Virtual Synchrony Protocol
Inter-arrival spacing (ms)
Throughput
measured at
unperturbed
process
High Bandwidth measurements with varying numbers of sleepers
200
150
100
50
0
0.05 0.15 0.25 0.35 0.45 0.55 0.65 0.75 0.85 0.95
Probability of sleep event
Traditional w/1 sleeper
Pbcast w/1 sleeper
Traditional w/3 sleepers
Pbcast w 3/sleepers
Traditional w/5 sleepers
Pbcast w/5 sleepers
16 nodes - 4 perturbed processes
throughput
throughput
(msgs/sec)
8 nodes - 2 perturbed processes
250
200
150
100
50
0
0.1
0.2
0.3
0.4
250
200
150
100
50
0
0.5
0.1
0.2
perturb rate
0.3
0.4
perturb rate
0.5
128 nodes - 32 perturbed processes
throughput
throughput
250
200
150
100
50
0
0.2
0.4
perturb rate
96 nodes - 24 perturbed processes
0.1
0.3
0.5
250
200
150
100
50
0
0.1
0.2
0.3
0.4
perturb rate
0.5
Now we have several styles...
 Each style or model yields a VON with different
properties
 Application might not “see” the multicast stack
 Instead, the environment in which the application
runs could see the stack and use it on behalf of the
application
 For example, a library could use stack to maintain
the keys with which it authenticates actions…
Formal methods
 With so much riding on VON, we need
strong guarantees that the stack works!
 If protocols can be formally proved correct,
confidence will be far stronger
 Can we use formal tools on network
protocols built in this compositional manner?
Exploiting formal methods
 Van Renesse and Hayden: code stack with
language having strong semantics
 They used O’Caml dialect of ML
 Now we can bring formal tools to bear on
issues of correctness:


Using Nuprl system for this
Basically, it automates proofs and program
transformations
Initial Progress?
 Presented in 1999 ACM SOSP paper
 Have formalized the transformations used to
optimize stacks for high performance
 We show that from one initial stack, we can
produce multiple optimized stacks for
common cases. Yields big speedups!
Steps
 Transform Ensemble stack into a single function in
a functional style


Use partial evaluation to produce optimized version for
common cases
Use theorem proving to establish that stacks provide
desired properties
 Transform back to imperative style
 Resulting code is optimized yet retains properties of
original stack
Optimization Example
?
Common case?
ftol
ftol
vsync
vsync
encrypt
encrypt
Original code is simple
but inefficient
Optimized code for “common
case” is provably equivalent yet
inefficiencies are eliminated
Optimization Example
?
Common case?
ftol
ftol
vsync
vsync
encrypt
encrypt
We do nearly as well as hand-optimization
and can automatically handle much bigger
stacks!
?
Common case?
Wrapping things up
 By building better networks, and isolating protocol
components and system components…
 … and adopting a modular architecture
 … and selectively using formal methods
 … we make it more and more practical to gain both
high performance and other desired properties, such
as reliability, security, stability, etc.
Potential NGI lets critical applications
share network with untrusted ones
VONs
But will it happen?
 Current political agenda focuses on speed and ecommerce transactions
 End-to-end community resists giving any
guarantees no matter how simple
 And NGI focus is exclusively on point-to-point
QoS, which seems unscalable
 …denying us the one primitive building block on
which the whole concept depends!
Conclusions?
 The world needs better networks!
 Improve them by improved opportunity for
modularity, isolation, guarantees of security
and quality of service – VONs and layers
built over them
 Lacking this, we face very serious problems
simply going forward in directions to which
society is already committed.
More info
http://www.cs.cornell.edu/ken/unsafe.ps