firefox extension for netinf jeff thompson icnrg meeting @ ietf-88 november 3, 2013
TRANSCRIPT
Firefox Extension for NetInf
Jeff ThompsonICNRG meeting @ IETF-88
November 3, 2013
Firefox Extension for NetInf - Jeff Thompson
2
The sites who say “ni !”
November 3, 2013
Firefox Extension for NetInf - Jeff Thompson
3
Overview
• Introduction• Apache support• Firefox extension• Demo: NetInf.org in NetInf• Self-reference problem• Conclusion/future work
November 3, 2013
Firefox Extension for NetInf - Jeff Thompson
4
Introduction
• RFC 6920 “Naming Things with Hashes”• ni://authority/sha-256;hash
http://authority/.well-known/ni/sha-256/hash• Use Apache RewiteMap on authority to redirect
a hash URL to silently return the actual file• Use a Firefox extension to redirect an ni: URI to
fetch the http: well-known URL• http://sourceforge.net/projects/niprotocol/
November 3, 2013
Firefox Extension for NetInf - Jeff Thompson
5
Apache support
• In the authority virtual host config:RewriteMap sha-256-map txt:/<root>/.well-known/ni/sha-256/sha-256-map.txt
• In .well-known/ni/sha-256/.htaccess:RewriteRule ^([^\.]+)$ ${sha-256-map:$1|/unrecognized-hash} [PT]
• In .well-known/ni/sha-256/sha-256-map.txt:<hash> <path to actual file>
• To make sha-256-map.txt:python make-sha-256-map.py
November 3, 2013
Firefox Extension for NetInf - Jeff Thompson
6
Firefox extension
• Tools > Add-ons > Install Add-on From Filehttp://sourceforge.net/p/niprotocol/code/ci/master/tree/firefox/ni-protocol.xpi
• Handle newChannel for ni: protocol• Get authority from the parent page URL• Convert ni:///sha-256;hash
http://authority/.well-known/ni/sha-256/hash• Use nsIHttpProtocolHandler newChannel(url)• Silent HTTP transfer conveys the MIME type• TODO: Check and report hash mismatchNovember 3, 2013
Firefox Extension for NetInf - Jeff Thompson
7
Demo: NetInf.org in NetInf
• ni://nuvl.org/sha-256;QlpcCikO_8ENuJf0VXFTFhzqlbTdB6fzprIuJetUNb8
November 3, 2013
Firefox Extension for NetInf - Jeff Thompson
8
Self-reference problem
• http://netinfo.org/index.html:<a href="index.html">NetInf</a>
• In NetInf: ni:///sha-256;XYZ<a href="ni:///sha-256;XYZ">NetInf</a>
• Cannot put hash XYZ in file referenced by XYZ• Possible solutions
– Use frames (not good for URL bar. not general)– Load entire web site HTML, show/hide sections– JavaScript: Load sha-256-map.txt and substitute hashes
• or put the map link in the URL query, dynamically pass it on:ni:///sha-256;XYZ?map=sha-256;ABC<a href="http://netinfo.org/index.html"> <a href="ni:///sha-256;XYZ?map=sha-256;ABC">
November 3, 2013
Firefox Extension for NetInf - Jeff Thompson
9
Conclusion/future work
• Bootstrap ni web sites using HTTP server• Actual web pages are fully “ni ready”• Future work– Check and report hash mismatch– Tool support to convert existing web sites – Solutions to self-reference problem
November 3, 2013
Firefox Extension for NetInf - Jeff Thompson
10
ni !November 3, 2013