On 01/12/2017 04:17 PM, Rob Crittenden wrote:
> Tomas Krizek wrote:
>> On 12/19/2016 04:41 PM, Standa Laznicka wrote:
>>> On 12/19/2016 03:07 PM, John Dennis wrote:
>>>> On 12/19/2016 03:12 AM, Standa Laznicka wrote:
>>>>> On 12/16/2016 03:23 PM, Rob Crittenden wrote:
>>>>>> Standa Laznicka wrote:
>>>>>>> Hello,
>>>>>>>
>>>>>>> I started a design page for FreeIPA on FIPS-enabled systems:
>>>>>>> https://www.freeipa.org/page/V4/FreeIPA-on-FIPS
>>>>>>>
>>>>>>> Me and Tomáš are still investigating what of all things will need to
>>>>>>> change in order to have FreeIPA on FIPS-enabled RHEL. So far I
>>>>>>> managed
>>>>>>> to install and run patched FreeIPA server and client and connect them
>>>>>>> together.
>>>>>>>
>>>>>>> There are some issues with NSS when trying to create an HTTPS request
>>>>>>> (apparently, NSS requires an NSS database password to set up an SSL
>>>>>>> connection). I am actually thinking of removing NSSConnection from
>>>>>>> the
>>>>>>> client altogether.
>>>>>> Can you expand on this a bit? NSS should only need a pin when it needs
>>>>>> access to a private key. What connection(s) are you talking about, and
>>>>>> what would you replace NSSConnection with?
>>>>>>
>>>>>> rob
>>>>> Hello Rob,
>>>>>
>>>>> Thank you for this excellent question, in order to cut the email
>>>>> short I
>>>>> seem to have omitted quite a few information.
>>>>>
>>>>> One of the very first problems I had with FreeIPA with FIPS was that
>>>>> NSS
>>>>> was always asking for password/pin. I was discussing this with the NSS
>>>>> guys on their IRC chat last week and it turns out that NSS tries to
>>>>> create a private key every time you want to use it as a backend for an
>>>>> SSL connection on FIPS. I still don't think this is quite right so I
>>>>> may
>>>>> open a bugzilla for that.
>>>> I don't understand, I thought the case you were having problems with
>>>> was the FreeIPA client, not the server. I assume when you use the
>>>> term "backend" you mean server, and yes when NSS is in server mode it
>>>> will access to keys. So isn't the problem NSS is not being
>>>> initialized correctly so that it recognizes it is in client mode and
>>>> not server mode?
>>>>
>>> What I meant was "a client backend for an SSL connection" - we're
>>> using NSS implementation of SSL (via python-nss) for HTTPS connections
>>> from client to server during which we're getting a CA cert from an NSS
>>> database but this eventually leads to a password prompt.
>>>>> Anyway, the guys suggested me that we could try to create the database
>>>>> with an empty password and everything will work. I don't quite like
>>>>> that, too, but it's at least something if you don't want the `ipa`
>>>>> command to always bug you for password you have no way knowing if
>>>>> you're
>>>>> just a regular user.
>>>>>
>>>>> What I think would be a better way to go is to use
>>>>> httplib.HTTPSConnection. We have the needed certificates in
>>>>> /etc/ipa/ca.crt anyway so why not use them instead. We had a discussion
>>>>> with Honza this morning and it seems that with this approach we may get
>>>>> rid of the NSSConnection class altogether (although I still need to
>>>>> check a few spots) and start the process of moving away from NSS which
>>>>> was discussed some year ago in an internal mailing list (for some
>>>>> reason).
>>>>>
>>>>> Will be happy to hear thoughts on this,
>>>>> Standa
>>>> I'm not a big fan of NSS, it has it's issues. As the author of the
>>>> Python binding I'm quite aware of all the nasty behaviors NSS has and
>>>> needs to be worked around. I wouldn't be sad to see it go but OpenSSL
>>>> has it's own issues too. If you remove NSS you're also removing the
>>>> option to support smart cards, HSM's etc. Perhaps before removing
>>>> functionality it would be good to assess what the requirements are.
>>>>
>>> I'm sorry I generalized too much, the original topic was moving away
>>> from python-nss (of which I am even more sorry as you're the author).
>>>
>> We could use some ideas on how to handle replica installations in FIPS.
>>
>> We might use some flag in LDAP to indicate that a topology is
>> FIPS-enabled. It seems like a good idea to force all servers in
>> FIPS-enabled topology to also be FIPS-enabled. At the start of replica
>> installation, a check could be performed to verify the FIPS topology
>> status is the same as the current system's FIPS status. However, this
>> proposal has a flaw. It is possible to simply install a FIPS-enabled
>> replica and then turn FIPS off. This would result in non-FIPS systems
>> being part of a FIPS-enabled topology.
>>
>> So we have a couple questions:
>>
>> Does it make sense to require all the servers in the topology to be
>> either FIPS-enabled or FIPS-disabled?
>> What would be a good approach to achieve this? Simply checking during
>> installation does not guarantee that FIPS will stay turned on.
>>
> You could set some value in the replicated tree on FIPS status and write
> a 389-ds plugin to refuse to start if the environment doesn't match.
> Given this is started first it should cause a cascade of failures so no
> services are available.
>
> rob
Based on an offline discussion, we might just omit this feature
entirely. Our goal is to enable FreeIPA installation of FIPS configured
systems. It should be up to the customer to make sure other FIPS
requirements are met, i.e. all servers are configured to use FIPS.

-- 
Tomas Krizek



-- 
Manage your subscription for the Freeipa-devel mailing list:
https://www.redhat.com/mailman/listinfo/freeipa-devel
Contribute to FreeIPA: http://www.freeipa.org/page/Contribute/Code

Reply via email to