On 03/26/2014 05:25 PM, Mark Hatle wrote:
> On 3/26/14, 2:41 PM, Steve Marquess wrote:
>> On 03/26/2014 12:30 PM, Mark Hatle wrote:
>>> Looking at the fips_canister.c I see that ia32 (32-bit and
>>> 64-bit) systems are not enabled ...
>>> 
>>> Would it be possible to add this change to the fips_canister in a
>>> future version, or would this require a full re-validation of the
>>> openssl-fips?
>> 
>> A "change letter" update would suffice. That's still a non-trivial 
>> expense, in both time and money, but not nearly as expensive as a
>> full validation.
> 
> Do you have an idea of the potential expense and time it would take
> to do this?  We're certainly interested in getting this done in the 
> community.  I can ask my management to help pay for this change, but
> I need some idea as to a reasonable cost.

Rough rule of thumb, US$15K (for an "uncomplicated" platform) and about
three months. We don't have much control over the time, though, and
disruptions in the validation testing process are not uncommon. For
instance, we've had a number of platforms here stalled for three months
just waiting for official test vectors so we can start testing, and
those poor sponsors will still have to wait another three months or so
at best. We absorb the risk of complications, costwise, but can't do
anything about schedule slips. For most of our clients the time hurts
more than the money. Three months is a long time when you're losing sales.

Note that cost is independent of the nature or complexity of the code
change, and many changes will not be permitted at all (for instance,
we're usually unable to backport vulnerability fixes). Platform
portability code changes that don't touch the actual cryptographic
algorithm implementations and are clearly specific to the new
platform(s) usually are possible.

> (We don't want to do it ourselves, we want everything we do to come
> from the openssl.org.)

You actually can't do this type of "change letter" mod yourself, only
the vendor of record (OSF) and the original test lab (InfoGard in this
case) can do that. So it's a bit of a captive market which we try not to
abuse. We are aware that the sponsors of the original very difficult and
expensive #1747 validation (DARPA, DHS, and other government and
commercial sponsors) wanted that validation to be widely used in just
the way you're trying to use it. An open source based validated module
benefits a large community.

Note BTW that OSF (the OpenSSL Software Foundation) and openssl.org are
not synonymous. The former is a legal entity formed for the purpose of
engaging in commercial contracts and the like (performing FIPS 140-2
validations, for instance, which require lots of paperwork). Some but
not all of the members of the less formal OpenSSL project are engaged in
OSF activities.

>>> Until then, my only other option is to use something like qemu to
>>> run the linked application to get the necessary checksum, in
>>> order to recompile/relink the final binary.  Is modifying the
>>> fipsld script in such a way acceptable for FIPS compliance?
>> 
>> You can't modify the fipsld present within the
>> openssl-fips-2.0.N.tar.gz source distribution (*no* such
>> modifications are allowed), but you can use *another* external
>> modified fipsld script that respects the requirements of the
>> Security Policy (i.e., verify the *.sha1 digests as you go).
> 
> What I am doing right now:
> 
> ... * download (and verify) openssl-fips-2.0.5.tar.gz,
> openssl-1.0.1f.tar.gz * extract, build, install, openssl-fips (no
> modifications) using the rules from the UserGuide.

You built the FIPS module exactly as required; good. That process really
matters including even the apparently silly parts like starting with a
snail-mailed CD. What follows is far less critical.

> ... * modify the fipsld script to call 'openssl sha1 -hmac ....' ...
> 
> So -my- interpretation is that I didn't modify the openssl-fips
> sources, I modified the install location and fipsld script -after- it
> was built.. but I ensure that the steps performed are technically the
> same.  So this is "OK". Does this seem reasonable?

It's allowed. As noted earlier you can modify the fipsld scrip used for
creating the final application executable (e.g. libcrypto) as long as
the *.sha1 digests are verified.

For cross-compilations we typically use an shell script to set
environment variables, for instance:


http://opensslfoundation.com/testing/validation-2.0/platforms/android-x86/setenv-android-x86.sh

which usually avoids the need for such hacks.

-Steve M.

-- 
Steve Marquess
OpenSSL Software Foundation, Inc.
1829 Mount Ephraim Road
Adamstown, MD  21710
USA
+1 877 673 6775 s/b
+1 301 874 2571 direct
marqu...@opensslfoundation.com
marqu...@openssl.com
gpg/pgp key: http://openssl.com/docs/0xCE69424E.asc
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       openssl-dev@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to