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