本節說明 Oracle Solaris 11.3 發行版本中的安全軟體問題。
從 Oracle Solaris 11.2 開始,已針對非 FIPS-140 OpenSSL 在 OpenSSL 內部加密實作中內嵌 T4 指令和 Intel 硬體加速。這項變更影響了 ssh 和 sshd 的效能,因為在 T4 系統及更新的版本上,這些服務預設會使用 OpenSSL pkcs11 引擎。
解決方法:若想獲得最佳效能,請停用 OpenSSL pkcs11 引擎。
執行下列步驟來停用 ssh 與 sshd 服務的 pkcs11 引擎:
將下列行加入 /etc/ssh/ssh_config 和 /etc/ssh/sshd_config 檔案中:
UseOpenSSLEngine no
重新啟動 ssh 服務。
# svcadm restart ssh
現在預設會停用更新使用者 Kerberos 認證和警告認證過期的 ktkt_warn 服務。螢幕上將顯示下列錯誤訊息:
kinit: no ktkt_warnd warning possible
解決方法:選擇下列其中一種方法來啟用服務:
如果系統已經設定 Kerberos,請使用 svcadm 命令來啟用服務。
# svcadm enable ktkt_warn
若尚未設定 Kerberos,請執行 kclient 公用程式來配置 Kerberos,這也將啟用 ktkt_warn 服務。
如需 kclient 公用程式的詳細資訊,請參閱 kclient(1M) 線上手冊。
核心層次加密架構常駐程式 kcfd 可能會在執行 Oracle Solaris 10 的標記區域中發生故障。使用者如果是 16 個以上 UNIX 群組的成員,則其操作應用程式呼叫 kcfd 常駐程式時會發生故障情形。
kcfd 常駐程式的失敗也可能會導致 svc:/system/cryptosvc:default 服務切換至維護模式。接下來,此模式就會造成 libpkcs11 程式庫停止運作。如需詳細資訊,請參閱 libpkcs11(3LIB) 線上手冊。
此故障也會導致應用程式或命令 (例如 ssh 和 Java) 無法使用 SPARC 硬體加速來進行加密作業,因而造成其他應用程式或命令 (例如 encrypt 和 decrypt) 徹底失敗。
解決方法:若要避免發生故障,請提高全域區域中每位使用者的群組數目上限,讓此上限超過使用者可以被指派的群組數目。舉例而言,假設 1 個使用者可以指派給 31 個群組,您會將下列該行加入全域區域的 /etc/system 檔案中:
set ngroups_max = 32
可以指派給 ngroups_max 的最大值為 1024。
如果您已手動修改 LDAP 組態檔案 /etc/openldap/ldap.conf 和 /etc/openldap/slapd.conf,則 TLS 密碼套件的安全設定值可能不正確。
解決方法:如果您是維護自有的 LDAP 組態檔案,請修改下列各項以維護系統的安全:
在 /etc/openldap/ldap.conf 檔案中,將 TLS_PROTOCOL_MIN 和 TLS_CIPHER_SUITE 值設定如下:
TLS_PROTOCOL_MIN 3.2 TLS_CIPHER_SUITE TLSv1.2:!aNULL:!eNULL:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA:DHE-RSA-AES256-SHA:DHE-DSS-AES256-SHA:DHE-RSA-DES-CBC3-SHA:DHE-DSS-DES-CBC3-SHA:AES128-SHA:AES256-SHA:DES-CBC3-SHA
在 /etc/openldap/slapd.conf 中,將 TLSProtocolMin 和 TLSCipherSuite 值設定如下:
TLSProtocolMin 770 TLSCipherSuite TLSv1.2:!aNULL:!eNULL:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA:DHE-RSA-AES256-SHA:DHE-DSS-AES256-SHA:DHE-RSA-DES-CBC3-SHA:DHE-DSS-DES-CBC3-SHA:AES128-SHA:AES256-SHA:DES-CBC3-SHA