WebsiteBaker 2.13.8 is now available!
R.I.P Dietmar (luisehahne) and thank you for all your valuable work for WBhttps://forum.websitebaker.org/index.php/topic,32355.0.html
Were there any thoughts about switching to sha1 method ?At least a bit more advanced md5 encryption like md5($salt.md5($pass)) would be appreciated, or both methods: sha1($salt.md5($pass).$salt).Any word on this ? I've got a feeling that I overlooked something important in WB's code.
Of course it would be awesome if WB could come up with setting default passwords policy like: minimum amount of special chars, letters, numbers.
.... just a few thoughts ...1. Changing the password algorithm makes updates to a new WB version impossible as you cannot restore the passwords to encrypt em again.
2. To use rainbow tables you need access to the WB database , if you have access to the database tables , you simply reset passwords to a value you like. No rainbowtables needed at all.
3. Adding a salt is questionable too, as if someone gets acces to the database to read the hashes , he does not need to hack the hashes anymore (see above) and having the salt stored in the same DB makes it even more worthless.
4. If i plan to attack a CMS site i would first try to figure out some usernames , after that i would go and set a bot to test the 500 most used passwords against that accounts , chances are very good that you succeed.
5. Don't dream , write a replacement for WB registration. Just a few additional filters and you are done.
6. Allowing spaces does not help much, its just one additional charakter to take care off.
7. One really usefull thing to slow down brute force or dictionary attacks to your website is to slow down the login process if someone entered a wrong password. If you wait 10 Seconds to say "hey, wrong password " most attacks would take a really long time.
8. Slowing down the login whith 10000 times hashing a string is plain silly It fully eats up your Server resources fo no gain in security . Simply use sleep() in combination whith an IP block.
9. Multiple hashing makes the use of rainbow tables a lot harder and slows down brute force on the hash, but again if an attacker managed to get that far you are lost anyway . This still makes a lot of sense if you are protecting the password file on your server.
10. Ensuring save passwords is good, but do not overdo it or you users will kill you (customers maybe simply go away) or start storing their paswords in their browsers.
11. As a result of the things mentioned before fixing security issues that let you access sensitive parts like user management or MYSQL DB are first priority.
12. WB only uses Salt in its FTAN /IDKEY system for now , but all security systems will undergo a complete rework step by step.
Don't know much about such methods. I was just curious why novadays some biggest players in interwebz still holds user passwords in plain text format.
Kingdom for the one, who understands regular expressions, and could teach me them :/I have to stay with my dreams... Wink
Haven't go deeply in WB's functions, but is there anything more than blocking login access with a cookie/session ?What about automatic attempts ?
1. Changing the password algorithm makes updates to a new WB version impossible as you cannot restore the passwords to encrypt em again.
$sec_pwd = md5($salt.md5($pwd));for($i = 0; $i < 1000; $i++) { $sec_pwd = md5($sec_pwd);}
$sec_pwd = md5($salt.$pwdFromDB);for($i = 0; $i < 1000; $i++) { // the same as above}// now save the sec_pwd back in DBSo, it can't be an argument if you say it's impossible to update!
2. To use rainbow tables you need access to the WB database , if you have access to the database tables , you simply reset passwords to a value you like. No rainbowtables needed at all.3. Adding a salt is questionable too, as if someone gets acces to the database to read the hashes , he does not need to hack the hashes anymore (see above) and having the salt stored in the same DB makes it even more worthless.
7. One really usefull thing to slow down brute force or dictionary attacks to your website is to slow down the login process if someone entered a wrong password. If you wait 10 Seconds to say "hey, wrong password " most attacks would take a really long time.8. Slowing down the login whith 10000 times hashing a string is plain silly It fully eats up your Server resources fo no gain in security . Simply use sleep() in combination whith an IP block.
And every clever idea wich is coded is readable since WB, as are most webbased progs, is opensource.
I think wb has a good allready built in defense by blocking logging in after three times (though it is cookie/session based)
Maybe blocking ipadres (segment) from wich assumed attack comes from after six invalid logins, then block it for 12 hours or so, then brute force won't be fun anymore. I think this could be easely coded.
But remember, from my poiint of view, each webbased system has its leaks due to other users on same server......
Ever tried to read files in other webspaces on same server?
$sec_pwd = md5($salt.$pwdFromDB);for($i = 0; $i < 1000; $i++) { // the same as above}
Most of all hackers don't want to get access to your system, they want username/email/pwd combinations. Because lot of useres don't use uniquepasswords on different pages, the hacker can try to use the same password for an e-mail-account.
Assume that someone has hacked your DB (to have access to all your username/mail/pwd combinations). And as WB is opensource, he can build his own functions which does the same as the WB-login function. So if you just use a sleep comand, he just leave away this statement and can generate pwd's as fast as if we just use md5 (or can also use rainbowtables and look up the combination). But if WB uses his very unique function which needs alot of iterations, he can't just simplify the function to run faster and there are no rainbowtables for this unique operation. The WB-function itself won't realy slow down your page because the login action is used only once per user per login.
Wrong argumentation. Of course, if someone hacks your DB your f***ed but think a little bit further: maybe he's not interested in your page, but in all the userdata which is in the DB. So he don't just override this information, he'll copy it and use this data for hacking or accessing other boards/e-mail-accounts, ...
Guess i would choose 20-100 x sha512( md5(user salt) + md5(global salt) + md5(userid)+ md5(password) )Where global salt is randomly generated and stored in a file in the install process and user salt is stored in DB encoded whith a decrypable format whith its key stored in the config.so you always need both , config and DB and you can store the config just outside your webroot.