Uploaded image for project: 'Derby'
  1. Derby
  2. DERBY-5622

Reduce the chance for hash collisions when checking bootPassword at boot time and when changing password.


    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s:,,
    • Component/s: Store
    • Labels:
    • Bug behavior facts:
      Data corruption, Security


      There are two issues, already seen in DERBY-2687:

      "the boot issue": there is a 1/2**16 chance that a wrong bootPassword will allow boot to proceed (but since its decoded key is wrong the boot will fail).
      "the password change" issue: similarly, there is a chance that the wrong bootPassword will be accepted trying to change it via
      SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('bootPassword', ...) at least for algorithms that do not check IV (initialization vector) in addition to the
      digest, e.g. "DES/ECB/NoPadding"

      The latter case may lead to data corruption, cf. DERBY-2687 discussion. I think the risk is fairly low, though: One would need to have execution permission to change the property if SQL authorization is used, and in most scenarios the supplied existing password would be correct. But since the results can be bad, it would be good to reduce or eliminate the risk.


        1. derby-5622-01-aa-decryptEncryptedSample.diff
          3 kB
          Rick Hillegas
        2. derby-5622-instrumentation.diff
          2 kB
          Dag H. Wanvik
        3. derby-5622-repro.sql
          0.4 kB
          Rick Hillegas
        4. derby-5622-TT-fixWithTestScaffolding.diff
          4 kB
          Rick Hillegas
        5. repro.sh
          1 kB
          Dag H. Wanvik

          Issue Links



              • Assignee:
                dagw Dag H. Wanvik
              • Votes:
                0 Vote for this issue
                4 Start watching this issue


                • Created: