| ナビゲーションリンクをスキップ | |
| 印刷ビューの終了 | |
|
Trusted Extensions 開発者ガイド Oracle Solaris 10 1/13 Information Library (日本語) |
1. Trusted Extensions API およびセキュリティーポリシー
9. Solaris Trusted Extensions ラベル API のための試験的な Java バインディング
アプリケーションがさまざまな機密ラベルでデータにアクセスする場合は、アクセス操作の発生を許可する前に、コードをチェックしてプロセスラベルとデータラベルの関係が正しいことを確認します。アクセスされるオブジェクトの機密ラベルをチェックし、システムによってアクセスが許可されているかどうかを確認します。
次のコード例は、2 つの機密ラベルの等価、優位、および完全な優位をテストする方法を示しています。このプログラムは、ファイルのラベルに対してプロセスのラベルが優位であるか、または同等であるかをチェックします。
#include <stdio.h>
#include <stdlib.h>
#include <tsol/label.h>
main(int argc, char *argv[])
{
m_label_t *plabel;
m_label_t *flabel;
plabel = m_label_alloc(MAC_LABEL);
flabel = m_label_alloc(MAC_LABEL);
if (getplabel(plabel) == -1) {
perror("getplabel");
exit(1);
}
if (getlabel(argv[1], flabel) == -1) {
perror("getlabel");
exit(1);
}
if (blequal(plabel, flabel)) {
printf("Labels are equal\n");
}
if (bldominates(plabel, flabel)) {
printf("Process label dominates file label\n");
}
if (blstrictdom(plabel, flabel)) {
printf("Process label strictly dominates file label\n");
}
m_label_free(plabel);
m_label_free(flabel);
return (0);
}
このプログラムのテキスト出力は、次のように、プロセスに渡されたファイルのラベルを基準にしたプロセスのラベルによって異なります。
「優位」には「同等」が含まれるので、ラベルが同等である場合、出力は次のようになります。
Labels are equal Process label dominates file label
プロセスのラベルがファイルのラベルよりも完全に優位である場合、出力は次のようになります。
Process label strictly dominates file label