1 [[!meta date="Wed, 15 Nov 2017 10:00:00 +0000"]]
2 [[!pagetemplate template="news.tmpl"]]
3 [[!meta title="Have your cake and eat it, too!"]]
6 Reproducible Tails builds
7 =========================
9 We have received the Mozilla Open Source Support award in order to make Tails
10 ISO images build reproducibly. This project was on our roadmap for 2017 and
11 with the release of Tails 3.3 we are proud to present one of the world's first
12 reproducible ISO images of a Linux operating system.
14 From source code to binary code
15 ===============================
17 When we write software, we do this using programming languages which a
18 human can read and understand. This is called the _source code_. One can
19 imagine source code much like a very precise recipe. Such a recipe
20 describes an exact procedure: which ingredients and which amount of
21 ingredients do you need? How should they be mixed together at which
22 temperature should they be cooked or baked? The recipe will even
23 describe the expected outcome: how the meal should look and taste like.
25 When we generate a Tails ISO image, our source code and the Debian
26 packages we include are assembled into a binary ISO image,
27 much like when the ingredients of the recipe are mixed together,
28 one obtains the meal. The amounts and ingredients of this meal cannot be
29 easily reverse engineered. The result of *our* cooking process is a Tails ISO
30 image which users download and install onto a USB stick.
32 We, chefs and aides in the kitchen (Tails developers and contributors),
33 provide you, our users, with several means to verify that this ISO image
34 is indeed the one we want you to download, either using our
35 Firefox add-on which does this verification
36 automatically for you or by using our OpenPGP signature. Both of these
37 verification methods simply tell you that the ISO image is the image
38 which we want you to download: That the meal you get is indeed the meal
39 that you've ordered, and not a meal which has been poisoned or exchanged
40 by an evil waiter (such as a download mirror).
42 However, even with such sophisticated verification methods, it is still
43 impossible to trace back the meal to the recipe: Does the meal contain
44 only the ingredients it is supposed to contain? Or could unauthorized
45 personnel have broken into the kitchen at night, and then poisoned the
46 ingredients and made the oven cook at 50 degrees higher than displayed?
47 In other words, could a malicious entity have compromised our build
48 machines? That's what reproducible builds help verify and protect
51 What's a reproducible build?
52 ============================
54 > Reproducible builds are a set of software development practices that create
55 > a verifiable path from human readable source code to the binary code used
56 > by computers. *(quoted from https://reproducible-builds.org/)*
58 In other words, with reproducible builds, each cooking process of the same
59 recipe is exactly repeatable.
61 At Tails, we have worked during a year to implement such a set of
62 practices. This makes it now possible to compare ISO images built by
63 multiple parties from the same source code and Debian packages,
64 and to ensure that they all result in exactly the same ISO image.
66 Or again, using our cooking metaphor: Several of us will cook the meal, compare
67 that we all cooked the same meal and only once we're sure about that, we will
70 We all can thus gain confidence that no broken oven has introduced
71 malicious code or failures: or we would notice it before delivering the
74 What does this mean for you as a user?
75 ======================================
77 This does not change anything in the way you download and install Tails,
78 and you don't have to make additional verifications. It simply helps
79 trust that the Tails ISO image that we distribute is indeed coming from
80 the source code and Debian packages it is meant to be made of. With reproducible Tails, it
81 only takes one knowledgeable person to build Tails and compare with the
82 ISO image the Tails project distributes to uncover some kinds of
85 And by the way, not only our ISO images are now reproducible, but so are
86 our incremental upgrades. And you are benefiting from this improvement
87 without even noticing :)
92 Besides Mozilla's Open Source Support and the Reproducible Builds
93 community that provided critical help where we strongly needed it, we'd
94 also like to thank all members of our community who helped us test this
95 process. You giving us a hand is much appreciated!
97 Technical implementation
98 ========================
100 If you are interested in the technical details of our implementation, we
101 invite you to read our [report to the Reproducible Builds
102 community](https://lists.reproducible-builds.org/pipermail/rb-general/2017-October/000656.html)
105 We've also published technical [[instructions to
106 verify|/contribute/build/reproducible/#verify-iso]] one's own
107 [[build|/contribute/build/]].
109 Help us make Tails even better
110 ==============================
112 Tails is a self organized free software project. We depend on
113 partnerships, grants and most importantly on donations by individuals
116 Care to give us a hand to make Tails bake even better cakes in the
117 future? <div class="donate-button"><a
118 href="https://tails.boum.org/donate/?r=fromrb">Donate today!</a></div>
123 Any reproducible build process is reproducible… until proven
124 otherwise. In our case last-minute issues were discovered and should
125 be fixed in the next Tails release:
127 - [[!tails_ticket 14933]]