[security-dev] Undertow / IdentityManager and Digest Authentication

Bill Burke bburke at redhat.com
Tue Apr 30 20:38:54 EDT 2013

On 4/30/2013 4:54 PM, Shane Bryzak wrote:
> There's two options here; the first one is to store the private key as
> an attribute which then makes it a piece of cake to retrieve the value:
> Attribute<PrivateKey> attrib = user.<PrivateKey>getAttribute("mysecret");
> PrivateKey key = attrib.getValue();
> The other option is to implement your own CredentialHandler as mentioned
> previously.  The design decision to insulate the actual credential
> values from the API was intentional, and at the moment the only time
> they are exposed to the API is when they are created for the very first
> time.  With there seemingly being a major password hack on the news
> every week it is in our best interest to reduce the number of attack
> vectors that make this kind of thing possible, hence the decoupled
> design.

Think about what you're saying here....  The credential isn't protected 
at all because the code that is invoking the validation already has the 
credential.  Its just not verified.  For two-way SSL its even more 
pointless because you're validating the client with public certificates.

There's also certain credentials, i.e. a TOTP secret key, in which the 
credential can't be stored as a hash.  So, isn't it possible for a 
malicious programmer to register a malicious Handler so they can get 
access to whatever information they want?

I guess I'm back to suggesting that anything should be queryable that's 
stored in the IDM.  I do remember your chained IDM usecase, maybe 
instead of a validation() API a visitor API would be better?

public interface IDM {

    void accept(IdmVisitor visitor);

public interface IdmVisitor {
    void visit(SecurityContext context, IdentityStore store);

Then somebody could still do whatever they wanted and be aware of the 
chaining.  Credential validation fits into the visitor pattern as well.

Bill Burke
JBoss, a division of Red Hat

More information about the security-dev mailing list