Update the Guide screenshots.
authorSoren Stoutner <soren@stoutner.com>
Fri, 25 Aug 2017 20:09:34 +0000 (13:09 -0700)
committerSoren Stoutner <soren@stoutner.com>
Fri, 25 Aug 2017 20:09:34 +0000 (13:09 -0700)
43 files changed:
.idea/misc.xml
app/src/main/assets/de/guide_ssl_certificate_pinning.html [new file with mode: 0644]
app/src/main/assets/de/guide_user_agent.html
app/src/main/assets/de/images/advertising_id.png
app/src/main/assets/de/images/domain_settings.png
app/src/main/assets/de/images/pinned_ssl_certificate.png [new file with mode: 0644]
app/src/main/assets/de/images/ssl_certificate_mismatch.png [new file with mode: 0644]
app/src/main/assets/de/images/tor.png
app/src/main/assets/de/images/user_agent.png
app/src/main/assets/en/guide_ssl_certificate_pinning.html
app/src/main/assets/en/guide_user_agent.html
app/src/main/assets/en/images/advertising_id.png
app/src/main/assets/en/images/domain_settings.png
app/src/main/assets/en/images/green_url_bar.png
app/src/main/assets/en/images/panopticlick.png
app/src/main/assets/en/images/tor.png
app/src/main/assets/en/images/user_agent.png
app/src/main/assets/en/images/webkay.png
app/src/main/assets/es/guide_javascript.html
app/src/main/assets/es/guide_ssl_certificate_pinning.html [new file with mode: 0644]
app/src/main/assets/es/guide_user_agent.html
app/src/main/assets/es/images/advertising_id.png
app/src/main/assets/es/images/domain_settings.png
app/src/main/assets/es/images/pinned_ssl_certificate.png [new file with mode: 0644]
app/src/main/assets/es/images/ssl_certificate_mismatch.png [new file with mode: 0644]
app/src/main/assets/es/images/tor.png
app/src/main/assets/es/images/user_agent.png
app/src/main/assets/it/guide_ssl_certificate_pinning.html [new file with mode: 0644]
app/src/main/assets/it/guide_user_agent.html
app/src/main/assets/it/images/advertising_id.png
app/src/main/assets/it/images/domain_settings.png
app/src/main/assets/it/images/pinned_ssl_certificate.png [new file with mode: 0644]
app/src/main/assets/it/images/ssl_certificate_mismatch.png [new file with mode: 0644]
app/src/main/assets/it/images/tor.png
app/src/main/assets/it/images/user_agent.png
app/src/main/java/com/stoutner/privacybrowser/activities/GuideActivity.java
app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.java
app/src/main/java/com/stoutner/privacybrowser/adapters/HistoryArrayAdapter.java
app/src/main/java/com/stoutner/privacybrowser/definitions/History.java
app/src/main/java/com/stoutner/privacybrowser/dialogs/UrlHistoryDialog.java
app/src/main/res/values-es/strings.xml
app/src/main/res/values-it/strings.xml
app/src/main/res/values/strings.xml

index 1caa136..95f0f03 100644 (file)
@@ -37,7 +37,7 @@
     <ConfirmationsSetting value="0" id="Add" />
     <ConfirmationsSetting value="0" id="Remove" />
   </component>
-  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
     <output url="file://$PROJECT_DIR$/build/classes" />
   </component>
   <component name="ProjectType">
diff --git a/app/src/main/assets/de/guide_ssl_certificate_pinning.html b/app/src/main/assets/de/guide_ssl_certificate_pinning.html
new file mode 100644 (file)
index 0000000..8fb4925
--- /dev/null
@@ -0,0 +1,65 @@
+<!--
+  Copyright © 2017 Soren Stoutner <soren@stoutner.com>.
+
+  This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
+
+  Privacy Browser is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+
+  Privacy Browser is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with Privacy Browser.  If not, see <http://www.gnu.org/licenses/>. -->
+
+<html>
+    <head>
+        <meta charset="UTF-8">
+        <style>
+            h3 {
+                color: 0D4781;
+            }
+
+            img.title {
+                vertical-align: bottom;
+                height: 32;
+                width: 32;
+            }
+
+            img.center {
+                display: block;
+                margin-left: auto;
+                margin-right: auto;
+                height: 640;
+                width: 360;
+            }
+        </style>
+    </head>
+
+    <body>
+        <h3><img class="title" src="../en/images/ic_vpn_lock_dark_blue.png"> Connect with Confidence</h3>
+
+        <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.
+            The purpose of the server identification is to prevent a machine located between the browser and the webserver from pretending to be the server and decrypting the information in transit.
+            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.
+            Android has a list of trusted certificate authorities, and will accept any of their certificates for any website.
+            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>
+
+        <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 certificate, even if it is valid, will be rejected.</p>
+
+        <p><img class="center" src="images/ssl_certificate_mismatch.png"></p>
+
+        <p>SSL certificates expire on a specified date, so even pinned SSL certificates will legitimately need to be updated from time to time.
+            As a general rule, pinning SSL certificates probably isn’t needed in the majority of cases.
+            But for those who suspect that powerful organizations may be targeting them, SSL certificate pinning can detect and thwart a MITM attack.</p>
+
+        <p><img class="center" src="images/pinned_ssl_certificate.png"></p>
+
+        <p>SSL certificates can be pinned in Domain Settings.
+            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>
+    </body>
+</html>
\ No newline at end of file
index 72de603..4f44740 100644 (file)
@@ -56,9 +56,8 @@
             mobile Browser.</p>
 
         <p>Privacy Browser nutzt standardmäßig den auf dem Gerät in WebView integrierten User Agent.
-            Sie können nachsehen, welcher es ist, wenn Sie in die <strong>Einstellungen</strong> gehen und den <strong>User
-                Agent</strong> auf <strong>WebView-Standard</strong> stellen. Der Screenshot unten zeigt ein Nexus 6P mit Android 6.0.1
-            und installiertem Android System WebView 52.0.2743.98.</p>
+            Sie können nachsehen, welcher es ist, wenn Sie in die <strong>Einstellungen</strong> gehen und den <strong>User Agent</strong> auf <strong>WebView-Standard</strong> stellen.
+            Der Screenshot unten zeigt ein Nexus 6P mit Android 7.1.2 und installiertem Android System WebView 60.0.3112.107.</p>
 
         <img class="center" src="images/user_agent.png">
 
index 6cad363..5b4978e 100644 (file)
Binary files a/app/src/main/assets/de/images/advertising_id.png and b/app/src/main/assets/de/images/advertising_id.png differ
index 1649385..c4fe96d 100644 (file)
Binary files a/app/src/main/assets/de/images/domain_settings.png and b/app/src/main/assets/de/images/domain_settings.png differ
diff --git a/app/src/main/assets/de/images/pinned_ssl_certificate.png b/app/src/main/assets/de/images/pinned_ssl_certificate.png
new file mode 100644 (file)
index 0000000..363a1dc
Binary files /dev/null and b/app/src/main/assets/de/images/pinned_ssl_certificate.png differ
diff --git a/app/src/main/assets/de/images/ssl_certificate_mismatch.png b/app/src/main/assets/de/images/ssl_certificate_mismatch.png
new file mode 100644 (file)
index 0000000..e437c8b
Binary files /dev/null and b/app/src/main/assets/de/images/ssl_certificate_mismatch.png differ
index 376d1e8..d2c8846 100644 (file)
Binary files a/app/src/main/assets/de/images/tor.png and b/app/src/main/assets/de/images/tor.png differ
index 3e26e77..96c6c91 100644 (file)
Binary files a/app/src/main/assets/de/images/user_agent.png and b/app/src/main/assets/de/images/user_agent.png differ
index df3271b..a06431b 100644 (file)
@@ -41,7 +41,7 @@
     </head>
 
     <body>
-        <h3><img class="title" src="images/ic_vpn_lock_dark_blue.png"> Know Where You’re Going</h3>
+        <h3><img class="title" src="images/ic_vpn_lock_dark_blue.png"> Connect with Confidence</h3>
 
         <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.
             The purpose of the server identification is to prevent a machine located between the browser and the webserver from pretending to be the server and decrypting the information in transit.
index a8c6238..096793b 100644 (file)
     <body>
         <h3><img class="title" src="images/ic_devices_other_dark_blue.png"> Browser Identification</h3>
 
-        <p>When web browsers connect to websites, they send a user agent, which identifies the browser and the rendering capabilities it possesses. The web server can use this information to decide which version of the
-            website to send to the browser. For example, many websites have different versions for desktop and mobile browsers.</p>
+        <p>When web browsers connect to websites, they send a user agent, which identifies the browser and the rendering capabilities it possesses.
+            The web server can use this information to decide which version of the website to send to the browser.
+            For example, many websites have different versions for desktop and mobile browsers.</p>
 
