Re: FIPS 1.2 Security Policy issues

2008-11-26 Thread Steve Marquess

Thomas J. Hruska wrote:
According to the FIPS 1.2 Security Policy, Appendix A, Platform 8 cannot 
be built as FIPS compliant because 'x84-64 asm' is a non-existent 
platform.  There is no such thing as x84.  It should say 'x86-64 asm'. 
Validation, from what I understand, only covers those platforms listed. 
 Strictly-speaking, x86-64 asm is not able to be built as FIPS-compliant 
since it is not included in the list (despite supposedly being a tested 
platform).


A comment on this statement: a validated *can* be generated from 
platforms not specifically listed (though generation of a validated 
module may not be possible on any such specific platform).  According to 
the Implementation Guidance section G.5 a module may be vendor 
affirmed as validated if it is merely recompiled on a new platform. 
The CMVP provided the following statement which appeared in the first 
Security Policy (certificate #733):


The OpenSSL FIPS Object Module, when generated from the identical 
unmodified source code, is Vendor Affirmed to be FIPS 1402 compliant 
when running on other supported computer systems provided the conditions 
described in IG G.5 (Reference 3), are met. On any platform the Module
generated from the Module source code (the source files identified in 
Appendix B) is not validated if that source code is modified in any way.


Following extensive consultation with the test lab we concluded that the 
typical use of C macros does not constitute source code modification. 
 However, runtime substitution of assembler code for C code, as can 
occur with the OpenSSL build, is not mere recompilation.  Hence the 
specific inclusion of the assembler code in the validation testing.  Due 
to the relevance of word size to cryptographic operations we also 
elected to cover both 32/64 bit and big/little endian architectures. 
However, a plain C build (no-asm) on *any* platform where the build 
instructions in the Security Policy are faithfully followed will result 
in a validated module per the G.5 vendor affirmation, regardless of 
whether that platform was explicitly included in the validation testing.


-Steve M.

--
Steve Marquess
Open Source Software Institute
[EMAIL PROTECTED]

__
OpenSSL Project http://www.openssl.org
User Support Mailing Listopenssl-users@openssl.org
Automated List Manager   [EMAIL PROTECTED]


Re: FIPS 1.2 Security Policy issues

2008-11-25 Thread Steve Marquess

Thomas J. Hruska wrote:
According to the FIPS 1.2 Security Policy, Appendix A, Platform 8 
cannot be built as FIPS compliant because 'x84-64 asm' is a 
non-existent platform.  There is no such thing as x84.  It should say
 'x86-64 asm'. Validation, from what I understand, only covers those 
platforms listed. Strictly-speaking, x86-64 asm is not able to be 
built as FIPS-compliant since it is not included in the list (despite

 supposedly being a tested platform).

2.  Verify that the SHA1 HMAC digest of the distribution file (see 
Appendix B).


What exactly am I verifying?  Either finish the sentence or remove 
the word 'that'.  Since this sentence is grammatically incorrect 
which leads the reader to believe there is more to the step than 
mentioned, this step is thus incomplete.  Following a path of strict 
logic, Appendix A, step 2's incomplete sentence makes it impossible 
to perform a FIPS validated build for any platform.


Feedback on errors in the Security Policy is greatly appreciated, but
please note I can't make any corrections to the officially approved
version, it is frozen just like the source code.  I will have an errata 
page for the Security Policy in the User Guide which is coming out Real 
Soon Now.


The most critical step of FIPS validated builds in the past was to 
apply OS-level security measures to fipscanister (e.g. make specific 
files read-only to everyone but root/admin.).  Is this done 
automatically now? Or what section of the Security Policy did I skim 
too quickly over that covers this?  If it isn't covered in the 
Security Policy but needs to be done, does that invalidate the FIPS 
validation?


Please take a look at some other Security Policy documents.  You will 
note that they have a very stylized format, using FIPS-speak where 
terms can have different meanings than in a software engineering 
context.  Think patent application instead of RFC.


I didn't fully appreciate that fact for the first validation and drafted 
the initial Security Policy for a technical audience.  During the 
validation processes I was told, again and again, that I was confusing 
the issues with facts and so progressively removed said extraneous 
technical detail until we wound up with this most recent Security Policy 
in the conventional style of other validations.  The removed material 
makes up the User Guide.


The righteous answer to your question is that the governing documents 
(scripture) for FIPS 140-2 are the FIPS 140-2 standard itself 
(http://csrc.nist.gov/publications/fips/fips140-2/fips1402.pdf) and the 
Implementation Guidance document 
(http://csrc.nist.gov/groups/STM/cmvp/documents/fips140-2/FIPS1402IG.pdf).


A more pragmatic answer is to note that strictly speaking almost no 
validated software module for general purpose computers is usable in the 
real world.  Note for instance the standard Security Policy requirement 
for single user mode.


I realize these are nitpicks.  However, before I go through the 
massive undertaking of putting together a FIPS build for Windows, I 
need to know that these are non-issues.  The last time I tried to do 
a FIPS build, it wasted two weeks of time better spent doing other 
things.


I've wasted five years, welcome to the club :-)

-Steve M.

--
Steve Marquess
Open Source Software Institute
[EMAIL PROTECTED]

__
OpenSSL Project http://www.openssl.org
User Support Mailing Listopenssl-users@openssl.org
Automated List Manager   [EMAIL PROTECTED]


Re: FIPS 1.2 Security Policy issues

2008-11-25 Thread Thomas J. Hruska

Steve Marquess wrote:

Thomas J. Hruska wrote:
According to the FIPS 1.2 Security Policy, Appendix A, Platform 8 
cannot be built as FIPS compliant because 'x84-64 asm' is a 
non-existent platform.  There is no such thing as x84.  It should say
 'x86-64 asm'. Validation, from what I understand, only covers those 
platforms listed. Strictly-speaking, x86-64 asm is not able to be 
built as FIPS-compliant since it is not included in the list (despite

 supposedly being a tested platform).

2.  Verify that the SHA1 HMAC digest of the distribution file (see 
Appendix B).


What exactly am I verifying?  Either finish the sentence or remove the 
word 'that'.  Since this sentence is grammatically incorrect which 
leads the reader to believe there is more to the step than mentioned, 
this step is thus incomplete.  Following a path of strict logic, 
Appendix A, step 2's incomplete sentence makes it impossible to 
perform a FIPS validated build for any platform.


Feedback on errors in the Security Policy is greatly appreciated, but
please note I can't make any corrections to the officially approved
version, it is frozen just like the source code.  I will have an errata 
page for the Security Policy in the User Guide which is coming out Real 
Soon Now.


The most critical step of FIPS validated builds in the past was to 
apply OS-level security measures to fipscanister (e.g. make specific 
files read-only to everyone but root/admin.).  Is this done 
automatically now? Or what section of the Security Policy did I skim 
too quickly over that covers this?  If it isn't covered in the 
Security Policy but needs to be done, does that invalidate the FIPS 
validation?


Please take a look at some other Security Policy documents.  You will 
note that they have a very stylized format, using FIPS-speak where 
terms can have different meanings than in a software engineering 
context.  Think patent application instead of RFC.


I didn't fully appreciate that fact for the first validation and drafted 
the initial Security Policy for a technical audience.  During the 
validation processes I was told, again and again, that I was confusing 
the issues with facts and so progressively removed said extraneous 
technical detail until we wound up with this most recent Security Policy 
in the conventional style of other validations.  The removed material 
makes up the User Guide.


The righteous answer to your question is that the governing documents 
(scripture) for FIPS 140-2 are the FIPS 140-2 standard itself 
(http://csrc.nist.gov/publications/fips/fips140-2/fips1402.pdf) and the 
Implementation Guidance document 
(http://csrc.nist.gov/groups/STM/cmvp/documents/fips140-2/FIPS1402IG.pdf).


A more pragmatic answer is to note that strictly speaking almost no 
validated software module for general purpose computers is usable in the 
real world.  Note for instance the standard Security Policy requirement 
for single user mode.


I realize these are nitpicks.  However, before I go through the 
massive undertaking of putting together a FIPS build for Windows, I 
need to know that these are non-issues.  The last time I tried to do a 
FIPS build, it wasted two weeks of time better spent doing other things.


I've wasted five years, welcome to the club :-)

-Steve M.


Thank you for the detailed explanations.  I look forward to seeing the 
User Guide.


--
Thomas Hruska
Shining Light Productions

Home of BMP2AVI, Nuclear Vision, ProtoNova, and Win32 OpenSSL.
http://www.slproweb.com/


__
OpenSSL Project http://www.openssl.org
User Support Mailing Listopenssl-users@openssl.org
Automated List Manager   [EMAIL PROTECTED]


RE: FIPS 1.2 Security Policy issues

2008-11-25 Thread Carlo Milono
I can sympathize with Steve, having gone through a Common Criteria
certification and finally understanding that what I considered the
truth was misleading to the validators, leading to numerous
inconclusive verdicts.

As to the real-worldness aspect, this is often a 'checkbox' that gives
assurance that a 3rd party poked their educated nose into the product
and found it reasonable. 

My quandary is that I need a productized (or non-SNAPSHOT) version of
OpenSSL to work with the FIPS Object Module 1.2; I'm guessing it will be
0.9.8j.

-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Steve Marquess
Sent: Tuesday, November 25, 2008 4:24 AM
To: openssl-users@openssl.org
Subject: Re: FIPS 1.2 Security Policy issues

Thomas J. Hruska wrote:
 According to the FIPS 1.2 Security Policy, Appendix A, Platform 8 
 cannot be built as FIPS compliant because 'x84-64 asm' is a 
 non-existent platform.  There is no such thing as x84.  It should say
  'x86-64 asm'. Validation, from what I understand, only covers those 
 platforms listed. Strictly-speaking, x86-64 asm is not able to be 
 built as FIPS-compliant since it is not included in the list (despite
  supposedly being a tested platform).
 
 2.  Verify that the SHA1 HMAC digest of the distribution file (see 
 Appendix B).
 
 What exactly am I verifying?  Either finish the sentence or remove 
 the word 'that'.  Since this sentence is grammatically incorrect 
 which leads the reader to believe there is more to the step than 
 mentioned, this step is thus incomplete.  Following a path of strict 
 logic, Appendix A, step 2's incomplete sentence makes it impossible 
 to perform a FIPS validated build for any platform.

Feedback on errors in the Security Policy is greatly appreciated, but
please note I can't make any corrections to the officially approved
version, it is frozen just like the source code.  I will have an errata 
page for the Security Policy in the User Guide which is coming out Real 
Soon Now.

 The most critical step of FIPS validated builds in the past was to 
 apply OS-level security measures to fipscanister (e.g. make specific 
 files read-only to everyone but root/admin.).  Is this done 
 automatically now? Or what section of the Security Policy did I skim 
 too quickly over that covers this?  If it isn't covered in the 
 Security Policy but needs to be done, does that invalidate the FIPS 
 validation?

Please take a look at some other Security Policy documents.  You will 
note that they have a very stylized format, using FIPS-speak where 
terms can have different meanings than in a software engineering 
context.  Think patent application instead of RFC.

I didn't fully appreciate that fact for the first validation and drafted

the initial Security Policy for a technical audience.  During the 
validation processes I was told, again and again, that I was confusing 
the issues with facts and so progressively removed said extraneous 
technical detail until we wound up with this most recent Security Policy

in the conventional style of other validations.  The removed material 
makes up the User Guide.

The righteous answer to your question is that the governing documents 
(scripture) for FIPS 140-2 are the FIPS 140-2 standard itself 
(http://csrc.nist.gov/publications/fips/fips140-2/fips1402.pdf) and the 
Implementation Guidance document 
(http://csrc.nist.gov/groups/STM/cmvp/documents/fips140-2/FIPS1402IG.pdf
).

A more pragmatic answer is to note that strictly speaking almost no 
validated software module for general purpose computers is usable in the

real world.  Note for instance the standard Security Policy requirement 
for single user mode.

 I realize these are nitpicks.  However, before I go through the 
 massive undertaking of putting together a FIPS build for Windows, I 
 need to know that these are non-issues.  The last time I tried to do 
 a FIPS build, it wasted two weeks of time better spent doing other 
 things.

I've wasted five years, welcome to the club :-)

-Steve M.

-- 
Steve Marquess
Open Source Software Institute
[EMAIL PROTECTED]

__
OpenSSL Project http://www.openssl.org
User Support Mailing Listopenssl-users@openssl.org
Automated List Manager   [EMAIL PROTECTED]
__
OpenSSL Project http://www.openssl.org
User Support Mailing Listopenssl-users@openssl.org
Automated List Manager   [EMAIL PROTECTED]


FIPS 1.2 Security Policy issues

2008-11-24 Thread Thomas J. Hruska
According to the FIPS 1.2 Security Policy, Appendix A, Platform 8 cannot 
be built as FIPS compliant because 'x84-64 asm' is a non-existent 
platform.  There is no such thing as x84.  It should say 'x86-64 asm'. 
Validation, from what I understand, only covers those platforms listed. 
 Strictly-speaking, x86-64 asm is not able to be built as 
FIPS-compliant since it is not included in the list (despite supposedly 
being a tested platform).



2.  Verify that the SHA1 HMAC digest of the distribution file (see 
Appendix B).


What exactly am I verifying?  Either finish the sentence or remove the 
word 'that'.  Since this sentence is grammatically incorrect which leads 
the reader to believe there is more to the step than mentioned, this 
step is thus incomplete.  Following a path of strict logic, Appendix A, 
step 2's incomplete sentence makes it impossible to perform a FIPS 
validated build for any platform.



The most critical step of FIPS validated builds in the past was to apply 
OS-level security measures to fipscanister (e.g. make specific files 
read-only to everyone but root/admin.).  Is this done automatically now? 
 Or what section of the Security Policy did I skim too quickly over 
that covers this?  If it isn't covered in the Security Policy but needs 
to be done, does that invalidate the FIPS validation?



I realize these are nitpicks.  However, before I go through the massive 
undertaking of putting together a FIPS build for Windows, I need to know 
that these are non-issues.  The last time I tried to do a FIPS build, it 
wasted two weeks of time better spent doing other things.


--
Thomas Hruska
Shining Light Productions

Home of BMP2AVI, Nuclear Vision, ProtoNova, and Win32 OpenSSL.
http://www.slproweb.com/

__
OpenSSL Project http://www.openssl.org
User Support Mailing Listopenssl-users@openssl.org
Automated List Manager   [EMAIL PROTECTED]