<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.2.13 -->
<?rfc toc="yes"?>
<?rfc tocdepth="4"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" docName="draft-chen-syslog-syscinfo-credibility-00" obsoletes="" updates="RFC5424" ipr="trust200902" submissionType="IETF" xml:lang="en" tocInclude="true" tocDepth="4" symRefs="true" sortRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.12.3 -->
  <!-- ***** FRONT MATTER ***** -->
  <front>
    <title abbrev="syslog syscinfo">Improve logging credibility by adding synchronization time information</title>
    <seriesInfo name="Internet-Draft" value="draft-chen-syslog-syscinfo-credibility-00"/>
    <author fullname="Fengsheng Wang" initials="F" surname="Wang">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <street>32, Xuanwumen West</street>
          <city>BeiJing 100053</city>
          <country>China</country>
        </postal>
        <email>wangfengsheng@chinamobile.com</email>
      </address>
    </author>
    <author fullname="Meiling Chen" initials="M" surname="Chen">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <street>32, Xuanwumen West</street>
          <city>BeiJing 100053</city>
          <country>China</country>
        </postal>
        <email>chenmeiling@chinamobile.com</email>
      </address>
    </author>
    <author fullname="Li Su" initials="L" surname="Su">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <street>32, Xuanwumen West</street>
          <city>BeiJing 100053</city>
          <country>China</country>
        </postal>
        <email>suli@chinamobile.com</email>
      </address>
    </author>
    <date day="06" month="03" year="2022"/>
    <area>Security Area</area>
    <workgroup>Syslog Working Group</workgroup>
    <keyword>Syslog</keyword>
    <!--[TODO] add additional keywords here for IETF website search engine -->

    <abstract>
      <t>This document proposes a scheme to improve the credibility of log reporting time by adding time synchronization information.</t>
      <t>This document updates the "timeQuality" structured Data in RFC 5424 <xref target="RFC5424" format="default"/>, The Syslog Protocol. By appending "SYNCINFO" information after the "isSynced" parameter, the log collector can judge the credibility of logs when correlating logs of different devices.</t>
      <!--Remember, don't put any citations in the abstract, and expand your acronyms. -->
    </abstract>
  </front>
  <middle>
    <section anchor="section_introduction" numbered="true" toc="default">
      <name>Introduction</name>
      <t>The following content is from RFC 5424<xref target="RFC5424" format="default"/></t>
      <t>
        In the protocol, the timestamp parameter of the reported log and the parameter of whether the time has been synchronized have been set to indicate whether the reported time has been synchronized with the external time source. Although the standard has considered the accuracy requirements of time recording and designed a time "isSynced" parameter, it is impossible to ensure the credibility of time recording only through the synchronization flag parameters.</t>
      <t>
        If the external time source of the originator is attacked or a fake time source, the log reported by the originator only records whether the time is synchronized, but does not report the synchronization time source information.By constructing a higher-level fake source time synchronization server, the attacker can easily affect the credibility of the log reporting time.
      </t>
      <artwork align="center" name="" type="" alt=""><![CDATA[

                     +-----------+     +-----------+     +---------+
                     |  FakeNTP  |-->--|Originator1|-->--|Collector|
                     +-----------+     +-----------+     +---------+
                        Stratum 0                          /
       +-------+     +-----------+     +-----------+      /
       |  GPS  |-->--|    NTP    |-->--|Originator2|-->--/
       +-------+     +-----------+     +-----------+
       Stratum 0        Stratum 1
            
            Figure 1: Attack Scenario
          ]]></artwork>
      <t>
        Take the above figure as an example. If Originator1 synchronizes to a fake NTP time source and Originator2 synchronizes to an NTP time source whose superior external time source is GPS, attacker can modify the system time of the fake NTP time source to affect the log reporting time of Originator1, which can further affect the time accuracy of Collector when correlating logs of different devices.
      </t>
      <t>
        In order to solve the problem of the credibility of log reporting time, it is proposed to add synchronization time information after the synchronization flag parameter.
      </t>
    </section>
    <section anchor="section_terms" numbered="true" toc="default">
      <name>Terminology</name>
      <t>
        The readers should be familiar with the terms defined in.
      </t>
      <t>
        In addition, this document makes use of the following terms:
      </t>
      <dl newline="false" spacing="normal">
        <dt>syncInfo:</dt>
        <dd>
           The syncInfo parameter is used to record current synchronization NTP source host IP or host name, remote refers to the NTP upper-level source host address, and stratum class;
          </dd>
      </dl>
    </section>
    <section anchor="Setting_syncInfo" numbered="true" toc="default">
      <name>Setting syncInfo</name>
      <t>The parameters in RFC 5424 <xref target="RFC5424" format="default"/>does not have the function of Setting synchronization NTP information.  This chapter proposes to add this new parameter after the "isSynced" parameter.</t>
      <section numbered="true" toc="default">
        <name>Setting new parameter</name>
        <t>
          The following new parameter is defined.
        </t>
        <t>
        SYNCINFO: The parameter indicates the synchronization time source information of the originator. The syncInfo parameter is included current synchronization NTP source host IP or host name, remote refers to the NTP upper-level source host address, and stratum class.
        </t>
        <t>
        If the value "0" is used for "isSynced", this parameter MUST NOT be specified. If the value "1" is used for "isSynced" ,the originator's synchronization time source information needs to be added.
        </t>
      </section>
      <section numbered="true" toc="default">
        <name>Examples</name>
        <t>
          The following is an example of an originator that knows both its synchronization time source information and that it is externally synchronized:</t>
        <t>
            [timeQuality isSynced="1" syncInfo="remote:time-d.nist.gov|refid:NIST|st:1"]</t>
        <t>
            The syncInfo parameter records that the current synchronization NTP source host name is time-d.nist.gov, the remote refers to the NTP upper-level source host address is NIST, and the stratum class is 1.
        </t>
      </section>
      <section numbered="true" toc="default">
        <name>Handling of the collectors</name>
        <t>
         When the log collector merges logs reported by different originators, it compares the synchronization time source information and the stratum class information in the logs:
        </t>
        <t>
        If the different are synchronized with same time sources, the log time reported by different originators is credible;
        </t>
        <artwork align="center" name="" type="" alt=""><![CDATA[

                                +---------+    +-----------+   +---------+
                                |  NTP1   |->--|Originator1|->-|Collector|
                                +---------+    +-----------+   +---------+
                               /  Stratum 1                      /
       +------------------+   / +---------+    +-----------+    /
       | GPS/Atomic clock |-->--|  NTP2   |->--|Originator2|->-/
       +------------------+     +---------+    +-----------+
            Stratum 0             Stratum 1

            Figure 2: Trusted Scenario 1 for Log Reporting Time
          ]]></artwork>
        <t>
        If the different originators are synchronized with different time sources, it is necessary to determine whether the time source refers to a higher-quality external time source. If a higher-quality external time source is cited, the log time is credible. This log time cannot be trusted if a higher quality external time source is not referenced or the time is not synchronized.
        </t>
        <artwork align="center" name="" type="" alt=""><![CDATA[

       +--------------+   +-----------+    +-----------+    +---------+
       | Atomic clock |->-|    NTP1   |->--|Originator1|->--|Collector|
       +--------------+   +-----------+    +-----------+    +---------+
            Stratum 0          Stratum 1                      /
       +--------------+   +-----------+    +-----------+     /
       |     GPS      |->-|    NTP2   |->--|Originator2|->--/
       +--------------+   +-----------+    +-----------+
            Stratum 0          Stratum 1

            Figure 3: Trusted Scenario 2 for Log Reporting Time
          ]]></artwork>
        <artwork align="center" name="" type="" alt=""><![CDATA[

       +------------------+   +--------+   +-----------+   +---------+
       | Other time source|->-|   NTP1 |->-|Originator1|->-|Collector|
       +------------------+   +--------+   +-----------+   +---------+
            Stratum 2          Stratum 3                     /
       +------------------+   +--------+   +-----------+    /
       |  GPS/Atomic clock|->-|   NTP2 |->-|Originator2|->-/
       +------------------+   +--------+   +-----------+
            Stratum 0          Stratum 1

      Figure 4: Untrusted Scenarios for Log Reporting Time
          ]]></artwork>
      </section>
    </section>
    <section numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>This requires registering a new parameter with IANA. This parameter is the same as the "isSynced" parameter and should be an optional parameter.</t>
    </section>
    <!-- The Author's Addresses section will be generated automatically by XML2RFC from the front information -->

    <section numbered="true" toc="default">
      <name>Contributors</name>
      <t>TBD</t>
    </section>
    <section numbered="true" toc="default">
      <name>Acknowledgements</name>
      <t>
        TBD
      </t>
    </section>
  </middle>
  <back>
    <references>
      <name>Normative References</name>
      <reference anchor="RFC5424" target="https://www.rfc-editor.org/info/rfc5424" xml:base="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5424.xml">
        <front>
          <title>The Syslog Protocol</title>
          <author initials="R." surname="Gerhards" fullname="R. Gerhards">
            <organization/>
          </author>
          <date year="2009" month="March"/>
          <abstract>
            <t>This document describes the syslog protocol, which is used to convey event notification messages.  This protocol utilizes a layered architecture, which allows the use of any number of transport protocols for transmission of syslog messages.  It also provides a message format that allows vendor-specific extensions to be provided in a structured way.</t>
            <t>This document has been written with the original design goals for traditional syslog in mind.  The need for a new layered specification has arisen because standardization efforts for reliable and secure syslog extensions suffer from the lack of a Standards-Track and transport-independent RFC.  Without this document, each other standard needs to define its own syslog packet format and transport mechanism, which over time will introduce subtle compatibility issues.  This document tries to provide a foundation that syslog extensions can build on.  This layered architecture approach also provides a solid basis that allows code to be written once for each syslog feature rather than once for each transport.  [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="5424"/>
        <seriesInfo name="DOI" value="10.17487/RFC5424"/>
      </reference>
    </references>
    <!-- Appendix -->
  </back>
</rfc>
