- <div class="entry">
- <div class="title"><a href="http://people.skolelinux.org/pere/blog/syslog_trusted_timestamp___chain_of_trusted_timestamps_for_your_syslog.html">syslog-trusted-timestamp - chain of trusted timestamps for your syslog</a></div>
- <div class="date"> 2nd April 2016</div>
- <div class="body"><p>Two years ago, I had
-<a href="http://people.skolelinux.org/pere/blog/Public_Trusted_Timestamping_services_for_everyone.html">a
-look at trusted timestamping options available</a>, and among
-other things noted a still open
-<a href="https://bugs.debian.org/742553">bug in the tsget script</a>
-included in openssl that made it harder than necessary to use openssl
-as a trusted timestamping client. A few days ago I was told
-<a href="https:/www.difi.no/">the Norwegian government office DIFI</a> is
-close to releasing their own trusted timestamp service, and in the
-process I was happy to learn about a replacement for the tsget script
-using only curl:</p>
-
-<p><pre>
-openssl ts -query -data "/etc/shells" -cert -sha256 -no_nonce \
- | curl -s -H "Content-Type: application/timestamp-query" \
- --data-binary "@-" http://zeitstempel.dfn.de > etc-shells.tsr
-openssl ts -reply -text -in etc-shells.tsr
-</pre></p>
-
-<p>This produces a binary timestamp file (etc-shells.tsr) which can be
-used to verify that the content of the file /etc/shell with the
-calculated sha256 hash existed at the point in time when the request
-was made. The last command extract the content of the etc-shells.tsr
-in human readable form. The idea behind such timestamp is to be able
-to prove using cryptography that the content of a file have not
-changed since the file was stamped.</p>
-
-<p>To verify that the file on disk match the public key signature in
-the timestamp file, run the following commands. It make sure you have
-the required certificate for the trusted timestamp service available
-and use it to compare the file content with the timestamp. In
-production, one should of course use a better method to verify the
-service certificate.</p>
-
-<p><pre>
-wget -O ca-cert.txt https://pki.pca.dfn.de/global-services-ca/pub/cacert/chain.txt
-openssl ts -verify -data /etc/shells -in etc-shells.tsr -CAfile ca-cert.txt -text
-</pre></p>
-
-<p>Wikipedia have a lot more information about
-<a href="https://en.wikipedia.org/wiki/Trusted_timestamping">trusted
-Timestamping</a> and
-<a href="https://en.wikipedia.org/wiki/Linked_timestamping">linked
-timestamping</a>, and there are several trusted timestamping services
-around, both as commercial services and as free and public services.
-Among the latter is
-<a href="https://www.pki.dfn.de/zeitstempeldienst/">the
-zeitstempel.dfn.de service</a> mentioned above and
-<a href="https://freetsa.org/">freetsa.org service</a> linked to from the
-wikipedia web site. I believe the DIFI service should show up on
-https://tsa.difi.no, but it is not available to the public at the
-moment. I hope this will change when it is into production. The
-<a href="https://tools.ietf.org/html/rfc3161">RFC 3161</a> trusted
-timestamping protocol standard is even implemented in LibreOffice,
-Microsoft Office and Adobe Acrobat, making it possible to verify when
-a document was created.</p>
-
-<p>I would find it useful to be able to use such trusted timestamp
-service to make it possible to verify that my stored syslog files have
-not been tampered with. This is not a new idea. I found one example
-implemented on the Endian network appliances where
-<a href="http://help.endian.com/entries/21518508-Enabling-Timestamping-on-log-files-">the
-configuration of such feature was described in 2012</a>.</p>
-
-<p>But I could not find any free implementation of such feature when I
-searched, so I decided to try to
-<a href="https://github.com/petterreinholdtsen/syslog-trusted-timestamp">build
-a prototype named syslog-trusted-timestamp</a>. My idea is to
-generate a timestamp of the old log files after they are rotated, and
-store the timestamp in the new log file just after rotation. This
-will form a chain that would make it possible to see if any old log
-files are tampered with. But syslog is bad at handling kilobytes of
-binary data, so I decided to base64 encode the timestamp and add an ID
-and line sequence numbers to the base64 data to make it possible to
-reassemble the timestamp file again. To use it, simply run it like
-this:
-
-<p><pre>
-syslog-trusted-timestamp /path/to/list-of-log-files
-</pre></p>
-
-<p>This will send a timestamp from one or more timestamp services (not
-yet decided nor implemented) for each listed file to the syslog using
-logger(1). To verify the timestamp, the same program is used with the
---verify option:</p>
-
-<p><pre>
-syslog-trusted-timestamp --verify /path/to/log-file /path/to/log-with-timestamp
-</pre></p>
-
-<p>The verification step is not yet well designed. The current
-implementation depend on the file path being unique and unchanging,
-and this is not a solid assumption. It also uses process number as
-timestamp ID, and this is bound to create ID collisions. I hope to
-have time to come up with a better way to handle timestamp IDs and
-verification later.</p>
-
-<p>Please check out
-<a href="https://github.com/petterreinholdtsen/syslog-trusted-timestamp">the
-prototype for syslog-trusted-timestamp on github</a> and send
-suggestions and improvement, or let me know if there already exist a
-similar system for timestamping logs already to allow me to join
-forces with others with the same interest.</p>
-
-<p>As usual, if you use Bitcoin and want to show your support of my
-activities, please send Bitcoin donations to my address
-<b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
-</div>
- <div class="tags">
-
-
- Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet</a>.
-
-
- </div>
- </div>
- <div class="padding"></div>
-
- <div class="entry">
- <div class="title"><a href="http://people.skolelinux.org/pere/blog/Full_battery_stats_collector_is_now_available_in_Debian.html">Full battery stats collector is now available in Debian</a></div>
- <div class="date">23rd March 2016</div>
- <div class="body"><p>Since this morning, the battery-stats package in Debian include an
-extended collector that will collect the complete battery history for
-later processing and graphing. The original collector store the
-battery level as percentage of last full level, while the new
-collector also record battery vendor, model, serial number, design
-full level, last full level and current battery level. This make it
-possible to predict the lifetime of the battery as well as visualise
-the energy flow when the battery is charging or discharging.</p>
-
-<p>The new tools are available in <tt>/usr/share/battery-stats/</tt>
-in the version 0.5.1 package in unstable. Get the new battery level graph
-and lifetime prediction by running:
-
-<p><pre>
-/usr/share/battery-stats/battery-stats-graph /var/log/battery-stats.csv
-</pre></p>
-
-<p>Or select the 'Battery Level Graph' from your application menu.</p>
-
-<p>The flow in/out of the battery can be seen by running (no menu
-entry yet):</p>
-
-<p><pre>
-/usr/share/battery-stats/battery-stats-graph-flow
-</pre></p>
-
-<p>I'm not quite happy with the way the data is visualised, at least
-when there are few data points. The graphs look a bit better with a
-few years of data.</p>
-
-<p>A while back one important feature I use in the battery stats
-collector broke in Debian. The scripts in
-<tt>/usr/lib/pm-utils/power.d/</tt> were no longer executed. I
-suspect it happened when Jessie started using systemd, but I do not
-know. The issue is reported as
-<a href="https://bugs.debian.org/818649">bug #818649</a> against
-pm-utils. I managed to work around it by adding an udev rule to call
-the collector script every time the power connector is connected and
-disconnected. With this fix in place it was finally time to make a
-new release of the package, and get it into Debian.</p>
-
-<p>If you are interested in how your laptop battery is doing, please
-check out the
-<a href="https://tracker.debian.org/pkg/battery-stats">battery-stats</a>
-in Debian unstable, or rebuild it on Jessie to get it working on
-Debian stable. :) The upstream source is available from
-<a href="https://github.com/petterreinholdtsen/battery-stats">github</a>.
-As always, patches are very welcome.</p>
-</div>
- <div class="tags">
-
-
- Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
-
-
- </div>
- </div>
- <div class="padding"></div>
-
- <div class="entry">
- <div class="title"><a href="http://people.skolelinux.org/pere/blog/UsingQR____Electronic__paper_invoices_using_JSON_and_QR_codes.html">UsingQR - "Electronic" paper invoices using JSON and QR codes</a></div>
- <div class="date">19th March 2016</div>
- <div class="body"><p>Back in 2013 I proposed
-<a href="http://people.skolelinux.org/pere/blog/_Electronic__paper_invoices___using_vCard_in_a_QR_code.html">a
-way to make paper and PDF invoices easier to process electronically by
-adding a QR code with the key information about the invoice</a>. I
-suggested using vCard field definition, to get some standard format
-for name and address, but any format would work. I did not do
-anything about the proposal, but hoped someone one day would make
-something like it. It would make it possible to efficiently send
-machine readable invoices directly between seller and buyer.</p>
-
-<p>This was the background when I came across a proposal and
-specification from the web based accounting and invoicing supplier
-<a href="http://www.visma.com/">Visma</a> in Sweden called
-<a href="http://usingqr.com/">UsingQR</a>. Their PDF invoices contain
-a QR code with the key information of the invoice in JSON format.
-This is the typical content of a QR code following the UsingQR
-specification (based on a real world example, some numbers replaced to
-get a more bogus entry). I've reformatted the JSON to make it easier
-to read. Normally this is all on one long line:</p>
-
-<p><img src="http://people.skolelinux.org/pere/blog/images/2016-03-19-qr-invoice.png" align="right"><pre>
-{
- "vh":500.00,
- "vm":0,
- "vl":0,
- "uqr":1,
- "tp":1,
- "nme":"Din Leverandør",
- "cc":"NO",
- "cid":"997912345 MVA",
- "iref":"12300001",
- "idt":"20151022",
- "ddt":"20151105",
- "due":2500.0000,
- "cur":"NOK",
- "pt":"BBAN",
- "acc":"17202612345",
- "bc":"BIENNOK1",
- "adr":"0313 OSLO"
-}
-</pre></p>
-
-</p>The interpretation of the fields can be found in the
-<a href="http://usingqr.com/wp-content/uploads/2014/06/UsingQR_specification1.pdf">format
-specification</a> (revision 2 from june 2014). The format seem to
-have most of the information needed to handle accounting and payment
-of invoices, at least the fields I have needed so far here in
-Norway.</p>
-
-<p>Unfortunately, the site and document do not mention anything about
-the patent, trademark and copyright status of the format and the
-specification. Because of this, I asked the people behind it back in
-November to clarify. Ann-Christine Savlid (ann-christine.savlid (at)
-visma.com) replied that Visma had not applied for patent or trademark
-protection for this format, and that there were no copyright based
-usage limitations for the format. I urged her to make sure this was
-explicitly written on the web pages and in the specification, but
-unfortunately this has not happened yet. So I guess if there is
-submarine patents, hidden trademarks or a will to sue for copyright
-infringements, those starting to use the UsingQR format might be at
-risk, but if this happen there is some legal defense in the fact that
-the people behind the format claimed it was safe to do so. At least
-with patents, there is always
-<a href="http://www.paperspecs.com/paper-news/beware-the-qr-code-patent-trap/">a
-chance of getting sued...</a></p>
-
-<p>I also asked if they planned to maintain the format in an
-independent standard organization to give others more confidence that
-they would participate in the standardization process on equal terms
-with Visma, but they had no immediate plans for this. Their plan was
-to work with banks to try to get more users of the format, and
-evaluate the way forward if the format proved to be popular. I hope
-they conclude that using an open standard organisation like
-<a href="http://www.ietf.org/">IETF</a> is the correct place to
-maintain such specification.</p>
-
-<p><strong>Update 2016-03-20</strong>: Via Twitter I became aware of
-<a href="https://news.ycombinator.com/item?id=11319492">some comments
-about this blog post</a> that had several useful links and references to
-similar systems. In the Czech republic, the Czech Banking Association
-standard #26, with short name SPAYD, uses QR codes with payment
-information. More information is available from the Wikipedia page on
-<a href="https://en.wikipedia.org/wiki/Short_Payment_Descriptor">Short
-Payment Descriptor</a>. And in Germany, there is a system named
-<a href="http://www.bezahlcode.de/">BezahlCode</a>,
-(<a href="http://www.bezahlcode.de/wp-content/uploads/BezahlCode_TechDok.pdf">specification
-v1.8 2013-12-05 available as PDF</a>), which uses QR codes with
-URL-like formatting using "bank:" as the URI schema/protocol to
-provide the payment information. There is also the
-<a href="http://www.ferd-net.de/front_content.php?idcat=231">ZUGFeRD</a>
-file format that perhaps could be transfered using QR codes, but I am
-not sure if it is done already. Last, in Bolivia there are reports
-that tax information since november 2014 need to be printed in QR
-format on invoices. I have not been able to track down a
-specification for this format, because of my limited language skill
-sets.</p>
-</div>
- <div class="tags">
-
-
- Tags: <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/standard">standard</a>.
-
-
- </div>
- </div>
- <div class="padding"></div>
-