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

API communication is insecure #1

Open
fortuna opened this issue Aug 28, 2023 · 1 comment
Open

API communication is insecure #1

fortuna opened this issue Aug 28, 2023 · 1 comment
Assignees

Comments

@fortuna
Copy link

fortuna commented Aug 28, 2023

The app does not check the certificate fingerprint when making requests to an Outline server, which is a significant security issue that allows for interception.

engine { https.trustManager = InsecureTrustManager } // TODO: remove insecure http

At a minimum, the app should properly validate services with domain names, and warn the user about the lack of validation on self-signed certificates.

@sirekanian sirekanian self-assigned this Sep 3, 2023
@sirekanian
Copy link
Owner

Thank you for your issue, I apologize for the long response. Secure communication with servers was added in this commit d1940fb (app version v0.1.15 or higher).

The user can optionally disable the secure connection with a server by clicking on the corresponding checkbox.

I'd like to take this issue a step further and implement verification of self-signed certificates. @fortuna, could you tell me please what certSha256 is in json that is used for installation?

{
  "apiUrl": "...",
  "certSha256": "..."
}

Is this the server's certificate fingerprint? I tried to implement SSL Pinning using OkHttp, but I have a suspicion that certSha256 is some other internal thing related specifically to Outline or Outline Manager. Is it so?

CertificatePinner certificatePinner = new CertificatePinner.Builder()
    .add("api.example.com", "sha256/<fingerprint-of-server-certificate>")
    .build();

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants