Skip to content

Commit 26da383

Browse files
Merge pull request #141 from nightwatchcyber/master
Final cleanup before -05 draft
2 parents 6845fcb + 9aef8a1 commit 26da383

File tree

3 files changed

+248
-297
lines changed

3 files changed

+248
-297
lines changed

draft-foudil-securitytxt.html

Lines changed: 41 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -330,7 +330,7 @@
330330

331331
<meta name="dct.creator" content="Foudil, E. and Y. Shafranovich" />
332332
<meta name="dct.identifier" content="urn:ietf:id:draft-foudil-securitytxt-05" />
333-
<meta name="dct.issued" scheme="ISO8601" content="2019-01-11" />
333+
<meta name="dct.issued" scheme="ISO8601" content="2019-01-12" />
334334
<meta name="dct.abstract" content="When security vulnerabilities are discovered by independent security researchers, they often lack the channels to report them properly. As a result, security vulnerabilities may be left unreported. This document defines a format (&#8220;security.txt&#8221;) to help organizations describe the process for security researchers to follow in order to report security vulnerabilities." />
335335
<meta name="description" content="When security vulnerabilities are discovered by independent security researchers, they often lack the channels to report them properly. As a result, security vulnerabilities may be left unreported. This document defines a format (&#8220;security.txt&#8221;) to help organizations describe the process for security researchers to follow in order to report security vulnerabilities." />
336336

@@ -354,12 +354,12 @@
354354
<td class="right">Y. Shafranovich</td>
355355
</tr>
356356
<tr>
357-
<td class="left">Expires: July 15, 2019</td>
357+
<td class="left">Expires: July 16, 2019</td>
358358
<td class="right">Nightwatch Cybersecurity</td>
359359
</tr>
360360
<tr>
361361
<td class="left"></td>
362-
<td class="right">January 11, 2019</td>
362+
<td class="right">January 12, 2019</td>
363363
</tr>
364364

365365