-        <p>By default, Privacy Browser uses its own user agent, which is PrivacyBrowser/1.0. This sends a minimum of information to the web server. Because web servers do not recognize this to be a mobile user agent,
-            they typically display the desktop version of the site.</p>
+        <p>By default, Privacy Browser uses its own user agent, which is PrivacyBrowser/1.0. This sends a minimum of information to the web server.
+            Because web servers do not recognize this to be a mobile user agent, they typically display the desktop version of the site.</p>
 
-        <p>By comparison, WebView’s default user agent divulges a large amount of information about the hardware and software of the device. On the <strong>Settings</strong> screen, selecting <strong>WebView Default</strong> as the
-            <strong>User agent</strong> displays the user agent that will be sent. The screenshot below shows a Nexus 6P running Android 7.1.1 with Android System WebView 55.0.2883.91 installed.  Most web servers will recognize this as
-            a mobile browser and will display the mobile version of the site if they have one.</p>
+        <p>By comparison, WebView’s default user agent divulges a large amount of information about the hardware and software of the device.
+            On the <strong>Settings</strong> screen, selecting <strong>WebView Default</strong> as the <strong>User agent</strong> displays the user agent that will be sent.
+            The screenshot below shows a Nexus 6P running Android 7.1.2 with Android System WebView 60.0.3112.107 installed.
+            Most web servers will recognize this as a mobile browser and will display the mobile version of the site if they have one.</p>
 
         <img class="center" src="images/user_agent.png">
 
-        <p>There is enough information in the user agent that sometimes only a few visitors to a website will be the same. If the user agent is combined with another piece of non-unique identifying information, often it results in a unique fingerprint.
-            The Electronic Frontier Foundation created a tool called <a href="https://panopticlick.eff.org/">Panopticlick</a> to demonstrate how much information can be gleaned from these sources. If this test is run with JavaScript enabled the
-            amount of information that is disclosed increases greatly. <a href="https://www.browserleaks.com">Browser Leaks</a> and <a href="https://amiunique.org/">Am I Unique</a> are also good sources of information.</p>
+        <p>There is enough information in the user agent that sometimes only a few visitors to a website will be the same.
+            If the user agent is combined with another piece of non-unique identifying information, often it results in a unique fingerprint.
+            The Electronic Frontier Foundation created a tool called <a href="https://panopticlick.eff.org/">Panopticlick</a> to demonstrate how much information can be gleaned from these sources.
+            If this test is run with JavaScript enabled the amount of information that is disclosed increases greatly.
+            <a href="https://www.browserleaks.com">Browser Leaks</a> and <a href="https://amiunique.org/">Am I Unique</a> are also good sources of information.</p>
 
         <img class="center" src="images/panopticlick.png">
 
-        <p>There are several preset user agents that match common browsers and operating systems. For browser fingerprinting purposes, anything that is rare is easier to track. If Privacy Browser becomes common and many people use PrivacyBrowser/1.0
-            as their user agent, it will be a good choice for privacy. Firefox or Chrome are the most common user agents, but they auto-update and their version numbers change so quickly that it is likely the user agents included in Privacy Browser
+        <p>There are several preset user agents that match common browsers and operating systems. For browser fingerprinting purposes, anything that is rare is easier to track.
+            If Privacy Browser becomes common and many people use PrivacyBrowser/1.0 as their user agent, it will be a good choice for privacy.
+            Firefox or Chrome are the most common user agents, but they auto-update and their version numbers change so quickly that it is likely the user agents included in Privacy Browser
             will often be out of step with the majority of user agents in the server logs.</p>
 
         <p>Android’s WebView does not allow the user agent to be blank. If it is, WebView simply sends the default user agent to the server.</p>
