@@ -99,6 +99,128 @@ Each tag is a list of one or more filters (defined in the
9999dictionary)
100100that all must be matched in order for the tag to be assigned to a
101101new TLS session.
102+ .SS Filter types
103+ A filter's
104+ .I type
105+ determines the part of the incoming authentication material that the
106+ .B tlshd
107+ program examines to determine if ther is a match.
108+ For example, for the
109+ .I x509.tbs.subject
110+ filter type, a string argument specifies a simple wildcard pattern
111+ that is matched against an incoming x.509 certificate's subject field.
112+ A complete list of filter types appears in the
113+ .B FILTER TYPE REFERENCE
114+ section below.
115+
116+ .SH FILTER TYPE REFERENCE
117+ The
118+ .B tlshd
119+ program currently implements the following filter types:
120+ .TP
121+ .B x509.cert.signatureAlgorithm
122+ Filters of this type examine an incoming x.509 certificate's
123+ signatureAlgorithm field,
124+ as defined in RFC 5280, Section 4.1.1.2.
125+ The filter takes an additional string wildcard pattern that
126+ can be an algorithm name or an algorithm OID.
127+ .TP
128+ .B x509.tbs.version
129+ Filters of this type examine an incoming x.509 certificate's
130+ version field,
131+ part of the To-Be-Signed section of the certificate,
132+ as defined in RFC 5280, Section 4.1.2.1.
133+ The filter takes an additional numeric value that is matched
134+ against the certificate's version.
135+ .TP
136+ .B x509.tbs.serialNumber
137+ Filters of this type examine an incoming x.509 certificate's
138+ serialNumber field,
139+ part of the To-Be-Signed section of the certificate,
140+ as defined in RFC 5280, Section 4.1.2.2.
141+ The filter takes an additional string wildcard pattern that
142+ matches a hexadecimal number.
143+ .TP
144+ .B x509.tbs.signature
145+ Filters of this type examine an incoming x.509 certificate's
146+ signature field,
147+ part of the To-Be-Signed section of the certificate,
148+ as defined in RFC 5280, Section 4.1.2.3.
149+ The filter takes an additional string wildcard pattern that
150+ matches, well, something.
151+ .TP
152+ .B x509.tbs.issuer
153+ Filters of this type examine an incoming x.509 certificate's
154+ issuer field,
155+ part of the To-Be-Signed section of the certificate,
156+ as defined in RFC 5280, Section 4.1.2.4.
157+ The filter takes an additional string wildcard pattern that
158+ matches the distinguished name part of the certificate's
159+ issuer field.
160+ .TP
161+ .B x509.tbs.validity.notBefore
162+ Filters of this type examine an incoming x.509 certificate's
163+ activation time field,
164+ part of the To-Be-Signed section of the certificate,
165+ as defined in RFC 5280, Section 4.1.2.5.
166+ The filter takes an additional string that
167+ contains a date and time. If the certificate's activation
168+ timestamp is earlier than the date and time specified in
169+ this filter, the filter does not match.
170+ .TP
171+ .B x509.tbs.validity.notAfter
172+ Filters of this type examine an incoming x.509 certificate's
173+ expiration time field,
174+ part of the To-Be-Signed section of the certificate,
175+ as defined in RFC 5280, Section 4.1.2.5.
176+ The filter takes an additional string that
177+ contains a date and time. If the certificate's expiry
178+ timestamp is later than the date and time specified in
179+ this filter, the filter does not match.
180+ .TP
181+ .B x509.tbs.subject
182+ Filters of this type examine an incoming x.509 certificate's
183+ subject field,
184+ part of the To-Be-Signed section of the certificate,
185+ as defined in RFC 5280, Section 4.1.2.6.
186+ The filter takes an additional string wildcard pattern that
187+ matches the distinguished name part of the certificate's
188+ subject field.
189+
190+ .TP
191+ .B x509.extension.keyUsage
192+ Filters of this type examine an incoming x.509 certificate's
193+ keyUsage field,
194+ one of the standard certificate extensions.
195+ The filter takes a list of bit names that must be set in the
196+ field in order for the filter to match.
197+ This list contains zero or one of the following bit names:
198+ .IR digitalSignature ,
199+ .IR nonRepudiation ,
200+ .IR keyEncipherment ,
201+ .IR dataEncipherment ,
202+ .IR keyAgreement ,
203+ .IR keyCertSign ,
204+ .IR cRLSign ,
205+ .IR encipherOnly " , or"
206+ .IR decipherOnly .
207+ .TP
208+ .B x509.extension.extendedKeyUsage
209+ Filters of this type examine an incoming x.509 certificate's
210+ extendedKeyUsage field,
211+ one of the standard certificate extensions.
212+ This filter type is not yet implemented.
213+ .TP
214+ .B x509.derived.fingerprint
215+ Filters of this type locally compute an incoming x.509 certificate's
216+ SHA1 and SHA256 fingerprint.
217+ The filter takes an additional string wildcard pattern that
218+ matches the hexadecimal value of either the derived SHA1 or
219+ derived SHA256 fingerrint.
220+ .TP
221+ .B x509.derived.selfSigned
222+ Filters of this type match when an incoming x.509 certificate's
223+ issuer and subject distinguished names are exactly equal.
102224.SH STANDARDS
103225x.509
104226.BR
0 commit comments