pluggable password storage format for ldiftree back end

Open
#36 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
25/100
Issue type
Feature
Clarity
Needs clarification
Activity status
Stale
Tech stack
python

Research direction

Start in ldaptor/entry.py, where password hashes for simple BINDs are currently stored in salted SHA1 format. Review how the LDAP modify password extended request selects the storage format and how the userPassword attribute is handled. Done means the issue's proposed configurable default format, alternate prefixes, and optional password attribute are defined and covered by appropriate tests.

Written by the indexing model from the issue text.

Description

The base classes for LDAP DIT entries found in :file:ldaptor/entry.py are hard-coded to store password hashes for simple BINDs in salted SHA1 format. The entry is prefixed with "{SSHA}". This is similar to one of the schemes that OpenLDAP uses, but allowing alternate schemes may be a good idea.

If the entry has no prefix, it can indicate the password itself is stored in plain text. This is useful to developing and debugging. Different hash formats could have different prefixes. For example {SHA} for unsalted SHA or maybe {PBKDF2} for Password-Based Key Derivation Function 2.

There would need to be a default storage format that is configurable. That would indicate the format used when the LDAP modify password extended request is used.

Also, it may be nice to allow configuration of the attribute in which the password/hash is stored. OpenLDAP allows this, but defaults to userPassword.

Dominant language
Python
Stars
167
Forks
53
PR merge metrics
No merged PRs in 30d

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from twisted/ldaptor

All issues in twisted/ldaptor

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.