Bagikan melalui


Deskriptor Perlindungan

String aturan deskriptor perlindungan berisi daftar berurutan dari satu atau beberapa pelindung. Setidaknya harus ada satu pelindung. Jika ada lebih dari satu, pelindung harus dipisahkan dalam string dengan AND atau OR. Nilai-nilai ini harus dikapitalisasi. Sintaks berikut menunjukkan format string deskriptor perlindungan.

Descriptor = [ Protector-or
              *( OR-separator Protector-or ) ]

    Protector-or = Protector-and
              *( AND-separator Protector-and )

    OR-separator = "OR"
    AND-separator = "AND"

    Protector-and = providerName EQUALS providerAttributes

    providerName = descr

    providerAttribute = string | hexstring

      ; The following characters are to be escaped when they appear
      ; in the value to be encoded: ESC, one of <escaped>, leading
      ; SHARP or SPACE, trailing SPACE, and NULL.
      string =   [ ( leadchar / pair ) [ *( stringchar / pair )
         ( trailchar / pair ) ] ]

      leadchar = LUTF1 / UTFMB
      LUTF1 = %x01-1F / %x21 / %x24-2A / %x2D-3A / %x3D / %x3F-5B / %x5D-7F

      trailchar  = TUTF1 / UTFMB
      TUTF1 = %x01-1F / %x21 / %x23-2A / %x2D-3A / %x3D / %x3F-5B / %x5D-7F

      stringchar = SUTF1 / UTFMB
      SUTF1 = %x01-21 / %x23-2A / %x2D-3A / %x3D / %x3F-5B / %x5D-7F

      pair = ESC ( ESC / special / hexpair )
      special = escaped / SPACE / SHARP / EQUALS
      escaped = DQUOTE / PLUS / COMMA / SEMI / LANGLE / RANGLE
      hexstring = SHARP 1*hexpair
      hexpair = HEX HEX

      descr   = leadkeychar *keychar
      leadkeychar = ALPHA
      keychar = ALPHA / DIGIT / HYPHEN
      number  = DIGIT / ( LDIGIT 1*DIGIT )

      ALPHA   = %x41-5A / %x61-7A   ; "A"-"Z" / "a"-"z"
      DIGIT   = %x30 / LDIGIT       ; "0"-"9"
      LDIGIT  = %x31-39             ; "1"-"9"
      HEX     = DIGIT / %x41-46 / %x61-66 ; "0"-"9" / "A"-"F" / "a"-"f"

      NULL    = %x00 ; null (0)
      SPACE   = %x20 ; space (" ")
      DQUOTE  = %x22 ; quote (""")
      SHARP   = %x23 ; octothorpe (or sharp sign) ("#")
      DOLLAR  = %x24 ; dollar sign ("$")
      SQUOTE  = %x27 ; single quote ("'")
      LPAREN  = %x28 ; left paren ("(")
      RPAREN  = %x29 ; right paren (")")
      PLUS    = %x2B ; plus sign ("+")
      COMMA   = %x2C ; comma (",")
      HYPHEN  = %x2D ; hyphen ("-")
      DOT     = %x2E ; period (".")
      SEMI    = %x3B ; semicolon (";")
      LANGLE  = %x3C ; left angle bracket ("<")
      EQUALS  = %x3D ; equals sign ("=")
      RANGLE  = %x3E ; right angle bracket (">")
      ESC     = %x5C ; backslash ("\")
      USCORE  = %x5F ; underscore ("_")
      LCURLY  = %x7B ; left curly brace "{"
      RCURLY  = %x7D ; right curly brace "}"

      ; Any UTF-8 [RFC3629] encoded Unicode [Unicode] character
      UTF8    = UTF1 / UTFMB
      UTFMB   = UTF2 / UTF3 / UTF4
      UTF0    = %x80-BF
      UTF1    = %x00-7F
      UTF2    = %xC2-DF UTF0
      UTF3    = %xE0 %xA0-BF UTF0 / %xE1-EC 2(UTF0) /
                %xED %x80-9F UTF0 / %xEE-EF 2(UTF0)
      UTF4    = %xF0 %x90-BF 2(UTF0) / %xF1-F3 3(UTF0) /
                %xF4 %x80-8F 2(UTF0)

      OCTET   = %x00-FF ; Any octet (8-bit data unit)

Deskriptor perlindungan saat ini dapat ditentukan untuk jenis otorisasi berikut:

  • Grup di forest Direktori Aktif.
  • Sekumpulan kredensial web.
  • Sertifikat di penyimpanan sertifikat pengguna.

Contoh string aturan deskriptor perlindungan untuk grup Direktori Aktif meliputi yang berikut ini:

  • "SID=S-1-5-21-4392301 AND SID=S-1-5-21-3101812"
  • "SDDL=O:S-1-5-5-0-290724g:SYD:(A;; CCDC;;; S-1-5-5-0-290724)(A;; ARUS SEARAH;;; WD)"
  • "LOCAL=user"
  • "LOCAL=machine"

Contoh string aturan deskriptor perlindungan untuk sekumpulan kredensial web meliputi yang berikut ini:

  • "WEBCREDENTIALS=MyPasswordName"
  • "WEBCREDENTIALS=MyPasswordName,myweb.com"

Contoh string aturan deskriptor perlindungan untuk sertifikat meliputi yang berikut ini:

  • "CERTIFICATE=HashID:sha1_hash_of_certificate"
  • "CERTIFICATE=CertBlob:base64String"

Deskriptor perlindungan yang Anda tentukan secara otomatis menentukan penyedia perlindungan kunci mana yang digunakan. Untuk informasi selengkapnya, lihat Penyedia Perlindungan .

Perhatikan bahwa sisi kiri tanda sama dengan (=) harus SID, SDDL, LOKAL , WEBCREDENTIALS, atau sertifikat . Nilai-nilai ini tidak peka huruf besar/kecil.

Anda harus menentukan string aturan (atau nama tampilan yang terkait dengan string aturan) saat Anda memanggil fungsi NCryptCreateProtectionDescriptor. Atau, karena string aturan deskriptor perlindungan agak rumit untuk digunakan dan diingat, Anda dapat mengaitkan nama tampilan dengan string aturan dan mendaftarkan keduanya dengan menggunakan fungsi NCryptRegisterProtectionDescriptorName. Kemudian Anda dapat menggunakan nama tampilan di NCryptCreateProtectionDescriptor.

CNG DPAPI

Penyedia Perlindungan