View
225
Download
0
Category
Preview:
Citation preview
7/28/2019 Docement Packet Chapter
1/53
CHAPTER 1
INTRODUCTION
1.1 General:Wireless networks rely on the uninterrupted availability of the wireless medium to
interconnect participating nodes. However, the open nature of this medium leaves it
vulnerable to multiple security threats. Anyone with a transceiver can eavesdrop on
wireless transmissions, inject spurious messages, or jam legitimate ones. While
eavesdropping and message injection can be prevented using cryptographic methods,
jamming attacks are much harder to counter. They have been shown to actualize severe
Denial-of-Service (DoS) attacks against wireless network.
In the simplest form of jamming, the adversary interferes with the reception of
messages by transmitting a continuous jamming signal, or several short jamming pulses.
Typically, jamming attacks have been considered under an external threat model, in
which the jammer is not part of the network. Under this model, jamming strategies
include the continuous or random transmission of high-power interference signals.
However, adopting an always-on strategy has several disadvantages. First, the
adversary has to expend a significant amount of energy to jam frequency bands of
interest. Second, the continuous presence of unusually high interference levels makes this
type of attacks easy to detect.
Conventional anti-jamming techniques rely extensively on spread-spectrum (SS)
communications, or some form of jamming evasion (e.g., slow frequency hopping, or
spatial retreats). SS techniques provide bit level protection by spreading bits according to
a secret pseudo-noise (PN) code, known only to the communicating parties. These
methods can only protect wireless transmissions under the external threat model.
Potential disclosure of secrets due to node compromise, neutralizes the gains of SS.
Broadcast communications are particularly vulnerable under an internal threat model
because all intended receivers must be aware of the secrets used to protect transmissions.
Hence, the compromise of a single receiver is sufficient to reveal relevant cryptographic
information.
In this paper, we address the problem of jamming under an internal threat model.
We consider a sophisticated adversary who is aware of network secrets and the
implementation details of network protocols at any layer in the network stack. The
1
7/28/2019 Docement Packet Chapter
2/53
adversary exploits his internal knowledge for launching selective jamming attacks in
which specific messages of high importance are targeted. For example, a jammer can
target route-request/route-reply messages at the routing layer to prevent route discovery,
or target TCP acknowledgments in a TCP session to severely degrade the throughput of
an end-to-end flow.
To launch selective jamming attacks, the adversary must be capable of
implementing a classify-then-jam strategy before the completion of a wireless
transmission. Such strategy can be actualized either by classifying transmitted packets
using protocol semantics, or by decoding packets on the fly. In the latter method, the
jammer may decode the first few bits of a packet for recovering useful packet identifiers
such as packet type, source and destination address. After classification, the adversary
must induce a sufficient number of bit errors so that the packet cannot be recovered at the
receiver. Selective jamming requires an intimate knowledge of the physical (PHY) layer,
as well as of the specifics of upper layers.
2
7/28/2019 Docement Packet Chapter
3/53
CHAPTER 2
LITERATURE SURVEY
2.1 Detection and prevention of congestion attacks and packet loss using piggyback
methods in wireless network:
Network security involves the authorization of access to data in a network, which
is controlled by the network administrator. In this paper, we investigate the problem of
packet loss over the wireless communication and the congestions that are taken place. To
prevent the packet loss, we propose the idea of Piggybacking by which the data can be
transfer between the server and the client on the secure manner. Moreover the completedata will be encrypted before the transmission takes place. The RSA algorithm is used for
the encryption and the decryption purpose. The encrypted data will then piggybacked by
which the data is hided and then moved to the destinations. Through this the congestion
on the network can be controlled.
2.2 Wormhole-Based Anti-jamming Techniques in Sensor Networks:
Due to their very nature, wireless sensor networks are probably the category of
wireless networks most vulnerable to radio channel jamming-based Denial-of-Service
(DoS) attacks. An adversary can easily mask the events that the sensor network should
detect by stealthily jamming an appropriate subset of the nodes; in this way, he prevents
them from reporting what they are sensing to the network operator. Therefore, even if an
event is sensed by one or several nodes (and the sensor network is otherwise fully
connected), the network operator cannot be informed on time. We show how the sensor
nodes can exploit channel diversity in order to create wormholes that lead out of thejammed region, through which an alarm can be transmitted to the network operator. We
propose three solutions: The first is based on wired pairs of sensors, the second relies on
frequency hopping, and the third is based on a novel concept called uncoordinated
channel hopping. We develop appropriate mathematical models to study the proposed
solutions.
3
7/28/2019 Docement Packet Chapter
4/53
2.3 Control Channel Jamming: Resilience and Identification of Traitors:
In this paper, we address the problem of countering the control channel jamming in
wireless communication systems. Targeting control traffic on a system like GSM (e.g.,
BCCH channel) leads to smart attacks that are four orders of magnitude more efficient
than blind jamming. We propose several schemes based on coding theory and its
applications that can counter both external and internal attackers (traitors). We introduce
a T-(traitor) resilient scheme that requires less than control information retransmissions
and guarantees delivery of control information against any coalition of traitors.The
proposed scheme also allows the identification of the traitors.
2.4 SHCS Technique Defined for Packet Hiding Methods in Wireless Networks:
Due to their nature wireless networks are vulnerable to denial of service (DoS)
attack (any event that diminishes or eliminates a networks capacity to perform its
expected function) Jamming attacks are one of the most urgent threats harming the
dependability of wireless communication. Jamming attacks may be viewed as a special
case of Denial of service (DoS) attacks. With the internal knowledge of protocol
specifications and network secrets can launch low-effort jamming attacks that are
difficult to detect and counter. An adversary masks the events that the sensor network
should detect by jamming an appropriate subset of the nodes. In this paper, we
concentrate on the problem of selective jamming attacks in wireless networks. We
develop schemes that prevent real-time packet classification by combining cryptographic
primitives.
2.5 Quantifying the Impact of Efficient Cross-Layer Jamming Attacks via Network
Traffic Flows:
We investigate a class of coordinated jamming attacks in which multiple jammers
collaboratively apply knowledge about the network layer functionality to efficiently
reduce the throughput of network traffic. We show how a constrained optimization
framework can be used to characterize coordinated jamming attacks and allow the impact
of the attack to be quantized from the perspective of the network. Using this network-
centric interpretation of jamming attacks, a network designer can attain a greater
4
7/28/2019 Docement Packet Chapter
5/53
understanding of the potential threat of jamming. To illustrate our approach, we propose
and evaluate a variety of metrics to model the attack impact, serving both as adversarial
objective functions and as network evaluation metrics, and present a simulation study to
quantify and compare attack performance.
5
7/28/2019 Docement Packet Chapter
6/53
CHAPTER 3
SYSTEM ANALYSIS
3.1 EXISTING SYSTEM
3.1.1 Introduction:
In Existing System Wireless networks rely on the uninterrupted availability of the
wireless medium to interconnect participating nodes. However, the open nature of this
medium leaves it vulnerable to multiple security threats. Anyone with a transceiver can
eavesdrop on wireless transmissions, inject spurious messages, or jam legitimate ones.
While eavesdropping and message injection can be prevented using cryptographic
methods, jamming attacks are much harder to counter. They have been shown to
actualize severe Denial-of-Service (DoS) attacks against wireless networks.
3.1.1 DISADVANTAGES OF EXISTING SYSTEM
The adversary has to expend a significant amount of energy to jam frequency
bands of interest.
The continuous presence of unusually high interference levels makes this type of
attacks easy to detect
3.2 PROPOSED SYSTEM:
3.2.1 Introduction:
In Proposed System, we address the problem of jamming under an internal threat
model. We consider a sophisticated adversary who is aware of network secrets and the
implementation details of network protocols at any layer in the network stack. The
adversary exploits his internal knowledge for launching selective jamming attacks in
which specific messages of high importance are targeted.
To launch selective jamming attacks, the adversary must be capable of
implementing a classify-then-jam strategy before the completion of a wireless
transmission. Such strategy can be actualized either by classifying transmitted packets
using protocol semantics, or by decoding packets on the fly.
6
7/28/2019 Docement Packet Chapter
7/53
To mitigate such attacks, we develop three schemes that prevent classification of
transmitted packets in real time. Our schemes rely on the joint consideration of
cryptographic mechanisms with PHY-layer attributes. We analyze the security of our
schemes and show that they achieve strong security properties, with minimal impact on
the network performance.
3.2.1 ADVANTAGES OF PROPOSED SYSTEM
Relatively easy to actualize by exploiting knowledge of network protocols and
cryptographic primitives extracted from compromised nodes
Our findings indicate that selective jamming attacks lead to a DoS with very low
effort on behalf of the jammer
7
7/28/2019 Docement Packet Chapter
8/53
CHAPTER 4SYSTEM REQUIREMENTS
The purpose of the System Requirements Specification is to produce the
specification of the analysis task and also to establish complete information about the
requirement, behavior and other constraints such as functional performance and so on.
The goal of System Requirements Specification is to completely specify the technical
requirements for the software product in a concise and unambiguous manner.
4.1 Hardware Requirements
Processor : Pentium IV
Clock speed : 550MHz
Hard Disk Drive : 80GB
RAM : 1 GB
Cache Memory : 512KB
Monitor : VGA and High Resolution Monitor
Keyboard : 104Keys
Mouse : 3Buttons
4.2 Software Requirements
Operating System : Windows XP
Coding Language : C#.Net
Database : SQL SERVER 2005
8
7/28/2019 Docement Packet Chapter
9/53
4.3 Software Description:
4.3.1 FEATURES OF. NET
Microsoft .NET is a set of Microsoft software technologies for rapidly building
and integrating XML Web services, Microsoft Windows-based applications, and Web
solutions. The .NET Framework is a language-neutral platform for writing programs that
can easily and securely interoperate. Theres no language barrier with .NET: there are
numerous languages available to the developer including Managed C++, C#, Visual
Basic and Java Script. The .NET framework provides the foundation for components to
interact seamlessly, whether locally or remotely on different platforms. It standardizes
common data types and communications protocols so that components created in
different languages can easily interoperate.
.NET is also the collective name given to various software components built
upon the .NET platform. These will be both products (Visual Studio.NET and
Windows.NET Server, for instance) and services (like Passport, .NET My Services,
and so on).
4.3.2 THE .NET FRAMEWORK
The .NET Framework has two main parts:
1. The Common Language Runtime (CLR).
2. A hierarchical set of class libraries.
The CLR is described as the execution engine of .NET. It provides the
environment within which programs run. The most important features are
Conversion from a low-level assembler-style language, called
Intermediate Language (IL), into code native to the platform being
executed on.
Memory management, notably including garbage collection.
Checking and enforcing security restrictions on the running code.
9
7/28/2019 Docement Packet Chapter
10/53
Loading and executing programs, with version control and other such
features.
The following features of the .NET framework are also worth description:
4.3.2.1 Managed Code
The code that targets .NET, and which contains certain extra Information -
metadata - to describe itself. Whilst both managed and unmanaged code can run in the
runtime, only managed code contains the information that allows the CLR to guarantee,
for instance, safe execution and interoperability.
4.3.2.2 Managed Data
With Managed Code comes Managed Data. CLR provides memory allocation and
Deal location facilities, and garbage collection. Some .NET languages use
Managed Data by default, such as C#, Visual Basic.NET and JScript.NET, whereas
others, namely C++, do not. Targeting CLR can, depending on the language youre
using, impose certain constraints on the features available. As with managed and
unmanaged code, one can have both managed and unmanaged data in .NET
applications - data that doesnt get garbage collected but instead is looked after by
unmanaged code.
4.3.2.3 Common Type System
The CLR uses something called the Common Type System (CTS) to strictly
enforce type-safety. This ensures that all classes are compatible with each other, by
describing types in a common way. CTS define how types work within the runtime,
which enables types in one language to interoperate with types in another language,
including cross-language exception handling. As well as ensuring that types are
only used in appropriate ways, the runtime also ensures that code doesnt attempt to
access memory that hasnt been allocated to it.
4.3.2.4 Common Language Specification
10
7/28/2019 Docement Packet Chapter
11/53
The CLR provides built-in support for language interoperability. To ensure that you
can develop managed code that can be fully used by developers using any
programming language, a set of language features and rules for using them called
the Common Language Specification (CLS) has been defined. Components that
follow these rules and expose only CLS features are considered CLS-compliant.
4.3.3 THE CLASS LIBRARY
.NET provides a single-rooted hierarchy of classes, containing over 7000 types.
The root of the namespace is called System; this contains basic types like Byte, Double,
Boolean, and String, as well as Object. All objects derive from System. Object. As well
as objects, there are value types. Value types can be allocated on the stack, which can
provide useful flexibility. There are also efficient means of converting value types to
object types if and when necessary.
The set of classes is pretty comprehensive, providing collections, file, screen, and
network I/O, threading, and so on, as well as XML and database connectivity.
The class library is subdivided into a number of sets (or namespaces), each
providing distinct areas of functionality, with dependencies between the namespaces kept
to a minimum.
4.3.4 LANGUAGES SUPPORTED BY .NET
The multi-language capability of the .NET Framework and Visual Studio .NET
enables developers to use their existing programming skills to build all types of
applications and XML Web services. The .NET framework supports new versions
of Microsofts old favorites Visual Basic and C++ (as VB.NET and Managed C+
+), but there are also a number of new additions to the family.
Visual Basic .NET has been updated to include many new and improved language
features that make it a powerful object-oriented programming language. These features
include inheritance, interfaces, and overloading, among others. Visual Basic also now
supports structured exception handling, custom attributes and also supports multi-
threading.
11
7/28/2019 Docement Packet Chapter
12/53
Visual Basic .NET is also CLS compliant, which means that any CLS-compliant
language can use the classes, objects, and components you create in Visual Basic .NET.
Managed Extensions for C++ and attributed programming are just some of the
enhancements made to the C++ language. Managed Extensions simplify the task of
migrating existing C++ applications to the new .NET Framework.
C# is Microsofts new language. Its a C-style language that is essentially C++
for Rapid Application Development. Unlike other languages, its specification is just the
grammar of the language. It has no standard library of its own, and instead has been
designed with the intention of using the .NET libraries as its own.
Microsoft Visual J# .NET provides the easiest transition for Java-language
developers into the world of XML Web Services and dramatically improves the
interoperability of Java-language programs with existing software written in a variety of
other programming languages. Active State has created Visual Perl and Visual Python,
which enable .NET-aware applications to be built in either Perl or Python. Both products
can be integrated into the Visual Studio .NET environment. Visual Perl includes support
for Active States Perl Dev Kit.
Other languages for which .NET compilers are available include
FORTRAN
COBOL
Eiffel
ASP.NET
XML WEB SERVICES
Windows Forms
Base Class Libraries
Common Language Runtime
12
7/28/2019 Docement Packet Chapter
13/53
Operating System
C#.NET is also compliant with CLS (Common Language Specification) and supports
structured exception handling. CLS is set of rules and constructs that are supported by the
CLR (Common Language Runtime). CLR is the runtime environment provided by the
.NET Framework; it manages the execution of the code and also makes the development
process easier by providing services.
C#.NET is a CLS-compliant language. Any objects, classes, or components that
created in C#.NET can be used in any other CLS-compliant language. In addition, we can
use objects, classes, and components created in other CLS-compliant languages in
C#.NET .The use of CLS ensures complete interoperability among applications,
regardless of the languages used to create the application.
4.3.5 CONSTRUCTORS AND DESTRUCTORS:
Constructors are used to initialize objects, whereas destructors are used to destroy
them. In other words, destructors are used to release the resources allocated to the object.
In C#.NET the sub finalize procedure is available. The sub finalize procedure is used to
complete the tasks that must be performed when an object is destroyed. The sub finalizeprocedure is called automatically when an object is destroyed. In addition, the sub
finalize procedure can be called only from the class it belongs to or from derived classes.
4.3.6 GARBAGE COLLECTION
Garbage Collection is another new feature in C#.NET. The .NET Framework
monitors allocated resources, such as objects and variables. In addition, the .NET
Framework automatically releases memory for reuse by destroying objects that are no
longer in use. In C#.NET, the garbage collector checks for the objects that are not
currently in use by applications. When the garbage collector comes across an object that
is marked for garbage collection, it releases the memory occupied by the object.
4.3.7 OVERLOADING
Overloading is another feature in C#. Overloading enables us to define multiple
procedures with the same name, where each procedure has a different set of arguments.
13
7/28/2019 Docement Packet Chapter
14/53
Besides using overloading for procedures, we can use it for constructors and properties in
a class.
4.3.8 MULTITHREADING:
C#.NET also supports multithreading. An application that supports multithreading
can handle multiple tasks simultaneously, we can use multithreading to decrease the time
taken by an application to respond to user interaction.
4.3.9 STRUCTURED EXCEPTION HANDLING
C#.NET supports structured handling, which enables us to detect and remove
errors at runtime. In C#.NET, we need to use TryCatchFinally statements to create
exception handlers. Using TryCatchFinally statements, we can create robust and
effective exception handlers to improve the performance of our application.
4.3.10 THE .NET FRAMEWORK
The .NET Framework is a new computing platform that simplifies application
development in the highly distributed environment of the Internet.
4.3.10.1 OBJECTIVE OF .NET FRAMEWORK
1. To provide a consistent object-oriented programming environment whether
object codes is stored and executed locally on Internet-distributed, or executed remotely.
2. To provide a code-execution environment to minimizes software deployment
and guarantees safe execution of code.
3. Eliminates the performance problems.There are different types of application, such as Windows-based applications and
Web-based applications.
4.3.11 FEATURES OF SQL-SERVER
The OLAP Services feature available in SQL Server version 7.0 is now called
SQL Server 2000 Analysis Services. The term OLAP Services has been replaced with the
term Analysis Services. Analysis Services also includes a new data mining component.
14
7/28/2019 Docement Packet Chapter
15/53
The Repository component available in SQL Server version 7.0 is now called Microsoft
SQL Server 2000 Meta Data Services. References to the component now use the term
Meta Data Services. The term repository is used only in reference to the repository
engine within Meta Data Services
SQL-SERVER database consist of six type of objects,
They are,
1. TABLE
2. QUERY
3. FORM
4. REPORT
5. MACRO
15
7/28/2019 Docement Packet Chapter
16/53
4.3.11.1 TABLE:
A database is a collection of data about a specific topic.
4.3.11.2 VIEWS OF TABLE:
We can work with a table in two types,
1. Design View
2. Datasheet View
Design View
To build or modify the structure of a table we work in the table design view. We
can specify what kind of data will be hold.
Datasheet View
To add, edit or analyses the data itself we work in tables datasheet view mode.
4.3.12 QUERY:
A query is a question that has to be asked the data. Access gathers data that answers the
question from one or more table. The data that make up the answer is either dynast
(if you edit it) or a snapshot (it cannot be edited).Each time we run query, we get
latest information in the dynaset. Access either displays the dynaset or snapshot for
us to view or perform an action on it, such as deleting or updating.
4.3.13 AJAX:
ASP.NET Ajax marks Microsoft's foray into the ever-growing Ajax framework
market. Simply put, this new environment for building Web applications puts Ajax
at the front and center of the .NET Framework.
16
7/28/2019 Docement Packet Chapter
17/53
CHAPTER 5
SYSTEM DESIGN
5.1 MODULES SPECIFICATION :
Hiding Based On Commitments
A Strong Hiding Commitment Scheme (SHCS)
Cryptographic Puzzle Hiding Scheme (CPHS)
An AONT-based Hiding Scheme (AONT-HS)
Packet-Hiding Techniques
Real-Time Packet Classification
Selective Jamming Attacks
Simulation
5.1.1 Hiding Based On Commitments
5.1.1.1 A Strong Hiding Commitment Scheme (SHCS):
In this Module, We propose a strong hiding commitment scheme (SHCS), which
is based on symmetric cryptography. To satisfy the strong hiding property while keeping
the computation and communication overhead to a minimum. To satisfy the strong hiding
property, the packet carrying d is formatted so that all bits of d are modulated in the last
few PHY layer symbols of the packet. To recover d, any receiver must receive and
decode the last symbols of the transmitted packet, thus preventing early disclosure of d.
We now present the implementation details of SHCS.
5.1.1.2 Cryptographic Puzzle Hiding Scheme (CPHS)
In this Module, we analyze the implementation details which impact security and
performance. Cryptographic puzzles are primitives as a method for establishing a secret
over an insecure channel. They find a wide range of applications from preventing DoS
attacks to providing broadcast authentication and key escrow schemes. Proposed a
construction called time-lock puzzles, which is based on the iterative application of aprecisely controlled number of modulo operations. Time-lock puzzles have several
17
7/28/2019 Docement Packet Chapter
18/53
attractive features such as the fine granularity in controlling tp and the sequential nature
of the computation. Moreover, the puzzle generation requires significantly less
computation compared puzzling solving.
5.1.1.3 An AONT-based Hiding Scheme (AONT-HS)
In this Module, packets are pre-processed by an AONT before transmission but
remain unencrypted. The jammer cannot perform packet classification until all pseudo-
messages corresponding to the original packet have been received and the inverse
transformation has been applied.
5.1.2 Packet-Hiding Techniques :
In this Module, packet-hiding techniques on the network performance via
extensive simulations. To implement the hiding sub layer and measure its impact on the
effective throughput of end-to-end connections and on the route discovery process in
wireless ad-hoc networks. We chose a set of nodes running 802.11b at the PHY and
MAC layers, AODV for route discovery, and TCP at the transport layer. Aside from our
methods, we also implemented a simple MAC layer encryption with a static key,
This packet-hiding methods require the processing of each individual packet by
the hiding sub layer. We emphasize that the incurred processing delay is acceptable, even
for real time applications. The SCHS requires the application of two permutations and
one symmetric encryption at the sender, while the inverse operations have to be
performed at the receiver.
5.1.3 Real-Time Packet Classification :In this module, once a packet is classified, the adversary may choose to jam it
depending on his strategy. Consider the generic communication system depicted. At the
PHY layer, a packet m is encoded, interleaved, and modulated before it is transmitted
over the wireless channel. At the receiver, the signal is demodulated, deinterleaved, and
decoded, to recover the original packet m.
18
7/28/2019 Docement Packet Chapter
19/53
5.1.4 Selective Jamming Attacks :
In this module, proposed a jamming-resistant communication model for pair wise
communications that does not rely on shared secrets. Communicating nodes use a
physical layer modulation method called Uncoordinated Direct- Sequence Spread
Spectrum (UDSSS). They also proposed a jamming-resistant broadcast method in which
transmissions are spread according to PN codes randomly selected from a public
codebook. Several other schemes eliminate overall the need for secret PN codes.
5.1.5 Simulation:
In this module, for each jamming strategy. We observe that a selective jamming
attack against RREQ messages is equally effective to a constant jamming attack.
However, selective jamming is several orders of magnitude more efficient. On the other
hand, random jamming fails to disrupt the route discovery process due to the flooding
mechanism of AODV
19
7/28/2019 Docement Packet Chapter
20/53
5.2 System Architecture:
Fig 5.2 System Architecture
20
Node
A
Jamme
r Node
Node
B
Node C
Blocks Route
request and
reply
Node Path
Server
(webService
Request)
Application
Webservice req/rec
CacheNode
Intermediate Server
(Checks the Inter
Nodes)
DB
Encryption
using 1 of 3
schemes.
Decryption of
message.
7/28/2019 Docement Packet Chapter
21/53
5.3 Use Case Diagram:
The identify 2 actors in these diagrams, the actual Machine Users and the Unix
Developers. The Machine user can; begin using the system this represents whichever
method the user will use in order to make initial interaction with the system. For
example, they may need to turn the system on via a button, simply turn the key in the
ignition or some over method. They can also view a page, click on a link or back button,
scroll up and down and close the system. The Microsoft Developer inherits all these use
cases, as well as being able to upload an html file and view a list of problems.
SERVER
Client
cryptographic puzzlehiding algorithm second
key
All or Not Transformationalgorithm third key
Receive a three keysusing cryptographic
technique
strong hiding commitmentalgorithm first key
selective jammer
ROUTER
EavesDropper
interleaver
Packets send
IP Address
randomized frequencyhopping technique
Packets receive
deinterleaver
t
send request
chating
t
check keys and download file
Fig 5.3 UseCaseDiagram
21
7/28/2019 Docement Packet Chapter
22/53
5.4 Class Diagram:
The identify 5 classes in total. A Lexer class and a Parser class - which comprise
the Analyzer package a ParsedTreeStructure class, a Renderer class and a Frontend
class. The Lexers job is to build a set of tokens from a source file. The Parser uses these
tokens built and deciphers their types. It then builds the tokens seen into nodes and parses
them to the ParsedTreeStructure class, where a tree structure of nodes is stored. This tree
is then used by the Renderer class to form a model of the page, which is in turn, is used
by the Frontend in order to display the final rendered page.
DESTINATION
RECPATHRECSTATUSFILEBYTESLENGTHACKDEINTERLEAVER
SOCKETCON()DEINTERLEAVER()RECEIVE()
SERVER
SHCSCPHSAONT-HSINTERLEAVERFILENAMEIPADDRESSFILEBYTESLENGTHACK
SOCKETCON()
SHCS()CPHS()AONT-HS()INTERLEAVER()SEND()
ROUTER
FILENAMEIPADDRESSFILEBYTES
LENGTHEAVESDROPPERRNDNOACKSELECTIVE JAMMERRANDOMIZEDFREQUENCY HOPPING
ACK()SEND()RANDOM()graph()
Fig 5.4 Class Diagram
22
7/28/2019 Docement Packet Chapter
23/53
5.5 Activity Diagram:
These activity diagrams show how the use-cases interact with the system and
interface. The User starts by initially interacting with the system. The main page is then
rendered by the system and it is displayed by the interface, which the user can view.
From here the user can click on a link, scroll or close the system. If they chose to click a
link, the system renders the new page and it is displayed by the interface, which brings
the user back to viewing. If the user chooses to scroll, the system will readjust the page
and the interface will display the new snapshot of the page, which also brings the user
back to viewing. If the user chooses to close the system, the activity diagram finishes in
an exit state.
The Unix Developer can do all of the above as it inherits all of the Machine
Users use-cases. On top of this they can upload an html file, which will then begin to be
rendered by the system. If problems are found with the code, the interface will display a
list of problems which the developer can view. Otherwise, if no problems are found, the
page will be fully rendered by the system, and then displayed by the interface, which the
developer can view. Once developer can view the page or problems, they can then decide
to load a new html file. If they do decide to, they go back to Upload New File, if not,
the activity reaches an exit
23
7/28/2019 Docement Packet Chapter
24/53
chat withserver
strong hidning commitmentalgorithm based key
all or not transformationalgorithm key
deinterleaver
key
yesno
file downloadunauthorizedto download
yesno
chat with client andsend three types of key to client
check client request
selectivejammer
file transfer
cryptographic puzzlehiding algorithm ey
randomizedfrequency
hopping technique
receive file fromserver and transfer
to client
send request
tstrong hidning commitmentalgorithm based key
cryptographic puzzle
hiding algorithm key
all or not transformationalgorithm key
packet send
server
interleaver
router client
receive three keys fromserver
packet receive
Fig 5.5 Activity Diagram
5.6 Sequence Diagram:
A sequence diagram shows, as parallel vertical lines (lifelines), different processes
or objects that live simultaneously, and, as horizontal arrows, the messages exchanged
between them, in the order in which they occur. This allows the specification of simple
runtime scenarios in a graphical manner. For instance, the UML 1.x diagram on the right
describes the sequences of messages of a (simple) restaurant system. This diagram
24
7/28/2019 Docement Packet Chapter
25/53
represents a Patron ordering food and wine, drinking wine then eating the food, and
finally paying for the food. The dotted lines extending downwards indicate the timeline.
Time flows from top to bottom. The arrows represent messages (stimuli) from an actor or
object to other objects. For example, the Patron sends message 'pay' to the Cashier. Half
arrows indicate asynchronous method calls. The UML 2.0 Sequence Diagram supports
similar notation to the UML 1.x Sequence Diagram with added support for modeling
variations to the standard flow of events.
SERVER DESTINATIONROUTER
Socket Connection
Socket Connection
send keys
chat with client
packets received
deinterleaver
File Received
keys transfered
packet send
receive keys
Acknowledgement
file Download
interleaver
Fig 5.6 Sequence Diagram
5.7 State Diagram:
25
7/28/2019 Docement Packet Chapter
26/53
.
server router client
send request
chat withserver
receive three keys fromserver
strong hidning commitmentalgorithm based key
all or not transformationalgorithm key
packet receive
deinterleaver
key
yesno
file downloadunauthorizedto download
yesno
chat with client andsend three types of key to client
strong hidning commitmentalgorithm based key
cryptographic puzzlehiding algorithm ey
all or not transformationalgorithm key
check client request
packet send
Interleaver
reeive file from
server and transferto client
selectivejammer
file transfer
cryptographic puzzlehiding algorithm ey
randomizedfrequency
hopping technique
26
7/28/2019 Docement Packet Chapter
27/53
Fig 5.8 State Diagram
CHAPTER 6
SYSTEM IMPLEMENTATION
6.1 Coding:
Once the design aspect of the system is finalizes the system enters into the coding
and testing phase. The coding phase brings the actual system into action by converting
the design of the system into the code in a given programming language. Therefore, a
good coding style has to be taken whenever changes are required it easily screwed into
the system.
6.2 Coding Standards:
Coding standards are guidelines to programming that focuses on the physical
structure and appearance of the program. They make the code easier to read, understand
and maintain. This phase of the system actually implements the blueprint developed
during the design phase. The coding specification should be in such a way that any
programmer must be able to understand the code and can bring about changes whenever
felt necessary.
Implementation is the stage of the project when the theoretical design is turned
out into a working system. Thus it can be considered to be the most critical stage in
achieving a successful new system and in giving the user, confidence that the new system
will work and be effective. The implementation stage involves careful planning,
investigation of the existing system and its constraints on implementation, designing of
methods to achieve changeover and evaluation of changeover methods.
27
7/28/2019 Docement Packet Chapter
28/53
CHAPTER 7SYSTEM TESTING
The purpose of testing is to discover errors. Testing is the process of trying to
discover every conceivable fault or weakness in a work product. It provides a way to
check the functionality of components, sub assemblies, assemblies and/or a finished
product It is the process of exercising software with the intent of ensuring that the
Software system meets its requirements and user expectations and does not fail in an
unacceptable manner. There are various types of test. Each test type addresses aspecific testing requirement.
7.1. TYPES OF TESTS:
7.1.1. Unit testing:
Unit testing involves the design of test cases that validate that the internal
program logic is functioning properly, and that program input produces valid
outputs. All decision branches and internal code flow should be validated. It is the
testing of individual software units of the application .it is done after the
completion of an individual unit before integration. This is a structural testing, that relies
on knowledge of its construction and is invasive. Unit tests perform basic tests at
component level and test a specific business process, application and/or system
configuration. Unit tests ensure that each unique path of a business process performs
accurately to the documented specifications and contains clearly defined inputs and
expected results.
7.1.2. Integration Testing:
Integration tests are designed to test integrated software components to
determine if they actually run as one program. Testing is event driven and is more
concerned with the basic outcome of screen or fields. Integration tests demonstrate that
although the components were individually satisfaction, as shown by successfully unit
testing, the combination of component s is correct and consistent. Integration
testing is specifically aimed at exposing the problems that arise from the combination
28
7/28/2019 Docement Packet Chapter
29/53
of components.
7.1.3. Functional Test:
Functional tests provide a systematic demonstration that functions tested
are available as specified by the business and technical requirements, s y s t e m
documentation, and user manuals.
Functional testing is centered on the following items:
Valid Input : identified classes of valid input must be
accepted. Invalid Input : identified classes of invalid input must berejected. Functions : identified functions must be exercised.Output : identified classes of application outputs must be exercised.
Systems/Procedures : interfacing systems or procedures must be invoked.
Organization and preparation of functional tests is focused on requirements, key
functions, or special test cases. In addition, systematic coverage pertaining to identify,
Business process flows; data fields, predefined processes, and successive processes
must be considered for testing. Before functional testing is complete, additional tests
are identified and the effective value of current tests is determined.
7.1.4. System Testing:
System testing ensures that the entire integrated software system meets
requirements. It tests a configuration to ensure known and predictable results. An
example of system testing is the configuration oriented system integration test.
System testing is based on process descriptions and flows, emphasizing pre-driven
process links and integration points.
7.1.5. White Box Testing:
White Box Testing is a testing in which in which the software tester has
knowledge of the inner workings, structure and language of the software, or at least its
purpose. It is purpose. It is used to test areas that cannot be reached from a black box
level.
7.1.6. Black Box Testing :Black Box Testing is testing the software without any knowledge of the
29
7/28/2019 Docement Packet Chapter
30/53
inner workings, structure or language of the module being tested. Black box tests, as
most other kinds of tests, must be written from a definitive source document, such
as specification or requirements document, such as specification or requirements
document. It is a testing in which the software under test is treated, as a black box
.you cannot see into it. The test provides inputs and responds to outputs without
considering how the software works.
7.1.7. Acceptance Testing:
User Acceptance Testing is a critical phase of any project and requires
significant participation by the end user. It also ensures that the system meets the
functional requirements.
7.1.8. Test Results:
All t h e t e s t cases mentioned above passed successfully. No defects
encountered.
7.2. Simulation Configurations and Results
To demonstrate the theoretical complexity results shown in the previous section,
we conduct a simulation study on the proposed system, in terms of four metrics: average
testing latency T which refers to the length of the time interval from attackers starting
sending requests till all of them are identified; average false positive rate fp; false
negative rate fn; as well as the average number of testing rounds R test which stands for
the number of testing rounds needed for identifying all the clients by each algorithm.
30
7/28/2019 Docement Packet Chapter
31/53
CHAPTER-8CONCLUSION AND FUTURE ENHANCEMENT
8.1 Conclusion:
We addressed the problem of selective jamming attacks in wireless networks. We
considered an internal adversary model in which the jammer is part of the network under
attack, thus being aware of the protocol specifications and shared network secrets. We
showed that the jammer can classify transmitted packets in real time by decoding the first
few symbols of an ongoing transmission. We evaluated the impact of selective jammingattacks on network protocols such as TCP and routing. Our findings show that a selective
jammer can significantly impact performance with very low effort. We developed three
schemes that transform a selective jammer to a random one by preventing real-time
packet classification. Our schemes combine cryptographic primitives such as
commitment schemes, cryptographic puzzles, and all-or nothing transformations
(AONTs) with physical layer characteristics. We analyzed the security of our schemes
and quantified their computational and communication overhead.
8.2Future Enhancement:
Conventional methods for mitigating jamming employ some form of SS
communications The transmitted signal is spread to a larger bandwidth following a PN
sequence. Without the knowledge of this sequence, a large amount of energy is required
to interfere with an ongoing transmission. However, in the case of broadcast
communications, compromise of commonly shared PN codes neutralizes the advantages
of SS. proposed a jamming-resistant communication model for pair wise communications
that does not rely on shared secrets. Communicating nodes use a physical layer
modulation method called Uncoordinated Direct- Sequence Spread Spectrum (UDSSS).
They also proposed, a jamming-resistant broadcast method in which transmissions are
spread according to PN codes randomly selected from a public codebook.Several other
schemes eliminate overall the need for secret PN codes. The jamming 13% of a packet is
sufficient to overcome the ECC capabilities of the receiver. The categorized jammers into
31
7/28/2019 Docement Packet Chapter
32/53
four models: (a) a constant jammer, (b) a deceptive jammer that broadcasts fabricated
messages, (c) a random jammer, and (d) a reactive jammer that jams only if activity is
sensed. They further studied the problem of detecting the presence of jammers by
measuring performance metrics such as packet delivery ratio. The proposed wormhole-
based anti jamming techniques for wireless sensor networks. Using a wormhole link,
sensors within the jammed region establish communications with outside nodes, and
notify those regarding ongoing jamming attacks.
32
7/28/2019 Docement Packet Chapter
33/53
CHAPTER 9APPENDICES
Appendix I: Codings:
Client:
Anot form:
using System;
using System.Collections.Generic;
using System.ComponentModel;using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Configuration;
namespace CLient_Application
{
public partial class AONT : Form
{
public AONT()
{
InitializeComponent();
}
public AONT(string a,string b,string c,string d,string ee)
{
InitializeComponent();
label6.Text=a;
label10.Text=b;
label11.Text=c;
textBox1.Text=d;
33
7/28/2019 Docement Packet Chapter
34/53
textBox2.Text=ee;
}
private void AONT_Load(object sender, EventArgs e)
{}
private void button1_Click(object sender, EventArgs e)
{
textBox3.Text = SSTCryptographer.Decrypt(textBox1.Text, SetKey());
}
private string SetKey()
{
if (chkIsCustomKey.Checked)
{
if (textBox9.Text != String.Empty)
{
return textBox9.Text;
}
else
{
return "SampleKey";
}
}
else
{
return "SampleKey";
}}
}
}
Client registration:
using System;
using System.Collections.Generic;
using System.ComponentModel;
34
7/28/2019 Docement Packet Chapter
35/53
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Configuration;
using System.Data.SqlClient;
namespace CLient_Application
{
public partial class client_registration : Form
{
Stringconstring =
Convert.ToString(ConfigurationSettings.AppSettings["ConnectionString"]);
string sta = "register";
Class1 cs = new Class1();
public client_registration()
{
InitializeComponent();
}
private void label2_Click(object sender, EventArgs e)
{
}
private void textBox2_TextChanged(object sender, EventArgs e)
{}
private void button1_Click(object sender, EventArgs e){
SqlConnection con = new SqlConnection(constring);
con.Open();
SqlCommand cmd = new SqlCommand("insert into client_register values('" +
textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text +
"','" + textBox5.Text + "','" + textBox6.Text + "','" + sta + "')", con);
cmd.ExecuteNonQuery();
MessageBox.Show("Successfully register");
35
7/28/2019 Docement Packet Chapter
36/53
con.Close();
}
private void client_registration_Load(object sender, EventArgs e)
{
textBox1.Text = Convert.ToString(cs.idgeneration());
}
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
this.Hide();
Form1 fm = new Form1();
fm.Show();
}
}
}
Client request:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;using System.Configuration;
namespace CLient_Application
{
public partial class Client_Request : Form
{
Stringconstring =
Convert.ToString(ConfigurationSettings.AppSettings["ConnectionString"]);
string msg = "Send File";
36
7/28/2019 Docement Packet Chapter
37/53
string sta = "waiting for reply";
string id;
Class1 cs = new Class1();
public Client_Request()
{
InitializeComponent();
}
public Client_Request(string a,string b)
{
InitializeComponent();
label11.Text = b;
id = a;
label5.Text = b;
label13.Text = a;
}
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
groupBox1.Visible = true;
groupBox1.Visible = false;
}
private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
groupBox2.Visible = true;
groupBox1.Visible = false;
}private void linkLabel4_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
this.Hide();
Form1 f1 = new Form1();
f1.Show();
}
private void Client_Request_Load(object sender, EventArgs e)
{
37
7/28/2019 Docement Packet Chapter
38/53
this.sHCSTableAdapter.Fill(this.packetDataSet.SHCS);
label9.Text = Convert.ToString(cs.request_id());
dataGridView1.Visible = false;
dataGridView2.Visible = false;
dataGridView3.Visible = false;
}
private void linkLabel3_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
groupBox1.Visible = true;
groupBox2.Visible = false;
}
private void button1_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(constring);
con.Open();
SqlCommand cmd=new SqlCommand("insert into Request_File
values('"+label9.Text+"','"+label5.Text+"','"+label13.Text+"','"+textBox1.Text+"','"+labe
l4.Text+"','"+msg+"','"+sta+"')",con);
cmd.ExecuteNonQuery();
MessageBox.Show("Request send to ADMIN");
con.Close();
}
private void linkLabel9_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
chat_with_server cws = new chat_with_server(label11.Text);cws.Show();
}
private void linkLabel5_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
dataGridView1.Visible = true;
dataGridView2.Visible = false;
dataGridView3.Visible = false;
}
38
7/28/2019 Docement Packet Chapter
39/53
private void dataGridView1_CellContentClick(object sender,
DataGridViewCellEventArgs e)
{
int curRow = int.Parse(e.RowIndex.ToString());
string reqid, clid, cliname, enc,stat;
reqid = dataGridView1.Rows[curRow].Cells[0].Value.ToString();
clid = dataGridView1.Rows[curRow].Cells[1].Value.ToString();
cliname = dataGridView1.Rows[curRow].Cells[2].Value.ToString();
enc = dataGridView1.Rows[curRow].Cells[3].Value.ToString();
SHCS_Decrypt_key sc1 = new SHCS_Decrypt_key(reqid, clid, cliname, enc);
sc1.Show();
}
private void linkLabel6_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
dataGridView3.Visible = true;
dataGridView1.Visible = false;
dataGridView2.Visible = false;
}
private void dataGridView3_CellContentClick(object sender,
DataGridViewCellEventArgs e)
{
int curRow = int.Parse(e.RowIndex.ToString());
string clid, reqid, cname, sd, ed;
clid = dataGridView3.Rows[curRow].Cells[0].Value.ToString();
reqid = dataGridView3.Rows[curRow].Cells[1].Value.ToString();cname = dataGridView3.Rows[curRow].Cells[2].Value.ToString();
sd = dataGridView3.Rows[curRow].Cells[3].Value.ToString();
ed = dataGridView3.Rows[curRow].Cells[4].Value.ToString();
cryptographic_puzzle sc1 = new cryptographic_puzzle(clid, reqid, cname, sd, ed);
sc1.Show();
}
private void linkLabel7_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
39
7/28/2019 Docement Packet Chapter
40/53
}
private void dataGridView2_CellContentClick(object sender,
DataGridViewCellEventArgs e)
{
}
private void linkLabel7_LinkClicked_1(object sender, LinkLabelLinkClickedEventArgs
e)
{
dataGridView2.Visible = true;
dataGridView1.Visible = false;
dataGridView3.Visible = false;
}
private void dataGridView2_CellContentClick_1(object sender,
DataGridViewCellEventArgs e)
{
int curRow = int.Parse(e.RowIndex.ToString());
string clid, reqid, cname, sd, ed;
clid = dataGridView2.Rows[curRow].Cells[0].Value.ToString();
cname = dataGridView2.Rows[curRow].Cells[1].Value.ToString();
reqid = dataGridView2.Rows[curRow].Cells[2].Value.ToString();
sd = dataGridView2.Rows[curRow].Cells[3].Value.ToString();
ed = dataGridView2.Rows[curRow].Cells[4].Value.ToString();
AONT att = new AONT(clid, reqid, cname, sd, ed);
att.Show();
}private void linkLabel8_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
receive_file rf = new receive_file(label11.Text,id);
rf.Show();
}
}
}
40
7/28/2019 Docement Packet Chapter
41/53
SHCS De-encrypt:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Anu.Header.BMP;
using Anu.Steganography.Bitmap.Header;
using System.IO;
using System.Configuration;
using System.Data.SqlClient;
namespace CLient_Application
{
public partial class SHCS_Decrypt_key : Form
{
string outputPath = "";
string inputPath = "";
string message = "";
string outputtextpath = "";
public SHCS_Decrypt_key()
{
InitializeComponent();}
public SHCS_Decrypt_key(string a,string b,string c,string d)
{
InitializeComponent();
label4.Text = d;
}
private void SHCS_Decrypt_key_Load(object sender, EventArgs e)
{
41
7/28/2019 Docement Packet Chapter
42/53
}
private void pictureBox1_Click(object sender, EventArgs e)
{
}
private void button2_Click(object sender, EventArgs e)
{
OpenFileDialog openFileDialog = new OpenFileDialog();
string picfile = "";
openFileDialog.Filter = "Picture Files|*.bmp;";
picfile = label4.Text;
pictureBox1.Image = Image.FromFile(picfile);
outputPath = picfile;
}
private void button1_Click(object sender, EventArgs e)
{
saveFileDialog1.Filter = "txt File|*.txt";
saveFileDialog1.FilterIndex = 1;
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
outputtextpath = saveFileDialog1.FileName;
textBox1.Text = outputtextpath;
}
}
private void DecryptMessage(string DecryptedImagePath)
{try
{
Stegano newStegano = new Stegano();
message = newStegano.RetriveMessage(DecryptedImagePath);
StreamWriter stWriter = new StreamWriter(outputtextpath);
stWriter.WriteLine(message);
stWriter.Flush();
stWriter.Close();
42
7/28/2019 Docement Packet Chapter
43/53
}
catch (Exception)
{
MessageBox.Show("Error Occured While Decrypting Image..", "Error",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void button3_Click(object sender, EventArgs e)
{
DecryptMessage(outputPath);
MessageBox.Show("Get Key open the path");
}
}
}
SERVER FORM:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace SErverApplication{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void label1_Click(object sender, EventArgs e)
43
7/28/2019 Docement Packet Chapter
44/53
{
}
private void button1_Click(object sender, EventArgs e)
{
string txt1 = textBox1.Text.ToUpper();
string txt2 = textBox2.Text.ToUpper();
if (txt1 == "ADMIN" && txt2 == "ADMIN")
{
this.Hide();
serverr srr = new serverr();
srr.Show();
}
else
{
MessageBox.Show("Invalid Admin");
}
textBox1.Text = "";
textBox2.Text = "";
}
}
}
44
7/28/2019 Docement Packet Chapter
45/53
Appendix II: Snap Shots:
Sender Form:
Client Form:
45
7/28/2019 Docement Packet Chapter
46/53
Module Form:
Response Connection:
46
7/28/2019 Docement Packet Chapter
47/53
Method 1:
Method 2:
47
7/28/2019 Docement Packet Chapter
48/53
Method 3:
Packet Classification:
48
7/28/2019 Docement Packet Chapter
49/53
Simulation:
49
7/28/2019 Docement Packet Chapter
50/53
Packet Received:
50
7/28/2019 Docement Packet Chapter
51/53
Packet receive order-wise:
Packet De-Interleaver:
51
7/28/2019 Docement Packet Chapter
52/53
Download File:
REFERENCES[1] T. X. Brown, J. E. James, and A. Sethi. Jamming and sensing of encrypted wireless
ad hoc networks. In Proceedings of MobiHoc, pages 120130, 2006.
[2] M. Cagalj, S. Capkun, and J.-P. Hubaux. Wormhole-based antijamming techniques in
sensor networks. IEEE Transactions on Mobile Computing, 6(1):100114, 2007.
[3] A. Chan, X. Liu, G. Noubir, and B. Thapa. Control channel jamming: Resilience andidentification of traitors. In Proceedings of ISIT, 2007.
[4] T. Dempsey, G. Sahin, Y. Morton, and C. Hopper. Intelligent sensing and
classification in ad hoc networks: a case study. Aerospace and Electronic Systems
Magazine, IEEE, 24(8):2330, August 2009.
[5] Y. Desmedt. Broadcast anti-jamming systems. Computer Networks, 35(2-3):223236,
February 2001.
52
7/28/2019 Docement Packet Chapter
53/53
[6] K. Gaj and P. Chodowiec. FPGA and ASIC implementations of AES. Cryptographic
Engineering, pages 235294, 2009.
[7] O. Goldreich. Foundations of cryptography: Basic applications. Cambridge
University Press, 2004.
[8] B. Greenstein, D. Mccoy, J. Pang, T. Kohno, S. Seshan, and D. Wetherall. Improving
wireless privacy with an identifier-free link layer protocol. In Proceedings of MobiSys,
2008.
[9] IEEE. IEEE 802.11 standard. http://standards.ieee.org/getieee802 download/802.11-
2007.pdf, 2007.
[10] A. Juels and J. Brainard. Client puzzles: A cryptographic countermeasure against
connection depletion attacks. In Proceedings of NDSS, pages 151165, 1999.
http://standards.ieee.org/getieee802Recommended