Completed

Python Code

Job Description:

Build your simplified version of SSL, called mySSL, in Python. Use client server sockets to create a TCP connection. Also, use the SSL record format for both your handshake and data phase messages. Your client server programs must do the following:

Handshake Phase (to begin with, use the SSL handshake from attached figure)

• The client and the server authenticate each other using certificates. You need to create the certificates (self-signed) and include them in the mySSL messages.

• The client also informs the server what data encryption and integrity protection scheme to use (there is no negotiation). Pick your favorite integrity protection and encryption algorithms.

• The client and server also send encrypted nonces to each other encrypted with the other side’s public key (the public keys are obtained from the certificates). These nonces are then xored to create a master secret.

• Compute a hash of all messages exchanged between the client and server and exchange these hashes. Use keyed SHA-1 for computing the hash. The client appends the string CLIENT for computing its keyed hash and the server appends the string SERVER for computing its keyed hash. Verify the keyed hashes at the client and the server.

• Generate four keys (two each for encryption, and authentication, in each direction of the communication between the client and the server) using this master secret. Pick your own key generation function (it should be a function of the master secret). You can use a hash function, if you like.

Data Phase

• Transfer a file, at least 50 Kbytes long, from the server to the client.

• Decrypt the file at the client and do a diff of the original and the decrypted file to ensure that the

secure file transfer was successful.

(5 points for comments in the code, 5 points for error/exception handling in the code)

Use opnessl or any other security library of your choice in any form convenient to you to generate certificates and to extract public keys from certificates and for keyed hash computation, encryption, and data integrity protection.

Include print commands in your code to show.

1. a failed verification of keyed hashes (possibly due to corruption or changes in one of

the handshake messages), and

2. a successful client-server mutual authentication, key establishment, and secure data transfer.

Submit your code along with the output files and a readme file. The readme file should briefly explain how the code is organized.

Skills: Python, Security, Network Security

About the Client:
( 0 reviews ) Salt Lake City, United States

Project ID: #36274419

Awarded to:

felix8859

I am a python expert. I have read your specification. I can finish this project perfectly. -

$50 USD in 5 days
(2 Reviews)
1.7

12 freelancers are bidding on average $78 for this job

omnamasshivay

hii i am an python expert i have seen your attachment can u text me so that we can discuss over it

$65 USD in 3 days
(8 Reviews)
4.5
robartint

Hello I am a professional python developer. My main specializations are automation, web scrapers and bots development. I have already developed over 200 scrapers. From the simplest (for example, a competitor's price More

$50 USD in 7 days
(8 Reviews)
4.0
ionstefanache1

Hi, I have experience in educational projects in any language want you Please let meet on chat/messenger for more details Thanks and a nice day!

$250 USD in 7 days
(2 Reviews)
4.0
rhlmeena35

Hi, i can help you to achieve this task Kindly contact me in chat for detailed discussion And also check my reviews before going to any new freelancer Thank you.

$100 USD in 7 days
(8 Reviews)
3.6
benkushau

Hello there, are you looking for someone with expert level programming in c++ programming c programming c# programming python programming java programming I am working as a freelancer in programming industry for las More

$60 USD in 7 days
(0 Reviews)
0.0
talhafaraztech

Hi I can do this in two days. Just tell me a little more about the project. I assure you quality and on time work. Looking forward to hearing from you!

$70 USD in 2 days
(0 Reviews)
0.0
fardeen925525

Greeting Of the day, I hope you are doing great. I fortunately came across gig and gathered all that which you are looking for. I am more than willing to unify with the project as the skills mentioned by you fits my e More

$60 USD in 10 days
(0 Reviews)
0.0
helpingbrother14

Hi, i can help you to achieve this task Kindly contact me in chat for detailed discussion And also check my reviews before going to any new freelancer Thank you.

$60 USD in 7 days
(0 Reviews)
0.0
Nettyfy

Hello there, I am writing in response to your job posting, seeking a Python backend developer expert with experience in crypto bots. I am confident that I have the necessary skills and experience to meet your project r More

$50 USD in 7 days
(0 Reviews)
0.0
VijayKumarrr1

I am excited to submit my bid for your Python code project. With extensive experience in Python programming, I am confident that I can deliver the high-quality work that you are looking for. And I briefly read your sta More

$60 USD in 2 days
(0 Reviews)
0.0