@@ -375,7 +375,7 @@ <h1 id="rfc.status"><a href="#rfc.status">Status of This Memo</a></h1>
375375
<p>This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.</p>
376376
<p>Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.</p>
377377
<p>Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."</p>
378-
<p>This Internet-Draft will expire on July 15, 2019.</p>
378+
<p>This Internet-Draft will expire on July 16, 2019.</p>
379379
<h1 id="rfc.copyrightnotice"><a href="#rfc.copyrightnotice">Copyright Notice</a></h1>
380380
<p>Copyright (c) 2019 IETF Trust and the persons identified as the document authors. All rights reserved.</p>
381381
<p>This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.</p>
@@ -498,7 +498,8 @@ <h1 id="rfc.section.3">
498498
</h1>
499499
<p id="rfc.section.3.p.1">This document defines a text file to be placed in a known location that provides information for security researchers to assist in disclosing security vulnerabilities.</p>
500500
<p id="rfc.section.3.p.2">The file is named &#8220;security.txt&#8221;, and this file SHOULD be placed under the /.well-known/ path (&#8220;/.well-known/security.txt&#8221;) <a href="#RFC5785" class="xref">[RFC5785]</a> of a domain name or IP address for web properties. If it is not possible to place the security.txt file in the /.well-known/ path or setup a redirect, web-based services MAY place the file in the top-level path of a given web domain or IP address (&#8220;/security.txt&#8221;) as a fall back option. For web-based services, the file MUST be accessible via the Hypertext Transfer Protocol <a href="#RFC1945" class="xref">[RFC1945]</a> as a resource of Internet Media Type &#8220;text/plain&#8221; with the default charset parameter set to &#8220;utf-8&#8221; per section 4.1.3 of <a href="#RFC2046" class="xref">[RFC2046]</a>, and it is RECOMMENDED that this file be served with &#8220;https&#8221; (as per section 2.7.2 of <a href="#RFC7230" class="xref">[RFC7230]</a>). For file systems and version control repositories a &#8220;security.txt&#8221; file SHOULD be placed in the root directory of a particular file system or source code project.</p>
501-
<p id="rfc.section.3.p.3">This text file contains multiple directives with different values. The &#8220;directive&#8221; is the first part of a field all the way up to the colon (&#8220;Contact:&#8221;). Directives MUST be case-insensitive (as per section 2.3 of <a href="#RFC5234" class="xref">[RFC5234]</a>). The &#8220;value&#8221; comes after the directive (&#8220;https://example.com/security&#8221;). A &#8220;field&#8221; MUST always consist of a directive and a value (&#8220;Contact: https://example.com/security&#8221;). A security.txt file can have an unlimited number of fields. It is important to note that you MUST have a separate line for every field. One MUST NOT chain multiple values for a single directive and everything MUST be in a separate field. Unless otherwise indicated in a definition of a particular field, any directive MAY appear multiple times.</p>
501+
<p id="rfc.section.3.p.3">This text file contains multiple directives with different values. The &#8220;directive&#8221; is the first part of a field all the way up to the colon (&#8220;Contact:&#8221;) and follows the syntax defined for &#8220;field-name&#8221; in section 3.6.8 of <a href="#RFC5322" class="xref">[RFC5322]</a>. Directives MUST be case-insensitive (as per section 2.3 of <a href="#RFC5234" class="xref">[RFC5234]</a>). The &#8220;value&#8221; comes after the directive (&#8220;https://example.com/security&#8221;) and follows the syntax defined for &#8220;unstructured&#8221; in section 3.2.5 of <a href="#RFC5322" class="xref">[RFC5322]</a>.</p>
502+
<p id="rfc.section.3.p.4">A &#8220;field&#8221; MUST always consist of a directive and a value (&#8220;Contact: https://example.com/security&#8221;). A security.txt file can have an unlimited number of fields. It is important to note that you MUST have a separate line for every field. One MUST NOT chain multiple values for a single directive and everything MUST be in a separate field. Unless otherwise indicated in a definition of a particular field, any directive MAY appear multiple times.</p>
502503
<h1 id="rfc.section.3.1">
503504
<a href="#rfc.section.3.1">3.1.</a> <a href="#scope" id="scope">Scope</a>
504505
</h1>
@@ -570,7 +571,7 @@ <h1 id="rfc.section.3.5.3">
570571
<a href="#rfc.section.3.5.3">3.5.3.</a> <a href="#contact" id="contact">Contact</a>
571572
</h1>
572573
<p id="rfc.section.3.5.3.p.1">This directive allows you to provide an address that researchers SHOULD use for reporting security vulnerabilities. The value MAY be an email address, a phone number and/or a web page with contact information. The &#8220;Contact:&#8221; directive MUST always be present in a security.txt file. If this directive indicates a web URL, then it RECOMMENDED that it begins with &#8220;https://&#8221; (as per section 2.7.2 of <a href="#RFC7230" class="xref">[RFC7230]</a>). Security email addresses SHOULD use the conventions defined in section 4 of <a href="#RFC2142" class="xref">[RFC2142]</a>.</p>
573-
<p id="rfc.section.3.5.3.p.2">The value MUST follow the general syntax described in <a href="#RFC3986" class="xref">[RFC3986]</a>. This means that &#8220;mailto&#8221; and &#8220;tel&#8221; URI schemes MUST be used when specifying email addresses and telephone numbers.</p>
574+
<p id="rfc.section.3.5.3.p.2">The value MUST follow the URI syntax described in <a href="#RFC3986" class="xref">[RFC3986]</a>. This means that &#8220;mailto&#8221; and &#8220;tel&#8221; URI schemes MUST be used when specifying email addresses and telephone numbers, as defined in <a href="#RFC6068" class="xref">[RFC6068]</a> and <a href="#RFC3966" class="xref">[RFC3966]</a>.</p>
574575
<p id="rfc.section.3.5.3.p.3">The precedence SHOULD be in listed order. The first field is the preferred method of contact. In the example below, the e-mail address is the preferred method of contact.</p>
575576
<pre>
576577
Contact: mailto:[email protected]
@@ -718,58 +719,56 @@ <h1 id="rfc.section.5">
718719
<p id="rfc.section.5.p.1">The expected file format of the security.txt file is plain text (MIME type &#8220;text/plain&#8221;) as defined in section 4.1.3 of <a href="#RFC2046" class="xref">[RFC2046]</a> and is encoded using UTF-8 <a href="#RFC3629" class="xref">[RFC3629]</a> in Net-Unicode form <a href="#RFC5198" class="xref">[RFC5198]</a>.</p>
719720
<p id="rfc.section.5.p.2">The following is an ABNF definition of the security.txt format, using the conventions defined in <a href="#RFC5234" class="xref">[RFC5234]</a>.</p>
720721
<pre>
721-
body = signed / unsigned
722+
body = signed / unsigned
722723

723-
signed = sign-header unsigned sign-footer
724+
signed = sign-header unsigned sign-footer
724725

725-
sign-header = &lt;OpenPGP headers and empty line as per section 7 of {{RFC4880}}&gt;
726+
sign-header = &lt;headers and line from section 7 of [RFC4880]&gt;
726727

727-
sign-footer = &lt;OpenPGP ASCII armored signature as per section 7 of {{RFC4880}}&gt;
728+
sign-footer = &lt;OpenPGP signature from section 7 of [RFC4880]&gt;
728729

729-
unsigned = *line (canonical-field eol) (preflang-field eol) *line
730+
unsigned = *line (canonical-field eol) (lang-field eol) *line
730731

731-
line = (field / comment) eol
732+
line = (field / comment) eol
732733

733-
eol = *WSP [CR] LF
734+
eol = *WSP [CR] LF
734735

735-
field = acknowledgments-field /
736-
contact-field /
737-
encryption-field /
738-
hiring-field /
739-
policy-field /
740-
ext-field
736+
field = ack-field /
737+
contact-field /
738+
encryption-field /
739+
hiring-field /
740+
policy-field /
741+
ext-field
741742

742-
fs = ":"
743+
fs = ":"
743744

744-
comment = "#" *(WSP / VCHAR / %x80-FFFFF)
745+
comment = "#" *(WSP / VCHAR / %x80-FFFFF)
745746

746-
acknowledgments-field = "Acknowledgments" fs SP uri
747+
ack-field = "Acknowledgments" fs SP uri
747748

748-
canonical-field = "Canonical" fs SP uri
749+
canonical-field = "Canonical" fs SP uri
749750

750-
contact-field = "Contact" fs SP (email / uri / phone)
751+
contact-field = "Contact" fs SP uri
751752

752-
email = &lt;addr-spec as per section 3.4.1 of {{RFC5322}}&gt;
753+
lang-tag = &lt;Language-Tag from section 2.1 of [RFC5646]&gt;
753754

754-
lang-tag = &lt;Language-Tag as per section 2.1 of {{RFC5646}}&gt;
755+
uri = &lt;URI as per [RFC3986]&gt;
755756

756-
phone = &lt;telephone-subscriber as per section 3 of {{RFC3966}}&gt;
757+
encryption-field = "Encryption" fs SP uri
757758

758-
uri = &lt;URI as per {{RFC3986}}&gt;
759+
hiring-field = "Hiring" fs SP uri
759760

760-
encryption-field = "Encryption" fs SP uri
761+
policy-field = "Policy" fs SP uri
761762

762-
hiring-field = "Hiring" fs SP uri
763+
lang-field = "Preferred-Languages" fs SP lang-values
763764

764-
policy-field = "Policy" fs SP uri
765+
lang-values = lang-tag *("," [WSP] lang-tag)
765766

766-
preflang-field = "Preferred-Languages" fs SP lang-tag *("," [WSP] lang-tag)
767+
ext-field = field-name fs SP unstructured
767768

768-
ext-field = field-name fs SP unstructured
769+
field-name = &lt;imported from section 3.6.8 of [RFC5322]&gt;
769770

770-
field-name = &lt;as per section 3.6.8 of {{RFC5322}}&gt;
771-
772-
unstructured = &lt;as per section 3.2.5 of {{RFC5322}}&gt;
771+
unstructured = &lt;imported from section 3.2.5 of [RFC5322]&gt;
773772
</pre>
774773
<p id="rfc.section.5.p.3">&#8220;ext-field&#8221; refers to extension fields, which are discussed in <a href="#extensibility" class="xref">Section 4.4</a></p>
775774
<h1 id="rfc.section.6">
@@ -821,7 +820,7 @@ <h1 id="rfc.section.7.2">
821820
Status: current
822821

823822
Field Name: Contact
824-
Description: contact information to use for reporting security vulnerabilities
823+
Description: contact information to use for reporting vulnerabilities
825824
Multiple Appearances: Yes
826825
Published in: this document
827826
Status: current
@@ -931,6 +930,11 @@ <h1 id="rfc.references.1">
931930
<a>Nottingham, M.</a> and <a>E. Hammer-Lahav</a>, "<a href="https://tools.ietf.org/html/rfc5785">Defining Well-Known Uniform Resource Identifiers (URIs)</a>", RFC 5785, DOI 10.17487/RFC5785, April 2010.</td>
932931
</tr>
933932
<tr>
933+
<td class="reference"><b id="RFC6068">[RFC6068]</b></td>
934+
<td class="top">
935+
<a>Duerst, M.</a>, <a>Masinter, L.</a> and <a>J. Zawinski</a>, "<a href="https://tools.ietf.org/html/rfc6068">The 'mailto' URI Scheme</a>", RFC 6068, DOI 10.17487/RFC6068, October 2010.</td>
936+
</tr>
937+
<tr>
934938
<td class="reference"><b id="RFC7230">[RFC7230]</b></td>
935939
<td class="top">
936940
<a>Fielding, R.</a> and <a>J. Reschke</a>, "<a href="https://tools.ietf.org/html/rfc7230">Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing</a>", RFC 7230, DOI 10.17487/RFC7230, June 2014.</td>

draft-foudil-securitytxt.md

Lines changed: 38 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,11 @@ of a given web domain or IP address ("/security.txt") as a fall back option. For
8989

9090
This text file contains multiple directives
9191
with different values. The "directive" is the first part of a field all the way up
92-
to the colon ("Contact:"). Directives MUST be case-insensitive (as per section 2.3 of {{!RFC5234}}).
93-
The "value" comes after the directive ("https://example.com/security").
92+
to the colon ("Contact:") and follows the syntax defined for "field-name" in section 3.6.8
93+
of {{!RFC5322}}. Directives MUST be case-insensitive (as per section 2.3 of {{!RFC5234}}).
94+
The "value" comes after the directive ("https://example.com/security") and follows the syntax
95+
defined for "unstructured" in section 3.2.5 of {{!RFC5322}}.
96+
9497
A "field" MUST always consist of a directive and a value
9598
("Contact: https://example.com/security"). A security.txt file
9699
can have an unlimited number of fields. It is important to note that
@@ -211,8 +214,10 @@ then it RECOMMENDED that it begins with "https://" (as per section 2.7.2 of {{!R
211214
Security email addresses SHOULD use the conventions defined in section
212215
4 of {{!RFC2142}}.
213216

214-
The value MUST follow the general syntax described in {{!RFC3986}}.
215-
This means that "mailto" and "tel" URI schemes MUST be used when specifying email addresses and telephone numbers.
217+
The value MUST follow the URI syntax described in {{!RFC3986}}.
218+
This means that "mailto" and "tel" URI schemes MUST be used
219+
when specifying email addresses and telephone numbers, as defined in {{!RFC6068}}
220+
and {{!RFC3966}}.
216221

217222
The precedence SHOULD be in listed order. The first field is the preferred
218223
method of contact. In the example below, the e-mail address is
@@ -413,58 +418,56 @@ The following is an ABNF definition of the security.txt format, using
413418
the conventions defined in {{!RFC5234}}.
414419

415420
~~~~~~~~~~
416-
body = signed / unsigned
417-
418-
signed = sign-header unsigned sign-footer
421+
body = signed / unsigned
419422

420-
sign-header = <OpenPGP headers and empty line as per section 7 of {{!RFC4880}}>
423+
signed = sign-header unsigned sign-footer
421424

422-
sign-footer = <OpenPGP ASCII armored signature as per section 7 of {{!RFC4880}}>
425+
sign-header = <headers and line from section 7 of [RFC4880]>
423426

424-
unsigned = *line (canonical-field eol) (preflang-field eol) *line
427+
sign-footer = <OpenPGP signature from section 7 of [RFC4880]>
425428

426-
line = (field / comment) eol
429+
unsigned = *line (canonical-field eol) (lang-field eol) *line
427430

428-
eol = *WSP [CR] LF
431+
line = (field / comment) eol
429432

430-
field = acknowledgments-field /
431-
contact-field /
432-
encryption-field /
433-
hiring-field /
434-
policy-field /
435-
ext-field
433+
eol = *WSP [CR] LF
436434

437-
fs = ":"
435+
field = ack-field /
436+
contact-field /
437+
encryption-field /
438+
hiring-field /
439+
policy-field /
440+
ext-field
438441

439-
comment = "#" *(WSP / VCHAR / %x80-FFFFF)
442+
fs = ":"
440443

441-
acknowledgments-field = "Acknowledgments" fs SP uri
444+
comment = "#" *(WSP / VCHAR / %x80-FFFFF)
442445

443-
canonical-field = "Canonical" fs SP uri
446+
ack-field = "Acknowledgments" fs SP uri
444447

445-
contact-field = "Contact" fs SP (email / uri / phone)
448+
canonical-field = "Canonical" fs SP uri
446449

447-
email = <addr-spec as per section 3.4.1 of {{!RFC5322}}>
450+
contact-field = "Contact" fs SP uri
448451

449-
lang-tag = <Language-Tag as per section 2.1 of {{!RFC5646}}>
452+
lang-tag = <Language-Tag from section 2.1 of [RFC5646]>
450453

451-
phone = <telephone-subscriber as per section 3 of {{!RFC3966}}>
454+
uri = <URI as per [RFC3986]>
452455

453-
uri = <URI as per {{!RFC3986}}>
456+
encryption-field = "Encryption" fs SP uri
454457

455-
encryption-field = "Encryption" fs SP uri
458+
hiring-field = "Hiring" fs SP uri
456459

457-
hiring-field = "Hiring" fs SP uri
460+
policy-field = "Policy" fs SP uri
458461

459-
policy-field = "Policy" fs SP uri
462+
lang-field = "Preferred-Languages" fs SP lang-values
460463

461-
preflang-field = "Preferred-Languages" fs SP lang-tag *("," [WSP] lang-tag)
464+
lang-values = lang-tag *("," [WSP] lang-tag)
462465

463-
ext-field = field-name fs SP unstructured
466+
ext-field = field-name fs SP unstructured
464467

465-
field-name = <as per section 3.6.8 of {{!RFC5322}}>
468+
field-name = <imported from section 3.6.8 of [RFC5322]>
466469

467-
unstructured = <as per section 3.2.5 of {{!RFC5322}}>
470+
unstructured = <imported from section 3.2.5 of [RFC5322]>
468471
~~~~~~~~~~
469472

470473
"ext-field" refers to extension fields, which are discussed in {{extensibility}}
@@ -549,7 +552,7 @@ The initial registry contains these values:
549552
Status: current
550553

551554
Field Name: Contact
552-
Description: contact information to use for reporting security vulnerabilities
555+
Description: contact information to use for reporting vulnerabilities
553556
Multiple Appearances: Yes
554557
Published in: this document
555558
Status: current

0 commit comments

Comments
 (0)