Verbesserung login speed und sicherheit durch randomisierung der iterationssschritte
This commit is contained in:
@@ -178,9 +178,9 @@ Public Class TestPerformance
|
|||||||
For zahl As Integer = 0 To zahlint
|
For zahl As Integer = 0 To zahlint
|
||||||
sw1.Start()
|
sw1.Start()
|
||||||
If HttpContext.Current.Request.ServerVariables("SERVER_NAME") = "localhost" Then
|
If HttpContext.Current.Request.ServerVariables("SERVER_NAME") = "localhost" Then
|
||||||
hashsalts.Add(VERAG_VARIABLES.GenerateSalt(VERAG_VARIABLES.RandomInteger(95, 254)))
|
hashsalts.Add(VERAG_VARIABLES.GenerateSalt(VERAG_VARIABLES.RandomInteger(95, 104)))
|
||||||
Else
|
Else
|
||||||
hashsalts.Add(VERAG_VARIABLES.GenerateSalt(VERAG_VARIABLES.RandomInteger(95, 365)))
|
hashsalts.Add(VERAG_VARIABLES.GenerateSalt(VERAG_VARIABLES.RandomInteger(95, 105)))
|
||||||
End If
|
End If
|
||||||
arrzahl_iterats.Add(VERAG_VARIABLES.RandomInteger(25, 45))
|
arrzahl_iterats.Add(VERAG_VARIABLES.RandomInteger(25, 45))
|
||||||
arrzahl.Add(zahlint)
|
arrzahl.Add(zahlint)
|
||||||
@@ -192,7 +192,7 @@ Public Class TestPerformance
|
|||||||
If HttpContext.Current.Request.ServerVariables("SERVER_NAME") = "localhost" Then
|
If HttpContext.Current.Request.ServerVariables("SERVER_NAME") = "localhost" Then
|
||||||
pw = "PasswordV$S" + VERAG_VARIABLES.RandomInteger(115, 120 + (zahlint - 5)).ToString + "!!%"
|
pw = "PasswordV$S" + VERAG_VARIABLES.RandomInteger(115, 120 + (zahlint - 5)).ToString + "!!%"
|
||||||
Else
|
Else
|
||||||
pw = "&WAS5$WdA&" + VERAG_VARIABLES.RandomInteger(VERAG_VARIABLES.RandomInteger(120, 512), VERAG_VARIABLES.RandomInteger(300, 8423) + (zahlint - VERAG_VARIABLES.RandomInteger(5, 17))).ToString + "#*p(=+UY"
|
pw = "&WAS5$WdA&" + VERAG_VARIABLES.RandomInteger(VERAG_VARIABLES.RandomInteger(120, 512), VERAG_VARIABLES.RandomInteger(300, Math.Pow(2, 13) + (zahlint - VERAG_VARIABLES.RandomInteger(5, 17))).ToString + "#*p(=+UY")
|
||||||
End If
|
End If
|
||||||
For zahl As Integer = 0 To zahlint
|
For zahl As Integer = 0 To zahlint
|
||||||
sw2.Start()
|
sw2.Start()
|
||||||
|
|||||||
@@ -4,14 +4,27 @@ Imports Konscious.Security.Cryptography
|
|||||||
Imports System.Threading.Tasks
|
Imports System.Threading.Tasks
|
||||||
Imports System.Web.Script.Services
|
Imports System.Web.Script.Services
|
||||||
Imports System.Web.Services
|
Imports System.Web.Services
|
||||||
|
Imports System.Management
|
||||||
|
|
||||||
Public Class VERAG_VARIABLES
|
Public Class VERAG_VARIABLES
|
||||||
Public Shared errornumb As Integer = 0
|
Public Shared errornumb As Integer = 0
|
||||||
|
Public Shared Function GetCpuSpeed() As UInteger
|
||||||
|
Dim managementObject = New ManagementObject("Win32_Processor.DeviceID='CPU0'")
|
||||||
|
Dim speed As UInteger = CUInt(managementObject("CurrentClockSpeed"))
|
||||||
|
managementObject.Dispose()
|
||||||
|
Return speed
|
||||||
|
End Function
|
||||||
|
Public Shared Function GetMaxCpuSpeed() As UInteger
|
||||||
|
Dim managementObject = New ManagementObject("Win32_Processor.DeviceID='CPU0'")
|
||||||
|
Dim speed As UInteger = CUInt(managementObject("MaxClockSpeed"))
|
||||||
|
managementObject.Dispose()
|
||||||
|
Return speed
|
||||||
|
End Function
|
||||||
Shared Function getiterationnumber() As Integer
|
Shared Function getiterationnumber() As Integer
|
||||||
If HttpContext.Current.Request.ServerVariables("SERVER_NAME") = "localhost" Then
|
If HttpContext.Current.Request.ServerVariables("SERVER_NAME") = "localhost" Then
|
||||||
Return RandomInteger(Math.Pow(2, 8), Math.Pow(2, 16))
|
Return RandomInteger(Math.Pow(2, 2), (0.45 * GetCpuSpeed()))
|
||||||
Else
|
Else
|
||||||
Return RandomInteger(Math.Pow(2, 5), Math.Pow(2, 7))
|
Return RandomInteger(Math.Pow(2, 3), (0.47 * GetMaxCpuSpeed()))
|
||||||
End If
|
End If
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
@@ -44,14 +57,14 @@ Public Class VERAG_VARIABLES
|
|||||||
Argon.Salt = salt
|
Argon.Salt = salt
|
||||||
Argon.DegreeOfParallelism = 28
|
Argon.DegreeOfParallelism = 28
|
||||||
Argon.Iterations = nIterations * VERAG_VARIABLES.RandomInteger(2, 3)
|
Argon.Iterations = nIterations * VERAG_VARIABLES.RandomInteger(2, 3)
|
||||||
Argon.MemorySize = (((nIterations * 15.98 - (nIterations * 10.23) / 14 * 2) / 4.058) + 1 * 190)
|
Argon.MemorySize = (((nIterations * 9.98 - (nIterations * 10.23) / 14 * 2) / 4.058) + 1 * 190)
|
||||||
Return Argon.GetBytes(nHash)
|
Return Argon.GetBytes(nHash)
|
||||||
Else
|
Else
|
||||||
Dim Argon As Argon2id = New Argon2id(Encoding.UTF8.GetBytes(VERAG_PROG_ALLGEMEIN.cCryptography3.Encrypt(password)))
|
Dim Argon As Argon2id = New Argon2id(Encoding.UTF8.GetBytes(VERAG_PROG_ALLGEMEIN.cCryptography3.Encrypt(password)))
|
||||||
Argon.Salt = salt
|
Argon.Salt = salt
|
||||||
Argon.DegreeOfParallelism = 48
|
Argon.DegreeOfParallelism = 18
|
||||||
Argon.Iterations = nIterations * VERAG_VARIABLES.RandomInteger(2, 4)
|
Argon.Iterations = nIterations * VERAG_VARIABLES.RandomInteger(2, 4)
|
||||||
Argon.MemorySize = (((nIterations * 17.98 - (nIterations * 10.23) / 1.85 * 2.28) / 10.28) + 1024 * 878) / 13.1
|
Argon.MemorySize = (((nIterations * 9.88 - (nIterations * 10.23) / 8.85 * 2.28) / 10.28) + 2 * 878) / 13.1
|
||||||
Return Argon.GetBytes(nHash)
|
Return Argon.GetBytes(nHash)
|
||||||
End If
|
End If
|
||||||
|
|
||||||
@@ -69,9 +82,9 @@ Public Class VERAG_VARIABLES
|
|||||||
Else
|
Else
|
||||||
Dim Argon As Argon2id = New Argon2id(Encoding.UTF8.GetBytes(VERAG_PROG_ALLGEMEIN.cCryptography3.Encrypt(password)))
|
Dim Argon As Argon2id = New Argon2id(Encoding.UTF8.GetBytes(VERAG_PROG_ALLGEMEIN.cCryptography3.Encrypt(password)))
|
||||||
Argon.Salt = salt
|
Argon.Salt = salt
|
||||||
Argon.DegreeOfParallelism = 48
|
Argon.DegreeOfParallelism = 28
|
||||||
Argon.Iterations = nIterations * VERAG_VARIABLES.RandomInteger(2, 4)
|
Argon.Iterations = nIterations * VERAG_VARIABLES.RandomInteger(2, 4)
|
||||||
Argon.MemorySize = (((nIterations * 17.98 - (nIterations * 10.23) / 1.85 * 2.28) / 10.28) + 1024 * 878) / 13.1
|
Argon.MemorySize = (((nIterations * 10.88 - (nIterations * 10.23) / 2.85 * 2.28) / 10.28) + 2 * 178) / 13.1
|
||||||
Return Await Argon.GetBytesAsync(nHash)
|
Return Await Argon.GetBytesAsync(nHash)
|
||||||
End If
|
End If
|
||||||
End Function
|
End Function
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -893,7 +893,7 @@ Partial Class ForgotPW
|
|||||||
Dim tokentest As String = Await genToken(username, Passw, email, CustomerID, True, True, True, False, TheusrID)
|
Dim tokentest As String = Await genToken(username, Passw, email, CustomerID, True, True, True, False, TheusrID)
|
||||||
Dim hashtoken As Byte()
|
Dim hashtoken As Byte()
|
||||||
Dim iterationnumb As Integer = VERAG_VARIABLES.getiterationnumber
|
Dim iterationnumb As Integer = VERAG_VARIABLES.getiterationnumber
|
||||||
Dim intzahl1 As Integer = VERAG_VARIABLES.RandomInteger(Math.Pow(2, 6), Math.Pow(2, 10))
|
Dim intzahl1 As Integer = VERAG_VARIABLES.RandomInteger(95, Math.Pow(2, 10))
|
||||||
'MsgBox(salttoken)
|
'MsgBox(salttoken)
|
||||||
If Session.Item("TokenforEmail") = Nothing Then
|
If Session.Item("TokenforEmail") = Nothing Then
|
||||||
tokentest = Await genToken(username, Passw, email, CustomerID, True, True, True, False, TheusrID)
|
tokentest = Await genToken(username, Passw, email, CustomerID, True, True, True, False, TheusrID)
|
||||||
|
|||||||
Reference in New Issue
Block a user