I need beta testers for an authentication library in ASP.Net
Posted: Sun Apr 10, 2011 9:50 pm
Hello there. I'm not quite sure if this is the proper place to ask for such a thing but I figured I'd give it a shot.
Basically, I've made an authentication library for use in ASP.Net. Why? Because I think writing 200 lines of code to get Forms Authentication to work on your own database is stupid. Also, Forms Auth is the only real authentication method I can find with everyone quoting "you can use Forms Authentication, or you can roll your own." Well, everyone knows how problematic rolling your own can be. So I've rolled my own, checked it a billion times and I think it's pretty damn secure. So I'd like to offer an alternative.
What makes it worth using?
It's fast: Requires only 1 database hit on all operations except for adding a user. Requires computing just 2 hashes for most operations as well. Also, there is no Session to worry about. This uses no persistant medium for storing sessions, neither database nor memory. This also makes it capable of working in a web cluster environment, out of the box. It's what I like to call "stateless"
It's secure: By default, all passwords are salted and hashed in SHA256.
It's easy: Configuration can be done in about 4 lines of code. If you want to use your own database layout(ie, creating your own UserStore class), then it doesn't require a lot, depending on your database. My simple in-memory list UserStore uses just about 60 lines of code. And it's trivial code to write, at that. A MongoDB interface used about 70 or 80. Most permissions can be validated with 1 line of code.
It's standard compliant: Unlike Forms Authentication, it will rightfully give you 401 and 403 errors, rather than redirects.
I've designed it so that even if your database was leaked and someone knew all of your password hashes, the passwords would be safe, and they would still be incapable of forging a working login cookie.
How does it work? Basically, a UniqueHash is used that is kept a secret. This UniqueHash goes into the creation of both passwords and login cookies. The only way someone could forge a login cookie is by knowing this value. And the only way they can know the value is by reading either your source code or your web.config.
Anyway beta-testing. I need beta testers for this. This IS a commercial project. If you are interested in beta testing, either post here or PM me with a bit about yourself and how you will beta test it(ie, are you going to implement it in your blog? Or whatever). After the end of the beta, testers who sent me feedback will get a non-expiring single-site license. Those that sent me amazing feedback will get a non-expiring multi-site license.
A demo is available at http://fscauth-demo.lastyearswishes.com (note, when registering you can see the hashes generated for the password)
I am still actively developing it, and it still has a few rough edges that I'm working out. And documentation is still being created, but I'm working rapidly on it and trying to gather up some beta testers so when I am ready in a couple of weeks, I can continue with the beta process in a fairly quick fashion.
Also, a bit more information can be had at my blog: http://lastyearswishes.com/blog/view/4d ... 4ec6d6a37d
Basically, I've made an authentication library for use in ASP.Net. Why? Because I think writing 200 lines of code to get Forms Authentication to work on your own database is stupid. Also, Forms Auth is the only real authentication method I can find with everyone quoting "you can use Forms Authentication, or you can roll your own." Well, everyone knows how problematic rolling your own can be. So I've rolled my own, checked it a billion times and I think it's pretty damn secure. So I'd like to offer an alternative.
What makes it worth using?
It's fast: Requires only 1 database hit on all operations except for adding a user. Requires computing just 2 hashes for most operations as well. Also, there is no Session to worry about. This uses no persistant medium for storing sessions, neither database nor memory. This also makes it capable of working in a web cluster environment, out of the box. It's what I like to call "stateless"
It's secure: By default, all passwords are salted and hashed in SHA256.
It's easy: Configuration can be done in about 4 lines of code. If you want to use your own database layout(ie, creating your own UserStore class), then it doesn't require a lot, depending on your database. My simple in-memory list UserStore uses just about 60 lines of code. And it's trivial code to write, at that. A MongoDB interface used about 70 or 80. Most permissions can be validated with 1 line of code.
It's standard compliant: Unlike Forms Authentication, it will rightfully give you 401 and 403 errors, rather than redirects.
I've designed it so that even if your database was leaked and someone knew all of your password hashes, the passwords would be safe, and they would still be incapable of forging a working login cookie.
How does it work? Basically, a UniqueHash is used that is kept a secret. This UniqueHash goes into the creation of both passwords and login cookies. The only way someone could forge a login cookie is by knowing this value. And the only way they can know the value is by reading either your source code or your web.config.
Anyway beta-testing. I need beta testers for this. This IS a commercial project. If you are interested in beta testing, either post here or PM me with a bit about yourself and how you will beta test it(ie, are you going to implement it in your blog? Or whatever). After the end of the beta, testers who sent me feedback will get a non-expiring single-site license. Those that sent me amazing feedback will get a non-expiring multi-site license.
A demo is available at http://fscauth-demo.lastyearswishes.com (note, when registering you can see the hashes generated for the password)
I am still actively developing it, and it still has a few rough edges that I'm working out. And documentation is still being created, but I'm working rapidly on it and trying to gather up some beta testers so when I am ready in a couple of weeks, I can continue with the beta process in a fairly quick fashion.
Also, a bit more information can be had at my blog: http://lastyearswishes.com/blog/view/4d ... 4ec6d6a37d