Kyle Hamilton wrote:
The best conjecture I've come up with: Relying on operating system
restrictions to protect the sanctity of the module's security boundary
effectively moves one of the most important functions of the module's
packaging outside the control of the module. For a chip, you can say
"it's inherent that the chip's pins are the only way to interact
across the boundary." If you don't have that inherent quality, then
without evidence to the contrary it must be assumed that anything can
reach across that boundary.
I'm probably completely off-base, but like I said, it's the best
conjecture I've got.
The most coherent explanation I've seen comes right out of the CMVP
Implementation Guidance
(http://csrc.nist.gov/groups/STM/cmvp/documents/fips140-2/FIPS1402IG.pdf),
section 6.1:
"Background
Historically, for a FIPS 140-1 and FIPS 140-2 validated software
cryptographic module on a server to meet the single user requirement of
Security Level 1, the server had to be configured so that only one user
at a time could access the server. This meant configuring the server
Operating System (OS) so that only a single user at a time could execute
processes (including cryptographic processes) on the server.
Consequently, servers were not being used as intended.
Question/Problem
AS06.04 states: "(Level 1 Only) The operating system shall be restricted
to a single operator mode of operation (i.e., concurrent operators are
explicitly excluded)". What is the definition of concurrent operators in
this context? Specifically, may Level 1 software modules be implemented
on a server and achieve FIPS 140-2 validation? (Note: this question is
also applicable to VPN, firewalls, etc.)
Resolution
Software cryptographic modules implemented in client/server architecture
are intended to be used on both the client and the server. The
cryptographic module will be used to provide cryptographic functions to
the client and server applications. When a crypto module is implemented
in a server environment, the server application is the user of the
cryptographic module. The server application makes the calls to the
cryptographic module. Therefore, the server application is the single
user of the cryptographic module, even when the server application is
serving multiple clients."
That still doesn't make a lot of sense to me from a technical
perspective, but it does seem to say that validated modules can be used
on what we would consider multi-user, multi-tasking systems. Start
asking about threading, forking, multiple cores, etc., though, and you
start getting some odd responses.
-Steve M.
--
Steve Marquess
Open Source Software Institute
[EMAIL PROTECTED]
______________________________________________________________________
OpenSSL Project http://www.openssl.org
Development Mailing List openssl-dev@openssl.org
Automated List Manager [EMAIL PROTECTED]