Path: csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!selfless.tophat.at!newsfeed.xs4all.nl!newsfeed6.news.xs4all.nl!xs4all!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.003 X-Spam-Evidence: '*H*': 0.99; '*S*': 0.00; 'wed,': 0.03; 'frameworks': 0.04; 'discussing': 0.05; 'instance,': 0.05; ':-)': 0.06; 'distinction': 0.07; 'targets': 0.07; 'cipher': 0.09; 'correct.': 0.09; 'interacting': 0.09; 'throw': 0.09; 'pm,': 0.10; 'broken': 0.14; 'meaningful': 0.14; 'wrote:': 0.14; 'subject:python': 0.14; '"module"': 0.16; 'agree.': 0.16; 'did.': 0.16; 'hans': 0.16; 'model.': 0.16; 'otoh,': 0.16; 'stake': 0.16; 'strategy,': 0.16; 'subject:distribution': 0.16; '\xa0for': 0.16; '\xa0this': 0.16; 'argument': 0.16; 'dependent': 0.16; 'why.': 0.16; 'cc:addr :python-list': 0.17; 'please?': 0.19; '(which': 0.20; 'header:In- Reply-To:1': 0.21; 'seems': 0.21; "aren't": 0.22; 'cc:2**0': 0.22; 'maybe': 0.23; 'cc:no real name:2**0': 0.23; 'trying': 0.23; 'exist,': 0.23; 'here?': 0.23; 'ones.': 0.23; 'received:209.85.210.174': 0.23; 'received:mail- iy0-f174.google.com': 0.23; 'subject:code': 0.23; 'unsure': 0.23; '\xa0if': 0.23; 'systems.': 0.23; 'appear': 0.23; 'code': 0.24; "doesn't": 0.25; 'values': 0.25; 'demonstrate': 0.26; 'specified': 0.26; 'statement': 0.26; 'saying': 0.26; "i'm": 0.27; 'message- id:@mail.gmail.com': 0.28; 'concern': 0.29; 'effect': 0.29; 'solving': 0.29; 'are.': 0.29; 'gather': 0.29; 'originally': 0.29; 'sorry,': 0.29; 'theoretical': 0.29; 'code,': 0.29; 'implement': 0.30; 'cc:addr:python.org': 0.30; 'fact': 0.30; 'focus': 0.30; 'analyzing': 0.30; 'btw,': 0.30; 'confident': 0.30; 'context,': 0.30; 'governments': 0.30; 'nope,': 0.30; "one's": 0.30; '\xa0we': 0.30; 'google': 0.31; 'seem': 0.32; "can't": 0.32; 'done': 0.32; 'yet': 0.32; 'agree': 0.32; 'go.': 0.32; 'does': 0.33; 'break': 0.33; 'actually': 0.33; 'project': 0.33; "isn't": 0.33; 'it?': 0.33; 'machine': 0.33; 'starting': 0.33; 'too': 0.33; 'rather': 0.34; 'source': 0.34; 'thinking': 0.34; 'there': 0.35; '-0700,': 0.35; 'body,': 0.35; 'not,': 0.35; 'reference': 0.35; 'quite': 0.36; 'actual': 0.36; 'systems,': 0.36; 'received:google.com': 0.37; 'something': 0.37; 'received:209.85': 0.37; 'cheap': 0.37; 'playing': 0.37; 'security.': 0.37; 'pretty': 0.37; 'put': 0.37; 'think': 0.38; 'according': 0.63; 'levels': 0.63; 'secure': 0.63; 'design': 0.63; 'play': 0.64; 'lower': 0.64; 'designed': 0.65; 'cost': 0.65; 'view': 0.66; 'protection': 0.66; 'day': 0.67; 'attention': 0.67; 'high': 0.67; 'roughly': 0.67; 'prove': 0.68; 'here.': 0.69; 'air': 0.70; 'ages': 0.73; 'claim': 0.76; 'verification': 0.76; 'assurance': 0.77; 'money': 0.78; 'confidence': 0.82; '12:56': 0.84; 'crude': 0.84; 'developed.': 0.84; 'marginally': 0.84; 'ostensibly': 0.84; 'stupid': 0.84; "\xa0i'm": 0.84; 'risk.': 0.91; 'standards.': 0.91; 'was.': 0.93; 'absolutely': 0.98 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=JFekhrr3pTYDr3qBMPKFfkiHaWtqiPAfiI++Dte03CA=; b=np5SgOzWjJ6XBSz9PYt9q8f2FCzW+vFDUfglvbfdfm0qInJlJLiTlJ+dPjTejZAc5/ woJHGJYvPZyoNczbzQcR/GTzdT8pbYc2VJO1AioVSCOr+isnR2vZpbsrtw8ciF5tlvCE cTOpr0nDscQn3bmqrxIPmRhLTs8HR8gKA99wI= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; b=EaHjti/axoMx0Kr8/EFFY2adxKnrNFcix5mWaSYmPupKddAGLh8eNKtkp3cZQen+/L dRMP2yIRjXPH6dfdxle/I3npPZsNxe4qoyGVHell1Y9nhAUaTOBG65CFFu7cLRu8CEgY f2t90xvxOv58x8FzGt5JUcmJE6vpJLhimK36w= MIME-Version: 1.0 In-Reply-To: <1skda8-3as.ln1@svn.schaathun.net> References: <4DD08620.4030507@tysdomain.com> <5h9ca8-ekq.ln1@svn.schaathun.net> <1skda8-3as.ln1@svn.schaathun.net> Date: Wed, 18 May 2011 14:34:46 -0700 Subject: Re: obviscating python code for distribution From: geremy condra To: Hans Georg Schaathun Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: python-list@python.org X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 114 NNTP-Posting-Host: 82.94.164.166 X-Trace: 1305754489 news.xs4all.nl 49181 [::ffff:82.94.164.166]:52722 X-Complaints-To: abuse@xs4all.nl Xref: x330-a1.tempe.blueboxinc.net comp.lang.python:5744 On Wed, May 18, 2011 at 12:56 PM, Hans Georg Schaathun w= rote: > On Wed, 18 May 2011 12:07:49 -0700, geremy condra > =A0 wrote: > : =A0I was playing around with an HSM the other day that had originally > : =A0targeted FIPS 140-3 level 5, complete with formal verification model= s > : =A0and active side-channel countermeasures. I'm quite confident that it > : =A0was secure in nearly any practical sense. > > And you ostensibly use the word /nearly/ rather than =ABabsolutely=BB. > It seems that we agree. Systems can be designed that are absolutely secure under reasonable assumptions. The fact that it has assumptions does not make your statement true. > BTW, according to the sources I can find quickly, FIPS 140-3 > targets /modules/ and not systems. I can't tell if you're trying to play word games with the distinction between "system" and "module" or if you're just saying that you aren't sure what FIPS actually certifies. Could you please clarify? > : =A0Ah, my mistake- when you said 'some level of security' I read that a= s > : =A0'some meaningful level of security'. If you were arguing that it > : =A0provided roughly as much protection to your code as the curtain of a= ir > : =A0surrounding you does to your body, then yes- you're correct. > > Well, I didn't. =A0Whether it is meaningful is relative and dependent > on the context, but it sure isn't meaningful if any values at stake are. Again, I'm unsure what you're going for here. It sounds like you're saying that obfuscation doesn't provide meaningful security, which is my point. > : =A0Empirically this doesn't appear to be a successful gambit, and from = an > : =A0attacker's point of view it's pretty easy to see why. When a system > : =A0I'm trying to break turns out to have done something stupid like thi= s, > : =A0it really just ticks me off, and I know a lot of actual attackers wh= o > : =A0think the same way. > > That is very true. =A0It is a very crude measure with a marginal > effect on risk. =A0Going out of one's way to try to obfuscate the > code as machine code, as was the starting point of the discussion, > is surely not a good strategy, as one is then spending significant > time to achieve a rather insignificant. > > My main concern is that the use of absolutes, =AByou need this=BB, and > =ABthat is silly=BB, is drawing attention from the main point. =A0Rather, > get to know your risks and focus on the greater ones. =A0Consider > possible controls, and choose cheap and effective ones. =A0Even a > marginally effective control may be worth-while if the cost is even > less. =A0We all seem to agree on the main point; many have argued the > same way. > > As an aside, OTOH, don't you think MAYFARE would have been broken > earlier if the source code were open? =A0It was around for ages before > it was. Are you talking about the Mayfair classical cipher here? > : > In theory, you can of course talk about absolute security. =A0For > : > instance, one can design something like AES=B9, which is secure in > : > a very limited, theoretical model. =A0However, to be of any practical > : > use, AES must be built into a system, interacting with other systems, > : > and the theory and skills to prove that such a system be secure simpl= y > : > has not been developed. > : > : =A0This is flatly incorrect. > > Which part of it? =A0If you claim that the theory and skills to prove it > exist, could you give a reference please? The entire field of formal modeling and verification has grown around solving this problem. My new favorite in the field is "formal models and techniques for analyzing security protocols", but there are other works discussing OS kernel verification (which has gotten a lot of attention lately) and tons of academic literature. Google (scholar) is the place to go. > Of course, if you are only thinking of =ABnearly any practical sense=BB > again, then we agree and always did. Nope, talking about formal methods. > : > Why do you think Common Criteria have not yet specified frameworks > : > for the top levels of assurance? > : > : =A0Perhaps because the lower levels of 'assurance' don't seem to provid= e very much. > > If the lower levels do not, would that not be an argument to implement > more levels? =A0Too many governments have put too much resources into > this to just throw it away if the methodology to achieve higher assurance > could be codified. If you can't say with confidence that something meets minimum security standards, the answer is not to try to say it meets high security standards. > Or maybe it is right to say that the theory and skills do exist, but the > money to gather it all in one project to demonstrate the security of > a single system does not :-) Sorry, but again this is not correct. Geremy Condra