index 7f05a57..2d811f3 100644 (file)
Binary files a/app/src/main/assets/en/images/advertising_id.png and b/app/src/main/assets/en/images/advertising_id.png differ
index 3d4e9d0..b768699 100644 (file)
Binary files a/app/src/main/assets/en/images/domain_settings.png and b/app/src/main/assets/en/images/domain_settings.png differ
index 778ba0b..93045bc 100644 (file)
Binary files a/app/src/main/assets/en/images/green_url_bar.png and b/app/src/main/assets/en/images/green_url_bar.png differ
index e8170c0..509e567 100644 (file)
Binary files a/app/src/main/assets/en/images/panopticlick.png and b/app/src/main/assets/en/images/panopticlick.png differ
index f6495fa..fd02999 100644 (file)
Binary files a/app/src/main/assets/en/images/tor.png and b/app/src/main/assets/en/images/tor.png differ
index f55c5cc..3e5fb3c 100644 (file)
Binary files a/app/src/main/assets/en/images/user_agent.png and b/app/src/main/assets/en/images/user_agent.png differ
index 09a1b5e..da00842 100644 (file)
Binary files a/app/src/main/assets/en/images/webkay.png and b/app/src/main/assets/en/images/webkay.png differ
index 0dad093..1f7a577 100644 (file)
@@ -70,8 +70,8 @@
             (los cuales indican que Javascript está deshabilitado) y rojo <img src="../en/images/javascript_enabled.png" height="16" width="16"> (Javascript habilitado).
             Revisar la diferente información que webkay puede recoger con Javascript habilitado y deshabilitado es informativo.</p>
 
-        <p>Navegar por internet con Javascript deshabilitado, y sólo habilitarlo cuando sea necesario, hace mucho en proteger la privacidad del usuario. Además, Javascript se usa para cargar muchos de
-            los molestos anuncios y demás basura que viene con las más modernas páginas web. Al deshabilitarlo, las páginas web cargarán más rápido, consumirán menos tráfico de red,
-            y contendrán menos molestos anuncios, en lugar de aquellos que hacen cosas como cubrir el texto de toda la página web.</p>
+        <p>Navegar por internet con Javascript deshabilitado, y sólo habilitarlo cuando sea necesario, hace mucho en proteger la privacidad del usuario.
+            Además, Javascript se usa para cargar muchos de los molestos anuncios y demás basura que viene con las más modernas páginas web.
+            Al deshabilitarlo, las páginas web cargarán más rápido, consumirán menos tráfico de red y contendrán menos anuncios molestos, como aquellos que cubren el texto de toda la página web.</p>
     </body>
 </html>
\ No newline at end of file
diff --git a/app/src/main/assets/es/guide_ssl_certificate_pinning.html b/app/src/main/assets/es/guide_ssl_certificate_pinning.html
new file mode 100644 (file)
index 0000000..e24ba75
--- /dev/null
@@ -0,0 +1,67 @@
+<!--
+  Copyright © 2017 Soren Stoutner <soren@stoutner.com>.
+
+  This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
+
+  Privacy Browser is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+
+  Privacy Browser is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with Privacy Browser.  If not, see <http://www.gnu.org/licenses/>. -->
+
+<html>
+    <head>
+        <meta charset="UTF-8">
+        <style>
+            h3 {
+                color: 0D4781;
+            }
+
+            img.title {
+                vertical-align: bottom;
+                height: 32;
+                width: 32;
+            }
+
+            img.center {
+                display: block;
+                margin-left: auto;
+                margin-right: auto;
+                height: 640;
+                width: 360;
+            }
+        </style>
+    </head>
+
+    <body>
+        <h3><img class="title" src="../en/images/ic_vpn_lock_dark_blue.png"> Conectarse con confianza</h3>
+
+        <p>Al visitar una URL cifrada (que empieza con HTTPS), el servidor web usa un certificado SSL para cifrar tanto la información enviada al navegador como asimismo para identificar al servidor.
+            El propósito de la identificación del servidor es para prevenir que una máquina ubicada entre el navegador y el servidor web pretenda ser el servidor y descifrar la información en tránsito.
+            Este clase de ataque es conocido como Hombre en Medio (MITM en sus iniciales en inglés).
+            Los certificados SSL son generados por las autoridades certificadoras: compañías que verifican la identidad de un servidor y producen un certificado a cambio de una tarifa.
+            Android tiene una lista de autoridades certificadoras de confianza y aceptará cualquiera de sus certificados para cualquier página web.
+            Se supone que no es posible que una organización adquiera un certificado SSL para un dominio que no controla, pero en la práctica muchos gobiernos y grandes corporaciones han sido capaces de hacerlo.</p>
+
+        <p>El propósito de la fijación de certificado SSL es para decir al navegador que sólo un certificado SSL específico es confiable para un dominio particular.
+            Cualquier otro certificado, aunque sea válido, será rechazado.</p>
+
+        <p><img class="center" src="images/ssl_certificate_mismatch.png"></p>
+
+        <p>Los certificados SSL expiran en una fecha especificada, por lo que incluso los certificados SSL fijados necesitarán legítimamente ser actualizados de vez en cuando.
+            Como regla general, fijar los certificados SSL probablemente no sea necesario en la mayoría de los casos.
+            Pero para aquellos que sospechan que organizaciones poderosas puedan estar aputando hacia ellos, la fijación de certificados SSL puede detectar y frustar un ataque MITM.</p>
+
+        <p><img class="center" src="images/pinned_ssl_certificate.png"></p>
+
+        <p>Los certificados SSL pueden ser fijados en Configuración de Dominios.
+            Además de proteger contra ataques MITM, fijar un certificado autofirmado para un dispositivo como un router inalámbrico o punto de acceso eliminará el mensaje de error que se presenta normalmente cada vez que se carga su página web.</p>
+    </body>
+</html>
\ No newline at end of file
index f3cdca1..f32e67d 100644 (file)
@@ -56,7 +56,7 @@
 
         <p>En comparación, el agente de usuario por defecto de WebView divulga una gran cantidad de información sobre el hardware y el software del dispositivo.
             En la ventana <strong>Configuración</strong>, seleccionando <strong>WebView por defecto</strong> como el <strong>Agente de usuario</strong> muestra el agente de usuario que se enviará.
