Você está na página 1de 4

(IJCSIS) International Journal of Computer Science and Information Security,

Vol. 13, No. 8, August 2015

Using parallel computing to implement security attack

Sedeeq Hassn Albana Ali Al-Khazraji


PHD Student in Computing and Information Sciences, Rochester Institute of Technology,
New York, USA

In 2003, Philip Oechslin invented a new technology to implement Oechslin’s algorithm. These implementations normally use
the security attack called Rainbow table. Rainbow table is time normal personal computer or sometime GPU in the computer.
memory trade off which aims to reduce the calculation happened
during the cryptanalysis. Rainbow table reduce the required time
for the attack, but generating of the Rainbow table required long
II. RELATED WORKS
time. In this paper we try to achieve parallel implementation for One of the previous work is the RainbowCrack considered
Rainbow table using Message Passing Interface (MPI) with the one of the most popular rainbow table cracker it is a general
frame work Intel Cluster Suite. The proposed system support five purpose implementation of the Oechslin’s algorithm.
hashing algorithms, yet our case study was two windows hashing RainbowCrack project is software to crack hashes using
algorithms lm and ntlm. We used Linux operating system in RC rainbow table in this implementation rainbow table are sorted
computing lab and made our parallel implementation using 201 and saved in the hard disk. RainbowCrack consist of many
processing unit to generate Rainbow table. We decrease the time to software for example rtgen program which used to create
generate table from 7.1 days in sequential implementation to 46.4 rainbow table, rtsort program which used to sort the given
minutes in parallel implementation; as a result we achieve 221.5 rainbow table after loading it to memory and rtcrack which
speedup.
used to crack a specific hash or hashes list using the sorted
Keywords- Parallel processing, Security, Privacy & login, rainbow table. RainbowCrack is efficient implementation to
Rainbow tables. rainbow table but it need a long time to generate the table days
or weeks depending on the options for creating the table which
depend on the types of passwords want to cracks[3][8].
I. INTRODUCTION
Another interesting work in this field is the thesis of
In the last few years, security represent on the most
Michael S. Taber, “Distributed Pre-computation for a
important challenges in computer world. The need of security
Cryptanalytic Time-Memory Trade-Off” in his work Taber
increases directly proportional to the increases to the attack. As
made parallel implement for RainbowCrack using local
everybody know there are different types of attacks, and one of
network on windows operating system. This implementation
the most important attacks is the attack on passwords. The
include three hashing algorithms lm, md5 and SHA1 [9].
password always encrypted using an encryption algorithm and
However this thesis present an efficient implementation for
the general idea of encryption algorithms is to make the
RainbowCracker, but it not supports some important hashing
required time to break the encrypted information not worth the
algorithms for example ntlm.
value of the information. In the other words, the power of
attack on password different in the required time to break the Edward R. Sykes in his paper “An improved parallel
password; for example brute force attack considered a implementation of RainbowCrack using MPI” shows another
guaranteed method to break the password. The problem in the implementation for RainbowCrack. He made parallel
brute force attack it’s required a long time to break the implementation of RainbowCrack using SHARCNET
password. As a result, many algorithms appeared to decrease supercomputer. And he showed the implementation of
the required time to breaking the password. One of these generating windows hash of length 14 characters by decreasing
interesting algorithms is proposed by Philippe Oechslin in his the required time to generate the table [10].
paper “Making a Faster Cryptanalytic Time-Memory Trade-
Off”, Oechslin algorithm made a tread between time and In this paper we made a development for Taber thesis we
memory space. This algorithm try to reduce the cryptanalysis make generation rainbow table for supporting more algorithms,
time dramatically using Rainbow tables [1] [2] [6]. then support sorting and cracking features. With support other
operating system for example Linux. Then after sequential and
Rainbow tables simply is precomputed table contain many parallel implementation for rainbow table completed we test
passwords calculated in a specific method this table used to the generated tables and get the same result. Our test achieved
cryptanalysis passwords instead of trying to attack the by cracking windows 7 and windows 8 login passwords which
password one by on like brute force attack[7]. There are many encrypted using ntlm algorithm.
implementation for Oechslin algorithm for example
RainbowCrack [3] and Cryptohaze GPU Rainbow Cracker [4],
but these implementation considered basic implementation of

