]> gitweb.stoutner.com Git - PrivacyBrowserAndroid.git/blob - app/src/main/assets/en/guide_ssl_certificate_pinning.html
Add an SSL Certificate Pinning tab to the Guide.
[PrivacyBrowserAndroid.git] / app / src / main / assets / en / guide_ssl_certificate_pinning.html
1 <!--
2   Copyright © 2017 Soren Stoutner <soren@stoutner.com>.
3
4   This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
5
6   Privacy Browser is free software: you can redistribute it and/or modify
7   it under the terms of the GNU General Public License as published by
8   the Free Software Foundation, either version 3 of the License, or
9   (at your option) any later version.
10
11   Privacy Browser is distributed in the hope that it will be useful,
12   but WITHOUT ANY WARRANTY; without even the implied warranty of
13   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14   GNU General Public License for more details.
15
16   You should have received a copy of the GNU General Public License
17   along with Privacy Browser.  If not, see <http://www.gnu.org/licenses/>. -->
18
19 <html>
20     <head>
21         <meta charset="UTF-8">
22         <style>
23             h3 {
24                 color: 0D4781;
25             }
26
27             img.title {
28                 vertical-align: bottom;
29                 height: 32;
30                 width: 32;
31             }
32
33             img.center {
34                 display: block;
35                 margin-left: auto;
36                 margin-right: auto;
37                 height: 640;
38                 width: 360;
39             }
40         </style>
41     </head>
42
43     <body>
44         <h3><img class="title" src="images/ic_vpn_lock_dark_blue.png"> Know Where You’re Going</h3>
45
46         <p>When visiting an encrypted URL (one that begins with HTTPS), the webserver uses an SSL certificate to both encrypt the information sent to the browser and to identify the server.
47             The purpose of the server identification is to prevent a machine located between the browser and the webserver from intercepting the traffic in transit, pretending to be the server, and decrypting the information as it is passed along.
48             This type of attack is known as a Man In The Middle (MITM) attack.  SSL certificates are generated by certificate authorities: companies that verify a server’s identity and produce a certificate for a fee.
49             Android has a list of trusted certificate authorities, and will accept any of their certificates for any website.
50             It isn’t supposed to be possible for an organization to acquire an SSL certificate for a domain they do not control, but in practice many governments and large corporations have been able to do so.</p>
51
52         <p>The purpose of SSL certificate pinning is to tell the browser that only one specific SSL certificate is to be trusted for a particular domain.  Any other valid certificate will be rejected.</p>
53
54         <p><img class="center" src="images/ssl_certificate_mismatch.png"></p>
55
56         <p>SSL certificates expire on a specified date, so even pinned SSL certificates will legitimately need to be updated from time to time.
57             As a general rule, pinning SSL certificates probably isn’t needed in the majority of cases.
58             But for those connecting to their own servers, or for those who suspect that powerful organizations may be targeting them directly, SSL certificate pinning can detect and thwart a MITM attack.</p>
59
60         <p><img class="center" src="images/pinned_ssl_certificate.png"></p>
61
62         <p>SSL certificates can be pinned in Domain Settings.
63             Besides protecting against MITM attacks, pinning a self-signed certificate for a device like a wireless router or access point will remove the error message that is normally presented every time its website is loaded.</p>
64     </body>
65 </html>