ACM SIGOPS Operating Systems Review

ACM SIGOPS Operating Systems Reviewの最新号の特集が「Research and developments in the Linux kernel 」ということで、Linuxカーネル関連の論文が集められている*1。その中に、「Plan 9 authentication in Linux」*2という論文が収録されている。

セキュリティの基本に、authentication(認証)とauthorization(認可)という考え方がある。前者はログインしてきたユーザが本当にその人であるか(なりすましじゃないか)の確認で、後者はユーザの権限でできることはどこまでかというアクセス権の制御のことである。ということで、この論文はPlan9の認証モデルをLinuxに導入してみましたという論文である。これって確かGoogle SoCネタじゃなかったかな?

UNIXでは、suã‚„loginはrootという特権ユーザの権限で動作する。これらのアプリケーションに脆弱性があると、システム全体が危機に曝されることになる。Plan9ではカーネルベースのケーパビリティデバイス(cap)と、ユーザレベルの認可サーバが連携することで、rootユーザを導入することなく、このような特権を必要とするアプリケーションを実行することができる。この辺の話は「Plan9のセキュリティアーキテクチャ(その0)」「Plan9のセキュリティアーキテクチャ(その1)」で書いた(中途半端で終わっているが)。この論文では、Linux上に実装するにあたって、PAM (Pluggable Authentication Modules)の仕組みを利用しているようだ。

Plan9で、プロセスのユーザIDを変えるために使うのがcapデバイスである。capデバイスの詳細は、有澤先生のCAP (capability)を参照のこと。

*1:この号は特別に誰でも閲覧可能になっているようだ。

*2:なぜか私のMacBookではうまく表示されないが