SRP6 and WoW Authentication Process menu

User Tag List

Page 2 of 3 FirstFirst 123 LastLast
Results 16 to 30 of 41
  1. #16
    doityourself's Avatar ★ Elder ★
    Reputation
    1424
    Join Date
    Nov 2008
    Posts
    843
    Thanks G/R
    35/448
    Trade Feedback
    0 (0%)
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)
    Is this your full srp6 class? What does your BigIntegerExtensions class do? Any samples about your results?

    SRP6 and WoW Authentication Process
  2. #17
    julienguillot's Avatar Member
    Reputation
    1
    Join Date
    Jul 2017
    Posts
    23
    Thanks G/R
    9/0
    Trade Feedback
    0 (0%)
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    My SRP class changed a bit => SRP6
    Here is the BigIntegerExtensions class, this is BigInteger Extensions Methods to perform some operations as ModPow, Multiply.... => BigIntegerExtensions

    Some results :

    N : 894B645E89E1535BBDAD5B8B290650530801B18EBFBF5E8FAB3C82872A3E9BB7
    g : 7
    s : 7C7204B6166AB55E8F273E6FFEF75D0141EECF1B3B5F68B70E2ED538B9E532A2
    v : 15AB8A30B27F221645BB5E55DED1F9926A1DF84A3E5FA44F84EA3C8260397FF0
    b : 12FBF3A724428D21BB9DF245E079B7F3
    B : BD6176EDA7FE5CF1A1E13317A09A03AE89EF78FA27D511B29EA2F966C9EBC0FD
    k : 3

    This result failed after ServerLogonChallenge be sent to client...

    Sucessful try :

    N : 894B645E89E1535BBDAD5B8B290650530801B18EBFBF5E8FAB3C82872A3E9BB7
    g : 7
    s : 7C7204B6166AB55E8F273E6FFEF75D0141EECF1B3B5F68B70E2ED538B9E532A2
    v : 15AB8A30B27F221645BB5E55DED1F9926A1DF84A3E5FA44F84EA3C8260397FF0
    b : 3955043DDB869018C82938703C69B7E3
    B : 6B21489E6EE8C7BC68328BDCF738BD1881AD165620A7C8196A1E8CF7BD500B1E
    k : 3
    u : 10789433402BC2A5C041B4788DFB87CAC9CE4178
    K : 40129C9BDC07B135CF32AFDA50BA821524F8FEEB
    M : 9F93CA126B5B036396915CF940E017535A23961E
    M1 : C67C4E33F9F47F8D75F7E4A573D6D5429021B472
    M2 : AD86FCDB37FCD6D3E15272C5AEA26834CE5D8F27

    M and M1 are not equal.... password is correct though

    Any idea ?

    Thanks !
    Last edited by julienguillot; 07-29-2017 at 05:59 AM.

  3. #18
    doityourself's Avatar ★ Elder ★
    Reputation
    1424
    Join Date
    Nov 2008
    Posts
    843
    Thanks G/R
    35/448
    Trade Feedback
    0 (0%)
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)
    I wonder.... why do you use additonal big methods to create bigintegers^^?
    You can just new BigInteger(array.Concat(new byte[1])); if you want to create a new one from a byte array / random byte array^^.

    Also the multiply, etc. extensions are not needed.

  4. #19
    julienguillot's Avatar Member
    Reputation
    1
    Join Date
    Jul 2017
    Posts
    23
    Thanks G/R
    9/0
    Trade Feedback
    0 (0%)
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    Because i can reduce code with this Extension Methods ^^
    But i will try to do without it and see if it's OK but i'm not sure....

  5. #20
    doityourself's Avatar ★ Elder ★
    Reputation
    1424
    Join Date
    Nov 2008
    Posts
    843
    Thanks G/R
    35/448
    Trade Feedback
    0 (0%)
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by julienguillot View Post
    Because i can reduce code with this Extension Methods ^^
    But i will try to do without it and see if it's OK but i'm not sure....
    oh right now it's more code with all these extensions :P

  6. #21
    julienguillot's Avatar Member
    Reputation
    1
    Join Date
    Jul 2017
    Posts
    23
    Thanks G/R
    9/0
    Trade Feedback
    0 (0%)
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    To be honest, i took theses Extensions from other projects ^^... Seems we don't need it ^^

    What do you use to generate random values ? Like b

  7. #22
    doityourself's Avatar ★ Elder ★
    Reputation
    1424
    Join Date
    Nov 2008
    Posts
    843
    Thanks G/R
    35/448
    Trade Feedback
    0 (0%)
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)
    In my old class I used this: Arctium/SRP6.cs at 8199c3f0d8f9974e0b0ebf1215953e8b39a7e7cf * mansemino/Arctium * GitHub


    The MakeBigInteger method just does 'new BigInteger(array.Concat(new byte[1]));'

  8. #23
    julienguillot's Avatar Member
    Reputation
    1
    Join Date
    Jul 2017
    Posts
    23
    Thanks G/R
    9/0
    Trade Feedback
    0 (0%)
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    Ok i modified my code.

    But... salt is genereted as negative value....

    s = new byte[32];
    var random = RNGCryptoServiceProvider.Create();
    random.GetBytes(s);
    Salt = new BigInteger(s);

  9. #24
    doityourself's Avatar ★ Elder ★
    Reputation
    1424
    Join Date
    Nov 2008
    Posts
    843
    Thanks G/R
    35/448
    Trade Feedback
    0 (0%)
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)
    As I said use 'new BigInteger(array.Concat(new byte[1]));' For this you can use an extensions method
    to create them from array. Adding a 0 at the end of the byte arrays makes them non negative!
    Last edited by doityourself; 07-29-2017 at 07:41 AM.

  10. Thanks julienguillot (1 members gave Thanks to doityourself for this useful post)
  11. #25
    julienguillot's Avatar Member
    Reputation
    1
    Join Date
    Jul 2017
    Posts
    23
    Thanks G/R
    9/0
    Trade Feedback
    0 (0%)
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    Here is my new class SRP6, thanks to you and your methods like MakeBigInteger, my first problem disappears !

    I could create 10 accounts without error and they pass the ServerAuthChallenge many times !

    Next step : make M = M1 !

    I will stay in touch ^^

    Thank you, i learned today much what i learn in one week ^^

  12. #26
    julienguillot's Avatar Member
    Reputation
    1
    Join Date
    Jul 2017
    Posts
    23
    Thanks G/R
    9/0
    Trade Feedback
    0 (0%)
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    Hello,

    Here is my method to generate u, S, K, M et M2 :

    public void Step2(byte[] A, byte[] M1, string username)
    {
    // Generation de u = H(A | B)
    byte[] u = SHA1.Create().ComputeHash(CombineData(A, B));
    Scrambler = MakeBigInteger(u);

    // Generation de S = (A * v^u) ^ b % N
    ClientPublicEphemeral = MakeBigInteger(A);
    BigInteger t1 = ClientPublicEphemeral * BigInteger.ModPow(Verifier, Scrambler, Modulus); // (A * v^u)
    byte[] ss = BigInteger.ModPow(t1, ServerPrivateEphemeral, Modulus).ToByteArray();

    //// Generation de K = H(S))
    byte[] K = SHA1.Create().ComputeHash(ss);
    SessionKey = MakeBigInteger(K);

    // Generation de M1
    //Client -> Serveur : M = H(H(N) xor H(g), H(I), s, A, B, K) (xor correspond au OU exclusif)
    //Serveur->Client : H(A, M, K)
    byte[] HN = SHA1.Create().ComputeHash(N);
    byte[] Hg = SHA1.Create().ComputeHash(g);
    byte[] HI = SHA1.Create().ComputeHash(Encoding.UTF8.GetBytes(username));

    for (int i = 0; i < HN.Length; i++)
    HN[i] ^= Hg[i];

    byte[] M = SHA1.Create().ComputeHash(CombineData(HN, HI, s, A, B, K));
    ClientSessionKeyProof = MakeBigInteger(M);

    // Generation de M2 = H(A | M1 | K)
    byte[] M2 = SHA1.Create().ComputeHash(CombineData(A, M, K));
    ServerSessionKeyProof = MakeBigInteger(M2);

    bool OK = M.Equals(M1);
    }

    But M always differs from M1. Where is the problem ?

    To calculate M i need to do M = H(H(N) xor H(g), H(I), s, A, B, K), and compare it to M1 isn't it ?
    Last edited by julienguillot; 07-29-2017 at 11:11 PM.

  13. #27
    doityourself's Avatar ★ Elder ★
    Reputation
    1424
    Join Date
    Nov 2008
    Posts
    843
    Thanks G/R
    35/448
    Trade Feedback
    0 (0%)
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)
    Oh I think your sessionkey (K) generation is wrong.
    I think it's not just a 'SHA1.Create().ComputeHash(ss)'

    If you look at the srp6 class on github, you see, that you have to do a bit more stuff for that one (CalculateK), because blizz likes to do other stuff

  14. Thanks julienguillot (1 members gave Thanks to doityourself for this useful post)
  15. #28
    julienguillot's Avatar Member
    Reputation
    1
    Join Date
    Jul 2017
    Posts
    23
    Thanks G/R
    9/0
    Trade Feedback
    0 (0%)
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    I looked at Mangos Two VB NET version (for WOTLK) and adapt my code as it...

    But.... this is not yet successful.

    My code => Here

  16. #29
    julienguillot's Avatar Member
    Reputation
    1
    Join Date
    Jul 2017
    Posts
    23
    Thanks G/R
    9/0
    Trade Feedback
    0 (0%)
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    I changed some parts of my code according MaNGOS and Ascent... but not successful yet...

    [C#] using SharpCore.Framework.DataExtensions; using System; using System.Collectio - Pastebin.com

  17. #30
    doityourself's Avatar ★ Elder ★
    Reputation
    1424
    Join Date
    Nov 2008
    Posts
    843
    Thanks G/R
    35/448
    Trade Feedback
    0 (0%)
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by julienguillot View Post
    I changed some parts of my code according MaNGOS and Ascent... but not successful yet...

    [C#] using SharpCore.Framework.DataExtensions; using System; using System.Collectio - Pastebin.com
    You're using lowercase username/pw now? Or do you upper them before the call?

Page 2 of 3 FirstFirst 123 LastLast

Similar Threads

  1. BNET Authentication and wow login
    By daCoder in forum WoW Memory Editing
    Replies: 15
    Last Post: 05-03-2014, 10:33 PM
  2. Leaving MMOwned and WoW
    By Jones4ever in forum Community Chat
    Replies: 16
    Last Post: 03-19-2007, 09:07 PM
  3. Itunes and WoW
    By Kenidiern in forum Community Chat
    Replies: 5
    Last Post: 03-06-2007, 11:36 AM
  4. Naruto and WoW?
    By Fenarth in forum World of Warcraft General
    Replies: 6
    Last Post: 01-23-2007, 06:15 AM
All times are GMT -5. The time now is 11:58 AM. Powered by vBulletin® Version 4.2.3
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search