About Software Implementation of Network Steganography Retransmission Based Algorithm
About Software Implementation of Network Steganography Retransmission Based Algorithm
Email address:
[email protected] (D. Pavlin), [email protected] (A. Makosiy)
Abstract: Hybrid network steganography method RSTEG was implemented for Windows TCP/IP stack. The implementation
description is provided, including further development prospects.
Keywords: Steganography, Retransmission Mechanism, RSTEG Algorithm
the base of retransmission timer relay RTO (Retransmission Free open-source library SharpPcap was used for parsing
Timeout). and analysis of network packets on the first level of the
It all begins with sender transferring a segment with application [3]. Another free open-source library WinDivert [4]
legitimate data to receiver (Fig. 2). After reception, the was used at the second level of the application. This library
receiver according to the logic of TCP protocol must answer allows applications running in user mode, to capture, modify
with ACK segment. But receiver doesn't do it intentionally and drop network packets from the Windows network stack.
which results in re-sending segment after timeout. The first level application provides mechanism of message
When timeout expires on the sender side, the segment is exchange between sender and receiver (both legitimate and
sent again, but in this case, before sending it, sender modifies hidden data). This level is responsible for establishing a
payload by embedding steganogram. After that segment is connection and sending messages over a network. Description
sent to the receiver, which deliberately did not respond with of RSTEG algorithm doesn’t specify exactly when receiver
ACK segment. doesn’t need to respond. Here it is solved by introduction of a
secret key in payload segment – sender and receiver should
establish some key (sequence of bytes) in advance which can
change from a session to session.
When sending a message, its payload is analyzed by the
routine of reading and analyzing of packets on presence of a
key at it. Analysis occurs on both client and server side.
To increase adaptability and stegfirmness of the method -
subroutine of dropping packets uses a random number from
one to four which is responsible for quantity “not answered”
segments.
Detailed application diagram is presented on Fig. 4. Ovals
represent separate processes. Functions (methods) are
Figure 2. General algorithm of RSTEG italicized, for greater visibility; their names do not accurately
match software implementation. Also, along with functions in
Each of network steganography methods use features of a parentheses it is specified within what process they are
network protocols, or payload fields for transferring hidden executed. Transmitted data is specified above arrows.
information. Hybrid methods use, both features of protocols, The communication session starts with a connection using
and network packets. sockets that are bound to specific ports. Port may vary from
The purpose of this work is an implementation of hybrid session to session; it is passed as a parameter. After the client
steganographic method of data transfer called RSTEG is connected to the server, subprograms of network packets
(Retransmission Steganography). The method was proposed analysis are started on two ends.
by Krzysztof Szczypiorski and his colleagues [1], they also Network packet analysis routines analyze byte sequence
presented simulation of this method in NET2 Simulator. payload fields for key segments. For this purpose one of the
most productive methods by Hafthor Stefansson is used.
3. Software Implementation After the connection is established, the exchange of
messages begins (step 1, 2). We assume that legitimate data is
transferred. It should be noted that at this time, the routine of
reading and analysis of packets already works and examines
the payload of each incoming packet. At some point (step 3),
the sender decides to transfer a key. The packet that contains it
is parsed on the client and server, and if successful,
subroutines of steganogram injection and drop packets are
started. IP address and port are passed as input parameters
(step 4).
Then client sends a message. Drop process is running on the
server side, it receives the message, but doesn't answer. Timer
expires on the client side, and it initiates repeated transfer of a
Figure 3. Application design segment. Here, the steganogram injection subprogram is also
started. After the expiration of the timer and before sending
For the implementation of RSTEG a two-tier client-server the message to a network, a segment gets to this subprogram
application has been developed (Fig. 3). where its payload changes, and then the segment goes down
Each part of the application is working with different levels the stack and gets to a network. Then the steganogram
of abstractions. This resulted in choosing of different injection subroutine stops the work. The server receives a
programming languages. For the first and second level C # and packet with steganogram and doesn't answer again, that
C were chosen, respectively. involves the third transfer – containing legitimate data.
American Journal of Networks and Communications 2015; 4(1): 1-4 3