Giter VIP home page Giter VIP logo

cryptochat's Introduction

Hello, I'm Halil Ibrahim Deniz!

๐Ÿ’ซ About Me

Hello, I'm Halil Ibrahim. At the age of 23 and with a high school diploma in hand, I've nurtured an immense passion for the dynamic worlds of cybersecurity and programming. My journey has led me to delve deep into programming languages like Python, Java, and Rust, each of which I've applied in real-world scenarios. I've had the privilege of using these skills to assist a prominent website dedicated exclusively to cybersecurity, enhancing its infrastructure and fortifying its defenses. I also share my evolving knowledge and experiences through in-depth articles on my blog each week. To further serve the programming community, I release an open-source project on my GitHub account on a weekly basis. Continuous learning is at the heart of my ethos; alongside refining my technical expertise, I'm earnestly working to elevate my command over English and to embrace the challenges of learning German.

๐ŸŒ Socials:

Denizhalil Instagram LinkedIn YouTube Tryhackme E-mail Instagram

๐Ÿ“– My Book

Skills

Cybersecurity

Network Security

  • Network security is one of the most important topics in cybersecurity. I'm trying to specialize in network security to keep my network safe.
  • My network security skills include fundamental topics such as secure encryption protocols, secure network configuration, and firewalls. I can also perform network security tests using different tools like network scanners, port scanning tools, and network analysis tools.

Cybersecurity Tools

  • I'm constantly trying to improve myself by using different tools used in cybersecurity. These tools include various tools such as Nmap, Metasploit Framework, Wireshark, and Kali Linux.
  • By simulating different cyber attack scenarios using these tools, I can test defense mechanisms and improve network security.

Programming

Python Programming

  • Python is one of the programming languages I know the best. I'm highly skilled in software development using this language and have developed solutions for many different projects using Python.
  • My Python skills include different topics such as data structures, functions, object-oriented programming, GUI programming, and web development. I also work on different areas such as artificial intelligence, data science, and machine learning using Python.

C++ Programming

  • C++ is one of my favorite programming languages for software development. Since I started developing software in this language, I'm constantly trying to improve my C++ skills.
  • My C++ skills include fundamental topics such as data structures, algorithms, memory management, and object-oriented programming. I also work on different areas such as game development using C++.

Hardware

Microcontroller Programming

  • Microcontroller programming is one of my favorite areas of expertise in hardware. In this area, I mainly work on platforms such as Arduino and Raspberry Pi.

Interests

  • Learning foreign languages: Learning languages is an important hobby for me. Currently, I'm improving my English and learning German. I also plan to learn other languages in the future.
  • Knowledge Sharing: I always like to share the information I learn on my website called DenizHali with people in the most descriptive way.

๐Ÿ“Š GitHub Stats:

Launguages

Langs

Technologies

Techs

Badges

TryHackMe Badge

Certificates

I have achieved the following certificates:

Contact

cryptochat's People

Contributors

halildeniz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

cryptochat's Issues

Security Vulnerabilities in Python Chat Application - Action Required ๐Ÿšจ

Hey @HalilDeniz !

I would like to bring to your attention some critical security concerns discovered in the current implementation of your Python chat application. It has come to my notice that the application, while claiming end-to-end encryption, decrypts messages on the server side, introducing potential vulnerabilities. This compromises the privacy and security assurances that end-to-end encryption is designed to provide. The following points highlight key areas of concern and suggested improvements.

Hope it'll help ! Good luck !

b35363


False End-to-End Encryption Claims

Decrypting messages on the server undermines the purpose of end-to-end encryption, making it vulnerable to unauthorized access. Messages should only be decrypted on the client side.

try:
    encrypted_message = self.client_socket.recv(1024)
    message = cipher.decrypt(encrypted_message).decode('utf-8') # this is a big NO-NO !
    # ...
except:
    pass

Problem: The application falsely claims end-to-end encryption, but messages are decrypted on the server side, compromising the integrity of the encryption model.

Recommendation:

  • Avoid decrypting messages on the server to maintain true end-to-end encryption. Messages should only be decrypted on the client side. You should separate encrypted message payloads and remote procedure calls and metadata.
  • Catching a broad except without specific exceptions makes debugging difficult. It's recommended to catch specific exceptions and log detailed error messages.

Insecure Key Derivation:

password = args.key.encode()
key = hashlib.sha256(password).digest()  # technically a good idea, but not that secure -_-
fernet_key = base64.urlsafe_b64encode(key)
cipher = Fernet(fernet_key)

Problem:
The encryption key is derived using a simple SHA-256 hash of the password, which is not considered as a secure key derivation.

Recommendation:

  • Implement a well-known Key Derivation Function (KDF) for secure key derivation. This enhances the overall security of the application. You could use sha-256 Based key derivation (HKDF-SHA-256) or Password Based Key Derivation (PBKDF)

Secure Key Management:

$ python3 serverE.py --key Pa$$word123

Problem: The password is exposed as a command-line argument, posing a security risk.

Recommendation: Prompt the user for sensitive information like passwords to prevent exposure in command-line history. Consider using key files or environment variables for better key management.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.