<br><br>On 1 March 2011 17:35, Jonas Smedegaard &lt;<a href="mailto:dr@jones.dk">dr@jones.dk</a>&gt; wrote:<br>&gt; On Tue, Mar 01, 2011 at 03:51:05PM +0000, Matt Willsher wrote:<br>&gt;&gt;<br>&gt;&gt; On 1 March 2011 01:26, Jonas Smedegaard &lt;<a href="mailto:dr@jones.dk">dr@jones.dk</a>&gt; wrote:<br>
&gt;<br>&gt;&gt;&gt; On Mon, Feb 28, 2011 at 09:06:00PM +0000, Matt Willsher wrote:<br>&gt;<br>&gt;&gt; I, even as a geek, prefer unified interfaces and the tool to just do the<br>&gt;&gt; job. In the case of communication with other people I don&#39;t really care what<br>
&gt;&gt; protocol is used as long as it gets to the recipient and it is at least as<br>&gt;&gt; security as I believe it to be. For example, I type in a mail address<br>&gt;&gt; <a href="mailto:john@example.com">john@example.com</a>. This looks to see if <a href="http://example.com">example.com</a> and xmpp and if the users<br>
&gt;&gt; public key is known. If so it can be sent encrypted through xmpp. If not,<br>&gt;&gt; does the system have a SSL public key for S/MIME mail? If not, warn the user<br>&gt;&gt; the mail is sent in the clear. But don&#39;t be alarmist about it.<br>
&gt;<br>&gt; In above, your expectation then is &quot;insecure messaging&quot;!<br><br>Fair point, but we don&#39;t want to alienate some of our target audience do we? For many it will mean &quot;you can&#39;t communicate with your friends unless they two have a Freedom Box&quot;. Bootstrapping secure as default is a long standing problem that has yet to be solved adequately. Offering all methods but favouring secure is a step in the right direction, no?<br>
<br>&gt;&gt; The user should have to care about the underlying protocols just the task<br>&gt;&gt; they instructing the FB to do.<br>&gt;<br>&gt; I fully agree - question is if &quot;insecure messaging&quot; is what they want.<br>
<br>If that is the only way the can communicate with someone they want to communicate with the answer is surely yes? <br><br>&gt;<br>&gt;&gt;&gt; If I offered my friends a box that could do a new form of communication<br>
&gt;&gt;&gt; which was more secure than those they already know of, they could easily use<br>&gt;&gt;&gt; that (if the box wasn&#39;t difficult to setup or interact with).<br>&gt;&gt;&gt;<br>&gt;&gt;&gt; If, on the other hand, I offered them a box with which to both do a new<br>
&gt;&gt;&gt; more secure communication style and also communicate some of their old (e.g.<br>&gt;&gt;&gt; classic mail) then the new tool needed not only to be good at the new thing<br>&gt;&gt;&gt; but also be at least as good as the old one for old-style communication.<br>
&gt;&gt;<br>&gt;&gt; There are only a certain number of paradigms regarding communication.<br>&gt;&gt; Off the top of my head there is the letter type email, the telegraph<br>&gt;&gt; style sms/tweet or the conversational style instance messages. There<br>
&gt;&gt; is some over lap with the distinction being length of message - email<br>&gt;&gt; is suited to long communication like the one we are writing here, SMS<br>&gt;&gt; and IM suited to short items.<br>&gt;<br>&gt; You tell me that our users cannot comprehend a new paradigm called &quot;secure<br>
&gt; mail-style messaging&quot;, so for the sake of user-friendliness we need to drop<br>&gt; the &quot;secure&quot; part?<br><br>No, not at all. I&#39;m saying that the secure can only be an option if both ends support it. Thing is most users don&#39;t actually care that there mail might be read or intercepted. Those that do are already using encryption.<br>
<br>&gt; I agree with your summary - We seem to disagree on what to offer:<br>&gt;<br>&gt; For &quot;freedom to send email-style messages&quot; they do not need our box.<br><br>Agreed to a limit. The box would still offer decentralisation away from the likes of google and hotmail.<br>
<br>&gt; I want us to offer &quot;freedom of mail-style messaging without spying&quot; which<br>&gt; can only work for FreedomBox peers (and geeks setting up same technologies<br>&gt; as we are &quot;boxing&quot;), not their old email- or MSN- or Facebook-friends.<br>
<br>I agree but going from the situation now (little to no security) to your dream is a huge step. I think we need to have bridge to steer down that path. <br><br>&gt; Seems you want us to offer &quot;freedom of mail-style messaging, without spying<br>
&gt; whenever possible&quot;.<br><br>Yes, initially, until the ground swell towards security by default exists. Usability and putting these tools in the hands of the masses is to me what FB is about. I&#39;d be quite happy for 0.1 to just offer mesh or just offer messaging in some easy to use form. This project has a long road to utopia I believe. <br>
<br>&gt; I want our users to trust our box, not gamble with it.<br><br>I want us to have enough users to make this something other than a niche device.<br><br>&gt; Just as cellphones did not also cover fax, and just as Facebook does not<br>
&gt; also cover email, our tool does not cover related but less secure messaging<br>&gt; paradigms.<br><br>How do we market that to an audience that, on the whole, cares more about who they communicate with not how. And even the who is open to question due to the lack of security measures. <br>
<br>&gt;<br>&gt; Whenever sensible we should cover both freedoms and non-freedoms.  Sensible<br>&gt; examples are blogging and tweeting: Publish to the world on your own device,<br>&gt; and optionally replicate into data silos like Twitter and Facebook (maybe<br>
&gt; just an excerpt to help tell those still trapped inside those silos that the<br>&gt; world outside is more comprehensive).  The freedom here is to aboid central<br>&gt; logging at <a href="http://blogger.com">blogger.com</a> and the silos, and it is ok to relax that to only<br>
&gt; _mostly_ avoid that logging.<br><br>Decentralisation is a key tenant to me but again, provide a bridge to utopia is better than nothing.<br><br>&gt; But when the freedom is &quot;messaging without spying&quot; where the _content_ needs<br>
&gt; discretion, not transport activities of it, then being relaxed is more<br>&gt; problematic.<br><br>But if that is an important goal then all parties will assure their security. If what they are doing is important enough they want security they will find it. FB is about making it easier to access, to me.<br>
<br>&gt;&gt; My point is rather: why not just use X.509 keys and certs and why use<br>&gt;&gt; GPG/PGP at all? X.509 is multi purpose, well adopted and well trusted.<br>&gt;<br>&gt; Perhaps we agree,then :-)<br><br>I think we probably agree on more than it first appears :)<br>
<br>&gt; It makes sense for me that the box contains private key(s) for its own<br>&gt; identity/identities.<br>&gt;<br>&gt; For identity handling of its user(s), it makes sense to me to *not* handle<br>&gt; private keys, only public keys, even for the owner of the box.<br>
&gt;<br>&gt; ...and it might make sense to then not handle GPG at all, if we judge that<br>&gt; our target userbase is too non-geeky to sensibly handle GPG, but only can<br>&gt; comprehend to put trust in deviced, not in humans behind them.<br>
<br>I see your point and the large response to this question has clarified a lot for me. I agree that a separation of device identify and user identity is ideal. Perhaps smart cards or similar technologies would help facilitate this result? <br>
<br>&gt;&gt;&gt; I see Debian packages not only as &quot;compiled code&quot; but as &quot;maintained<br>&gt;&gt;&gt; system-integration of code&quot;.  Configuration is an essential part of system<br>&gt;&gt;&gt; integration.  And I expect Debian package maintainers to not only provide me<br>
&gt;&gt;&gt; what upstream provided them, but also handle migrations of e.g. changes to<br>&gt;&gt;&gt; some config options - seemlessly if possible but asking me if no single<br>&gt;&gt;&gt; upgrade path is possible to resolve without my help.<br>
&gt;&gt;<br>&gt;&gt; But these configurations can be large and complex. Even capturing simple<br>&gt;&gt; cases is difficult in many cases. Take BIND, Asterisk, Apache even sudo.<br>&gt;&gt; They are are complex pieces of software with complex configuration<br>
&gt;&gt; requirements. There is no way the package maintainer can make sure their<br>&gt;&gt; changes don&#39;t tread on the toes of a current configuration, and nor should<br>&gt;&gt; the dictate the way in which software is configured.<br>
&gt;<br>&gt; This is too big a subject to cover extensively in one email thread, I think.<br>&gt; :-)<br><br>I though the very same thing when I came to this part of the mail! :D<br><br>&gt; Actually, of your examples mentioned above, the Debian packaging of sudo now<br>
&gt; (since Squeeze) offers a config.d mechanism that other packages can hook<br>&gt; into, and packaging of apache has for some time offered a (better!)<br>&gt; combination of config.d and symlink-enable-disable script.<br>
<br>But something still needs to managed though linked files. <br><br>&gt; In fact I have borrowed the apache mechanism for the boxer tool I recently<br>&gt; mentioned here on the list :-)<br><br>Yes, I saw that.<br><br>&gt;&gt; My view of a package, specifically debs because this doesn&#39;t apply to<br>
&gt;&gt; plenty of other package system, is that it should provide basic setup<br>&gt;&gt; options to glue the software to the current installation. It makes sense to<br>&gt;&gt; give a basic configuration out of the box for those learning the system, but<br>
&gt;&gt; a competent admin will soon find the simple cases that can be encapsulated<br>&gt;&gt; by the packages to be restrictive and counter productive.<br>&gt;<br>&gt; FreedomBox do not have the luxury of &quot;a competent admin&quot;.  FreedomBox needs<br>
&gt; to work &quot;out of the box&quot;.  Or even, ahem, &quot;in the box&quot; :-D<br><br>To me the &#39;competent admin&#39; is the configuration management tool developed by real competent admins and developers. <br><br>
&gt; When working with configs, it is quite understandable that at first you see<br>&gt; us as &quot;admins&quot; of the box.  But then comes a new release of Debian and we<br>&gt; learn that the model of os acting as admins do not really fit: We _deploy_<br>
&gt; systems and then loose contact with them.  We are _deployers_, not admins.<br>&gt;  And as such we are much better off passing _all_ of our customizations to<br>&gt; pristine Debian packages into Debian than trying to work from that new role<br>
&gt; of &quot;deployer&quot; which neither upstream (Debian or upstream coders) nor our<br>&gt; users can comprehend.<br><br>I do not believe that we should be asked the packagers to take the role of administrator, which to me is what the above implies. I see you point. It&#39;s just alien to me and I think it puts too much onto the package maintainers. <br>
<br>&gt; Users get their stuff from one provider.  They should not care which roles<br>&gt; was involved in which parts of the assembly of it.<br><br>I agree. They shouldn&#39;t even need to know what OS is under the hood. <br>
<br>&gt; Debian provide stuff for their users.  They should not care which kind of<br>&gt; user (derivative distro, deployer, end-user) is targeted.<br><br>&gt; We perfectly agree that end-users are on their own if &quot;hacking on top&quot;.<br>
&gt;<br>&gt; The issue I am talking about is that _we_ hack on the _Debian_ stuff and<br>&gt; then pass it on to our users.  Then later it explodes in _their_ faces when<br>&gt; _Debian_ wants to upgrade a config which _we_ hacked on.<br>
&gt;<br>&gt; You may argue that the box never changes.  Should not ever be upgraded to<br>&gt; newer versions of Debian.  That is indeed an approach, but not a sensible<br>&gt; one long-term IMO.<br><br>I would expect that Debian will not make config level changes with in a release? So if we stayed with, say, squeeze for now we wouldn&#39;t face the issue you&#39;re outlining because the upstream shouldn&#39;t be trying to jump all over our configuration. Or is that not the case?<br>
For going between major releases a careful and staged approach is needed.  For many, if not most, of the packages there will be little change. The major upgrades where there is major config changes may need some work, but I don&#39;t see why a configuration management model outside of the packages would be problematic. I has many benefits, including maintaining the configuration, making sure that permissions are maintained and gives a consistent method of orchestrating the system. Done correctly this kind of orchestration could server as a model for other systems. Perhaps this isn&#39;t the project to do some adventurous architecting. <br>
<br>&gt; I find it unlikely that next generation of freedom fighters will want to<br>&gt; work on Plug devices.<br>&gt;<br>&gt; But I find it highly likely that the freedom-enabling technologies that they<br>&gt; will want to include in their designs share many similarities with our<br>
&gt; current project.<br>&gt;<br>&gt; So I find it most likely that all contributions survive long-term if<br>&gt; integrated with the various packages rather than is tied to the specific<br>&gt; solution we aim at.<br><br>
That depends on how good it is. I can see your point about the packages, and I can see there are benefits, I just don&#39;t see how it can be a complete solution to the issue of configuration management. There needs to be other methods. <br>
<br>&gt; you see Debian packages and their usage more separate than me.<br><br>Yes. My background is Solaris and RHEL. The explicitly do not take user input as part of their installation. They provide reasonable defaults and let the users tailor the installation via &#39;traditional&#39; means. I like this approach. It maintains separation. I&#39;ve worked on both sides of the fence and I like a clear divide. <br>
<br>&gt; Yes, esp. complex packages are difficult to setup automated, but it is a<br>&gt; goal of Debian to do so.  So please help challenge Debian to improve in this<br>&gt; area!<br><br>I believe the problem domain is so complex for anything but basic packages that it should be part of the package system. Before you know if you have xml parsers and even  specific grammer parsers as part of the packaging infrastructure. As a packager all I care is that the software ends on the system and will run. What the end user does with it is up to them. <br>
If you&#39;ve not read the cfengine tutorial or maybe even better Mark Burgess papers on promise based systems for automation I implore you do to so. If offers a degree of flexibility that packaging within a box just can&#39;t deliver and offers a consistent model across any scale of architecture. <br>
<br>&gt; how do you mean?  Each and every package in Debian has at least one<br>&gt; volunteer already:  Miminum requirement is to file sensible bugreports.<br><br>If they loose a key maintainer you could end up with a package that isn&#39;t &#39;correctly&#39; maintained between releases. <br>
<br>&gt; You believe that needed configs are impossible for thousands of Debian<br>&gt; volunteers to automate.<br><br>I believe providing all things to all people through the packages is not the place it should be. <br><br>
&gt; I agree with you that us tens of FreedomBox volunteers are able to compose<br>&gt; needed configs by hand.<br><br>No, we let a configuration management tool do the heavy lifting. Is this the project to develop that? Maybe not. But I can&#39;t see the Debian contributors being able to come together to deliver everything we need to get FB together. There will have to be some other management system available to us. <br>
<br>Further to all of this the UI needs to be decoupled from the package and software management. We really can&#39;t have a UI making direct root and configuration calls. There has to be a controlled intermediary which just accepts the data to be configured and applies it. <br>
<br><br>&gt; What I find Hubris is to maintain it on our own.<div><br></div><div>Ah heck, I hack at Perl. Hubris is a good things, dangnabbit (along with that there laziness and impatience) :)<br><br></div><div>Gosh that&#39;s a long old mail. I really need to start showing something for it rather than just giving it all this talk. </div>
<div><br></div><div><br></div><div><br></div><div><br></div>