Network Security Final Report Secure Message Transfer System (SMTS)

smileybloatΔίκτυα και Επικοινωνίες

20 Νοε 2013 (πριν από 3 χρόνια και 8 μήνες)

75 εμφανίσεις


1

Network Security

Final

Report

Secure Message Transfer System (SMTS)



FROM:

Shawn Jonnet



201 Deer Meadow Dr.



Pittsburgh PA, 15241


TO:


Professor Prashant Krishnamurthy


DATE:

July 2
9
, 2003


SUBJECT:

Summer Semester
Final

Report



Secure Message Transf
er
System





Project Name









Version

Status

NightCrawler:
Secur
e Message Transfer System


0.9
.9.1



Description of Project

Development of a public key messaging system for tra
nsferring messages across un
-
secure lines. The project will consist of three major parts. One, a public key encryption
decryption implementation in software. Two, a messaging protocol and three, an easy
to use interface for users. The software will allo
w the user to write a text message in a
graphical text editor, encrypt and send the message through a messaging or email
protocol. The receiver will be able to use his private key and decrypt the message and
view it in a graphic text viewer. The project
will involve debating possible public keys
for use and messaging methods, development of system and testing. Proposed public
key encryption methods include RSA, ElGamal, and Menezes
-
vanstone. Other
weighing factors for development include key size and en
cryption, decryption time.
Transfer methods include email, and messaging protocols. The system will be
portable across operating systems and architectures, so languages for development
will be limited. Possibilities include java, or scripting based langu
ages. The
development will begin with a console
-
based system of encrypting and decrypting from
there a messaging will be implemented. Finally a GUI will be developed and
implemented with existing modules.



Technical Approach

Code done in Java




2

Report

The project has come along
tremendously
.
I have implemented everything I set out to
do. As with most software in the world there are bugs left to work out but so far they
have been only minor ones. The secure messenger service has to sides to its

design.
A server which runs remotely or locally to allow users to log in and message one
another. The server note includes an optional gui. The second is the client which is a
gui designed to allows users to message one another easily just like aim, or

other
messaging clients. It also for the wiser includes some irc chat commands.


The client and server are able to send secure messages by creating public and
private keys on client side and sending public keys upon request.
Public and private
keys fo
r each client are generated on the client side upon startup. I choose a key size
of 1024 for security and standards. I implemented my own RSA algorithm using the
Big Integer class to allow for calculating my keys.
Requests
occur

when a user wants
to mes
sage another user securely and all of this is done in the background. Making it
easy and simple for the user to send encrypted messages. I have
also
included
commands to request key by hand if one
feels inclined to do
.


How it works is a user creates a

message and sends it
. I
f it is to be encrypted the
client software checks for the users key
,

if it does not have it already it sends a
request to the user to get the users public key. The other user
’s software

獥nd
s

the
pub汩挠步y⁢a捫cand⁷a楴猠fo爠rhe

me獳age⸠ The⁣汩敮t⁳ f瑷a牥⁳rnd楮i⁴he 獳sge
瑨en⁳ o牥猠瑨e y⁥n捲cp瑳t瑨e 獳sge⁡nd⁳ nd猠楴sto⁴he o瑨e爠r獥爮

The瑨e爠
user’s client software then decrypts the message with its private key and displays it for
瑨e u獥爮

周楳⁥n捲cp瑩tg⁡nd
de捲cp瑩tg⁩猠 汳漠done 瑨e⁢a捫c牯rnd⁴o h楤i⁴he
wo牫⁦牯r⁴he u獥爮r⁉⁨ave⁩ 捬畤edn⁴he m楮椠捤牯m⁴he⁳ u牣攠捯de⁢ina物e猠
and
橡ja⁤o捳c
瑯⁴he⁰牯橥c琮†䤠捲ca瑥d 爠rxe捵te猠so⁡汬ow fo爠ra獩敲s
usage
⸠.
䤠have
a汳漠
up汯ld


ve牳ron‰⸹
⸹⸱

瑯⁴he

p牯橥c琠page⁡nd⁵p汯lded⁤ocumenta瑩tn on⁣污獳e猠
and me瑨od猠s have⁷r楴瑥n 景爠瑨e⁰牯re捴c†呯⁶楥i⁴he⁰牯橥捴c⁧o⁴o
h瑴p:⼯獯u牣rfo牧e⹮e琯p牯橥捴猯n楴ih瑣牡w汥l
.


To⁵獥 瑨e⁰牯r牡r⁹o
u 獴s獴a牴⁴re⁳ 牶e爠rypen楮i⁡⁣ommand⁷楮iow⁡nd
typing in “java

橡爠
乩gh瑃牡t汥牓lrver
.jar [Options]”. Options include

gu椠景爠瑨e
g牡rh楣慬⁵獥爠rnv楲onmen琬
-
he汰l景爠re汰⁡nd

debug⁴o⁥nable⁤ebugg楮iode.†
乥k琠youeed 瑯⁳ a牴rup⁴he⁣汩
en琠if⁴he⁳e牶敲⁩猠汯捡氠lou⁣ n 獴sdoub汥l捬c捫n
the executable otherwise open a command window and type in “java

橡爠
k
楧ht
C
rawler_0.9.9.1.jar [Options] [Host]”. Options include

he汰land

debug⸠⁈ 獴s楳i
瑨e ho獴sname of⁴he⁳e牶e爠you⁡牥⁴特楮i
瑯⁣ nne捴cto⸠⁏nea獴sno瑥⁹ou need⁴o
have⁴he va⁲ n瑩te⁩n獴s汬ed⁴o⁲ n⁴h楳⁰牯g牡r.


Once you’re running you can connect and create yourself a username. If you want to
u獥⁩牣⁣ mmand猠sndeed⁴o
汥l牮

瑨em
I

瑹pe he汰l瑯⁧e琠a楳瑩湧f
楲c

捯mmands

available. That’s about it its pretty simple to use the learning curve isn’t very hard
ma歩湧⁩琠appea獡b汥ltoew⁣ me牳r


tith my⁦楮a氠牥lo牴⁉rhave⁩ 捬畤ed⁴he m楮椠id牯r 瑨a琠䤠spo步f ea牬楥爬⁴he⁳ u牣攠

3

code and java documentation for th
e latest version.


Status

Client:

-

Gui Layout Complete

-

Global Messaging Complete

-

Connecting and Disconnecting Complete

-

Buddy List Layout Complete

-

Buddy List Updates

-

Enabled Single User Messaging

-

Added Enter Mnemonic for sending messages

-

Added whois, nick and list to client

-

RSA Encryption Complete

-

Added to Gui Menu Items


Server:

-

Gui and Command Line Interface Complete

-

Connection and Disconnecting Client Handling Complete

-

Global Messaging Complete
-

User Lists Complete

-

Added messaging Single Users

-

Added whois, nick and list to server

-

Add RSA Encryption


to
-
do
:

-

Add To Server Gui Menu


Change Log
:

-

Corrected Buddy List Sending In Server When 0 Users Existed

-

Added irc command for username changing and messag
ing single users


-

Corrected closing connection

-

Implemented RSA encryption and decryption

-

Reworked user data storage on server

-

Added Gui menu Item for encrypting




Project Manager

Shawn Jonnet


Team Members

Role

Name

Project Manager and Dev
eloper

Shawn Jonnet