Investigate if/how Import TLS use follows/recommends best practice
<!--IssueSummary start--> <details> <summary> Everyone can contribute. [Help move this issue forward](https://handbook.gitlab.com/handbook/marketing/developer-relations/contributor-success/community-contributors-workflows/#contributor-links) while earning points, leveling up and collecting rewards. </summary> - [Work on this issue](https://contributors.gitlab.com/manage-issue?action=work&projectId=278964&issueIid=350818) - [Close this issue](https://contributors.gitlab.com/manage-issue?action=close&projectId=278964&issueIid=350818) </details> <!--IssueSummary end--> See https://gitlab.com/gitlab-org/manage/import/backend/discussion/-/issues/9 for context TLS protects confidentiality and integrity of information as it is transmitted. It is a common requirement in compliance frameworks (see references below). ## Proposal - Identify what versions (or lack thereof) of TLS are permitted in Import / Export network requests (see also https://gitlab.com/gitlab-org/manage/import/backend/discussion/-/issues/11) + Also identify whether invalid/expired/untrusted/self-signed certificates are rejected - Identify if there is a legitimate use-case for weak TLS (e.g. self-hosted GitLab talking to a legacy ____ on premise, or enterprise proxies intercepting and resigning requests). (Product / Solution Architects might know) - Decide a path forward, e.g.: + Creating issues to document the risk + Creating issues to allow administrator configuration of TLS version enforcement + Creating issues to hard-code TLS version enforcement * e.g. in integrations like AWS, or GitHub, where we know they'll have the latest TLS ## Progress | Import Source | Sources supports plaintext HTTP? | Source supports TLS < v1.2? | Source supports weak ciphers? | Expired certificates rejected? | Improperly signed certificates rejected? | |-|-|-|-|-|-| | GitLab.com | | | | | GitLab self-hosted 1 | Yes, it's [the default](https://docs.gitlab.com/omnibus/settings/ssl.html) | | | | | | GitHub.com | | | | | GitHub Enterprise (self-hosted) | | | 1. Custom certificates are [supported in omnibus](https://docs.gitlab.com/omnibus/settings/ssl.html#install-custom-public-certificates). We should accept ones that are properly installed, and reject ones that aren't. ## References - https://gitlab.com/gitlab-com/gl-security/security-research/cryptographic-standards - https://about.gitlab.com/handbook/engineering/security/security-assurance/security-compliance/guidance/cryptographic-protections.html - https://owasp.org/www-project-web-security-testing-guide/v41/4-Web_Application_Security_Testing/09-Testing_for_Weak_Cryptography/01-Testing_for_Weak_SSL_TLS_Ciphers_Insufficient_Transport_Layer_Protection
issue