-            La captura de pantalla de abajo muestra un Nexus 6P corriendo Android 7.1.1 con el sistema de android WebView 55.0.2883.91 instalado.
+            La captura de pantalla de abajo muestra un Nexus 6P corriendo Android 7.1.2 con el sistema de android WebView 60.0.3112.107 instalado.
             La mayoría de servidores web reconocerán esto como un navegador móvil y mostrará la versión móvil del sitio si dispone de ella.</p>
 
         <img class="center" src="images/user_agent.png">
index 66efaaf..b4c2282 100644 (file)
Binary files a/app/src/main/assets/es/images/advertising_id.png and b/app/src/main/assets/es/images/advertising_id.png differ
index ddeb002..949a2cc 100644 (file)
Binary files a/app/src/main/assets/es/images/domain_settings.png and b/app/src/main/assets/es/images/domain_settings.png differ
diff --git a/app/src/main/assets/es/images/pinned_ssl_certificate.png b/app/src/main/assets/es/images/pinned_ssl_certificate.png
new file mode 100644 (file)
index 0000000..7572d9d
Binary files /dev/null and b/app/src/main/assets/es/images/pinned_ssl_certificate.png differ
diff --git a/app/src/main/assets/es/images/ssl_certificate_mismatch.png b/app/src/main/assets/es/images/ssl_certificate_mismatch.png
new file mode 100644 (file)
index 0000000..39dac10
Binary files /dev/null and b/app/src/main/assets/es/images/ssl_certificate_mismatch.png differ
index 1b6cd10..b470bbf 100644 (file)
Binary files a/app/src/main/assets/es/images/tor.png and b/app/src/main/assets/es/images/tor.png differ
index 1bdc7b8..1164e0b 100644 (file)
Binary files a/app/src/main/assets/es/images/user_agent.png and b/app/src/main/assets/es/images/user_agent.png differ
diff --git a/app/src/main/assets/it/guide_ssl_certificate_pinning.html b/app/src/main/assets/it/guide_ssl_certificate_pinning.html
new file mode 100644 (file)
index 0000000..8fb4925
--- /dev/null
@@ -0,0 +1,65 @@
+<!--
+  Copyright © 2017 Soren Stoutner <soren@stoutner.com>.
+
+  This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
+
+  Privacy Browser is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+
+  Privacy Browser is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with Privacy Browser.  If not, see <http://www.gnu.org/licenses/>. -->
+
+<html>
+    <head>
+        <meta charset="UTF-8">
+        <style>
+            h3 {
+                color: 0D4781;
+            }
+
+            img.title {
+                vertical-align: bottom;
+                height: 32;
+                width: 32;
+            }
+
+            img.center {
+                display: block;
+                margin-left: auto;
+                margin-right: auto;
+                height: 640;
+                width: 360;
+            }
+        </style>
+    </head>
+
+    <body>
+        <h3><img class="title" src="../en/images/ic_vpn_lock_dark_blue.png"> Connect with Confidence</h3>
+
+        <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.
+            The purpose of the server identification is to prevent a machine located between the browser and the webserver from pretending to be the server and decrypting the information in transit.
+            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.
+            Android has a list of trusted certificate authorities, and will accept any of their certificates for any website.
+            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>
+
+        <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 certificate, even if it is valid, will be rejected.</p>
+
+        <p><img class="center" src="images/ssl_certificate_mismatch.png"></p>
+
+        <p>SSL certificates expire on a specified date, so even pinned SSL certificates will legitimately need to be updated from time to time.
+            As a general rule, pinning SSL certificates probably isn’t needed in the majority of cases.
+            But for those who suspect that powerful organizations may be targeting them, SSL certificate pinning can detect and thwart a MITM attack.</p>
+
+        <p><img class="center" src="images/pinned_ssl_certificate.png"></p>
+
+        <p>SSL certificates can be pinned in Domain Settings.
+            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>
+    </body>
+</html>
\ No newline at end of file
index be408e7..308335c 100644 (file)
         <p>Nel momento in cui un browser si connette ai siti web, invia uno user agent che identifica il browser e le sue caratteristiche di rendering. Il web server può utilizzare tali informazioni per decidere quale versione
             del sito inviare al browser. Molti siti web infatti sono disponibili in versioni diverse a seconda che vi si acceda con browser da PC (desktop) o da dispositivo mobile.</p>
 
