Find Jobs
Hire Freelancers


$30-250 USD

Posted about 1 year ago

$30-250 USD

Paid on delivery
You will implement in Python some email exchange applications that supports the SMTP-CRAM protocol. This includes a client, a server and an eavesdropper (middle-man attacker), which can apply MitM attack to the authentication mechanism. Unix tools like netcat and telnet can help test your program. To limit the workload, we provide a simplification on the original SMTP and SMTP-CRAM protocols. We assume all programs are supposed to be run and tested locally and they are not required to be extensible to support TCP connection via the Internet or to be used in real world. No actual data should be sent and received from the Internet, and everything should be contained in the local loopback. We also assume any syntactically valid message under the protocol can be accepted. E.g., No actual check is needed on any email or IP address, we accept any syntactically valid messages including addresses. The communication between the email exchange applications has to follow a popular protocol for email exchanging, the Simple Mail Transfer Protocol ( SMTP ) protocol with one authentication extension ( CRAM-MD5 ), the SMTP Service Extension for Authentication by Challenge-Response Authentication Mechanism. The authentication type associated is called CRAM-MD5 and the full protocol is named SMTP-CRAM . The communication between the email exchange applications has to follow a popular protocol for email exchanging, the Simple Mail Transfer Protocol ( SMTP ) protocol with one authentication extension ( CRAM-MD5 ), the SMTP Service Extension for Authentication by Challenge-Response Authentication Mechanism. The authentication type associated is called CRAM-MD5 and the full protocol is named SMTP-CRAM . However, CRAM-MD5 only allows the server to verify the client and doesn't provide any server authentication, therefore its usage is limited and less preferable than other stronger mechanisms. To demonstrate CRAM-MD5 indeed has its weakness, the eavesdropper should be implemented and a MitM attack can be performed. On the high level, the following needs to be implemented: All programs are capable of: Log all socket transactions in a specific format and output to stdout . The SMTP-CRAM server is capable of: i. Prepare for any incoming client connection. ii. Receive emails from a client and save to disk. iii. Additionally, allow client authentication. iv. Allow multiple clients to connect simultaneously. v. Termination upon receiving a SIGINT signal. The SMTP-CRAM client is capable of: i. Read mail messages on disk. ii. Send emails to the server. iii. Additionally, allow client authentication. iv. Termination after finishing sending all emails. The SMTP-CRAM eavesdropper (middle-man attacker) can do active eavesdropping between a pair of given server (E.g.,the real server) and client (E.g.,the real client). It can intercept all socket messages passing between the real server and the real client without being discovered. You can think of the eavesdropper as a combination of one valid client and one valid server, in such way it can impersonate the real client without letting the real server to discover its eavesdropping. This means it is capable of: i. Prepare for being connected to by the real client and connecting to the real server. ii. Capture the email sent by the real client and save to disk, without altering the content. iii. iii. Additionally, comprise any client authentication. iv. iv. Termination. The assignment has four tasks that you will need to implement and thoroughly test. You will be provided a test suite to assist in developing your solutions. The four tasks are: 1. Implement a client that supports the SMTP-CRAM protocol. 2. Implement a server that supports the SMTP-CRAM protocol. 3. Implement an eavesdropper (middle-man attacker) that secretly relays the communications between the client and the server that supports the SMTP-CRAM protocol. 4. Write a report in your own words on the SMTP-CRAM protocol.
Project ID: 36263139

About the project

7 proposals
Remote project
Active 1 yr ago

Looking to make some money?

Benefits of bidding on Freelancer

Set your budget and timeframe
Get paid for your work
Outline your proposal
It's free to sign up and bid on jobs
7 freelancers are bidding on average $133 USD for this job
User Avatar
Hello ashisharmas, I hope this message finds you well. I will be able to help you with your project. I read through the description and it sounds like I am just the right person for it. I have the right skill set with sophisticated experience in Java, Python, and Software Architecture. As a next step I would like to discuss some further questions with you. Either over the chat or a call, whatever you prefer. For my references and qualifications: I graduated in Computer Science with highest grades from one of the most reputable universities in Germany. Currently, I am enrolled in the Master's program. During my studies, I already published a paper on the subject of Artificial Intelligence. Further, I managed to get a lot of hands-on experience by working in several companies that operate in the field of Computer Science. As a native German speaker who was living in Canada for a year, my level in English is proficient/fluent. Further, I am in the preferred Freelancer program, making me part of the top 3% on the platform. Many successful past projects can be seen on my profile page. I am looking forward to working with you and if you have any further questions I would be happy to answer them. Best regards, Simon
$200 USD in 3 days
5.0 (29 reviews)
User Avatar
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 collector) to complex parsers (with authorization, bypassing captcha, rotating ips and others) which can collect millions of products from amazon. I have done web scrapers for: - Amazon - Instagram - Facebook - Google - Twitter - LinkedIn - Pinterest - Walmart - And many others For scraping I use: - Python - Requests - BeautifulSoup - Selenium - Scrapy - Pyautogui - Undetected Chromedriver - Rotating ips I can bypass: - CloudFlare - IP blocking - Captcha - Authorization required - Other limitations Django / PostgreSQL For big scraping projects I usually use Django with PostgreSQL. This allows us to store information in a database for further processing and use. I also set up an administration area which allows us to check the data and set up scraper configs. If you need a professional solution in this area - I am ready to cooperate. I am ready to make a sample script before we start Regards, Oleg
$30 USD in 7 days
4.9 (10 reviews)
User Avatar
hello I devour your demand that you’re viewing Python-SMTP-UNIX I provide creative, proactive and high-tech solutions to your development needs. I have solid experience in HTML, Javascript, PHP,CSS,metatrader, MySQL, Node.js, React.js, Joomla,Angular.js, Laravel,Java, Python, Wordpress,linux Ruby on Rails, Database, Objective-C and Swift,C, C#, C++, Qt, Linux and raspberry. Kindly check my profile Don't hesitate to contact me to create awesome products! Thanks
$30 USD in 1 day
5.0 (5 reviews)
User Avatar
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 requirements. About me: I am a seasoned Python developer with over 8 years of experience building complex backend applications. I have extensive experience in building custom crypto bots for various clients and exchanges. I have worked on projects ranging from simple bots that monitor prices to complex bots that execute trades based on advanced trading strategies. My approach: My approach to this project would be to start by understanding your specific requirements and developing a clear project plan. I would then use my experience with Python and crypto trading to design and implement a custom bot that meets your needs. I am also familiar with various crypto trading APIs, and I can help you choose the best one for your project. Skills and experience: Proficient in Python and related frameworks (Django, Flask) Experience with crypto trading and exchanges Strong understanding of trading strategies and technical analysis Familiarity with popular trading APIs (e.g., Binance, Coinbase, Kraken) I am confident that I can deliver a high-quality product within the given timeline and budget. I am also committed to providing excellent communication and support throughout the project's duration. Best regards, Nettyfy
$30 USD in 7 days
0.0 (0 reviews)

About the client

Abu Dhabi, United Arab Emirates
Member since May 27, 2020

Client Verification

Thanks! We’ve emailed you a link to claim your free credit.
Something went wrong while sending your email. Please try again.
Registered Users Total Jobs Posted
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Loading preview
Permission granted for Geolocation.
Your login session has expired and you have been logged out. Please log in again.