35 http://sites.google.com/site/ijcsis/
ISSN 1947-5500
(IJCSIS) International Journal of Computer Science and Information Security,
Vol. 13, No. 8, August 2015
III. SOLUTION DESIGN master as specific function and the workers (slaves) has
Our solution will focused on using parallel processing to different function. We will summarize these function as
generate Rainbow table. first we will describe the sequential following
implementation then the parallel approach. B. Master does the following functions:
1. Send task to a worker: sending a start of the chain
A. Rainbow Table sequential generation
and the client will do the calculation.
In our solution we focused on generating rainbow table
using MPI. The algorithm of creating rainbow table is illustrate 2. Get next task and
in the following steps: 3. Until complete the total number of chains.
List (1): Generating rainbow table. 4. Receive task result from any worker: it mean the
1- Start master receive portion of the rainbow table from
2- Generate password plain text rang space. each client then combine these portions to single
3- Pick a random location in plain text rang space and get the rainbow table.
real value for plain text
4- Calculate hash value for selected text C. Worker does the following functions:
5- Reduce hash to a new location 1. Receive task from the master.
6- if not reached chainlength go to step 3 2. Compute task results: by creating temporary file
7- store first plain text and last hash value in rainbow table and each row this file contains tow values
generating rainbow table is a complex process figure (1) can represent the start point and the end point of the
help to simplified this process: chain. The calculating of the end point explained
in List (1).
Send results to the master by sending the generated rainbow
table portion to the master.

After generating rainbow table it need to sort the table to reduce


the searching time. Then we use the generated rainbow table to
crack the windows 7 and windows 8 hashed passwords. We
obtain windows password using “quarkspwdump” software,
which is open source program we can easily configure and use
to obtain the password to be cracked.

IV. RESULT ANALYSIS


The sequential implementation in our work was done using
Figure generating rainbow table [1] Windows 7 operating system and the specification of the
computer was CPU used “Intel Xeon E312xx (Sandy Bridge)
Where the simple H represent a specific hashing algorithm. Our 2.6 GHz” and the memory size is 4G. While in parallel
solution support five algorithms: md4, md5, sha1, lm and ntlm. implementation we used Research Computing Laboratory (RC
And the symbols R1, R2 and R3 represent reduction function; computing lab) which is a computing environment provide by
the only condition for reduction function is that to return value RIT used to provide high resources and make parallel
within the range of the password plain text. The process start processing experiments. According to their website the
from the beginning of the chain and repeated number of times specification of RC computing lab is [5]:
equal to chain length. And finally only two values will be
stored in rainbow table which is chain start and last hashed.  250 core HPC cluster with 1.3 TB of RAM and 10
RainbowCrack consists of the following components [9] [3]: Gig interconnect
rtgen: program to generate rainbow tables.  64 port 10 Gigabit switch
rtsort: program to sort rainbow tables generated by rtgen.  70 TB of network attached storage
rcrack: program to lookup rainbow tables sorted by rtsort
All these programs can run either sequential or multithread and We implement different algorithms using different parameter.
rtgen is the program required the longest time of Oechslin’s The parameters we used in our implementation is
algorithm this program take the largest ratio of the time.
hash_algorithm: represent the algorithm used to create the
The last section represent the sequential implementation for
table we support five algorithms they are md4, md5, sha1, lm
Oechslin algorithm for generating rainbow table. Our work is to
and ntlm
enhance this implementation we use Master-Worker parallel
implementation for this algorithm. In our implementation the

36 http://sites.google.com/site/ijcsis/
ISSN 1947-5500
(IJCSIS) International Journal of Computer Science and Information Security,
Vol. 13, No. 8, August 2015
charset: represent all possible characters for the plaintext of Some difficulties in such programs is the debugging problem
the password we want to crack. which is one of the hardest difficulties in this work; Microsoft
supports MPI debugging in Visual Studio 2010 but it stops
minlen: Minimum number of characters of the password. supporting MPI debugging in Visual Studio 2013. And there
are many developer ask to return this feature in the following
maxlen: Maximum number of characters of the password. versions of visual studio.
table_index: the Index value refers to a number between 0 and
VI. CONCLUSIONS
key space max -1, and it is used to prevent collisions between
different rainbow tables.
Rainbow Table represent an efficient method to attack
chain_len: Chain length which represent the number of hashes passwords, it reduces the time of breaking the hashed password
stored in each chain. because it is precomputed and stored in memory. Creating the
rainbow table needs a large amount of time. We use parallel
chain_count: Number of Chains can be stored inside Rainbow processing to decrease the required time to generate rainbow
Tables The more chains we create, the more hashes we can table. As a recommendation we suggest after our experiment in
crack. this work we suggest:

