Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OpenSSL Dependency Removal #82

Open
2 tasks done
stephenpdeos opened this issue Sep 13, 2022 · 1 comment
Open
2 tasks done

OpenSSL Dependency Removal #82

stephenpdeos opened this issue Sep 13, 2022 · 1 comment
Assignees
Labels
core Core Protocol Development Team work initiative SOW2

Comments

@stephenpdeos
Copy link
Member

stephenpdeos commented Sep 13, 2022

Problem

Opportunity: What are the needs of our target user groups?

More secure software. Currently, we use OpenSSL for consensus bits and there are concerns with the internal team continuing this utilization because of OpenSSL's track record (remote memory corruption bug in OpenSSL 3.0.4). The proposal is to instead switch over to use a submoduled-in static linked BoringSSL for consensus bits; i.e. anything in libchain.

Target audience: Who is the target audience and why?

Security/stability issues - applicable to full audience.

Strategic alignment: How does this problem align with our core strategic pillars?

Security/stability issue

Context

Competitors: Who are our top competitors (up to 5) and why? How do they solve this problem today?

Product differentiation: what would make our solution different?

Audience definition

Solution

Solution name: How should we refer to this product opportunity?

Open SSL Dependency Removal

Purpose: Define the product’s purpose briefly

Success definition: What are the top metrics for the product (up to 5) to define success?

Assumptions

Risks: What risks should be considered? https://www.svpg.com/four-big-risks/

Business Objectives/Functionality

Features/Epics

cleos

Reimplement HTTP requests via platform provided high level HTTP APIs. This would mean libcurl on Linux, NSURLSession on macOS, and WinHTTP on Windows. This actually has a number of nice benefits like getting cleos HTTP/2 support, system proxy support, ipv6 happy eyeballs, and not needing to deal with the CA store. The downside of course is that it's more code to maintain and different across platforms.

nodeos & keosd

My preference would be to eliminate TLS support in nodeos & keosd. I suspect usage of the HTTPS server in nodeos is extremely rare (some prominent community members regularly discourage its use, even). Likewise, I suspect connecting nodeos to keosd via TLS is extremely rare.

If we must keep TLS support in nodeos & keosd, perhaps look in to system provided TLS implementations such as GnuTLS and Core Transport.

Need to be mindful of eosnetworkfoundation/mandel#110 & #13 as they mix in to these decisions too. This effort is likely a blocker for #20.

Explore: Previously, as mentioned in the EOS PR above, boringssl's sha256 performance was rather poor. This is important to us. Performance testing with sha256 & r1 key recovery should be performed on the latest version before getting too far in to this change.

Tasks

Preview Give feedback
  1. OCI actionable enhancement 👍 lgtm
    huangminghuang
  2. actionable 👍 lgtm
    spoonincode
@stephenpdeos stephenpdeos added this to the 4.0 milestone Sep 13, 2022
@stephenpdeos stephenpdeos moved this from 🪨 Opportunity to Opportunity Definition in Product Backlog Sep 13, 2022
@stephenpdeos stephenpdeos added the core Core Protocol Development Team work label Sep 21, 2022
@stephenpdeos stephenpdeos moved this from ⛏ Opportunity Definition to Project Approval in Product Backlog Oct 17, 2022
@stephenpdeos stephenpdeos moved this from Project Approval to 📐 Solution Design in Product Backlog Nov 4, 2022
@stephenpdeos
Copy link
Member Author

Temporarily deprioritized

@stephenpdeos stephenpdeos moved this from 📐 Solution Design to 🧊 Icebox in Product Backlog Feb 3, 2023
@stephenpdeos stephenpdeos moved this from 🧊 Icebox to ⛏ Opportunity Definition in Product Backlog Apr 16, 2023
@bhazzard bhazzard removed this from the Leap v5.0.0 Sep/Oct 2023 milestone Jul 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
core Core Protocol Development Team work initiative SOW2
Projects
Status: Opportunity Definition
Development

No branches or pull requests

2 participants