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 1caa1363c93b174a058995cdabc9773e123ab3bc..95f0f031062694350692a50d7adca27d559d5d41 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 72de603fc1579c4e083b695037ef8fb0774d3180..4f447406e10a99ac7e1c92bb2d056878c367adda 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 6cad363108bcd451dd8c128009cefa1458d9ed8b..5b4978e165d90f23db7320082c93c623a0088c51 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 16493855c0bc6453bccb2fc776cecc86304ab9be..c4fe96db158696be4e803c6029dfe1e9a66cead0 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 376d1e8c88b7fb3ab7c6f623aef7e39669696093..d2c884697cadf10d988d79b583629d2216b2a355 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 3e26e77565c9cbb97874758286ea8cc74315882b..96c6c9113f852c8392a8cb80ca20b860bbf7220d 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 df3271bbfab622bbdf56c419e504031989b28cf8..a06431bd7d5e3f9a1403e622c01550a0727bdbce 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 a8c6238cda4db61e9b6cf475ebaffee69af6f75d..096793bc79482cbe76918b6b8406b6f62b62e958 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 7f05a57b57e79060a5bd174479a0838e1cf61967..2d811f3c022fd6cf496db4b75386ee137b8c0e62 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 3d4e9d02cd50d6e7501cdd184f53c647e2d1928f..b768699bff795805b563e4836a7b4d949c77c74d 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 778ba0b6de338f316c91350d20191c6503fe57d9..93045bcdeed7ed406618837d9e003f1c3e74be9f 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 e8170c0912797fd2808ad155e7552431a96f61a7..509e567624a17722bc187f0b9ca6fdaf8ce829db 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 f6495fa25f7d4ec5804c141c4aca562e1c18d295..fd02999501385e2bdcbe13683003164e3e8aac65 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 f55c5cc7bff27cb99c5ea87763d3eb9d6d3bdf2d..3e5fb3c3a40b60b51bde968127c416278984e389 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 09a1b5e73a39583cf53579ce4902827fc80f3a96..da00842149ae6163f0bd5aff708b4b2331ea1e74 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 0dad09310487690532585f6bf5b15d097f0b11a5..1f7a577d8917b74ebf47860eb9fce8fdf5917eb4 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 f3cdca19a06c6a2a90e49992fb7d62748a33e589..f32e67d9d185a2e76aad7d0537713abbd19f18a0 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 66efaaf7765465baa10a34ec24788d39b95ff886..b4c228254f2e5c0194909404fa01783c409c1c3f 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 ddeb0025c94733adef02d622bc977b4775aac9e2..949a2cc3c711fdb38ed4d57ff858a74a2fb733d7 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 1b6cd10948bdaf4b3473560de3093ac6af643344..b470bbf9c7896de2ba765ce9a05f24cad6386a9b 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 1bdc7b84de068792ac8abc0d04f55c55143d5034..1164e0bc8a2e6180bfaa92e1700279e84f59d9a2 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 be408e724712c4d9c945f177e8a2f2ffbc69f273..308335c27500f0204934cc891a3dac6f03511f71 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 b596fadb2d44bcf0bc8aa1f6b1579be4bfe8aca3..c0a666994a813326366d4a5c973bda6f05c5c3c1 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 f86a2b769aa65a893bf013c0ca951ecdd9fe323b..42dda2a6262cfe2d1c281de6004ee4995af1e3e0 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 fe626c222ac24bbc8950292bb088c4065d595f2c..4d084959192bbb013ea778afee7d364e4e58cdfe 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 0e6a4b1ed2497fb5e2dcb3d2162b81ec323def04..a382d8f887e1e188626cb4e9d77ea2103a4b986f 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 ea19f3a3b4b9c8161c37cf7219fcc9cdf8f74154..68be2b5eac4eab916ff14dc09e754a58ad955370 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 975814a65a5814b53ace7490d03be6e7eba06b21..33ae5b2d326958c859c9296830cdfafc0cc817b4 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 a606e83d48e6032d27f3efbdc87fb4d046b80d3e..0ebed74a14273b31b8c1fd85a5f6ea4f1edad9e8 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 9d54cd9e75b09c2c115f14541923ce521ed44896..f37ee7c797daff4c574c335b4d9107eb2c95261a 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 299180320acb22ac841352115a166efac7a93591..8a703929b6d12226b817dbe5319b7edebb6aca31 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 6c1ea32c6aee8bb5b0be6019a647b4e8d1bd3bb1..ec864095e394c976a8c1569e79276f68057833f3 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 e278dd3a76fae49d6decfdddd33e741cca7b271f..443ab4cd65368ee33bc319402fe282b7b5606b6c 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 8315ce56dce795c19b0b1e9710188691539d4047..dc777450a15a0f5b546d859d986add471f0e2f04 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">