After making different type of experiments we get the  Using longer password
different results here we try to focus on ntlm algorithm  Using more complex password
because we used this algorithm to crack windows 7 password.
 We need more advanced login technique.
The result of sequential implementation using single core
is:.
VII. FUTURE WORK

# Algorithm Charset Min Max Chain Chain Generation Time Generated


len len len count file size As a future work for this work we are planning to implement
Minutes Days
the crack operation in parallel using MPI. Beside, making this
1 Ntlm alpha 1 7 10000 10000000 816.62 0.22 152 MB system support other algorithms .And create better user
2 Ntlm ascii-
32-95
1 14 10000 100000000 10290.65 7.14 1.48 GB interface to provide easier use for the program for example
design web based application for this program.

The result of parallel implementation using 201 core one REFERENCES


for Master and 200 workers is: [1] Wikipedia, Rainbow Table, Retrieved Jun 13, 2015, from
# Algorithm Charset Min Max Chain Chain count Generation Time Generated http://en.wikipedia.org/wiki/Rainbow_table
len len len
Minutes
file size
[2] P. Oechslin, “Making a faster cryptanalytic time-
3 Ntlm alpha 1 7 10000 10000000 3.38 152 MB memory trade-off”, in Advances in Cryptology –
CRYPTO 2003 (D. Boneh, ed.), vol. 2729 of Lecture
4 Ntlm ascii- 1 14 10000 100000000 46.45 1.48 GB
32-95
Notes in Computer Science, pp. 617–630, Springer-
Verlag, 2003.
V. DISCUSSION [3] RainbowCrack Project. RainbowCrack project - Rainbow Table
Generation and Sort. Retrieved Aug 8, 2015, from
From the previous results we see huge decreasing of the http://www.project-rainbowcrack.com/generate.htm.
generating time of the rainbow table because the calculation of [4] Cryptohaze, GPU Rainbow Cracker, Retrieved Jul 20, 2015,
each chain is independent of calculation of other chains i.e. from http://www.cryptohaze.com/gpuRainbowCracker.php
this rainbow table generation is massively parallel problem. [5] RCLab, Research Computing Laboratory, Retrieved Mar 1,
2015, from http://rc.rit.edu/rclab.html
We can reduce the Generation Time of 152 MB of data from [6] H. Mathur and Z, Alam, “Analysis In Symmetric And
816.62 Minutes in sequential implementation to 3.38 in Asymmetric Cryptology Algorithm,” International Journal of
parallel implementation. And reduce the Generation Time of Emerging Trends & Technology in Computer Science
1.48 GB of data from 7.14 days in sequential implementation (IJETTCS), vol. 4, no. 1. January-Febuary 2015.
to 46.45 Minutes in parallel implementation [7] D. Melber, "ATTACKING WINDOWS PASSWORDS",
Internal Auditing, vol. 26, no. 4, pp. 42-5. Jul-Aug 2011
The Speed up and the efficiency in this implementation is: [8] S. Marechal, “Advances in password cracking”, Journal in
Case Sequential time Parallel time Speed up Eff Computer Virology, vol. 4, no. 1, pp. 73-81. October 2007.
#1 & #3 816.62 3.38 241.19 1.19 [9] M. S. Taber, “Distributed Pre-computation for a
#2 & #4 10290.65 46.45 221.53 1.10
Cryptanalytic Time-Memory Trade-Off”, Master thesis,
Rochester Institute of Technology, October 2008.

37 http://sites.google.com/site/ijcsis/
ISSN 1947-5500
(IJCSIS) International Journal of Computer Science and Information Security,
Vol. 13, No. 8, August 2015
[10] E. R. Sykes, and W. Skoczen, "An improved parallel AUTHORS PROFILE
implementation of RainbowCrack using MPI", Journal of Sedeeq Hasan Albana Ali Al-Khazraji is a lecturert in
Computational Science, vol. 5, no. 3, pp. 536-541, 2014. Computer Sciences Department, College of Computers and
Mathematics. University of Mosul. he received his MSC
degree in computer sciences in 2011 in the specialty of
operating system and computer networks. Currently he is a
PH.D. student in B. Thomas Golisano College of Computing
and Information Sciences, Rochester Institute of Technology.
He interest with Distributed systems, Databases, Security and
Privacy issues.

38 http://sites.google.com/site/ijcsis/
ISSN 1947-5500

Você também pode gostar