100 likes | 203 Views
Firefox Extension for NetInf. Jeff Thompson ICNRG meeting @ IETF-88 November 3, 2013. The sites who say “ ni !”. Overview. Introduction Apache support Firefox extension D emo: NetInf.org in NetInf Self-reference problem Conclusion/future work. Introduction.
E N D
Firefox Extension for NetInf Jeff Thompson ICNRG meeting @ IETF-88 November 3, 2013
The sites who say “ni !” Firefox Extension for NetInf - Jeff Thompson
Overview • Introduction • Apache support • Firefox extension • Demo: NetInf.org in NetInf • Self-reference problem • Conclusion/future work Firefox Extension for NetInf - Jeff Thompson
Introduction • RFC 6920 “Naming Things with Hashes” • ni://authority/sha-256;hashhttp://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/ Firefox Extension for NetInf - Jeff Thompson
Apache support • In the authority virtual host config:RewriteMapsha-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 Firefox Extension for NetInf - Jeff Thompson
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 nsIHttpProtocolHandlernewChannel(url) • Silent HTTP transfer conveys the MIME type • TODO: Check and report hash mismatch Firefox Extension for NetInf - Jeff Thompson
Demo: NetInf.org in NetInf • ni://nuvl.org/sha-256;QlpcCikO_8ENuJf0VXFTFhzqlbTdB6fzprIuJetUNb8 Firefox Extension for NetInf - Jeff Thompson
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"> Firefox Extension for NetInf - Jeff Thompson
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 Firefox Extension for NetInf - Jeff Thompson
ni ! Firefox Extension for NetInf - Jeff Thompson