[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [saml-dev] holder-of-key subject confirmation
|
Hi Scott, As I reread the emails a 2nd time, I find that I technically agree with the responses that you gave, but to me the net result of the chain of emails did not clearly explain where the potential problems were with Tom's scenario. I did not make any assumptions about the certificates. As it turned out it is only when Tom introduced the assumption that RP trusted C2 that the scenario began to firm up. The implicit assumptions that I think one can make as being self-evident from the original problem description are: - the IdP has a basis for trusting the user's cert, C1, because the IdP was willing to grant an hok assertion based on the user having "authenticated" to the IdP using C1 which is generally meant to mean the user used the private key to create a sig, which the IdP validated using the user's public key, which it presumably had available because it had established some prior relationship with the user. The "attribute" that was provided in the hok assertion was the user's cert, C1, which contains the user's subject name. No assumption is made here about C1, it could simply be a self-generated cert which the user agreed would be the user's basis of authentication with the IdP. Of course, a responsible IdP would make some effort to ensure the user's personal identification would match the subject in the cert, but this is a matter really only between the IdP and the user. - the RP has some kind of relationship with the IdP, which is why the RP "trusts" the assertion signed by the IdP. Again, how much the RP trusts the IdP depends on the terms of their agreement, but ultimately, the technical basis that the RP relies on is the signature of the IdP and the ability to verify that sig w the IdP's public key. Generally, the RP would expect the IdP's cert to be validated by a well-known public authority, which in some cases could be the IdP itself. Now, if the user had used C1 as the basis for signing the message to the RP, there would be no problem with the scenario. However, Tom introduced C2 to the picture here, again with no assumptions about C2. There are 2 immediate threats I see without further qualification: Case 1: A legitimate user and holder of key, C1, could have the assertion they were given by IdP stolen by someone who "found" the assertion in a log file for example. The "someone" could now generate their own certificate, C2, copying the subject from C1, and send a message to RP signed based on C2. Case 2. Without further information about C1, it is conceivable that a user could create a false identity and somehow fool the IdP into giving the user the ability to authenticate as that false identity based on C1. This user could now create a cert, C2, also claiming this false identity and based on the scenario description, the RP would be thinking they had a more secure situation than actually exists. Neither of the above cases are possible without C2 being introduced. Therefore, if a scenario with C2 is to be trusted by the RP, some additional constraints need to be applied to C2 in order to tighten things up. The net of this is that I wondered what the motivation might be to seemingly expose onself to these risks when on the surface it was not necessary. The answer that I inferred from Tom's replies was that since the RP had a basis for trusting C2, which was new information, then one could infer that RP's primary trust was on C2 since it was strong authentication bound to the message content, and that f IdP could now be viewed in an auxiliary role as providing a second factor to firm up the subject identified in C2. So, as I initially indicated, I do not think we disagree on the technical details, but simply have been presenting two perspectives of how to view the scenario and clarify its details so that it is more substantive than the initial description explicitly described. In particular, without applying constraints to C2, the original description is completely unsafe, imo. Thanks, Rich Scott Cantor wrote:
|
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]