AS/400
的系統機密等級(System Security Level)符合美國國防部 C2 機密規格 ,
由系統值 QSECURITY 控制系統機密等級 , 系統值 QSECURITY 有值 : 10 , 20 ,
30 , 40 , 50 對應至五個機密等級。
在OS/400 V3R7 以前出售的 AS/400 系統 , 系統預設系統值
QSECURITY 機密等級為 10 , 而在 OS/400 V3R7 以後新出售的 AS/400 系統 ,
系統預設系統值 QSECURITY 機密等級為 40。你能執行 DSPSYSVAL (Display
System Value) 檢視目前的系統值 QSECURITY。執行 CHGSYSVAL (Change System Value)
更改系統機密等級 , 如 :
CHGSYSVAL SYSVAL(QSECURITY) VALUE ('40') 更改系統機密等級至 40
當更改系統機密等級時 ,
新的系統機密等級要等到下次 AS/400
關機後重新開機後才會生效。在未關開機前系統仍然使用原有之統機密等級
, 你可執行 DSPSECA (Display Security Attributes) 檢視目前的系統值 QSECURITY
及等待關開機才生效(pending)的系統值。
- 系統機密等級 10 :
不管使用者是否存在系統中 ,
使用者只須輸入 User ID , 即可進入系統 , 無權限限制 ,
系統給予 *ALLOBJ 特殊權限 , 使用者可控制所有系統資源 。 OS/400 V4R2
以後不再支援系統機密等級 10 。
- 系統機密等級 20 :
必須於系統中先建立使用者設定檔 ,
且使用者須輸入正確之 User ID 及 Password , 才可進入系統 ,
系統機密等級 20 僅做上述最基本的限制 , 即需要使用者知道他的 User
ID 及 Password , 一旦進入系統 , 系統仍預設給予 *ALLOBJ 特殊權限 ,
使用者可控制所有系統資源 , 但此機密等級可於建立使用者設定檔
(CRTUSRPRF Create User Profile) 及更改使用者設定檔 (CHGUSRPRF Change User
Profile) 參數 SPCAUT 特殊權限 , 加以限制使用者權限。
- 系統機密等級 30 :
必須於系統中先建立使用者設定檔 ,
且使用者須輸入正確之 User ID 及 Password , 才可進入系統 ,
系統除了使用者等級為 *QSECOFR 外 , 其他使用者等級( *SECADM , *QPGMR ,
*QSYSOPR , *USER) 均不再給予 *ALLOBJ 特殊權限 ,
特殊權限須於使用者設定檔個別指定 , 以便於系統上新增 , 修改 ,
刪除物件, 或使用預設的公共權限 (Public authority)。
- 系統機密等級 40 :
除了系統機密等級 30 的資源限制外
, 更加上操作系統的一致性機密限制以防止低階程式 (MI , C/400 , Pascal)
從一個未經防護的物件 , 竊取授權指標再存取其他物件。
一致性機密限制有四部份 :
- 狀態與區域範圍限制 (Program State and Object Domain) :
AS/400 將所有物件 (程式 , 檔案 ,
命令等) 分為系統及使用者兩個區域。在系統機密等級 40 時 ,
系統狀態程式能不必受限制地參照所有系統及使用者兩個區域的物件
, 而使用者狀態程式僅能參照使用者區域的物件。在系統機密等級 10
, 20 , 30 時 , 執行程式時系統會檢核上述規則 ; 如果不符合規則 ,
系統除了記錄稽核日誌並不採取任何動作 ; 但在系統機密等級 40 時 ,
系統不會執行此違反規則的程式。
- 凍結機器指令聯結中介(MI instruction blockage) :
在系統機密等級 40 時 ,
系統限制存取一般機器指令聯結中介 (MI) , 包含建立系統區域
(Systen-domain) 物件 , 管理程序 ,
事件及存取資料庫。系統會偵測任何使用已被限制的機器指令聯結中介
(MI)來建立程式的企圖 , 且該程式不會被編譯。任何在系統機密等級
40, 50 企圖執行一已被限制的機器指令聯結中介 (MI)的程式都會導致失敗
; 在其他的系統機密等級 , 系統僅記錄於稽核日誌。
- 工作初始化的檢核 (Job Initiation validation) :
在系統機密等級 40, 50
企圖使用一個未被授權的工作環境設定檔來送出批次工作是無效的 ;
在其他的系統機密等級 , 系統仍然送出批次工作及記錄於稽核日誌。
- 防止程式被修改 (Modified program prevention) :
所有程式均有一組檢核位元 (check
bytes) , 系統利用檢核位元來決定程式是否可恢復至原始狀態 ,
若程式檢核位元不符合檢核規則 , 表示程式已被修改 ,
此時需要從新轉譯。
若轉譯成功 ,
系統記錄該程式不符合檢核規則 , 並恢復(restore) 該程式。
若轉譯失敗 , 且系統系統機密等級
在 30 或 30 以下 , 該程式被恢復(restored), 且記錄於稽核日誌。
若轉譯失敗 , 且系統系統機密等級
在 40 或 40 以上 , 該程式被恢復(restored), 且記錄於稽核日誌 ;
如果指定 ALWOBJDIF(*NONE) , 該程式的擁有者會是 QDFTOWN ,
而公共授權會被設定至 *EXCLUDE。如果指定 ALWOBJDIF(*ALL) ,該程式被恢復(restored)
,且記錄於稽核日誌 , 但授權與原來同樣。
- 系統機密等級 50 :
系統機密等級 40
加上操作系統的一致性機密限制 , 機密等級 50 再加上機密功能
(Security function) 要符合美國國防部 C2 規格的評估 ,
在導入系統機密等級 50 前 , 你應該知道一項重要特性 :
系統機密等級 50 會增加系統負載 --
增加多少視程式數目而定。建議你最好不要導入系統機密等級 50 ,
除非你的系統需要符合美國國防部 C2
規格或高度的機密防護。當在系統機密等級 50 執行程式時 ,
系統檢核執行 OS/400 API 所傳送的參數 ,
從訊習移除指標以防止訊習接收者使用這些指標跳過系統稽核 ,
防止控制區塊被修改 , QTEMP 程式館維護。
系統機密等級 10 與 20 的特殊權限
使用者等級 |
特殊權限 |
*SECOFR |
*ALLOBJ |
*SECADM |
*SAVSYS |
*JOBCTL |
*SERVICE |
*SPLCTL |
*AUDIT |
*IOSYSCFG |
*SECADM |
*ALLOBJ |
*SECADM |
*SAVSYS |
*JOBCTL(1) |
|
|
|
|
*PGMR |
*ALLOBJ |
|
*SAVSYS |
*JOBCTL(1) |
|
|
|
|
*QSYSOPR |
*ALLOBJ |
|
*SAVSYS |
*JOBCTL |
|
|
|
|
*USER |
*ALLOBJ |
|
*SAVSYS |
|
|
|
|
|
系統機密等級 30 , 40 與 50 的特殊權限
使用者等級 |
特殊權限 |
*SECOFR |
*ALLOBJ |
*SECADM |
*SAVSYS |
*JOBCTL |
*SERVICE |
*SPLCTL |
*AUDIT |
*IOSYSCFG |
*SECADM |
|
*SECADM |
*SAVSYS(1) |
*JOBCTL(1) |
|
|
|
|
*PGMR |
|
|
*SAVSYS(1) |
*JOBCTL(1) |
|
|
|
|
*QSYSOPR |
|
|
*SAVSYS |
*JOBCTL |
|
|
|
|
*USER |
無特殊權限 |
(1) 這些特殊權限於 V3R7 以前版本是預設權限
, 於 V3R7 以後版本則無此預設權限。
一般與機密相關系統值
一般與機密相關的系統值提供各種機密功能 , 例如藉由改變系統值
, 你能限制使用者輸入錯誤的 USER ID 或 Password 的次數 ,
若次數超過則系統自動將該使用者帳戶設定失效 (Disabled) ,
防止非使用者企圖藉由猜測密碼進入系統 , 並降低系統機密風險。
- QALWOBJRST
-- 是否允許載入機密相關敏感的物件 (System-state object , Licensed program ,
PTF , Adopt authority) 至系統
可能的值 : *ALL , *NONE , *ALWSYSST , *ALWPGMADP ;
預設值 : *ALL
- QALWUSRDMN
-- 指定放置 *USRSPC , *USRIDX , *USRQ 物件程式館
可能的值 : *ALL , *DIR , library_name ;
預設值 : *ALL
- QAUTOVRT
-- 指定自動建立虛擬工作站的數量 , 供 Telnet 及 Display Station Passthrough
使用
可能的值 : 0 至 9999 ;
預設值 : 0 表必須手動建立工作站供 Telnet 及 Display Station Passthrough
使用
- QCRTAUT
-- 指定預設的公共權限
可能的值 : *ALL , *CHANGE , *USE , *EXCLUDE ;
預設值 : *CHANGE (此系統值最好不要更改 , 若欲指定公共權限 ,
請於建立或修改各個程式館參數 CRTAUT 中指定 *SYSVAL , *CHANGE , *USE ,
EXCLUDE 或 authorization_list_name)
- QDSPSGNINF
-- 顯示使用者 Sign on 資訊 , 含何時進入系統及密碼輸入錯誤的次數 ,
此資訊對使用者無用處
可能的值 : 0 (off) , 1 (on) ;
預設值 : 0 (off)
- QINACTITV & QINACTMSGQ
-- 指定使用者進入系統後連續未使用工作站的時間 , 以分計算 ;
指定到該時間時應送訊息至那個訊息序列或暫時將該工作存在暫存區
, 待使用者再次使用該工作站時 , 再將暫存區資料回覆至先前狀態 ;
或直接結束該工作;
QINACTITV:可能的值 : *NONE , 5 至 300 分鐘 ;
預設值 : *NONE
QINACTMSGQ :可能的值 : *ENDJOB(結束) , *DSCJOB (暫時中斷)
, message_queue_name ;
預設值 : *ENDJOB
- QLMTDEVSSN
-- 限制使用者是否可同時使用多台工作站
可能的值 : 0 (off) , 1 (on) ;
預設值 : 0 (off)
- QLMTSECOFR
-- 是否限制具有特殊權限 *ALLOBJ 或 *SERVICE
的使用者僅能使用某些授權的工作站
可能的值 : 0 (off) , 1 (on) ;
預設值 : 1 (on)
- QMAXSIGN
-- 指定允許 Sign on 錯誤的次數
可能的值 : *NOMAX , 任何數字
預設值 : 3 (在V3R7中)
- QMAXSGNACN
-- 指定到達 Sign on 錯誤的次數時 , 系統應採取的措施
可能的值 : 1 (設定工作站失效) , 2 (設定使用者失效) , 3 (設定工作站及使用者失效)
預設值 : 3 (設定工作站及使用者失效) ; 當使用者失效時 , 執行
CHGUSRPRF USRPRF(user_name) STATUS(*ENABLE) 即可設定使用者生效
- QRETSVRSEC
-- 是否儲存非 AS/400 的密碼 , 如 SLIP
必須有一可解碼的密碼才能進入另一系統
可能的值 : 0 (off) , 1 (on) ;
預設值 : 0 (off)
- QRMTSIGN
-- 指定是否允從另一遠端 AS/400系統 Sign on 進入本地 AS/400 系統 ,
僅適用對 STRPASTHR 命令
可能的值 : *FRCSIGNON (強迫 Sign on) , *SAMEPRF (兩端系統有相同的 User
Profile 時 bypass Sign on screen) , *VERIFY , *REJECT (拒絕遠端通信請求) ,
program_name (控制 Sign on 權限的程式)
預設值 : *FRCSIGNON (強迫 Sign on)
- QSECURITY
可能的值 : 10 , 20 , 30 , 40 , 50
預設值 : 40 (V3R7以後)
- QUSEADPAUT
-- 定義能使用 ADOPTED AUTHORITY 的使用者 , 程式物件參數 USEADPAUT(*YES)
可能的值 : authorization_list , *NONE
預設值 : *NONE
一般與密碼相關系統值
當使用命令 CHGPWD (Change Password) 更改密碼時 , 系統會檢查 10
個相關系統值以決定更改之密碼是否符合新密碼的格式規則.
如果這些系統值之一有限制新密碼的格式 ,
而且使用者的新密碼違反了指訂的格式規則 , 系統會送一個錯誤訊息
, 此時使用者必須選擇另一個新密碼 .
記得密碼是秘密 , 要難猜 , 且須常常更改 .
然而難猜會轉為難記 , 當密碼難記時 ,
使用者傾向記下靠近工作站電腦附近的事物 , 以免忘記 .
這種情況是重大的安全問題. 這些系統值能強化系統的機密安全計劃.
- QPWDEXPITV
-- 定義密碼有效期間 , 當密碼過期時 , 使用者欲 Sign On 進入系統時 ,
系統會自動執行 CHGPWD 要求使用者更換密碼 ,
此時使用者必須更換新密碼才能進入系統 . 一般使用者設定 60 或 90
天 , 而有特殊權限者或存取機密資料者設定 30 或 45 天 .
可能的值 : *NOMAX(不限制) , 1 至 366 天
預設值 : *NOMAX
- QPWDRQDDIF
-- 定義新密碼是否必須與舊密碼不同
可能的值 :
0
: 不限制
1
: 使用者新密碼不能與前 32 個舊密碼相同
2
: 使用者新密碼不能與前 24 個舊密碼相同
3
: 使用者新密碼不能與前 18 個舊密碼相同
4
: 使用者新密碼不能與前 12 個舊密碼相同
5
: 使用者新密碼不能與前 10 個舊密碼相同
6
: 使用者新密碼不能與前 8 個舊密碼相同
7
: 使用者新密碼不能與前 6 個舊密碼相同
8
: 使用者新密碼不能與前 4 個舊密碼相同
預設值 : 0
- QPWDMINLEN
-- 定義密碼最小長度
可能的值 : 1 至 10
預設值 : 6 (V3R7)
- QPWDMAXLEN
-- 定義密碼最大長度
可能的值 : 1 至 10
預設值 : 8 (V3R7)
- QPWDRQDDGT
-- 定義密碼是否須含有數字 , 建議設定 1 (on) , 如此密碼較難猜.
可能的值 : 0 (off) , 1 (on)
預設值 : 0 (off)
- QPWDLMTAJC
-- 定義密碼是否可含有連續數字
可能的值 : 0 (off) , 1 (on)
預設值 : 0 (off)
- QPWDLMTCHR
-- 指定限制使用的密碼字元 , 最多可達 10 個字元
可能的值 : *NONE(不限制)
預設值 : *NONE
- QPWDLMTREP
-- 指定限制密碼可使用重複的字元數目 ,
可能的值 :
0
: 密碼字元可重複 , 如 aaabbb.
1
: 密碼字元不得重複 , 如 aaabbb 或 ababab 密碼字元已重複 ,
均不符合規則.
2
: 密碼字元不得連續重複 , 如 aaabbb 密碼字元已連續重複 ,
故不符合規則 ,
ababab
密碼字元並未連續重複 , 故符合規則.
預設值 : 0
- QPWDPOSDIF
-- 指定密碼字元位置與舊密碼字元位置是否須不同 , 如 NEW1 , NEW2 ,
NEW3
可能的值 : 0 (off) , 1 (on)
預設值 : 0 (off)
- QPWDVLDPGM
-- 指定密碼確認程式 ,
可寫一支程式控制使用者的密碼格式或自己訂定的檢查規則,增加密碼控制的彈性
可能的值 : *NONE , program-name
預設值 : *NONE