Secure OS / non-trusted computing

Discussions on more advanced topics such as monolithic vs micro-kernels, transactional memory models, and paging vs segmentation should go here. Use this forum to expand and improve the wiki!
Post Reply
alexei
Posts: 3
Joined: Fri Feb 26, 2010 10:06 pm

Secure OS / non-trusted computing

Post by alexei »

It's rather interesting, people still care more about performance than security/privacy/stability.
Since "unix" times there is a strong tendency to incorporate into OS whatever possible, just to attract application developers. Both Linux and Windows are enormously bloated and vulnerable because of that. To become safe, secure, and stable OS should not include anything that can be done in application. Sharing hardware among applications is the only essential OS function.
I see nothing wrong with application using TCP/IP library to communicate with network packet service/server (another "system" application) that was granted access (by OS) to network card hardware. OS itself does not need networking :) There is no need to share code between OS and applications. OS does not need to load modules from filesystem - just read memory image at bootup from reserved partition or better from read-only medium (image is generated at OS install-time).
Of course, each application should not see anything, but its memory space. Linking applications with kernel is a pure nonsence - OS code exposed to applications allowes them to attack it easily.
Each application may have bugs, bugs can be used by intruder, so each application should be treated as "dangerous to itself and others" (potentially "insane" :lol: ), so it should be completely isolated to minimize possible damage. Regarding "speed", let's count resources consumed by anti-virus, system updates, and down-time when they didn't help. :wink:
BTW, approach from "A new design" topic may provide a better security...
User avatar
Solar
Member
Member
Posts: 7615
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Re: Secure OS / non-trusted computing

Post by Solar »

Welcome to the concept of microkernels resp. exokernels.

Both have their own set of problems, but if you're up to it, knock yourself out.
Every good solution is obvious once you've found it.
Boris
Member
Member
Posts: 145
Joined: Sat Nov 07, 2015 3:12 pm

Re: Secure OS / non-trusted computing

Post by Boris »

Whatever your kernel is, you will still have naive users who will download stupid stuff and get viruses from it to their computers.
onlyonemac
Member
Member
Posts: 1146
Joined: Sat Mar 01, 2014 2:59 pm

Re: Secure OS / non-trusted computing

Post by onlyonemac »

In other words, you've just re-invented the exokernel. Well done.

/thread
When you start writing an OS you do the minimum possible to get the x86 processor in a usable state, then you try to get as far away from it as possible.

Syntax checkup:
Wrong: OS's, IRQ's, zero'ing
Right: OSes, IRQs, zeroing
User avatar
Combuster
Member
Member
Posts: 9301
Joined: Wed Oct 18, 2006 3:45 am
Libera.chat IRC: [com]buster
Location: On the balcony, where I can actually keep 1½m distance
Contact:

Re: Secure OS / non-trusted computing

Post by Combuster »

Boris wrote:Whatever your kernel is, you will still have naive users who will download stupid stuff and get viruses from it to their computers.
The trick is always to make it sufficiently difficult that people go after something else.
"Certainly avoid yourself. He is a newbie and might not realize it. You'll hate his code deeply a few years down the road." - Sortie
[ My OS ] [ VDisk/SFS ]
alexei
Posts: 3
Joined: Fri Feb 26, 2010 10:06 pm

Re: Secure OS / non-trusted computing

Post by alexei »

onlyonemac wrote:In other words, you've just re-invented the exokernel. Well done.
Usually, exokernels give user-end applications full access to specific hardware, and in some cases it gives some performace advantages.
I'm talking about multi-layered structure of components communicating strictly via kernel. Each component is fully indepemdent and works in its private execution environment.
I see the main problem for independent OS development is to communicate with hardware, which often has undisclosed / NDA interfaces. It should be possible to use existing drivers from Windows/Linux/Haiku by running them in virtualized environment that emulates required OS (actually, you don't need full OS, just the functionality used by specific driver).
In another words, each driver/"server" on each level runs on designated VM along with application that communicates with kernel to provide virtualized resources and use resources, provided by other components.
This concept targets necessity of using software and hardware that may have undesirable functionality (such as driver with virus or network card vith trojan in firmware) and despite of that be able to do your job safely and securely, while keeping you privacy protected.
Actually, that's what everybody needs nowdays.
Post Reply