-        <p>Per default Privacy Browser utilizza un proprio user agent (o identificazione), ovvero PrivacyBrowser/1.0. Questo invia un set minimo di informazioni al web server. Dal momento che i web server non lo riconoscono come uno user agent di un dispositivo mobile,
-            generalmente inviano la versione desktop del sito.</p>
+        <p>Per default Privacy Browser utilizza un proprio user agent (o identificazione), ovvero PrivacyBrowser/1.0. Questo invia un set minimo di informazioni al web server.
+            Dal momento che i web server non lo riconoscono come uno user agent di un dispositivo mobile, generalmente inviano la versione desktop del sito.</p>
 
-        <p>In confronto, lo user agent di default di WebView invia una grande quantità di informazioni sull'hardware e sul software del dispositivo. Sulla schermata <strong>Settings</strong>, selezionando <strong>WebView Default</strong> come
-            <strong>User agent</strong> viene mostrato lo user agent che sarà inviato al web server. Lo screenshot sottostante mostra un Nexus 6P con Android 7.1.1 con installato Android System WebView 55.0.2883.91.  La maggior parte dei web server lo riconoscerà come
-            browser mobile e invierà la versione mobile del sito, se disponibile.</p>
+        <p>In confronto, lo user agent di default di WebView invia una grande quantità di informazioni sull'hardware e sul software del dispositivo.
+            Sulla schermata <strong>Settings</strong>, selezionando <strong>WebView Default</strong> come <strong>User agent</strong> viene mostrato lo user agent che sarà inviato al web server.
+            Lo screenshot sottostante mostra un Nexus 6P con Android 7.1.2 con installato Android System WebView 60.0.3112.107.
+            La maggior parte dei web server lo riconoscerà come browser mobile e invierà la versione mobile del sito, se disponibile.</p>
 
         <img class="center" src="images/user_agent.png">
 
-        <p>Nello user agent sono presenti informazioni sufficienti a far sì che solo di tanto in tanto a un sito web risulteranno visitatori identici. Se allo user agent viene aggiunto qualche altro pezzetto di informazione anche non univoca, spesso il risultato sarà quello di avere una impronta digitale unica.
-            La Electronic Frontier Foundation ha creato un tool dal nome <a href="https://panopticlick.eff.org/">Panopticlick</a> per dimostrare quante informazioni possono essere raccolte. Se si esegue questo test con JavaScript abilitato
-            la quantità di informazioni è poi ancora maggiore. <a href="https://www.browserleaks.com">Browser Leaks</a> e <a href="https://amiunique.org/">Am I Unique</a> possono fornire ulteriori interessanti informazioni al riguardo.</p>
+        <p>Nello user agent sono presenti informazioni sufficienti a far sì che solo di tanto in tanto a un sito web risulteranno visitatori identici.
+            Se allo user agent viene aggiunto qualche altro pezzetto di informazione anche non univoca, spesso il risultato sarà quello di avere una impronta digitale unica.
+            La Electronic Frontier Foundation ha creato un tool dal nome <a href="https://panopticlick.eff.org/">Panopticlick</a> per dimostrare quante informazioni possono essere raccolte.
+            Se si esegue questo test con JavaScript abilitato la quantità di informazioni è poi ancora maggiore.
+            <a href="https://www.browserleaks.com">Browser Leaks</a> e <a href="https://amiunique.org/">Am I Unique</a> possono fornire ulteriori interessanti informazioni al riguardo.</p>
 
         <img class="center" src="../en/images/panopticlick.png">
 
