Giter Club home page Giter Club logo

stealth's Introduction

Stealth - Secure, Peer-to-Peer, Private and Automatable Web Browser/Scraper/Proxy

Tholian® Stealth is the automateable Web Browser for the Web of Knowledge.

Its design goals are increased Privacy, increased Automation, adaptive Semantic Understanding and efficient Bandwidth Usage, no matter the cost.

It is built by a former contributor to both Chromium and Firefox, and is built out of personal opinion on how Web Browsers should try to understand the Semantic Web.

Stealth empowers its Users, not Website Developers that could (,will ,and did) abuse technologies to compromise the freedom and rights of Web Browser End-Users.

Implemented Features

Stealth is both a Web Scraper, Web Service and Web Proxy that can serve its own User Interface ("Browser UI") that is implemented using Web Technologies.

  • It is secure by default, without compromise. It only supports DNS via HTTPS, and uses explicitly https:// first, and falls back to http:// only when necessary and only when the website was not MITM-ed.

  • It is peer-to-peer and always uses the most efficient way to share resources and to reduce bandwidth, which means that once a Site is downloaded it can be shared with trusted Peers and continues to be readable, even when being completely offline.

  • It uses Blockers that is on feature-parity with AdBlock Plus, AdGuard, Pi-Hole, uBlock Origin and uMatrix (in the sense of "all of the above").

  • It uses Optimizers to render only the good parts of HTML and CSS. These ensure that no Client or Peer ever receives any malicious or unwanted content. All Optimizers are applied across all Site Modes, and the Site Modes decide what content or media is included.

  • It uses Site Modes that decide what to load, with incrementally allowed features (or media types). By default, Stealth will load nothing. The Site Mode next to the address bar decides what is being loaded.

  • It uses Site Beacons that label data on a Site for automated extraction purposes which help to train Stealth to understand similar Sites on the Web more easily. This is similar to the "Reader Mode" in other Browsers, but allows integrations with third-party databases and both exports/imports from/to third-party software in an automated manner.

  • It never requests anything unnecessary. The cache is persistent and time sensitive until the user tells it to refresh the Site manually or the manually configured Internet History lifetime has expired.

  • It uses trust-based Peers to share the local cache. Peers can receive, interchange, and synchronize their downloaded contents. This is especially helpful in rural areas, where internet bandwidth is sparse; and redundant downloads can be saved.

  • It can act as a Content-Auditing and Content-Filtering Web Proxy for other Web Browsers, which allows corporate-like setups with a shared peer-to-peer Cache and a local Archive of the Web. Simply point your SOCKS4/5 or HTTP/S client to http://stealth-service:65432/proxy.pac.

  • It offers intelligent solutions for Error scenarios. In case a Site is not available anymore, the stealth:fix-request Page allows to download the Site automagically from trusted Peers or from the Web Archive.

  • This ain't your Mama's Web Browser. It completely disables ECMAScript in order to improve Privacy. Stealth also does not support any Web API that could potentially send data to malicious Sites.

  • Stealth can be scripted as a Web Scraper inside node.js. The Browser is completely headless, so every single interaction that the Browser UI reflects can be implemented in a programmable manner, even remotely through trusted Peers using Stealth's peer-to-peer network services.

Upcoming Features

  • Stealth in combination with a connected Radar instance will allow to discover Peers, and to share and reuse Beacons and Echoes that help to automate even more on the Web.

  • Stealth will allow Peer-to-Peer TLS encryption by using intermediary certificates that are shipped with each release and allow to sign Content that was downloaded via another Peer in a trustless manner.

Quickstart

If you don't wanna deal with the native build toolchain, this is how to get started as quickly as possible:

  • Install node.js version 12+.
  • Install Ungoogled Chromium version 70+.
  • (Only MacOS) Alternatively Install Safari version 12+.
  • (Only Linux) Alternatively Install electron version 8+.
  • (Only Linux) Alternatively Install gjs and WebKit2 GTK version 4+.
git clone https://github.com/tholian-network/stealth.git;
cd ./stealth;

# Make everything
node ./make.mjs;

# Start Stealth Service (optional debug flag)
node ./stealth/stealth.mjs serve --debug=true;

# Open as Progressive Web App
node ./browser/browser.mjs;

# Alternatively open Stealth's Browser UI in a Web Browser
# gio open "http://localhost:65432"

IMPORTANT: On mobile phones, Stealth can be used as a Web App by visiting the URL and adding it to the Home Screen. It will behave like an offline-ready App, and allow to visit downloaded Sites from the Cache; given that the Stealth Service is reachable via Wi-Fi or LAN from your mobile phone.

Releases

At this point in Development, Stealth is implemented as a headless node.js Browser/Scraper/Proxy which serves its own HTML5-based User Interface. At a later point in time, there will be native builds available that will most likely include a custom fork of another Browser Engine with a reduced featureset (such as without WebRTC, WebUSB etc.); but currently Stealth's Browser uses a Webview that is preinstalled on your target Operating System.

It is heavily recommended to use Ungoogled Chromium as a Webview if you want to run Stealth via browser/browser.mjs.

(Links will be inserted here once the Stealth releases are ready for the public)

Stealth Guide (for Hackers?)

The Guide is currently meant for Developers that are new to the Project. It explains all necessary topics to quickly get started to hack around with Stealth and modify it to fit your needs.

A User's Guide probably will arrive at a later point in time, as Stealth currently has no public release yet.

Community

There's a Telegram Chat available where most technical discussions happen. You can join it via t.me/tholian_beta or search for Tholian Beta.

Roadmap

The current roadmap is reflected by unimplemented /issues in this GitHub repository.

A high-level overview is available at our Website's Roadmap, which also lists other projects that will be built in order to integrate Stealth with larger featuresets.

As this project in its current form is highly experimental software, those features can change very rapidly; and lead to at least partial refactors of the codebase as well.

If you have Problems, Suggestions or Ideas that would fit into Stealth, please open up an Issue and we'll be happy to talk about it :)

License

Private Usage of Stealth, including its Browser and the Covert Testsuite is licensed under GNU GPL 3.

Commercial Usage of Stealth, including its Browser and the Covert Testsuite is only allowed under under a custom available license.

If you want to commercially use the technology behind Stealth, please contact us on https://tholian.network for a license.

(c) 2019-2020 Tholian(r) Network

stealth's People

Contributors

cookiengineer avatar michaelmior avatar spekulatius avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.