1 <?xml version=
"1.0" encoding=
"utf-8"?>
2 <rss version='
2.0' xmlns:lj='http://www.livejournal.org/rss/lj/
1.0/' xmlns:
atom=
"http://www.w3.org/2005/Atom">
4 <title>Petter Reinholdtsen
</title>
5 <description></description>
6 <link>http://people.skolelinux.org/pere/blog/
</link>
7 <atom:link href=
"http://people.skolelinux.org/pere/blog/index.rss" rel=
"self" type=
"application/rss+xml" />
10 <title>Unlimited randomness with the ChaosKey?
</title>
11 <link>http://people.skolelinux.org/pere/blog/Unlimited_randomness_with_the_ChaosKey_.html
</link>
12 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Unlimited_randomness_with_the_ChaosKey_.html
</guid>
13 <pubDate>Wed,
1 Mar
2017 20:
50:
00 +
0100</pubDate>
14 <description><p
>A few days ago I ordered a small batch of
15 <a href=
"http://altusmetrum.org/ChaosKey/
">the ChaosKey
</a
>, a small
16 USB dongle for generating entropy created by Bdale Garbee and Keith
17 Packard. Yesterday it arrived, and I am very happy to report that it
18 work great! According to its designers, to get it to work out of the
19 box, you need the Linux kernel version
4.1 or later. I tested on a
20 Debian Stretch machine (kernel version
4.9), and there it worked just
21 fine, increasing the available entropy very quickly. I wrote a small
22 test oneliner to test. It first print the current entropy level,
23 drain /dev/random, and then print the entropy level for five seconds.
24 Here is the situation without the ChaosKey inserted:
</p
>
26 <blockquote
><pre
>
27 % cat /proc/sys/kernel/random/entropy_avail; \
28 dd bs=
1M if=/dev/random of=/dev/null count=
1; \
29 for n in $(seq
1 5); do \
30 cat /proc/sys/kernel/random/entropy_avail; \
36 28 byte kopiert,
0,
000264565 s,
106 kB/s
43 </pre
></blockquote
>
45 <p
>The entropy level increases by
3-
4 every second. In such case any
46 application requiring random bits (like a HTTPS enabled web server)
47 will halt and wait for more entrpy. And here is the situation with
48 the ChaosKey inserted:
</p
>
50 <blockquote
><pre
>
51 % cat /proc/sys/kernel/random/entropy_avail; \
52 dd bs=
1M if=/dev/random of=/dev/null count=
1; \
53 for n in $(seq
1 5); do \
54 cat /proc/sys/kernel/random/entropy_avail; \
60 104 byte kopiert,
0,
000487647 s,
213 kB/s
67 </pre
></blockquote
>
69 <p
>Quite the difference. :) I bought a few more than I need, in case
70 someone want to buy one her in Norway. :)
</p
>
75 <title>Detect OOXML files with undefined behaviour?
</title>
76 <link>http://people.skolelinux.org/pere/blog/Detect_OOXML_files_with_undefined_behaviour_.html
</link>
77 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Detect_OOXML_files_with_undefined_behaviour_.html
</guid>
78 <pubDate>Tue,
21 Feb
2017 00:
20:
00 +
0100</pubDate>
79 <description><p
>I just noticed
80 <a href=
"http://www.arkivrad.no/aktuelt/riksarkivarens-forskrift-pa-horing
">the
81 new Norwegian proposal for archiving rules in the goverment
</a
> list
82 <a href=
"http://www.ecma-international.org/publications/standards/Ecma-
376.htm
">ECMA-
376</a
>
83 / ISO/IEC
29500 (aka OOXML) as valid formats to put in long term
84 storage. Luckily such files will only be accepted based on
85 pre-approval from the National Archive. Allowing OOXML files to be
86 used for long term storage might seem like a good idea as long as we
87 forget that there are plenty of ways for a
"valid
" OOXML document to
88 have content with no defined interpretation in the standard, which
89 lead to a question and an idea.
</p
>
91 <p
>Is there any tool to detect if a OOXML document depend on such
92 undefined behaviour? It would be useful for the National Archive (and
93 anyone else interested in verifying that a document is well defined)
94 to have such tool available when considering to approve the use of
95 OOXML. I
'm aware of the
96 <a href=
"https://github.com/arlm/officeotron/
">officeotron OOXML
97 validator
</a
>, but do not know how complete it is nor if it will
98 report use of undefined behaviour. Are there other similar tools
99 available? Please send me an email if you know of any such tool.
</p
>
104 <title>Ruling ignored our objections to the seizure of popcorn-time.no (#domstolkontroll)
</title>
105 <link>http://people.skolelinux.org/pere/blog/Ruling_ignored_our_objections_to_the_seizure_of_popcorn_time_no___domstolkontroll_.html
</link>
106 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Ruling_ignored_our_objections_to_the_seizure_of_popcorn_time_no___domstolkontroll_.html
</guid>
107 <pubDate>Mon,
13 Feb
2017 21:
30:
00 +
0100</pubDate>
108 <description><p
>A few days ago, we received the ruling from
109 <a href=
"http://people.skolelinux.org/pere/blog/A_day_in_court_challenging_seizure_of_popcorn_time_no_for__domstolkontroll.html
">my
110 day in court
</a
>. The case in question is a challenge of the seizure
111 of the DNS domain popcorn-time.no. The ruling simply did not mention
112 most of our arguments, and seemed to take everything ØKOKRIM said at
113 face value, ignoring our demonstration and explanations. But it is
114 hard to tell for sure, as we still have not seen most of the documents
115 in the case and thus were unprepared and unable to contradict several
116 of the claims made in court by the opposition. We are considering an
117 appeal, but it is partly a question of funding, as it is costing us
118 quite a bit to pay for our lawyer. If you want to help, please
119 <a href=
"http://www.nuug.no/dns-beslag-donasjon.shtml
">donate to the
120 NUUG defense fund
</a
>.
</p
>
122 <p
>The details of the case, as far as we know it, is available in
124 <a href=
"https://www.nuug.no/news/tags/dns-domenebeslag/
">the NUUG
125 blog
</a
>. This also include
126 <a href=
"https://www.nuug.no/news/Avslag_etter_rettslig_h_ring_om_DNS_beslaget___vurderer_veien_videre.shtml
">the
127 ruling itself
</a
>.
</p
>
132 <title>A day in court challenging seizure of popcorn-time.no for #domstolkontroll
</title>
133 <link>http://people.skolelinux.org/pere/blog/A_day_in_court_challenging_seizure_of_popcorn_time_no_for__domstolkontroll.html
</link>
134 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/A_day_in_court_challenging_seizure_of_popcorn_time_no_for__domstolkontroll.html
</guid>
135 <pubDate>Fri,
3 Feb
2017 11:
10:
00 +
0100</pubDate>
136 <description><p align=
"center
"><img width=
"70%
" src=
"http://people.skolelinux.org/pere/blog/images/
2017-
02-
01-popcorn-time-in-court.jpeg
"></p
>
138 <p
>On Wednesday, I spent the entire day in court in Follo Tingrett
139 representing
<a href=
"https://www.nuug.no/
">the member association
140 NUUG
</a
>, alongside
<a href=
"https://www.efn.no/
">the member
141 association EFN
</a
> and
<a href=
"http://www.imc.no
">the DNS registrar
142 IMC
</a
>, challenging the seizure of the DNS name popcorn-time.no. It
143 was interesting to sit in a court of law for the first time in my
144 life. Our team can be seen in the picture above: attorney Ola
145 Tellesbø, EFN board member Tom Fredrik Blenning, IMC CEO Morten Emil
146 Eriksen and NUUG board member Petter Reinholdtsen.
</p
>
148 <p
><a href=
"http://www.domstol.no/no/Enkelt-domstol/follo-tingrett/Nar-gar-rettssaken/Beramming/?cid=AAAA1701301512081262234UJFBVEZZZZZEJBAvtale
">The
149 case at hand
</a
> is that the Norwegian National Authority for
150 Investigation and Prosecution of Economic and Environmental Crime (aka
151 Økokrim) decided on their own, to seize a DNS domain early last
152 year, without following
153 <a href=
"https://www.norid.no/no/regelverk/navnepolitikk/#link12
">the
154 official policy of the Norwegian DNS authority
</a
> which require a
155 court decision. The web site in question was a site covering Popcorn
156 Time. And Popcorn Time is the name of a technology with both legal
157 and illegal applications. Popcorn Time is a client combining
158 searching a Bittorrent directory available on the Internet with
159 downloading/distribute content via Bittorrent and playing the
160 downloaded content on screen. It can be used illegally if it is used
161 to distribute content against the will of the right holder, but it can
162 also be used legally to play a lot of content, for example the
164 <a href=
"https://archive.org/details/movies
">available from the
165 Internet Archive
</a
> or the collection
166 <a href=
"http://vodo.net/films/
">available from Vodo
</a
>. We created
167 <a href=
"magnet:?xt=urn:btih:
86c1802af5a667ca56d3918aecb7d3c0f7173084
&dn=PresentasjonFolloTingrett.mov
&tr=udp%
3A%
2F%
2Fpublic.popcorn-tracker.org%
3A6969%
2Fannounce
">a
168 video demonstrating legally use of Popcorn Time
</a
> and played it in
169 Court. It can of course be downloaded using Bittorrent.
</p
>
171 <p
>I did not quite know what to expect from a day in court. The
172 government held on to their version of the story and we held on to
173 ours, and I hope the judge is able to make sense of it all. We will
174 know in two weeks time. Unfortunately I do not have high hopes, as
175 the Government have the upper hand here with more knowledge about the
176 case, better training in handling criminal law and in general higher
177 standing in the courts than fairly unknown DNS registrar and member
178 associations. It is expensive to be right also in Norway. So far the
179 case have cost more than NOK
70 000,-. To help fund the case, NUUG
180 and EFN have asked for donations, and managed to collect around NOK
25
181 000,- so far. Given the presentation from the Government, I expect
182 the government to appeal if the case go our way. And if the case do
183 not go our way, I hope we have enough funding to appeal.
</p
>
185 <p
>From the other side came two people from Økokrim. On the benches,
186 appearing to be part of the group from the government were two people
187 from the Simonsen Vogt Wiik lawyer office, and three others I am not
188 quite sure who was. Økokrim had proposed to present two witnesses
189 from The Motion Picture Association, but this was rejected because
190 they did not speak Norwegian and it was a bit late to bring in a
191 translator, but perhaps the two from MPA were present anyway. All
192 seven appeared to know each other. Good to see the case is take
195 <p
>If you, like me, believe the courts should be involved before a DNS
196 domain is hijacked by the government, or you believe the Popcorn Time
197 technology have a lot of useful and legal applications, I suggest you
198 too
<a href=
"http://www.nuug.no/dns-beslag-donasjon.shtml
">donate to
199 the NUUG defense fund
</a
>. Both Bitcoin and bank transfer are
200 available. If NUUG get more than we need for the legal action (very
201 unlikely), the rest will be spend promoting free software, open
202 standards and unix-like operating systems in Norway, so no matter what
203 happens the money will be put to good use.
</p
>
205 <p
>If you want to lean more about the case, I recommend you check out
206 <a href=
"https://www.nuug.no/news/tags/dns-domenebeslag/
">the blog
207 posts from NUUG covering the case
</a
>. They cover the legal arguments
208 on both sides.
</p
>
213 <title>Nasjonalbiblioteket avslutter sin ulovlige bruk av Google Skjemaer
</title>
214 <link>http://people.skolelinux.org/pere/blog/Nasjonalbiblioteket_avslutter_sin_ulovlige_bruk_av_Google_Skjemaer.html
</link>
215 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Nasjonalbiblioteket_avslutter_sin_ulovlige_bruk_av_Google_Skjemaer.html
</guid>
216 <pubDate>Thu,
12 Jan
2017 09:
40:
00 +
0100</pubDate>
217 <description><p
>I dag fikk jeg en skikkelig gladmelding. Bakgrunnen er at før jul
218 arrangerte Nasjonalbiblioteket
219 <a href=
"http://www.nb.no/Bibliotekutvikling/Kunnskapsorganisering/Nasjonalt-verksregister/Seminar-om-verksregister
">et
220 seminar om sitt knakende gode tiltak «verksregister»
</a
>. Eneste
221 måten å melde seg på dette seminaret var å sende personopplysninger
222 til Google via Google Skjemaer. Dette syntes jeg var tvilsom praksis,
223 da det bør være mulig å delta på seminarer arrangert av det offentlige
224 uten å måtte dele sine interesser, posisjon og andre
225 personopplysninger med Google. Jeg ba derfor om innsyn via
226 <a href=
"https://www.mimesbronn.no/
">Mimes brønn
</a
> i
227 <a href=
"https://www.mimesbronn.no/request/personopplysninger_til_google_sk
">avtaler
228 og vurderinger Nasjonalbiblioteket hadde rundt dette
</a
>.
229 Personopplysningsloven legger klare rammer for hva som må være på
230 plass før en kan be tredjeparter, spesielt i utlandet, behandle
231 personopplysninger på sine vegne, så det burde eksistere grundig
232 dokumentasjon før noe slikt kan bli lovlig. To jurister hos
233 Nasjonalbiblioteket mente først dette var helt i orden, og at Googles
234 standardavtale kunne brukes som databehandlingsavtale. Det syntes jeg
235 var merkelig, men har ikke hatt kapasitet til å følge opp saken før
236 for to dager siden.
</p
>
238 <p
>Gladnyheten i dag, som kom etter at jeg tipset Nasjonalbiblioteket
239 om at Datatilsynet underkjente Googles standardavtaler som
240 databehandleravtaler i
2011, er at Nasjonalbiblioteket har bestemt seg
241 for å avslutte bruken av Googles Skjemaer/Apps og gå i dialog med DIFI
242 for å finne bedre måter å håndtere påmeldinger i tråd med
243 personopplysningsloven. Det er fantastisk å se at av og til hjelper
244 det å spørre hva i alle dager det offentlige holder på med.
</p
>
249 <title>Bryter NAV sin egen personvernerklæring?
</title>
250 <link>http://people.skolelinux.org/pere/blog/Bryter_NAV_sin_egen_personvernerkl_ring_.html
</link>
251 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Bryter_NAV_sin_egen_personvernerkl_ring_.html
</guid>
252 <pubDate>Wed,
11 Jan
2017 06:
50:
00 +
0100</pubDate>
253 <description><p
>Jeg leste med interesse en nyhetssak hos
254 <a href=
"http://www.digi.no/artikler/nav-avslorer-trygdemisbruk-ved-a-spore-ip-adresser/
367394">digi.no
</a
>
256 <a href=
"https://www.nrk.no/buskerud/trygdesvindlere-avslores-av-utenlandske-ip-adresser-
1.13313461">NRK
</a
>
257 om at det ikke bare er meg, men at også NAV bedriver geolokalisering
258 av IP-adresser, og at det gjøres analyse av IP-adressene til de som
259 sendes inn meldekort for å se om meldekortet sendes inn fra
260 utenlandske IP-adresser. Politiadvokat i Drammen, Hans Lyder Haare,
261 er sitert i NRK på at «De to er jo blant annet avslørt av
262 IP-adresser. At man ser at meldekortet kommer fra utlandet.»
</p
>
264 <p
>Jeg synes det er fint at det blir bedre kjent at IP-adresser
265 knyttes til enkeltpersoner og at innsamlet informasjon brukes til å
266 stedsbestemme personer også av aktører her i Norge. Jeg ser det som
267 nok et argument for å bruke
268 <a href=
"https://www.torproject.org/
">Tor
</a
> så mye som mulig for å
269 gjøre gjøre IP-lokalisering vanskeligere, slik at en kan beskytte sin
270 privatsfære og unngå å dele sin fysiske plassering med
271 uvedkommede.
</p
>
273 <P
>Men det er en ting som bekymrer meg rundt denne nyheten. Jeg ble
274 tipset (takk #nuug) om
275 <a href=
"https://www.nav.no/no/NAV+og+samfunn/Kontakt+NAV/Teknisk+brukerstotte/Snarveier/personvernerkl%C3%A6ring-for-arbeids-og-velferdsetaten
">NAVs
276 personvernerklæring
</a
>, som under punktet «Personvern og statistikk»
279 <p
><blockquote
>
281 <p
>«Når du besøker nav.no, etterlater du deg elektroniske spor. Sporene
282 dannes fordi din nettleser automatisk sender en rekke opplysninger til
283 NAVs tjener (server-maskin) hver gang du ber om å få vist en side. Det
284 er eksempelvis opplysninger om hvilken nettleser og -versjon du
285 bruker, og din internettadresse (ip-adresse). For hver side som vises,
286 lagres følgende opplysninger:
</p
>
289 <li
>hvilken side du ser på
</li
>
290 <li
>dato og tid
</li
>
291 <li
>hvilken nettleser du bruker
</li
>
292 <li
>din ip-adresse
</li
>
295 <p
>Ingen av opplysningene vil bli brukt til å identifisere
296 enkeltpersoner. NAV bruker disse opplysningene til å generere en
297 samlet statistikk som blant annet viser hvilke sider som er mest
298 populære. Statistikken er et redskap til å forbedre våre
299 tjenester.»
</p
>
301 </blockquote
></p
>
303 <p
>Jeg klarer ikke helt å se hvordan analyse av de besøkendes
304 IP-adresser for å se hvem som sender inn meldekort via web fra en
305 IP-adresse i utlandet kan gjøres uten å komme i strid med påstanden om
306 at «ingen av opplysningene vil bli brukt til å identifisere
307 enkeltpersoner». Det virker dermed for meg som at NAV bryter sine
308 egen personvernerklæring, hvilket
309 <a href=
"http://people.skolelinux.org/pere/blog/Er_lover_brutt_n_r_personvernpolicy_ikke_stemmer_med_praksis_.html
">Datatilsynet
310 fortalte meg i starten av desember antagelig er brudd på
311 personopplysningsloven
</a
>.
313 <p
>I tillegg er personvernerklæringen ganske misvisende i og med at
314 NAVs nettsider ikke bare forsyner NAV med personopplysninger, men i
315 tillegg ber brukernes nettleser kontakte fem andre nettjenere
316 (script.hotjar.com, static.hotjar.com, vars.hotjar.com,
317 www.google-analytics.com og www.googletagmanager.com), slik at
318 personopplysninger blir gjort tilgjengelig for selskapene Hotjar og
319 Google , og alle som kan lytte på trafikken på veien (som FRA, GCHQ og
320 NSA). Jeg klarer heller ikke se hvordan slikt spredning av
321 personopplysninger kan være i tråd med kravene i
322 personopplysningloven, eller i tråd med NAVs personvernerklæring.
</p
>
324 <p
>Kanskje NAV bør ta en nøye titt på sin personvernerklæring? Eller
325 kanskje Datatilsynet bør gjøre det?
</p
>
330 <title>Where did that package go?
&mdash; geolocated IP traceroute
</title>
331 <link>http://people.skolelinux.org/pere/blog/Where_did_that_package_go___mdash__geolocated_IP_traceroute.html
</link>
332 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Where_did_that_package_go___mdash__geolocated_IP_traceroute.html
</guid>
333 <pubDate>Mon,
9 Jan
2017 12:
20:
00 +
0100</pubDate>
334 <description><p
>Did you ever wonder where the web trafic really flow to reach the
335 web servers, and who own the network equipment it is flowing through?
336 It is possible to get a glimpse of this from using traceroute, but it
337 is hard to find all the details. Many years ago, I wrote a system to
338 map the Norwegian Internet (trying to figure out if our plans for a
339 network game service would get low enough latency, and who we needed
340 to talk to about setting up game servers close to the users. Back
341 then I used traceroute output from many locations (I asked my friends
342 to run a script and send me their traceroute output) to create the
343 graph and the map. The output from traceroute typically look like
347 traceroute to www.stortinget.no (
85.88.67.10),
30 hops max,
60 byte packets
348 1 uio-gw10.uio.no (
129.240.202.1)
0.447 ms
0.486 ms
0.621 ms
349 2 uio-gw8.uio.no (
129.240.24.229)
0.467 ms
0.578 ms
0.675 ms
350 3 oslo-gw1.uninett.no (
128.39.65.17)
0.385 ms
0.373 ms
0.358 ms
351 4 te3-
1-
2.br1.fn3.as2116.net (
193.156.90.3)
1.174 ms
1.172 ms
1.153 ms
352 5 he16-
1-
1.cr1.san110.as2116.net (
195.0.244.234)
2.627 ms he16-
1-
1.cr2.oslosda310.as2116.net (
195.0.244.48)
3.172 ms he16-
1-
1.cr1.san110.as2116.net (
195.0.244.234)
2.857 ms
353 6 ae1.ar8.oslosda310.as2116.net (
195.0.242.39)
0.662 ms
0.637 ms ae0.ar8.oslosda310.as2116.net (
195.0.242.23)
0.622 ms
354 7 89.191.10.146 (
89.191.10.146)
0.931 ms
0.917 ms
0.955 ms
358 </pre
></p
>
360 <p
>This show the DNS names and IP addresses of (at least some of the)
361 network equipment involved in getting the data traffic from me to the
362 www.stortinget.no server, and how long it took in milliseconds for a
363 package to reach the equipment and return to me. Three packages are
364 sent, and some times the packages do not follow the same path. This
365 is shown for hop
5, where three different IP addresses replied to the
366 traceroute request.
</p
>
368 <p
>There are many ways to measure trace routes. Other good traceroute
369 implementations I use are traceroute (using ICMP packages) mtr (can do
370 both ICMP, UDP and TCP) and scapy (python library with ICMP, UDP, TCP
371 traceroute and a lot of other capabilities). All of them are easily
372 available in
<a href=
"https://www.debian.org/
">Debian
</a
>.
</p
>
374 <p
>This time around, I wanted to know the geographic location of
375 different route points, to visualize how visiting a web page spread
376 information about the visit to a lot of servers around the globe. The
377 background is that a web site today often will ask the browser to get
378 from many servers the parts (for example HTML, JSON, fonts,
379 JavaScript, CSS, video) required to display the content. This will
380 leak information about the visit to those controlling these servers
381 and anyone able to peek at the data traffic passing by (like your ISP,
382 the ISPs backbone provider, FRA, GCHQ, NSA and others).
</p
>
384 <p
>Lets pick an example, the Norwegian parliament web site
385 www.stortinget.no. It is read daily by all members of parliament and
386 their staff, as well as political journalists, activits and many other
387 citizens of Norway. A visit to the www.stortinget.no web site will
388 ask your browser to contact
8 other servers: ajax.googleapis.com,
389 insights.hotjar.com, script.hotjar.com, static.hotjar.com,
390 stats.g.doubleclick.net, www.google-analytics.com,
391 www.googletagmanager.com and www.netigate.se. I extracted this by
392 asking
<a href=
"http://phantomjs.org/
">PhantomJS
</a
> to visit the
393 Stortinget web page and tell me all the URLs PhantomJS downloaded to
394 render the page (in HAR format using
395 <a href=
"https://github.com/ariya/phantomjs/blob/master/examples/netsniff.js
">their
396 netsniff example
</a
>. I am very grateful to Gorm for showing me how
397 to do this). My goal is to visualize network traces to all IP
398 addresses behind these DNS names, do show where visitors personal
399 information is spread when visiting the page.
</p
>
401 <p align=
"center
"><a href=
"www.stortinget.no-geoip.kml
"><img
402 src=
"http://people.skolelinux.org/pere/blog/images/
2017-
01-
09-www.stortinget.no-geoip-small.png
" alt=
"map of combined traces for URLs used by www.stortinget.no using GeoIP
"/
></a
></p
>
404 <p
>When I had a look around for options, I could not find any good
405 free software tools to do this, and decided I needed my own traceroute
406 wrapper outputting KML based on locations looked up using GeoIP. KML
407 is easy to work with and easy to generate, and understood by several
408 of the GIS tools I have available. I got good help from by NUUG
409 colleague Anders Einar with this, and the result can be seen in
410 <a href=
"https://github.com/petterreinholdtsen/kmltraceroute
">my
411 kmltraceroute git repository
</a
>. Unfortunately, the quality of the
412 free GeoIP databases I could find (and the for-pay databases my
413 friends had access to) is not up to the task. The IP addresses of
414 central Internet infrastructure would typically be placed near the
415 controlling companies main office, and not where the router is really
416 located, as you can see from
<a href=
"www.stortinget.no-geoip.kml
">the
417 KML file I created
</a
> using the GeoLite City dataset from MaxMind.
419 <p align=
"center
"><a href=
"http://people.skolelinux.org/pere/blog/images/
2017-
01-
09-www.stortinget.no-scapy.svg
"><img
420 src=
"http://people.skolelinux.org/pere/blog/images/
2017-
01-
09-www.stortinget.no-scapy-small.png
" alt=
"scapy traceroute graph for URLs used by www.stortinget.no
"/
></a
></p
>
422 <p
>I also had a look at the visual traceroute graph created by
423 <a href=
"http://www.secdev.org/projects/scapy/
">the scrapy project
</a
>,
424 showing IP network ownership (aka AS owner) for the IP address in
426 <a href=
"http://people.skolelinux.org/pere/blog/images/
2017-
01-
09-www.stortinget.no-scapy.svg
">The
427 graph display a lot of useful information about the traceroute in SVG
428 format
</a
>, and give a good indication on who control the network
429 equipment involved, but it do not include geolocation. This graph
430 make it possible to see the information is made available at least for
431 UNINETT, Catchcom, Stortinget, Nordunet, Google, Amazon, Telia, Level
432 3 Communications and NetDNA.
</p
>
434 <p align=
"center
"><a href=
"https://geotraceroute.com/index.php?node=
4&host=www.stortinget.no
"><img
435 src=
"http://people.skolelinux.org/pere/blog/images/
2017-
01-
09-www.stortinget.no-geotraceroute-small.png
" alt=
"example geotraceroute view for www.stortinget.no
"/
></a
></p
>
437 <p
>In the process, I came across the
438 <a href=
"https://geotraceroute.com/
">web service GeoTraceroute
</a
> by
439 Salim Gasmi. Its methology of combining guesses based on DNS names,
440 various location databases and finally use latecy times to rule out
441 candidate locations seemed to do a very good job of guessing correct
442 geolocation. But it could only do one trace at the time, did not have
443 a sensor in Norway and did not make the geolocations easily available
444 for postprocessing. So I contacted the developer and asked if he
445 would be willing to share the code (he refused until he had time to
446 clean it up), but he was interested in providing the geolocations in a
447 machine readable format, and willing to set up a sensor in Norway. So
448 since yesterday, it is possible to run traces from Norway in this
449 service thanks to a sensor node set up by
450 <a href=
"https://www.nuug.no/
">the NUUG assosiation
</a
>, and get the
451 trace in KML format for further processing.
</p
>
453 <p align=
"center
"><a href=
"http://people.skolelinux.org/pere/blog/images/
2017-
01-
09-www.stortinget.no-geotraceroute-kml-join.kml
"><img
454 src=
"http://people.skolelinux.org/pere/blog/images/
2017-
01-
09-www.stortinget.no-geotraceroute-kml-join.png
" alt=
"map of combined traces for URLs used by www.stortinget.no using geotraceroute
"/
></a
></p
>
456 <p
>Here we can see a lot of trafic passes Sweden on its way to
457 Denmark, Germany, Holland and Ireland. Plenty of places where the
458 Snowden confirmations verified the traffic is read by various actors
459 without your best interest as their top priority.
</p
>
461 <p
>Combining KML files is trivial using a text editor, so I could loop
462 over all the hosts behind the urls imported by www.stortinget.no and
463 ask for the KML file from GeoTraceroute, and create a combined KML
464 file with all the traces (unfortunately only one of the IP addresses
465 behind the DNS name is traced this time. To get them all, one would
466 have to request traces using IP number instead of DNS names from
467 GeoTraceroute). That might be the next step in this project.
</p
>
469 <p
>Armed with these tools, I find it a lot easier to figure out where
470 the IP traffic moves and who control the boxes involved in moving it.
471 And every time the link crosses for example the Swedish border, we can
472 be sure Swedish Signal Intelligence (FRA) is listening, as GCHQ do in
473 Britain and NSA in USA and cables around the globe. (Hm, what should
474 we tell them? :) Keep that in mind if you ever send anything
475 unencrypted over the Internet.
</p
>
477 <p
>PS: KML files are drawn using
478 <a href=
"http://ivanrublev.me/kml/
">the KML viewer from Ivan
479 Rublev
<a/
>, as it was less cluttered than the local Linux application
480 Marble. There are heaps of other options too.
</p
>
482 <p
>As usual, if you use Bitcoin and want to show your support of my
483 activities, please send Bitcoin donations to my address
484 <b
><a href=
"bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
&label=PetterReinholdtsenBlog
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a
></b
>.
</p
>
489 <title>Introducing ical-archiver to split out old iCalendar entries
</title>
490 <link>http://people.skolelinux.org/pere/blog/Introducing_ical_archiver_to_split_out_old_iCalendar_entries.html
</link>
491 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Introducing_ical_archiver_to_split_out_old_iCalendar_entries.html
</guid>
492 <pubDate>Wed,
4 Jan
2017 12:
20:
00 +
0100</pubDate>
493 <description><p
>Do you have a large
<a href=
"https://icalendar.org/
">iCalendar
</a
>
494 file with lots of old entries, and would like to archive them to save
495 space and resources? At least those of us using KOrganizer know that
496 turning on and off an event set become slower and slower the more
497 entries are in the set. While working on migrating our calendars to a
498 <a href=
"http://radicale.org/
">Radicale CalDAV server
</a
> on our
499 <a href=
"https://freedomboxfoundation.org/
">Freedombox server
</a/
>, my
500 loved one wondered if I could find a way to split up the calendar file
501 she had in KOrganizer, and I set out to write a tool. I spent a few
502 days writing and polishing the system, and it is now ready for general
504 <a href=
"https://github.com/petterreinholdtsen/ical-archiver
">code for
505 ical-archiver
</a
> is publicly available from a git repository on
506 github. The system is written in Python and depend on
507 <a href=
"http://eventable.github.io/vobject/
">the vobject Python
508 module
</a
>.
</p
>
510 <p
>To use it, locate the iCalendar file you want to operate on and
511 give it as an argument to the ical-archiver script. This will
512 generate a set of new files, one file per component type per year for
513 all components expiring more than two years in the past. The vevent,
514 vtodo and vjournal entries are handled by the script. The remaining
515 entries are stored in a
'remaining
' file.
</p
>
517 <p
>This is what a test run can look like:
520 % ical-archiver t/
2004-
2016.ics
524 Writing t/
2004-
2016.ics-subset-vevent-
2004.ics
525 Writing t/
2004-
2016.ics-subset-vevent-
2005.ics
526 Writing t/
2004-
2016.ics-subset-vevent-
2006.ics
527 Writing t/
2004-
2016.ics-subset-vevent-
2007.ics
528 Writing t/
2004-
2016.ics-subset-vevent-
2008.ics
529 Writing t/
2004-
2016.ics-subset-vevent-
2009.ics
530 Writing t/
2004-
2016.ics-subset-vevent-
2010.ics
531 Writing t/
2004-
2016.ics-subset-vevent-
2011.ics
532 Writing t/
2004-
2016.ics-subset-vevent-
2012.ics
533 Writing t/
2004-
2016.ics-subset-vevent-
2013.ics
534 Writing t/
2004-
2016.ics-subset-vevent-
2014.ics
535 Writing t/
2004-
2016.ics-subset-vjournal-
2007.ics
536 Writing t/
2004-
2016.ics-subset-vjournal-
2011.ics
537 Writing t/
2004-
2016.ics-subset-vtodo-
2012.ics
538 Writing t/
2004-
2016.ics-remaining.ics
540 </pre
></p
>
542 <p
>As you can see, the original file is untouched and new files are
543 written with names derived from the original file. If you are happy
544 with their content, the *-remaining.ics file can replace the original
545 the the others can be archived or imported as historical calendar
546 collections.
</p
>
548 <p
>The script should probably be improved a bit. The error handling
549 when discovering broken entries is not good, and I am not sure yet if
550 it make sense to split different entry types into separate files or
551 not. The program is thus likely to change. If you find it
552 interesting, please get in touch. :)
</p
>
554 <p
>As usual, if you use Bitcoin and want to show your support of my
555 activities, please send Bitcoin donations to my address
556 <b
><a href=
"bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
&label=PetterReinholdtsenBlog
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a
></b
>.
</p
>
561 <title>Appstream just learned how to map hardware to packages too!
</title>
562 <link>http://people.skolelinux.org/pere/blog/Appstream_just_learned_how_to_map_hardware_to_packages_too_.html
</link>
563 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Appstream_just_learned_how_to_map_hardware_to_packages_too_.html
</guid>
564 <pubDate>Fri,
23 Dec
2016 10:
30:
00 +
0100</pubDate>
565 <description><p
>I received a very nice Christmas present today. As my regular
566 readers probably know, I have been working on the
567 <a href=
"http://packages.qa.debian.org/isenkram
">the Isenkram
568 system
</a
> for many years. The goal of the Isenkram system is to make
569 it easier for users to figure out what to install to get a given piece
570 of hardware to work in Debian, and a key part of this system is a way
571 to map hardware to packages. Isenkram have its own mapping database,
572 and also uses data provided by each package using the AppStream
573 metadata format. And today,
574 <a href=
"https://tracker.debian.org/pkg/appstream
">AppStream
</a
> in
575 Debian learned to look up hardware the same way Isenkram is doing it,
576 ie using fnmatch():
</p
>
579 % appstreamcli what-provides modalias \
580 usb:v1130p0202d0100dc00dsc00dp00ic03isc00ip00in00
581 Identifier: pymissile [generic]
583 Summary: Control original Striker USB Missile Launcher
585 % appstreamcli what-provides modalias usb:v0694p0002d0000
586 Identifier: libnxt [generic]
588 Summary: utility library for talking to the LEGO Mindstorms NXT brick
591 Identifier: t2n [generic]
593 Summary: Simple command-line tool for Lego NXT
596 Identifier: python-nxt [generic]
598 Summary: Python driver/interface/wrapper for the Lego Mindstorms NXT robot
601 Identifier: nbc [generic]
603 Summary: C compiler for LEGO Mindstorms NXT bricks
606 </pre
></p
>
608 <p
>A similar query can be done using the combined AppStream and
609 Isenkram databases using the isenkram-lookup tool:
</p
>
612 % isenkram-lookup usb:v1130p0202d0100dc00dsc00dp00ic03isc00ip00in00
614 % isenkram-lookup usb:v0694p0002d0000
620 </pre
></p
>
622 <p
>You can find modalias values relevant for your machine using
623 <tt
>cat $(find /sys/devices/ -name modalias)
</tt
>.
625 <p
>If you want to make this system a success and help Debian users
626 make the most of the hardware they have, please
627 help
<a href=
"https://wiki.debian.org/AppStream/Guidelines
">add
628 AppStream metadata for your package following the guidelines
</a
>
629 documented in the wiki. So far only
11 packages provide such
630 information, among the several hundred hardware specific packages in
631 Debian. The Isenkram database on the other hand contain
101 packages,
632 mostly related to USB dongles. Most of the packages with hardware
633 mapping in AppStream are LEGO Mindstorms related, because I have, as
634 part of my involvement in
635 <a href=
"https://wiki.debian.org/LegoDesigners
">the Debian LEGO
636 team
</a
> given priority to making sure LEGO users get proposed the
637 complete set of packages in Debian for that particular hardware. The
638 team also got a nice Christmas present today. The
639 <a href=
"https://tracker.debian.org/pkg/nxt-firmware
">nxt-firmware
640 package
</a
> made it into Debian. With this package in place, it is
641 now possible to use the LEGO Mindstorms NXT unit with only free
642 software, as the nxt-firmware package contain the source and firmware
643 binaries for the NXT brick.
</p
>
645 <p
>As usual, if you use Bitcoin and want to show your support of my
646 activities, please send Bitcoin donations to my address
647 <b
><a href=
"bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
&label=PetterReinholdtsenBlog
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a
></b
>.
</p
>
652 <title>Isenkram updated with a lot more hardware-package mappings
</title>
653 <link>http://people.skolelinux.org/pere/blog/Isenkram_updated_with_a_lot_more_hardware_package_mappings.html
</link>
654 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Isenkram_updated_with_a_lot_more_hardware_package_mappings.html
</guid>
655 <pubDate>Tue,
20 Dec
2016 11:
55:
00 +
0100</pubDate>
656 <description><p
><a href=
"http://packages.qa.debian.org/isenkram
">The Isenkram
657 system
</a
> I wrote two years ago to make it easier in Debian to find
658 and install packages to get your hardware dongles to work, is still
659 going strong. It is a system to look up the hardware present on or
660 connected to the current system, and map the hardware to Debian
661 packages. It can either be done using the tools in isenkram-cli or
662 using the user space daemon in the isenkram package. The latter will
663 notify you, when inserting new hardware, about what packages to
664 install to get the dongle working. It will even provide a button to
665 click on to ask packagekit to install the packages.
</p
>
667 <p
>Here is an command line example from my Thinkpad laptop:
</p
>
686 </pre
></p
>
688 <p
>It can also list the firware package providing firmware requested
689 by the load kernel modules, which in my case is an empty list because
690 I have all the firmware my machine need:
693 % /usr/sbin/isenkram-autoinstall-firmware -l
694 info: did not find any firmware files requested by loaded kernel modules. exiting
696 </pre
></p
>
698 <p
>The last few days I had a look at several of the around
250
699 packages in Debian with udev rules. These seem like good candidates
700 to install when a given hardware dongle is inserted, and I found
701 several that should be proposed by isenkram. I have not had time to
702 check all of them, but am happy to report that now there are
97
703 packages packages mapped to hardware by Isenkram.
11 of these
704 packages provide hardware mapping using AppStream, while the rest are
705 listed in the modaliases file provided in isenkram.
</p
>
707 <p
>These are the packages with hardware mappings at the moment. The
708 <strong
>marked packages
</strong
> are also announcing their hardware
709 support using AppStream, for everyone to use:
</p
>
711 <p
>air-quality-sensor, alsa-firmware-loaders, argyll,
712 <strong
>array-info
</strong
>, avarice, avrdude, b43-fwcutter,
713 bit-babbler, bluez, bluez-firmware,
<strong
>brltty
</strong
>,
714 <strong
>broadcom-sta-dkms
</strong
>, calibre, cgminer, cheese, colord,
715 <strong
>colorhug-client
</strong
>, dahdi-firmware-nonfree, dahdi-linux,
716 dfu-util, dolphin-emu, ekeyd, ethtool, firmware-ipw2x00, fprintd,
717 fprintd-demo,
<strong
>galileo
</strong
>, gkrellm-thinkbat, gphoto2,
718 gpsbabel, gpsbabel-gui, gpsman, gpstrans, gqrx-sdr, gr-fcdproplus,
719 gr-osmosdr, gtkpod, hackrf, hdapsd, hdmi2usb-udev, hpijs-ppds, hplip,
720 ipw3945-source, ipw3945d, kde-config-tablet, kinect-audio-setup,
721 <strong
>libnxt
</strong
>, libpam-fprintd,
<strong
>lomoco
</strong
>,
722 madwimax, minidisc-utils, mkgmap, msi-keyboard, mtkbabel,
723 <strong
>nbc
</strong
>,
<strong
>nqc
</strong
>, nut-hal-drivers, ola,
724 open-vm-toolbox, open-vm-tools, openambit, pcgminer, pcmciautils,
725 pcscd, pidgin-blinklight, printer-driver-splix,
726 <strong
>pymissile
</strong
>, python-nxt, qlandkartegt,
727 qlandkartegt-garmin, rosegarden, rt2x00-source, sispmctl,
728 soapysdr-module-hackrf, solaar, squeak-plugins-scratch, sunxi-tools,
729 <strong
>t2n
</strong
>, thinkfan, thinkfinger-tools, tlp, tp-smapi-dkms,
730 tp-smapi-source, tpb, tucnak, uhd-host, usbmuxd, viking,
731 virtualbox-ose-guest-x11, w1retap, xawtv, xserver-xorg-input-vmmouse,
732 xserver-xorg-input-wacom, xserver-xorg-video-qxl,
733 xserver-xorg-video-vmware, yubikey-personalization and
734 zd1211-firmware
</p
>
736 <p
>If you know of other packages, please let me know with a wishlist
737 bug report against the isenkram-cli package, and ask the package
739 <a href=
"https://wiki.debian.org/AppStream/Guidelines
">add AppStream
740 metadata according to the guidelines
</a
> to provide the information
741 for everyone. In time, I hope to get rid of the isenkram specific
742 hardware mapping and depend exclusively on AppStream.
</p
>
744 <p
>Note, the AppStream metadata for broadcom-sta-dkms is matching too
745 much hardware, and suggest that the package with with any ethernet
746 card. See
<a href=
"http://bugs.debian.org/
838735">bug #
838735</a
> for
747 the details. I hope the maintainer find time to address it soon. In
748 the mean time I provide an override in isenkram.
</p
>