Synopsis
security [-hilqv] [-p prompt] [command] [command_options] [command_args]
Description
A simple command line interface which lets you administer keychains, manipulate keys and certificates, and do just about anything the Security framework is capable of from the command line.
By default security will execute the command supplied and report if anything went wrong.
If the -i or -p options are provided, security will enter interactive mode and allow the user to enter multiple commands on stdin. When EOF is read from stdin security will exit.
Here is a complete list of the options available:
-h: If no arguments are specified, show a list of all commands. If arguments are provided, show usage for each the specified commands. This option is essentially the same as the help command.-i: Run security in interactive mode. A prompt (security> by default) will be displayed and the user will be able to type commands on stdin until an EOF is encountered.-l: Before security exits, run /usr/bin/leaks -nocontext on itself to see if the command(s) you executed had any leaks.
-p prompt This option implies the -i option but changes the default prompt to the argument specified instead.
-q: Will make security less verbose.-v: Will make security more verbose.
Security Command Summary
security provides a rich variety of commands (command in the SYNOPSIS), each of which often has a wealth of options, to allow access to the broad functionality provided by the Security framework. However, you don't have to master every detail for security to be useful to you.
Here are brief descriptions of all the security commands:
help Show all commands, or show usage for a command. list-keychains Display or manipulate the keychain search list. default-keychain Display or set the default keychain. login-keychain Display or set the login keychain. create-keychain Create keychains. delete-keychain Delete keychains and remove them from the search list. lock-keychain Lock the specified keychain. unlock-keychain Unlock the specified keychain. set-keychain-settings Set settings for a keychain. set-keychain-password Set password for a keychain. show-keychain-info Show the settings for keychain. dump-keychain Dump the contents of one or more keychains. create-keypair Create an asymmetric key pair. add-generic-password Add a generic password item. add-internet-password Add an internet password item. add-certificates Add certificates to a keychain. find-generic-password Find a generic password item. delete-generic-password Delete a generic password item. set-generic-password-partition-list Set the partition list of a generic password item. find-internet-password Find an internet password item. delete-internet-password Delete an internet password item. set-internet-password-partition-list Set the partition list of a internet password item. find-key Find keys in the keychain set-key-partition-list Set the partition list of a key. find-certificate Find a certificate item. find-identity Find an identity (certificate + private key). delete-certificate Delete a certificate from a keychain. delete-identity Delete a certificate and its private key from a keychain. set-identity-preference Set the preferred identity to use for a service. get-identity-preference Get the preferred identity to use for a service. create-db Create a db using the DL. export Export items from a keychain. import Import items into a keychain. cms Encode or decode CMS messages. install-mds Install (or re-install) the MDS database. add-trusted-cert Add trusted certificate(s). remove-trusted-cert Remove trusted certificate(s). dump-trust-settings Display contents of trust settings. user-trust-settings-enable Display or manipulate user-level trust settings. trust-settings-export Export trust settings. trust-settings-import Import trust settings. verify-cert Verify certificate(s). authorize Perform authorization operations. authorizationdb Make changes to the authorization policy database. execute-with-privileges Execute tool with privileges. leaks Run /usr/bin/leaks on this process. smartcards Enable, disable or list disabled smartcard tokens. list-smartcards Display available smartcards. export-smartcard Export/display items from a smartcard. error Display a descriptive message for the given error code(s).
Common Command Options
This section describes the command_options that are available across most security commands.
-h: Show a usage message for the specified command. This option is essentially the same as the help command.
Security Commands
Here (finally) are details on all the security commands and the options each accepts.
help Show all commands, or show usage for a command.
list-keychains [-h] [-d user|system|common|dynamic] [-s [keychain...]] Display or manipulate the keychain search list.
-d user|system|common|dynamic Use the specified preference domain.
-s: Set the search list to the specified keychains.
default-keychain [-h] [-d user|system|common|dynamic] [-s [keychain]] Display or set the default keychain.
-d user|system|common|dynamic Use the specified preference domain.
-s: Set the default keychain to the specified keychain. Unset it if no keychain is specified.
login-keychain [-h] [-d user|system|common|dynamic] [-s [keychain]] Display or set the login keychain.
-d user|system|common|dynamic Use the specified preference domain.
-s: Set the login keychain to the specified keychain. Unset it if no keychain is specified.
create-keychain [-hP] [-p password] [keychain...] Create keychains.
-P: Prompt the user for a password using the SecurityAgent.-p password: Use password as the password for the keychains being created.
If neither -P or -p password are specified, the user is prompted for a password on the command line. Use of the -p option is insecure.
delete-keychain [-h] [keychain...] Delete keychains and remove them from the search list.
lock-keychain [-h] [-a|keychain] Lock keychain, or the default keychain if none is specified. If the -a option is specified, all keychains are locked.
unlock-keychain [-hu] [-p password] [keychain] Unlock keychain, or the default keychain if none is specified.
set-keychain-settings [-hlu] [-t timeout] [keychain] Set settings for keychain, or the default keychain if none is specified.
-l: Lock keychain when the system sleeps.-u: Lock keychain after timeout interval.-t timeout: Specify timeout interval in seconds (omitting this option specifies "no timeout").
set-keychain-password [-h] [-o oldPassword] [-p newPassword] [keychain] Set password for keychain, or the default keychain if none is specified.
-o oldPassword: Old keychain password (if not provided, will prompt)-p newPassword: New keychain password (if not provided, will prompt)
show-keychain-info [keychain] Show the settings for keychain.
dump-keychain [-adhir] [keychain...] Dump the contents of one or more keychains.
-a: Dump access control list of items-d: Dump (decrypted) data of items-i: Interactive access control list editing mode-r: Dump raw (encrypted) data of items
create-keypair [-h] [-a alg] [-s size] [-f date] [-t date] [-d days] [-k keychain] [-A|-T appPath] [description] Create an asymmetric key pair.
-a alg: Use alg as the algorithm, can be rsa, dh, dsa or fee (default rsa)-s size: Specify the keysize in bits (default 512)-f date: Make a key valid from the specified date (ex: "13/11/10 3:30pm")-t date: Make a key valid to the specified date-d days: Make a key valid for the number of days specified from today-k keychain: Use the specified keychain rather than the default-A: Allow any application to access this key without warning (insecure, not recommended!)-T appPath: Specify an application which may access this key (multiple -T options are allowed)
add-generic-password [-h] [-a account] [-s service] [-w password] [options...] [-A|-T appPath] [keychain] Add a generic password item.
-a account: Specify account name (required)-c creator: Specify item creator (optional four-character code)-C type: Specify item type (optional four-character code)-D kind: Specify kind (default is "application password")-G value: Specify generic attribute value (optional)-j comment: Specify comment string (optional)-l label: Specify label (if omitted, service name is used as default label)-s service: Specify service name (required)-p password: Specify password to be added (legacy option, equivalent to -w)-w password: Specify password to be added. Put at end of command to be prompted (recommended)-A: Allow any application to access this item without warning (insecure, not recommended!)-T appPath: Specify an application which may access this item (multiple -T options are allowed)-U: Update item if it already exists (if omitted, the item cannot already exist)-X password: Specify password data to be added as a hexadecimal string
By default, the application which creates an item is trusted to access its data without warning. You can remove this default access by explicitly specifying an empty app pathname: -T "". If no keychain is specified, the password is added to the default keychain.
add-internet-password [-h] [-a account] [-s server] [-w password] [options...] [-A|-T appPath] [keychain] Add an internet password item.
-a account: Specify account name (required)-c creator: Specify item creator (optional four-character code)-C type: Specify item type (optional four-character code)-d domain: Specify security domain string (optional)-D kind: Specify kind (default is "application password")-j comment: Specify comment string (optional)-l label: Specify label (if omitted, service name is used as default label)-p path: Specify path string (optional)-P port: Specify port number (optional)-r protocol: Specify protocol (optional four-character SecProtocolType, e.g. "http", "ftp ")-s server: Specify server name (required) -t authenticationType Specify authentication type (as a four-character SecAuthenticationType, default is "dflt")-w password: Specify password to be added. Put at end of command to be prompted (recommended)-A: Allow any application to access this item without warning (insecure, not recommended!)-T appPath: Specify an application which may access this item (multiple -T options are allowed)-U: Update item if it already exists (if omitted, the item cannot already exist)-X password: Specify password data to be added as a hexadecimal string
By default, the application which creates an item is trusted to access its data without warning. You can remove this default access by explicitly specifying an empty app pathname: -T "". If no keychain is specified, the password is added to the default keychain.
add-certificates [-h] [-k keychain] file... Add certficates contained in the specified files to the default keychain. The files must contain one DER encoded X509 certificate each.
-k keychain: Use keychain rather than the default keychain.
find-generic-password [-h] [-a account] [-s service] [options...] [-g] [keychain...] Find a generic password item.
-a account: Match account string-c creator: Match creator (four-character code)-C type: Match type (four-character code)-D kind: Match kind string-G value: Match value string (generic attribute)-j comment: Match comment string-l label: Match label string-s service: Match service string-g: Display the password for the item found-w: Display the password(only) for the item found
delete-generic-password [-h] [-a account] [-s service] [options...] [keychain...] Delete a generic password item.
-a account: Match account string-c creator: Match creator (four-character code)-C type: Match type (four-character code)-D kind: Match kind string-G value: Match value string (generic attribute)-j comment: Match comment string-l label: Match label string-s service: Match service string
delete-internet-password [-h] [-a account] [-s server] [options...] [keychain...] Delete an internet password item.
-a account: Match account string-c creator: Match creator (four-character code)-C type: Match type (four-character code) -d securityDomain Match securityDomain string-D kind: Match kind string-j comment: Match comment string-l label: Match label string-p path: Match path string-P port: Match port number-r protocol: Match protocol (four-character code)-s server: Match server string -t authenticationType Match authenticationType (four-character code)
find-internet-password [-h] [-a account] [-s server] [options...] [-g] [keychain...] Find an internet password item.
-a account: Match account string-c creator: Match creator (four-character code)-C type: Match type (four-character code) -d securityDomain Match securityDomain string-D kind: Match kind string-j comment: Match comment string-l label: Match label string-p path: Match path string-P port: Match port number-r protocol: Match protocol (four-character code)-s server: Match server string -t authenticationType Match authenticationType (four-character code)-g: Display the password for the item found-w: Display the password(only) for the item found
find-key [options...] [keychain...] Search the keychain for keys.
-a application-label Match "application label" string
-c creator: Match creator (four-character code)-d: Match keys that can decrypt-D description: Match "description" string-e: Match keys that can encrypt-j comment: Match comment string-l label: Match label string-r: Match keys that can derive-s: Match keys that can sign-t type: Type of key to find: one of "symmetric", "public", or "private"-u: Match keys that can unwrap-v: Match keys that can verify-w: Match keys that can wrap
set-generic-password-partition-list [-a account] [-s service] [-S partition-list] [-k password] [options...] [keychain] Sets the "partition list" for a generic password. The "partition list" is an extra parameter in the ACL which limits access to the item based on an application's code signature. You must present the keychain's password to change a partition list.
-S partition-list Comma-separated partition list. See output of "security dump-keychain" for examples.
-k password: Password for keychain (deprecated)-a account: Match account string-c creator: Match creator (four-character code)-C type: Match type (four-character code)-D kind: Match kind string-G value: Match value string (generic attribute)-j comment: Match comment string-l label: Match label string-s service: Match service string
set-internet-password-partition-list [-a account] [-s server] [-S partition-list] [-k password] [options...] [keychain] Sets the "partition list" for an internet password. The "partition list" is an extra parameter in the ACL which limits access to the item based on an application's code signature. You must present the keychain's password to change a partition list.
-S partition-list Comma-separated partition list. See output of "security dump-keychain" for examples.
-k password: Password for keychain (deprecated)-a account: Match account string-c creator: Match creator (four-character code)-C type: Match type (four-character code) -d securityDomain Match securityDomain string-D kind: Match kind string-j comment: Match comment string-l label: Match label string-p path: Match path string-P port: Match port number-r protocol: Match protocol (four-character code)-s server: Match server string -t authenticationType Match authenticationType (four-character code)
set-key-partition-list [-S partition-list] [-k password] [options...] [keychain] Sets the "partition list" for a key. The "partition list" is an extra parameter in the ACL which limits access to the key based on an application's code signature. You must present the keychain's password to change a partition list. If you'd like to run /usr/bin/codesign with the key, "apple:" must be an element of the partition list.
-S partition-list Comma-separated partition list. See output of "security dump-keychain" for examples.
-k password: Password for keychain (deprecated) -a application-label Match "application label" string-c creator: Match creator (four-character code)-d: Match keys that can decrypt-D description: Match "description" string-e: Match keys that can encrypt-j comment: Match comment string-l label: Match label string-r: Match keys that can derive-s: Match keys that can sign-t type: Type of key to find: one of "symmetric", "public", or "private"-u: Match keys that can unwrap-v: Match keys that can verify-w: Match keys that can wrap
find-certificate [-h] [-a] [-c name] [-e emailAddress] [-m] [-p] [-Z] [keychain...] Find a certificate item. If no keychain arguments are provided, the default search list is used.
Options:
-a: Find all matching certificates, not just the first one-c name: Match on name when searching (optional) -e emailAddress Match on emailAddress when searching (optional)-m: Show the email addresses in the certificate-p: Output certificate in pem format. Default is to dump the attributes and keychain the cert is in.-Z: Print SHA-256 (and SHA-1) hash of the certificate
Examples
security> find-certificate -a -p > allcerts.pem Exports all certificates from all keychains into a pem file called allcerts.pem.
security> find-certificate -a -e me@foo.com -p > certs.pem Exports all certificates from all keychains with the email address me@foo.com into a pem file called certs.pem.
security> find-certificate -a -c MyName -Z login.keychain | grep ^SHA-256 Print the SHA-256 hash of every certificate in 'login.keychain' whose common name includes 'MyName'
find-identity [-h] [-p policy] [-s string] [-v] [keychain...] Find an identity (certificate + private key) satisfying a given policy. If no policy arguments are provided, the X.509 basic policy is assumed. If no keychain arguments are provided, the default search list is used.
Options:
-p policy: Specify policy to evaluate (multiple -p options are allowed). Supported policies: basic, ssl-client, ssl-server, smime, eap, ipsec, ichat, codesigning, sys-default, sys-kerberos-kdc-s string: Specify optional policy-specific string (e.g. a DNS hostname for SSL, or RFC822 email address for S/MIME)-v: Show valid identities only (default is to show all identities)
Examples
security> find-identity -v -p ssl-client Display valid identities that can be used for SSL client authentication
security> find-identity -p ssl-server -s www.domain.com Display identities for a SSL server running on the host 'www.domain.com'
security> find-identity -p smime -s user@domain.com Display identities that can be used to sign a message from 'user@domain.com'
delete-certificate [-h] [-c name] [-Z hash] [-t] [keychain...] Delete a certificate from a keychain. If no keychain arguments are provided, the default search list is used.
-c name: Specify certificate to delete by its common name-Z hash: Specify certificate to delete by its SHA-256 (or SHA-1) hash-t: Also delete user trust settings for this certificate Silinecek sertifika, konusunun ortak adında (common name) bulunan bir dizeyle veya SHA-256 (ya da SHA-1) karmasıyla (hash) benzersiz şekilde belirtilmelidir.
delete-identity [-h] [-c name] [-Z hash] [-t] [keychain...] Bir anahtarlıktan (keychain) bir sertifikayı ve onun özel anahtarını siler. Herhangi bir anahtarlık argümanı sağlanmazsa varsayılan arama listesi kullanılır.
-c name: Silinecek sertifikayı ortak adına (common name) göre belirtir-Z hash: Silinecek sertifikayı SHA-256 (veya SHA-1) karmasına göre belirtir-t: Bu kimlik sertifikası için kullanıcı güven ayarlarını da siler
Silinecek kimlik, konusunun ortak adında (common name) bulunan bir dizeyle veya SHA-256 (ya da SHA-1) karmasıyla benzersiz şekilde belirtilmelidir.
set-identity-preference [-h] [-n] [-c identity] [-s service] [-u keyUsage] [-Z hash] [keychain...] Bir hizmet için kullanılacak tercih edilen kimliği ayarlar.
-n: Hiçbir kimlik belirtmez (verilen hizmet için mevcut tercihi temizler)-c identity: Kimliği sertifikanın ortak adına göre belirtir-s service: Bu kimliğin tercih edileceği hizmeti belirtir (bir URL, RFC822 e-posta adresi, DNS sunucusu veya başka bir ad olabilir)-u keyUsage: Anahtar kullanımını belirtir (isteğe bağlı)-Z hash: Kimliği sertifikanın SHA-256 (veya SHA-1) karmasına göre belirtir (isteğe bağlı)
Kimlik, belirtilen anahtarlıklar içinde ortak adı verilen kimlik dizesini içeren bir sertifika aranarak bulunur. Arama yapılacak hiçbir anahtarlık belirtilmezse varsayılan arama listesi kullanılır. Bireysel anahtar kullanımları için farklı kimlik tercihleri ayarlanabilir. Aynı dizeyi içeren iki kimliği, ada ek olarak veya ad yerine sertifikanın SHA-256 (veya SHA-1) karmasını sağlayarak ayırt edebilirsiniz.
KISMI YOLLAR VE JOKER KARAKTERLER
10.5.4'ten önce, SSL/TLS istemci kimlik doğrulaması için kimlik tercihleri yalnızca URL bazında ayarlanabiliyordu. Tercihin geçerli olabilmesi için ziyaret edilen URL'nin hizmet adıyla tam olarak eşleşmesi gerekiyordu.
10.5.4 sürümünde, aynı sunucudaki daha özel yollarla eşleşmesi için kısmi yol URL'sine sahip bir hizmet adı kullanarak kimlik tercihlerini sunucu bazında belirtmek mümkün hale geldi. Örneğin, "https://www.apache-ssl.org/" için bir kimlik tercihi mevcutsa, bu tercih "https://www.apache-ssl.org/cgi/cert-export" vb. için geçerli olacaktır. Kısmi yol URL'lerinin eğik çizgi karakteri (/) ile bitmesi gerektiğini unutmayın.
10.6'dan başlayarak, hizmet adının en solundaki bileşen olarak '' joker karakterini kullanarak etki alanı (domain) bazında kimlik tercihleri belirtmek mümkündür. SSL joker karakterlerinin aksine, bir kimlik tercihi joker karakteri birden fazla alt etki alanıyla (subdomain) eşleşebilir. Örneğin, ".army.mil" adı için bir kimlik tercihi "server1.subdomain1.army.mil" veya "server2.subdomain2.army.mil" ile eşleşecektir. Benzer şekilde, "*.mil" tercihi hem "server.army.mil" hem de "server.navy.mil" ile eşleşecektir.
ANAHTAR KULLANIM KODLARI
0 - tercih olası tüm anahtar kullanımları için geçerlidir (varsayılan) 1 - yalnızca şifreleme (encryption) 2 - yalnızca şifre çözme (decryption) 4 - yalnızca imzalama (signing) 8 - yalnızca imza doğrulama (signature verification) 16 - yalnızca mesaj kurtarma ile imzalama (signing with message recovery) 32 - yalnızca mesaj kurtarma ile imza doğrulama (signature verification with message recovery) 64 - yalnızca anahtar sarma (key wrapping) 128 - yalnızca anahtar açma (key unwrapping) 256 - yalnızca anahtar türetme (key derivation)
Birden fazla kullanım belirtmek için değerleri toplayın.
get-identity-preference [-h] [-s service] [-u keyUsage] [-p] [-c] [-Z] Bir hizmet için kullanılacak tercih edilen kimliği alır.
-s service: Hizmeti belirtir (bir URL, RFC822 e-posta adresi, DNS sunucusu veya başka bir ad olabilir)-u keyUsage: Anahtar kullanımını belirtir (isteğe bağlı)-p: Kimlik sertifikasını PEM biçiminde çıktı olarak verir-c: Tercih edilen kimlik sertifikasının ortak adını (common name) yazdırır-Z: Tercih edilen kimlik sertifikasının SHA-256 (veya SHA-1) karmasını yazdırır
create-db [-aho0] [-g dl|cspdl] [-m mode] [name] DL kullanarak bir veritabanı oluşturur. İsim belirtilmezse security kullanıcıdan bir isim yazmasını isteyecektir.
Seçenekler:
-a: Otomatik kaydetmeyi (autocommit) kapatır-g dl|cspdl: AppleDL (varsayılan) veya AppleCspDL kullanır-m mode: Dosya izinlerini mode değerine ayarlar.-o: openparams argümanını kullanmaya zorlar-0: Sürüm 0 openparams kullanmaya zorlar
Örnekler
security> create-db -m 0644 test.db
security> create-db -g cspdl -a test2.db
export [-k keychain] [-t type] [-f format] [-w] [-p] [-P passphrase] [-o outfile] Bir anahtarlıktan bir veya daha fazla öğeyi birkaç harici gösterimden birine aktarır (export). Anahtarlık belirtilmezse öğeler kullanıcının varsayılan anahtarlığından aktarılacaktır.
Seçenekler:
-k keychain: Öğelerin aktarılacağı anahtarlığı belirtir.-t type: Aktarılacak öğelerin türünü belirtir. Olası türler certs, allKeys, pubKeys, privKeys, identities ve all şeklindedir. Varsayılan değer all'dur. Bir kimlik (identity), hem bir sertifikadan hem de ilgili özel anahtardan oluşur.-f format: Aktarılan verilerin biçimini belirtir. Olası biçimler openssl, bsafe, pkcs7, pkcs8, pkcs12, x509, openssh1, openssh2 ve pemseq şeklindedir. Birden fazla öğe aktarılıyorsa varsayılan pemseq'tir. Bir anahtar aktarılıyorsa varsayılan openssl'dir. Bir sertifika aktarılıyorsa varsayılan x509'dur.-w: Özel anahtarların dışa aktarılırken sarılacağını (wrapped) belirtir.-p: Çıktı verilerine PEM zırhı (PEM armour) uygulanacağını belirtir.-P passphrase: Sarma parolasını doğrudan belirtir. Varsayılan davranış, grafik arayüz (GUI) aracılığıyla güvenli bir parola elde etmektir.-o outfile: Çıktı verilerini outfile dosyasına yazar. Varsayılan, verileri stdout'a yazmaktır.
Örnekler
security> export -k login.keychain -t certs -o /tmp/certs.pem
security> export -k newcert.keychain -t identities -f pkcs12 -o /tmp/mycerts.p12
import inputfile [-k keychain] [-t type] [-f format] [-w] [-P passphrase] [options...] inputfile dosyasından bir veya daha fazla öğeyi bir anahtarlığa aktarır (import). Anahtarlık belirtilmezse öğeler kullanıcının varsayılan anahtarlığına aktarılacaktır.
Seçenekler:
-k keychain: Öğelerin aktarılacağı anahtarlığı belirtir.-t type: Aktarılacak öğelerin türünü belirtir. Olası türler cert, pub, priv, session, cert ve agg şeklindedir. Pub, priv ve session anahtarları ifade eder; agg ise toplu türlerden biridir (pkcs12 ve PEM dizisi). Komut genellikle dosya adı ve/veya öğe biçimine (item_format) dayanarak bir öğenin hangi item_type içerdiğini anlayabilir.-f format: Dışa aktarılan verilerin biçimini belirtir. Olası biçimler openssl, bsafe, raw, pkcs7, pkcs8, pkcs12, x509, openssh1, openssh2 ve pemseq şeklindedir. Komut genellikle dosya adı ve/veya öğe türüne dayanarak bir öğenin hangi biçimde olduğunu anlayabilir.-w: Özel anahtarların sarılı olduğunu ve içe aktarılırken açılması gerektiğini belirtir.-x: Özel anahtarların içe aktarıldıktan sonra dışa ayıklanamaz (non-extractable) olacağını belirtir.-P passphrase: Açma parolasını doğrudan belirtir. Varsayılan davranış, grafik arayüz (GUI) aracılığıyla güvenli bir parola elde etmektir.- -a attrName attrValue İsteğe bağlı genişletilmiş öznitelik adını ve değerini belirtir. Birden fazla kez kullanılabilir. Bu yalnızca anahtarlar içe aktarılırken geçerlidir.
-A: Herhangi bir uygulamanın uyarı olmaksızın içe aktarılan anahtara erişmesine izin verir (güvensizdir, önerilmez!)-T appPath: İçe aktarılan anahtara erişebilecek bir uygulama belirtir (birden fazla -T seçeneğine izin verilir)
Örnekler
security> import /tmp/certs.pem -k
security> import /tmp/mycerts.p12 -t agg -k newcert.keychain
security> import /tmp/mycerts.p12 -f pkcs12 -k newcert.keychain
cms [-C|-D|-E|-S] [options...] CMS mesajlarını kodlar veya kodunu çözer.
-C: Bir CMS şifrelenmiş mesajı oluşturur-D: Bir CMS mesajının kodunu çözer-E: Bir CMS zarflanmış (enveloped) mesajı oluşturur-S: Bir CMS imzalanmış mesajı oluşturur
Kod çözme seçenekleri:
-c content: Bu ayrılmış (detached) içerik dosyasını kullanır-h level: CMS mesajı hakkında bilgi içeren e-posta üstbilgileri oluşturur (çıktı düzeyi >= 0)-n: İçeriğin çıktısını bastırır
Kodlama seçenekleri:
-r id,...: Virgülle ayrılmış alıcı listesi için zarf oluşturur; buradaki id bir sertifika takma adı (nickname) veya e-posta adresi olabilir-G: Bir imza zamanı özniteliği içerir-H hash: hash = MD2|MD4|MD5|SHA1|SHA256|SHA384|SHA512 (varsayılan: SHA1)-N nick: İmzalama için "nick" adlı sertifikayı kullanır-P: Bir SMIMECapabilities özniteliği içerir-T: CMS mesajına içerik dahil etmez-Y nick: Sertifika ile bir EncryptionKeyPreference özniteliği içerir (atlamak için "NONE" kullanın)-Z hash: Konu anahtar kimliğine (subject key ID) göre bir sertifika bulur
Ortak seçenekler:
-e envelope: Zarf dosyasını belirtir (-D veya -E ile geçerlidir)-k keychain: Kullanılacak anahtarlığı belirtir-i infile: Veri kaynağı olarak infile dosyasını kullanır (varsayılan: stdin)-o outfile: Veri hedefi olarak outfile dosyasını kullanır (varsayılan: stdout)-p password: Anahtar veritabanı parolası olarak password değerini kullanır (varsayılan: sorma ekranı)-s: Verileri CMS'ye her seferinde tek bir bayt olarak iletir-u certusage: Sertifika kullanım türünü ayarlar (varsayılan: certUsageEmailSigner)-v: Hata ayıklama bilgilerini yazdırır
Sertifika kullanım kodları: 0 - certUsageSSLClient 1 - certUsageSSLServer 2 - certUsageSSLServerWithStepUp 3 - certUsageSSLCA 4 - certUsageEmailSigner 5 - certUsageEmailRecipient 6 - certUsageObjectSigner 7 - certUsageUserCertImport 8 - certUsageVerifyCA 9 - certUsageProtectedObjectSigner 10 - certUsageStatusResponder 11 - certUsageAnyCA
install-mds Module Directory Services (MDS) veritabanını kurar (veya yeniden kurar). Bu, normalde kullanıcılar tarafından kullanılmayan bir sistem aracıdır. Seçeneği yoktur.
add-trusted-cert [-d] [-r resultType] [-p policy] [-a appPath] [-s policyString] [-e allowedError] [-u keyUsage] [-k keychain] [-i settingsFileIn] [-o settingsFileOut] [certFile] certFile dosyasındaki sertifikayı (DER veya PEM biçiminde) kullanıcı bazlı veya yerel Yönetici Güven Ayarlarına (Admin Trust Settings) ekler. Kullanıcı bazlı Güven Ayarlarını değiştirirken, bir kimlik doğrulama iletişim kutusu aracılığıyla kullanıcı kimlik doğrulaması gerekir. Yönetici Güven Ayarlarını değiştirirken, sürecin root olarak çalışıyor olması gerekir veya yönetici kimlik doğrulaması istenir.
Seçenekler:
-d: Yönetici sertifika deposuna ekler; varsayılan kullanıcıdır.-r resultType: resultType = trustRoot|trustAsRoot|deny|unspecified; varsayılan trustRoot'tur.-p policy: Politika kısıtlamasını belirtir (ssl, smime, codeSign, IPSec, basic, swUpdate, pkgSign, eap, macappstore, appleID, timestamping).-a appPath: Uygulama kısıtlamasını belirtir.- -s policyString Politikaya özel dizeyi belirtir.
- -e allowedError İzin verilen hatayı belirtir (sayısal bir değer veya şunlardan biri: certExpired, hostnameMismatch)
-u keyUsage: Anahtar kullanımını (bir tamsayı) belirtir.-k keychain: Sertifikanın ekleneceği anahtarlığı belirtir.- -i settingsFileIn Girdi güven ayarları dosyası; varsayılan kullanıcı alanıdır (user domain).
- -o settingsFileOut Çıktı güven ayarları dosyası; varsayılan kullanıcı alanıdır (user domain).
Anahtar kullanım kodları: -1 - Any (Herhangi Biri) 1 - Sign (İmzala) 2 - Encrypt/Decrypt Data (Veriyi Şifrele/Şifresini Çöz) 4 - Encrypt/Decrypt Key (Anahtarı Şifrele/Şifresini Çöz) 8 - Sign certificate (Sertifika imzala) 16 - Sign revocation (Geri almayı imzala) 32 - Key exchange (Anahtar değişimi) Birden fazla kullanım belirtmek için değerleri toplayın (-1 - Any hariç).
Örnekler security> add-trusted-cert /tmp/cert.der security> add-trusted-cert -d .tmp/cert.der
remove-trusted-cert [-d] certFile certFile içindeki sertifikayı (DER veya PEM biçiminde) kullanıcı bazlı veya yerel Yönetici Güven Ayarlarından kaldırır. Kullanıcı bazlı Güven Ayarlarını değiştirirken, bir kimlik doğrulama iletişim kutusu aracılığıyla kullanıcı kimlik doğrulaması gerekir. Yönetici Güven Ayarlarını değiştirirken, sürecin root olarak çalışıyor olması gerekir veya yönetici kimlik doğrulaması istenir.
Seçenekler:
-d: Yönetici sertifika deposundan kaldırır; varsayılan kullanıcıdır.
dump-trust-settings [-s] [-d] Güven Ayarlarını görüntüler.
Seçenekler:
-s: Güvenilen sistem sertifikalarını görüntüler; varsayılan kullanıcıdır.-d: Güvenilen yönetici sertifikalarını görüntüler; varsayılan kullanıcıdır.
user-trust-settings-enable [-d] [-e] Kullanıcı düzeyindeki Güven Ayarlarını görüntüler veya yönetir. Argümansız kullanıldığında, kullanıcı düzeyindeki Güven Ayarlarının etkinleştirilme durumunu gösterir. Aksi takdirde kullanıcı düzeyindeki Güven Ayarlarını etkinleştirir veya devre dışı bırakır.
Seçenekler:
-d: Kullanıcı düzeyindeki Güven Ayarlarını devre dışı bırakır.-e: Kullanıcı düzeyindeki Güven Ayarlarını etkinleştirir.
trust-settings-export [-s] [-d] settings_file Güven Ayarlarını belirtilen dosyaya aktarır.
Seçenekler:
-s: Sistem Güven Ayarlarını aktarır; varsayılan kullanıcıdır.-d: Yönetici Güven Ayarlarını aktarır; varsayılan kullanıcıdır.
trust-settings-import [-d] settings_file Güven Ayarlarını belirtilen dosyadan içe aktarır. Kullanıcı bazlı Güven Ayarlarını değiştirirken, bir kimlik doğrulama iletişim kutusu aracılığıyla kullanıcı kimlik doğrulaması gerekir. Yönetici Güven Ayarlarını değiştirirken, sürecin root olarak çalışıyor olması gerekir veya yönetici kimlik doğrulaması istenir.
Seçenekler:
-d: Yönetici Güven Ayarlarını içe aktarır; varsayılan kullanıcıdır.
verify-cert [options...] [url] Bir veya daha fazla sertifikayı doğrular. Doğrudan bir URL argümanı sağlanırsa, bir TLS bağlantısı denenir ve o sunucu tarafından sunulan sertifika standart SSL sunucu politikasına göre değerlendirilir; bu durumda diğer sertifikalar veya politika seçenekleri yoksayılır.
Seçenekler:
-c certFile: Doğrulanacak sertifika (DER veya PEM biçiminde). Birden fazla kez belirtilebilir; yaprak (leaf) sertifikanın ilk önce belirtilmesi gerekir.- -r rootCertFile Kök (root) sertifikası (DER veya PEM biçiminde). Birden fazla kez belirtilebilir. Belirtilmezse sistem çıpa (anchor) sertifikaları kullanılır. Bir kök sertifikası belirtilir ve sıfır (kök olmayan) sertifika belirtilirse, kök sertifikası kendisine karşı doğrulanır.
-p policy: Doğrulama politikasını belirtir (ssl, smime, codeSign, IPSec, basic, swUpdate, pkgSign, eap, appleID, macappstore, timestamping). Varsayılan basic'tir.-C: Doğrulama politikası (örneğin ssl) istemci ve sunucu kullanımı arasında ayrım yapıyorsa, bu değerlendirmenin istemci kullanımı için olduğunu belirtir. Varsayılan sunucu kullanımıdır.-d date: Doğrulama için ayarlanacak tarih. YYYY-MM-DD-hh:mm:ss biçiminde belirtilir (saat isteğe bağlıdır). Örneğin GMT saat dilimine göre 25 Nisan 2016 saat 15:59:59 için: 2016-04-25-15:59:59-k keychain: Ara CA sertifikalarını aramak için anahtarlık belirtir. Birden fazla kez belirtilebilir. Varsayılan, mevcut kullanıcının anahtarlık arama listesidir.-n name: Doğrulanacak bir adı belirtir, örneğin ssl politikası için SSL sunucu adı veya smime politikası için RFC822 e-posta adresi. Geriye dönük uyumluluk için, -n seçeneği bir argüman olmadan sağlanırsa -N ile eşdeğer olarak yorumlanacaktır.-N: Herhangi bir anahtarlıkta arama yapılmasını engeller.-L: Yalnızca yerel sertifikaları kullanır. Sertifikayı düzenleyen CA sertifikası eksikse, bu seçenek onu getirmek için ağa erişilmesini engeller.-l: Yaprak sertifikanın bir CA sertifikası olduğunu belirtir. Varsayılan olarak, CA biti ayarlanmış bir Temel Kısıtlamalar (Basic Constraints) uzantısına sahip yaprak sertifika doğrulamadan geçemez.- -e emailAddress smime politikası için e-posta adresini belirtir. (This option is deprecated; use -n instead.)
-s sslHost: ssl politikası için SSL sunucu adını belirtir. (This option is deprecated; use -n instead.)-q: Sessiz moddur, stdout veya stderr çıktısı vermez.- -R revCheckOption Bu değerlendirme için bir geri alma denetimi (revocation checking) seçeneği belirtir (ocsp, require, offline). Birden fazla kez belirtilebilir; örneğin OCSP yöntemiyle geri alma denetimini etkinleştirmek ve olumlu bir yanıt gerektirmek için "-R ocsp -R require" kullanın. Çevrimdışı (offline) seçeneği, önceden önbelleğe alınmış yanıtlara başvuracak ancak bir geri alma sunucusuna istek göndermeyecektir.
-P: Oluşturulan sertifika zincirini PEM biçiminde çıktı olarak verir.-t: Sertifika içeriklerini metin olarak çıktı olarak verir.-v: Sertifika başına güven sonuçları dahil olmak üzere ayrıntılı çıktıyı belirtir.
Örnekler
security> verify-cert -c applestore0.cer -c applestore1.cer -p ssl -n store.apple.com
security> verify-cert -r serverbasic.crt
security> verify-cert -v https://www.apple.com
authorize [options...] right... Talep edilen hakları/yetkileri (right) yetkilendirir. extend-rights bayrağı varsayılan olarak iletilecektir.
Seçenekler:
-u: Kullanıcı etkileşimine izin verir.-p: Kısmi hakların döndürülmesine izin verir.-d: Edinilen hakları yok eder.-P: Yalnızca hakları önceden yetkilendirir.-l: Yetkilendirmeyi en az ayrıcalıklı modda çalıştırır.-i: stdin üzerinden iletilen authref nesnesini dahili hale verir.-e: authref nesnesini stdout'a harici hale getirir-w: stdout kapatılana kadar AuthorizationRef referansını elinde tutarak bekler. Bu, istemcinin harici hale getirilmiş AuthorizationRef referansını borudan (pipe) okumasına olanak tanır.
Örnekler
security> security authorize -ud my-right my-right yetkisinin temel yetkilendirmesi.
security> security -q authorize -uew my-right | security -q authorize -i my-right Bir hakkı yetkilendirmek ve kabuk betiklerine yetkilendirme eklemenin bir yolu olarak onu başka bir komuta iletmek.
authorizationdb read
authorizationdb write
authorizationdb remove
Örnekler
security> security authorizationdb read system.privilege.admin > /tmp/aewp-def system.privilege.admin yetkisinin tanımını okur.
security> security authorizationdb write system.preferences < /tmp/aewp-def system.preferences yetkisini system.privilege.admin yetkisinin tanımına ayarlar.
security> security authorizationdb write system.preferences authenticate-admin Tercihlerdeki her değişiklik için bir Yönetici kullanıcının kimlik doğrulaması yapması gerekir.
execute-with-privileges
leaks [-cycles] [-nocontext] [-nostacks] [-exclude symbol] Bu süreçte /usr/bin/leaks komutunu çalıştırır. Bu, belirli komutları çalıştırdıktan sonra bellek sızıntılarını bulmaya yardımcı olabilir.
Seçenekler:
-cycles: Daha katı bir algoritma kullanır (Ayrıntılar için leaks(1) kılavuzuna bakın).-nocontext: Sızan belleğin onaltılık (hex) dökümlerini vermez.-nostacks: Sızan belleğin yığın izlerini (stack traces) göstermez.- -exclude symbol symbol işlevinden çağrılan sızıntıları yoksayar.
smartcards token [-l] [-e token] [-d token] Devre dışı bırakılmış akıllı kart belirteçlerini etkinleştirir, devre dışı bırakır veya listeler.
Seçenekler:
-l: Devre dışı bırakılmış akıllı kart belirteçlerini listeler.-e token: Akıllı kart belirtecini etkinleştirir.-d token: Akıllı kart belirtecini devre dışı bırakır.
Sistemde mevcut olan belirteçleri listelemek için
pluginkit -m -p com.apple.ctk-tokens
Örnekler
security smartcards token -l security smartcards token -d com.apple.CryptoTokenKit.pivtoken security smartcards token -e com.apple.CryptoTokenKit.pivtoken
list-smartcards Mevcut akıllı kartların kimliklerini (ID) görüntüler.
export-smartcard token [-i id] [-t type] [-e exportPath] Bir akıllı karttaki öğeleri dışa aktarır/görüntüler. Kimlik (id) sağlanmazsa tüm akıllı kartlardaki öğeler görüntülenecektir.
Seçenekler:
-i id: Belirteç kimliği (token id) ile belirtilen belirteçteki öğeleri dışa aktarır/görüntüler; kullanılabilir kimlikler list-smartcards komutuyla listelenebilir.- -t certs|privKeys|identities|all Belirtilen türdeki öğeleri görüntüler (Varsayılan: all)
-e exportPath: Sertifikaları ve ortak anahtarları dışa aktarmak için yolu belirtir. exportPath belirtilirse ekran çıktısı bastırılır. Bu seçenek -t seçeneği ile birleştirilemez.
error [error-code...] Verilen güvenlikle ilgili hata kodu için bir hata dizesi görüntüler. Hata, ondalık veya onaltılık (hex) biçimde olabilir, örneğin 1234 veya 0x1234. Birden fazla hata boşluklarla ayrılabilir.
Çevre
MallocStackLogging leaks komutunu veya -l seçeneğini kullanırken, security başlatılmadan önce bu çevre değişkenini ayarlamak muhtemelen iyi bir fikirdir. Bunun yapılması, leaks komutunun sembolik geri izlemeleri (symbolic backtraces) görüntülemesine olanak tanıyacaktır.
Dosyalar
~/Library/Preferences/com.apple.security.plist
Mevcut kullanıcının varsayılan anahtarlığını ve anahtarlık arama listesini içeren özellik listesi (property list) dosyası.
/Library/Preferences/com.apple.security.plist
Sistem varsayılan anahtarlığını ve anahtarlık arama listesini içeren özellik listesi dosyası. Bu dosya, önyükleme (boot) sırasında başlatılan süreçler veya sistem arka plan programları (system daemons) gibi sistem arama alanını kullanmayı talep eden süreçler tarafından kullanılır.
/Library/Preferences/com.apple.security-common.plist
Her kullanıcının arama listesine ve sistem arama listesine eklenen ortak anahtarlık arama listesini içeren özellik listesi dosyası.
Ayrıca Bakınız
certtool(1), leaks(1), pluginkit(8)
Tarihçe
security komutu ilk kez Mac OS X sürüm 10.3'te sunulmuştur.
Hatalar
security komutunun tamamlanmış sayılabilmesi için hala daha fazla komuta ihtiyacı vardır. Özellikle bir gün hem certtool ve systemkeychain komutlarının yerini almalıdır.
Darwin January 17, 2024 Darwin