Uploaded image for project: 'Drivers'
  1. Drivers
  2. DRIVERS-343

Cache SCRAM ClientKey

    • Type: Icon: Improvement Improvement
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Component/s: None
    • Labels:
      None
    • $i18n.getText("admin.common.words.hide")
      Key Status/Resolution FixVersion
      CXX-1333 Works as Designed 3.2.0-rc0
      SCALA-302 Done 2.2.0
      JAVA-2510 Fixed 3.8.0
      CSHARP-1977 Fixed 2.9.0
      CDRIVER-2150 Fixed 1.7.0
      NODE-990 Fixed 3.0.0
      RUBY-1213 Fixed 2.12.0.rc0
      PYTHON-1273 Fixed 3.7
      PHPC-960 Done 1.3.0
      PERL-767 Fixed 2.0.0
      GODRIVER-46 Fixed 0.0.1
      MOTOR-167 Fixed 2.0
      SWIFT-187 Won't Fix
      RUST-60 Fixed 0.9.0-alpha
      $i18n.getText("admin.common.words.show")
      #scriptField, #scriptField *{ border: 1px solid black; } #scriptField{ border-collapse: collapse; } #scriptField td { text-align: center; /* Center-align text in table cells */ } #scriptField td.key { text-align: left; /* Left-align text in the Key column */ } #scriptField a { text-decoration: none; /* Remove underlines from links */ border: none; /* Remove border from links */ } /* Add green background color to cells with FixVersion */ #scriptField td.hasFixVersion { background-color: #00FF00; /* Green color code */ } /* Center-align the first row headers */ #scriptField th { text-align: center; } Key Status/Resolution FixVersion CXX-1333 Works as Designed 3.2.0-rc0 SCALA-302 Done 2.2.0 JAVA-2510 Fixed 3.8.0 CSHARP-1977 Fixed 2.9.0 CDRIVER-2150 Fixed 1.7.0 NODE-990 Fixed 3.0.0 RUBY-1213 Fixed 2.12.0.rc0 PYTHON-1273 Fixed 3.7 PHPC-960 Done 1.3.0 PERL-767 Fixed 2.0.0 GODRIVER-46 Fixed 0.0.1 MOTOR-167 Fixed 2.0 SWIFT-187 Won't Fix RUST-60 Fixed 0.9.0-alpha

      The shell is going to cache and reuse ClientKey in 3.6. We should do the same in drivers. From SERVER-26952 ticket :

      SCRAM, by design, consumes a great deal of CPU resources while performing authentication. This can be a problem while populating connection pools, where many clients are authenticating at once. Fortunately, most of the expensive computations of SCRAM can be reused across multiple authentication requests. RFC5802 makes provisions for this:

      Note that a client implementation MAY cache ClientKey&ServerKey (or just SaltedPassword) for later reauthentication to the same service, as it is likely that the server is going to advertise the same salt value upon reauthentication. This might be useful for mobile clients where CPU usage is a concern.

            Assignee:
            Unassigned Unassigned
            Reporter:
            bernie@mongodb.com Bernie Hackett
            Votes:
            0 Vote for this issue
            Watchers:
            10 Start watching this issue

              Created:
              Updated:
              Resolved: