From f08f3f56e126196f1b840720383a6901c5169a5d Mon Sep 17 00:00:00 2001 From: Darryl Nixon Date: Tue, 6 Jun 2023 11:11:42 -0700 Subject: [PATCH] Initial README.md and PRIVACY.md added --- PRIVACY.md | 49 +++++++++++++++++++++++++++++++++++++++++++ README.md | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++ crowdtls.png | Bin 0 -> 40757 bytes 3 files changed, 106 insertions(+) create mode 100644 PRIVACY.md create mode 100644 README.md create mode 100644 crowdtls.png diff --git a/PRIVACY.md b/PRIVACY.md new file mode 100644 index 0000000..75b158d --- /dev/null +++ b/PRIVACY.md @@ -0,0 +1,49 @@ +# Privacy Policy + +Last updated: June 6, 2023 + +Thank you for using CrowdTLS! This Privacy Policy explains how I collect, use, and disclose information when you use my addon and the official servers associated with it. I take your privacy seriously and I'm committed to protecting your personal information. By using our addon, you consent to the collection and use of your information as described in this Privacy Policy. + +## Information I Collect + +The addon collects collect the following information: + +### SSL/TLS Certificate Data +I collect SSL/TLS certificate data associated with the fully qualified domain names (FQDNs) of the websites you visit. This data includes information exposed by security information APIs, such as `webRequest.getSecurityInfo()` for Mozilla Firefox. Please note that these APIs are managed by the browser developer (e.g., Mozilla, Microsoft, Apple, Opera) and are subject to their security and privacy practices. This explicitly does not include data associated with requests you've made to these services such as URL paths, query parameters, authentication information, cookies, or anything unrelated to the certificate data the server sends you to verify they own the domain you are visiting. + +**TL;DR: I collect ONLY certificate data sent to you by the web domains you visit.** + +### Metadata +I log metadata associated with the traffic necessary to share the SSL/TLS certificate data with our crowd service. This minimally includes the external IP address of your internet connection (or VPN) and potentially other uncontrollable HTTP headers or web socket connection information. I do not enrich this data with the addon, but simply write normal connection metadata to a log file for review. + +**TL;DR: I technically collect metadata, such as your browser's external IP address and other standard internet connection metadata, which enables the sharing of SSL/TLS certificate data.** + +That's all. I do not collect any other personal information. + +**TL;DR: I only collect SSL/TLS certificate data and metadata necessary to maintain the crowd service.** + +## How I Use Collected Information + +I use the collected information for the following purposes: + +### Crowd-Source Validation Service +I provide the crowd-sourced validation service by analyzing the SSL/TLS certificate information you send against others previously collected from the crowd and provide feedback to your browser addon. + +### Storage and Analysis +I store the SSL/TLS certificate data you sent for analysis indefinitely to provide the same service to other users. This keeps the service running and helps me improve the accuracy and effectiveness of the validation service. + +### Usage Trends +I may use the collected information to identify broad usage trends across the world, such as the number of certificates shared from each country. These insights will help me improve service availability, latency, and understand global patterns to justify continued maintenance and server costs. + +### Log Storage +I store HTTP and web socket logs for up to 30 days specifically for troubleshooting issues and identifying malicious activity. After 30 days, the logs are permanently purged from our servers unless malicious activity is identified. + +**TL;DR: I use the collected information to provide the validation service, store and analyze SSL/TLS certificate data, identify usage trends, and store standard connection log metadata for a limited period.** + +## Changes to This Privacy Policy + +I reserve the right to modify, update, or amend this Privacy Policy from time to time to reflect changes made to our addon. When I make material changes to this Policy, I'll inform you by updating the 'Effective date' notice. It is your responsibility to review this Privacy Policy periodically or "watch" the repository for changes to stay informed of any updates. Your continued use of the addon after any modifications to this Policy constitutes your acceptance of such changes. + +**TL;DR: We may change this Privacy Policy but will notify you of any significant updates. It's your responsibility to review and accept the changes.** + +If you have any questions about this Privacy Policy, submit an issue for clarification. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..57ea1b0 --- /dev/null +++ b/README.md @@ -0,0 +1,57 @@ +
+CrowdTLS Logo + +# CrowdTLS + +CrowdTLS validates SSL/TLS certificates against the crowd. + +It can potentially alert you if your traffic is being man-in-the-middle'd.
+ +[Installation](#installation) • +[Frequently Asked Questions](#faq) • +[Contributing](#contributing) • +[License](#license) +
+ +## Installation + +TODO + +## FAQ + +**What problem does CrowdTLS solve?** + +CrowdTLS is designed to enhance your trust in the SSL/TLS certificates sent to you by the domains you visit. It aims to crowd-source the validation process by collecting SSL/TLS certificate data from users and comparing it with other collected data. This approach helps identify potential issues like dangerous wildcards, certificate misconfigurations, or fraudulent certificates (i.e., MITM aka man-in-the-middle), ultimately improving the overall security of your time on the web. + +**What privacy concerns should I have about using CrowdTLS? What information are you collecting about me?** + +I understand the importance of privacy and want to be transparent about the information CrowdTLS collects. When you use the addon/extension, it collects SSL/TLS certificate data associated with the domain names you visit with an HTTPS connection. This data includes the certificate details exposed by security information APIs provided by your browser developer, such as `webRequest.getSecurityInfo()` on Firefox. + +You'd be concerned that I will be exposed to metadata associated with the traffic required to aggregate, analyze, and share that certificate data with the crowd service. That metadata certainly includes your browser's external IP address and potentially other uncontrollable HTTP or web socket headers. That is, your external IP (or VPN IP) will be directly communicating with my cloud proxy. Those logs will be scheduled for purge unless I detect malicious activity from a specific IP (i.e., sending false certificate data to poison the crowd). + +Rest assured that I do not collect any personally identifiable information (PII) or track your browsing activities beyond the scope of SSL/TLS certificate validation, and the extension/addon does not have permission to see that information. CrowdTLS solely focuses on SSL/TLS certificates and does not engage in any user profiling, advertising, or sale of data. + +**What's your roadmap?** + +The roadmap for CrowdTLS, if maintained, includes several exciting features and improvements. Here are some highlights: + +- Enhancing the crowd-source validation process to provide more accurate and comprehensive certificate analysis. +- Introducing user customization options to allow fine-tuning of validation criteria and feedback preferences. +- Collaborating with browser developers to streamline the integration of CrowdTLS functionalities natively into popular browsers. +- Implementing *opt-in* advanced analytics and reporting features to provide valuable insights into SSL/TLS certificate usage and trends. + +I'm open to ideas to improve CrowdTLS and I welcome feedback and suggestions from the open source community. + +## Contributing + +If you would like to contribute to this project, feel free to submit a pull request or open an issue on GitHub. + +This tool was written as part of my coursework for CSC 842 - Security Tool Development at Dakota State University taken in pursuit of a PhD in Cyber Operations. Consequently, I may choose not to maintain this tool beyond the length of the course, but have selected a license that enables open contributions in any case. I'll keep an eye out for pull requests. + +## License + +This project is licensed under the MPL 2.0 License. See the `LICENSE` file for details. + +I carefully evaluated various open-source licenses and chose the Mozilla Public License 2.0 (MPL 2.0) for CrowdTLS due to its compatibility with other licenses, strong copyleft provisions, and its alignment with my values and goals. MPL 2.0 ensures that the source code remains open and available, while allowing for flexibility in terms of collaboration and incorporation into other projects. + +While I understand that different licenses may have their merits, I believe that MPL 2.0 provides the best balance of openness, collaborative potential, and legal clarity for the development and distribution of CrowdTLS. \ No newline at end of file diff --git a/crowdtls.png b/crowdtls.png new file mode 100644 index 0000000000000000000000000000000000000000..3f216f103c6b4edd442ecc916737b6c6489f7e44 GIT binary patch literal 40757 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