-        <p>Sono disponibili diversi user agent predefiniti che identificano i browser e i sistemi operativi più comuni. Dal punto di vista dell'impronta digitale del browser, più è rara, più è facile da tracciare. Nel caso in cui Privacy Browser diventi di uso comune, e molti utenti utilizzino PrivacyBrowser/1.0
-            come user agent, sarà una buona scelta dal punto di vista della privacy. Firefox o Chrome sono gli user agents più comuni, ma vengono aggiornati spesso e il loro numero di versione cambia così di frequente che lo user agent incluso in Privacy Browser molto facilmente
+        <p>Sono disponibili diversi user agent predefiniti che identificano i browser e i sistemi operativi più comuni. Dal punto di vista dell'impronta digitale del browser, più è rara, più è facile da tracciare.
+            Nel caso in cui Privacy Browser diventi di uso comune, e molti utenti utilizzino PrivacyBrowser/1.0 come user agent, sarà una buona scelta dal punto di vista della privacy.
+            Firefox o Chrome sono gli user agents più comuni, ma vengono aggiornati spesso e il loro numero di versione cambia così di frequente che lo user agent incluso in Privacy Browser molto facilmente
             sarà rimasto indietro rispetto alla maggior parte degli user agent tracciati nei log dei server.</p>
 
         <p>WebView di Android non permette che lo user agent non sia specificato. In tal caso infatti, WebView invia al server lo user agent di default.</p>
