Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-6717189

Incorrect implementation of the Kerberos Version 5 GSS-API (for RC4-HMAC)

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Not an Issue
    • Icon: P3 P3
    • None
    • 6
    • security-libs

      FULL PRODUCT VERSION :
      java version "1.6.0_03"
      Java(TM) SE Runtime Environment (build 1.6.0_03-b05)
      Java HotSpot(TM) Client VM (build 1.6.0_03-b05, mixed mode, sharing)

      A DESCRIPTION OF THE PROBLEM :
      Java classes implements RFC 1964 to "unwrap" Kerberos encrypted data.
      But, as you know, this RFC declares only "DES MAC MD5", "MD2.5" and "DES MAC" checksum algorithm indicator(SGN_ALG) and only "DES" value for SEAL_ALG.
      But, as I see in "sun.security.jgss.krb5.Krb5Context" and in "sun.security.jgss.krb5.WrapToken", Java use the same RFC (1964) to "unwrap" RC4-HMAC encrypted data. Bu you should know that:
      1. The RC4-HMAC is not specified in RFC 1964
      2. The RC4-HMAC is declared in RFC 4757

      And this specifies little bit different format for the RC4-HMAC GSS_Wrap() token.
      RFC 1964 doesn't contain "Random confounder" (8 bytes) in GSS_Wrap() token.
      So... So I cannot "unwrap" data packet from Windows Vista WinRM service which use RC4-HMAC encryption.

      So PLEASE implement RFC 4757 for the RC4-HMAC encryption instead of using RFC 1964(it is incorrect for the RC4-HMAC).

      Example of RC4-HMAC encrypted packet:
      02 01 // Identification field. Tokens emitted by GSS_Wrap() contain the hex value 02 01 in this field.
      11 00 //SGN_ALG Checksum algorithm indicator
      10 00 //SEAL_ALG
      ff ff //Filler

      39 e6 1f 89 a5 11 d2 50 // Sequence number field
      e0 b1 f1 b1 80 91 97 80 // Checksum

      21 d3 3d b0 a5 fd f5 91 // Random confounder
      26 64 6e 2a 04 3b 6b 9a d2 8f 15 d0 f2 ad 2b 7f 68 cd fd 35 56 94 63 3d 13 6d fa 70 90 97 6d 01 9c bc 47 92 a4 43 41 30 d3 ca 57 c5 bc 89 7c 19 3b e1 40 6b 9a f2 55 1a f1 58 49 15 37 41 23 3f 67 7d 55 c7 c2 a1 b8 b1 51 61 6e f2 af 3d b9 71 f3 b7 2e b5 e0 27 65 52 6e 13 b7 cc 2a b1 ea 34 87 30 67 4d 3c 41 fe 2c 39 7d 86 6e b9 ca f8 ee 38 51 11 bc 8b ba 3a e4 e0 73 a5 e2 e5 c8 cd 5e ef ae d6 e9 e1 ca b6 e0 07 d2 24 b2 37 95 79 26 09 66 bb cd 12 69 f5 0b e4 0e 40 62 e3 7f ec 47 f7 ff ae 67 9d df f4 1b 09 c1 ee ef f9 7a d7 63 66 5c f6 24 b8 9c 40 f1 67 6d 36 90 70 77 a3 1c 94 41 7d 3f 51 43 9b 0d 6f 3a 35 1d 7a 1d 8a 5d de 8f c6 69 31 97 19 6f 2e 7c 40 e6 23 8c 45 fa 69 6a a9 64 c4 f8 f8 18 ee 2f 6f e4 90 1e 40 74 fa a5 3c 85 f6 db 38 a9 01 e8 14 9d ca 9d 6c 32 e6 2e ca b6 b4 95 78 0a 51 97 cb a1 2e fc cd c3 91 36 fd bf 1e e1 ce a0 db 44 2c d0 58 db 38 47 c5 3f 8d 6c a9 6a b1 a5 29 6a 33 d1 3f 32 90 7a 58 3a 7b 9a 1c 64 ed f3 f8 67 9b 78 21 f8 1f e6 f5 a6 6b 84 d9 11 c0 ca 0f 40 8f 50 24 67 0f 3f d3 78 31 53 f7 df 1b 90 88 d0 97 aa 7c 04 5d 09 84 a9 c7 6e b0 bf 4d 3a 43 2f 5a 1f 55 00 37 d4 37 4e 88 87 68 e0 a3 ac 1f 7b d6 bf 60 9e ea fc 74 70 19 3b 95 f4 8a 53 94 9a c2 6e 91 49 23 b2 a5 64 cb f7 a6 02 2c 0f 5c 6c bc 49 db 76 cb 35 97 f9 40 9c 04 8c 3c c1 78 6c a5 ab e4 65 b2 01 36 86 9b 81 33 c8 18 04 67 6f cb c1 8d a3 ff 1f 2c dd 60 02 6f df 3f 5f 7f 71 c2 80 11 ee dd 18 a7 8d 37 47 69 5f d1 d1 b9 7f 0a 2b 60 bd 24 12 8f db f1 68 d3 8d 4b 0a 11 e7 49 39 ca c1 b2 08 2b b4 d0 52 aa d5 dd 50 6a a4 23 0b fa 8a f3 a8 ff 58 b7 3a e1 97 5c 92 6c 71 f3 1c 18 92 ef 31 f4 48 44 04 4b b3 95 bf 8f 70 b4 3c 23 8b 4d d3 87 17 cc 75 5b 8e 9b 91 63 3b c0 99 df 5f f1 bd b9 73 65 e9 8e 56 2e 59 f8 95 bd a5 d4 b2 b6 62 07 02 2c 4b 84 c8 c7 8b 1d 40 64 e8 23 62 3e e6 dc 64 84 89 5b 57 b4 9e 09 37 97 b9 42 53 82 0f 2b ca fe f6 9b ab 46 34 cb 17 51 ba 01 fb 35 ad d0 42 9d be 50 13 c9 f8 f6 9c 2c 1f 12 74 f2 a5 33 ad 29 b1 7b 31 eb d9 42 2c 63 5f 3f 94 81 bc 88 c4 e7 f4 23 1d 67 3d 58 7a 87 93 73 8e c0 4c b2 9a 43 89 f1 76 33 05 5b 5d 78 c5 67 83 c7 31 6c 0c af d7 6e d4 65 af 76 0d 49 fc 33 c9 5b 7a 0a 27 bf 0e c0 20 bb a7 fb 1d d5 d6 1a 24 7b a3 95 52 2f 6f eb 9b 62 55 8d bc d9 b6 8c 72 f9 a4 6a e0 04 86 87 cc 65 c0 71 06 c1 d8 d4 25 51 45 7b 57 77 6a f2 6a 53 95 ca d4 3d de 21 1e a4 d5 c9 64 84 03 ce ab a4 d7 68 31 4b 66 37 07 c7 21 37 e0 ba 9d d8 2b 5b 75 db fd ed 43 fe b5 b9 53 09 3c a2 8d 27 d4 25 bd b2 99 d7 57 39 aa 82 55 74 8b 33 bb 46 c7 c5 42 55 0e 25 58 57 fa 53 86 6d 81 94 f4 94 4b 37 19 1f 68 a4 70 bf 50 5b 0b 68 07 fe 41 d9 06 57 80 f5 0e db e7 84 32 94 f2 d4 8e 35 ee 8b 1b 8c 8f bb d0 79 6a 06 15 22 36 3d 6d fe 5c da 1c 22 ce 12 bd 5c 99 86 52 41 bd 46 42 90 3f 39 69 b7 6c 84 4c 48 08 de cc be 0c ce ab 8a d9 a4 25 6a d7 25 e2 8a 51 78 ab 0e 18 3f c5 8c 8c 93 0b 29 e7 31 8f dd b3 f1 1d d7 29 09 78 dd 96 6a 35 a8 5b 27 b5 de c7 03 08 f7 87 f6 3d 36 a8 ae 95 d6 51 e1 52 bc a2 0c 7c 08 e2 0f 94 af 90 66 93 f0 62 c5 3d e3 cc 8d 2a e2 42 21 85 51 1f 16 78 81 51 35 08 dc 57 70 47 63 4a 33 9d 94 29 bf e9 36 f7 db 70 c7 07 b2 2a ce ee 8e ae 38 cb 5e 95 32 77 d2 0b d5 91 84 aa 92 5c e5 bf ad 2c d1 c0 dc 0b f1 ad 8d e3 8b e7 90 df 59 c1 88 e3 93 9e b5 32 7c c7 42 bd 9f 39 2e c5 d6 c8 de ea 58 06 fc 2d 89 2a 9d fe 89 85 56 ca b4 49 79 64 41 cd 8e 57 c1 a4 6c 3f 1c 77 89 1e 92 ca b1 0b 26 e9 a8 81 23 db c2 a5 45 78 40 65 05 5b 23 a3 76 dd c8 5d a2 76 9f 72 50 cf 09 3b 68 cc 9b a6 48 20 99 81 2c d8 ea 4d 1b d7 9d 46 cb e1 41 a8 cd 8b 39 9e f6 31 9c 9a 92 31 45 65 bd 35 4c fb df ab 02 0c 62 95 93 96 ed 05 1b 09 16 3d 9b 92 5d e2 5b 05 cf e1 66 7a 18 06 21 64 93 16 b3 42 1a e4 cc af 44 2a 19 f0 95 b3 ab ff 9a 1b eb 23 ff 7e f6 e1 51 5c 01 30 59 c7 b5 b3 fc 00 6a 5c 8a 80 7e fc 42 6a 0e a3 8a 12 7c fc cf fc 3c b8 74 c4 94 ac a2 35 89 84 01 8d c4 6a da e8 a0 2f d3 e9 21 d3 b5 50 1d 8b 52 f2 57 73 38 b9 2d b1 90 ec fc 0e f4 79 51 7c 45 36 36 d3 02 fa 3c b5 ed ea 7b c4 a8 e9 2b 3f 33 85 3c 8a 2e e1 5b 96 72 85 69 25 0a 77 ff 8e c0 df 64 88 7d 0b 03 df 71 71 50 01 5c 7c 6f bd 16 77 71 c9 6b b8 b4 3f 48 71 5c c7 d6 1e 9c 8c 14 cb da 28 de aa 8b cf a9 8c 13 33 6c e1 d8 fe a1 a7 8d 16 fe 78 9d 31 57 70 c0 1b 31 18 6b ff 36 20 6b c6 66 0b a5 49 0d 77 f5 9e 47 7d 70 af a6 93 ae d7 da 4c 72 c0 e4 51 52 de 3f 46 d4 26 5d 38 af 41 8f 9f 92 5c e0 4e 6a 2c 37 92 40 5c df 0e fb a0 f2 5f 3c c3 22 c4 94 a3 99 3c d6 44 f1 56 15 24 5f 1c 92 b3 88 d5 13 d3 00 cf 9e d2 49 86 e9 4e 0e ca ae 67 43 53 20 62 b1 34 97 7d 60 92 78 7a fa 31 62 ec 29 8e 62 91 7f 76 3d a6 14 7a 19 f4 e0 94 79 db 7f fd 7d c2 e2 87 7e 60 cb 69 53 b4 a2 a7 56 3a 35 80 fb 6f 1b dc 61 8b 8d 08 ec 1c 4b d6 9e d4 cc e9 8f 97 b6 36 c0 37 49 9f c3 39 11 07 68 d9 ef 9f c6 db ab 58 56 67 8c e1 2c 22 3a ca ef 3b 2d a3 ae e6 ee 83 68 6e bc db b9 8b e5 94 38 6d 4a 48 26 57 1c b3 b5 6e c8 32 22 fa f1 e5 8b 90 4b d1 b5 96 9b ba 7b b6 ec b5 ca ce 2b 85 28 93 ab 86 31 9b // Encrypted or plaintext padded data


      ERROR MESSAGES/STACK TRACES THAT OCCUR :
      GSSException: Defective token detected (Mechanism level: Invalid padding on Wrap Token)
      at sun.security.jgss.krb5.CipherHelper.arcFourDecrypt(CipherHelper.java:1226)
      at sun.security.jgss.krb5.CipherHelper.decryptData(CipherHelper.java:532)
      at sun.security.jgss.krb5.WrapToken.getDataFromBuffer(WrapToken.java:230)
      at sun.security.jgss.krb5.WrapToken.getData(WrapToken.java:195)
      at sun.security.jgss.krb5.WrapToken.getData(WrapToken.java:168)
      at sun.security.jgss.krb5.Krb5Context.unwrap(Krb5Context.java:941)
      at sun.security.jgss.GSSContextImpl.unwrap(GSSContextImpl.java:384)
      ...

      REPRODUCIBILITY :
      This bug can be reproduced always.

      CUSTOMER SUBMITTED WORKAROUND :
      Classes which should be fixed:
      1. "sun.security.jgss.krb5.WrapToken"
      2. "sun.security.jgss.krb5.MessageToken"
      3. and possible "sun.security.jgss.krb5.CipherHelper"

            weijun Weijun Wang
            ndcosta Nelson Dcosta (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: