On Sun, 27 Nov 2005 14:15:26 +0100, Robbert Haarman <[EMAIL PROTECTED]> wrote:
>Dear JCR, > >> To the rest of list users; Please pardon another long email from me on >> this. Helping reasonable people like Robbert understand why many people >> consider "HOWTO's" to be harmful is hopefully worth the added noise and >> bandwidth. > >If this is a concern, why don't we take the discussion off-list? Also, I >don't want to waste anyone's time with this discussion, so if you are >tired of this discussion, just tell me to stop it and I will. > Long posts and repeated back-and-forth on the list are things I prefer to avoid, since every post we make on list does carry the associated cost of many people, including a lot of the developers, reading and scrutinizing it. I find you, your opinions and the discussion itself interesting, but moving it off list after this post will probably be best. I was originally going to send this to you off list but Michael Quaintance requested to continue the discussion in public. A tough call ether way but capitulating with his request on one last lengthy volley into the ether seems fairly reasonable. I hope it seems like a reasonable plan to you. >> >> If end-users are lazy and want to take the easy way out, they should >> >> go back to using linux and MS-Windows. They are not welcome here. >> > >> >That's a pity. I personally think OpenBSD is the _only_ operating system >> >that takes security as seriously as it should be taken, and it would be >> >in everybody's (well, almost everybody's) best interest if they used it. >> >There is nothing wrong with the project not wanting certain users, but >> >it leaves these users with a choice among evils, which is a pity. >> > >> >> The pity is not whether or not some users are welcome. The real pity is >> current technology has yet to produce a computer that the average user >> can, own, operate and maintain without either significant knowledge of >> their own or significant resources to pay professionals to do the dirty >> work. > >I disagree. A Linux distro (forgive my blasphemy) Linux is not blasphemy. It's just one of the many a flavors of UNIXish operating systems. The various flavors of UNIX are just like people; we all have our own set of problems and personality quirks. Oddly enough, there's a powered off RedHat8 box currently being used by my feet as a footstool. Though I can't say I really support linux very much, I can say linux supports my feet fairly well. ;-) >like Ubuntu is easy >enough for computer illiterates to use and even maintain, since security >patches are automatically announced and installed with a click of the >mouse. I've never tried Ubuntu. Is it fun? -The reason why my only linux box is an ancient RedHat8 is due that version being the only "supported" version of linux for Cadence software suite. I have to test on it, as well as SPARC-Solaris, PARISC-HPUX, POWER-AIX and others. >If only Ubuntu had the advanced security mechanisms of OpenBSD, >it would be a very secure system, even if the users didn't know much >about computers. > >As it stands, OpenBSD is the only operating system I am aware of that >has had the full base system completely audited and has buffer overrun >and other protections enabled for all software on it. This, by itself, >makes it more secure than other systems, regardless of what users do >with it. Even in the worst case, where users actively degrade the >security of the system, I would imagine OpenBSD's security would at >least not be _worse_ than that of another system. > As you know, reducing the secure/insecure argument to absolutes of black and white does not work but contrary to popular belief, trying to differentiate based on shades of gray also fails miserably. There are just too many possibilities, too much work and too many assumptions to make any solid case based on particular shades of gray. To put it a bit more directly, I believe you are grasping at straws with this line of reasoning because we both know there's really no way to prove or disprove whether your assumptions are correct or incorrect. On the bright side, I think you deserve bonus points for a beautiful use of rhetoric. ;-) Adding security features tends to break existing software. It's just a fact of life but on the flip side, it does allow new classes of bugs to be found and fixed. When software refuses to compile or run due to some new security feature, the result is increasing the level of expertise required of "normal" users to do a "normal" tasks. What I'm saying is, the Ubuntu/Windows approach of trying to make things easy for the end-user is diametrically opposed to the addition of disruptive security technology. Yes, in time, the bugs found by a new security feature get fixed and the effect on required knowledge is reduced but in the mean time, you've got a bunch of angry users out for blood because they can't do their job. Security itself is actually a myth because nothing is ever completely secure. Calling it a "relative term" and playing the shades of gray game is really just a cop out since the work required to completely prove the relation and distinction never actually gets done. Any generalized comparison, like the ones you've made, such as stating OpenBSD is "more secure" or "less secure" than something else is simply fallacious and unsubstantiated claim because it would take decades to gather all the data required to logically prove it either way. If you are willing to pay the tab for a ton of top security people to spend many decades doing low level analysis of every bit and byte, please let me know when your done generating the mountain of results, since if you get done soon enough, I might actually get around to reading them while I'm alive. The most clean and logical way to view the myth of "security" is as a risk management problem. This leaves you with the difficult task of defining what you personally consider to be acceptable risk but it gets you away from using vague and unprovable comparisons like "more secure" or "less secure" as well as the associated holy wars they always seem to provoke. Adding buffer overflow protection simply decreases risk by a somewhat measurable degree based upon both its tested effectiveness at it's job and the probability of buffer overflow bugs in the code you run. It's math. For this one piece, within the given bounds, you can clearly define it's over all effect as having a high probability of reducing risk by some degree. The problem with assigning a risk metric to something as esoteric as end-user security degrading misconfigurations is there are just too many possible misconfigurations with too many degrees of security degrading effects to account for a reasonable number the possibilities. Some misconfigurations are innocuous others are absolutely deadly. Worst of all, you can not completely prevent them. The only thing you can say for certain is misconfigurations *do* have a very high probability of occurring and *can* pose very substantial risk. The best option in such a no-win situation is reduce the number of configuration tasks and options to a minimum, known set and then validate them through testing and auditing. Once again, you're looking at a lot of work which most people will never do. How many experienced users do you know that follow such a procedure? How about new users? Regardless of the operating system that's being used, if you give a new guy root on his own box and combine it with a lack of knowledge and procedure when configuring and installing things, the end result is always the same; a box with a very high potential risk of compromise. You can not avoid this particular risk exposure. No one can. Not even the OpenBSD team, and they have done more due diligence in testing and auditing their default configuration than any other publicly known development team. Maybe you read all the news/marketing about all the cool new security features added in OpenBSD and that is where your concentration seems to be. Take a look at the other, unpromoted side; the OpenBSD team also actively removes features, buttons, knobs and other unnecessary and risky nonsense. Either way, if end-user misconfiguration is possible, you end up with Murphys' Law on the majority of systems owned by inexperienced and reckless users regardless of the deterrents you put in place. Every time you make something more idiot proof, the world produces a more effective idiot, so the very best you can ever do to combat this fact of life is manage your own risks accordingly. All of this, in a strange sense, gets us back to correctness. With effort and detail, you can define what you personally consider correct and at least to some degree, you can test to make sure of compliance with your definition. When you ponder it, yep, you're looking at risk management once again. The thing to remember is risk can never be completely eliminated, it is only managed within the bounds of available knowledge and resources. The risk management effort covers the whole enchilada from trying to limit user inflicted misconfigurations, to correct operation of code, to accurate and useful documentation, to copyright issues from bad licenses, to legal threats from patents, to the inability to compete in the operating system market due to closed hardware docs and so on and so forth perpetually. As you can see, in total risk management is a *HUGE* problem and the only answer is to weigh and manage the various risks to the best of your ability with the knowledge and resources you have available. >> >The reason I wrote the HOWTO is that, in my opinion of course, the >> >manpages don't make it clear how to set things up. Searching the >> >archives for more information came up with some contradictory messages, >> >and some instances of people being misled by the way things worked and >> >the way things were described in the manpages. My HOWTO is an effort to >> >gather the relevant information in one place, and provide clear steps >> >for getting things working. >> >> Therein lies a significant difference of opinion between you and I. The >> steps provided by HOWTO documents do not give clarity, > >They do. They explain some of the things that people were having >problems with, such as the fact that labeling doesn't work the same way >as it does for real disks (which Mickey says I got wrong - but can you >blame me, given that the manpages don't say anything about it?). > Can I blame you? -No, not really. There are really only two possibilities here; (1) you overlooked, misread or failed to read something or (2) you found an issue in the docs that many people will consider a bug. Considering you are taking the time and investing the effort, I'm personally betting on door number two. >No matter how much you compare my HOWTO to blindfolding people and >possibly sending them off in wrong directions, it's a fact that the >documentation that existed before it has led people in wrong directions >and left them confused. For some people, possibly many, yes, you are correct. >The HOWTO is my attempt to provide instructions >that work and don't leave people confused. Perhaps, instead of arguing >back and forth about whether I did well to write the HOWTO, we should be >working together to fix the mistakes and turn it into a document that >provides correct and sufficient information? > Exactly. (more on this later) >> You are legally able to copy the OpenBSD man pages, so there is really >> nothing stopping you from quoting them a chunk at a time and adding your >> own insight, explanations and experience. By privately contacting the >> authors and maintainers of both the code and man pages, you can easily >> double check your work to prevent spreading misinformation. Provide >> explanations of the steps you took as well as explanations of all the >> other possible steps a user might want or need to take. > >There's something to that, too. I didn't want to bug the developers, >afraid as I was that the questions I had would annoy them, and result in >a pointer back to previous misc@ threads at best. Instead, I decided to >figure out for myself how I could get things to work, and document the >steps, so that others might benefit. It seems that, in doing so, I've >annoyed people even more. Again, I must apologize. This was not my >intention. > (again, see below) >> better than a HOWTO that claims to be a short-cut way to set up >> mirroring but actually provides the steps needed to possibly fry your >> disks through misconfiguration. > >Honestly, I think that's a stretch. I'm sure you can destroy your data >with ccd, but frying your disks with a pure software feature? > Actually I meant frying your data but yes, it is *very* possible to fry hardware with software and sometimes it can be a lot of fun. Search the Internet for "Hard Drive Races" and you'll see what I mean. And no, I'm not talking about "race conditions" I'm talking about taking a "hard drive" the size of a washing machine and writing a program to make it "walk" across a finish line as fast as possible via sequences of seeks and writes. ;-) Some things never change... even today the greatest threat to expensive, working hardware is a bored geek with a bit of imagination. >> There might be other good ways to go about making things more accessible >> to users but the methods you are currently using are really a disservice >> to others in spite of your good intentions. > >That's assuming that my directions really do lead users in the wrong >direction. If they let users set up ccd and everything works fine, I >don't see the problem. Note, also, that the HOWTO does include a section >that describes (albeit briefly) how ccd works, and that I have >incorporated improvements suggested by the discussions here. I'm >_trying_. > Your effort is admirable. The same is true for Daniel Ouellet and some of the others who agree with and exercise your HOWTO methods. >> How would you feel if some newbie found your original HOWTO through >> google, never read your mailing list post asking for validation and >> followed your instructions only to lose all of his data due to your >> mistakes? > >If that happens, too bad. The instructions work for me, so I can only >assume they work for others. I'm incorporating new information as I >learn. I do warn that making backups is a necessinty, and anyone with >enough common sense should know to make backups before messing around >with the partitioning of their harddisks. > Admittedly, I've been more than a little harsh while harping on the potential of data loss caused by incorrect instructions in your HOWTO but this is with good reason. People around here care about the correctness of what they do and care enough to post on this list to help others do things as correctly as possible. OpenBSD may be an unimportant hobby for you personally so it's no big deal if you crash your box, but there are many people who count on OpenBSD in order to put bread on the proverbial table. If your packets pass through an OpenBSD system for any professional purpose, guess what, you are one of the people who is counting on things being done right. Everything around here gets scrutinized for correctness. The most beneficial thing you and other HOWTO writers have done is prove there is a viable and valid need for increased clarity and accessibility in the docs on top of the usual correctness. If the ccd man page was more than just correct but was also clear and comprehensible to the average person, you and everyone else would have perfectly working ccd mirrors without all this fuss and discussion. The only possible down side I can see to having improved clarity in the docs, is I never would have had the opportunity to get to know you a bit. >> Though I'm generally considered extremely good with information systems, >> I know damn well that mickey@ could geek-slap me into tomorrow without >> breaking a sweat. Trying to argue with him about your mistake only shows >> your inexperience and unwillingness to do things correctly such as >> actually researching the topic upon which you are trying to enlighten >> others. > >Excuse me, but from what I can see, Mickey was wrong. The c partition is >configured as 4.2BSD before one can run disklabel, and using that >partition for data storage does work for me and others. This has nothing >to do with insulting Mickey's intelligence or abilities as a developer, >but I am not going to assume things are as he says when the facts >contradict him. > >Just to be on the safe side, I have updated the HOWTO to tell users NOT >to use the c partition. However, I am still not convinced that there is >an actual problem, until I read enough of the source code to convince >myself, or someone explains to me exactly how things would go wrong, why >things appear to work fine for me, and why the tools set things up in a >way that can (according to Mickey) destroy the partitioning on your >physical drive. > Ya know, that last paragraph of yours hits on something very prevalent in OBSD; proving your case. Debating things into the ground on the public lists is an absolutely pointless waste of time but proving your case with facts, tests and source code is very much welcome and appreciated. Just state your case with proof and if possible, provide a fix. 1.) I think this is a bug 2.) This is why I think it is a bug 3.) This is how to test for the bug 4.) This is a proposed fix for the bug. 5.) Is there a better way to fix it? 6.) I AM WILLING TO DO THE WORK. 7.) Do the work. 8.) ? 9.) PROFIT! Of course, you can skip #8 and #0 if you want ;-) but all of the other points are subject to debate and are just standard operating procedure for both bugs in code and bugs in documentation. >> If correctness was extremely important to you and you had extended the >> time and effort to ensure the greatest degree of correctness you could >> in your code and docs, would you be offended if I came along with an >> erroneous and lethargically tossed together "HOWTO" about your hard >> work? > >If the docs had been clear and correct, I and others would not have >followed the allegedly wrong steps I documented in my HOWTO. If Mickey >is right and using the c partition is disastrous, the code that sets it >up as a 4.2BSD partition isn't correct. > >To answer your question, if somebody had written an errorneous HOWTO >about my hard work, I would probably point out the mistakes and suggest >improvements. I would expect them to correct the mistakes and >incorporate the improvements. To the extent that improvements have been >suggested, I have incorporated them. > >> How about if I wanted to publicly argue with you that I'm right and >> you're wrong? > >As long as your arguments made sense, I would respond to them by >pointing out why I think I'm right and you're wrong. > It seems you're missing the underlying point that I was trying to drive you towards. Usually one of two possible real problems exist if you are faced with an erroneous HOWTO about your work: (1) the HOWTO author is an ignoramus or (2) you've failed to supply adequate documentation for your work. There is the third possibility of both #1 and #2 but it's rare. The best answer is to fix and improve your documentation so there is no need for a HOWTO. If you hadn't guessed already, I've known mickey for a while and I both like and respect him a great deal. In other words, I'm highly biased. Making sense of the things mickey writes takes a bit of effort and practice, usually including looking more things up in the man pages and source code. English is not his first language but after a while you'll realize he's got a rather cool style of English that's all his own... Like the fact he tilts his head the other way to smile (-; and in real life like his typing, he doesn't have a nose (; Though there may be some idiosyncratic things about the responses you get from mickey, he's really just like the rest of the developers; his responses are brief, often cryptic and usually painfully so. When you don't know what the heck they are talking about and their arguments don't make sense, the onus is upon you to do the work required to figure it out. If you start shooting back immediately without further educating yourself, you're hosed. You'll just be ignored. >> In a nutshell, what you have done is perform sacrilege multiple times, >> on multiple fronts and against multiple people. Your insistence on >> keeping your "HOWTO" publicly available on the Internet indicates both >> your apologies and your claims of security being important are not >> sincere. Unless you are at least dedicated to, if not obsessed with, >> correctness your good intentions and amiable goals will continue to do >> more damage than good. > >I think I have good reasons not to share that point of view. If you >(all) don't appreciate my efforts, that's fine with me. I see your point >of view. I just don't share it. > I think some of the reasoning behind my aggressiveness and the aggressiveness of others on the list may not be entirely evident. Surprisingly enough it's not an ego trip on my part or the any of the others who have responded. Long time users and developers have to deal with a lot of kooks every year on the lists; people who are a bit unbalanced, a bit unstable or even a bit nuts. On occasion we get people who are outright malicious, such as when during "rush" week at MIT, a group of students there descended on misc@ with the sole purpose of starting a verbal riot as some kind of prank (i.e "Chuck Buckely"). Also, you unknowingly hit a real sore spot by authoring your own HOWTO since many regard it as the wrong way to address the problem. Worse yet some of the other HOWTO authors in the past turned out to be crazy braggarts just looking for attention. I honestly never expected you to reply as you did and I was really expecting yet another foul mouthed flame from a nut job but thank you for the pleasant surprise. Having someone try to push a few of your buttons should always be expected on the list. Having someone you don't know, like me, pointedly and even rudely question you on darn near everything, is also to be expected. It's the most direct path for scrutinizing possibly erroneous information but it also does a great job on unveiling the nut jobs. Hopefully you realize I'm not actually a hyper-critical and condescending asshole in real life, well, at least not all of the time but I do occasionally play one on TV, or at least the OpenBSD equivalent of TV. Read the list long enough, get to know some of the people off list, and you'll realize I'm not the only one with a highly jaded approach to the whole thing. Now lets get back to the most important stuff, copied from above: >> You are legally able to copy the OpenBSD man pages, so there is really >> nothing stopping you from quoting them a chunk at a time and adding your >> own insight, explanations and experience. By privately contacting the >> authors and maintainers of both the code and man pages, you can easily >> double check your work to prevent spreading misinformation. Provide >> explanations of the steps you took as well as explanations of all the >> other possible steps a user might want or need to take. > >There's something to that, too. I didn't want to bug the developers, >afraid as I was that the questions I had would annoy them, and result in >a pointer back to previous misc@ threads at best. Instead, I decided to >figure out for myself how I could get things to work, and document the >steps, so that others might benefit. It seems that, in doing so, I've >annoyed people even more. Again, I must apologize. This was not my >intention. > I think you would be absolutely amazed how available, accessible and friendly the majority of the OpenBSD developers and long time users are to anyone who sincerely wants to help and is willing to work and learn. They are some really great people on this list and they care about what they are doing. In spite of being a bit more than rough at first, you'll find they are normal, regular, every-day people. Many of them have their personal kook-filters finely tuned from dealing with the public and until you actually have a history of doing useful things for the project, you'll be considered all talk and no action. The tough thing for most people to grasp is your personal definition of useful to the project is in no way a consensus many people with differing backgrounds and expertise. As I've said from the start, I believe your intentions are admirable but I also believe your methods are flawed. Since neither you nor I alone can be considered a consensus, we've got to look at what others are saying. Hopefully I can at least explain why I hold the opinions that I do. Though my reasoning is my own, there are many here who hold the same opinions I do. In some ways one can say I learned the opinions here on this list and in other ways, I learned how to back up the opinions I already had. The man pages are the authoritative documentation for the project and they exist on every default installation of the operating system. When something is less than correct, less than clear or less than comprehensible in the man pages, the place to fix the problem is at the source. Treat the disease not the symptoms. Putting correct but unofficial documentation scattered across the Internet might prove useful for those who finally find it but the best answer is still to incorporate the needed clarifications into the authoritative documentation that comes with the operating system. The goal of a manual is to explain things correctly. If the explanation is being lost because it is either incorrect, incomplete or even unclear, that is a bug. Plain and simple. Developers appreciate patches but with documentation proving a "bug" in it can often be very subjective, so just ask. None the less, the process is basically the same as before: 1.) I think this is inconsistent/unclear and might be a bug. 2.) This is why I think it might be a bug. 3.) This is my proposed solution. 4.) Is this bug something you want fixed? 5.) Is there a better way to fix it? 6.) I AM WILLING TO DO THE WORK. 7.) Do the work. Do the discussion of the bug on misc@ and when finished, send patches to tech@ and cc the maintainer. On small things attach a patch with your proposed change, on large things, save you effort until you get a consensus. I did this myself a day or two ago on misc@ regarding a lack of consistency (clarity) on the usage of "file system" and "filesystem" across all the documentation. The possible issue was very subjective in nature and would involve a lot of changes, so I asked for opinions of people who know a lot more about than I do, and received opinions of a few exceedingly well informed people like jmc@ among others. By following this method you are not idolizing the developers, pandering to the egocentric or prostrating yourself in front of false gods or any other such nonsense. Instead, your goal is simply consensus with other people that, in total, have a lot more combined experience and insight than you could ever have on your own. There's no requirement to agree, but it's wise to try learning and leveraging other perspectives and the reasoning behind them. If you appreciate the generally high quality of OpenBSD, at least you know *HOW* the quality was achieved. As you've pointed out, there are still plenty of places where the project still needs more help to make the authoritative documentation more clear and accessible. By working with the authors and maintainers of both the code and the docs to increase clarity and accessibility, you are not only helping both the project and the next guy who is trying to solve the problem that you just solved but you also stand to learn a lot from the process of interaction... -even if you are only a bystander just silently watching the interaction of others take place. (again from above) >we should be >working together to fix the mistakes and turn it into a document that >provides correct and sufficient information Yes, exactly but I will not work on third party documentation for the reasons I've detailed above. If I'm going to spend my time improving docs I'll be putting my effort towards solving the root of the problem in the authoritative documentation. Though I have hopefully been somewhat helpful in explaining the harsh reactions you received, how things get done around here and most of all, why, I actually lack the experience to be of much use on clarifying the specific ccd documentation. Heck, I probably know less about ccd code than you do. If you choose to make a sincere effort to solve the root of the problem in the man pages, you will get help from people who know that code far better than both of us combined. You'll no longer be a one man army working alone on HOWTO's to save the unindoctrinated masses, instead you'll be working with all other people trying to cope with various facets of the *HUGE* risk management problem faced by everyone. The irony of your last name Haarman translating to "harr" which means "army" and "man" meaning "man" was not lost on me. The only question left standing is whether you insist on trying to be a one man army or if you decide to combine your efforts with others. It's your choice and time will tell as it always does. Lastly, I hope I have not discouraged you from doing your own experimentation to learn things on your own and prove what you can. At times an experiment like writing a HOWTO is the only way to learn why you should not be writing one. Personally, I've seen this particular experiment fail in the past, namely watching new people writing on topics they do not fully understand. In the good/bad old days of UNIX, when the new (cheap) guy at the company was told to write about systems he did not understand, they used to call it "documentation" for the product. It was occasionally better than nothing but not by much. The brutal irony of lifes' lessons is the lessons are always repeated until learned. Considering I'm too tired to proof read all this, it looks like I'll be repeating a lesson I should have learned a long time ago. ;-) Kind Regards, JCR post scriptum: If I'm slow to respond to your private reply, it's because my hands hurt from doing far too much typing over the last week and they need a few days rest.