index b596fad..c0a6669 100644 (file)
Binary files a/app/src/main/assets/it/images/advertising_id.png and b/app/src/main/assets/it/images/advertising_id.png differ
index f86a2b7..42dda2a 100644 (file)
Binary files a/app/src/main/assets/it/images/domain_settings.png and b/app/src/main/assets/it/images/domain_settings.png differ
diff --git a/app/src/main/assets/it/images/pinned_ssl_certificate.png b/app/src/main/assets/it/images/pinned_ssl_certificate.png
new file mode 100644 (file)
index 0000000..9e9ed39
Binary files /dev/null and b/app/src/main/assets/it/images/pinned_ssl_certificate.png differ
diff --git a/app/src/main/assets/it/images/ssl_certificate_mismatch.png b/app/src/main/assets/it/images/ssl_certificate_mismatch.png
new file mode 100644 (file)
index 0000000..8826bb1
Binary files /dev/null and b/app/src/main/assets/it/images/ssl_certificate_mismatch.png differ
index fe626c2..4d08495 100644 (file)
Binary files a/app/src/main/assets/it/images/tor.png and b/app/src/main/assets/it/images/tor.png differ
index 0e6a4b1..a382d8f 100644 (file)
Binary files a/app/src/main/assets/it/images/user_agent.png and b/app/src/main/assets/it/images/user_agent.png differ
index ea19f3a..68be2b5 100644 (file)
@@ -76,7 +76,7 @@ public class GuideActivity extends AppCompatActivity {
         @Override
         // Get the count of the number of tabs.
         public int getCount() {
-            return 7;
+            return 8;
         }
 
         @Override
index 975814a..33ae5b2 100644 (file)
@@ -153,7 +153,6 @@ public class MainWebViewActivity extends AppCompatActivity implements Navigation
 
     // The pinned domain SSL Certificate variables are public static so they can be accessed from `PinnedSslCertificateMismatchDialog`.  They are also used in `onCreate()` and `applyDomainSettings()`.
     public static int domainSettingsDatabaseId;
-    public static boolean pinnedDomainSslCertificate;
     public static String pinnedDomainSslIssuedToCNameString;
     public static String pinnedDomainSslIssuedToONameString;
     public static String pinnedDomainSslIssuedToUNameString;
@@ -313,6 +312,9 @@ public class MainWebViewActivity extends AppCompatActivity implements Navigation
     // `urlIsLoading` is used in `onCreate()`, `loadUrl()`, and `applyDomainSettings()`.
     private boolean urlIsLoading;
 
+    // `pinnedDomainSslCertificate` is used in `onCreate()` and `applyDomainSettings()`.
+    private boolean pinnedDomainSslCertificate;
+
 
     @Override
     // Remove Android Studio's warning about the dangers of using SetJavaScriptEnabled.  The whole premise of Privacy Browser is built around an understanding of these dangers.
index a606e83..0ebed74 100644 (file)
@@ -37,7 +37,7 @@ import java.util.ArrayList;
 public class HistoryArrayAdapter extends ArrayAdapter<History> {
 
     // `currentPage` is used in `HistoryArrayAdapter` and `getView()`.
-    private int currentPage;
+    private final int currentPage;
 
     public HistoryArrayAdapter(Context context, ArrayList<History> historyArrayList, int currentPageId) {
         // We need to call `super` from the base `ArrayAdapter`.  `0` is the `textViewResourceId`.
index 9d54cd9..f37ee7c 100644 (file)
@@ -24,8 +24,8 @@ import android.graphics.Bitmap;
 // Create a `History` object.
 public class History {
     // Create the `History` package-local variables.
-    public Bitmap entryFavoriteIcon;
-    public String entryUrl;
+    public final Bitmap entryFavoriteIcon;
+    public final String entryUrl;
 
     public History(Bitmap entryFavoriteIcon, String entryUrl){
         // Populate the package-local variables.
index 2991803..8a70392 100644 (file)
@@ -51,7 +51,7 @@ import java.util.ArrayList;
 public class UrlHistoryDialog extends AppCompatDialogFragment{
 
     // `historyArrayList`  and `currentPageId` pass information from `onCreate()` to `onCreateDialog()`.
-    private ArrayList<History> historyArrayList = new ArrayList<>();
+    private final ArrayList<History> historyArrayList = new ArrayList<>();
     private int currentPageId;
 
     public static UrlHistoryDialog loadBackForwardList(Context context, WebBackForwardList webBackForwardList) {
index 6c1ea32..ec86409 100644 (file)
@@ -86,7 +86,7 @@
 
     <!-- Pinned SSL Certificate Mismatch. -->
     <string name="update_ssl">Actualizar SSL</string>
-    <string name="ssl_certificate_mismatch">No coincide el certificado SSL</string>
+    <string name="ssl_certificate_mismatch">No coinciden los certificados SSL</string>
     <string name="current_ssl">SSL actual</string>
     <string name="pinned_ssl">SSL fijado</string>
 
     <string name="domain_name_already_exists">El nombre de dominio ya existe</string>
     <string name="add">Añadir</string>
     <string name="domain_name">Nombre de dominio</string>
-    <string name="domain_settings_saved">Configuración de dominio guardada</string>
     <string name="domain_deleted">Dominio borrado</string>
     <string name="domain_name_instructions">*. puede ser añadido a un dominio para incluir todos los subdominios (p.ej. *.stoutner.com)</string>
     <string-array name="display_website_images_array">
     <string name="privacy_browser_guide">Guía de Navegador Privado</string>
     <string name="overview">Visión general</string>
     <string name="local_storage">Almacenamiento local</string>
+    <string name="ssl_certificate_pinning">Fijación de certificados SSL</string>
     <string name="tracking_ids">Rastreo de IDs</string>
 
     <!-- Preferences. -->
index e278dd3..443ab4c 100644 (file)
     <string name="domain_name_already_exists">Il nome del Dominio è già esistente</string>
     <string name="add">Aggiungi</string>
     <string name="domain_name">Nome del Dominio</string>
-    <string name="domain_settings_saved">Impostazioni Domini Salvate</string>
     <string name="domain_deleted">Dominio Eliminato</string>
     <string name="domain_name_instructions">è possibile anteporre *. a un dominio per includere tutti i sottodomini (es. *.stoutner.com)</string>
     <string-array name="display_website_images_array">
index 8315ce5..dc77745 100644 (file)
     <string name="domain_name_already_exists">Domain name already exists</string>
     <string name="add">Add</string>
     <string name="domain_name">Domain name</string>
-    <string name="domain_settings_saved">Domain settings saved</string>
     <string name="domain_deleted">Domain deleted</string>
     <string name="domain_name_instructions">*. may be prepended to a domain to include all subdomains (eg. *.stoutner.com)</string>
     <string-array name="display_website_images_array">