Security idea
Posted: Thu Feb 22, 2007 9:32 pm
My kernel is a microkernel so it really has no idea about users and groups and that type of permission model. What it does have however, is a list of "rights" which have a name like("/System/Rights/Ports/60", this is for accessing port 60 of course) and a value, a 64 byte randomly generated value.
The rights that the kernel provides is kept in kernel space and rights that other servers provide are kept in those servers page tables only.
In order to something protected by a right, you have to use the authentication server, or if the authentication server has not yet been started up(the authentication server is one of the servers that the kernel monitors and even uses), you use the kernel to get the 64 byte value. The authentication server manages users and groups and the rights each have.
Then you have to supply this write to the function that is priveleged and the server, or kernel(which is also a server in my os), checks to make sure that you have the right you supplied is correct. If it is you can perform the task, if not, then the user is notified and the program is alerted that it does not have proper rights.
Is this a good method of security? are there any pitfalls to this method? do any of you use this sort of method or anything close to it?
Thanks.
The rights that the kernel provides is kept in kernel space and rights that other servers provide are kept in those servers page tables only.
In order to something protected by a right, you have to use the authentication server, or if the authentication server has not yet been started up(the authentication server is one of the servers that the kernel monitors and even uses), you use the kernel to get the 64 byte value. The authentication server manages users and groups and the rights each have.
Then you have to supply this write to the function that is priveleged and the server, or kernel(which is also a server in my os), checks to make sure that you have the right you supplied is correct. If it is you can perform the task, if not, then the user is notified and the program is alerted that it does not have proper rights.
Is this a good method of security? are there any pitfalls to this method? do any of you use this sort of method or anything close to it?
Thanks.