Mac Security工具使用總結find-identity


Security是Mac系統中鑰匙串和安全模塊的命令行管理工具,(圖形化工具為Keychain Access.app)。鑰匙串(Keychain)實質上就是一個用於存放證書、密鑰、密碼等安全認證實體的倉庫,在計算機中保存為一個.keychain的文件
使用手冊:
命令行執行  man  security 
Security命令
語法如下:
security [-hilqv] [-p prompt] [command] [command options] [command args]
  • [subcommand] -h    幫助,無命令參數時查看所有命令,帶命令參數時顯示該命令的使用方法
  • -i    交互模式
  • -p <prompt>    進入交互模式,使用自定義提示符
  • -q      減少信息輸出
  • -v      增加信息輸出
  • -l      security退出前,調用/usr/bin/leaks -nocontext檢查執行的命令是否有泄漏
子命令列表如下
  • create-keychain    創建鑰匙串並加入搜索列表
  • list-keychains   顯示或設置鑰匙串搜索列表
  • default-keychain   顯示或設置默認的鑰匙串 
  • login-keychain     顯示或設置登錄鑰匙串
  • delete-keychain    刪除鑰匙串並從搜索列表移除
  • lock-keychain    鎖定制定的鑰匙串
  • unlock-keychain    解鎖制定的鑰匙串
  • set-keychain-settings    設置鑰匙串配置
  • set-keychain-password   設置鑰匙串密碼
  • dump-keychain    顯示一個或多個鑰匙串的內容
  • create-keypair     創建非對稱密鑰對
  • add-generic-password    向鑰匙串中添加通用密碼項
  • find-generic-password    查找通用密碼項
  • delete-generic-password   刪除通用密碼項
  • add-internet-password   向鑰匙串中添加網絡密碼項
  • find-internet-password   查找網絡密碼項
  • delete-internet-password   刪除網絡密碼項
  • add-certificates     向鑰匙串種添加證書
  • find-certificate    查找證書
  • delete-certificate   從鑰匙串種刪除證書
  • find-identity     查找認證實體(證書+私鑰)
  • set-identity-preference  
  • get-identity-preference
  • create-db
  • export
  • import
  • cms     編碼或解碼CMS信息(PKCS#7)
  • install-mds    安裝/重裝MDS 數據庫
  • add-trusted-cert    添加可信證書(只包含公鑰,無私鑰)
  • remove-trusted-cert  刪除可信證書
  • dump-trusted-setting   顯示信任配置
  • user-trust-settings-enable    顯示或管理用戶級別的信任配置
  • trust-settings-export   導出信任配置
  • trust-settings-import   導入信任配置
  • verify-cert    驗證證書
  • authorize    授權操作
  • authorizationdb   變更授權策略數據庫
  • execute-with-privileges   帶特權執行工具
  • leaks     在本進程中運行/usr/bin/leaks
  • error     顯示指定錯誤碼的描述信息
  • create-filevaultmaster-keychain   創建一個帶密鑰對的鑰匙串,用於FileVault恢復(FileVault是蘋果系統里的一項保密機制,會自動透明地對主目錄的內容進行實時加密和解密) 
創建鑰匙串
create-keychain [-P] [-p <password>]   [keychainFiles...]
  • -p <password>      設置新創建的鑰匙串的密碼
  • -P    調用SecurityAgent圖形化程序設置密碼
向鑰匙串中添加鑰匙(認證實體)
import <inputfile>  [-k <keychain>] [-t <type>]  [-f format] [-w]  [-P passphrase] [options...]
  • -k <keychain>    指定要導入項目到哪個鑰匙串中
  • -t  <type>     指定要導入的項目類型,可取值為: pub | priv | session | cert | agg
  • -f  <format>    指定導入項目的格式,可取值為:openssl | openssl1 | openssl2 | bsafe | raw | pkcs7 | pkcs8 | pkcs12 | netscape | pemseq
  • -w     標明包裝了私鑰,導入時要解開
  • -x     標明導入后,私鑰無法提取私鑰
  • -P  <password>    直接輸入導入項目密碼,默認會使用GUI輸入密碼
  • -a  指定鍵值對屬性,可以重復出現多次
  • -A    所有程序可以使用導入的項目 
  • -T  指定可以使用導入項目的程序,可以重復出現多次
 
security create-keychain -p 123456 certsOfAppBuild.keychain security unlock-keychain -p 123456 certsOfAppBuild.keychain 解鎖鑰匙串 security -k certsOfAppBuild.keychain import xxx.p12 -P 111111 -T /usr/bin/codesign
...sign operation...
security delete-keychain certsOfAppBuild.keychian
 
刪除證書
delete-certificate [-c name] [-Z hash] [-t]  [keychain...]
  • -c  <name>   按common name刪除證書
  • -Z  <hash>    按SHA1哈希值刪除證書
  • -t                  同時刪除該證書的用戶信任設置
  • 要刪除的證書必須能夠唯一確定,如果未指定鑰匙串則是用默認搜索列表中的所有鑰匙串
 
 
查找認證實體(證書+私鑰)
find-identity [-p policy] [-s string] [-v] [keychain...]
  • -p    按指定用途策略查找,可重復出現以指定多項,可用值有: basic, ssl-client, ssl-server, smime, eap, ipsec, ichat, codesigning, sys-default, sys-kerberos-kdc ,macappstore, appleID 
  • -s   為-p指定的策略提供參數
  • -v  只顯示有效的,默認顯示所有。
  • 如果未指定keychain,則使用默認的搜索列表
security find -identity -v -p codesigning #顯示默認搜索列表中有效地認證實體
問題:
security find-identity 0 valid identities found
不能用root運行!
codesign使用keychain中的Identity(證書+私鑰)進行簽名
指定Identity的選項為  -s  <identity>
  • 如果identiy正好是40位16進制數,則按證書的SHA-1指紋查找
  • 如果identity為單個橫線 "-",則執行ad-hoc簽名,不會用到identity。
  • 首先查找keychain identity preference的full name
  • 在keychain中查找Subject的common name,找到多個則失敗。大小寫敏感,完整匹配比部分匹配更好。多個keychain中包含同一個證書也是可以的。
 關於codesign的更多用法可以查看幫助文檔(命令行執行: man codesign )。
示例
codesign -s 'iPhone Developer: Thomas Kollbach (7TPNXN7G6K)' Example.app codesign -s 9c8b212f6a2c2382847b104e387a01b246d4ce42 Example.app


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM