A place to cache linked articles (think custom and personal wayback machine)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

index.html 29KB

4 jaren geleden
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605
  1. <!doctype html><!-- This is a valid HTML5 document. -->
  2. <!-- Screen readers, SEO, extensions and so on. -->
  3. <html lang=fr>
  4. <!-- Has to be within the first 1024 bytes, hence before the <title>
  5. See: https://www.w3.org/TR/2012/CR-html5-20121217/document-metadata.html#charset -->
  6. <meta charset=utf-8>
  7. <!-- Why no `X-UA-Compatible` meta: https://stackoverflow.com/a/6771584 -->
  8. <!-- The viewport meta is quite crowded and we are responsible for that.
  9. See: https://codepen.io/tigt/post/meta-viewport-for-2015 -->
  10. <meta name=viewport content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no">
  11. <!-- Required to make a valid HTML5 document. -->
  12. <title>Whiteout Post Mortem (archive) — David Larlet</title>
  13. <!-- Generated from https://realfavicongenerator.net/ such a mess. -->
  14. <link rel="apple-touch-icon" sizes="180x180" href="/static/david/icons/apple-touch-icon.png">
  15. <link rel="icon" type="image/png" sizes="32x32" href="/static/david/icons/favicon-32x32.png">
  16. <link rel="icon" type="image/png" sizes="16x16" href="/static/david/icons/favicon-16x16.png">
  17. <link rel="manifest" href="/manifest.json">
  18. <link rel="mask-icon" href="/static/david/icons/safari-pinned-tab.svg" color="#5bbad5">
  19. <link rel="shortcut icon" href="/static/david/icons/favicon.ico">
  20. <meta name="apple-mobile-web-app-title" content="David Larlet">
  21. <meta name="application-name" content="David Larlet">
  22. <meta name="msapplication-TileColor" content="#da532c">
  23. <meta name="msapplication-config" content="/static/david/icons/browserconfig.xml">
  24. <meta name="theme-color" content="#f0f0ea">
  25. <!-- That good ol' feed, subscribe :p. -->
  26. <link rel=alternate type="application/atom+xml" title=Feed href="/david/log/">
  27. <meta name="robots" content="noindex, nofollow">
  28. <meta content="origin-when-cross-origin" name="referrer">
  29. <!-- Canonical URL for SEO purposes -->
  30. <link rel="canonical" href="https://tankredhase.com/2015/12/01/whiteout-post-mortem/">
  31. <style>
  32. /* http://meyerweb.com/eric/tools/css/reset/ */
  33. html, body, div, span,
  34. h1, h2, h3, h4, h5, h6, p, blockquote, pre,
  35. a, abbr, address, big, cite, code,
  36. del, dfn, em, img, ins,
  37. small, strike, strong, tt, var,
  38. dl, dt, dd, ol, ul, li,
  39. fieldset, form, label, legend,
  40. table, caption, tbody, tfoot, thead, tr, th, td,
  41. article, aside, canvas, details, embed,
  42. figure, figcaption, footer, header, hgroup,
  43. menu, nav, output, ruby, section, summary,
  44. time, mark, audio, video {
  45. margin: 0;
  46. padding: 0;
  47. border: 0;
  48. font-size: 100%;
  49. font: inherit;
  50. vertical-align: baseline;
  51. }
  52. /* HTML5 display-role reset for older browsers */
  53. article, aside, details, figcaption, figure,
  54. footer, header, hgroup, menu, nav, section { display: block; }
  55. body { line-height: 1; }
  56. blockquote, q { quotes: none; }
  57. blockquote:before, blockquote:after,
  58. q:before, q:after {
  59. content: '';
  60. content: none;
  61. }
  62. table {
  63. border-collapse: collapse;
  64. border-spacing: 0;
  65. }
  66. /* http://practicaltypography.com/equity.html */
  67. /* https://calendar.perfplanet.com/2016/no-font-face-bulletproof-syntax/ */
  68. /* https://www.filamentgroup.com/lab/js-web-fonts.html */
  69. @font-face {
  70. font-family: 'EquityTextB';
  71. src: url('/static/david/css/fonts/Equity-Text-B-Regular-webfont.woff2') format('woff2'),
  72. url('/static/david/css/fonts/Equity-Text-B-Regular-webfont.woff') format('woff');
  73. font-weight: 300;
  74. font-style: normal;
  75. font-display: swap;
  76. }
  77. @font-face {
  78. font-family: 'EquityTextB';
  79. src: url('/static/david/css/fonts/Equity-Text-B-Italic-webfont.woff2') format('woff2'),
  80. url('/static/david/css/fonts/Equity-Text-B-Italic-webfont.woff') format('woff');
  81. font-weight: 300;
  82. font-style: italic;
  83. font-display: swap;
  84. }
  85. @font-face {
  86. font-family: 'EquityTextB';
  87. src: url('/static/david/css/fonts/Equity-Text-B-Bold-webfont.woff2') format('woff2'),
  88. url('/static/david/css/fonts/Equity-Text-B-Bold-webfont.woff') format('woff');
  89. font-weight: 700;
  90. font-style: normal;
  91. font-display: swap;
  92. }
  93. @font-face {
  94. font-family: 'ConcourseT3';
  95. src: url('/static/david/css/fonts/concourse_t3_regular-webfont-20190806.woff2') format('woff2'),
  96. url('/static/david/css/fonts/concourse_t3_regular-webfont-20190806.woff') format('woff');
  97. font-weight: 300;
  98. font-style: normal;
  99. font-display: swap;
  100. }
  101. /* http://practice.typekit.com/lesson/caring-about-opentype-features/ */
  102. body {
  103. /* http://www.cssfontstack.com/ Palatino 99% Win 86% Mac */
  104. font-family: "EquityTextB", Palatino, serif;
  105. background-color: #f0f0ea;
  106. color: #07486c;
  107. font-kerning: normal;
  108. -moz-osx-font-smoothing: grayscale;
  109. -webkit-font-smoothing: subpixel-antialiased;
  110. text-rendering: optimizeLegibility;
  111. font-variant-ligatures: common-ligatures contextual;
  112. font-feature-settings: "kern", "liga", "clig", "calt";
  113. }
  114. pre, code, kbd, samp, var, tt {
  115. font-family: 'TriplicateT4c', monospace;
  116. }
  117. em {
  118. font-style: italic;
  119. color: #323a45;
  120. }
  121. strong {
  122. font-weight: bold;
  123. color: black;
  124. }
  125. nav {
  126. background-color: #323a45;
  127. color: #f0f0ea;
  128. display: flex;
  129. justify-content: space-around;
  130. padding: 1rem .5rem;
  131. }
  132. nav:last-child {
  133. border-bottom: 1vh solid #2d7474;
  134. }
  135. nav a {
  136. color: #f0f0ea;
  137. }
  138. nav abbr {
  139. border-bottom: 1px dotted white;
  140. }
  141. h1 {
  142. border-top: 1vh solid #2d7474;
  143. border-bottom: .2vh dotted #2d7474;
  144. background-color: #e3e1e1;
  145. color: #323a45;
  146. text-align: center;
  147. padding: 5rem 0 4rem 0;
  148. width: 100%;
  149. font-family: 'ConcourseT3';
  150. display: flex;
  151. flex-direction: column;
  152. }
  153. h1.single {
  154. padding-bottom: 10rem;
  155. }
  156. h1 span {
  157. position: absolute;
  158. top: 1vh;
  159. left: 20%;
  160. line-height: 0;
  161. }
  162. h1 span a {
  163. line-height: 1.7;
  164. padding: 1rem 1.2rem .6rem 1.2rem;
  165. border-radius: 0 0 6% 6%;
  166. background: #2d7474;
  167. font-size: 1.3rem;
  168. color: white;
  169. text-decoration: none;
  170. }
  171. h2 {
  172. margin: 4rem 0 1rem;
  173. border-top: .2vh solid #2d7474;
  174. padding-top: 1vh;
  175. }
  176. h3 {
  177. text-align: center;
  178. margin: 3rem 0 .75em;
  179. }
  180. hr {
  181. height: .4rem;
  182. width: .4rem;
  183. border-radius: .4rem;
  184. background: #07486c;
  185. margin: 2.5rem auto;
  186. }
  187. time {
  188. display: bloc;
  189. margin-left: 0 !important;
  190. }
  191. ul, ol {
  192. margin: 2rem;
  193. }
  194. ul {
  195. list-style-type: square;
  196. }
  197. a {
  198. text-decoration-skip-ink: auto;
  199. text-decoration-thickness: 0.05em;
  200. text-underline-offset: 0.09em;
  201. }
  202. article {
  203. max-width: 50rem;
  204. display: flex;
  205. flex-direction: column;
  206. margin: 2rem auto;
  207. }
  208. article.single {
  209. border-top: .2vh dotted #2d7474;
  210. margin: -6rem auto 1rem auto;
  211. background: #f0f0ea;
  212. padding: 2rem;
  213. }
  214. article p:last-child {
  215. margin-bottom: 1rem;
  216. }
  217. p {
  218. padding: 0 .5rem;
  219. margin-left: 3rem;
  220. }
  221. p + p,
  222. figure + p {
  223. margin-top: 2rem;
  224. }
  225. blockquote {
  226. background-color: #e3e1e1;
  227. border-left: .5vw solid #2d7474;
  228. display: flex;
  229. flex-direction: column;
  230. align-items: center;
  231. padding: 1rem;
  232. margin: 1.5rem;
  233. }
  234. blockquote cite {
  235. font-style: italic;
  236. }
  237. blockquote p {
  238. margin-left: 0;
  239. }
  240. figure {
  241. border-top: .2vh solid #2d7474;
  242. background-color: #e3e1e1;
  243. text-align: center;
  244. padding: 1.5rem 0;
  245. margin: 1rem 0 0;
  246. font-size: 1.5rem;
  247. width: 100%;
  248. }
  249. figure img {
  250. max-width: 250px;
  251. max-height: 250px;
  252. border: .5vw solid #323a45;
  253. padding: 1px;
  254. }
  255. figcaption {
  256. padding: 1rem;
  257. line-height: 1.4;
  258. }
  259. aside {
  260. display: flex;
  261. flex-direction: column;
  262. background-color: #e3e1e1;
  263. padding: 1rem 0;
  264. border-bottom: .2vh solid #07486c;
  265. }
  266. aside p {
  267. max-width: 50rem;
  268. margin: 0 auto;
  269. }
  270. /* https://fvsch.com/code/css-locks/ */
  271. p, li, pre, code, kbd, samp, var, tt, time, details, figcaption {
  272. font-size: 1rem;
  273. line-height: calc( 1.5em + 0.2 * 1rem );
  274. }
  275. h1 {
  276. font-size: 1.9rem;
  277. line-height: calc( 1.2em + 0.2 * 1rem );
  278. }
  279. h2 {
  280. font-size: 1.6rem;
  281. line-height: calc( 1.3em + 0.2 * 1rem );
  282. }
  283. h3 {
  284. font-size: 1.35rem;
  285. line-height: calc( 1.4em + 0.2 * 1rem );
  286. }
  287. @media (min-width: 20em) {
  288. /* The (100vw - 20rem) / (50 - 20) part
  289. resolves to 0-1rem, depending on the
  290. viewport width (between 20em and 50em). */
  291. p, li, pre, code, kbd, samp, var, tt, time, details, figcaption {
  292. font-size: calc( 1rem + .6 * (100vw - 20rem) / (50 - 20) );
  293. line-height: calc( 1.5em + 0.2 * (100vw - 50rem) / (20 - 50) );
  294. margin-left: 0;
  295. }
  296. h1 {
  297. font-size: calc( 1.9rem + 1.5 * (100vw - 20rem) / (50 - 20) );
  298. line-height: calc( 1.2em + 0.2 * (100vw - 50rem) / (20 - 50) );
  299. }
  300. h2 {
  301. font-size: calc( 1.5rem + 1.5 * (100vw - 20rem) / (50 - 20) );
  302. line-height: calc( 1.3em + 0.2 * (100vw - 50rem) / (20 - 50) );
  303. }
  304. h3 {
  305. font-size: calc( 1.35rem + 1.5 * (100vw - 20rem) / (50 - 20) );
  306. line-height: calc( 1.4em + 0.2 * (100vw - 50rem) / (20 - 50) );
  307. }
  308. }
  309. @media (min-width: 50em) {
  310. /* The right part of the addition *must* be a
  311. rem value. In this example we *could* change
  312. the whole declaration to font-size:2.5rem,
  313. but if our baseline value was not expressed
  314. in rem we would have to use calc. */
  315. p, li, pre, code, kbd, samp, var, tt, time, details, figcaption {
  316. font-size: calc( 1rem + .6 * 1rem );
  317. line-height: 1.5em;
  318. }
  319. p, li, pre, details {
  320. margin-left: 3rem;
  321. }
  322. h1 {
  323. font-size: calc( 1.9rem + 1.5 * 1rem );
  324. line-height: 1.2em;
  325. }
  326. h2 {
  327. font-size: calc( 1.5rem + 1.5 * 1rem );
  328. line-height: 1.3em;
  329. }
  330. h3 {
  331. font-size: calc( 1.35rem + 1.5 * 1rem );
  332. line-height: 1.4em;
  333. }
  334. figure img {
  335. max-width: 500px;
  336. max-height: 500px;
  337. }
  338. }
  339. figure.unsquared {
  340. margin-bottom: 1.5rem;
  341. }
  342. figure.unsquared img {
  343. height: inherit;
  344. }
  345. @media print {
  346. body { font-size: 100%; }
  347. a:after { content: " (" attr(href) ")"; }
  348. a, a:link, a:visited, a:after {
  349. text-decoration: underline;
  350. text-shadow: none !important;
  351. background-image: none !important;
  352. background: white;
  353. color: black;
  354. }
  355. abbr[title] { border-bottom: 0; }
  356. abbr[title]:after { content: " (" attr(title) ")"; }
  357. img { page-break-inside: avoid; }
  358. @page { margin: 2cm .5cm; }
  359. h1, h2, h3 { page-break-after: avoid; }
  360. p3 { orphans: 3; widows: 3; }
  361. img {
  362. max-width: 250px !important;
  363. max-height: 250px !important;
  364. }
  365. nav, aside { display: none; }
  366. }
  367. ul.with_columns {
  368. column-count: 1;
  369. }
  370. @media (min-width: 20em) {
  371. ul.with_columns {
  372. column-count: 2;
  373. }
  374. }
  375. @media (min-width: 50em) {
  376. ul.with_columns {
  377. column-count: 3;
  378. }
  379. }
  380. ul.with_two_columns {
  381. column-count: 1;
  382. }
  383. @media (min-width: 20em) {
  384. ul.with_two_columns {
  385. column-count: 1;
  386. }
  387. }
  388. @media (min-width: 50em) {
  389. ul.with_two_columns {
  390. column-count: 2;
  391. }
  392. }
  393. .gallery {
  394. display: flex;
  395. flex-wrap: wrap;
  396. justify-content: space-around;
  397. }
  398. .gallery figure img {
  399. margin-left: 1rem;
  400. margin-right: 1rem;
  401. }
  402. .gallery figure figcaption {
  403. font-family: 'ConcourseT3'
  404. }
  405. footer {
  406. font-family: 'ConcourseT3';
  407. display: flex;
  408. flex-direction: column;
  409. border-top: 3px solid white;
  410. padding: 4rem 0;
  411. background-color: #07486c;
  412. color: white;
  413. }
  414. footer > * {
  415. max-width: 50rem;
  416. margin: 0 auto;
  417. }
  418. footer a {
  419. color: #f1c40f;
  420. }
  421. footer .avatar {
  422. width: 200px;
  423. height: 200px;
  424. border-radius: 50%;
  425. float: left;
  426. -webkit-shape-outside: circle();
  427. shape-outside: circle();
  428. margin-right: 2rem;
  429. padding: 2px 5px 5px 2px;
  430. background: white;
  431. border-left: 1px solid #f1c40f;
  432. border-top: 1px solid #f1c40f;
  433. border-right: 5px solid #f1c40f;
  434. border-bottom: 5px solid #f1c40f;
  435. }
  436. </style>
  437. <h1>
  438. <span><a id="jumper" href="#jumpto" title="Un peu perdu ?">?</a></span>
  439. Whiteout Post Mortem (archive)
  440. <time>Pour la pérennité des contenus liés. Non-indexé, retrait sur simple email.</time>
  441. </h1>
  442. <section>
  443. <article>
  444. <h3><a href="https://tankredhase.com/2015/12/01/whiteout-post-mortem/">Source originale du contenu</a></h3>
  445. <p><strong>This post is not an official statement from Whiteout Networks, but rather my own personal views on the market for consumer email privacy and some things I've learned about this space in recent years.</strong></p>
  446. <p>Sadly, <a href="https://blog.whiteout.io/2015/11/30/end-of-life-for-whiteout-key-service-action-required/">as announced on the official whiteout.io blog</a>, we will be shutting down the service. Unfortunately after almost three years of work, we were not able to achieve relevant traction in the marketplace in order to justify ongoing operations to our users and our investors.</p>
  447. <h2 id="themarketforemailprivacy">The Market for Email Privacy</h2>
  448. <p>When we started whiteout in the beginning of 2013 we asked ourselves which market we should focus on - the consumer or the business market. Keep in mind this was before the summer of Snowden and the NSA revelations. So the decision was not at all obvious.</p>
  449. <h3 id="thebusinessmarket">The Business Market</h3>
  450. <p>Our basic assessment of the business market was that there are already many established players offering very mature solutions. Most notably Microsoft's Exchange and Outlook which include built in SMIME encryption as well as comprehensive administration/management options for SMBs as well as large enterprises. There are also numerous PGP/SMIME gateway solutions out there e.g. Symantec's PGP Universal Server that allows companies to centrally manage encryption and keys.</p>
  451. <p>Entering this space as a startup seemed like jumping into a fishtank full of sharks. Like they say „you don’t get fired for buying IBM“. So why would any company buy a service from a startup that might be gone in a few years, if there are already many great solutions out there from established players such as Microsoft. Our conclusion was to stay away from this market segment and try our luck in the consumer market first.</p>
  452. <h3 id="theconsumermarket">The Consumer Market</h3>
  453. <p>Shortly after the Snowden revelations we decided to make a bet on the consumer privacy market. At the time it seemed obvious, that everyone would start encrypting their email now that we knew everything is being stored indefinitely for later analysis by the NSA. <strong>Boy were we wrong.</strong></p>
  454. <h2 id="privacyisafeaturenotaproduct">Privacy is a Feature not a Product</h2>
  455. <p>Most users aren’t willing to switch their email address or mail client just because of privacy. It simply isn't that much of a priority to most users. Much more important are design, ease-of-use, functionality, reliability and performance. You could argue that this is a sad fact of life, but it’s also very understandable. People are very good at assessing their own personal threat models. Now while having all your data scooped up by the NSA sounds terrifying to us techies, most people see little to no immediate threat in that. There are simply more important things to worry about in everyday life like financial security, the health and well-being of your family, walking the dog, or showing off to your friends by posting a recent selfie on facebook. We are after all human beings with real life concerns and data privacy simply isn't at the top of our list.</p>
  456. <p>If there is one thing I've learned it is that privacy and security does not drive behaviour. Users will only adopt encryption at a mass scale if the encryption is built into the guts of an existing product that they and most of their friends already use. A good example of this is the recent addition of end-to-end encryption in WhatsApp which has about 800 million monthly active users. Most of those users will probably never know that they have been upgraded to Moxie's Axolotl protocol under the hood. Which is actually great because encryption is not supposed to get in the user's way.</p>
  457. <h2 id="encryptedmailproviders">Encrypted Mail Providers</h2>
  458. <p>After Snowden, several startups for mail encryption started to emerge. Competition is always a good sign in a marketplace, because it increases the overall quality of available choices for consumers and being the only startup in a certain space can be quite hard because you cannot try every approach at once with limited resources. Watching and learning from your competition can help greatly. It's in this spirit that I talk about the following competitors. But I've never actually seen them as competition, since the market for consumer privacy is still so small and immature. I read the following quote on twitter once and it really stuck with me: <em>"the biggest threat to your startup is not your competition, but rather nobody giving a shit"</em>. So true!</p>
  459. <p>One thing that's interesting to point out, is that almost all startups and projects in the email encryption space are from German speaking countries. Most notably Werner Koch of GPG, Thomas Oberndörfer of Mailvelope, and the Enigmail developers Patrik and Nico. It seems that given our history in east Germany and the Stasi, we happen to be the most paranoid when it comes to surveillance.</p>
  460. <h3 id="whiteout">Whiteout</h3>
  461. <p>Before analysing the competion, let's take a long hard look in the mirror. Whiteout had about 13.000 users when we shut down the service. Now keep in mind that these are total signups and not monthly active users. We don't know for certain what the numbers for all competitors are, but if not mentioned I estimate it to be roughly in the same ballpark as our user count.</p>
  462. <h3 id="lavaboom">Lavaboom</h3>
  463. <p>A German startup from Berlin. These guys put down a promising start and received considerable media attention. When they announced their bankruptcy and shutdown of the service, I could only too well understand what they were going through at the time.</p>
  464. <h3 id="tutanota">Tutanota</h3>
  465. <p>Another German startup. Still alive and also received considerable media attention in the tech press.</p>
  466. <h3 id="protonmail">Protonmail</h3>
  467. <p>This startup was started by students at MIT and CERN. They like to advertise their Swiss roots more prominently though because Switzerland has similarly strong privacy laws as Germany. Perhaps even stronger due to Switzerland's banking sector and corporate interests that are very much in favor of strong privacy laws.</p>
  468. <p>These guys received the most media attention of any startup that's on my radar screen. They were covered by TechCrunch several times and even appeared on FOX news (yes, FOX news). Their <a href="http://techcrunch.com/2015/08/18/protonmail-v2/">last report</a> was that they had about 500.000 signups and raised an impressive 2 million from investors.</p>
  469. <h2 id="backofthenapkinbusinessmodelcalculation">Back of the Napkin Business Model Calculation</h2>
  470. <p>Now let's look at those numbers. If we take the Protonmail signups and add the user base from the other startups (which I estimate in all to be lower than that of what Protonmail has), we get around 1 million users in the email privacy market. Now keep in mind that number means signups, not active users. So if we estimate about 10% of users being active (which is very optimistic), we get about 100.000 users actually encrypting their emails using at least one of the above mentioned services.</p>
  471. <p>Next, because we’re for-profit startups, we need to monetize those users. Since we can't fall back to an ad-based model due to the privacy nature of our businesses, we have to rely on paid subscriptions. And here's where the numbers don't add up. Since we only have about 100k active users, we have to try to convert a large number of those users to paying customers. Even if we converted 5% of those users (which again is very optimistic), we would have about 5.000 paying customers. Now given that email is such a commodity and there are already so many good and full featured services out there for free, we can't charge too much to stay competitive. Basically our premium packages will be between 1 and 5 bucks per user per month, depending on the feature set. For argument's sake let's assume that a premium user will generate an average of 2,5 bucks per month. We will then end up with a potential of 12.500 bucks per month of revenue. This is the pie that all startups in this space share.</p>
  472. <p>Our burn rate at whiteout was about 30K per month so we would have needed considerably more revenue to achieve cash flow break even. The alternative here was obviously to raise more money, but it was very hard to convince series A investors that the consumer market for email privacy was big enough to justify the investment. The economics simply don't make sense for such a niche market. At least from a VC's point of view that invests several millions expecting a multiple of that in return.</p>
  473. <p>Having said that, this is just an estimated snapshot of the current market. There is no reason that this could not change. But without considerable changes in user behavior, I wouldn't bet the barn on it.</p>
  474. <h2 id="openvsclosedsystems">Open vs. Closed Systems</h2>
  475. <p>This brings us to the predicament for the email privacy space. Email is based on open standards such as SMTP. There are many different flavors of mail clients out there and people often just use their OS's stock mail app since it usually does the trick. The problem here is that even if I decide to use email encryption, I still have to convince my contacts to install encryption on their device. Otherwise I cannot send end-to-end encrypted messages to them. This adds a lot of friction for startups that want to utilize email's viral potential to grow their user base.</p>
  476. <p>On the other hand there are closed systems like the above mentioned WhatsApp. From a user’s perspective these systems have the downside of missing interoperability and vendor lock-in, but they also have one big advantage. New features such as end-to-end encryption are much easier to add in an update. This is because vendors control the full stack for all users including the client app, which is where the encryption needs to happen.</p>
  477. <p>There is one system that I want to point out here that is kind of in between. <a href="https://whispersystems.org/blog/just-signal/">Signal by Open Whisper Systems</a> is used mainly by enthusiasts and activists. They open sourced their code and the Axolotl protocol specification, but it's still not quite the same as having an interoperable open standard like SMTP. So in this regard it's still a closed system. Even though the protocol definitely has what it takes to become the next de facto standard for encrypted asynchronous messaging. WhatsApp and Silent Circle have adopted the protocol for their apps and there seems to be broad agreement among security experts that it’s currently the state of the art.</p>
  478. <h2 id="willthereeverbeopenendtoendencryptedmessagingatamassscale">Will there ever be open end-to-end encrypted messaging at a mass scale?</h2>
  479. <p>The question remains, is it feasible that end-to-end encryption will be adopted at mass scale for an open system such as email. The answer isn't obvious.</p>
  480. <p>Perhaps if a new product/protocol comes along that becomes the new de facto standard and already happens to have encryption built in. But that new protocol will have to be much better at certain things than SMTP to drive adoption. But don’t hold your breath. SMTP is here to stay, at least for the foreseeable future, simply because it’s already good enough for most users.</p>
  481. <h1 id="whatwillhappenwiththeopensourcewhiteoutmailclient">What will happen with the open source Whiteout Mail client?</h1>
  482. <p>Since our <a href="https://github.com/whiteout-io/mail-html5">mail client</a> and our <a href="http://emailjs.org/">email.js (IMAP/SMTP/MIME) libraries</a> are open source and MIT licensed we would like to continue those in a community supported nonprofit context. Even though the business model didn't work out, this doesn't mean that we aren't proud of what we have built and there is no reason we need to kill the client app.</p>
  483. <p>Since we've been working closely with the <a href="https://www.mailvelope.com/">Mailvelope</a> team from the beginning on common libraries like <a href="https://github.com/openpgpjs/openpgpjs/">OpenPGP.js</a>, we've been exploring the idea of combining our efforts in order to bring our cross platform app and the Mailvelope extension together under one roof. The details have yet to be worked out and we're not yet sure how big the community interest is for such a move. So we'd love to hear your feedback and thoughts on this. </p>
  484. <p>I want to thank everyone who supported and believed in us during the past few years. Even though the business model didn't work out, we still learned a lot and it was a privilege to be able to work with so many talented people on such a hard problem.</p>
  485. </article>
  486. </section>
  487. <nav id="jumpto">
  488. <p>
  489. <a href="/david/blog/">Accueil du blog</a> |
  490. <a href="https://tankredhase.com/2015/12/01/whiteout-post-mortem/">Source originale</a> |
  491. <a href="/david/stream/2019/">Accueil du flux</a>
  492. </p>
  493. </nav>
  494. <footer>
  495. <div>
  496. <img src="/static/david/david-larlet-avatar.jpg" loading="lazy" class="avatar" width="200" height="200">
  497. <p>
  498. Bonjour/Hi!
  499. Je suis <a href="/david/" title="Profil public">David&nbsp;Larlet</a>, je vis actuellement à Montréal et j’alimente cet espace depuis 15 ans. <br>
  500. Si tu as apprécié cette lecture, n’hésite pas à poursuivre ton exploration. Par exemple via les <a href="/david/blog/" title="Expériences bienveillantes">réflexions bimestrielles</a>, la <a href="/david/stream/2019/" title="Pensées (dés)articulées">veille hebdomadaire</a> ou en t’abonnant au <a href="/david/log/" title="S’abonner aux publications via RSS">flux RSS</a> (<a href="/david/blog/2019/flux-rss/" title="Tiens c’est quoi un flux RSS ?">so 2005</a>).
  501. </p>
  502. <p>
  503. Je m’intéresse à la place que je peux avoir dans ce monde. En tant qu’humain, en tant que membre d’une famille et en tant qu’associé d’une coopérative. De temps en temps, je fais aussi des <a href="https://github.com/davidbgk" title="Principalement sur Github mais aussi ailleurs">trucs techniques</a>. Et encore plus rarement, <a href="/david/talks/" title="En ce moment je laisse plutôt la place aux autres">j’en parle</a>.
  504. </p>
  505. <p>
  506. Voici quelques articles choisis :
  507. <a href="/david/blog/2019/faire-equipe/" title="Accéder à l’article complet">Faire équipe</a>,
  508. <a href="/david/blog/2018/bivouac-automnal/" title="Accéder à l’article complet">Bivouac automnal</a>,
  509. <a href="/david/blog/2018/commodite-effondrement/" title="Accéder à l’article complet">Commodité et effondrement</a>,
  510. <a href="/david/blog/2017/donnees-communs/" title="Accéder à l’article complet">Des données aux communs</a>,
  511. <a href="/david/blog/2016/accompagner-enfant/" title="Accéder à l’article complet">Accompagner un enfant</a>,
  512. <a href="/david/blog/2016/senior-developer/" title="Accéder à l’article complet">Senior developer</a>,
  513. <a href="/david/blog/2016/illusion-sociale/" title="Accéder à l’article complet">L’illusion sociale</a>,
  514. <a href="/david/blog/2016/instantane-scopyleft/" title="Accéder à l’article complet">Instantané Scopyleft</a>,
  515. <a href="/david/blog/2016/enseigner-web/" title="Accéder à l’article complet">Enseigner le Web</a>,
  516. <a href="/david/blog/2016/simplicite-defaut/" title="Accéder à l’article complet">Simplicité par défaut</a>,
  517. <a href="/david/blog/2016/minimalisme-esthetique/" title="Accéder à l’article complet">Minimalisme et esthétique</a>,
  518. <a href="/david/blog/2014/un-web-omni-present/" title="Accéder à l’article complet">Un web omni-présent</a>,
  519. <a href="/david/blog/2014/manifeste-developpeur/" title="Accéder à l’article complet">Manifeste de développeur</a>,
  520. <a href="/david/blog/2013/confort-convivialite/" title="Accéder à l’article complet">Confort et convivialité</a>,
  521. <a href="/david/blog/2013/testament-numerique/" title="Accéder à l’article complet">Testament numérique</a>,
  522. et <a href="/david/blog/" title="Accéder aux archives">bien d’autres…</a>
  523. </p>
  524. <p>
  525. On peut <a href="mailto:david%40larlet.fr" title="Envoyer un courriel">échanger par courriel</a>. Si éventuellement tu souhaites que l’on travaille ensemble, tu devrais commencer par consulter le <a href="http://larlet.com">profil dédié à mon activité professionnelle</a> et/ou contacter directement <a href="http://scopyleft.fr/">scopyleft</a>, la <abbr title="Société coopérative et participative">SCOP</abbr> dont je fais partie depuis six ans. Je recommande au préalable de lire <a href="/david/blog/2018/cout-site/" title="Attention ce qui va suivre peut vous choquer">combien coûte un site</a> et pourquoi je suis plutôt favorable à une <a href="/david/pro/devis/" title="Discutons-en !">non-demande de devis</a>.
  526. </p>
  527. <p>
  528. Je ne traque pas ta navigation mais mon
  529. <abbr title="Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33.184162340">hébergeur</abbr>
  530. conserve des logs d’accès.
  531. </p>
  532. </div>
  533. </footer>
  534. <script type="text/javascript">
  535. ;(_ => {
  536. const jumper = document.getElementById('jumper')
  537. jumper.addEventListener('click', e => {
  538. e.preventDefault()
  539. const anchor = e.target.getAttribute('href')
  540. const targetEl = document.getElementById(anchor.substring(1))
  541. targetEl.scrollIntoView({behavior: 'smooth'})
  542. })
  543. })()
  544. </script>