Merge remote-tracking branch 'origin/feature/7461-persistence.conf-in-whisperback...
[tails/lblissett.git] / wiki / src / blueprint / download_extension.mdwn
blobb2bed3f4909406dd9fd1207a0e711f5fcff15c76
1 [[!meta title="Automatic ISO verification extension for Firefox"]]
3 We are planning to create a custom Firefox add-on to download and verify Tails
4 using SHA-256 checksum.
6 [[!toc]]
8 Objectives
9 ==========
11   - To fix the ISO verification method using Windows. It has been broken since
12     Firefox 20.
13   - To simplify the installation process by automating some ISO verification
14     during the download process.
16 This would fix the main stumbling block for Tails verification (and thus
17 installation) for the vast majority of users.
19 Security considerations
20 =======================
22   - People are downloading their ISO image from one of our mirrors. Those
23     mirrors are run by volunteers and the content of what they serve is not
24     authenticated.
25   - On the other hand, the information served on tails.boum.org is
26     authenticated through HTTPS.
27   - Downloading Firefox and installing add-ons is also done through HTTPS on
28     mozilla.org.
29   - Forcing Firefox users who are downloading the ISO image through HTTP to
30     verify its checksum can only increase the average level of verification
31     that people do on Windows and Mac OS systems.
32   - But HTTPS does not provide strong authentication. So our documentation
33     should make that clear and keep providing instructions for authentication
34     using OpenPGP but as an additional check.
36 <a id="scenario"></a>
38 Scenario
39 ========
41 ISO download
42 ------------
44   - When the user clicks on the direct download button from the [[download
45     page|download#index2h1]], Firefox proposes to install the extension.
46   - The user allows the installation of the extension.
47   - The extension starts the download and the user decides where to save it.
48   - The webpage is modified and displays a progress bar of the download.
49   - The user might or might not close the webpage.
50   - The download also appears in the usual list of downloads of Firefox.
52 ISO verification
53 ----------------
55   - When the download finishes, the ISO verification starts.
56   - The extension checks the size of the download to verify that the download
57     was complete.
58   - The extension compares the checksum of the ISO image to a checksum found on
59     the website through HTTPS.
60   - The extension displays the result to the user:
61     - If the original webpage is still open, it now either:
62       - Points the user to the installation documentation.
63       - Proposes troubleshooting strategies.
64     - Otherwise it shows the result in a popup message and points to the
65       appropriate page.
67 Other desirable features
68 ========================
70   - Be able to use that extension, once installed to verify ISO images
71     downloaded using BitTorrent for example.
72   - Be able to use that extension to verify other ISO images, testing images,
73     older ISO images, etc. In that case the user would be warned about the
74     deprectated or experimental status of the ISO image.
75   - Be able to use that extension to check the GPG signature. On top of
76     verifying the checksum, this would provide TOFU authentication. Then, if the
77     user downloads a genuine app and a genuine key on first use, then she will
78     be protected from a later compromision of the HTTPS certificate of
79     tails.boum.org.
81 Technical insight
82 =================
84   - That technique should be multiplatform and work from TBB as well.
85   - The extension can get the checksum and the URL of the ISO image from the
86     `<div id="content">` in following static pages:
87     - <https://tails.boum.org/inc/stable_i386_iso_url/>
88     - <https://tails.boum.org/inc/stable_i386_hash/>
89   - The same tricks should be used to get the file size.
90     See [[!tails_ticket 7417]].