Python Code
Budget $50-70 USD
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.
Tildelt til:
I am a python expert. I have read your specification. I can finish this project perfectly. -
12 freelancere byder i gennemsnit $78 timen for dette job
hii i am an python expert i have seen your attachment can u text me so that we can discuss over it
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!
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.
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!
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 Flere
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.
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 Flere