• Icon: Suggestion Suggestion
    • Resolution: Won't Fix
    • 1.3
    • Directory - LDAP
    • None
    • Our product teams collect and evaluate feedback from a number of different sources. To learn more about how we use customer feedback in the planning process, check out our new feature policy.

      Currently OpenLDAP connector does not support CRYPT. See also CWD-427. Although CRYPT is not recommended as an encryption method any more, some customers might still need it.

      Additional work in this to make sure OpenLDAP password are saved with the correct prefix all the time.

        1. applicationContextEncryption.xml
          2 kB
        2. CRYPTPasswordEncoder.java
          2 kB
        3. jcrypt.java
          23 kB
        4. PasswordEncoderFactory.java
          1 kB

          Form Name

            [CWD-481] Support CRYPT encryption in OpenLDAP connector

            angel added a comment -

            Hi Justin,

            this is good news indeed. Thanks for letting as know.

            Cheers,
            Aggelos

            angel added a comment - Hi Justin, this is good news indeed. Thanks for letting as know. Cheers, Aggelos

            Hi Aggelos,

            This is my plan, I will be adding in the Atlassian Plugin Framework to Crowd in either 1.3 or 1.4, so after this time we should be able to implement all the encoders as plugins.

            Justin

            Justin Koke added a comment - Hi Aggelos, This is my plan, I will be adding in the Atlassian Plugin Framework to Crowd in either 1.3 or 1.4, so after this time we should be able to implement all the encoders as plugins. Justin

            angel added a comment -

            Hi Dave,

            that was a real blow This way you avoid the support costs but you pass on the maintenance costs to the customer. Every time we (our customer) need to upgrade Crowd, we have to patch the release in order to support the encryption scheme. And the upgrades are not that rare.

            Is there any chance you can make the encryption schemes pluggable in order to develop it as a plugin?

            Regards,
            Aggelos

            angel added a comment - Hi Dave, that was a real blow This way you avoid the support costs but you pass on the maintenance costs to the customer. Every time we (our customer) need to upgrade Crowd, we have to patch the release in order to support the encryption scheme. And the upgrades are not that rare. Is there any chance you can make the encryption schemes pluggable in order to develop it as a plugin? Regards, Aggelos

            Hi Aggelos,

            We're not going to put CRYPT support into Crowd. We've looked into the issue in detail, and crypt(3) implementations vary too much across platform to include the protocol in the product. For example, OpenLDAP compiled for Windows will not accept passwords crypt()'d in Java. The support costs outweigh the benefits, particularly given that crypt, being based on DES (at least in some implementations) is horribly insecure.

            Regards,
            Dave.
            Crowd Team Lead.

            David O'Flynn [Atlassian] added a comment - Hi Aggelos, We're not going to put CRYPT support into Crowd. We've looked into the issue in detail, and crypt(3) implementations vary too much across platform to include the protocol in the product. For example, OpenLDAP compiled for Windows will not accept passwords crypt()'d in Java. The support costs outweigh the benefits, particularly given that crypt, being based on DES (at least in some implementations) is horribly insecure. Regards, Dave. Crowd Team Lead.

            REVIEW FOR 1.1.3 RELEASE

            Justen Stepka [Atlassian] added a comment - REVIEW FOR 1.1.3 RELEASE

            angel added a comment -

            Justin, sorry for being negligent on the IP part. Thanks for the research too. I'll try to grab UnixCrypt and give it a try.

            Cheers,
            Aggelos

            angel added a comment - Justin, sorry for being negligent on the IP part. Thanks for the research too. I'll try to grab UnixCrypt and give it a try. Cheers, Aggelos

            Justin Koke added a comment - - edited

            Thanks for this work Aggelos.

            I have a few issues around the jcrypt.java file ( origins and license), doing a bit of research it appears it is from John Dumas and is based on work originally done by Eric Young. Eric Young's work was done under a BSD license but the Dumas derivative is not clear around license.

            These is also a Mortbay UnixCrypt implementation which is based under an Apache 2.0 license. I think when we pull a Crypt implementation into Crowd we should attempt to use the Mortbay version.

            A general run down on Java crypt work is available here: http://www.dynamic.net.au/christos/crypt/

            Justin Koke added a comment - - edited Thanks for this work Aggelos. I have a few issues around the jcrypt.java file ( origins and license), doing a bit of research it appears it is from John Dumas and is based on work originally done by Eric Young. Eric Young's work was done under a BSD license but the Dumas derivative is not clear around license. These is also a Mortbay UnixCrypt implementation which is based under an Apache 2.0 license. I think when we pull a Crypt implementation into Crowd we should attempt to use the Mortbay version. A general run down on Java crypt work is available here: http://www.dynamic.net.au/christos/crypt/

            angel added a comment -

            Attaching several files that add CRYPT support. Used a java implementation and not a JNI call as Shihab initially suggested. Authentication seems to work, along with updating passwords thorugh Crowd UI.

            angel added a comment - Attaching several files that add CRYPT support. Used a java implementation and not a JNI call as Shihab initially suggested. Authentication seems to work, along with updating passwords thorugh Crowd UI.

              justen.stepka@atlassian.com Justen Stepka [Atlassian]
              38754ddc40c7 angel
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

                Created:
                Updated:
                Resolved:

                  Estimated:
                  Original Estimate - 12h Original Estimate - 12h
                  12h
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 16h
                  16h